Merge "[Dagger] Remove Tunable from BatteryMeterView and move to its controller." into sc-v2-dev am: 817d20569a
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/15362960 Change-Id: I33142fd8235e76cd440345ab34215fa09f839a7c
This commit is contained in:
@@ -35,12 +35,10 @@ import android.net.Uri;
|
|||||||
import android.os.Handler;
|
import android.os.Handler;
|
||||||
import android.provider.Settings;
|
import android.provider.Settings;
|
||||||
import android.text.TextUtils;
|
import android.text.TextUtils;
|
||||||
import android.util.ArraySet;
|
|
||||||
import android.util.AttributeSet;
|
import android.util.AttributeSet;
|
||||||
import android.util.TypedValue;
|
import android.util.TypedValue;
|
||||||
import android.view.Gravity;
|
import android.view.Gravity;
|
||||||
import android.view.LayoutInflater;
|
import android.view.LayoutInflater;
|
||||||
import android.view.View;
|
|
||||||
import android.view.ViewGroup;
|
import android.view.ViewGroup;
|
||||||
import android.widget.ImageView;
|
import android.widget.ImageView;
|
||||||
import android.widget.LinearLayout;
|
import android.widget.LinearLayout;
|
||||||
@@ -57,11 +55,8 @@ import com.android.systemui.broadcast.BroadcastDispatcher;
|
|||||||
import com.android.systemui.plugins.DarkIconDispatcher;
|
import com.android.systemui.plugins.DarkIconDispatcher;
|
||||||
import com.android.systemui.plugins.DarkIconDispatcher.DarkReceiver;
|
import com.android.systemui.plugins.DarkIconDispatcher.DarkReceiver;
|
||||||
import com.android.systemui.settings.CurrentUserTracker;
|
import com.android.systemui.settings.CurrentUserTracker;
|
||||||
import com.android.systemui.statusbar.phone.StatusBarIconController;
|
|
||||||
import com.android.systemui.statusbar.policy.BatteryController;
|
import com.android.systemui.statusbar.policy.BatteryController;
|
||||||
import com.android.systemui.statusbar.policy.BatteryController.BatteryStateChangeCallback;
|
import com.android.systemui.statusbar.policy.BatteryController.BatteryStateChangeCallback;
|
||||||
import com.android.systemui.tuner.TunerService;
|
|
||||||
import com.android.systemui.tuner.TunerService.Tunable;
|
|
||||||
|
|
||||||
import java.io.FileDescriptor;
|
import java.io.FileDescriptor;
|
||||||
import java.io.PrintWriter;
|
import java.io.PrintWriter;
|
||||||
@@ -69,7 +64,7 @@ import java.lang.annotation.Retention;
|
|||||||
import java.text.NumberFormat;
|
import java.text.NumberFormat;
|
||||||
|
|
||||||
public class BatteryMeterView extends LinearLayout implements
|
public class BatteryMeterView extends LinearLayout implements
|
||||||
BatteryStateChangeCallback, Tunable, DarkReceiver {
|
BatteryStateChangeCallback, DarkReceiver {
|
||||||
|
|
||||||
@Retention(SOURCE)
|
@Retention(SOURCE)
|
||||||
@IntDef({MODE_DEFAULT, MODE_ON, MODE_OFF, MODE_ESTIMATE})
|
@IntDef({MODE_DEFAULT, MODE_ON, MODE_OFF, MODE_ESTIMATE})
|
||||||
@@ -80,7 +75,6 @@ public class BatteryMeterView extends LinearLayout implements
|
|||||||
public static final int MODE_ESTIMATE = 3;
|
public static final int MODE_ESTIMATE = 3;
|
||||||
|
|
||||||
private final ThemedBatteryDrawable mDrawable;
|
private final ThemedBatteryDrawable mDrawable;
|
||||||
private final String mSlotBattery;
|
|
||||||
private final ImageView mBatteryIconView;
|
private final ImageView mBatteryIconView;
|
||||||
private final CurrentUserTracker mUserTracker;
|
private final CurrentUserTracker mUserTracker;
|
||||||
private TextView mBatteryPercentView;
|
private TextView mBatteryPercentView;
|
||||||
@@ -92,9 +86,6 @@ public class BatteryMeterView extends LinearLayout implements
|
|||||||
private int mLevel;
|
private int mLevel;
|
||||||
private int mShowPercentMode = MODE_DEFAULT;
|
private int mShowPercentMode = MODE_DEFAULT;
|
||||||
private boolean mShowPercentAvailable;
|
private boolean mShowPercentAvailable;
|
||||||
// Some places may need to show the battery conditionally, and not obey the tuner
|
|
||||||
private boolean mIgnoreTunerUpdates;
|
|
||||||
private boolean mIsSubscribedForTunerUpdates;
|
|
||||||
private boolean mCharging;
|
private boolean mCharging;
|
||||||
// Error state where we know nothing about the current battery state
|
// Error state where we know nothing about the current battery state
|
||||||
private boolean mBatteryStateUnknown;
|
private boolean mBatteryStateUnknown;
|
||||||
@@ -133,8 +124,6 @@ public class BatteryMeterView extends LinearLayout implements
|
|||||||
|
|
||||||
setupLayoutTransition();
|
setupLayoutTransition();
|
||||||
|
|
||||||
mSlotBattery = context.getString(
|
|
||||||
com.android.internal.R.string.status_bar_battery);
|
|
||||||
mBatteryIconView = new ImageView(context);
|
mBatteryIconView = new ImageView(context);
|
||||||
mBatteryIconView.setImageDrawable(mDrawable);
|
mBatteryIconView.setImageDrawable(mDrawable);
|
||||||
final MarginLayoutParams mlp = new MarginLayoutParams(
|
final MarginLayoutParams mlp = new MarginLayoutParams(
|
||||||
@@ -199,44 +188,6 @@ public class BatteryMeterView extends LinearLayout implements
|
|||||||
updateShowPercent();
|
updateShowPercent();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Set {@code true} to turn off BatteryMeterView's subscribing to the tuner for updates, and
|
|
||||||
* thus avoid it controlling its own visibility
|
|
||||||
*
|
|
||||||
* @param ignore whether to ignore the tuner or not
|
|
||||||
*/
|
|
||||||
public void setIgnoreTunerUpdates(boolean ignore) {
|
|
||||||
mIgnoreTunerUpdates = ignore;
|
|
||||||
updateTunerSubscription();
|
|
||||||
}
|
|
||||||
|
|
||||||
private void updateTunerSubscription() {
|
|
||||||
if (mIgnoreTunerUpdates) {
|
|
||||||
unsubscribeFromTunerUpdates();
|
|
||||||
} else {
|
|
||||||
subscribeForTunerUpdates();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private void subscribeForTunerUpdates() {
|
|
||||||
if (mIsSubscribedForTunerUpdates || mIgnoreTunerUpdates) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
Dependency.get(TunerService.class)
|
|
||||||
.addTunable(this, StatusBarIconController.ICON_HIDE_LIST);
|
|
||||||
mIsSubscribedForTunerUpdates = true;
|
|
||||||
}
|
|
||||||
|
|
||||||
private void unsubscribeFromTunerUpdates() {
|
|
||||||
if (!mIsSubscribedForTunerUpdates) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
Dependency.get(TunerService.class).removeTunable(this);
|
|
||||||
mIsSubscribedForTunerUpdates = false;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setColorsFromContext(Context context) {
|
public void setColorsFromContext(Context context) {
|
||||||
if (context == null) {
|
if (context == null) {
|
||||||
return;
|
return;
|
||||||
@@ -250,15 +201,6 @@ public class BatteryMeterView extends LinearLayout implements
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onTuningChanged(String key, String newValue) {
|
|
||||||
if (StatusBarIconController.ICON_HIDE_LIST.equals(key)) {
|
|
||||||
ArraySet<String> icons = StatusBarIconController.getIconHideList(
|
|
||||||
getContext(), newValue);
|
|
||||||
setVisibility(icons.contains(mSlotBattery) ? View.GONE : View.VISIBLE);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onAttachedToWindow() {
|
public void onAttachedToWindow() {
|
||||||
super.onAttachedToWindow();
|
super.onAttachedToWindow();
|
||||||
@@ -271,7 +213,6 @@ public class BatteryMeterView extends LinearLayout implements
|
|||||||
Settings.Global.getUriFor(Settings.Global.BATTERY_ESTIMATES_LAST_UPDATE_TIME),
|
Settings.Global.getUriFor(Settings.Global.BATTERY_ESTIMATES_LAST_UPDATE_TIME),
|
||||||
false, mSettingObserver);
|
false, mSettingObserver);
|
||||||
updateShowPercent();
|
updateShowPercent();
|
||||||
subscribeForTunerUpdates();
|
|
||||||
mUserTracker.startTracking();
|
mUserTracker.startTracking();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -281,7 +222,6 @@ public class BatteryMeterView extends LinearLayout implements
|
|||||||
mUserTracker.stopTracking();
|
mUserTracker.stopTracking();
|
||||||
mBatteryController.removeCallback(this);
|
mBatteryController.removeCallback(this);
|
||||||
getContext().getContentResolver().unregisterContentObserver(mSettingObserver);
|
getContext().getContentResolver().unregisterContentObserver(mSettingObserver);
|
||||||
unsubscribeFromTunerUpdates();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -15,7 +15,12 @@
|
|||||||
*/
|
*/
|
||||||
package com.android.systemui.battery;
|
package com.android.systemui.battery;
|
||||||
|
|
||||||
|
import android.util.ArraySet;
|
||||||
|
import android.view.View;
|
||||||
|
|
||||||
|
import com.android.systemui.statusbar.phone.StatusBarIconController;
|
||||||
import com.android.systemui.statusbar.policy.ConfigurationController;
|
import com.android.systemui.statusbar.policy.ConfigurationController;
|
||||||
|
import com.android.systemui.tuner.TunerService;
|
||||||
import com.android.systemui.util.ViewController;
|
import com.android.systemui.util.ViewController;
|
||||||
|
|
||||||
import javax.inject.Inject;
|
import javax.inject.Inject;
|
||||||
@@ -23,6 +28,9 @@ import javax.inject.Inject;
|
|||||||
/** Controller for {@link BatteryMeterView}. **/
|
/** Controller for {@link BatteryMeterView}. **/
|
||||||
public class BatteryMeterViewController extends ViewController<BatteryMeterView> {
|
public class BatteryMeterViewController extends ViewController<BatteryMeterView> {
|
||||||
private final ConfigurationController mConfigurationController;
|
private final ConfigurationController mConfigurationController;
|
||||||
|
private final TunerService mTunerService;
|
||||||
|
|
||||||
|
private final String mSlotBattery;
|
||||||
|
|
||||||
private final ConfigurationController.ConfigurationListener mConfigurationListener =
|
private final ConfigurationController.ConfigurationListener mConfigurationListener =
|
||||||
new ConfigurationController.ConfigurationListener() {
|
new ConfigurationController.ConfigurationListener() {
|
||||||
@@ -32,17 +40,37 @@ public class BatteryMeterViewController extends ViewController<BatteryMeterView>
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
private final TunerService.Tunable mTunable = new TunerService.Tunable() {
|
||||||
|
@Override
|
||||||
|
public void onTuningChanged(String key, String newValue) {
|
||||||
|
if (StatusBarIconController.ICON_HIDE_LIST.equals(key)) {
|
||||||
|
ArraySet<String> icons = StatusBarIconController.getIconHideList(
|
||||||
|
getContext(), newValue);
|
||||||
|
mView.setVisibility(icons.contains(mSlotBattery) ? View.GONE : View.VISIBLE);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
// Some places may need to show the battery conditionally, and not obey the tuner
|
||||||
|
private boolean mIgnoreTunerUpdates;
|
||||||
|
private boolean mIsSubscribedForTunerUpdates;
|
||||||
|
|
||||||
@Inject
|
@Inject
|
||||||
public BatteryMeterViewController(
|
public BatteryMeterViewController(
|
||||||
BatteryMeterView view,
|
BatteryMeterView view,
|
||||||
ConfigurationController configurationController) {
|
ConfigurationController configurationController,
|
||||||
|
TunerService tunerService) {
|
||||||
super(view);
|
super(view);
|
||||||
mConfigurationController = configurationController;
|
mConfigurationController = configurationController;
|
||||||
|
mTunerService = tunerService;
|
||||||
|
|
||||||
|
mSlotBattery = getResources().getString(com.android.internal.R.string.status_bar_battery);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void onViewAttached() {
|
protected void onViewAttached() {
|
||||||
mConfigurationController.addCallback(mConfigurationListener);
|
mConfigurationController.addCallback(mConfigurationListener);
|
||||||
|
subscribeForTunerUpdates();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -54,5 +82,33 @@ public class BatteryMeterViewController extends ViewController<BatteryMeterView>
|
|||||||
public void destroy() {
|
public void destroy() {
|
||||||
super.destroy();
|
super.destroy();
|
||||||
mConfigurationController.removeCallback(mConfigurationListener);
|
mConfigurationController.removeCallback(mConfigurationListener);
|
||||||
|
unsubscribeFromTunerUpdates();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Turn off {@link BatteryMeterView}'s subscribing to the tuner for updates, and thus avoid it
|
||||||
|
* controlling its own visibility.
|
||||||
|
*/
|
||||||
|
public void ignoreTunerUpdates() {
|
||||||
|
mIgnoreTunerUpdates = true;
|
||||||
|
unsubscribeFromTunerUpdates();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void subscribeForTunerUpdates() {
|
||||||
|
if (mIsSubscribedForTunerUpdates || mIgnoreTunerUpdates) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
mTunerService.addTunable(mTunable, StatusBarIconController.ICON_HIDE_LIST);
|
||||||
|
mIsSubscribedForTunerUpdates = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void unsubscribeFromTunerUpdates() {
|
||||||
|
if (!mIsSubscribedForTunerUpdates) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
mTunerService.removeTunable(mTunable);
|
||||||
|
mIsSubscribedForTunerUpdates = false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -133,8 +133,6 @@ public class QuickStatusBarHeader extends FrameLayout {
|
|||||||
|
|
||||||
updateResources();
|
updateResources();
|
||||||
|
|
||||||
// Don't need to worry about tuner settings for this icon
|
|
||||||
mBatteryRemainingIcon.setIgnoreTunerUpdates(true);
|
|
||||||
// QS will always show the estimate, and BatteryMeterView handles the case where
|
// QS will always show the estimate, and BatteryMeterView handles the case where
|
||||||
// it's unavailable or charging
|
// it's unavailable or charging
|
||||||
mBatteryRemainingIcon.setPercentShowMode(BatteryMeterView.MODE_ESTIMATE);
|
mBatteryRemainingIcon.setPercentShowMode(BatteryMeterView.MODE_ESTIMATE);
|
||||||
|
|||||||
@@ -171,6 +171,9 @@ class QuickStatusBarHeaderController extends ViewController<QuickStatusBarHeader
|
|||||||
mCameraSlot = getResources().getString(com.android.internal.R.string.status_bar_camera);
|
mCameraSlot = getResources().getString(com.android.internal.R.string.status_bar_camera);
|
||||||
mMicSlot = getResources().getString(com.android.internal.R.string.status_bar_microphone);
|
mMicSlot = getResources().getString(com.android.internal.R.string.status_bar_microphone);
|
||||||
mLocationSlot = getResources().getString(com.android.internal.R.string.status_bar_location);
|
mLocationSlot = getResources().getString(com.android.internal.R.string.status_bar_location);
|
||||||
|
|
||||||
|
// Don't need to worry about tuner settings for this icon
|
||||||
|
mBatteryMeterViewController.ignoreTunerUpdates();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -20,8 +20,8 @@ import android.view.View
|
|||||||
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.battery.BatteryMeterViewController
|
import com.android.systemui.battery.BatteryMeterViewController
|
||||||
import com.android.systemui.qs.carrier.QSCarrierGroupController
|
|
||||||
import com.android.systemui.flags.FeatureFlags
|
import com.android.systemui.flags.FeatureFlags
|
||||||
|
import com.android.systemui.qs.carrier.QSCarrierGroupController
|
||||||
import com.android.systemui.statusbar.phone.dagger.StatusBarComponent.StatusBarScope
|
import com.android.systemui.statusbar.phone.dagger.StatusBarComponent.StatusBarScope
|
||||||
import com.android.systemui.statusbar.phone.dagger.StatusBarViewModule.SPLIT_SHADE_HEADER
|
import com.android.systemui.statusbar.phone.dagger.StatusBarViewModule.SPLIT_SHADE_HEADER
|
||||||
import javax.inject.Inject
|
import javax.inject.Inject
|
||||||
@@ -54,11 +54,12 @@ class SplitShadeHeaderController @Inject constructor(
|
|||||||
}
|
}
|
||||||
|
|
||||||
init {
|
init {
|
||||||
val batteryIcon: BatteryMeterView = statusBar.findViewById(R.id.batteryRemainingIcon)
|
|
||||||
// battery settings same as in QS icons
|
|
||||||
batteryIcon.setIgnoreTunerUpdates(true)
|
|
||||||
batteryIcon.setPercentShowMode(BatteryMeterView.MODE_ESTIMATE)
|
|
||||||
batteryMeterViewController.init()
|
batteryMeterViewController.init()
|
||||||
|
val batteryIcon: BatteryMeterView = statusBar.findViewById(R.id.batteryRemainingIcon)
|
||||||
|
|
||||||
|
// battery settings same as in QS icons
|
||||||
|
batteryMeterViewController.ignoreTunerUpdates()
|
||||||
|
batteryIcon.setPercentShowMode(BatteryMeterView.MODE_ESTIMATE)
|
||||||
|
|
||||||
val iconContainer: StatusIconContainer = statusBar.findViewById(R.id.statusIcons)
|
val iconContainer: StatusIconContainer = statusBar.findViewById(R.id.statusIcons)
|
||||||
iconManager = StatusBarIconController.IconManager(iconContainer, featureFlags)
|
iconManager = StatusBarIconController.IconManager(iconContainer, featureFlags)
|
||||||
|
|||||||
@@ -224,6 +224,7 @@ import com.android.systemui.statusbar.policy.NetworkController;
|
|||||||
import com.android.systemui.statusbar.policy.UserInfoControllerImpl;
|
import com.android.systemui.statusbar.policy.UserInfoControllerImpl;
|
||||||
import com.android.systemui.statusbar.policy.UserSwitcherController;
|
import com.android.systemui.statusbar.policy.UserSwitcherController;
|
||||||
import com.android.systemui.unfold.UnfoldLightRevealOverlayAnimation;
|
import com.android.systemui.unfold.UnfoldLightRevealOverlayAnimation;
|
||||||
|
import com.android.systemui.tuner.TunerService;
|
||||||
import com.android.systemui.volume.VolumeComponent;
|
import com.android.systemui.volume.VolumeComponent;
|
||||||
import com.android.systemui.wmshell.BubblesManager;
|
import com.android.systemui.wmshell.BubblesManager;
|
||||||
import com.android.unfold.config.UnfoldTransitionConfig;
|
import com.android.unfold.config.UnfoldTransitionConfig;
|
||||||
@@ -540,6 +541,7 @@ public class StatusBar extends SystemUI implements
|
|||||||
private final KeyguardUnlockAnimationController mKeyguardUnlockAnimationController;
|
private final KeyguardUnlockAnimationController mKeyguardUnlockAnimationController;
|
||||||
private final WallpaperManager mWallpaperManager;
|
private final WallpaperManager mWallpaperManager;
|
||||||
private final UnlockedScreenOffAnimationController mUnlockedScreenOffAnimationController;
|
private final UnlockedScreenOffAnimationController mUnlockedScreenOffAnimationController;
|
||||||
|
private final TunerService mTunerService;
|
||||||
|
|
||||||
private final List<ExpansionChangedListener> mExpansionChangedListeners;
|
private final List<ExpansionChangedListener> mExpansionChangedListeners;
|
||||||
|
|
||||||
@@ -873,7 +875,8 @@ public class StatusBar extends SystemUI implements
|
|||||||
KeyguardUnlockAnimationController keyguardUnlockAnimationController,
|
KeyguardUnlockAnimationController keyguardUnlockAnimationController,
|
||||||
WallpaperManager wallpaperManager,
|
WallpaperManager wallpaperManager,
|
||||||
UnlockedScreenOffAnimationController unlockedScreenOffAnimationController,
|
UnlockedScreenOffAnimationController unlockedScreenOffAnimationController,
|
||||||
Optional<StartingSurface> startingSurfaceOptional) {
|
Optional<StartingSurface> startingSurfaceOptional,
|
||||||
|
TunerService tunerService) {
|
||||||
super(context);
|
super(context);
|
||||||
mNotificationsController = notificationsController;
|
mNotificationsController = notificationsController;
|
||||||
mLightBarController = lightBarController;
|
mLightBarController = lightBarController;
|
||||||
@@ -956,6 +959,7 @@ public class StatusBar extends SystemUI implements
|
|||||||
mKeyguardUnlockAnimationController = keyguardUnlockAnimationController;
|
mKeyguardUnlockAnimationController = keyguardUnlockAnimationController;
|
||||||
mWallpaperManager = wallpaperManager;
|
mWallpaperManager = wallpaperManager;
|
||||||
mUnlockedScreenOffAnimationController = unlockedScreenOffAnimationController;
|
mUnlockedScreenOffAnimationController = unlockedScreenOffAnimationController;
|
||||||
|
mTunerService = tunerService;
|
||||||
|
|
||||||
mLockscreenShadeTransitionController = lockscreenShadeTransitionController;
|
mLockscreenShadeTransitionController = lockscreenShadeTransitionController;
|
||||||
mStartingSurfaceOptional = startingSurfaceOptional;
|
mStartingSurfaceOptional = startingSurfaceOptional;
|
||||||
@@ -1212,7 +1216,9 @@ public class StatusBar extends SystemUI implements
|
|||||||
mPhoneStatusBarViewController.init();
|
mPhoneStatusBarViewController.init();
|
||||||
|
|
||||||
mBatteryMeterViewController = new BatteryMeterViewController(
|
mBatteryMeterViewController = new BatteryMeterViewController(
|
||||||
mStatusBarView.findViewById(R.id.battery), mConfigurationController
|
mStatusBarView.findViewById(R.id.battery),
|
||||||
|
mConfigurationController,
|
||||||
|
mTunerService
|
||||||
);
|
);
|
||||||
mBatteryMeterViewController.init();
|
mBatteryMeterViewController.init();
|
||||||
|
|
||||||
|
|||||||
@@ -99,6 +99,7 @@ import com.android.systemui.statusbar.policy.NetworkController;
|
|||||||
import com.android.systemui.statusbar.policy.UserInfoControllerImpl;
|
import com.android.systemui.statusbar.policy.UserInfoControllerImpl;
|
||||||
import com.android.systemui.statusbar.policy.UserSwitcherController;
|
import com.android.systemui.statusbar.policy.UserSwitcherController;
|
||||||
import com.android.systemui.unfold.UnfoldLightRevealOverlayAnimation;
|
import com.android.systemui.unfold.UnfoldLightRevealOverlayAnimation;
|
||||||
|
import com.android.systemui.tuner.TunerService;
|
||||||
import com.android.systemui.volume.VolumeComponent;
|
import com.android.systemui.volume.VolumeComponent;
|
||||||
import com.android.systemui.wmshell.BubblesManager;
|
import com.android.systemui.wmshell.BubblesManager;
|
||||||
import com.android.unfold.config.UnfoldTransitionConfig;
|
import com.android.unfold.config.UnfoldTransitionConfig;
|
||||||
@@ -212,7 +213,8 @@ public interface StatusBarPhoneModule {
|
|||||||
KeyguardUnlockAnimationController keyguardUnlockAnimationController,
|
KeyguardUnlockAnimationController keyguardUnlockAnimationController,
|
||||||
WallpaperManager wallpaperManager,
|
WallpaperManager wallpaperManager,
|
||||||
UnlockedScreenOffAnimationController unlockedScreenOffAnimationController,
|
UnlockedScreenOffAnimationController unlockedScreenOffAnimationController,
|
||||||
Optional<StartingSurface> startingSurfaceOptional) {
|
Optional<StartingSurface> startingSurfaceOptional,
|
||||||
|
TunerService tunerService) {
|
||||||
return new StatusBar(
|
return new StatusBar(
|
||||||
context,
|
context,
|
||||||
notificationsController,
|
notificationsController,
|
||||||
@@ -298,6 +300,7 @@ public interface StatusBarPhoneModule {
|
|||||||
keyguardUnlockAnimationController,
|
keyguardUnlockAnimationController,
|
||||||
wallpaperManager,
|
wallpaperManager,
|
||||||
unlockedScreenOffAnimationController,
|
unlockedScreenOffAnimationController,
|
||||||
startingSurfaceOptional);
|
startingSurfaceOptional,
|
||||||
|
tunerService);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -17,12 +17,15 @@
|
|||||||
package com.android.systemui.battery;
|
package com.android.systemui.battery;
|
||||||
|
|
||||||
import static org.mockito.ArgumentMatchers.any;
|
import static org.mockito.ArgumentMatchers.any;
|
||||||
|
import static org.mockito.Mockito.never;
|
||||||
import static org.mockito.Mockito.verify;
|
import static org.mockito.Mockito.verify;
|
||||||
|
import static org.mockito.Mockito.when;
|
||||||
|
|
||||||
import androidx.test.filters.SmallTest;
|
import androidx.test.filters.SmallTest;
|
||||||
|
|
||||||
import com.android.systemui.SysuiTestCase;
|
import com.android.systemui.SysuiTestCase;
|
||||||
import com.android.systemui.statusbar.policy.ConfigurationController;
|
import com.android.systemui.statusbar.policy.ConfigurationController;
|
||||||
|
import com.android.systemui.tuner.TunerService;
|
||||||
|
|
||||||
import org.junit.Before;
|
import org.junit.Before;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
@@ -36,6 +39,8 @@ public class BatteryMeterViewControllerTest extends SysuiTestCase {
|
|||||||
|
|
||||||
@Mock
|
@Mock
|
||||||
private ConfigurationController mConfigurationController;
|
private ConfigurationController mConfigurationController;
|
||||||
|
@Mock
|
||||||
|
private TunerService mTunerService;
|
||||||
|
|
||||||
private BatteryMeterViewController mController;
|
private BatteryMeterViewController mController;
|
||||||
|
|
||||||
@@ -43,9 +48,13 @@ public class BatteryMeterViewControllerTest extends SysuiTestCase {
|
|||||||
public void setup() throws Exception {
|
public void setup() throws Exception {
|
||||||
MockitoAnnotations.initMocks(this);
|
MockitoAnnotations.initMocks(this);
|
||||||
|
|
||||||
|
when(mBatteryMeterView.getContext()).thenReturn(mContext);
|
||||||
|
when(mBatteryMeterView.getResources()).thenReturn(mContext.getResources());
|
||||||
|
|
||||||
mController = new BatteryMeterViewController(
|
mController = new BatteryMeterViewController(
|
||||||
mBatteryMeterView,
|
mBatteryMeterView,
|
||||||
mConfigurationController
|
mConfigurationController,
|
||||||
|
mTunerService
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -54,6 +63,7 @@ public class BatteryMeterViewControllerTest extends SysuiTestCase {
|
|||||||
mController.onViewAttached();
|
mController.onViewAttached();
|
||||||
|
|
||||||
verify(mConfigurationController).addCallback(any());
|
verify(mConfigurationController).addCallback(any());
|
||||||
|
verify(mTunerService).addTunable(any(), any());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@@ -64,5 +74,25 @@ public class BatteryMeterViewControllerTest extends SysuiTestCase {
|
|||||||
mController.onViewDetached();
|
mController.onViewDetached();
|
||||||
|
|
||||||
verify(mConfigurationController).removeCallback(any());
|
verify(mConfigurationController).removeCallback(any());
|
||||||
|
verify(mTunerService).removeTunable(any());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void ignoreTunerUpdates_afterOnViewAttached_callbackUnregistered() {
|
||||||
|
// Start out receiving tuner updates
|
||||||
|
mController.onViewAttached();
|
||||||
|
|
||||||
|
mController.ignoreTunerUpdates();
|
||||||
|
|
||||||
|
verify(mTunerService).removeTunable(any());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void ignoreTunerUpdates_beforeOnViewAttached_callbackNeverRegistered() {
|
||||||
|
mController.ignoreTunerUpdates();
|
||||||
|
|
||||||
|
mController.onViewAttached();
|
||||||
|
|
||||||
|
verify(mTunerService, never()).addTunable(any(), any());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -138,6 +138,7 @@ import com.android.systemui.statusbar.policy.NetworkController;
|
|||||||
import com.android.systemui.statusbar.policy.UserInfoControllerImpl;
|
import com.android.systemui.statusbar.policy.UserInfoControllerImpl;
|
||||||
import com.android.systemui.statusbar.policy.UserSwitcherController;
|
import com.android.systemui.statusbar.policy.UserSwitcherController;
|
||||||
import com.android.systemui.unfold.UnfoldLightRevealOverlayAnimation;
|
import com.android.systemui.unfold.UnfoldLightRevealOverlayAnimation;
|
||||||
|
import com.android.systemui.tuner.TunerService;
|
||||||
import com.android.systemui.util.concurrency.FakeExecutor;
|
import com.android.systemui.util.concurrency.FakeExecutor;
|
||||||
import com.android.systemui.util.time.FakeSystemClock;
|
import com.android.systemui.util.time.FakeSystemClock;
|
||||||
import com.android.systemui.volume.VolumeComponent;
|
import com.android.systemui.volume.VolumeComponent;
|
||||||
@@ -262,6 +263,7 @@ public class StatusBarTest extends SysuiTestCase {
|
|||||||
@Mock private IWallpaperManager mIWallpaperManager;
|
@Mock private IWallpaperManager mIWallpaperManager;
|
||||||
@Mock private KeyguardUnlockAnimationController mKeyguardUnlockAnimationController;
|
@Mock private KeyguardUnlockAnimationController mKeyguardUnlockAnimationController;
|
||||||
@Mock private UnlockedScreenOffAnimationController mUnlockedScreenOffAnimationController;
|
@Mock private UnlockedScreenOffAnimationController mUnlockedScreenOffAnimationController;
|
||||||
|
@Mock private TunerService mTunerService;
|
||||||
@Mock private StartingSurface mStartingSurface;
|
@Mock private StartingSurface mStartingSurface;
|
||||||
private ShadeController mShadeController;
|
private ShadeController mShadeController;
|
||||||
private FakeExecutor mUiBgExecutor = new FakeExecutor(new FakeSystemClock());
|
private FakeExecutor mUiBgExecutor = new FakeExecutor(new FakeSystemClock());
|
||||||
@@ -425,7 +427,8 @@ public class StatusBarTest extends SysuiTestCase {
|
|||||||
mKeyguardUnlockAnimationController,
|
mKeyguardUnlockAnimationController,
|
||||||
mWallpaperManager,
|
mWallpaperManager,
|
||||||
mUnlockedScreenOffAnimationController,
|
mUnlockedScreenOffAnimationController,
|
||||||
Optional.of(mStartingSurface));
|
Optional.of(mStartingSurface),
|
||||||
|
mTunerService);
|
||||||
when(mKeyguardViewMediator.registerStatusBar(any(StatusBar.class), any(ViewGroup.class),
|
when(mKeyguardViewMediator.registerStatusBar(any(StatusBar.class), any(ViewGroup.class),
|
||||||
any(NotificationPanelViewController.class), any(BiometricUnlockController.class),
|
any(NotificationPanelViewController.class), any(BiometricUnlockController.class),
|
||||||
any(ViewGroup.class), any(KeyguardBypassController.class)))
|
any(ViewGroup.class), any(KeyguardBypassController.class)))
|
||||||
|
|||||||
Reference in New Issue
Block a user