diff options
2 files changed, 40 insertions, 6 deletions
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationPanelViewController.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationPanelViewController.java index 9afdfd651130..f06c7d5a2ae2 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationPanelViewController.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationPanelViewController.java @@ -958,14 +958,16 @@ public class NotificationPanelViewController extends PanelViewController { }); } - private void onFinishInflate() { + @VisibleForTesting + void onFinishInflate() { loadDimens(); mKeyguardStatusBar = mView.findViewById(R.id.keyguard_header); FrameLayout userAvatarContainer = null; KeyguardUserSwitcherView keyguardUserSwitcherView = null; - if (mKeyguardUserSwitcherEnabled && mUserManager.isUserSwitcherEnabled()) { + if (mKeyguardUserSwitcherEnabled && mUserManager.isUserSwitcherEnabled( + mResources.getBoolean(R.bool.qs_show_user_switcher_for_single_user))) { if (mKeyguardQsUserSwitchEnabled) { ViewStub stub = mView.findViewById(R.id.keyguard_qs_user_switch_stub); userAvatarContainer = (FrameLayout) stub.inflate(); @@ -1191,7 +1193,8 @@ public class NotificationPanelViewController extends PanelViewController { return view; } - private void reInflateViews() { + @VisibleForTesting + void reInflateViews() { if (DEBUG_LOGCAT) Log.d(TAG, "reInflateViews"); // Re-inflate the status view group. KeyguardStatusView keyguardStatusView = @@ -1212,7 +1215,8 @@ public class NotificationPanelViewController extends PanelViewController { // Re-inflate the keyguard user switcher group. updateUserSwitcherFlags(); - boolean isUserSwitcherEnabled = mUserManager.isUserSwitcherEnabled(); + boolean isUserSwitcherEnabled = mUserManager.isUserSwitcherEnabled( + mResources.getBoolean(R.bool.qs_show_user_switcher_for_single_user)); boolean showQsUserSwitch = mKeyguardQsUserSwitchEnabled && isUserSwitcherEnabled; boolean showKeyguardUserSwitcher = !mKeyguardQsUserSwitchEnabled diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/NotificationPanelViewControllerTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/NotificationPanelViewControllerTest.java index f599e3b12c57..01c840263c1c 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/NotificationPanelViewControllerTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/NotificationPanelViewControllerTest.java @@ -777,7 +777,8 @@ public class NotificationPanelViewControllerTest extends SysuiTestCase { updateSmallestScreenWidth(300); when(mResources.getBoolean( com.android.internal.R.bool.config_keyguardUserSwitcher)).thenReturn(true); - when(mUserManager.isUserSwitcherEnabled()).thenReturn(true); + when(mResources.getBoolean(R.bool.qs_show_user_switcher_for_single_user)).thenReturn(false); + when(mUserManager.isUserSwitcherEnabled(false)).thenReturn(true); updateSmallestScreenWidth(800); @@ -785,6 +786,34 @@ public class NotificationPanelViewControllerTest extends SysuiTestCase { } @Test + public void testFinishInflate_userSwitcherDisabled_doNotInflateUserSwitchView() { + givenViewAttached(); + when(mResources.getBoolean( + com.android.internal.R.bool.config_keyguardUserSwitcher)).thenReturn(true); + when(mResources.getBoolean(R.bool.qs_show_user_switcher_for_single_user)).thenReturn(false); + when(mUserManager.isUserSwitcherEnabled(false /* showEvenIfNotActionable */)) + .thenReturn(false); + + mNotificationPanelViewController.onFinishInflate(); + + verify(mUserSwitcherStubView, never()).inflate(); + } + + @Test + public void testReInflateViews_userSwitcherDisabled_doNotInflateUserSwitchView() { + givenViewAttached(); + when(mResources.getBoolean( + com.android.internal.R.bool.config_keyguardUserSwitcher)).thenReturn(true); + when(mResources.getBoolean(R.bool.qs_show_user_switcher_for_single_user)).thenReturn(false); + when(mUserManager.isUserSwitcherEnabled(false /* showEvenIfNotActionable */)) + .thenReturn(false); + + mNotificationPanelViewController.reInflateViews(); + + verify(mUserSwitcherStubView, never()).inflate(); + } + + @Test public void testCanCollapsePanelOnTouch_trueForKeyGuard() { mStatusBarStateController.setState(KEYGUARD); @@ -1186,7 +1215,8 @@ public class NotificationPanelViewControllerTest extends SysuiTestCase { } private void updateMultiUserSetting(boolean enabled) { - when(mUserManager.isUserSwitcherEnabled()).thenReturn(enabled); + when(mResources.getBoolean(R.bool.qs_show_user_switcher_for_single_user)).thenReturn(false); + when(mUserManager.isUserSwitcherEnabled(false)).thenReturn(enabled); final ArgumentCaptor<ContentObserver> observerCaptor = ArgumentCaptor.forClass(ContentObserver.class); verify(mContentResolver) |