Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 2a06ccdf authored by Tetiana Meronyk's avatar Tetiana Meronyk Committed by Android (Google) Code Review
Browse files

Merge "Add UI metrics for granting admin rights from User Switcher"

parents 25bb5326 ff36d54d
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -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;
+7 −0
Original line number Diff line number Diff line
@@ -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);
                },
                () -> {
+7 −0
Original line number Diff line number Diff line
@@ -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;
        }
    }
}
+35 −0
Original line number Diff line number Diff line
@@ -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,