Merge "[SB] Invalidate battery drawable on shield change; dump more info." into udc-qpr-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
f446443067
@@ -20,6 +20,7 @@ import com.android.keyguard.CarrierText;
|
|||||||
import com.android.systemui.R;
|
import com.android.systemui.R;
|
||||||
import com.android.systemui.battery.BatteryMeterView;
|
import com.android.systemui.battery.BatteryMeterView;
|
||||||
import com.android.systemui.statusbar.phone.KeyguardStatusBarView;
|
import com.android.systemui.statusbar.phone.KeyguardStatusBarView;
|
||||||
|
import com.android.systemui.statusbar.phone.StatusBarLocation;
|
||||||
import com.android.systemui.statusbar.phone.userswitcher.StatusBarUserSwitcherContainer;
|
import com.android.systemui.statusbar.phone.userswitcher.StatusBarUserSwitcherContainer;
|
||||||
|
|
||||||
import dagger.Module;
|
import dagger.Module;
|
||||||
@@ -41,6 +42,13 @@ public abstract class KeyguardStatusBarViewModule {
|
|||||||
return view.findViewById(R.id.battery);
|
return view.findViewById(R.id.battery);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/** */
|
||||||
|
@Provides
|
||||||
|
@KeyguardStatusBarViewScope
|
||||||
|
static StatusBarLocation getStatusBarLocation() {
|
||||||
|
return StatusBarLocation.KEYGUARD;
|
||||||
|
}
|
||||||
|
|
||||||
/** */
|
/** */
|
||||||
@Provides
|
@Provides
|
||||||
@KeyguardStatusBarViewScope
|
@KeyguardStatusBarViewScope
|
||||||
|
|||||||
@@ -87,6 +87,10 @@ class AccessorizedBatteryDrawable(
|
|||||||
}
|
}
|
||||||
|
|
||||||
var displayShield: Boolean = false
|
var displayShield: Boolean = false
|
||||||
|
set(value) {
|
||||||
|
field = value
|
||||||
|
postInvalidate()
|
||||||
|
}
|
||||||
|
|
||||||
private fun updateSizes() {
|
private fun updateSizes() {
|
||||||
val b = bounds
|
val b = bounds
|
||||||
@@ -204,4 +208,11 @@ class AccessorizedBatteryDrawable(
|
|||||||
val shieldPathString = context.resources.getString(R.string.config_batterymeterShieldPath)
|
val shieldPathString = context.resources.getString(R.string.config_batterymeterShieldPath)
|
||||||
shieldPath.set(PathParser.createPathFromPathData(shieldPathString))
|
shieldPath.set(PathParser.createPathFromPathData(shieldPathString))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private val invalidateRunnable: () -> Unit = { invalidateSelf() }
|
||||||
|
|
||||||
|
private fun postInvalidate() {
|
||||||
|
unscheduleSelf(invalidateRunnable)
|
||||||
|
scheduleSelf(invalidateRunnable, 0)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -464,9 +464,11 @@ public class BatteryMeterView extends LinearLayout implements DarkReceiver {
|
|||||||
|
|
||||||
public void dump(PrintWriter pw, String[] args) {
|
public void dump(PrintWriter pw, String[] args) {
|
||||||
String powerSave = mDrawable == null ? null : mDrawable.getPowerSaveEnabled() + "";
|
String powerSave = mDrawable == null ? null : mDrawable.getPowerSaveEnabled() + "";
|
||||||
|
String displayShield = mDrawable == null ? null : mDrawable.getDisplayShield() + "";
|
||||||
CharSequence percent = mBatteryPercentView == null ? null : mBatteryPercentView.getText();
|
CharSequence percent = mBatteryPercentView == null ? null : mBatteryPercentView.getText();
|
||||||
pw.println(" BatteryMeterView:");
|
pw.println(" BatteryMeterView:");
|
||||||
pw.println(" mDrawable.getPowerSave: " + powerSave);
|
pw.println(" mDrawable.getPowerSave: " + powerSave);
|
||||||
|
pw.println(" mDrawable.getDisplayShield: " + displayShield);
|
||||||
pw.println(" mBatteryPercentView.getText(): " + percent);
|
pw.println(" mBatteryPercentView.getText(): " + percent);
|
||||||
pw.println(" mTextColor: #" + Integer.toHexString(mTextColor));
|
pw.println(" mTextColor: #" + Integer.toHexString(mTextColor));
|
||||||
pw.println(" mBatteryStateUnknown: " + mBatteryStateUnknown);
|
pw.println(" mBatteryStateUnknown: " + mBatteryStateUnknown);
|
||||||
|
|||||||
@@ -35,11 +35,14 @@ import com.android.systemui.flags.FeatureFlags;
|
|||||||
import com.android.systemui.flags.Flags;
|
import com.android.systemui.flags.Flags;
|
||||||
import com.android.systemui.settings.UserTracker;
|
import com.android.systemui.settings.UserTracker;
|
||||||
import com.android.systemui.statusbar.phone.StatusBarIconController;
|
import com.android.systemui.statusbar.phone.StatusBarIconController;
|
||||||
|
import com.android.systemui.statusbar.phone.StatusBarLocation;
|
||||||
import com.android.systemui.statusbar.policy.BatteryController;
|
import com.android.systemui.statusbar.policy.BatteryController;
|
||||||
import com.android.systemui.statusbar.policy.ConfigurationController;
|
import com.android.systemui.statusbar.policy.ConfigurationController;
|
||||||
import com.android.systemui.tuner.TunerService;
|
import com.android.systemui.tuner.TunerService;
|
||||||
import com.android.systemui.util.ViewController;
|
import com.android.systemui.util.ViewController;
|
||||||
|
|
||||||
|
import java.io.PrintWriter;
|
||||||
|
|
||||||
import javax.inject.Inject;
|
import javax.inject.Inject;
|
||||||
|
|
||||||
/** Controller for {@link BatteryMeterView}. **/
|
/** Controller for {@link BatteryMeterView}. **/
|
||||||
@@ -53,6 +56,7 @@ public class BatteryMeterViewController extends ViewController<BatteryMeterView>
|
|||||||
private final String mSlotBattery;
|
private final String mSlotBattery;
|
||||||
private final SettingObserver mSettingObserver;
|
private final SettingObserver mSettingObserver;
|
||||||
private final UserTracker mUserTracker;
|
private final UserTracker mUserTracker;
|
||||||
|
private final StatusBarLocation mLocation;
|
||||||
|
|
||||||
private final ConfigurationController.ConfigurationListener mConfigurationListener =
|
private final ConfigurationController.ConfigurationListener mConfigurationListener =
|
||||||
new ConfigurationController.ConfigurationListener() {
|
new ConfigurationController.ConfigurationListener() {
|
||||||
@@ -94,6 +98,13 @@ public class BatteryMeterViewController extends ViewController<BatteryMeterView>
|
|||||||
public void onIsBatteryDefenderChanged(boolean isBatteryDefender) {
|
public void onIsBatteryDefenderChanged(boolean isBatteryDefender) {
|
||||||
mView.onIsBatteryDefenderChanged(isBatteryDefender);
|
mView.onIsBatteryDefenderChanged(isBatteryDefender);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void dump(@NonNull PrintWriter pw, @NonNull String[] args) {
|
||||||
|
pw.print(super.toString());
|
||||||
|
pw.println(" location=" + mLocation);
|
||||||
|
mView.dump(pw, args);
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
private final UserTracker.Callback mUserChangedCallback =
|
private final UserTracker.Callback mUserChangedCallback =
|
||||||
@@ -113,6 +124,7 @@ public class BatteryMeterViewController extends ViewController<BatteryMeterView>
|
|||||||
@Inject
|
@Inject
|
||||||
public BatteryMeterViewController(
|
public BatteryMeterViewController(
|
||||||
BatteryMeterView view,
|
BatteryMeterView view,
|
||||||
|
StatusBarLocation location,
|
||||||
UserTracker userTracker,
|
UserTracker userTracker,
|
||||||
ConfigurationController configurationController,
|
ConfigurationController configurationController,
|
||||||
TunerService tunerService,
|
TunerService tunerService,
|
||||||
@@ -121,6 +133,7 @@ public class BatteryMeterViewController extends ViewController<BatteryMeterView>
|
|||||||
FeatureFlags featureFlags,
|
FeatureFlags featureFlags,
|
||||||
BatteryController batteryController) {
|
BatteryController batteryController) {
|
||||||
super(view);
|
super(view);
|
||||||
|
mLocation = location;
|
||||||
mUserTracker = userTracker;
|
mUserTracker = userTracker;
|
||||||
mConfigurationController = configurationController;
|
mConfigurationController = configurationController;
|
||||||
mTunerService = tunerService;
|
mTunerService = tunerService;
|
||||||
|
|||||||
@@ -50,6 +50,7 @@ import com.android.systemui.statusbar.notification.row.dagger.NotificationShelfC
|
|||||||
import com.android.systemui.statusbar.notification.shelf.ui.viewbinder.NotificationShelfViewBinderWrapperControllerImpl
|
import com.android.systemui.statusbar.notification.shelf.ui.viewbinder.NotificationShelfViewBinderWrapperControllerImpl
|
||||||
import com.android.systemui.statusbar.notification.stack.NotificationStackScrollLayout
|
import com.android.systemui.statusbar.notification.stack.NotificationStackScrollLayout
|
||||||
import com.android.systemui.statusbar.phone.KeyguardBottomAreaView
|
import com.android.systemui.statusbar.phone.KeyguardBottomAreaView
|
||||||
|
import com.android.systemui.statusbar.phone.StatusBarLocation
|
||||||
import com.android.systemui.statusbar.phone.StatusIconContainer
|
import com.android.systemui.statusbar.phone.StatusIconContainer
|
||||||
import com.android.systemui.statusbar.phone.TapAgainView
|
import com.android.systemui.statusbar.phone.TapAgainView
|
||||||
import com.android.systemui.statusbar.policy.BatteryController
|
import com.android.systemui.statusbar.policy.BatteryController
|
||||||
@@ -286,6 +287,7 @@ abstract class ShadeModule {
|
|||||||
): BatteryMeterViewController {
|
): BatteryMeterViewController {
|
||||||
return BatteryMeterViewController(
|
return BatteryMeterViewController(
|
||||||
batteryMeterView,
|
batteryMeterView,
|
||||||
|
StatusBarLocation.QS,
|
||||||
userTracker,
|
userTracker,
|
||||||
configurationController,
|
configurationController,
|
||||||
tunerService,
|
tunerService,
|
||||||
|
|||||||
@@ -26,6 +26,7 @@ import com.android.systemui.statusbar.phone.PhoneStatusBarTransitions;
|
|||||||
import com.android.systemui.statusbar.phone.PhoneStatusBarView;
|
import com.android.systemui.statusbar.phone.PhoneStatusBarView;
|
||||||
import com.android.systemui.statusbar.phone.PhoneStatusBarViewController;
|
import com.android.systemui.statusbar.phone.PhoneStatusBarViewController;
|
||||||
import com.android.systemui.statusbar.phone.StatusBarBoundsProvider;
|
import com.android.systemui.statusbar.phone.StatusBarBoundsProvider;
|
||||||
|
import com.android.systemui.statusbar.phone.StatusBarLocation;
|
||||||
import com.android.systemui.statusbar.phone.SystemBarAttributesListener;
|
import com.android.systemui.statusbar.phone.SystemBarAttributesListener;
|
||||||
import com.android.systemui.statusbar.phone.fragment.CollapsedStatusBarFragment;
|
import com.android.systemui.statusbar.phone.fragment.CollapsedStatusBarFragment;
|
||||||
import com.android.systemui.statusbar.phone.userswitcher.StatusBarUserSwitcherContainer;
|
import com.android.systemui.statusbar.phone.userswitcher.StatusBarUserSwitcherContainer;
|
||||||
@@ -69,6 +70,13 @@ public interface StatusBarFragmentModule {
|
|||||||
return view.findViewById(R.id.battery);
|
return view.findViewById(R.id.battery);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/** */
|
||||||
|
@Provides
|
||||||
|
@StatusBarFragmentScope
|
||||||
|
static StatusBarLocation getStatusBarLocation() {
|
||||||
|
return StatusBarLocation.HOME;
|
||||||
|
}
|
||||||
|
|
||||||
/** */
|
/** */
|
||||||
@Provides
|
@Provides
|
||||||
@StatusBarFragmentScope
|
@StatusBarFragmentScope
|
||||||
|
|||||||
@@ -19,6 +19,9 @@ package com.android.systemui.statusbar.policy;
|
|||||||
import android.annotation.Nullable;
|
import android.annotation.Nullable;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
|
|
||||||
|
import androidx.annotation.NonNull;
|
||||||
|
|
||||||
|
import com.android.systemui.Dumpable;
|
||||||
import com.android.systemui.demomode.DemoMode;
|
import com.android.systemui.demomode.DemoMode;
|
||||||
import com.android.systemui.statusbar.policy.BatteryController.BatteryStateChangeCallback;
|
import com.android.systemui.statusbar.policy.BatteryController.BatteryStateChangeCallback;
|
||||||
|
|
||||||
@@ -136,7 +139,7 @@ public interface BatteryController extends DemoMode,
|
|||||||
* A listener that will be notified whenever a change in battery level or power save mode has
|
* A listener that will be notified whenever a change in battery level or power save mode has
|
||||||
* occurred.
|
* occurred.
|
||||||
*/
|
*/
|
||||||
interface BatteryStateChangeCallback {
|
interface BatteryStateChangeCallback extends Dumpable {
|
||||||
|
|
||||||
default void onBatteryLevelChanged(int level, boolean pluggedIn, boolean charging) {
|
default void onBatteryLevelChanged(int level, boolean pluggedIn, boolean charging) {
|
||||||
}
|
}
|
||||||
@@ -158,6 +161,11 @@ public interface BatteryController extends DemoMode,
|
|||||||
|
|
||||||
default void onIsBatteryDefenderChanged(boolean isBatteryDefender) {
|
default void onIsBatteryDefenderChanged(boolean isBatteryDefender) {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
default void dump(@NonNull PrintWriter pw, @NonNull String[] args) {
|
||||||
|
pw.println(this);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -22,6 +22,7 @@ import static android.os.BatteryManager.EXTRA_CHARGING_STATUS;
|
|||||||
import static android.os.BatteryManager.EXTRA_PRESENT;
|
import static android.os.BatteryManager.EXTRA_PRESENT;
|
||||||
|
|
||||||
import static com.android.settingslib.fuelgauge.BatterySaverLogging.SAVER_ENABLED_QS;
|
import static com.android.settingslib.fuelgauge.BatterySaverLogging.SAVER_ENABLED_QS;
|
||||||
|
import static com.android.systemui.util.DumpUtilsKt.asIndenting;
|
||||||
|
|
||||||
import android.annotation.WorkerThread;
|
import android.annotation.WorkerThread;
|
||||||
import android.content.BroadcastReceiver;
|
import android.content.BroadcastReceiver;
|
||||||
@@ -33,6 +34,7 @@ import android.os.Bundle;
|
|||||||
import android.os.Handler;
|
import android.os.Handler;
|
||||||
import android.os.PowerManager;
|
import android.os.PowerManager;
|
||||||
import android.os.PowerSaveState;
|
import android.os.PowerSaveState;
|
||||||
|
import android.util.IndentingPrintWriter;
|
||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
|
|
||||||
@@ -157,15 +159,29 @@ public class BatteryControllerImpl extends BroadcastReceiver implements BatteryC
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void dump(PrintWriter pw, String[] args) {
|
public void dump(@NonNull PrintWriter pw, @NonNull String[] args) {
|
||||||
pw.println("BatteryController state:");
|
IndentingPrintWriter ipw = asIndenting(pw);
|
||||||
pw.print(" mLevel="); pw.println(mLevel);
|
ipw.println("BatteryController state:");
|
||||||
pw.print(" mPluggedIn="); pw.println(mPluggedIn);
|
ipw.increaseIndent();
|
||||||
pw.print(" mCharging="); pw.println(mCharging);
|
ipw.print("mHasReceivedBattery="); ipw.println(mHasReceivedBattery);
|
||||||
pw.print(" mCharged="); pw.println(mCharged);
|
ipw.print("mLevel="); ipw.println(mLevel);
|
||||||
pw.print(" mIsBatteryDefender="); pw.println(mIsBatteryDefender);
|
ipw.print("mPluggedIn="); ipw.println(mPluggedIn);
|
||||||
pw.print(" mPowerSave="); pw.println(mPowerSave);
|
ipw.print("mCharging="); ipw.println(mCharging);
|
||||||
pw.print(" mStateUnknown="); pw.println(mStateUnknown);
|
ipw.print("mCharged="); ipw.println(mCharged);
|
||||||
|
ipw.print("mIsBatteryDefender="); ipw.println(mIsBatteryDefender);
|
||||||
|
ipw.print("mPowerSave="); ipw.println(mPowerSave);
|
||||||
|
ipw.print("mStateUnknown="); ipw.println(mStateUnknown);
|
||||||
|
ipw.println("Callbacks:------------------");
|
||||||
|
// Since the above lines are already indented, we need to indent twice for the callbacks.
|
||||||
|
ipw.increaseIndent();
|
||||||
|
synchronized (mChangeCallbacks) {
|
||||||
|
final int n = mChangeCallbacks.size();
|
||||||
|
for (int i = 0; i < n; i++) {
|
||||||
|
mChangeCallbacks.get(i).dump(ipw, args);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
ipw.decreaseIndent();
|
||||||
|
ipw.println("------------------");
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -37,6 +37,7 @@ import com.android.systemui.SysuiTestCase;
|
|||||||
import com.android.systemui.flags.FakeFeatureFlags;
|
import com.android.systemui.flags.FakeFeatureFlags;
|
||||||
import com.android.systemui.flags.Flags;
|
import com.android.systemui.flags.Flags;
|
||||||
import com.android.systemui.settings.UserTracker;
|
import com.android.systemui.settings.UserTracker;
|
||||||
|
import com.android.systemui.statusbar.phone.StatusBarLocation;
|
||||||
import com.android.systemui.statusbar.policy.BatteryController;
|
import com.android.systemui.statusbar.policy.BatteryController;
|
||||||
import com.android.systemui.statusbar.policy.ConfigurationController;
|
import com.android.systemui.statusbar.policy.ConfigurationController;
|
||||||
import com.android.systemui.tuner.TunerService;
|
import com.android.systemui.tuner.TunerService;
|
||||||
@@ -153,6 +154,7 @@ public class BatteryMeterViewControllerTest extends SysuiTestCase {
|
|||||||
private void initController() {
|
private void initController() {
|
||||||
mController = new BatteryMeterViewController(
|
mController = new BatteryMeterViewController(
|
||||||
mBatteryMeterView,
|
mBatteryMeterView,
|
||||||
|
StatusBarLocation.HOME,
|
||||||
mUserTracker,
|
mUserTracker,
|
||||||
mConfigurationController,
|
mConfigurationController,
|
||||||
mTunerService,
|
mTunerService,
|
||||||
|
|||||||
Reference in New Issue
Block a user