1 package com.android.cts.verifier.managedprovisioning; 2 3 import android.content.ComponentName; 4 import android.content.Context; 5 import android.content.pm.PackageManager; 6 7 public class ByodFlowTestHelper { 8 private Context mContext; 9 private PackageManager mPackageManager; 10 ByodFlowTestHelper(Context context)11 public ByodFlowTestHelper(Context context) { 12 this.mContext = context; 13 this.mPackageManager = mContext.getPackageManager(); 14 } 15 setup()16 public void setup() { 17 setComponentsEnabledState(PackageManager.COMPONENT_ENABLED_STATE_DISABLED); 18 } 19 20 /** 21 * Clean up things. This has to be working even it is called multiple times. 22 */ tearDown()23 public void tearDown() { 24 Utils.requestDeleteManagedProfile(mContext); 25 setComponentsEnabledState(PackageManager.COMPONENT_ENABLED_STATE_DEFAULT); 26 } 27 28 /** 29 * Disable or enable app components in the current profile. When they are disabled only the 30 * counterpart in the other profile can respond (via cross-profile intent filter). 31 * 32 * @param enabledState {@link PackageManager#COMPONENT_ENABLED_STATE_DISABLED} or 33 * {@link PackageManager#COMPONENT_ENABLED_STATE_DEFAULT} 34 */ setComponentsEnabledState(final int enabledState)35 private void setComponentsEnabledState(final int enabledState) { 36 final String[] components = { 37 ByodHelperActivity.class.getName(), 38 WorkStatusTestActivity.class.getName(), 39 PermissionLockdownTestActivity.ACTIVITY_ALIAS, 40 AuthenticationBoundKeyTestActivity.class.getName(), 41 VpnTestActivity.class.getName(), 42 RecentsRedactionActivity.class.getName(), 43 CommandReceiverActivity.class.getName(), 44 SetSupportMessageActivity.class.getName() 45 }; 46 for (String component : components) { 47 mPackageManager.setComponentEnabledSetting(new ComponentName(mContext, component), 48 enabledState, PackageManager.DONT_KILL_APP); 49 } 50 } 51 } 52