Updated StatusBarIconController and StatusBarSignalPolicy to check icon
blacklist from config value, config_statusBarIconBlacklist.
Bug: 118675475
Test: Manual
Change-Id: I44dd1d007d3f7b9b435eceb273ecf333aef7cef4
diff --git a/packages/SystemUI/res/values/config.xml b/packages/SystemUI/res/values/config.xml
index 640f31b..97bd579 100644
--- a/packages/SystemUI/res/values/config.xml
+++ b/packages/SystemUI/res/values/config.xml
@@ -484,4 +484,13 @@
<!-- Package name for controls plugin -->
<string name="config_controlsPluginPackageName" translatable="false">com.android.systemui.controls.panel</string>
+ <!-- Defines the blacklist for system icons. That is to say, the icons in the status bar that
+ are part of the blacklist are never displayed. Each item in the blacklist must be a string
+ defined in core/res/res/config.xml to properly blacklist the icon.
+ -->
+ <string-array name="config_statusBarIconBlackList" translatable="false">
+ <item>@*android:string/status_bar_rotate</item>
+ <item>@*android:string/status_bar_headset</item>
+ </string-array>
+
</resources>
diff --git a/packages/SystemUI/src/com/android/systemui/BatteryMeterView.java b/packages/SystemUI/src/com/android/systemui/BatteryMeterView.java
index d68fe15..a46ab3a 100644
--- a/packages/SystemUI/src/com/android/systemui/BatteryMeterView.java
+++ b/packages/SystemUI/src/com/android/systemui/BatteryMeterView.java
@@ -288,7 +288,8 @@
@Override
public void onTuningChanged(String key, String newValue) {
if (StatusBarIconController.ICON_BLACKLIST.equals(key)) {
- ArraySet<String> icons = StatusBarIconController.getIconBlacklist(newValue);
+ ArraySet<String> icons = StatusBarIconController.getIconBlacklist(
+ getContext(), newValue);
setVisibility(icons.contains(mSlotBattery) ? View.GONE : View.VISIBLE);
}
}
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarIconController.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarIconController.java
index 5daef24..75da5d1 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarIconController.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarIconController.java
@@ -76,12 +76,12 @@
public static final String ICON_BLACKLIST = "icon_blacklist";
- public static ArraySet<String> getIconBlacklist(String blackListStr) {
+ /** Reads the default blacklist from config value unless blacklistStr is provided. */
+ static ArraySet<String> getIconBlacklist(Context context, String blackListStr) {
ArraySet<String> ret = new ArraySet<>();
- if (blackListStr == null) {
- blackListStr = "rotate,headset";
- }
- String[] blacklist = blackListStr.split(",");
+ String[] blacklist = blackListStr == null
+ ? context.getResources().getStringArray(R.array.config_statusBarIconBlackList)
+ : blackListStr.split(",");
for (String slot : blacklist) {
if (!TextUtils.isEmpty(slot)) {
ret.add(slot);
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarIconControllerImpl.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarIconControllerImpl.java
index aa062eb..bfcbcea 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarIconControllerImpl.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarIconControllerImpl.java
@@ -111,7 +111,7 @@
return;
}
mIconBlacklist.clear();
- mIconBlacklist.addAll(StatusBarIconController.getIconBlacklist(newValue));
+ mIconBlacklist.addAll(StatusBarIconController.getIconBlacklist(mContext, newValue));
ArrayList<Slot> currentSlots = getSlots();
ArrayMap<Slot, List<StatusBarIconHolder>> slotsToReAdd = new ArrayMap<>();
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarSignalPolicy.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarSignalPolicy.java
index 8286d26..d2e9262 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarSignalPolicy.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarSignalPolicy.java
@@ -117,7 +117,7 @@
if (!StatusBarIconController.ICON_BLACKLIST.equals(key)) {
return;
}
- ArraySet<String> blockList = StatusBarIconController.getIconBlacklist(newValue);
+ ArraySet<String> blockList = StatusBarIconController.getIconBlacklist(mContext, newValue);
boolean blockAirplane = blockList.contains(mSlotAirplane);
boolean blockMobile = blockList.contains(mSlotMobile);
boolean blockWifi = blockList.contains(mSlotWifi);
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/policy/Clock.java b/packages/SystemUI/src/com/android/systemui/statusbar/policy/Clock.java
index 4f0af9e..759bad4 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/policy/Clock.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/policy/Clock.java
@@ -298,7 +298,7 @@
mShowSeconds = TunerService.parseIntegerSwitch(newValue, false);
updateShowSeconds();
} else {
- setClockVisibleByUser(!StatusBarIconController.getIconBlacklist(newValue)
+ setClockVisibleByUser(!StatusBarIconController.getIconBlacklist(getContext(), newValue)
.contains("clock"));
updateClockVisibility();
}
diff --git a/packages/SystemUI/src/com/android/systemui/tuner/BatteryPreference.java b/packages/SystemUI/src/com/android/systemui/tuner/BatteryPreference.java
index 905b9a3..66372c3 100644
--- a/packages/SystemUI/src/com/android/systemui/tuner/BatteryPreference.java
+++ b/packages/SystemUI/src/com/android/systemui/tuner/BatteryPreference.java
@@ -64,7 +64,7 @@
@Override
public void onTuningChanged(String key, String newValue) {
if (StatusBarIconController.ICON_BLACKLIST.equals(key)) {
- mBlacklist = StatusBarIconController.getIconBlacklist(newValue);
+ mBlacklist = StatusBarIconController.getIconBlacklist(getContext(), newValue);
mBatteryEnabled = !mBlacklist.contains(mBattery);
}
if (!mHasSetValue) {
diff --git a/packages/SystemUI/src/com/android/systemui/tuner/ClockPreference.java b/packages/SystemUI/src/com/android/systemui/tuner/ClockPreference.java
index a526603..f7d0c9f 100644
--- a/packages/SystemUI/src/com/android/systemui/tuner/ClockPreference.java
+++ b/packages/SystemUI/src/com/android/systemui/tuner/ClockPreference.java
@@ -61,7 +61,7 @@
public void onTuningChanged(String key, String newValue) {
if (StatusBarIconController.ICON_BLACKLIST.equals(key)) {
mReceivedClock = true;
- mBlacklist = StatusBarIconController.getIconBlacklist(newValue);
+ mBlacklist = StatusBarIconController.getIconBlacklist(getContext(), newValue);
mClockEnabled = !mBlacklist.contains(mClock);
} else if (Clock.CLOCK_SECONDS.equals(key)) {
mReceivedSeconds = true;
diff --git a/packages/SystemUI/src/com/android/systemui/tuner/StatusBarSwitch.java b/packages/SystemUI/src/com/android/systemui/tuner/StatusBarSwitch.java
index 6f23e20..de8ccfa 100644
--- a/packages/SystemUI/src/com/android/systemui/tuner/StatusBarSwitch.java
+++ b/packages/SystemUI/src/com/android/systemui/tuner/StatusBarSwitch.java
@@ -57,7 +57,7 @@
if (!StatusBarIconController.ICON_BLACKLIST.equals(key)) {
return;
}
- mBlacklist = StatusBarIconController.getIconBlacklist(newValue);
+ mBlacklist = StatusBarIconController.getIconBlacklist(getContext(), newValue);
setChecked(!mBlacklist.contains(getKey()));
}
diff --git a/packages/SystemUI/src/com/android/systemui/tuner/TunerServiceImpl.java b/packages/SystemUI/src/com/android/systemui/tuner/TunerServiceImpl.java
index 19f0ba2..142fdc2 100644
--- a/packages/SystemUI/src/com/android/systemui/tuner/TunerServiceImpl.java
+++ b/packages/SystemUI/src/com/android/systemui/tuner/TunerServiceImpl.java
@@ -117,7 +117,7 @@
String blacklistStr = getValue(StatusBarIconController.ICON_BLACKLIST);
if (blacklistStr != null) {
ArraySet<String> iconBlacklist =
- StatusBarIconController.getIconBlacklist(blacklistStr);
+ StatusBarIconController.getIconBlacklist(mContext, blacklistStr);
iconBlacklist.add("rotate");
iconBlacklist.add("headset");