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

Commit 5755bbdd authored by Matías Hernández's avatar Matías Hernández Committed by Android (Google) Code Review
Browse files

Merge "Prevent guest users from toggling "hide silent notifications"" into udc-dev

parents 60ce0824 005a3820
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -17,6 +17,7 @@
package com.android.settings.notification;

import android.content.Context;
import android.os.UserManager;

import com.android.settings.R;
import com.android.settings.core.TogglePreferenceController;
@@ -51,7 +52,7 @@ public class SilentStatusBarPreferenceController extends TogglePreferenceControl

    @Override
    public int getAvailabilityStatus() {
        return AVAILABLE;
        return UserManager.get(mContext).isGuestUser() ? DISABLED_FOR_USER : AVAILABLE;
    }

    @Override
+29 −0
Original line number Diff line number Diff line
@@ -16,14 +16,21 @@

package com.android.settings.notification;

import static com.android.settings.core.BasePreferenceController.AVAILABLE;
import static com.android.settings.core.BasePreferenceController.DISABLED_FOR_USER;

import static com.google.common.truth.Truth.assertThat;

import static org.mockito.ArgumentMatchers.any;
import static org.mockito.Mockito.times;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
import static org.robolectric.Shadows.shadowOf;

import android.content.Context;
import android.content.pm.UserInfo;
import android.os.UserHandle;
import android.os.UserManager;

import androidx.preference.Preference;
import androidx.preference.PreferenceScreen;
@@ -35,6 +42,7 @@ import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
import org.robolectric.RobolectricTestRunner;
import org.robolectric.RuntimeEnvironment;
import org.robolectric.shadows.ShadowUserManager;

@RunWith(RobolectricTestRunner.class)
public class SilentStatusBarPreferenceControllerTest {
@@ -59,6 +67,27 @@ public class SilentStatusBarPreferenceControllerTest {
        when(mScreen.findPreference(mController.getPreferenceKey())).thenReturn(mPreference);
    }

    @Test
    public void isAvailable_systemUser_available() {
        assertThat(mController.getAvailabilityStatus()).isEqualTo(AVAILABLE);
    }

    @Test
    public void isAvailable_extraUser_available() {
        ShadowUserManager um = shadowOf(mContext.getSystemService(UserManager.class));
        um.addUser(UserHandle.myUserId(), "Another User", UserInfo.FLAG_FULL);

        assertThat(mController.getAvailabilityStatus()).isEqualTo(AVAILABLE);
    }

    @Test
    public void isAvailable_guestUser_disabled() {
        ShadowUserManager um = shadowOf(mContext.getSystemService(UserManager.class));
        um.addUser(UserHandle.myUserId(), "Guest", UserInfo.FLAG_GUEST);

        assertThat(mController.getAvailabilityStatus()).isEqualTo(DISABLED_FOR_USER);
    }

    @Test
    public void isChecked_settingIsOff() {
        when(mBackend.shouldHideSilentStatusBarIcons(any())).thenReturn(false);