Fix Settings profile selector on HSUM
Currently Settings ProfileSelectorFragment uses isSystem() to identify the personal user. This change migrates it to use isMain() in line with HSUM architecture. Test: atest SettingsRoboTests:com.android.settings.dashboard.profileselector.ProfileSelectFragmentTest Fixes: 327610266, 327600527, 327585940, 326574736 Change-Id: I064b2fb295b89cffcd556e151fe1bf4484caf384
This commit is contained in:
@@ -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<UserInfo> 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);
|
||||
}
|
||||
}
|
||||
|
||||
|
@@ -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(
|
||||
|
@@ -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(
|
||||
|
Reference in New Issue
Block a user