summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--java/src/com/android/intentresolver/ChooserActivity.java6
-rw-r--r--java/src/com/android/intentresolver/ChooserListAdapter.java24
-rw-r--r--java/src/com/android/intentresolver/ResolverListAdapter.java5
-rw-r--r--java/src/com/android/intentresolver/v2/ChooserActionFactory.java17
-rw-r--r--java/src/com/android/intentresolver/v2/ChooserActivity.java13
-rw-r--r--tests/activity/src/com/android/intentresolver/ChooserWrapperActivity.java4
-rw-r--r--tests/activity/src/com/android/intentresolver/v2/ChooserWrapperActivity.java4
-rw-r--r--tests/shared/src/com/android/intentresolver/TestContentPreviewViewModel.kt5
-rw-r--r--tests/unit/src/com/android/intentresolver/ChooserListAdapterDataTest.kt11
-rw-r--r--tests/unit/src/com/android/intentresolver/ChooserListAdapterTest.kt2
-rw-r--r--tests/unit/src/com/android/intentresolver/v2/ChooserActionFactoryTest.kt20
11 files changed, 69 insertions, 42 deletions
diff --git a/java/src/com/android/intentresolver/ChooserActivity.java b/java/src/com/android/intentresolver/ChooserActivity.java
index aa02be37..50ca5d0d 100644
--- a/java/src/com/android/intentresolver/ChooserActivity.java
+++ b/java/src/com/android/intentresolver/ChooserActivity.java
@@ -1171,7 +1171,7 @@ public class ChooserActivity extends Hilt_ChooserActivity implements
createListController(userHandle),
userHandle,
getTargetIntent(),
- mChooserRequest,
+ mChooserRequest.getReferrerFillInIntent(),
mMaxTargetsPerRow,
targetDataLoader);
@@ -1230,7 +1230,7 @@ public class ChooserActivity extends Hilt_ChooserActivity implements
ResolverListController resolverListController,
UserHandle userHandle,
Intent targetIntent,
- ChooserRequestParameters chooserRequest,
+ Intent referrerFillInIntent,
int maxTargetsPerRow,
TargetDataLoader targetDataLoader) {
UserHandle initialIntentsUserSpace = isLaunchedAsCloneProfile()
@@ -1245,10 +1245,10 @@ public class ChooserActivity extends Hilt_ChooserActivity implements
createListController(userHandle),
userHandle,
targetIntent,
+ referrerFillInIntent,
this,
context.getPackageManager(),
getEventLog(),
- chooserRequest,
maxTargetsPerRow,
initialIntentsUserSpace,
targetDataLoader);
diff --git a/java/src/com/android/intentresolver/ChooserListAdapter.java b/java/src/com/android/intentresolver/ChooserListAdapter.java
index 823b5e13..3af8a3a7 100644
--- a/java/src/com/android/intentresolver/ChooserListAdapter.java
+++ b/java/src/com/android/intentresolver/ChooserListAdapter.java
@@ -30,6 +30,7 @@ import android.content.pm.PackageManager;
import android.content.pm.ResolveInfo;
import android.content.pm.ShortcutInfo;
import android.graphics.drawable.Drawable;
+import android.net.Uri;
import android.os.AsyncTask;
import android.os.Trace;
import android.os.UserHandle;
@@ -84,7 +85,8 @@ public class ChooserListAdapter extends ResolverListAdapter {
/** {@link #getBaseScore} */
public static final float SHORTCUT_TARGET_SCORE_BOOST = 90.f;
- private final ChooserRequestParameters mChooserRequest;
+ private final Intent mReferrerFillInIntent;
+
private final int mMaxRankedTargets;
private final EventLog mEventLog;
@@ -144,10 +146,10 @@ public class ChooserListAdapter extends ResolverListAdapter {
ResolverListController resolverListController,
UserHandle userHandle,
Intent targetIntent,
+ Intent referrerFillInIntent,
ResolverListCommunicator resolverListCommunicator,
PackageManager packageManager,
EventLog eventLog,
- ChooserRequestParameters chooserRequest,
int maxRankedTargets,
UserHandle initialIntentsUserSpace,
TargetDataLoader targetDataLoader) {
@@ -160,10 +162,10 @@ public class ChooserListAdapter extends ResolverListAdapter {
resolverListController,
userHandle,
targetIntent,
+ referrerFillInIntent,
resolverListCommunicator,
packageManager,
eventLog,
- chooserRequest,
maxRankedTargets,
initialIntentsUserSpace,
targetDataLoader,
@@ -181,10 +183,10 @@ public class ChooserListAdapter extends ResolverListAdapter {
ResolverListController resolverListController,
UserHandle userHandle,
Intent targetIntent,
+ Intent referrerFillInIntent,
ResolverListCommunicator resolverListCommunicator,
PackageManager packageManager,
EventLog eventLog,
- ChooserRequestParameters chooserRequest,
int maxRankedTargets,
UserHandle initialIntentsUserSpace,
TargetDataLoader targetDataLoader,
@@ -207,8 +209,8 @@ public class ChooserListAdapter extends ResolverListAdapter {
bgExecutor,
mainExecutor);
- mChooserRequest = chooserRequest;
mMaxRankedTargets = maxRankedTargets;
+ mReferrerFillInIntent = referrerFillInIntent;
mPlaceHolderTargetInfo = NotSelectableTargetInfo.newPlaceHolderTargetInfo(context);
mTargetDataLoader = targetDataLoader;
@@ -497,8 +499,14 @@ public class ChooserListAdapter extends ResolverListAdapter {
return count;
}
+ private static boolean hasSendAction(Intent intent) {
+ String action = intent.getAction();
+ return Intent.ACTION_SEND.equals(action)
+ || Intent.ACTION_SEND_MULTIPLE.equals(action);
+ }
+
public int getServiceTargetCount() {
- if (mChooserRequest.isSendActionTarget() && !ActivityManager.isLowRamDeviceStatic()) {
+ if (hasSendAction(getTargetIntent()) && !ActivityManager.isLowRamDeviceStatic()) {
return Math.min(mServiceTargets.size(), mMaxRankedTargets);
}
@@ -653,8 +661,8 @@ public class ChooserListAdapter extends ResolverListAdapter {
directShareToShortcutInfos,
directShareToAppTargets,
mContext.createContextAsUser(getUserHandle(), 0),
- mChooserRequest.getTargetIntent(),
- mChooserRequest.getReferrerFillInIntent(),
+ getTargetIntent(),
+ mReferrerFillInIntent,
mMaxRankedTargets,
mServiceTargets);
if (isUpdated) {
diff --git a/java/src/com/android/intentresolver/ResolverListAdapter.java b/java/src/com/android/intentresolver/ResolverListAdapter.java
index 8f1f9275..564d8d19 100644
--- a/java/src/com/android/intentresolver/ResolverListAdapter.java
+++ b/java/src/com/android/intentresolver/ResolverListAdapter.java
@@ -25,6 +25,7 @@ import android.content.pm.ResolveInfo;
import android.graphics.ColorMatrix;
import android.graphics.ColorMatrixColorFilter;
import android.graphics.drawable.Drawable;
+import android.net.Uri;
import android.os.AsyncTask;
import android.os.RemoteException;
import android.os.Trace;
@@ -160,6 +161,10 @@ public class ResolverListAdapter extends BaseAdapter {
mCallbackExecutor = callbackExecutor;
}
+ protected Intent getTargetIntent() {
+ return mTargetIntent;
+ }
+
public final DisplayResolveInfo getFirstDisplayResolveInfo() {
return mDisplayList.get(0);
}
diff --git a/java/src/com/android/intentresolver/v2/ChooserActionFactory.java b/java/src/com/android/intentresolver/v2/ChooserActionFactory.java
index a4a6d670..db840387 100644
--- a/java/src/com/android/intentresolver/v2/ChooserActionFactory.java
+++ b/java/src/com/android/intentresolver/v2/ChooserActionFactory.java
@@ -35,7 +35,6 @@ import android.view.View;
import androidx.annotation.Nullable;
-import com.android.intentresolver.ChooserRequestParameters;
import com.android.intentresolver.R;
import com.android.intentresolver.chooser.DisplayResolveInfo;
import com.android.intentresolver.chooser.TargetInfo;
@@ -109,7 +108,6 @@ public final class ChooserActionFactory implements ChooserContentPreviewUi.Actio
/**
* @param context
- * @param chooserRequest data about the invocation of the current Sharesheet session.
* @param imageEditor an explicit Activity to launch for editing images
* @param onUpdateSharedTextIsExcluded a delegate to be invoked when the "exclude shared text"
* setting is updated. The argument is whether the shared text is to be excluded.
@@ -121,7 +119,10 @@ public final class ChooserActionFactory implements ChooserContentPreviewUi.Actio
*/
public ChooserActionFactory(
Context context,
- ChooserRequestParameters chooserRequest,
+ Intent targetIntent,
+ String referrerPackageName,
+ List<ChooserAction> chooserActions,
+ ChooserAction modifyShareAction,
Optional<ComponentName> imageEditor,
EventLog log,
Consumer<Boolean> onUpdateSharedTextIsExcluded,
@@ -132,20 +133,20 @@ public final class ChooserActionFactory implements ChooserContentPreviewUi.Actio
context,
makeCopyButtonRunnable(
context,
- chooserRequest.getTargetIntent(),
- chooserRequest.getReferrerPackageName(),
+ targetIntent,
+ referrerPackageName,
finishCallback,
log),
makeEditButtonRunnable(
getEditSharingTarget(
context,
- chooserRequest.getTargetIntent(),
+ targetIntent,
imageEditor),
firstVisibleImageQuery,
activityStarter,
log),
- chooserRequest.getChooserActions(),
- chooserRequest.getModifyShareAction(),
+ chooserActions,
+ modifyShareAction,
onUpdateSharedTextIsExcluded,
log,
finishCallback);
diff --git a/java/src/com/android/intentresolver/v2/ChooserActivity.java b/java/src/com/android/intentresolver/v2/ChooserActivity.java
index c7a8ebab..95eedf47 100644
--- a/java/src/com/android/intentresolver/v2/ChooserActivity.java
+++ b/java/src/com/android/intentresolver/v2/ChooserActivity.java
@@ -1182,6 +1182,7 @@ public class ChooserActivity extends Hilt_ChooserActivity implements
boolean filterLastUsed,
UserHandle userHandle,
TargetDataLoader targetDataLoader) {
+ ChooserRequestParameters parameters = requireChooserRequest();
ChooserListAdapter chooserListAdapter = createChooserListAdapter(
context,
payloadIntents,
@@ -1191,7 +1192,7 @@ public class ChooserActivity extends Hilt_ChooserActivity implements
createListController(userHandle),
userHandle,
mLogic.getTargetIntent(),
- requireChooserRequest(),
+ parameters.getReferrerFillInIntent(),
mMaxTargetsPerRow,
targetDataLoader);
@@ -1250,7 +1251,7 @@ public class ChooserActivity extends Hilt_ChooserActivity implements
ResolverListController resolverListController,
UserHandle userHandle,
Intent targetIntent,
- ChooserRequestParameters chooserRequest,
+ Intent referrerFillInIntent,
int maxTargetsPerRow,
TargetDataLoader targetDataLoader) {
UserHandle initialIntentsUserSpace = isLaunchedAsCloneProfile()
@@ -1265,10 +1266,10 @@ public class ChooserActivity extends Hilt_ChooserActivity implements
createListController(userHandle),
userHandle,
targetIntent,
+ referrerFillInIntent,
this,
context.getPackageManager(),
getEventLog(),
- chooserRequest,
maxTargetsPerRow,
initialIntentsUserSpace,
targetDataLoader);
@@ -1327,9 +1328,13 @@ public class ChooserActivity extends Hilt_ChooserActivity implements
}
private ChooserActionFactory createChooserActionFactory() {
+ ChooserRequestParameters request = requireChooserRequest();
return new ChooserActionFactory(
this,
- requireChooserRequest(),
+ request.getTargetIntent(),
+ request.getReferrerPackageName(),
+ request.getChooserActions(),
+ request.getModifyShareAction(),
mImageEditor,
getEventLog(),
(isExcluded) -> mExcludeSharedText = isExcluded,
diff --git a/tests/activity/src/com/android/intentresolver/ChooserWrapperActivity.java b/tests/activity/src/com/android/intentresolver/ChooserWrapperActivity.java
index 72f1f452..27d50adf 100644
--- a/tests/activity/src/com/android/intentresolver/ChooserWrapperActivity.java
+++ b/tests/activity/src/com/android/intentresolver/ChooserWrapperActivity.java
@@ -71,7 +71,7 @@ public class ChooserWrapperActivity extends ChooserActivity implements IChooserW
ResolverListController resolverListController,
UserHandle userHandle,
Intent targetIntent,
- ChooserRequestParameters chooserRequest,
+ Intent referrrerFillInIntent,
int maxTargetsPerRow,
TargetDataLoader targetDataLoader) {
PackageManager packageManager =
@@ -86,10 +86,10 @@ public class ChooserWrapperActivity extends ChooserActivity implements IChooserW
createListController(userHandle),
userHandle,
targetIntent,
+ referrrerFillInIntent,
this,
packageManager,
getEventLog(),
- chooserRequest,
maxTargetsPerRow,
userHandle,
targetDataLoader);
diff --git a/tests/activity/src/com/android/intentresolver/v2/ChooserWrapperActivity.java b/tests/activity/src/com/android/intentresolver/v2/ChooserWrapperActivity.java
index 5572bb24..a314ee97 100644
--- a/tests/activity/src/com/android/intentresolver/v2/ChooserWrapperActivity.java
+++ b/tests/activity/src/com/android/intentresolver/v2/ChooserWrapperActivity.java
@@ -86,7 +86,7 @@ public class ChooserWrapperActivity extends ChooserActivity implements IChooserW
ResolverListController resolverListController,
UserHandle userHandle,
Intent targetIntent,
- ChooserRequestParameters chooserRequest,
+ Intent referrerFillInIntent,
int maxTargetsPerRow,
TargetDataLoader targetDataLoader) {
PackageManager packageManager =
@@ -101,10 +101,10 @@ public class ChooserWrapperActivity extends ChooserActivity implements IChooserW
createListController(userHandle),
userHandle,
targetIntent,
+ referrerFillInIntent,
this,
packageManager,
getEventLog(),
- chooserRequest,
maxTargetsPerRow,
userHandle,
targetDataLoader);
diff --git a/tests/shared/src/com/android/intentresolver/TestContentPreviewViewModel.kt b/tests/shared/src/com/android/intentresolver/TestContentPreviewViewModel.kt
index d239f612..888fc161 100644
--- a/tests/shared/src/com/android/intentresolver/TestContentPreviewViewModel.kt
+++ b/tests/shared/src/com/android/intentresolver/TestContentPreviewViewModel.kt
@@ -16,6 +16,7 @@
package com.android.intentresolver
+import android.content.Intent
import androidx.lifecycle.ViewModel
import androidx.lifecycle.ViewModelProvider
import androidx.lifecycle.viewmodel.CreationExtras
@@ -29,8 +30,8 @@ class TestContentPreviewViewModel(
private val imageLoader: ImageLoader? = null,
) : BasePreviewViewModel() {
override fun createOrReuseProvider(
- chooserRequest: ChooserRequestParameters
- ): PreviewDataProvider = viewModel.createOrReuseProvider(chooserRequest)
+ targetIntent: Intent
+ ): PreviewDataProvider = viewModel.createOrReuseProvider(targetIntent)
override fun createOrReuseImageLoader(): ImageLoader =
imageLoader ?: viewModel.createOrReuseImageLoader()
diff --git a/tests/unit/src/com/android/intentresolver/ChooserListAdapterDataTest.kt b/tests/unit/src/com/android/intentresolver/ChooserListAdapterDataTest.kt
index e5927e36..9864d0bd 100644
--- a/tests/unit/src/com/android/intentresolver/ChooserListAdapterDataTest.kt
+++ b/tests/unit/src/com/android/intentresolver/ChooserListAdapterDataTest.kt
@@ -44,12 +44,7 @@ class ChooserListAdapterDataTest {
private val targetDataLoader = mock<TargetDataLoader>()
private val backgroundExecutor = TestExecutor()
private val immediateExecutor = TestExecutor(immediate = true)
- private val chooserRequestParams =
- ChooserRequestParameters(
- Intent.createChooser(targetIntent, ""),
- "org.referrer.package",
- null
- )
+ private val referrerFillInIntent = Intent().putExtra(Intent.EXTRA_REFERRER, "org.referrer.package")
@Test
fun test_twoTargetsWithNonOverlappingInitialIntent_threeTargetsInResolverAdapter() {
@@ -91,10 +86,10 @@ class ChooserListAdapterDataTest {
resolverListController,
userHandle,
targetIntent,
+ referrerFillInIntent,
resolverListCommunicator,
packageManager,
FakeEventLog(InstanceId.fakeInstanceId(1)),
- chooserRequestParams,
/*maxRankedTargets=*/ 2,
/*initialIntentsUserSpace=*/ userHandle,
targetDataLoader,
@@ -153,10 +148,10 @@ class ChooserListAdapterDataTest {
resolverListController,
userHandle,
targetIntent,
+ referrerFillInIntent,
resolverListCommunicator,
packageManager,
FakeEventLog(InstanceId.fakeInstanceId(1)),
- chooserRequestParams,
/*maxRankedTargets=*/ 2,
/*initialIntentsUserSpace=*/ userHandle,
targetDataLoader,
diff --git a/tests/unit/src/com/android/intentresolver/ChooserListAdapterTest.kt b/tests/unit/src/com/android/intentresolver/ChooserListAdapterTest.kt
index a4078365..a12c9ec1 100644
--- a/tests/unit/src/com/android/intentresolver/ChooserListAdapterTest.kt
+++ b/tests/unit/src/com/android/intentresolver/ChooserListAdapterTest.kt
@@ -67,10 +67,10 @@ class ChooserListAdapterTest {
resolverListController,
userHandle,
Intent(),
+ Intent(),
mock(),
packageManager,
mEventLog,
- mock(),
0,
null,
mTargetDataLoader
diff --git a/tests/unit/src/com/android/intentresolver/v2/ChooserActionFactoryTest.kt b/tests/unit/src/com/android/intentresolver/v2/ChooserActionFactoryTest.kt
index a1a9bc92..b3486bb1 100644
--- a/tests/unit/src/com/android/intentresolver/v2/ChooserActionFactoryTest.kt
+++ b/tests/unit/src/com/android/intentresolver/v2/ChooserActionFactoryTest.kt
@@ -135,7 +135,10 @@ class ChooserActionFactoryTest {
val testSubject =
ChooserActionFactory(
context,
- chooserRequest,
+ chooserRequest.targetIntent,
+ chooserRequest.referrerPackageName,
+ chooserRequest.chooserActions,
+ chooserRequest.modifyShareAction,
Optional.empty(),
logger,
{},
@@ -158,7 +161,10 @@ class ChooserActionFactoryTest {
val testSubject =
ChooserActionFactory(
context,
- chooserRequest,
+ chooserRequest.targetIntent,
+ chooserRequest.referrerPackageName,
+ chooserRequest.chooserActions,
+ chooserRequest.modifyShareAction,
Optional.empty(),
logger,
{},
@@ -181,7 +187,10 @@ class ChooserActionFactoryTest {
val testSubject =
ChooserActionFactory(
context,
- chooserRequest,
+ chooserRequest.targetIntent,
+ chooserRequest.referrerPackageName,
+ chooserRequest.chooserActions,
+ chooserRequest.modifyShareAction,
Optional.empty(),
logger,
{},
@@ -220,7 +229,10 @@ class ChooserActionFactoryTest {
return ChooserActionFactory(
context,
- chooserRequest,
+ chooserRequest.targetIntent,
+ chooserRequest.referrerPackageName,
+ chooserRequest.chooserActions,
+ chooserRequest.modifyShareAction,
Optional.empty(),
logger,
{},