Loading packages/CarSystemUI/src/com/android/systemui/car/statusbar/UserNameViewController.java +10 −3 Original line number Original line Diff line number Diff line Loading @@ -59,6 +59,8 @@ public class UserNameViewController { } } }; }; private boolean mUserLifecycleListenerRegistered = false; private final CarUserManager.UserLifecycleListener mUserLifecycleListener = private final CarUserManager.UserLifecycleListener mUserLifecycleListener = new CarUserManager.UserLifecycleListener() { new CarUserManager.UserLifecycleListener() { @Override @Override Loading Loading @@ -100,10 +102,14 @@ public class UserNameViewController { * Clean up the controller and unregister receiver. * Clean up the controller and unregister receiver. */ */ public void removeAll() { public void removeAll() { mUserNameView = null; if (mUserLifecycleListenerRegistered) { mBroadcastDispatcher.unregisterReceiver(mUserUpdateReceiver); mBroadcastDispatcher.unregisterReceiver(mUserUpdateReceiver); if (mCarUserManager != null) { if (mCarUserManager != null) { mCarUserManager.removeListener(mUserLifecycleListener); mCarUserManager.removeListener(mUserLifecycleListener); } } mUserLifecycleListenerRegistered = false; } } } private void registerForUserChangeEvents() { private void registerForUserChangeEvents() { Loading @@ -112,6 +118,7 @@ public class UserNameViewController { mCarUserManager = (CarUserManager) car.getCarManager(Car.CAR_USER_SERVICE); mCarUserManager = (CarUserManager) car.getCarManager(Car.CAR_USER_SERVICE); if (mCarUserManager != null) { if (mCarUserManager != null) { mCarUserManager.addListener(Runnable::run, mUserLifecycleListener); mCarUserManager.addListener(Runnable::run, mUserLifecycleListener); mUserLifecycleListenerRegistered = true; } else { } else { Log.e(TAG, "CarUserManager could not be obtained."); Log.e(TAG, "CarUserManager could not be obtained."); } } Loading packages/CarSystemUI/tests/src/com/android/systemui/car/statusbar/UserNameViewControllerTest.java +7 −0 Original line number Original line Diff line number Diff line Loading @@ -108,6 +108,13 @@ public class UserNameViewControllerTest extends SysuiTestCase { verifyZeroInteractions(mUserManager); verifyZeroInteractions(mUserManager); } } @Test public void removeAll_withNoRegisteredListener_doesNotUnregister() { mUserNameViewController.removeAll(); verifyZeroInteractions(mCarUserManager); } @Test @Test public void userLifecycleListener_onUserSwitchLifecycleEvent_updatesUserNameView() { public void userLifecycleListener_onUserSwitchLifecycleEvent_updatesUserNameView() { ArgumentCaptor<CarUserManager.UserLifecycleListener> userLifecycleListenerArgumentCaptor = ArgumentCaptor<CarUserManager.UserLifecycleListener> userLifecycleListenerArgumentCaptor = Loading Loading
packages/CarSystemUI/src/com/android/systemui/car/statusbar/UserNameViewController.java +10 −3 Original line number Original line Diff line number Diff line Loading @@ -59,6 +59,8 @@ public class UserNameViewController { } } }; }; private boolean mUserLifecycleListenerRegistered = false; private final CarUserManager.UserLifecycleListener mUserLifecycleListener = private final CarUserManager.UserLifecycleListener mUserLifecycleListener = new CarUserManager.UserLifecycleListener() { new CarUserManager.UserLifecycleListener() { @Override @Override Loading Loading @@ -100,10 +102,14 @@ public class UserNameViewController { * Clean up the controller and unregister receiver. * Clean up the controller and unregister receiver. */ */ public void removeAll() { public void removeAll() { mUserNameView = null; if (mUserLifecycleListenerRegistered) { mBroadcastDispatcher.unregisterReceiver(mUserUpdateReceiver); mBroadcastDispatcher.unregisterReceiver(mUserUpdateReceiver); if (mCarUserManager != null) { if (mCarUserManager != null) { mCarUserManager.removeListener(mUserLifecycleListener); mCarUserManager.removeListener(mUserLifecycleListener); } } mUserLifecycleListenerRegistered = false; } } } private void registerForUserChangeEvents() { private void registerForUserChangeEvents() { Loading @@ -112,6 +118,7 @@ public class UserNameViewController { mCarUserManager = (CarUserManager) car.getCarManager(Car.CAR_USER_SERVICE); mCarUserManager = (CarUserManager) car.getCarManager(Car.CAR_USER_SERVICE); if (mCarUserManager != null) { if (mCarUserManager != null) { mCarUserManager.addListener(Runnable::run, mUserLifecycleListener); mCarUserManager.addListener(Runnable::run, mUserLifecycleListener); mUserLifecycleListenerRegistered = true; } else { } else { Log.e(TAG, "CarUserManager could not be obtained."); Log.e(TAG, "CarUserManager could not be obtained."); } } Loading
packages/CarSystemUI/tests/src/com/android/systemui/car/statusbar/UserNameViewControllerTest.java +7 −0 Original line number Original line Diff line number Diff line Loading @@ -108,6 +108,13 @@ public class UserNameViewControllerTest extends SysuiTestCase { verifyZeroInteractions(mUserManager); verifyZeroInteractions(mUserManager); } } @Test public void removeAll_withNoRegisteredListener_doesNotUnregister() { mUserNameViewController.removeAll(); verifyZeroInteractions(mCarUserManager); } @Test @Test public void userLifecycleListener_onUserSwitchLifecycleEvent_updatesUserNameView() { public void userLifecycleListener_onUserSwitchLifecycleEvent_updatesUserNameView() { ArgumentCaptor<CarUserManager.UserLifecycleListener> userLifecycleListenerArgumentCaptor = ArgumentCaptor<CarUserManager.UserLifecycleListener> userLifecycleListenerArgumentCaptor = Loading