Merge "Fix Settings profile selector on HSUM" into main

This commit is contained in:
Treehugger Robot
2024-03-08 18:36:27 +00:00
committed by Android (Google) Code Review
3 changed files with 17 additions and 10 deletions

View File

@@ -233,7 +233,12 @@ public abstract class ProfileSelectFragment extends DashboardFragment {
return ((ViewPagerAdapter) mViewPager.getAdapter()) return ((ViewPagerAdapter) mViewPager.getAdapter())
.getPositionForProfileTab(extraTab); .getPositionForProfileTab(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); final boolean isWorkProfile = UserManager.get(activity).isManagedProfile(userId);
if (isWorkProfile) { if (isWorkProfile) {
return WORK_TAB; return WORK_TAB;
@@ -325,7 +330,7 @@ public abstract class ProfileSelectFragment extends DashboardFragment {
List<UserInfo> userInfos = userManager.getProfiles(UserHandle.myUserId()); List<UserInfo> userInfos = userManager.getProfiles(UserHandle.myUserId());
for (UserInfo userInfo : userInfos) { for (UserInfo userInfo : userInfos) {
if (userInfo.getUserHandle().isSystem()) { if (userInfo.isMain()) {
fragments.add(createAndGetFragment( fragments.add(createAndGetFragment(
ProfileType.PERSONAL, ProfileType.PERSONAL,
bundle != null ? bundle : new Bundle(), bundle != null ? bundle : new Bundle(),
@@ -345,7 +350,7 @@ public abstract class ProfileSelectFragment extends DashboardFragment {
privateFragmentConstructor)); privateFragmentConstructor));
} }
} else { } else {
Log.d(TAG, "Not showing tab for unsupported user"); Log.d(TAG, "Not showing tab for unsupported user " + userInfo);
} }
} }

View File

@@ -17,6 +17,7 @@
package com.android.settings.dashboard.profileselector; package com.android.settings.dashboard.profileselector;
import static android.content.Intent.EXTRA_USER_ID; 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_FULL_SYSTEM;
import static android.os.UserManager.USER_TYPE_PROFILE_MANAGED; import static android.os.UserManager.USER_TYPE_PROFILE_MANAGED;
import static android.os.UserManager.USER_TYPE_PROFILE_PRIVATE; import static android.os.UserManager.USER_TYPE_PROFILE_PRIVATE;
@@ -208,7 +209,7 @@ public class ProfileSelectFragmentTest {
mSetFlagsRule.disableFlags(Flags.FLAG_ALLOW_PRIVATE_PROFILE, mSetFlagsRule.disableFlags(Flags.FLAG_ALLOW_PRIVATE_PROFILE,
android.multiuser.Flags.FLAG_ENABLE_PRIVATE_SPACE_FEATURES); android.multiuser.Flags.FLAG_ENABLE_PRIVATE_SPACE_FEATURES);
mUserManager.addProfile( 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( Fragment[] fragments = ProfileSelectFragment.getFragments(
mContext, mContext,
null /* bundle */, null /* bundle */,
@@ -221,7 +222,7 @@ public class ProfileSelectFragmentTest {
@Test @Test
public void testGetFragments_whenPrivateDisabled_returnsOneFragment() { public void testGetFragments_whenPrivateDisabled_returnsOneFragment() {
mUserManager.addProfile( 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( mUserManager.addProfile(
new UserInfo(11, PRIVATE_USER_NAME, null, 0, USER_TYPE_PROFILE_PRIVATE)); new UserInfo(11, PRIVATE_USER_NAME, null, 0, USER_TYPE_PROFILE_PRIVATE));
Fragment[] fragments = ProfileSelectFragment.getFragments( Fragment[] fragments = ProfileSelectFragment.getFragments(
@@ -244,7 +245,7 @@ public class ProfileSelectFragmentTest {
mSetFlagsRule.enableFlags(Flags.FLAG_ALLOW_PRIVATE_PROFILE, mSetFlagsRule.enableFlags(Flags.FLAG_ALLOW_PRIVATE_PROFILE,
android.multiuser.Flags.FLAG_ENABLE_PRIVATE_SPACE_FEATURES); android.multiuser.Flags.FLAG_ENABLE_PRIVATE_SPACE_FEATURES);
mUserManager.addProfile( 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( mUserManager.addProfile(
new UserInfo(11, PRIVATE_USER_NAME, null, 0, USER_TYPE_PROFILE_PRIVATE)); new UserInfo(11, PRIVATE_USER_NAME, null, 0, USER_TYPE_PROFILE_PRIVATE));
Fragment[] fragments = ProfileSelectFragment.getFragments( Fragment[] fragments = ProfileSelectFragment.getFragments(
@@ -267,7 +268,7 @@ public class ProfileSelectFragmentTest {
mSetFlagsRule.disableFlags(Flags.FLAG_ALLOW_PRIVATE_PROFILE, mSetFlagsRule.disableFlags(Flags.FLAG_ALLOW_PRIVATE_PROFILE,
android.multiuser.Flags.FLAG_ENABLE_PRIVATE_SPACE_FEATURES); android.multiuser.Flags.FLAG_ENABLE_PRIVATE_SPACE_FEATURES);
mUserManager.addProfile( 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( mUserManager.addProfile(
new UserInfo(10, MANAGED_USER_NAME, null, 0, USER_TYPE_PROFILE_MANAGED)); new UserInfo(10, MANAGED_USER_NAME, null, 0, USER_TYPE_PROFILE_MANAGED));
Fragment[] fragments = ProfileSelectFragment.getFragments( Fragment[] fragments = ProfileSelectFragment.getFragments(
@@ -290,7 +291,7 @@ public class ProfileSelectFragmentTest {
mSetFlagsRule.enableFlags(Flags.FLAG_ALLOW_PRIVATE_PROFILE, mSetFlagsRule.enableFlags(Flags.FLAG_ALLOW_PRIVATE_PROFILE,
android.multiuser.Flags.FLAG_ENABLE_PRIVATE_SPACE_FEATURES); android.multiuser.Flags.FLAG_ENABLE_PRIVATE_SPACE_FEATURES);
mUserManager.addProfile( 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( mUserManager.addProfile(
new UserInfo(10, MANAGED_USER_NAME, null, 0, USER_TYPE_PROFILE_MANAGED)); new UserInfo(10, MANAGED_USER_NAME, null, 0, USER_TYPE_PROFILE_MANAGED));
mUserManager.addProfile( mUserManager.addProfile(
@@ -315,7 +316,7 @@ public class ProfileSelectFragmentTest {
mSetFlagsRule.enableFlags(Flags.FLAG_ALLOW_PRIVATE_PROFILE, mSetFlagsRule.enableFlags(Flags.FLAG_ALLOW_PRIVATE_PROFILE,
android.multiuser.Flags.FLAG_ENABLE_PRIVATE_SPACE_FEATURES); android.multiuser.Flags.FLAG_ENABLE_PRIVATE_SPACE_FEATURES);
mUserManager.addProfile( 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( mUserManager.addProfile(
new UserInfo(10, MANAGED_USER_NAME, null, 0, USER_TYPE_PROFILE_MANAGED)); new UserInfo(10, MANAGED_USER_NAME, null, 0, USER_TYPE_PROFILE_MANAGED));
mUserManager.addProfile( mUserManager.addProfile(

View File

@@ -16,6 +16,7 @@
package com.android.settings.dashboard.profileselector; 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_FULL_SYSTEM;
import static android.os.UserManager.USER_TYPE_PROFILE_MANAGED; import static android.os.UserManager.USER_TYPE_PROFILE_MANAGED;
import static android.os.UserManager.USER_TYPE_PROFILE_PRIVATE; import static android.os.UserManager.USER_TYPE_PROFILE_PRIVATE;
@@ -60,7 +61,7 @@ public class ProfileSelectLocationFragmentTest {
public void setUp() { public void setUp() {
mUserManager = ShadowUserManager.getShadow(); mUserManager = ShadowUserManager.getShadow();
mUserManager.addProfile( 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( mUserManager.addProfile(
new UserInfo(1, WORK_PROFILE_NAME, null, 0, USER_TYPE_PROFILE_MANAGED)); new UserInfo(1, WORK_PROFILE_NAME, null, 0, USER_TYPE_PROFILE_MANAGED));
mUserManager.addProfile( mUserManager.addProfile(