Loading packages/SystemUI/src/com/android/systemui/statusbar/KeyboardShortcutListSearch.java +43 −7 Original line number Diff line number Diff line Loading @@ -84,6 +84,7 @@ import java.util.Arrays; import java.util.Collections; import java.util.Comparator; import java.util.HashMap; import java.util.LinkedHashMap; import java.util.List; import java.util.Locale; import java.util.Map; Loading Loading @@ -457,14 +458,43 @@ public final class KeyboardShortcutListSearch { List<KeyboardShortcutMultiMappingGroup> keyboardShortcutMultiMappingGroups = new ArrayList<>(); for (KeyboardShortcutGroup group : keyboardShortcutGroups) { CharSequence categoryTitle = group.getLabel(); List<ShortcutMultiMappingInfo> shortcutMultiMappingInfos = new ArrayList<>(); KeyboardShortcutMultiMappingGroup mappedGroup = new KeyboardShortcutMultiMappingGroup( group.getLabel(), new ArrayList<>()); Map<String, List<ShortcutMultiMappingInfo>> shortcutMap = new LinkedHashMap<>(); for (KeyboardShortcutInfo info : group.getItems()) { shortcutMultiMappingInfos.add(new ShortcutMultiMappingInfo(info)); String label = info.getLabel().toString(); Icon icon = info.getIcon(); if (shortcutMap.containsKey(label)) { List<ShortcutMultiMappingInfo> shortcuts = shortcutMap.get(label); boolean foundSameIcon = false; for (ShortcutMultiMappingInfo shortcut : shortcuts) { Icon shortcutIcon = shortcut.getIcon(); if ((shortcutIcon != null && icon != null && shortcutIcon.sameAs(icon)) || (shortcutIcon == null && icon == null)) { foundSameIcon = true; shortcut.addShortcutKeyGroup(new ShortcutKeyGroup(info, null)); break; } keyboardShortcutMultiMappingGroups.add( new KeyboardShortcutMultiMappingGroup( categoryTitle, shortcutMultiMappingInfos)); } if (!foundSameIcon) { shortcuts.add(new ShortcutMultiMappingInfo(info)); } } else { List<ShortcutMultiMappingInfo> shortcuts = new ArrayList<>(); shortcuts.add(new ShortcutMultiMappingInfo(info)); shortcutMap.put(label, shortcuts); } } for (List<ShortcutMultiMappingInfo> shortcutInfos : shortcutMap.values()) { for (ShortcutMultiMappingInfo shortcutInfo : shortcutInfos) { mappedGroup.addItem(shortcutInfo); } } keyboardShortcutMultiMappingGroups.add(mappedGroup); } return keyboardShortcutMultiMappingGroups; } Loading Loading @@ -1377,7 +1407,9 @@ public final class KeyboardShortcutListSearch { ShortcutMultiMappingInfo(KeyboardShortcutInfo info) { mLabel = info.getLabel(); mIcon = info.getIcon(); mShortcutKeyGroups = Arrays.asList(new ShortcutKeyGroup(info, null)); mShortcutKeyGroups = new ArrayList<>( Arrays.asList(new ShortcutKeyGroup(info, null)) ); } CharSequence getLabel() { Loading @@ -1388,6 +1420,10 @@ public final class KeyboardShortcutListSearch { return mIcon; } void addShortcutKeyGroup(ShortcutKeyGroup group) { mShortcutKeyGroups.add(group); } List<ShortcutKeyGroup> getShortcutKeyGroups() { return mShortcutKeyGroups; } Loading Loading
packages/SystemUI/src/com/android/systemui/statusbar/KeyboardShortcutListSearch.java +43 −7 Original line number Diff line number Diff line Loading @@ -84,6 +84,7 @@ import java.util.Arrays; import java.util.Collections; import java.util.Comparator; import java.util.HashMap; import java.util.LinkedHashMap; import java.util.List; import java.util.Locale; import java.util.Map; Loading Loading @@ -457,14 +458,43 @@ public final class KeyboardShortcutListSearch { List<KeyboardShortcutMultiMappingGroup> keyboardShortcutMultiMappingGroups = new ArrayList<>(); for (KeyboardShortcutGroup group : keyboardShortcutGroups) { CharSequence categoryTitle = group.getLabel(); List<ShortcutMultiMappingInfo> shortcutMultiMappingInfos = new ArrayList<>(); KeyboardShortcutMultiMappingGroup mappedGroup = new KeyboardShortcutMultiMappingGroup( group.getLabel(), new ArrayList<>()); Map<String, List<ShortcutMultiMappingInfo>> shortcutMap = new LinkedHashMap<>(); for (KeyboardShortcutInfo info : group.getItems()) { shortcutMultiMappingInfos.add(new ShortcutMultiMappingInfo(info)); String label = info.getLabel().toString(); Icon icon = info.getIcon(); if (shortcutMap.containsKey(label)) { List<ShortcutMultiMappingInfo> shortcuts = shortcutMap.get(label); boolean foundSameIcon = false; for (ShortcutMultiMappingInfo shortcut : shortcuts) { Icon shortcutIcon = shortcut.getIcon(); if ((shortcutIcon != null && icon != null && shortcutIcon.sameAs(icon)) || (shortcutIcon == null && icon == null)) { foundSameIcon = true; shortcut.addShortcutKeyGroup(new ShortcutKeyGroup(info, null)); break; } keyboardShortcutMultiMappingGroups.add( new KeyboardShortcutMultiMappingGroup( categoryTitle, shortcutMultiMappingInfos)); } if (!foundSameIcon) { shortcuts.add(new ShortcutMultiMappingInfo(info)); } } else { List<ShortcutMultiMappingInfo> shortcuts = new ArrayList<>(); shortcuts.add(new ShortcutMultiMappingInfo(info)); shortcutMap.put(label, shortcuts); } } for (List<ShortcutMultiMappingInfo> shortcutInfos : shortcutMap.values()) { for (ShortcutMultiMappingInfo shortcutInfo : shortcutInfos) { mappedGroup.addItem(shortcutInfo); } } keyboardShortcutMultiMappingGroups.add(mappedGroup); } return keyboardShortcutMultiMappingGroups; } Loading Loading @@ -1377,7 +1407,9 @@ public final class KeyboardShortcutListSearch { ShortcutMultiMappingInfo(KeyboardShortcutInfo info) { mLabel = info.getLabel(); mIcon = info.getIcon(); mShortcutKeyGroups = Arrays.asList(new ShortcutKeyGroup(info, null)); mShortcutKeyGroups = new ArrayList<>( Arrays.asList(new ShortcutKeyGroup(info, null)) ); } CharSequence getLabel() { Loading @@ -1388,6 +1420,10 @@ public final class KeyboardShortcutListSearch { return mIcon; } void addShortcutKeyGroup(ShortcutKeyGroup group) { mShortcutKeyGroups.add(group); } List<ShortcutKeyGroup> getShortcutKeyGroups() { return mShortcutKeyGroups; } Loading