Merge "Disable the ContentProtection setting switch bar when current user is a guest user." into main
This commit is contained in:
@@ -21,6 +21,7 @@ import android.app.admin.DevicePolicyManager;
|
|||||||
import android.content.ContentResolver;
|
import android.content.ContentResolver;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.os.UserHandle;
|
import android.os.UserHandle;
|
||||||
|
import android.os.UserManager;
|
||||||
import android.provider.Settings;
|
import android.provider.Settings;
|
||||||
import android.widget.CompoundButton;
|
import android.widget.CompoundButton;
|
||||||
import android.widget.CompoundButton.OnCheckedChangeListener;
|
import android.widget.CompoundButton.OnCheckedChangeListener;
|
||||||
@@ -126,6 +127,14 @@ public class ContentProtectionTogglePreferenceController extends TogglePreferenc
|
|||||||
&& mContentProtectionPolicy
|
&& mContentProtectionPolicy
|
||||||
!= DevicePolicyManager.CONTENT_PROTECTION_NOT_CONTROLLED_BY_POLICY) {
|
!= DevicePolicyManager.CONTENT_PROTECTION_NOT_CONTROLLED_BY_POLICY) {
|
||||||
mSwitchBar.setDisabledByAdmin(mEnforcedAdmin);
|
mSwitchBar.setDisabledByAdmin(mEnforcedAdmin);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
UserManager userManager = mContext.getSystemService(UserManager.class);
|
||||||
|
if (userManager != null
|
||||||
|
&& userManager.isGuestUser()
|
||||||
|
&& mSwitchBar != null) {
|
||||||
|
mSwitchBar.setEnabled(false);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -24,8 +24,11 @@ import static com.google.common.truth.Truth.assertThat;
|
|||||||
|
|
||||||
import static org.mockito.ArgumentMatchers.any;
|
import static org.mockito.ArgumentMatchers.any;
|
||||||
import static org.mockito.Mockito.never;
|
import static org.mockito.Mockito.never;
|
||||||
|
import static org.mockito.Mockito.spy;
|
||||||
|
import static org.mockito.Mockito.times;
|
||||||
import static org.mockito.Mockito.verify;
|
import static org.mockito.Mockito.verify;
|
||||||
import static org.mockito.Mockito.when;
|
import static org.mockito.Mockito.when;
|
||||||
|
import static org.robolectric.Shadows.shadowOf;
|
||||||
|
|
||||||
import android.app.admin.DevicePolicyManager;
|
import android.app.admin.DevicePolicyManager;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
@@ -38,6 +41,7 @@ import androidx.preference.PreferenceScreen;
|
|||||||
import androidx.test.core.app.ApplicationProvider;
|
import androidx.test.core.app.ApplicationProvider;
|
||||||
|
|
||||||
import com.android.settings.testutils.shadow.ShadowUtils;
|
import com.android.settings.testutils.shadow.ShadowUtils;
|
||||||
|
import com.android.settings.testutils.shadow.ShadowUserManager;
|
||||||
import com.android.settings.widget.SettingsMainSwitchPreference;
|
import com.android.settings.widget.SettingsMainSwitchPreference;
|
||||||
import com.android.settingslib.RestrictedLockUtils;
|
import com.android.settingslib.RestrictedLockUtils;
|
||||||
|
|
||||||
@@ -53,7 +57,8 @@ import org.robolectric.RobolectricTestRunner;
|
|||||||
import org.robolectric.annotation.Config;
|
import org.robolectric.annotation.Config;
|
||||||
|
|
||||||
@RunWith(RobolectricTestRunner.class)
|
@RunWith(RobolectricTestRunner.class)
|
||||||
@Config(shadows = {ShadowUtils.class})
|
@Config(shadows = {ShadowUtils.class,
|
||||||
|
ShadowUserManager.class})
|
||||||
public class ContentProtectionTogglePreferenceControllerTest {
|
public class ContentProtectionTogglePreferenceControllerTest {
|
||||||
|
|
||||||
@Rule public final MockitoRule mMockitoRule = MockitoJUnit.rule();
|
@Rule public final MockitoRule mMockitoRule = MockitoJUnit.rule();
|
||||||
@@ -74,9 +79,13 @@ public class ContentProtectionTogglePreferenceControllerTest {
|
|||||||
private TestContentProtectionTogglePreferenceController mController;
|
private TestContentProtectionTogglePreferenceController mController;
|
||||||
|
|
||||||
private int mSettingBackupValue;
|
private int mSettingBackupValue;
|
||||||
|
private ShadowUserManager mShadowUserManager;
|
||||||
|
|
||||||
|
|
||||||
@Before
|
@Before
|
||||||
public void setUp() {
|
public void setUp() {
|
||||||
|
mShadowUserManager = ShadowUserManager.getShadow();
|
||||||
|
mShadowUserManager.setGuestUser(false);
|
||||||
mController = new TestContentProtectionTogglePreferenceController();
|
mController = new TestContentProtectionTogglePreferenceController();
|
||||||
SettingsMainSwitchPreference switchPreference = new SettingsMainSwitchPreference(mContext);
|
SettingsMainSwitchPreference switchPreference = new SettingsMainSwitchPreference(mContext);
|
||||||
when(mMockPreferenceScreen.findPreference(mController.getPreferenceKey()))
|
when(mMockPreferenceScreen.findPreference(mController.getPreferenceKey()))
|
||||||
@@ -225,6 +234,7 @@ public class ContentProtectionTogglePreferenceControllerTest {
|
|||||||
|
|
||||||
assertThat(mController.mCounterGetEnforcedAdmin).isEqualTo(1);
|
assertThat(mController.mCounterGetEnforcedAdmin).isEqualTo(1);
|
||||||
verify(mMockSwitchPreference, never()).setDisabledByAdmin(any());
|
verify(mMockSwitchPreference, never()).setDisabledByAdmin(any());
|
||||||
|
verify(mMockSwitchPreference, never()).setEnabled(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@@ -237,6 +247,7 @@ public class ContentProtectionTogglePreferenceControllerTest {
|
|||||||
|
|
||||||
assertThat(mController.mCounterGetEnforcedAdmin).isEqualTo(1);
|
assertThat(mController.mCounterGetEnforcedAdmin).isEqualTo(1);
|
||||||
verify(mMockSwitchPreference).setDisabledByAdmin(mEnforcedAdmin);
|
verify(mMockSwitchPreference).setDisabledByAdmin(mEnforcedAdmin);
|
||||||
|
verify(mMockSwitchPreference, never()).setEnabled(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@@ -249,6 +260,7 @@ public class ContentProtectionTogglePreferenceControllerTest {
|
|||||||
|
|
||||||
assertThat(mController.mCounterGetEnforcedAdmin).isEqualTo(1);
|
assertThat(mController.mCounterGetEnforcedAdmin).isEqualTo(1);
|
||||||
verify(mMockSwitchPreference, never()).setDisabledByAdmin(any());
|
verify(mMockSwitchPreference, never()).setDisabledByAdmin(any());
|
||||||
|
verify(mMockSwitchPreference, never()).setEnabled(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@@ -261,6 +273,30 @@ public class ContentProtectionTogglePreferenceControllerTest {
|
|||||||
|
|
||||||
assertThat(mController.mCounterGetEnforcedAdmin).isEqualTo(1);
|
assertThat(mController.mCounterGetEnforcedAdmin).isEqualTo(1);
|
||||||
verify(mMockSwitchPreference, never()).setDisabledByAdmin(any());
|
verify(mMockSwitchPreference, never()).setDisabledByAdmin(any());
|
||||||
|
verify(mMockSwitchPreference, never()).setEnabled(false);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void updateState_flagEnabled_noEnforcedAdmin_guestUser_switchBarDisabled() {
|
||||||
|
mShadowUserManager.setGuestUser(true);
|
||||||
|
mSetFlagsRule.enableFlags(FLAG_MANAGE_DEVICE_POLICY_ENABLED);
|
||||||
|
mContentProtectionPolicy = DevicePolicyManager.CONTENT_PROTECTION_ENABLED;
|
||||||
|
setupForUpdateState();
|
||||||
|
|
||||||
|
mController.updateState(mMockSwitchPreference);
|
||||||
|
|
||||||
|
verify(mMockSwitchPreference).setEnabled(false);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void updateState_flagEnabled_noEnforcedAdmin_nonGuestUser_switchBarEnabled() {
|
||||||
|
mSetFlagsRule.enableFlags(FLAG_MANAGE_DEVICE_POLICY_ENABLED);
|
||||||
|
mContentProtectionPolicy = DevicePolicyManager.CONTENT_PROTECTION_ENABLED;
|
||||||
|
setupForUpdateState();
|
||||||
|
|
||||||
|
mController.updateState(mMockSwitchPreference);
|
||||||
|
|
||||||
|
verify(mMockSwitchPreference, never()).setEnabled(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@@ -273,6 +309,7 @@ public class ContentProtectionTogglePreferenceControllerTest {
|
|||||||
|
|
||||||
assertThat(mController.mCounterGetEnforcedAdmin).isEqualTo(1);
|
assertThat(mController.mCounterGetEnforcedAdmin).isEqualTo(1);
|
||||||
verify(mMockSwitchPreference, never()).setDisabledByAdmin(any());
|
verify(mMockSwitchPreference, never()).setDisabledByAdmin(any());
|
||||||
|
verify(mMockSwitchPreference, never()).setEnabled(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@@ -286,6 +323,7 @@ public class ContentProtectionTogglePreferenceControllerTest {
|
|||||||
|
|
||||||
assertThat(mController.mCounterGetEnforcedAdmin).isEqualTo(1);
|
assertThat(mController.mCounterGetEnforcedAdmin).isEqualTo(1);
|
||||||
verify(mMockSwitchPreference).setDisabledByAdmin(mEnforcedAdmin);
|
verify(mMockSwitchPreference).setDisabledByAdmin(mEnforcedAdmin);
|
||||||
|
verify(mMockSwitchPreference, never()).setEnabled(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@@ -299,6 +337,7 @@ public class ContentProtectionTogglePreferenceControllerTest {
|
|||||||
|
|
||||||
assertThat(mController.mCounterGetEnforcedAdmin).isEqualTo(1);
|
assertThat(mController.mCounterGetEnforcedAdmin).isEqualTo(1);
|
||||||
verify(mMockSwitchPreference).setDisabledByAdmin(mEnforcedAdmin);
|
verify(mMockSwitchPreference).setDisabledByAdmin(mEnforcedAdmin);
|
||||||
|
verify(mMockSwitchPreference, never()).setEnabled(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@@ -312,6 +351,7 @@ public class ContentProtectionTogglePreferenceControllerTest {
|
|||||||
|
|
||||||
assertThat(mController.mCounterGetEnforcedAdmin).isEqualTo(1);
|
assertThat(mController.mCounterGetEnforcedAdmin).isEqualTo(1);
|
||||||
verify(mMockSwitchPreference, never()).setDisabledByAdmin(any());
|
verify(mMockSwitchPreference, never()).setDisabledByAdmin(any());
|
||||||
|
verify(mMockSwitchPreference, never()).setEnabled(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
|||||||
Reference in New Issue
Block a user