Loading src/com/android/settings/enterprise/EnterprisePrivacyFeatureProviderImpl.java +7 −1 Original line number Diff line number Diff line Loading @@ -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; Loading @@ -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"; Loading Loading @@ -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; Loading @@ -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)); Loading tests/robotests/src/com/android/settings/enterprise/EnterprisePrivacyFeatureProviderImplTest.java +40 −13 Original line number Diff line number Diff line Loading @@ -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; Loading @@ -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; Loading @@ -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; Loading @@ -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"); Loading @@ -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; Loading @@ -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 Loading Loading @@ -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); Loading @@ -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); Loading Loading
src/com/android/settings/enterprise/EnterprisePrivacyFeatureProviderImpl.java +7 −1 Original line number Diff line number Diff line Loading @@ -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; Loading @@ -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"; Loading Loading @@ -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; Loading @@ -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)); Loading
tests/robotests/src/com/android/settings/enterprise/EnterprisePrivacyFeatureProviderImplTest.java +40 −13 Original line number Diff line number Diff line Loading @@ -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; Loading @@ -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; Loading @@ -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; Loading @@ -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"); Loading @@ -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; Loading @@ -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 Loading Loading @@ -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); Loading @@ -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); Loading