Commit 260a07a6 authored by Kyle Milka's avatar Kyle Milka Committed by Commit Bot

[SharinHub] Exclude 1P apps from appearing in the 3P row

When populating the bottom row filter out any activities that have
the same package name as the application.

Bug: 1129175
Change-Id: I0ad7b66a0df89022b9abe1118e8324f452595561
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2417212Reviewed-by: default avatarTanya Gupta <tgupta@chromium.org>
Commit-Queue: Kyle Milka <kmilka@chromium.org>
Cr-Commit-Position: refs/heads/master@{#812317}
parent 8468585f
...@@ -14,6 +14,7 @@ import android.view.View.OnClickListener; ...@@ -14,6 +14,7 @@ import android.view.View.OnClickListener;
import androidx.annotation.IntDef; import androidx.annotation.IntDef;
import org.chromium.base.ContextUtils;
import org.chromium.base.metrics.RecordHistogram; import org.chromium.base.metrics.RecordHistogram;
import org.chromium.base.metrics.RecordUserAction; import org.chromium.base.metrics.RecordUserAction;
import org.chromium.chrome.browser.flags.ChromeFeatureList; import org.chromium.chrome.browser.flags.ChromeFeatureList;
...@@ -167,8 +168,12 @@ public class ShareSheetPropertyModelBuilder { ...@@ -167,8 +168,12 @@ public class ShareSheetPropertyModelBuilder {
break; break;
} }
} }
String chromePackageName = ContextUtils.getApplicationContext().getPackageName();
for (ResolveInfo res : resolveInfoList) { for (ResolveInfo res : resolveInfoList) {
thirdPartyActivities.add(res); if (!res.activityInfo.packageName.equals(chromePackageName)) {
thirdPartyActivities.add(res);
}
if (thirdPartyActivities.size() == MAX_NUM_APPS) { if (thirdPartyActivities.size() == MAX_NUM_APPS) {
break; break;
} }
......
...@@ -31,6 +31,7 @@ import org.junit.runner.RunWith; ...@@ -31,6 +31,7 @@ import org.junit.runner.RunWith;
import org.mockito.Mock; import org.mockito.Mock;
import org.mockito.MockitoAnnotations; import org.mockito.MockitoAnnotations;
import org.chromium.base.ContextUtils;
import org.chromium.base.test.util.CommandLineFlags; import org.chromium.base.test.util.CommandLineFlags;
import org.chromium.chrome.browser.flags.ChromeFeatureList; import org.chromium.chrome.browser.flags.ChromeFeatureList;
import org.chromium.chrome.browser.flags.ChromeSwitches; import org.chromium.chrome.browser.flags.ChromeSwitches;
...@@ -73,6 +74,8 @@ public final class ShareSheetPropertyModelBuilderTest { ...@@ -73,6 +74,8 @@ public final class ShareSheetPropertyModelBuilderTest {
@Mock @Mock
private ResolveInfo mTextResolveInfo2; private ResolveInfo mTextResolveInfo2;
@Mock @Mock
private ResolveInfo mTextResolveInfo3;
@Mock
private ResolveInfo mImageResolveInfo1; private ResolveInfo mImageResolveInfo1;
@Mock @Mock
private ResolveInfo mImageResolveInfo2; private ResolveInfo mImageResolveInfo2;
...@@ -274,6 +277,33 @@ public final class ShareSheetPropertyModelBuilderTest { ...@@ -274,6 +277,33 @@ public final class ShareSheetPropertyModelBuilderTest {
propertyModels, ImmutableList.of(sTextModelLabel1, sTextModelLabel2)); propertyModels, ImmutableList.of(sTextModelLabel1, sTextModelLabel2));
} }
@Test
@MediumTest
@Features.DisableFeatures({ChromeFeatureList.CHROME_SHARING_HUB_V15})
public void
selectThirdPartyApps_sharingHub15Disabled_returnsTextSharingModelsExcludeChromePackage() {
String chromePackage = ContextUtils.getApplicationContext().getPackageName();
try {
setUpResolveInfo(mTextResolveInfo3, chromePackage, sTextModelLabel2);
} catch (PackageManager.NameNotFoundException e) {
return;
}
doReturn(ImmutableList.of(mTextResolveInfo1, mTextResolveInfo2, mTextResolveInfo3))
.when(mPackageManager)
.queryIntentActivities(
argThat(intent -> intent.getType().equals("text/plain")), anyInt());
ShareParams shareParams = new ShareParams.Builder(null, "", "").build();
List<PropertyModel> propertyModels =
mPropertyModelBuilder.selectThirdPartyApps(null, new HashSet<>(), shareParams,
/*saveLastUsed=*/false, /*WindowAndroid=*/null, /*shareStartTime=*/0);
assertEquals("Incorrect number of property models.", 2, propertyModels.size());
assertModelsAreInTheRightOrder(
propertyModels, ImmutableList.of(sTextModelLabel1, sTextModelLabel2));
}
@Test @Test
@MediumTest @MediumTest
@Features.EnableFeatures({ChromeFeatureList.CHROME_SHARING_HUB_V15}) @Features.EnableFeatures({ChromeFeatureList.CHROME_SHARING_HUB_V15})
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment