Loading core/java/com/android/internal/app/ResolverActivity.java +6 −1 Original line number Diff line number Diff line Loading @@ -1027,7 +1027,7 @@ public class ResolverActivity extends Activity implements @Override // ResolverListCommunicator public final void onPostListReady(ResolverListAdapter listAdapter, boolean doPostProcessing) { if (isAutolaunching() || maybeAutolaunchActivity()) { if (isAutolaunching()) { return; } if (mMultiProfilePagerAdapter.shouldShowEmptyStateScreen(listAdapter)) { Loading @@ -1035,6 +1035,11 @@ public class ResolverActivity extends Activity implements } else { mMultiProfilePagerAdapter.showListView(listAdapter); } // showEmptyResolverListEmptyState can mark the tab as loaded, // which is a precondition for auto launching if (maybeAutolaunchActivity()) { return; } if (doPostProcessing) { maybeCreateHeader(listAdapter); resetButtonBar(); Loading core/tests/coretests/src/com/android/internal/app/ChooserActivityTest.java +25 −0 Original line number Diff line number Diff line Loading @@ -1725,6 +1725,31 @@ public class ChooserActivityTest { assertThat(chosen[0], is(personalResolvedComponentInfos.get(0).getResolveInfoAt(0))); } @Test public void testWorkTab_onePersonalTarget_emptyStateOnWorkTarget_autolaunch() { // enable the work tab feature flag ResolverActivity.ENABLE_TABBED_VIEW = true; markWorkProfileUserAvailable(); int workProfileTargets = 4; List<ResolvedComponentInfo> personalResolvedComponentInfos = createResolvedComponentsForTestWithOtherProfile(2, /* userId */ 10); List<ResolvedComponentInfo> workResolvedComponentInfos = createResolvedComponentsForTest(workProfileTargets); sOverrides.hasCrossProfileIntents = false; setupResolverControllers(personalResolvedComponentInfos, workResolvedComponentInfos); Intent sendIntent = createSendTextIntent(); ResolveInfo[] chosen = new ResolveInfo[1]; sOverrides.onSafelyStartCallback = targetInfo -> { chosen[0] = targetInfo.getResolveInfo(); return true; }; mActivityRule.launchActivity(sendIntent); waitForIdle(); assertThat(chosen[0], is(personalResolvedComponentInfos.get(1).getResolveInfoAt(0))); } private Intent createSendTextIntent() { Intent sendIntent = new Intent(); sendIntent.setAction(Intent.ACTION_SEND); Loading core/tests/coretests/src/com/android/internal/app/ResolverActivityTest.java +26 −0 Original line number Diff line number Diff line Loading @@ -801,6 +801,32 @@ public class ResolverActivityTest { assertThat(chosen[0], is(personalResolvedComponentInfos.get(0).getResolveInfoAt(0))); } @Test public void testWorkTab_onePersonalTarget_emptyStateOnWorkTarget_autolaunch() { // enable the work tab feature flag ResolverActivity.ENABLE_TABBED_VIEW = true; markWorkProfileUserAvailable(); int workProfileTargets = 4; List<ResolvedComponentInfo> personalResolvedComponentInfos = createResolvedComponentsForTestWithOtherProfile(2, /* userId */ 10); List<ResolvedComponentInfo> workResolvedComponentInfos = createResolvedComponentsForTest(workProfileTargets); sOverrides.hasCrossProfileIntents = false; setupResolverControllers(personalResolvedComponentInfos, workResolvedComponentInfos); Intent sendIntent = createSendImageIntent(); sendIntent.setType("TestType"); ResolveInfo[] chosen = new ResolveInfo[1]; sOverrides.onSafelyStartCallback = targetInfo -> { chosen[0] = targetInfo.getResolveInfo(); return true; }; mActivityRule.launchActivity(sendIntent); waitForIdle(); assertThat(chosen[0], is(personalResolvedComponentInfos.get(1).getResolveInfoAt(0))); } private Intent createSendImageIntent() { Intent sendIntent = new Intent(); sendIntent.setAction(Intent.ACTION_SEND); Loading Loading
core/java/com/android/internal/app/ResolverActivity.java +6 −1 Original line number Diff line number Diff line Loading @@ -1027,7 +1027,7 @@ public class ResolverActivity extends Activity implements @Override // ResolverListCommunicator public final void onPostListReady(ResolverListAdapter listAdapter, boolean doPostProcessing) { if (isAutolaunching() || maybeAutolaunchActivity()) { if (isAutolaunching()) { return; } if (mMultiProfilePagerAdapter.shouldShowEmptyStateScreen(listAdapter)) { Loading @@ -1035,6 +1035,11 @@ public class ResolverActivity extends Activity implements } else { mMultiProfilePagerAdapter.showListView(listAdapter); } // showEmptyResolverListEmptyState can mark the tab as loaded, // which is a precondition for auto launching if (maybeAutolaunchActivity()) { return; } if (doPostProcessing) { maybeCreateHeader(listAdapter); resetButtonBar(); Loading
core/tests/coretests/src/com/android/internal/app/ChooserActivityTest.java +25 −0 Original line number Diff line number Diff line Loading @@ -1725,6 +1725,31 @@ public class ChooserActivityTest { assertThat(chosen[0], is(personalResolvedComponentInfos.get(0).getResolveInfoAt(0))); } @Test public void testWorkTab_onePersonalTarget_emptyStateOnWorkTarget_autolaunch() { // enable the work tab feature flag ResolverActivity.ENABLE_TABBED_VIEW = true; markWorkProfileUserAvailable(); int workProfileTargets = 4; List<ResolvedComponentInfo> personalResolvedComponentInfos = createResolvedComponentsForTestWithOtherProfile(2, /* userId */ 10); List<ResolvedComponentInfo> workResolvedComponentInfos = createResolvedComponentsForTest(workProfileTargets); sOverrides.hasCrossProfileIntents = false; setupResolverControllers(personalResolvedComponentInfos, workResolvedComponentInfos); Intent sendIntent = createSendTextIntent(); ResolveInfo[] chosen = new ResolveInfo[1]; sOverrides.onSafelyStartCallback = targetInfo -> { chosen[0] = targetInfo.getResolveInfo(); return true; }; mActivityRule.launchActivity(sendIntent); waitForIdle(); assertThat(chosen[0], is(personalResolvedComponentInfos.get(1).getResolveInfoAt(0))); } private Intent createSendTextIntent() { Intent sendIntent = new Intent(); sendIntent.setAction(Intent.ACTION_SEND); Loading
core/tests/coretests/src/com/android/internal/app/ResolverActivityTest.java +26 −0 Original line number Diff line number Diff line Loading @@ -801,6 +801,32 @@ public class ResolverActivityTest { assertThat(chosen[0], is(personalResolvedComponentInfos.get(0).getResolveInfoAt(0))); } @Test public void testWorkTab_onePersonalTarget_emptyStateOnWorkTarget_autolaunch() { // enable the work tab feature flag ResolverActivity.ENABLE_TABBED_VIEW = true; markWorkProfileUserAvailable(); int workProfileTargets = 4; List<ResolvedComponentInfo> personalResolvedComponentInfos = createResolvedComponentsForTestWithOtherProfile(2, /* userId */ 10); List<ResolvedComponentInfo> workResolvedComponentInfos = createResolvedComponentsForTest(workProfileTargets); sOverrides.hasCrossProfileIntents = false; setupResolverControllers(personalResolvedComponentInfos, workResolvedComponentInfos); Intent sendIntent = createSendImageIntent(); sendIntent.setType("TestType"); ResolveInfo[] chosen = new ResolveInfo[1]; sOverrides.onSafelyStartCallback = targetInfo -> { chosen[0] = targetInfo.getResolveInfo(); return true; }; mActivityRule.launchActivity(sendIntent); waitForIdle(); assertThat(chosen[0], is(personalResolvedComponentInfos.get(1).getResolveInfoAt(0))); } private Intent createSendImageIntent() { Intent sendIntent = new Intent(); sendIntent.setAction(Intent.ACTION_SEND); Loading