diff options
| author | 2023-02-23 23:37:09 +0000 | |
|---|---|---|
| committer | 2023-02-23 23:37:09 +0000 | |
| commit | d058601c59f815fc31f60eb5849f7c1ba2025992 (patch) | |
| tree | 4bf85410f37e75f69e233ab1d8c138025275ee2f /java/src | |
| parent | 83f8d38ead56f00a610a7d719c67f2b3d958858d (diff) | |
| parent | f3897e188b00ec08d1e38ef7e5d8dd1f5fdd2106 (diff) | |
Merge "Remove UserHandle ivar from ResolverListController." into tm-qpr-dev am: f3897e188b
Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/modules/IntentResolver/+/21541199
Change-Id: Iab01ac013499b00cf383a03998aa90c1df01226f
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
Diffstat (limited to 'java/src')
4 files changed, 31 insertions, 38 deletions
diff --git a/java/src/com/android/intentresolver/ChooserActivity.java b/java/src/com/android/intentresolver/ChooserActivity.java index 72336e84..da3694c4 100644 --- a/java/src/com/android/intentresolver/ChooserActivity.java +++ b/java/src/com/android/intentresolver/ChooserActivity.java @@ -1165,14 +1165,19 @@ public class ChooserActivity extends ResolverActivity implements } public class ChooserListController extends ResolverListController { - public ChooserListController(Context context, + public ChooserListController( + Context context, PackageManager pm, Intent targetIntent, String referrerPackageName, int launchedFromUid, - UserHandle userId, AbstractResolverComparator resolverComparator) { - super(context, pm, targetIntent, referrerPackageName, launchedFromUid, userId, + super( + context, + pm, + targetIntent, + referrerPackageName, + launchedFromUid, resolverComparator); } @@ -1308,8 +1313,9 @@ public class ChooserActivity extends ResolverActivity implements maxTargetsPerRow); } + @Override @VisibleForTesting - protected ResolverListController createListController(UserHandle userHandle) { + protected ChooserListController createListController(UserHandle userHandle) { AppPredictor appPredictor = getAppPredictor(userHandle); AbstractResolverComparator resolverComparator; if (appPredictor != null) { @@ -1327,7 +1333,6 @@ public class ChooserActivity extends ResolverActivity implements getTargetIntent(), getReferrerPackageName(), getAnnotatedUserHandles().userIdOfCallingApp, - userHandle, resolverComparator); } diff --git a/java/src/com/android/intentresolver/ResolverActivity.java b/java/src/com/android/intentresolver/ResolverActivity.java index faccbc36..08f42404 100644 --- a/java/src/com/android/intentresolver/ResolverActivity.java +++ b/java/src/com/android/intentresolver/ResolverActivity.java @@ -849,15 +849,25 @@ public class ResolverActivity extends FragmentActivity implements return !target.isSuspended(); } + // TODO: this method takes an unused `UserHandle` because the override in `ChooserActivity` uses + // that data to set up other components as dependencies of the controller. In reality, these + // methods don't require polymorphism, because they're only invoked from within their respective + // concrete class; `ResolverActivity` will never call this method expecting to get a + // `ChooserListController` (subclass) result, because `ResolverActivity` only invokes this + // method as part of handling `createMultiProfilePagerAdapter()`, which is itself overridden in + // `ChooserActivity`. A future refactoring could better express the coupling between the adapter + // and controller types; in the meantime, structuring as an override (with matching signatures) + // shows that these methods are *structurally* related, and helps to prevent any regressions in + // the future if resolver *were* to make any (non-overridden) calls to a version that used a + // different signature (and thus didn't return the subclass type). @VisibleForTesting - protected ResolverListController createListController(UserHandle userHandle) { + protected ResolverListController createListController(UserHandle unused) { return new ResolverListController( this, mPm, getTargetIntent(), getReferrerPackageName(), - getAnnotatedUserHandles().userIdOfCallingApp, - userHandle); + getAnnotatedUserHandles().userIdOfCallingApp); } /** @@ -1719,8 +1729,7 @@ public class ResolverActivity extends FragmentActivity implements findViewById(com.android.internal.R.id.button_open).setOnClickListener(v -> { Intent intent = otherProfileResolveInfo.getResolvedIntent(); - safelyStartActivityAsUser(otherProfileResolveInfo, - inactiveAdapter.mResolverListController.getUserHandle()); + safelyStartActivityAsUser(otherProfileResolveInfo, inactiveAdapter.getUserHandle()); finish(); }); } diff --git a/java/src/com/android/intentresolver/ResolverListAdapter.java b/java/src/com/android/intentresolver/ResolverListAdapter.java index 7a258a4c..c8a9d5dc 100644 --- a/java/src/com/android/intentresolver/ResolverListAdapter.java +++ b/java/src/com/android/intentresolver/ResolverListAdapter.java @@ -289,11 +289,7 @@ public class ResolverListAdapter extends BaseAdapter { mBaseResolveList); return currentResolveList; } else { - return mResolverListController.getResolversForIntent( - /* shouldGetResolvedFilter= */ true, - mResolverListCommunicator.shouldGetActivityMetadata(), - mResolverListCommunicator.shouldGetOnlyDefaultActivities(), - mIntents); + return getResolversForUser(mUserHandle); } } @@ -804,10 +800,12 @@ public class ResolverListAdapter extends BaseAdapter { } protected List<ResolvedComponentInfo> getResolversForUser(UserHandle userHandle) { - return mResolverListController.getResolversForIntentAsUser(true, + return mResolverListController.getResolversForIntentAsUser( + /* shouldGetResolvedFilter= */ true, mResolverListCommunicator.shouldGetActivityMetadata(), mResolverListCommunicator.shouldGetOnlyDefaultActivities(), - mIntents, userHandle); + mIntents, + userHandle); } protected List<Intent> getIntents() { diff --git a/java/src/com/android/intentresolver/ResolverListController.java b/java/src/com/android/intentresolver/ResolverListController.java index bfffe0d8..6eb027ea 100644 --- a/java/src/com/android/intentresolver/ResolverListController.java +++ b/java/src/com/android/intentresolver/ResolverListController.java @@ -58,7 +58,6 @@ public class ResolverListController { private static final String TAG = "ResolverListController"; private static final boolean DEBUG = false; - private final UserHandle mUserHandle; private AbstractResolverComparator mResolverComparator; private boolean isComputed = false; @@ -68,9 +67,8 @@ public class ResolverListController { PackageManager pm, Intent targetIntent, String referrerPackage, - int launchedFromUid, - UserHandle userHandle) { - this(context, pm, targetIntent, referrerPackage, launchedFromUid, userHandle, + int launchedFromUid) { + this(context, pm, targetIntent, referrerPackage, launchedFromUid, new ResolverRankerServiceResolverComparator( context, targetIntent, referrerPackage, null, null)); } @@ -81,14 +79,12 @@ public class ResolverListController { Intent targetIntent, String referrerPackage, int launchedFromUid, - UserHandle userHandle, AbstractResolverComparator resolverComparator) { mContext = context; mpm = pm; mLaunchedFromUid = launchedFromUid; mTargetIntent = targetIntent; mReferrerPackage = referrerPackage; - mUserHandle = userHandle; mResolverComparator = resolverComparator; } @@ -108,16 +104,6 @@ public class ResolverListController { filter, match, intent.getComponent()); } - @VisibleForTesting - public List<ResolverActivity.ResolvedComponentInfo> getResolversForIntent( - boolean shouldGetResolvedFilter, - boolean shouldGetActivityMetadata, - boolean shouldGetOnlyDefaultActivities, - List<Intent> intents) { - return getResolversForIntentAsUser(shouldGetResolvedFilter, shouldGetActivityMetadata, - shouldGetOnlyDefaultActivities, intents, mUserHandle); - } - public List<ResolverActivity.ResolvedComponentInfo> getResolversForIntentAsUser( boolean shouldGetResolvedFilter, boolean shouldGetActivityMetadata, @@ -160,11 +146,6 @@ public class ResolverListController { } @VisibleForTesting - public UserHandle getUserHandle() { - return mUserHandle; - } - - @VisibleForTesting public void addResolveListDedupe(List<ResolverActivity.ResolvedComponentInfo> into, Intent intent, List<ResolveInfo> from) { |