Merge "Check whether should auto launch after showing empty state screen" into rvc-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
8a5bba3e6a
@@ -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)) {
|
||||
@@ -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();
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user