Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 5260d2d7 authored by Julia Kawano's avatar Julia Kawano Committed by Android (Google) Code Review
Browse files

Merge "Fix crash from UserNameViewController.removeAll()"

parents 88da930c 1e91e474
Loading
Loading
Loading
Loading
+10 −3
Original line number Diff line number Diff line
@@ -59,6 +59,8 @@ public class UserNameViewController {
        }
    };

    private boolean mUserLifecycleListenerRegistered = false;

    private final CarUserManager.UserLifecycleListener mUserLifecycleListener =
            new CarUserManager.UserLifecycleListener() {
                @Override
@@ -100,10 +102,14 @@ public class UserNameViewController {
     * Clean up the controller and unregister receiver.
     */
    public void removeAll() {
        mUserNameView = null;
        if (mUserLifecycleListenerRegistered) {
            mBroadcastDispatcher.unregisterReceiver(mUserUpdateReceiver);
            if (mCarUserManager != null) {
                mCarUserManager.removeListener(mUserLifecycleListener);
            }
            mUserLifecycleListenerRegistered = false;
        }
    }

    private void registerForUserChangeEvents() {
@@ -112,6 +118,7 @@ public class UserNameViewController {
            mCarUserManager = (CarUserManager) car.getCarManager(Car.CAR_USER_SERVICE);
            if (mCarUserManager != null) {
                mCarUserManager.addListener(Runnable::run, mUserLifecycleListener);
                mUserLifecycleListenerRegistered = true;
            } else {
                Log.e(TAG, "CarUserManager could not be obtained.");
            }
+7 −0
Original line number Diff line number Diff line
@@ -108,6 +108,13 @@ public class UserNameViewControllerTest extends SysuiTestCase {
        verifyZeroInteractions(mUserManager);
    }

    @Test
    public void removeAll_withNoRegisteredListener_doesNotUnregister() {
        mUserNameViewController.removeAll();

        verifyZeroInteractions(mCarUserManager);
    }

    @Test
    public void userLifecycleListener_onUserSwitchLifecycleEvent_updatesUserNameView() {
        ArgumentCaptor<CarUserManager.UserLifecycleListener> userLifecycleListenerArgumentCaptor =