Merge "Add UI metrics for granting admin rights from User Switcher"
This commit is contained in:
committed by
Android (Google) Code Review
commit
2a06ccdfd5
@@ -185,9 +185,13 @@ public class UserDetailsSettings extends SettingsPreferenceFragment
|
||||
enableCallsAndSms(false);
|
||||
} else if (preference == mGrantAdminPref) {
|
||||
if (Boolean.FALSE.equals(newValue)) {
|
||||
mMetricsFeatureProvider.action(getActivity(),
|
||||
SettingsEnums.ACTION_REVOKE_ADMIN_FROM_SETTINGS);
|
||||
showDialog(DIALOG_CONFIRM_REVOKE_ADMIN);
|
||||
return false;
|
||||
}
|
||||
mMetricsFeatureProvider.action(getActivity(),
|
||||
SettingsEnums.ACTION_GRANT_ADMIN_FROM_SETTINGS);
|
||||
updateUserAdminStatus(true);
|
||||
}
|
||||
return true;
|
||||
|
@@ -948,6 +948,13 @@ public class UserSettings extends SettingsPreferenceFragment
|
||||
getActivity(),
|
||||
(grantAdmin) -> {
|
||||
mGrantAdmin = grantAdmin;
|
||||
if (mGrantAdmin) {
|
||||
mMetricsFeatureProvider.action(getActivity(),
|
||||
SettingsEnums.ACTION_GRANT_ADMIN_FROM_SETTINGS_CREATION_DIALOG);
|
||||
} else {
|
||||
mMetricsFeatureProvider.action(getActivity(),
|
||||
SettingsEnums.ACTION_NOT_GRANT_ADMIN_FROM_SETTINGS_CREATION_DIALOG);
|
||||
}
|
||||
showDialog(DIALOG_USER_PROFILE_EDITOR_ADD_USER);
|
||||
},
|
||||
() -> {
|
||||
|
@@ -263,4 +263,11 @@ public class ShadowUserManager extends org.robolectric.shadows.ShadowUserManager
|
||||
}
|
||||
return isSuccess;
|
||||
}
|
||||
|
||||
@Implementation
|
||||
protected void setUserAdmin(@UserIdInt int userId) {
|
||||
for (int i = 0; i < mUserProfileInfos.size(); i++) {
|
||||
mUserProfileInfos.get(i).flags |= UserInfo.FLAG_ADMIN;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -725,6 +725,32 @@ public class UserDetailsSettingsTest {
|
||||
verify(mFragment).removePreference(KEY_GRANT_ADMIN);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void onPreferenceChange_grantAdminClicked_isNotAdmin_shouldLogGrantAdmin() {
|
||||
setupSelectedUser();
|
||||
mFragment.mUserInfo = mUserInfo;
|
||||
mFragment.mGrantAdminPref = mGrantAdminPref;
|
||||
doNothing().when(mFragment).showDialog(anyInt());
|
||||
|
||||
mFragment.onPreferenceChange(mGrantAdminPref, true);
|
||||
|
||||
verify(mMetricsFeatureProvider).action(any(),
|
||||
eq(SettingsEnums.ACTION_GRANT_ADMIN_FROM_SETTINGS));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void onPreferenceChange_grantAdminClicked_isAdmin_shouldLogRevokeAdmin() {
|
||||
setupSelectedAdminUser();
|
||||
mFragment.mUserInfo = mUserInfo;
|
||||
mFragment.mGrantAdminPref = mGrantAdminPref;
|
||||
doNothing().when(mFragment).showDialog(anyInt());
|
||||
|
||||
mFragment.onPreferenceChange(mGrantAdminPref, false);
|
||||
|
||||
verify(mMetricsFeatureProvider).action(any(),
|
||||
eq(SettingsEnums.ACTION_REVOKE_ADMIN_FROM_SETTINGS));
|
||||
}
|
||||
|
||||
private void setupSelectedUser() {
|
||||
mArguments.putInt("user_id", 1);
|
||||
mUserInfo = new UserInfo(1, "Tom", null,
|
||||
@@ -743,6 +769,15 @@ public class UserDetailsSettingsTest {
|
||||
mUserManager.addProfile(mUserInfo);
|
||||
}
|
||||
|
||||
private void setupSelectedAdminUser() {
|
||||
mArguments.putInt("user_id", 12);
|
||||
mUserInfo = new UserInfo(12, "Andy", null,
|
||||
UserInfo.FLAG_FULL | UserInfo.FLAG_INITIALIZED | UserInfo.FLAG_ADMIN,
|
||||
UserManager.USER_TYPE_FULL_SECONDARY);
|
||||
|
||||
mUserManager.addProfile(mUserInfo);
|
||||
}
|
||||
|
||||
private void setupSelectedGuest() {
|
||||
mArguments.putInt("user_id", 23);
|
||||
mUserInfo = new UserInfo(23, "Guest", null,
|
||||
|
Reference in New Issue
Block a user