summaryrefslogtreecommitdiff
path: root/java/src
diff options
context:
space:
mode:
author Joshua Trask <joshtrask@google.com> 2023-02-23 23:37:09 +0000
committer Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com> 2023-02-23 23:37:09 +0000
commitd058601c59f815fc31f60eb5849f7c1ba2025992 (patch)
tree4bf85410f37e75f69e233ab1d8c138025275ee2f /java/src
parent83f8d38ead56f00a610a7d719c67f2b3d958858d (diff)
parentf3897e188b00ec08d1e38ef7e5d8dd1f5fdd2106 (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')
-rw-r--r--java/src/com/android/intentresolver/ChooserActivity.java15
-rw-r--r--java/src/com/android/intentresolver/ResolverActivity.java19
-rw-r--r--java/src/com/android/intentresolver/ResolverListAdapter.java12
-rw-r--r--java/src/com/android/intentresolver/ResolverListController.java23
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) {