Update EnterprisePrivacyFeatureProviderImpl to obtain the parental controls intent from SupervisionIntentProvider.
Bug: 382038391 Flag: android.app.supervision.flags.deprecate_dpm_supervision_apis Test: atest EnterprisePrivacyFeatureProviderImplTest Change-Id: Iab4308406257c18c5e6881747642a932ae54f78e
This commit is contained in:
@@ -37,6 +37,7 @@ import android.text.SpannableStringBuilder;
|
||||
|
||||
import com.android.settings.R;
|
||||
import com.android.settings.vpn2.VpnUtils;
|
||||
import com.android.settingslib.supervision.SupervisionIntentProvider;
|
||||
import com.android.settingslib.utils.WorkPolicyUtils;
|
||||
|
||||
import java.util.Date;
|
||||
@@ -44,6 +45,7 @@ import java.util.List;
|
||||
|
||||
public class EnterprisePrivacyFeatureProviderImpl implements EnterprisePrivacyFeatureProvider {
|
||||
|
||||
@Deprecated
|
||||
public static final String ACTION_PARENTAL_CONTROLS =
|
||||
"android.settings.SHOW_PARENTAL_CONTROLS";
|
||||
|
||||
@@ -243,7 +245,10 @@ public class EnterprisePrivacyFeatureProviderImpl implements EnterprisePrivacyFe
|
||||
|
||||
@Override
|
||||
public boolean showParentalControls() {
|
||||
Intent intent = getParentalControlsIntent();
|
||||
Intent intent =
|
||||
android.app.supervision.flags.Flags.deprecateDpmSupervisionApis()
|
||||
? SupervisionIntentProvider.getSettingsIntent(mContext)
|
||||
: getParentalControlsIntent();
|
||||
if (intent != null) {
|
||||
mContext.startActivity(intent);
|
||||
return true;
|
||||
@@ -261,6 +266,7 @@ public class EnterprisePrivacyFeatureProviderImpl implements EnterprisePrivacyFe
|
||||
== UserProperties.SHOW_IN_QUIET_MODE_HIDDEN;
|
||||
}
|
||||
|
||||
@Deprecated
|
||||
private Intent getParentalControlsIntent() {
|
||||
final ComponentName componentName =
|
||||
mDpm.getProfileOwnerOrDeviceOwnerSupervisionComponent(new UserHandle(MY_USER_ID));
|
||||
|
@@ -26,9 +26,11 @@ import static org.mockito.Mockito.mock;
|
||||
import static org.mockito.Mockito.never;
|
||||
import static org.mockito.Mockito.reset;
|
||||
import static org.mockito.Mockito.verify;
|
||||
import static org.mockito.Mockito.verifyNoMoreInteractions;
|
||||
import static org.mockito.Mockito.when;
|
||||
|
||||
import android.app.admin.DevicePolicyManager;
|
||||
import android.app.supervision.SupervisionManager;
|
||||
import android.content.ComponentName;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
@@ -42,6 +44,9 @@ import android.net.ConnectivityManager;
|
||||
import android.net.VpnManager;
|
||||
import android.os.UserHandle;
|
||||
import android.os.UserManager;
|
||||
import android.platform.test.annotations.DisableFlags;
|
||||
import android.platform.test.annotations.EnableFlags;
|
||||
import android.platform.test.flag.junit.SetFlagsRule;
|
||||
import android.provider.Settings;
|
||||
import android.text.SpannableStringBuilder;
|
||||
|
||||
@@ -51,8 +56,10 @@ import com.google.common.collect.ImmutableList;
|
||||
|
||||
import org.junit.Before;
|
||||
import org.junit.Ignore;
|
||||
import org.junit.Rule;
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
import org.mockito.ArgumentCaptor;
|
||||
import org.mockito.ArgumentMatcher;
|
||||
import org.mockito.Mock;
|
||||
import org.mockito.MockitoAnnotations;
|
||||
@@ -68,10 +75,13 @@ import java.util.List;
|
||||
@RunWith(RobolectricTestRunner.class)
|
||||
public class EnterprisePrivacyFeatureProviderImplTest {
|
||||
|
||||
@Rule public final SetFlagsRule mSetFlagsRule = new SetFlagsRule();
|
||||
|
||||
private static final String OWNER_ORGANIZATION = "ACME";
|
||||
private static final String VPN_PACKAGE_ID = "com.example.vpn";
|
||||
private static final String IME_PACKAGE_ID = "com.example.ime";
|
||||
private static final String IME_PACKAGE_LABEL = "Test IME";
|
||||
private static final String SUPERVISION_PACKAGE = "com.supervision.app";
|
||||
|
||||
private final ComponentName mOwner = new ComponentName("mock", "component");
|
||||
private final ComponentName mAdmin1 = new ComponentName("mock", "admin1");
|
||||
@@ -82,19 +92,14 @@ public class EnterprisePrivacyFeatureProviderImplTest {
|
||||
|
||||
private List<UserInfo> mProfiles = new ArrayList<>();
|
||||
|
||||
@Mock
|
||||
private Context mContext;
|
||||
@Mock
|
||||
private DevicePolicyManager mDevicePolicyManager;
|
||||
@Mock
|
||||
private PackageManager mPackageManager;
|
||||
@Mock
|
||||
private UserManager mUserManager;
|
||||
@Mock
|
||||
private ConnectivityManager mConnectivityManger;
|
||||
@Mock
|
||||
private VpnManager mVpnManager;
|
||||
@Mock private Context mContext;
|
||||
@Mock private DevicePolicyManager mDevicePolicyManager;
|
||||
@Mock private PackageManager mPackageManager;
|
||||
@Mock private UserManager mUserManager;
|
||||
@Mock private ConnectivityManager mConnectivityManager;
|
||||
@Mock private VpnManager mVpnManager;
|
||||
private Resources mResources;
|
||||
@Mock private SupervisionManager mSupervisionManager;
|
||||
|
||||
private EnterprisePrivacyFeatureProvider mProvider;
|
||||
|
||||
@@ -108,12 +113,14 @@ public class EnterprisePrivacyFeatureProviderImplTest {
|
||||
when(mContext.getSystemService(Context.DEVICE_POLICY_SERVICE))
|
||||
.thenReturn(mDevicePolicyManager);
|
||||
when(mContext.getSystemService(Context.USER_SERVICE)).thenReturn(mUserManager);
|
||||
when(mContext.getSystemService(SupervisionManager.class))
|
||||
.thenReturn(mSupervisionManager);
|
||||
when(mContext.getPackageManager()).thenReturn(mPackageManager);
|
||||
mProfiles.add(new UserInfo(mUserId, "", "", 0 /* flags */));
|
||||
mResources = RuntimeEnvironment.application.getResources();
|
||||
|
||||
mProvider = new EnterprisePrivacyFeatureProviderImpl(mContext, mDevicePolicyManager,
|
||||
mPackageManager, mUserManager, mConnectivityManger, mVpnManager, mResources);
|
||||
mPackageManager, mUserManager, mConnectivityManager, mVpnManager, mResources);
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -430,6 +437,7 @@ public class EnterprisePrivacyFeatureProviderImplTest {
|
||||
}
|
||||
|
||||
@Test
|
||||
@DisableFlags(android.app.supervision.flags.Flags.FLAG_DEPRECATE_DPM_SUPERVISION_APIS)
|
||||
public void testShowParentalControls() {
|
||||
when(mDevicePolicyManager.getProfileOwnerOrDeviceOwnerSupervisionComponent(any()))
|
||||
.thenReturn(mOwner);
|
||||
@@ -440,6 +448,25 @@ public class EnterprisePrivacyFeatureProviderImplTest {
|
||||
verify(mContext).startActivity(intentEquals(intent));
|
||||
}
|
||||
|
||||
@Test
|
||||
@EnableFlags(android.app.supervision.flags.Flags.FLAG_DEPRECATE_DPM_SUPERVISION_APIS)
|
||||
public void testShowParentalControls_usingSupervisionManager() {
|
||||
when(mSupervisionManager.getActiveSupervisionAppPackage())
|
||||
.thenReturn(SUPERVISION_PACKAGE);
|
||||
when(mPackageManager.queryIntentActivitiesAsUser(any(Intent.class), anyInt(), anyInt()))
|
||||
.thenReturn(ImmutableList.of(new ResolveInfo()));
|
||||
|
||||
// If the intent is resolved, then we can use it to launch the activity.
|
||||
assertThat(mProvider.showParentalControls()).isTrue();
|
||||
verifyNoMoreInteractions(mDevicePolicyManager);
|
||||
|
||||
ArgumentCaptor<Intent> captor = ArgumentCaptor.forClass(Intent.class);
|
||||
verify(mContext).startActivity(captor.capture());
|
||||
Intent intent = captor.getValue();
|
||||
assertThat(intent).isNotNull();
|
||||
assertThat(intent.getPackage()).isEqualTo(SUPERVISION_PACKAGE);
|
||||
}
|
||||
|
||||
private Intent addWorkPolicyInfoIntent(
|
||||
String packageName, boolean deviceOwner, boolean profileOwner) {
|
||||
Intent intent = new Intent(Settings.ACTION_SHOW_WORK_POLICY_INFO);
|
||||
|
Reference in New Issue
Block a user