diff options
| -rw-r--r-- | core/java/com/android/internal/app/ResolverActivity.java | 5 | ||||
| -rw-r--r-- | core/tests/coretests/src/com/android/internal/app/ResolverActivityTest.java | 30 |
2 files changed, 35 insertions, 0 deletions
diff --git a/core/java/com/android/internal/app/ResolverActivity.java b/core/java/com/android/internal/app/ResolverActivity.java index e336e96d577e..fd5eac8071bd 100644 --- a/core/java/com/android/internal/app/ResolverActivity.java +++ b/core/java/com/android/internal/app/ResolverActivity.java @@ -1603,6 +1603,11 @@ public class ResolverActivity extends Activity implements List<DisplayResolveInfo> otherProfileList = mMultiProfilePagerAdapter.getInactiveListAdapter().mDisplayList; + if (sameProfileList.isEmpty()) { + Log.d(TAG, "No targets in the current profile"); + return false; + } + if (otherProfileList.size() != 1) { Log.d(TAG, "Found " + otherProfileList.size() + " resolvers in the other profile"); return false; diff --git a/core/tests/coretests/src/com/android/internal/app/ResolverActivityTest.java b/core/tests/coretests/src/com/android/internal/app/ResolverActivityTest.java index 2817728fd9ea..e7a23f262753 100644 --- a/core/tests/coretests/src/com/android/internal/app/ResolverActivityTest.java +++ b/core/tests/coretests/src/com/android/internal/app/ResolverActivityTest.java @@ -39,6 +39,7 @@ import static org.hamcrest.MatcherAssert.assertThat; import static org.mockito.ArgumentMatchers.eq; import static org.mockito.Mockito.when; import static org.testng.Assert.assertFalse; +import static org.testng.Assert.fail; import android.content.Intent; import android.content.pm.ResolveInfo; @@ -52,6 +53,7 @@ import android.widget.TextView; import androidx.test.InstrumentationRegistry; import androidx.test.espresso.Espresso; +import androidx.test.espresso.NoMatchingViewException; import androidx.test.rule.ActivityTestRule; import androidx.test.runner.AndroidJUnit4; @@ -750,6 +752,34 @@ public class ResolverActivityTest { } @Test + public void testMiniResolver_noCurrentProfileTarget() { + ResolverActivity.ENABLE_TABBED_VIEW = true; + markWorkProfileUserAvailable(); + List<ResolvedComponentInfo> personalResolvedComponentInfos = + createResolvedComponentsForTest(0); + List<ResolvedComponentInfo> workResolvedComponentInfos = + createResolvedComponentsForTest(1); + setupResolverControllers(personalResolvedComponentInfos, workResolvedComponentInfos); + Intent sendIntent = createSendImageIntent(); + sendIntent.setType("TestType"); + + mActivityRule.launchActivity(sendIntent); + waitForIdle(); + + // Need to ensure mini resolver doesn't trigger here. + assertNotMiniResolver(); + } + + private void assertNotMiniResolver() { + try { + onView(withId(R.id.open_cross_profile)).check(matches(isDisplayed())); + } catch (NoMatchingViewException e) { + return; + } + fail("Mini resolver present but shouldn't be"); + } + + @Test public void testWorkTab_noAppsAvailable_workOff_noAppsAvailableEmptyStateShown() { // enable the work tab feature flag ResolverActivity.ENABLE_TABBED_VIEW = true; |