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);
|
enableCallsAndSms(false);
|
||||||
} else if (preference == mGrantAdminPref) {
|
} else if (preference == mGrantAdminPref) {
|
||||||
if (Boolean.FALSE.equals(newValue)) {
|
if (Boolean.FALSE.equals(newValue)) {
|
||||||
|
mMetricsFeatureProvider.action(getActivity(),
|
||||||
|
SettingsEnums.ACTION_REVOKE_ADMIN_FROM_SETTINGS);
|
||||||
showDialog(DIALOG_CONFIRM_REVOKE_ADMIN);
|
showDialog(DIALOG_CONFIRM_REVOKE_ADMIN);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
mMetricsFeatureProvider.action(getActivity(),
|
||||||
|
SettingsEnums.ACTION_GRANT_ADMIN_FROM_SETTINGS);
|
||||||
updateUserAdminStatus(true);
|
updateUserAdminStatus(true);
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
|
@@ -948,6 +948,13 @@ public class UserSettings extends SettingsPreferenceFragment
|
|||||||
getActivity(),
|
getActivity(),
|
||||||
(grantAdmin) -> {
|
(grantAdmin) -> {
|
||||||
mGrantAdmin = 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);
|
showDialog(DIALOG_USER_PROFILE_EDITOR_ADD_USER);
|
||||||
},
|
},
|
||||||
() -> {
|
() -> {
|
||||||
|
@@ -263,4 +263,11 @@ public class ShadowUserManager extends org.robolectric.shadows.ShadowUserManager
|
|||||||
}
|
}
|
||||||
return isSuccess;
|
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);
|
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() {
|
private void setupSelectedUser() {
|
||||||
mArguments.putInt("user_id", 1);
|
mArguments.putInt("user_id", 1);
|
||||||
mUserInfo = new UserInfo(1, "Tom", null,
|
mUserInfo = new UserInfo(1, "Tom", null,
|
||||||
@@ -743,6 +769,15 @@ public class UserDetailsSettingsTest {
|
|||||||
mUserManager.addProfile(mUserInfo);
|
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() {
|
private void setupSelectedGuest() {
|
||||||
mArguments.putInt("user_id", 23);
|
mArguments.putInt("user_id", 23);
|
||||||
mUserInfo = new UserInfo(23, "Guest", null,
|
mUserInfo = new UserInfo(23, "Guest", null,
|
||||||
|
Reference in New Issue
Block a user