diff --git a/src/com/android/settings/dashboard/profileselector/ProfileSelectFragment.java b/src/com/android/settings/dashboard/profileselector/ProfileSelectFragment.java index 8279588cd1d..b4c0359f9ff 100644 --- a/src/com/android/settings/dashboard/profileselector/ProfileSelectFragment.java +++ b/src/com/android/settings/dashboard/profileselector/ProfileSelectFragment.java @@ -232,7 +232,12 @@ public abstract class ProfileSelectFragment extends DashboardFragment { if (extraTab != -1) { return ((ViewPagerAdapter) mViewPager.getAdapter()).getTabForPosition(extraTab); } - final int userId = bundle.getInt(EXTRA_USER_ID, UserHandle.SYSTEM.getIdentifier()); + final UserManager userManager = getSystemService(UserManager.class); + UserHandle mainUser = userManager.getMainUser(); + if (mainUser == null) { + mainUser = UserHandle.SYSTEM; + } + final int userId = bundle.getInt(EXTRA_USER_ID, mainUser.getIdentifier()); final boolean isWorkProfile = UserManager.get(activity).isManagedProfile(userId); if (isWorkProfile) { return WORK_TAB; @@ -320,7 +325,7 @@ public abstract class ProfileSelectFragment extends DashboardFragment { List userInfos = userManager.getProfiles(UserHandle.myUserId()); for (UserInfo userInfo : userInfos) { - if (userInfo.getUserHandle().isSystem()) { + if (userInfo.isMain()) { fragments.add(createAndGetFragment( ProfileType.PERSONAL, bundle != null ? bundle : new Bundle(), @@ -338,7 +343,7 @@ public abstract class ProfileSelectFragment extends DashboardFragment { privateFragmentConstructor)); } } else { - Log.d(TAG, "Not showing tab for unsupported user"); + Log.d(TAG, "Not showing tab for unsupported user " + userInfo); } } diff --git a/tests/robotests/src/com/android/settings/dashboard/profileselector/ProfileSelectFragmentTest.java b/tests/robotests/src/com/android/settings/dashboard/profileselector/ProfileSelectFragmentTest.java index 17e0d1ca63c..4b936a75bda 100644 --- a/tests/robotests/src/com/android/settings/dashboard/profileselector/ProfileSelectFragmentTest.java +++ b/tests/robotests/src/com/android/settings/dashboard/profileselector/ProfileSelectFragmentTest.java @@ -17,6 +17,7 @@ package com.android.settings.dashboard.profileselector; import static android.content.Intent.EXTRA_USER_ID; +import static android.content.pm.UserInfo.FLAG_MAIN; import static android.os.UserManager.USER_TYPE_FULL_SYSTEM; import static android.os.UserManager.USER_TYPE_PROFILE_MANAGED; import static android.os.UserManager.USER_TYPE_PROFILE_PRIVATE; @@ -202,7 +203,7 @@ public class ProfileSelectFragmentTest { public void testGetFragments_whenOnlyPersonal_returnsOneFragment() { mSetFlagsRule.disableFlags(Flags.FLAG_ALLOW_PRIVATE_PROFILE); mUserManager.addProfile( - new UserInfo(0, PRIMARY_USER_NAME, null, 0, USER_TYPE_FULL_SYSTEM)); + new UserInfo(0, PRIMARY_USER_NAME, null, FLAG_MAIN, USER_TYPE_FULL_SYSTEM)); Fragment[] fragments = ProfileSelectFragment.getFragments( mContext, null /* bundle */, @@ -215,7 +216,7 @@ public class ProfileSelectFragmentTest { @Test public void testGetFragments_whenPrivateDisabled_returnsOneFragment() { mUserManager.addProfile( - new UserInfo(0, PRIMARY_USER_NAME, null, 0, USER_TYPE_FULL_SYSTEM)); + new UserInfo(0, PRIMARY_USER_NAME, null, FLAG_MAIN, USER_TYPE_FULL_SYSTEM)); mUserManager.addProfile( new UserInfo(11, PRIVATE_USER_NAME, null, 0, USER_TYPE_PROFILE_PRIVATE)); Fragment[] fragments = ProfileSelectFragment.getFragments( @@ -237,7 +238,7 @@ public class ProfileSelectFragmentTest { public void testGetFragments_whenPrivateEnabled_returnsTwoFragments() { mSetFlagsRule.enableFlags(Flags.FLAG_ALLOW_PRIVATE_PROFILE); mUserManager.addProfile( - new UserInfo(0, PRIMARY_USER_NAME, null, 0, USER_TYPE_FULL_SYSTEM)); + new UserInfo(0, PRIMARY_USER_NAME, null, FLAG_MAIN, USER_TYPE_FULL_SYSTEM)); mUserManager.addProfile( new UserInfo(11, PRIVATE_USER_NAME, null, 0, USER_TYPE_PROFILE_PRIVATE)); Fragment[] fragments = ProfileSelectFragment.getFragments( @@ -259,7 +260,7 @@ public class ProfileSelectFragmentTest { public void testGetFragments_whenManagedProfile_returnsTwoFragments() { mSetFlagsRule.disableFlags(Flags.FLAG_ALLOW_PRIVATE_PROFILE); mUserManager.addProfile( - new UserInfo(0, PRIMARY_USER_NAME, null, 0, USER_TYPE_FULL_SYSTEM)); + new UserInfo(0, PRIMARY_USER_NAME, null, FLAG_MAIN, USER_TYPE_FULL_SYSTEM)); mUserManager.addProfile( new UserInfo(10, MANAGED_USER_NAME, null, 0, USER_TYPE_PROFILE_MANAGED)); Fragment[] fragments = ProfileSelectFragment.getFragments( @@ -281,7 +282,7 @@ public class ProfileSelectFragmentTest { public void testGetFragments_whenAllProfiles_returnsThreeFragments() { mSetFlagsRule.enableFlags(Flags.FLAG_ALLOW_PRIVATE_PROFILE); mUserManager.addProfile( - new UserInfo(0, PRIMARY_USER_NAME, null, 0, USER_TYPE_FULL_SYSTEM)); + new UserInfo(0, PRIMARY_USER_NAME, null, FLAG_MAIN, USER_TYPE_FULL_SYSTEM)); mUserManager.addProfile( new UserInfo(10, MANAGED_USER_NAME, null, 0, USER_TYPE_PROFILE_MANAGED)); mUserManager.addProfile( @@ -305,7 +306,7 @@ public class ProfileSelectFragmentTest { public void testGetFragments_whenAvailableBundle_returnsFragmentsWithCorrectBundles() { mSetFlagsRule.enableFlags(Flags.FLAG_ALLOW_PRIVATE_PROFILE); mUserManager.addProfile( - new UserInfo(0, PRIMARY_USER_NAME, null, 0, USER_TYPE_FULL_SYSTEM)); + new UserInfo(0, PRIMARY_USER_NAME, null, FLAG_MAIN, USER_TYPE_FULL_SYSTEM)); mUserManager.addProfile( new UserInfo(10, MANAGED_USER_NAME, null, 0, USER_TYPE_PROFILE_MANAGED)); mUserManager.addProfile( diff --git a/tests/robotests/src/com/android/settings/dashboard/profileselector/ProfileSelectLocationFragmentTest.java b/tests/robotests/src/com/android/settings/dashboard/profileselector/ProfileSelectLocationFragmentTest.java index 22fec8f058e..3cc47a8d8c3 100644 --- a/tests/robotests/src/com/android/settings/dashboard/profileselector/ProfileSelectLocationFragmentTest.java +++ b/tests/robotests/src/com/android/settings/dashboard/profileselector/ProfileSelectLocationFragmentTest.java @@ -16,6 +16,7 @@ package com.android.settings.dashboard.profileselector; +import static android.content.pm.UserInfo.FLAG_MAIN; import static android.os.UserManager.USER_TYPE_FULL_SYSTEM; import static android.os.UserManager.USER_TYPE_PROFILE_MANAGED; import static android.os.UserManager.USER_TYPE_PROFILE_PRIVATE; @@ -60,7 +61,7 @@ public class ProfileSelectLocationFragmentTest { public void setUp() { mUserManager = ShadowUserManager.getShadow(); mUserManager.addProfile( - new UserInfo(0, PERSONAL_PROFILE_NAME, null, 0, USER_TYPE_FULL_SYSTEM)); + new UserInfo(0, PERSONAL_PROFILE_NAME, null, FLAG_MAIN, USER_TYPE_FULL_SYSTEM)); mUserManager.addProfile( new UserInfo(1, WORK_PROFILE_NAME, null, 0, USER_TYPE_PROFILE_MANAGED)); mUserManager.addProfile(