Do not show Choose Profile dialog for clone user.

Bug: 249194639
Test: make RunSettingsRoboTests -j64
Test: make RunSettingsRoboTests ROBOTEST_FILTER=ProfileSelectDialogTest
Change-Id: I35279f643f8c562df7b407fdf2cbfd2ae5ee9890
This commit is contained in:
“Ankita
2022-11-15 05:47:08 +00:00
parent a9575edf2f
commit 9304977674
2 changed files with 20 additions and 1 deletions

View File

@@ -23,6 +23,7 @@ import android.content.DialogInterface.OnCancelListener;
import android.content.DialogInterface.OnDismissListener;
import android.content.DialogInterface.OnShowListener;
import android.content.Intent;
import android.content.pm.UserInfo;
import android.os.Bundle;
import android.os.UserHandle;
import android.os.UserManager;
@@ -168,7 +169,8 @@ public class ProfileSelectDialog extends DialogFragment implements UserAdapter.O
}
final UserManager userManager = UserManager.get(context);
for (int i = userHandles.size() - 1; i >= 0; i--) {
if (userManager.getUserInfo(userHandles.get(i).getIdentifier()) == null) {
UserInfo userInfo = userManager.getUserInfo(userHandles.get(i).getIdentifier());
if (userInfo == null || userInfo.isCloneProfile()) {
if (DEBUG) {
Log.d(TAG, "Delete the user: " + userHandles.get(i).getIdentifier());
}

View File

@@ -53,6 +53,7 @@ public class ProfileSelectDialogTest {
private static final UserHandle NORMAL_USER = new UserHandle(1111);
private static final UserHandle REMOVED_USER = new UserHandle(2222);
private static final UserHandle CLONE_USER = new UserHandle(3333);
@Spy
private Context mContext = ApplicationProvider.getApplicationContext();
@@ -101,6 +102,22 @@ public class ProfileSelectDialogTest {
verify(mUserManager, times(2)).getUserInfo(REMOVED_USER.getIdentifier());
}
@Test
public void updateUserHandlesIfNeeded_removesCloneProfile() {
final UserInfo userInfo = new UserInfo(CLONE_USER.getIdentifier(), "clone_user", null,
UserInfo.FLAG_PROFILE, UserManager.USER_TYPE_PROFILE_CLONE);
when(mUserManager.getUserInfo(CLONE_USER.getIdentifier())).thenReturn(userInfo);
final Tile tile = new ActivityTile(mActivityInfo, CategoryKey.CATEGORY_HOMEPAGE);
tile.userHandle.add(CLONE_USER);
tile.userHandle.add(NORMAL_USER);
ProfileSelectDialog.updateUserHandlesIfNeeded(mContext, tile);
assertThat(tile.userHandle).hasSize(1);
assertThat(tile.userHandle.get(0).getIdentifier()).isEqualTo(NORMAL_USER.getIdentifier());
verify(mUserManager, times(1)).getUserInfo(CLONE_USER.getIdentifier());
}
@Test
public void createDialog_showsCorrectTitle() {
mContext.setTheme(R.style.Theme_AppCompat);