Loading core/java/com/android/internal/app/IntentForwarderActivity.java +9 −0 Original line number Diff line number Diff line Loading @@ -38,6 +38,7 @@ import android.os.Bundle; import android.os.RemoteException; import android.os.UserHandle; import android.os.UserManager; import android.provider.Settings; import android.util.Slog; import android.widget.Toast; Loading Loading @@ -153,6 +154,9 @@ public class IntentForwarderActivity extends Activity { } private boolean shouldShowDisclosure(@Nullable ResolveInfo ri, Intent intent) { if (!isDeviceProvisioned()) { return false; } if (ri == null || ri.activityInfo == null) { return true; } Loading @@ -163,6 +167,11 @@ public class IntentForwarderActivity extends Activity { return !isTargetResolverOrChooserActivity(ri.activityInfo); } private boolean isDeviceProvisioned() { return Settings.Global.getInt(getContentResolver(), Settings.Global.DEVICE_PROVISIONED, /* def= */ 0) != 0; } private boolean isTextMessageIntent(Intent intent) { return (Intent.ACTION_SENDTO.equals(intent.getAction()) || isViewActionIntent(intent)) && ALLOWED_TEXT_MESSAGE_SCHEMES.contains(intent.getScheme()); Loading core/tests/coretests/src/com/android/internal/app/IntentForwarderActivityTest.java +30 −0 Original line number Diff line number Diff line Loading @@ -48,6 +48,7 @@ import android.os.IBinder; import android.os.RemoteException; import android.os.UserHandle; import android.os.UserManager; import android.provider.Settings; import androidx.test.InstrumentationRegistry; import androidx.test.rule.ActivityTestRule; Loading @@ -56,6 +57,7 @@ import androidx.test.runner.AndroidJUnit4; import com.android.internal.logging.MetricsLogger; import com.android.internal.logging.nano.MetricsProto.MetricsEvent; import org.junit.After; import org.junit.Before; import org.junit.Rule; import org.junit.Test; Loading Loading @@ -87,6 +89,7 @@ public class IntentForwarderActivityTest { static { MANAGED_PROFILE_INFO.id = 10; MANAGED_PROFILE_INFO.flags = UserInfo.FLAG_MANAGED_PROFILE; MANAGED_PROFILE_INFO.userType = UserManager.USER_TYPE_PROFILE_MANAGED; } private static UserInfo CURRENT_USER_INFO = new UserInfo(); Loading Loading @@ -116,12 +119,21 @@ public class IntentForwarderActivityTest { private Context mContext; public static final String PHONE_NUMBER = "123-456-789"; private int mDeviceProvisionedInitialValue; @Before public void setup() { MockitoAnnotations.initMocks(this); mContext = InstrumentationRegistry.getTargetContext(); sInjector = spy(new TestInjector()); mDeviceProvisionedInitialValue = Settings.Global.getInt(mContext.getContentResolver(), Settings.Global.DEVICE_PROVISIONED, /* def= */ 0); } @After public void tearDown() { Settings.Global.putInt(mContext.getContentResolver(), Settings.Global.DEVICE_PROVISIONED, mDeviceProvisionedInitialValue); } @Test Loading Loading @@ -532,6 +544,22 @@ public class IntentForwarderActivityTest { verify(sInjector).showToast(anyInt(), anyInt()); } @Test public void shouldSkipDisclosure_duringDeviceSetup() throws RemoteException { setupShouldSkipDisclosureTest(); Settings.Global.putInt(mContext.getContentResolver(), Settings.Global.DEVICE_PROVISIONED, /* value= */ 0); Intent intent = new Intent(mContext, IntentForwarderWrapperActivity.class) .setAction(Intent.ACTION_VIEW) .addCategory(Intent.CATEGORY_BROWSABLE) .setData(Uri.fromParts("http", "apache.org", null)); mActivityRule.launchActivity(intent); verify(mIPm).canForwardTo(any(), any(), anyInt(), anyInt()); verify(sInjector, never()).showToast(anyInt(), anyInt()); } @Test public void forwardToManagedProfile_LoggingTest() throws Exception { sComponentName = FORWARD_TO_MANAGED_PROFILE_COMPONENT_NAME; Loading Loading @@ -590,6 +618,8 @@ public class IntentForwarderActivityTest { sComponentName = FORWARD_TO_MANAGED_PROFILE_COMPONENT_NAME; sActivityName = "MyTestActivity"; sPackageName = "test.package.name"; Settings.Global.putInt(mContext.getContentResolver(), Settings.Global.DEVICE_PROVISIONED, /* value= */ 1); when(mApplicationInfo.isSystemApp()).thenReturn(true); // Managed profile exists. List<UserInfo> profiles = new ArrayList<>(); Loading Loading
core/java/com/android/internal/app/IntentForwarderActivity.java +9 −0 Original line number Diff line number Diff line Loading @@ -38,6 +38,7 @@ import android.os.Bundle; import android.os.RemoteException; import android.os.UserHandle; import android.os.UserManager; import android.provider.Settings; import android.util.Slog; import android.widget.Toast; Loading Loading @@ -153,6 +154,9 @@ public class IntentForwarderActivity extends Activity { } private boolean shouldShowDisclosure(@Nullable ResolveInfo ri, Intent intent) { if (!isDeviceProvisioned()) { return false; } if (ri == null || ri.activityInfo == null) { return true; } Loading @@ -163,6 +167,11 @@ public class IntentForwarderActivity extends Activity { return !isTargetResolverOrChooserActivity(ri.activityInfo); } private boolean isDeviceProvisioned() { return Settings.Global.getInt(getContentResolver(), Settings.Global.DEVICE_PROVISIONED, /* def= */ 0) != 0; } private boolean isTextMessageIntent(Intent intent) { return (Intent.ACTION_SENDTO.equals(intent.getAction()) || isViewActionIntent(intent)) && ALLOWED_TEXT_MESSAGE_SCHEMES.contains(intent.getScheme()); Loading
core/tests/coretests/src/com/android/internal/app/IntentForwarderActivityTest.java +30 −0 Original line number Diff line number Diff line Loading @@ -48,6 +48,7 @@ import android.os.IBinder; import android.os.RemoteException; import android.os.UserHandle; import android.os.UserManager; import android.provider.Settings; import androidx.test.InstrumentationRegistry; import androidx.test.rule.ActivityTestRule; Loading @@ -56,6 +57,7 @@ import androidx.test.runner.AndroidJUnit4; import com.android.internal.logging.MetricsLogger; import com.android.internal.logging.nano.MetricsProto.MetricsEvent; import org.junit.After; import org.junit.Before; import org.junit.Rule; import org.junit.Test; Loading Loading @@ -87,6 +89,7 @@ public class IntentForwarderActivityTest { static { MANAGED_PROFILE_INFO.id = 10; MANAGED_PROFILE_INFO.flags = UserInfo.FLAG_MANAGED_PROFILE; MANAGED_PROFILE_INFO.userType = UserManager.USER_TYPE_PROFILE_MANAGED; } private static UserInfo CURRENT_USER_INFO = new UserInfo(); Loading Loading @@ -116,12 +119,21 @@ public class IntentForwarderActivityTest { private Context mContext; public static final String PHONE_NUMBER = "123-456-789"; private int mDeviceProvisionedInitialValue; @Before public void setup() { MockitoAnnotations.initMocks(this); mContext = InstrumentationRegistry.getTargetContext(); sInjector = spy(new TestInjector()); mDeviceProvisionedInitialValue = Settings.Global.getInt(mContext.getContentResolver(), Settings.Global.DEVICE_PROVISIONED, /* def= */ 0); } @After public void tearDown() { Settings.Global.putInt(mContext.getContentResolver(), Settings.Global.DEVICE_PROVISIONED, mDeviceProvisionedInitialValue); } @Test Loading Loading @@ -532,6 +544,22 @@ public class IntentForwarderActivityTest { verify(sInjector).showToast(anyInt(), anyInt()); } @Test public void shouldSkipDisclosure_duringDeviceSetup() throws RemoteException { setupShouldSkipDisclosureTest(); Settings.Global.putInt(mContext.getContentResolver(), Settings.Global.DEVICE_PROVISIONED, /* value= */ 0); Intent intent = new Intent(mContext, IntentForwarderWrapperActivity.class) .setAction(Intent.ACTION_VIEW) .addCategory(Intent.CATEGORY_BROWSABLE) .setData(Uri.fromParts("http", "apache.org", null)); mActivityRule.launchActivity(intent); verify(mIPm).canForwardTo(any(), any(), anyInt(), anyInt()); verify(sInjector, never()).showToast(anyInt(), anyInt()); } @Test public void forwardToManagedProfile_LoggingTest() throws Exception { sComponentName = FORWARD_TO_MANAGED_PROFILE_COMPONENT_NAME; Loading Loading @@ -590,6 +618,8 @@ public class IntentForwarderActivityTest { sComponentName = FORWARD_TO_MANAGED_PROFILE_COMPONENT_NAME; sActivityName = "MyTestActivity"; sPackageName = "test.package.name"; Settings.Global.putInt(mContext.getContentResolver(), Settings.Global.DEVICE_PROVISIONED, /* value= */ 1); when(mApplicationInfo.isSystemApp()).thenReturn(true); // Managed profile exists. List<UserInfo> profiles = new ArrayList<>(); Loading