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.battery.BatteryMeterView;
|
||||
import com.android.systemui.statusbar.phone.KeyguardStatusBarView;
|
||||
import com.android.systemui.statusbar.phone.StatusBarLocation;
|
||||
import com.android.systemui.statusbar.phone.userswitcher.StatusBarUserSwitcherContainer;
|
||||
|
||||
import dagger.Module;
|
||||
@@ -41,6 +42,13 @@ public abstract class KeyguardStatusBarViewModule {
|
||||
return view.findViewById(R.id.battery);
|
||||
}
|
||||
|
||||
/** */
|
||||
@Provides
|
||||
@KeyguardStatusBarViewScope
|
||||
static StatusBarLocation getStatusBarLocation() {
|
||||
return StatusBarLocation.KEYGUARD;
|
||||
}
|
||||
|
||||
/** */
|
||||
@Provides
|
||||
@KeyguardStatusBarViewScope
|
||||
|
||||
@@ -87,6 +87,10 @@ class AccessorizedBatteryDrawable(
|
||||
}
|
||||
|
||||
var displayShield: Boolean = false
|
||||
set(value) {
|
||||
field = value
|
||||
postInvalidate()
|
||||
}
|
||||
|
||||
private fun updateSizes() {
|
||||
val b = bounds
|
||||
@@ -204,4 +208,11 @@ class AccessorizedBatteryDrawable(
|
||||
val shieldPathString = context.resources.getString(R.string.config_batterymeterShieldPath)
|
||||
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) {
|
||||
String powerSave = mDrawable == null ? null : mDrawable.getPowerSaveEnabled() + "";
|
||||
String displayShield = mDrawable == null ? null : mDrawable.getDisplayShield() + "";
|
||||
CharSequence percent = mBatteryPercentView == null ? null : mBatteryPercentView.getText();
|
||||
pw.println(" BatteryMeterView:");
|
||||
pw.println(" mDrawable.getPowerSave: " + powerSave);
|
||||
pw.println(" mDrawable.getDisplayShield: " + displayShield);
|
||||
pw.println(" mBatteryPercentView.getText(): " + percent);
|
||||
pw.println(" mTextColor: #" + Integer.toHexString(mTextColor));
|
||||
pw.println(" mBatteryStateUnknown: " + mBatteryStateUnknown);
|
||||
|
||||
@@ -35,11 +35,14 @@ 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;
|
||||
import com.android.systemui.statusbar.policy.BatteryController;
|
||||
import com.android.systemui.statusbar.policy.ConfigurationController;
|
||||
import com.android.systemui.tuner.TunerService;
|
||||
import com.android.systemui.util.ViewController;
|
||||
|
||||
import java.io.PrintWriter;
|
||||
|
||||
import javax.inject.Inject;
|
||||
|
||||
/** Controller for {@link BatteryMeterView}. **/
|
||||
@@ -53,6 +56,7 @@ public class BatteryMeterViewController extends ViewController<BatteryMeterView>
|
||||
private final String mSlotBattery;
|
||||
private final SettingObserver mSettingObserver;
|
||||
private final UserTracker mUserTracker;
|
||||
private final StatusBarLocation mLocation;
|
||||
|
||||
private final ConfigurationController.ConfigurationListener mConfigurationListener =
|
||||
new ConfigurationController.ConfigurationListener() {
|
||||
@@ -94,6 +98,13 @@ public class BatteryMeterViewController extends ViewController<BatteryMeterView>
|
||||
public void onIsBatteryDefenderChanged(boolean 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 =
|
||||
@@ -113,6 +124,7 @@ public class BatteryMeterViewController extends ViewController<BatteryMeterView>
|
||||
@Inject
|
||||
public BatteryMeterViewController(
|
||||
BatteryMeterView view,
|
||||
StatusBarLocation location,
|
||||
UserTracker userTracker,
|
||||
ConfigurationController configurationController,
|
||||
TunerService tunerService,
|
||||
@@ -121,6 +133,7 @@ public class BatteryMeterViewController extends ViewController<BatteryMeterView>
|
||||
FeatureFlags featureFlags,
|
||||
BatteryController batteryController) {
|
||||
super(view);
|
||||
mLocation = location;
|
||||
mUserTracker = userTracker;
|
||||
mConfigurationController = configurationController;
|
||||
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.stack.NotificationStackScrollLayout
|
||||
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.TapAgainView
|
||||
import com.android.systemui.statusbar.policy.BatteryController
|
||||
@@ -286,6 +287,7 @@ abstract class ShadeModule {
|
||||
): BatteryMeterViewController {
|
||||
return BatteryMeterViewController(
|
||||
batteryMeterView,
|
||||
StatusBarLocation.QS,
|
||||
userTracker,
|
||||
configurationController,
|
||||
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.PhoneStatusBarViewController;
|
||||
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.fragment.CollapsedStatusBarFragment;
|
||||
import com.android.systemui.statusbar.phone.userswitcher.StatusBarUserSwitcherContainer;
|
||||
@@ -69,6 +70,13 @@ public interface StatusBarFragmentModule {
|
||||
return view.findViewById(R.id.battery);
|
||||
}
|
||||
|
||||
/** */
|
||||
@Provides
|
||||
@StatusBarFragmentScope
|
||||
static StatusBarLocation getStatusBarLocation() {
|
||||
return StatusBarLocation.HOME;
|
||||
}
|
||||
|
||||
/** */
|
||||
@Provides
|
||||
@StatusBarFragmentScope
|
||||
|
||||
@@ -19,6 +19,9 @@ package com.android.systemui.statusbar.policy;
|
||||
import android.annotation.Nullable;
|
||||
import android.view.View;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
|
||||
import com.android.systemui.Dumpable;
|
||||
import com.android.systemui.demomode.DemoMode;
|
||||
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
|
||||
* occurred.
|
||||
*/
|
||||
interface BatteryStateChangeCallback {
|
||||
interface BatteryStateChangeCallback extends Dumpable {
|
||||
|
||||
default void onBatteryLevelChanged(int level, boolean pluggedIn, boolean charging) {
|
||||
}
|
||||
@@ -158,6 +161,11 @@ public interface BatteryController extends DemoMode,
|
||||
|
||||
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 com.android.settingslib.fuelgauge.BatterySaverLogging.SAVER_ENABLED_QS;
|
||||
import static com.android.systemui.util.DumpUtilsKt.asIndenting;
|
||||
|
||||
import android.annotation.WorkerThread;
|
||||
import android.content.BroadcastReceiver;
|
||||
@@ -33,6 +34,7 @@ import android.os.Bundle;
|
||||
import android.os.Handler;
|
||||
import android.os.PowerManager;
|
||||
import android.os.PowerSaveState;
|
||||
import android.util.IndentingPrintWriter;
|
||||
import android.util.Log;
|
||||
import android.view.View;
|
||||
|
||||
@@ -157,15 +159,29 @@ public class BatteryControllerImpl extends BroadcastReceiver implements BatteryC
|
||||
}
|
||||
|
||||
@Override
|
||||
public void dump(PrintWriter pw, String[] args) {
|
||||
pw.println("BatteryController state:");
|
||||
pw.print(" mLevel="); pw.println(mLevel);
|
||||
pw.print(" mPluggedIn="); pw.println(mPluggedIn);
|
||||
pw.print(" mCharging="); pw.println(mCharging);
|
||||
pw.print(" mCharged="); pw.println(mCharged);
|
||||
pw.print(" mIsBatteryDefender="); pw.println(mIsBatteryDefender);
|
||||
pw.print(" mPowerSave="); pw.println(mPowerSave);
|
||||
pw.print(" mStateUnknown="); pw.println(mStateUnknown);
|
||||
public void dump(@NonNull PrintWriter pw, @NonNull String[] args) {
|
||||
IndentingPrintWriter ipw = asIndenting(pw);
|
||||
ipw.println("BatteryController state:");
|
||||
ipw.increaseIndent();
|
||||
ipw.print("mHasReceivedBattery="); ipw.println(mHasReceivedBattery);
|
||||
ipw.print("mLevel="); ipw.println(mLevel);
|
||||
ipw.print("mPluggedIn="); ipw.println(mPluggedIn);
|
||||
ipw.print("mCharging="); ipw.println(mCharging);
|
||||
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
|
||||
|
||||
@@ -37,6 +37,7 @@ import com.android.systemui.SysuiTestCase;
|
||||
import com.android.systemui.flags.FakeFeatureFlags;
|
||||
import com.android.systemui.flags.Flags;
|
||||
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.ConfigurationController;
|
||||
import com.android.systemui.tuner.TunerService;
|
||||
@@ -153,6 +154,7 @@ public class BatteryMeterViewControllerTest extends SysuiTestCase {
|
||||
private void initController() {
|
||||
mController = new BatteryMeterViewController(
|
||||
mBatteryMeterView,
|
||||
StatusBarLocation.HOME,
|
||||
mUserTracker,
|
||||
mConfigurationController,
|
||||
mTunerService,
|
||||
|
||||
Reference in New Issue
Block a user