summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Ben Murdoch <benm@google.com> 2024-09-09 12:02:46 +0000
committer Android (Google) Code Review <android-gerrit@google.com> 2024-09-09 12:02:46 +0000
commita06a89bee1a38c97c0465e3b3293b98e2bc26d36 (patch)
tree7a0de87fc9dbc2b252de0678f07624256cd97587
parent50d2f3c94cddd5c056d5efb9c7daa4668e1910b8 (diff)
parent7cd3d089f23963605159b4c6b6979e309608f70c (diff)
Merge "RESTRICT AUTOMERGE Clear app-provided shortcut icons" into udc-qpr-dev
-rw-r--r--core/java/android/view/KeyboardShortcutInfo.java13
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/KeyboardShortcutListSearch.java2
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/KeyboardShortcuts.java9
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();