Loading src/com/android/settings/users/UserDetailsSettings.java +4 −0 Original line number Diff line number Diff line Loading @@ -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; Loading src/com/android/settings/users/UserSettings.java +7 −0 Original line number Diff line number Diff line Loading @@ -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); }, () -> { Loading tests/robotests/src/com/android/settings/testutils/shadow/ShadowUserManager.java +7 −0 Original line number Diff line number Diff line Loading @@ -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; } } } tests/robotests/src/com/android/settings/users/UserDetailsSettingsTest.java +35 −0 Original line number Diff line number Diff line Loading @@ -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, Loading @@ -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, Loading Loading
src/com/android/settings/users/UserDetailsSettings.java +4 −0 Original line number Diff line number Diff line Loading @@ -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; Loading
src/com/android/settings/users/UserSettings.java +7 −0 Original line number Diff line number Diff line Loading @@ -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); }, () -> { Loading
tests/robotests/src/com/android/settings/testutils/shadow/ShadowUserManager.java +7 −0 Original line number Diff line number Diff line Loading @@ -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; } } }
tests/robotests/src/com/android/settings/users/UserDetailsSettingsTest.java +35 −0 Original line number Diff line number Diff line Loading @@ -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, Loading @@ -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, Loading