From 54ff81b81eaa33c8ccc182566e0b33881664d790 Mon Sep 17 00:00:00 2001 From: Evan Laird Date: Wed, 13 Jun 2018 20:08:17 -0400 Subject: [PATCH] Add config to disallow the battery % option This config will be respected and override the value found in Settings if a user restores from a device which had SHOW_BATTERY_PERCENTAGE set to true. It is also respceted on the keyguard where we would typically show the battery percent if the device is charging. Percentage is still shown above QS though. Test: visual Change-Id: I1f59b68097ffcbb7dda9d2ec99ea0ba9062c6dff Bug: 80129194 --- core/res/res/values/config.xml | 2 ++ core/res/res/values/symbols.xml | 1 + .../src/com/android/systemui/BatteryMeterView.java | 12 ++++++++++-- .../statusbar/phone/KeyguardStatusBarView.java | 5 ++++- 4 files changed, 17 insertions(+), 3 deletions(-) diff --git a/core/res/res/values/config.xml b/core/res/res/values/config.xml index 0b5dd7e70e8bb..bd6f00daab784 100644 --- a/core/res/res/values/config.xml +++ b/core/res/res/values/config.xml @@ -3447,4 +3447,6 @@ false + + true diff --git a/core/res/res/values/symbols.xml b/core/res/res/values/symbols.xml index f80abc1a04f90..f39cc6921db08 100644 --- a/core/res/res/values/symbols.xml +++ b/core/res/res/values/symbols.xml @@ -2193,6 +2193,7 @@ + diff --git a/packages/SystemUI/src/com/android/systemui/BatteryMeterView.java b/packages/SystemUI/src/com/android/systemui/BatteryMeterView.java index 59501f0970c24..81dd5eb7fed88 100644 --- a/packages/SystemUI/src/com/android/systemui/BatteryMeterView.java +++ b/packages/SystemUI/src/com/android/systemui/BatteryMeterView.java @@ -55,6 +55,7 @@ import com.android.systemui.statusbar.policy.IconLogger; import com.android.systemui.tuner.TunerService; import com.android.systemui.tuner.TunerService.Tunable; import com.android.systemui.util.Utils.DisableStateTracker; +import com.android.systemui.R; import java.text.NumberFormat; @@ -72,6 +73,7 @@ public class BatteryMeterView extends LinearLayout implements private int mTextColor; private int mLevel; private boolean mForceShowPercent; + private boolean mShowPercentAvailable; private int mDarkModeBackgroundColor; private int mDarkModeFillColor; @@ -111,6 +113,9 @@ public class BatteryMeterView extends LinearLayout implements atts.recycle(); mSettingObserver = new SettingObserver(new Handler(context.getMainLooper())); + mShowPercentAvailable = context.getResources().getBoolean( + com.android.internal.R.bool.config_battery_percentage_setting_available); + addOnAttachStateChangeListener( new DisableStateTracker(DISABLE_NONE, DISABLE2_SYSTEM_ICONS)); @@ -259,8 +264,11 @@ public class BatteryMeterView extends LinearLayout implements private void updateShowPercent() { final boolean showing = mBatteryPercentView != null; - if (0 != Settings.System.getIntForUser(getContext().getContentResolver(), - SHOW_BATTERY_PERCENT, 0, mUser) || mForceShowPercent) { + final boolean systemSetting = 0 != Settings.System + .getIntForUser(getContext().getContentResolver(), + SHOW_BATTERY_PERCENT, 0, mUser); + + if ((mShowPercentAvailable && systemSetting) || mForceShowPercent) { if (!showing) { mBatteryPercentView = loadPercentView(); if (mTextColor != 0) mBatteryPercentView.setTextColor(mTextColor); diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/KeyguardStatusBarView.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/KeyguardStatusBarView.java index 0bd3cc795bc3f..db84222ec5a64 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/KeyguardStatusBarView.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/KeyguardStatusBarView.java @@ -67,6 +67,7 @@ public class KeyguardStatusBarView extends RelativeLayout private static final int LAYOUT_CUTOUT = 1; private static final int LAYOUT_NO_CUTOUT = 2; + private boolean mShowPercentAvailable; private boolean mBatteryCharging; private boolean mKeyguardUserSwitcherShowing; private boolean mBatteryListening; @@ -165,6 +166,8 @@ public class KeyguardStatusBarView extends RelativeLayout R.dimen.system_icons_super_container_avatarless_margin_end); mCutoutSideNudge = getResources().getDimensionPixelSize( R.dimen.display_cutout_margin_consumption); + mShowPercentAvailable = getContext().getResources().getBoolean( + com.android.internal.R.bool.config_battery_percentage_setting_available); } private void updateVisibilities() { @@ -186,7 +189,7 @@ public class KeyguardStatusBarView extends RelativeLayout mMultiUserSwitch.setVisibility(View.GONE); } } - mBatteryView.setForceShowPercent(mBatteryCharging); + mBatteryView.setForceShowPercent(mBatteryCharging && mShowPercentAvailable); } private void updateSystemIconsLayoutParams() {