Add UI for multiple admins on Headless
In a series of CLs under topic add_ui_for_hsum_admins UI and functionality for allowing multiple admins on HSUM build is added. In User settings and User switcher when creating a new user there is a new dialog prompting to choose admin status of the user to be created. In User details view there is a toggle that is visible to admin users that allows to modify admin status of existing users. This toggle is only applicable to full users that are not supervised, guests or a main device user. Bug: 252790451 Test: croot && make RunSettingsRoboTests -j40 ROBOTEST_FILTER="com.android.settings.users.UserDetailsSettingsTest" Change-Id: I447dc168be30aa614aeb3f8b71ad14a7223fd7c1
This commit is contained in:
@@ -22,6 +22,7 @@ import static android.os.UserManager.SWITCHABILITY_STATUS_USER_SWITCH_DISALLOWED
|
||||
|
||||
import static com.google.common.truth.Truth.assertThat;
|
||||
|
||||
import static org.junit.Assert.assertTrue;
|
||||
import static org.mockito.ArgumentMatchers.any;
|
||||
import static org.mockito.ArgumentMatchers.anyInt;
|
||||
import static org.mockito.ArgumentMatchers.anyString;
|
||||
@@ -84,6 +85,7 @@ import java.util.List;
|
||||
})
|
||||
public class UserDetailsSettingsTest {
|
||||
|
||||
private static final String KEY_GRANT_ADMIN = "user_grant_admin";
|
||||
private static final String KEY_SWITCH_USER = "switch_user";
|
||||
private static final String KEY_ENABLE_TELEPHONY = "enable_calling";
|
||||
private static final String KEY_REMOVE_USER = "remove_user";
|
||||
@@ -103,6 +105,8 @@ public class UserDetailsSettingsTest {
|
||||
@Mock
|
||||
private SwitchPreference mPhonePref;
|
||||
@Mock
|
||||
private SwitchPreference mGrantAdminPref;
|
||||
@Mock
|
||||
private Preference mRemoveUserPref;
|
||||
@Mock
|
||||
private Preference mAppAndContentAccessPref;
|
||||
@@ -144,6 +148,7 @@ public class UserDetailsSettingsTest {
|
||||
doReturn(mock(PreferenceScreen.class)).when(mFragment).getPreferenceScreen();
|
||||
|
||||
doReturn(mSwitchUserPref).when(mFragment).findPreference(KEY_SWITCH_USER);
|
||||
doReturn(mGrantAdminPref).when(mFragment).findPreference(KEY_GRANT_ADMIN);
|
||||
doReturn(mPhonePref).when(mFragment).findPreference(KEY_ENABLE_TELEPHONY);
|
||||
doReturn(mRemoveUserPref).when(mFragment).findPreference(KEY_REMOVE_USER);
|
||||
doReturn(mAppAndContentAccessPref)
|
||||
@@ -678,6 +683,38 @@ public class UserDetailsSettingsTest {
|
||||
assertThat(result).isFalse();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void initialize_userSelected_shouldShowGrantAdminPref_HSUM() {
|
||||
setupSelectedUser();
|
||||
ShadowUserManager.setIsHeadlessSystemUserMode(true);
|
||||
mFragment.initialize(mActivity, mArguments);
|
||||
assertTrue(UserManager.isHeadlessSystemUserMode());
|
||||
verify(mFragment, never()).removePreference(KEY_GRANT_ADMIN);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void initialize_userSelected_shouldNotShowGrantAdminPref() {
|
||||
setupSelectedUser();
|
||||
mFragment.initialize(mActivity, mArguments);
|
||||
verify(mFragment).removePreference(KEY_GRANT_ADMIN);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void initialize_mainUserSelected_shouldShowGrantAdminPref_HSUM() {
|
||||
setupSelectedMainUser();
|
||||
ShadowUserManager.setIsHeadlessSystemUserMode(true);
|
||||
mFragment.initialize(mActivity, mArguments);
|
||||
verify(mFragment).removePreference(KEY_GRANT_ADMIN);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void initialize_guestSelected_shouldNotShowGrantAdminPref_HSUM() {
|
||||
setupSelectedGuest();
|
||||
ShadowUserManager.setIsHeadlessSystemUserMode(true);
|
||||
mFragment.initialize(mActivity, mArguments);
|
||||
verify(mFragment).removePreference(KEY_GRANT_ADMIN);
|
||||
}
|
||||
|
||||
private void setupSelectedUser() {
|
||||
mArguments.putInt("user_id", 1);
|
||||
mUserInfo = new UserInfo(1, "Tom", null,
|
||||
|
Reference in New Issue
Block a user