diff options
author | 2023-11-30 16:39:15 -0500 | |
---|---|---|
committer | 2023-11-30 18:12:37 -0500 | |
commit | acbd4647f757cf4d651a15cb72df2acb5ea59a68 (patch) | |
tree | f7e19afc7eb51c246a26b6dc2e7d4941d6d8cbaa | |
parent | 441be5d729aee09aee7b6f6d03f0761b7c1460bd (diff) |
Narrow dependencies to actual used data (2/n)
This replaces ChooserRequestParameters with a handful of values used
in each remaining reference outside of v2-forked code.
Bug: 300157408
Test: atest com.android.intentresolver
Change-Id: I4dd1f17ec171d92b6134a9b803344d3d2485a2b6
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, {}, |