diff options
| author | 2024-09-09 12:02:46 +0000 | |
|---|---|---|
| committer | 2024-09-09 12:02:46 +0000 | |
| commit | a06a89bee1a38c97c0465e3b3293b98e2bc26d36 (patch) | |
| tree | 7a0de87fc9dbc2b252de0678f07624256cd97587 | |
| parent | 50d2f3c94cddd5c056d5efb9c7daa4668e1910b8 (diff) | |
| parent | 7cd3d089f23963605159b4c6b6979e309608f70c (diff) | |
Merge "RESTRICT AUTOMERGE Clear app-provided shortcut icons" into udc-qpr-dev
3 files changed, 22 insertions, 2 deletions
diff --git a/core/java/android/view/KeyboardShortcutInfo.java b/core/java/android/view/KeyboardShortcutInfo.java index 118b03ce5504..3a79e5b13a8b 100644 --- a/core/java/android/view/KeyboardShortcutInfo.java +++ b/core/java/android/view/KeyboardShortcutInfo.java @@ -29,7 +29,7 @@ import android.os.Parcelable; */ public final class KeyboardShortcutInfo implements Parcelable { private final CharSequence mLabel; - private final Icon mIcon; + private Icon mIcon; private final char mBaseCharacter; private final int mKeycode; private final int mModifiers; @@ -116,6 +116,15 @@ public final class KeyboardShortcutInfo implements Parcelable { } /** + * Removes an icon that was previously set. + * + * @hide + */ + public void clearIcon() { + mIcon = null; + } + + /** * Returns the base keycode that, combined with the modifiers, triggers this shortcut. If the * base character was set instead, returns {@link KeyEvent#KEYCODE_UNKNOWN}. Valid keycodes are * defined as constants in {@link KeyEvent}. @@ -165,4 +174,4 @@ public final class KeyboardShortcutInfo implements Parcelable { return new KeyboardShortcutInfo[size]; } }; -}
\ No newline at end of file +} diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/KeyboardShortcutListSearch.java b/packages/SystemUI/src/com/android/systemui/statusbar/KeyboardShortcutListSearch.java index ec66e994b58a..e23767e48e8f 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/KeyboardShortcutListSearch.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/KeyboardShortcutListSearch.java @@ -429,6 +429,7 @@ public final class KeyboardShortcutListSearch { if (result.isEmpty()) { mKeySearchResultMap.put(SHORTCUT_SPECIFICAPP_INDEX, false); } else { + KeyboardShortcuts.sanitiseShortcuts(result); mSpecificAppGroup.addAll(reMapToKeyboardShortcutMultiMappingGroup(result)); mKeySearchResultMap.put(SHORTCUT_SPECIFICAPP_INDEX, true); } @@ -440,6 +441,7 @@ public final class KeyboardShortcutListSearch { mWindowManager.requestImeKeyboardShortcuts(result -> { // Add specific Ime shortcuts if (!result.isEmpty()) { + KeyboardShortcuts.sanitiseShortcuts(result); mInputGroup.addAll(reMapToKeyboardShortcutMultiMappingGroup(result)); } mImeShortcutsReceived = true; diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/KeyboardShortcuts.java b/packages/SystemUI/src/com/android/systemui/statusbar/KeyboardShortcuts.java index a3fd82e9b140..51ae4583b522 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/KeyboardShortcuts.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/KeyboardShortcuts.java @@ -410,6 +410,7 @@ public final class KeyboardShortcuts { } List<KeyboardShortcutGroup> shortcutGroups = mReceivedAppShortcutGroups; shortcutGroups.addAll(mReceivedImeShortcutGroups); + sanitiseShortcuts(shortcutGroups); mReceivedAppShortcutGroups = null; mReceivedImeShortcutGroups = null; @@ -422,6 +423,14 @@ public final class KeyboardShortcuts { showKeyboardShortcutsDialog(shortcutGroups); } + static void sanitiseShortcuts(List<KeyboardShortcutGroup> shortcutGroups) { + for (KeyboardShortcutGroup group : shortcutGroups) { + for (KeyboardShortcutInfo info : group.getItems()) { + info.clearIcon(); + } + } + } + private void dismissKeyboardShortcuts() { if (mKeyboardShortcutsDialog != null) { mKeyboardShortcutsDialog.dismiss(); |