From 092e3c0b3cb58c9b67d434cc5a68cef37b4e3e21 Mon Sep 17 00:00:00 2001 From: Daniel Nishi Date: Fri, 10 Mar 2017 15:52:02 -0800 Subject: [PATCH] Don't show owner as a secondary user. Change-Id: I0a67eb176528a0f95595107b12c6ecc679a1041f Fixes: 36138657 Test: Robotest --- .../storage/SecondaryUserController.java | 3 ++- .../storage/SecondaryUserControllerTest.java | 20 +++++++++++++++++++ 2 files changed, 22 insertions(+), 1 deletion(-) diff --git a/src/com/android/settings/deviceinfo/storage/SecondaryUserController.java b/src/com/android/settings/deviceinfo/storage/SecondaryUserController.java index 41800a24ca8..4fd9e522fd0 100644 --- a/src/com/android/settings/deviceinfo/storage/SecondaryUserController.java +++ b/src/com/android/settings/deviceinfo/storage/SecondaryUserController.java @@ -32,6 +32,7 @@ import com.android.settings.core.PreferenceController; import java.util.ArrayList; import java.util.List; + /** * SecondaryUserController controls the preferences on the Storage screen which had to do with * secondary users. @@ -62,7 +63,7 @@ public class SecondaryUserController extends PreferenceController implements List infos = userManager.getUsers(); for (int i = 0, size = infos.size(); i < size; i++) { UserInfo info = infos.get(i); - if (info.equals(primaryUser)) { + if (info.isPrimary()) { continue; } diff --git a/tests/robotests/src/com/android/settings/deviceinfo/storage/SecondaryUserControllerTest.java b/tests/robotests/src/com/android/settings/deviceinfo/storage/SecondaryUserControllerTest.java index c8f3069f1d0..16bf1aef827 100644 --- a/tests/robotests/src/com/android/settings/deviceinfo/storage/SecondaryUserControllerTest.java +++ b/tests/robotests/src/com/android/settings/deviceinfo/storage/SecondaryUserControllerTest.java @@ -69,6 +69,7 @@ public class SecondaryUserControllerTest { MockitoAnnotations.initMocks(this); mContext = RuntimeEnvironment.application; mPrimaryUser = new UserInfo(); + mPrimaryUser.flags = UserInfo.FLAG_PRIMARY; mController = new SecondaryUserController(mContext, mPrimaryUser); when(mScreen.getContext()).thenReturn(mContext); @@ -167,4 +168,23 @@ public class SecondaryUserControllerTest { assertThat(preference.getSummary()).isEqualTo("99.00B"); } + + @Test + public void dontAddPrimaryProfileAsASecondaryProfile() throws Exception { + ArrayList userInfos = new ArrayList<>(); + // The primary UserInfo may be a different object with a different name... but represent the + // same user! + UserInfo primaryUserRenamed = new UserInfo(); + primaryUserRenamed.name = "Owner"; + primaryUserRenamed.flags = UserInfo.FLAG_PRIMARY; + userInfos.add(primaryUserRenamed); + when(mUserManager.getPrimaryUser()).thenReturn(mPrimaryUser); + when(mUserManager.getUsers()).thenReturn(userInfos); + List controllers = + SecondaryUserController.getSecondaryUserControllers(mContext, mUserManager); + + assertThat(controllers).hasSize(1); + // We should have the NoSecondaryUserController. + assertThat(controllers.get(0) instanceof SecondaryUserController).isFalse(); + } }