Loading packages/SystemUI/src/com/android/systemui/battery/AccessorizedBatteryDrawable.kt +5 −0 Original line number Diff line number Diff line Loading @@ -178,6 +178,11 @@ class AccessorizedBatteryDrawable( mainBatteryDrawable.charging = charging } /** Returns whether the battery is currently charging. */ fun getCharging(): Boolean { return mainBatteryDrawable.charging } /** Sets the current level (out of 100) of the battery. */ fun setBatteryLevel(level: Int) { mainBatteryDrawable.setBatteryLevel(level) Loading packages/SystemUI/src/com/android/systemui/battery/BatteryMeterView.java +24 −6 Original line number Diff line number Diff line Loading @@ -77,8 +77,9 @@ public class BatteryMeterView extends LinearLayout implements DarkReceiver { private int mShowPercentMode = MODE_DEFAULT; private boolean mShowPercentAvailable; private String mEstimateText = null; private boolean mCharging; private boolean mPluggedIn; private boolean mIsBatteryDefender; private boolean mIsIncompatibleCharging; private boolean mDisplayShieldEnabled; // Error state where we know nothing about the current battery state private boolean mBatteryStateUnknown; Loading Loading @@ -202,10 +203,10 @@ public class BatteryMeterView extends LinearLayout implements DarkReceiver { * @param pluggedIn whether the device is plugged in or not */ public void onBatteryLevelChanged(@IntRange(from = 0, to = 100) int level, boolean pluggedIn) { mDrawable.setCharging(pluggedIn); mDrawable.setBatteryLevel(level); mCharging = pluggedIn; mPluggedIn = pluggedIn; mLevel = level; mDrawable.setCharging(isCharging()); mDrawable.setBatteryLevel(level); updatePercentText(); } Loading @@ -224,6 +225,15 @@ public class BatteryMeterView extends LinearLayout implements DarkReceiver { } } void onIsIncompatibleChargingChanged(boolean isIncompatibleCharging) { boolean valueChanged = mIsIncompatibleCharging != isIncompatibleCharging; mIsIncompatibleCharging = isIncompatibleCharging; if (valueChanged) { mDrawable.setCharging(isCharging()); updateContentDescription(); } } private TextView loadPercentView() { return (TextView) LayoutInflater.from(getContext()) .inflate(R.layout.battery_percentage_view, null); Loading Loading @@ -263,7 +273,7 @@ public class BatteryMeterView extends LinearLayout implements DarkReceiver { } if (mBatteryPercentView != null) { if (mShowPercentMode == MODE_ESTIMATE && !mCharging) { if (mShowPercentMode == MODE_ESTIMATE && !isCharging()) { mBatteryEstimateFetcher.fetchBatteryTimeRemainingEstimate( (String estimate) -> { if (mBatteryPercentView == null) { Loading Loading @@ -316,7 +326,7 @@ public class BatteryMeterView extends LinearLayout implements DarkReceiver { } else if (mIsBatteryDefender) { contentDescription = context.getString(R.string.accessibility_battery_level_charging_paused, mLevel); } else if (mCharging) { } else if (isCharging()) { contentDescription = context.getString(R.string.accessibility_battery_level_charging, mLevel); } else { Loading Loading @@ -462,16 +472,24 @@ public class BatteryMeterView extends LinearLayout implements DarkReceiver { } } private boolean isCharging() { return mPluggedIn && !mIsIncompatibleCharging; } public void dump(PrintWriter pw, String[] args) { String powerSave = mDrawable == null ? null : mDrawable.getPowerSaveEnabled() + ""; String displayShield = mDrawable == null ? null : mDrawable.getDisplayShield() + ""; String charging = mDrawable == null ? null : mDrawable.getCharging() + ""; CharSequence percent = mBatteryPercentView == null ? null : mBatteryPercentView.getText(); pw.println(" BatteryMeterView:"); pw.println(" mDrawable.getPowerSave: " + powerSave); pw.println(" mDrawable.getDisplayShield: " + displayShield); pw.println(" mDrawable.getCharging: " + charging); pw.println(" mBatteryPercentView.getText(): " + percent); pw.println(" mTextColor: #" + Integer.toHexString(mTextColor)); pw.println(" mBatteryStateUnknown: " + mBatteryStateUnknown); pw.println(" mIsIncompatibleCharging: " + mIsIncompatibleCharging); pw.println(" mPluggedIn: " + mPluggedIn); pw.println(" mLevel: " + mLevel); pw.println(" mMode: " + mShowPercentMode); } Loading packages/SystemUI/src/com/android/systemui/battery/BatteryMeterViewController.java +12 −0 Original line number Diff line number Diff line Loading @@ -32,6 +32,8 @@ import androidx.annotation.NonNull; import com.android.systemui.R; import com.android.systemui.dagger.qualifiers.Main; import com.android.systemui.flags.FeatureFlags; import com.android.systemui.flags.Flags; import com.android.systemui.settings.UserTracker; import com.android.systemui.statusbar.phone.StatusBarIconController; import com.android.systemui.statusbar.phone.StatusBarLocation; Loading @@ -50,6 +52,7 @@ public class BatteryMeterViewController extends ViewController<BatteryMeterView> private final TunerService mTunerService; private final Handler mMainHandler; private final ContentResolver mContentResolver; private final FeatureFlags mFeatureFlags; private final BatteryController mBatteryController; private final String mSlotBattery; Loading Loading @@ -98,6 +101,13 @@ public class BatteryMeterViewController extends ViewController<BatteryMeterView> mView.onIsBatteryDefenderChanged(isBatteryDefender); } @Override public void onIsIncompatibleChargingChanged(boolean isIncompatibleCharging) { if (mFeatureFlags.isEnabled(Flags.INCOMPATIBLE_CHARGING_BATTERY_ICON)) { mView.onIsIncompatibleChargingChanged(isIncompatibleCharging); } } @Override public void dump(@NonNull PrintWriter pw, @NonNull String[] args) { pw.print(super.toString()); Loading Loading @@ -129,6 +139,7 @@ public class BatteryMeterViewController extends ViewController<BatteryMeterView> TunerService tunerService, @Main Handler mainHandler, ContentResolver contentResolver, FeatureFlags featureFlags, BatteryController batteryController) { super(view); mLocation = location; Loading @@ -137,6 +148,7 @@ public class BatteryMeterViewController extends ViewController<BatteryMeterView> mTunerService = tunerService; mMainHandler = mainHandler; mContentResolver = contentResolver; mFeatureFlags = featureFlags; mBatteryController = batteryController; mView.setBatteryEstimateFetcher(mBatteryController::getEstimatedTimeRemainingString); Loading packages/SystemUI/src/com/android/systemui/shade/ShadeViewProviderModule.kt +2 −0 Original line number Diff line number Diff line Loading @@ -273,6 +273,7 @@ abstract class ShadeViewProviderModule { tunerService: TunerService, @Main mainHandler: Handler, contentResolver: ContentResolver, featureFlags: FeatureFlags, batteryController: BatteryController, ): BatteryMeterViewController { return BatteryMeterViewController( Loading @@ -283,6 +284,7 @@ abstract class ShadeViewProviderModule { tunerService, mainHandler, contentResolver, featureFlags, batteryController, ) } Loading packages/SystemUI/src/com/android/systemui/statusbar/policy/BatteryController.java +3 −0 Original line number Diff line number Diff line Loading @@ -162,6 +162,9 @@ public interface BatteryController extends DemoMode, default void onIsBatteryDefenderChanged(boolean isBatteryDefender) { } default void onIsIncompatibleChargingChanged(boolean isIncompatibleCharging) { } @Override default void dump(@NonNull PrintWriter pw, @NonNull String[] args) { pw.println(this); Loading Loading
packages/SystemUI/src/com/android/systemui/battery/AccessorizedBatteryDrawable.kt +5 −0 Original line number Diff line number Diff line Loading @@ -178,6 +178,11 @@ class AccessorizedBatteryDrawable( mainBatteryDrawable.charging = charging } /** Returns whether the battery is currently charging. */ fun getCharging(): Boolean { return mainBatteryDrawable.charging } /** Sets the current level (out of 100) of the battery. */ fun setBatteryLevel(level: Int) { mainBatteryDrawable.setBatteryLevel(level) Loading
packages/SystemUI/src/com/android/systemui/battery/BatteryMeterView.java +24 −6 Original line number Diff line number Diff line Loading @@ -77,8 +77,9 @@ public class BatteryMeterView extends LinearLayout implements DarkReceiver { private int mShowPercentMode = MODE_DEFAULT; private boolean mShowPercentAvailable; private String mEstimateText = null; private boolean mCharging; private boolean mPluggedIn; private boolean mIsBatteryDefender; private boolean mIsIncompatibleCharging; private boolean mDisplayShieldEnabled; // Error state where we know nothing about the current battery state private boolean mBatteryStateUnknown; Loading Loading @@ -202,10 +203,10 @@ public class BatteryMeterView extends LinearLayout implements DarkReceiver { * @param pluggedIn whether the device is plugged in or not */ public void onBatteryLevelChanged(@IntRange(from = 0, to = 100) int level, boolean pluggedIn) { mDrawable.setCharging(pluggedIn); mDrawable.setBatteryLevel(level); mCharging = pluggedIn; mPluggedIn = pluggedIn; mLevel = level; mDrawable.setCharging(isCharging()); mDrawable.setBatteryLevel(level); updatePercentText(); } Loading @@ -224,6 +225,15 @@ public class BatteryMeterView extends LinearLayout implements DarkReceiver { } } void onIsIncompatibleChargingChanged(boolean isIncompatibleCharging) { boolean valueChanged = mIsIncompatibleCharging != isIncompatibleCharging; mIsIncompatibleCharging = isIncompatibleCharging; if (valueChanged) { mDrawable.setCharging(isCharging()); updateContentDescription(); } } private TextView loadPercentView() { return (TextView) LayoutInflater.from(getContext()) .inflate(R.layout.battery_percentage_view, null); Loading Loading @@ -263,7 +273,7 @@ public class BatteryMeterView extends LinearLayout implements DarkReceiver { } if (mBatteryPercentView != null) { if (mShowPercentMode == MODE_ESTIMATE && !mCharging) { if (mShowPercentMode == MODE_ESTIMATE && !isCharging()) { mBatteryEstimateFetcher.fetchBatteryTimeRemainingEstimate( (String estimate) -> { if (mBatteryPercentView == null) { Loading Loading @@ -316,7 +326,7 @@ public class BatteryMeterView extends LinearLayout implements DarkReceiver { } else if (mIsBatteryDefender) { contentDescription = context.getString(R.string.accessibility_battery_level_charging_paused, mLevel); } else if (mCharging) { } else if (isCharging()) { contentDescription = context.getString(R.string.accessibility_battery_level_charging, mLevel); } else { Loading Loading @@ -462,16 +472,24 @@ public class BatteryMeterView extends LinearLayout implements DarkReceiver { } } private boolean isCharging() { return mPluggedIn && !mIsIncompatibleCharging; } public void dump(PrintWriter pw, String[] args) { String powerSave = mDrawable == null ? null : mDrawable.getPowerSaveEnabled() + ""; String displayShield = mDrawable == null ? null : mDrawable.getDisplayShield() + ""; String charging = mDrawable == null ? null : mDrawable.getCharging() + ""; CharSequence percent = mBatteryPercentView == null ? null : mBatteryPercentView.getText(); pw.println(" BatteryMeterView:"); pw.println(" mDrawable.getPowerSave: " + powerSave); pw.println(" mDrawable.getDisplayShield: " + displayShield); pw.println(" mDrawable.getCharging: " + charging); pw.println(" mBatteryPercentView.getText(): " + percent); pw.println(" mTextColor: #" + Integer.toHexString(mTextColor)); pw.println(" mBatteryStateUnknown: " + mBatteryStateUnknown); pw.println(" mIsIncompatibleCharging: " + mIsIncompatibleCharging); pw.println(" mPluggedIn: " + mPluggedIn); pw.println(" mLevel: " + mLevel); pw.println(" mMode: " + mShowPercentMode); } Loading
packages/SystemUI/src/com/android/systemui/battery/BatteryMeterViewController.java +12 −0 Original line number Diff line number Diff line Loading @@ -32,6 +32,8 @@ import androidx.annotation.NonNull; import com.android.systemui.R; import com.android.systemui.dagger.qualifiers.Main; import com.android.systemui.flags.FeatureFlags; import com.android.systemui.flags.Flags; import com.android.systemui.settings.UserTracker; import com.android.systemui.statusbar.phone.StatusBarIconController; import com.android.systemui.statusbar.phone.StatusBarLocation; Loading @@ -50,6 +52,7 @@ public class BatteryMeterViewController extends ViewController<BatteryMeterView> private final TunerService mTunerService; private final Handler mMainHandler; private final ContentResolver mContentResolver; private final FeatureFlags mFeatureFlags; private final BatteryController mBatteryController; private final String mSlotBattery; Loading Loading @@ -98,6 +101,13 @@ public class BatteryMeterViewController extends ViewController<BatteryMeterView> mView.onIsBatteryDefenderChanged(isBatteryDefender); } @Override public void onIsIncompatibleChargingChanged(boolean isIncompatibleCharging) { if (mFeatureFlags.isEnabled(Flags.INCOMPATIBLE_CHARGING_BATTERY_ICON)) { mView.onIsIncompatibleChargingChanged(isIncompatibleCharging); } } @Override public void dump(@NonNull PrintWriter pw, @NonNull String[] args) { pw.print(super.toString()); Loading Loading @@ -129,6 +139,7 @@ public class BatteryMeterViewController extends ViewController<BatteryMeterView> TunerService tunerService, @Main Handler mainHandler, ContentResolver contentResolver, FeatureFlags featureFlags, BatteryController batteryController) { super(view); mLocation = location; Loading @@ -137,6 +148,7 @@ public class BatteryMeterViewController extends ViewController<BatteryMeterView> mTunerService = tunerService; mMainHandler = mainHandler; mContentResolver = contentResolver; mFeatureFlags = featureFlags; mBatteryController = batteryController; mView.setBatteryEstimateFetcher(mBatteryController::getEstimatedTimeRemainingString); Loading
packages/SystemUI/src/com/android/systemui/shade/ShadeViewProviderModule.kt +2 −0 Original line number Diff line number Diff line Loading @@ -273,6 +273,7 @@ abstract class ShadeViewProviderModule { tunerService: TunerService, @Main mainHandler: Handler, contentResolver: ContentResolver, featureFlags: FeatureFlags, batteryController: BatteryController, ): BatteryMeterViewController { return BatteryMeterViewController( Loading @@ -283,6 +284,7 @@ abstract class ShadeViewProviderModule { tunerService, mainHandler, contentResolver, featureFlags, batteryController, ) } Loading
packages/SystemUI/src/com/android/systemui/statusbar/policy/BatteryController.java +3 −0 Original line number Diff line number Diff line Loading @@ -162,6 +162,9 @@ public interface BatteryController extends DemoMode, default void onIsBatteryDefenderChanged(boolean isBatteryDefender) { } default void onIsIncompatibleChargingChanged(boolean isIncompatibleCharging) { } @Override default void dump(@NonNull PrintWriter pw, @NonNull String[] args) { pw.println(this); Loading