From 12124d7ecaf074fa1014d01934aeb24667e90cf4 Mon Sep 17 00:00:00 2001 From: Jason Monk Date: Tue, 26 Jul 2016 13:04:50 -0400 Subject: [PATCH] Fix double status bar icons Don't allow the status bar icon slot list to be changed because it confuses the relationship between StatusBarIconList and StatusBarIconController. Set it in the constructor to enforce this. Change-Id: Ieeea0a9efad88179d1cccc0e5702899333de2e72 Fixes: 28524184 (cherry picked from commit c6fe61c59c5a3a6ae691256c9afdde3820e3dd9e) --- .../android/systemui/statusbar/phone/PhoneStatusBar.java | 1 - .../systemui/statusbar/phone/StatusBarIconController.java | 8 ++------ .../systemui/statusbar/phone/StatusBarIconList.java | 7 ++----- 3 files changed, 4 insertions(+), 12 deletions(-) diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java index f7b258f62f098..323a2a56fa021 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java @@ -3442,7 +3442,6 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode, repositionNavigationBar(); updateRowStates(); - mIconController.defineSlots(); mScreenPinningRequest.onConfigurationChanged(); mNetworkController.onConfigurationChanged(); } 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 f415ae588c4e6..716a44ed01612 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarIconController.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarIconController.java @@ -112,6 +112,8 @@ public class StatusBarIconController extends StatusBarIconList implements Tunabl public StatusBarIconController(Context context, View statusBar, View keyguardStatusBar, PhoneStatusBar phoneStatusBar) { + super(context.getResources().getStringArray( + com.android.internal.R.array.config_statusBarIcons)); mContext = context; mPhoneStatusBar = phoneStatusBar; mSystemIconArea = (LinearLayout) statusBar.findViewById(R.id.system_icon_area); @@ -137,7 +139,6 @@ public class StatusBarIconController extends StatusBarIconList implements Tunabl mDarkModeIconColorSingleTone = context.getColor(R.color.dark_mode_icon_color_single_tone); mLightModeIconColorSingleTone = context.getColor(R.color.light_mode_icon_color_single_tone); mHandler = new Handler(); - defineSlots(); loadDimens(); TunerService.get(mContext).addTunable(this, ICON_BLACKLIST); @@ -197,11 +198,6 @@ public class StatusBarIconController extends StatusBarIconList implements Tunabl R.dimen.status_bar_icon_padding); } - public void defineSlots() { - defineSlots(mContext.getResources().getStringArray( - com.android.internal.R.array.config_statusBarIcons)); - } - private void addSystemIcon(int index, StatusBarIcon icon) { String slot = getSlot(index); int viewIndex = getViewIndex(index); diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarIconList.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarIconList.java index 97b31f248fa16..94adea0fcd7b6 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarIconList.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarIconList.java @@ -25,14 +25,11 @@ public class StatusBarIconList { private ArrayList mSlots = new ArrayList<>(); private ArrayList mIcons = new ArrayList<>(); - public void defineSlots(String[] slots) { - mSlots.clear(); + public StatusBarIconList(String[] slots) { final int N = slots.length; for (int i=0; i < N; i++) { mSlots.add(slots[i]); - if (mIcons.size() < mSlots.size()) { - mIcons.add(null); - } + mIcons.add(null); } }