Loading src/com/android/settings/MasterClearConfirm.java +7 −2 Original line number Diff line number Diff line Loading @@ -151,11 +151,16 @@ public class MasterClearConfirm extends InstrumentedFragment { if (isOemUnlockedAllowed()) { return false; } final DevicePolicyManager dpm = (DevicePolicyManager) getActivity() .getSystemService(Context.DEVICE_POLICY_SERVICE); // Do not erase the factory reset protection data (from Settings) if factory reset // protection policy is not supported on the device. if (!dpm.isFactoryResetProtectionPolicySupported()) { return false; } // Do not erase the factory reset protection data (from Settings) if the // device is an organization-owned managed profile device and a factory // reset protection policy has been set. final DevicePolicyManager dpm = (DevicePolicyManager) getActivity() .getSystemService(Context.DEVICE_POLICY_SERVICE); FactoryResetProtectionPolicy frpPolicy = dpm.getFactoryResetProtectionPolicy(null); if (dpm.isOrganizationOwnedDeviceWithManagedProfile() && frpPolicy != null && frpPolicy.isNotEmpty()) { Loading tests/robotests/src/com/android/settings/MasterClearConfirmTest.java +16 −0 Original line number Diff line number Diff line Loading @@ -114,6 +114,20 @@ public class MasterClearConfirmTest { mPersistentDataBlockManager)).isFalse(); } @Test public void shouldWipePersistentDataBlock_frpPolicyNotSupported_shouldReturnFalse() { when(mMasterClearConfirm.getActivity()).thenReturn(mMockActivity); doReturn(false).when(mMasterClearConfirm).isDeviceStillBeingProvisioned(); doReturn(false).when(mMasterClearConfirm).isOemUnlockedAllowed(); when(mMockActivity.getSystemService(Context.DEVICE_POLICY_SERVICE)) .thenReturn(mDevicePolicyManager); when(mDevicePolicyManager.isFactoryResetProtectionPolicySupported()).thenReturn(false); assertThat(mMasterClearConfirm.shouldWipePersistentDataBlock( mPersistentDataBlockManager)).isFalse(); } @Test public void shouldWipePersistentDataBlock_hasFactoryResetProtectionPolicy_shouldReturnFalse() { when(mMasterClearConfirm.getActivity()).thenReturn(mMockActivity); Loading @@ -128,6 +142,7 @@ public class MasterClearConfirmTest { .build(); when(mMockActivity.getSystemService(Context.DEVICE_POLICY_SERVICE)) .thenReturn(mDevicePolicyManager); when(mDevicePolicyManager.isFactoryResetProtectionPolicySupported()).thenReturn(true); when(mDevicePolicyManager.getFactoryResetProtectionPolicy(null)).thenReturn(frp); when(mDevicePolicyManager.isOrganizationOwnedDeviceWithManagedProfile()).thenReturn(true); Loading @@ -144,6 +159,7 @@ public class MasterClearConfirmTest { when(mMockActivity.getSystemService(Context.DEVICE_POLICY_SERVICE)) .thenReturn(mDevicePolicyManager); when(mDevicePolicyManager.isFactoryResetProtectionPolicySupported()).thenReturn(true); when(mDevicePolicyManager.getFactoryResetProtectionPolicy(null)).thenReturn(null); when(mDevicePolicyManager.isOrganizationOwnedDeviceWithManagedProfile()).thenReturn(false); Loading Loading
src/com/android/settings/MasterClearConfirm.java +7 −2 Original line number Diff line number Diff line Loading @@ -151,11 +151,16 @@ public class MasterClearConfirm extends InstrumentedFragment { if (isOemUnlockedAllowed()) { return false; } final DevicePolicyManager dpm = (DevicePolicyManager) getActivity() .getSystemService(Context.DEVICE_POLICY_SERVICE); // Do not erase the factory reset protection data (from Settings) if factory reset // protection policy is not supported on the device. if (!dpm.isFactoryResetProtectionPolicySupported()) { return false; } // Do not erase the factory reset protection data (from Settings) if the // device is an organization-owned managed profile device and a factory // reset protection policy has been set. final DevicePolicyManager dpm = (DevicePolicyManager) getActivity() .getSystemService(Context.DEVICE_POLICY_SERVICE); FactoryResetProtectionPolicy frpPolicy = dpm.getFactoryResetProtectionPolicy(null); if (dpm.isOrganizationOwnedDeviceWithManagedProfile() && frpPolicy != null && frpPolicy.isNotEmpty()) { Loading
tests/robotests/src/com/android/settings/MasterClearConfirmTest.java +16 −0 Original line number Diff line number Diff line Loading @@ -114,6 +114,20 @@ public class MasterClearConfirmTest { mPersistentDataBlockManager)).isFalse(); } @Test public void shouldWipePersistentDataBlock_frpPolicyNotSupported_shouldReturnFalse() { when(mMasterClearConfirm.getActivity()).thenReturn(mMockActivity); doReturn(false).when(mMasterClearConfirm).isDeviceStillBeingProvisioned(); doReturn(false).when(mMasterClearConfirm).isOemUnlockedAllowed(); when(mMockActivity.getSystemService(Context.DEVICE_POLICY_SERVICE)) .thenReturn(mDevicePolicyManager); when(mDevicePolicyManager.isFactoryResetProtectionPolicySupported()).thenReturn(false); assertThat(mMasterClearConfirm.shouldWipePersistentDataBlock( mPersistentDataBlockManager)).isFalse(); } @Test public void shouldWipePersistentDataBlock_hasFactoryResetProtectionPolicy_shouldReturnFalse() { when(mMasterClearConfirm.getActivity()).thenReturn(mMockActivity); Loading @@ -128,6 +142,7 @@ public class MasterClearConfirmTest { .build(); when(mMockActivity.getSystemService(Context.DEVICE_POLICY_SERVICE)) .thenReturn(mDevicePolicyManager); when(mDevicePolicyManager.isFactoryResetProtectionPolicySupported()).thenReturn(true); when(mDevicePolicyManager.getFactoryResetProtectionPolicy(null)).thenReturn(frp); when(mDevicePolicyManager.isOrganizationOwnedDeviceWithManagedProfile()).thenReturn(true); Loading @@ -144,6 +159,7 @@ public class MasterClearConfirmTest { when(mMockActivity.getSystemService(Context.DEVICE_POLICY_SERVICE)) .thenReturn(mDevicePolicyManager); when(mDevicePolicyManager.isFactoryResetProtectionPolicySupported()).thenReturn(true); when(mDevicePolicyManager.getFactoryResetProtectionPolicy(null)).thenReturn(null); when(mDevicePolicyManager.isOrganizationOwnedDeviceWithManagedProfile()).thenReturn(false); Loading