Merge "[Dagger] Move OnUserInfoChangedListener out of KeyguardStatusBarView and into its controller." into sc-v2-dev am: 7bc08d28a1 am: 8dcab4f811
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/15328973
Change-Id: I3a3b499f9d2c515fb5776893c8452318a9f036d5
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 016d174..72a3a12 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/KeyguardStatusBarView.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/KeyguardStatusBarView.java
@@ -49,9 +49,6 @@
import com.android.systemui.plugins.DarkIconDispatcher.DarkReceiver;
import com.android.systemui.statusbar.FeatureFlags;
import com.android.systemui.statusbar.phone.StatusBarIconController.TintedIconManager;
-import com.android.systemui.statusbar.policy.UserInfoController;
-import com.android.systemui.statusbar.policy.UserInfoController.OnUserInfoChangedListener;
-import com.android.systemui.statusbar.policy.UserInfoControllerImpl;
import java.io.FileDescriptor;
import java.io.PrintWriter;
@@ -61,8 +58,7 @@
/**
* The header group on Keyguard.
*/
-public class KeyguardStatusBarView extends RelativeLayout implements
- OnUserInfoChangedListener {
+public class KeyguardStatusBarView extends RelativeLayout {
private static final int LAYOUT_NONE = 0;
private static final int LAYOUT_CUTOUT = 1;
@@ -334,9 +330,6 @@
@Override
protected void onAttachedToWindow() {
super.onAttachedToWindow();
- UserInfoController userInfoController = Dependency.get(UserInfoController.class);
- userInfoController.addCallback(this);
- userInfoController.reloadUserInfo();
mIconManager = new TintedIconManager(findViewById(R.id.statusIcons), mFeatureFlags);
mIconManager.setBlockList(mBlockedIcons);
Dependency.get(StatusBarIconController.class).addIconGroup(mIconManager);
@@ -345,12 +338,11 @@
@Override
protected void onDetachedFromWindow() {
super.onDetachedFromWindow();
- Dependency.get(UserInfoController.class).removeCallback(this);
Dependency.get(StatusBarIconController.class).removeIconGroup(mIconManager);
}
- @Override
- public void onUserInfoChanged(String name, Drawable picture, String userAccount) {
+ /** Should only be called from {@link KeyguardStatusBarViewController}. */
+ void onUserInfoChanged(Drawable picture) {
mMultiUserAvatar.setImageDrawable(picture);
}
@@ -432,9 +424,6 @@
void onThemeChanged() {
mBatteryView.setColorsFromContext(mContext);
updateIconsAndTextColors();
- // Reload user avatar
- ((UserInfoControllerImpl) Dependency.get(UserInfoController.class))
- .onDensityOrFontScaleChanged();
}
/** Should only be called from {@link KeyguardStatusBarViewController}. */
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/KeyguardStatusBarViewController.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/KeyguardStatusBarViewController.java
index 55873d0..4d17cbc 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/KeyguardStatusBarViewController.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/KeyguardStatusBarViewController.java
@@ -28,6 +28,7 @@
import com.android.systemui.statusbar.events.SystemStatusAnimationScheduler;
import com.android.systemui.statusbar.policy.BatteryController;
import com.android.systemui.statusbar.policy.ConfigurationController;
+import com.android.systemui.statusbar.policy.UserInfoController;
import com.android.systemui.util.ViewController;
import java.io.FileDescriptor;
@@ -41,6 +42,7 @@
private final ConfigurationController mConfigurationController;
private final SystemStatusAnimationScheduler mAnimationScheduler;
private final BatteryController mBatteryController;
+ private final UserInfoController mUserInfoController;
private final ConfigurationController.ConfigurationListener mConfigurationListener =
new ConfigurationController.ConfigurationListener() {
@@ -89,6 +91,9 @@
}
};
+ private final UserInfoController.OnUserInfoChangedListener mOnUserInfoChangedListener =
+ (name, picture, userAccount) -> mView.onUserInfoChanged(picture);
+
private boolean mBatteryListening;
@Inject
@@ -97,12 +102,14 @@
CarrierTextController carrierTextController,
ConfigurationController configurationController,
SystemStatusAnimationScheduler animationScheduler,
- BatteryController batteryController) {
+ BatteryController batteryController,
+ UserInfoController userInfoController) {
super(view);
mCarrierTextController = carrierTextController;
mConfigurationController = configurationController;
mAnimationScheduler = animationScheduler;
mBatteryController = batteryController;
+ mUserInfoController = userInfoController;
}
@Override
@@ -115,6 +122,7 @@
protected void onViewAttached() {
mConfigurationController.addCallback(mConfigurationListener);
mAnimationScheduler.addCallback(mAnimationCallback);
+ mUserInfoController.addCallback(mOnUserInfoChangedListener);
onThemeChanged();
}
@@ -122,6 +130,7 @@
protected void onViewDetached() {
mConfigurationController.removeCallback(mConfigurationListener);
mAnimationScheduler.removeCallback(mAnimationCallback);
+ mUserInfoController.removeCallback(mOnUserInfoChangedListener);
}
/** Should be called when the theme changes. */
diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/KeyguardStatusBarViewControllerTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/KeyguardStatusBarViewControllerTest.java
index e44b32e..c792a4d 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/KeyguardStatusBarViewControllerTest.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/KeyguardStatusBarViewControllerTest.java
@@ -27,6 +27,7 @@
import com.android.systemui.statusbar.events.SystemStatusAnimationScheduler;
import com.android.systemui.statusbar.policy.BatteryController;
import com.android.systemui.statusbar.policy.ConfigurationController;
+import com.android.systemui.statusbar.policy.UserInfoController;
import org.junit.Before;
import org.junit.Test;
@@ -45,6 +46,8 @@
private SystemStatusAnimationScheduler mAnimationScheduler;
@Mock
private BatteryController mBatteryController;
+ @Mock
+ private UserInfoController mUserInfoController;
private KeyguardStatusBarViewController mController;
@@ -57,7 +60,8 @@
mCarrierTextController,
mConfigurationController,
mAnimationScheduler,
- mBatteryController
+ mBatteryController,
+ mUserInfoController
);
}
@@ -67,6 +71,7 @@
verify(mConfigurationController).addCallback(any());
verify(mAnimationScheduler).addCallback(any());
+ verify(mUserInfoController).addCallback(any());
}
@Test
@@ -75,6 +80,7 @@
verify(mConfigurationController).removeCallback(any());
verify(mAnimationScheduler).removeCallback(any());
+ verify(mUserInfoController).removeCallback(any());
}
@Test