Loading services/core/java/com/android/server/wm/ActivityStartController.java +3 −0 Original line number Diff line number Diff line Loading @@ -562,11 +562,14 @@ public class ActivityStartController { @Nullable IBinder errorCallbackToken) { final ActivityRecord caller = resultTo != null ? ActivityRecord.forTokenLocked(resultTo) : null; final String resolvedType = activityIntent.resolveTypeIfNeeded(mService.mContext.getContentResolver()); return obtainStarter(activityIntent, "startActivityInTaskFragment") .setActivityOptions(activityOptions) .setInTaskFragment(taskFragment) .setResultTo(resultTo) .setRequestCode(-1) .setResolvedType(resolvedType) .setCallingUid(callingUid) .setCallingPid(callingPid) .setRealCallingUid(callingUid) Loading services/tests/wmtests/src/com/android/server/wm/ActivityStartControllerTests.java +27 −0 Original line number Diff line number Diff line Loading @@ -23,7 +23,10 @@ import static com.android.dx.mockito.inline.extended.ExtendedMockito.spy; import static com.android.dx.mockito.inline.extended.ExtendedMockito.times; import static com.android.dx.mockito.inline.extended.ExtendedMockito.verify; import static com.google.common.truth.Truth.assertThat; import android.content.Intent; import android.os.Binder; import android.platform.test.annotations.Presubmit; import androidx.test.filters.SmallTest; Loading @@ -48,6 +51,8 @@ public class ActivityStartControllerTests extends WindowTestsBase { private Factory mFactory; private ActivityStarter mStarter; private static final String TEST_TYPE = "testType"; @Before public void setUp() throws Exception { mFactory = mock(Factory.class); Loading @@ -57,6 +62,28 @@ public class ActivityStartControllerTests extends WindowTestsBase { doReturn(mStarter).when(mFactory).obtain(); } /** * Ensures that when an [Activity] is started in a [TaskFragment] the associated * [ActivityStarter.Request] has the intent's resolved type correctly set. */ @Test public void testStartActivityInTaskFragment_setsActivityStarterRequestResolvedType() { final Intent intent = new Intent(); intent.setType(TEST_TYPE); mController.startActivityInTaskFragment( mock(TaskFragment.class), intent, null /* activityOptions */, null /* resultTo */ , Binder.getCallingPid(), Binder.getCallingUid(), null /* errorCallbackToken */ ); assertThat(mStarter.mRequest.resolvedType).isEqualTo(TEST_TYPE); } /** * Ensures instances are recycled after execution. */ Loading Loading
services/core/java/com/android/server/wm/ActivityStartController.java +3 −0 Original line number Diff line number Diff line Loading @@ -562,11 +562,14 @@ public class ActivityStartController { @Nullable IBinder errorCallbackToken) { final ActivityRecord caller = resultTo != null ? ActivityRecord.forTokenLocked(resultTo) : null; final String resolvedType = activityIntent.resolveTypeIfNeeded(mService.mContext.getContentResolver()); return obtainStarter(activityIntent, "startActivityInTaskFragment") .setActivityOptions(activityOptions) .setInTaskFragment(taskFragment) .setResultTo(resultTo) .setRequestCode(-1) .setResolvedType(resolvedType) .setCallingUid(callingUid) .setCallingPid(callingPid) .setRealCallingUid(callingUid) Loading
services/tests/wmtests/src/com/android/server/wm/ActivityStartControllerTests.java +27 −0 Original line number Diff line number Diff line Loading @@ -23,7 +23,10 @@ import static com.android.dx.mockito.inline.extended.ExtendedMockito.spy; import static com.android.dx.mockito.inline.extended.ExtendedMockito.times; import static com.android.dx.mockito.inline.extended.ExtendedMockito.verify; import static com.google.common.truth.Truth.assertThat; import android.content.Intent; import android.os.Binder; import android.platform.test.annotations.Presubmit; import androidx.test.filters.SmallTest; Loading @@ -48,6 +51,8 @@ public class ActivityStartControllerTests extends WindowTestsBase { private Factory mFactory; private ActivityStarter mStarter; private static final String TEST_TYPE = "testType"; @Before public void setUp() throws Exception { mFactory = mock(Factory.class); Loading @@ -57,6 +62,28 @@ public class ActivityStartControllerTests extends WindowTestsBase { doReturn(mStarter).when(mFactory).obtain(); } /** * Ensures that when an [Activity] is started in a [TaskFragment] the associated * [ActivityStarter.Request] has the intent's resolved type correctly set. */ @Test public void testStartActivityInTaskFragment_setsActivityStarterRequestResolvedType() { final Intent intent = new Intent(); intent.setType(TEST_TYPE); mController.startActivityInTaskFragment( mock(TaskFragment.class), intent, null /* activityOptions */, null /* resultTo */ , Binder.getCallingPid(), Binder.getCallingUid(), null /* errorCallbackToken */ ); assertThat(mStarter.mRequest.resolvedType).isEqualTo(TEST_TYPE); } /** * Ensures instances are recycled after execution. */ Loading