summaryrefslogtreecommitdiff
path: root/java/tests/src
diff options
context:
space:
mode:
author Joshua Trask <joshtrask@google.com> 2022-11-28 12:07:14 -0500
committer Joshua Trask <joshtrask@google.com> 2022-11-29 19:34:45 +0000
commit3bd1033da86ba26d922e19a21bb21dec4bf7188f (patch)
tree9c8fedc8ed016017ed579cbbef882ffad6243251 /java/tests/src
parent78d4f9a56a004a1031502c33b523f9b495d031a9 (diff)
Tighten visibility in the -ListAdapter classes.
As noted in ag/19933554, client code occasionally reached directly into these components to manipulate package-private members that weren't obviously intended to be part of the API. This CL narrows the visibility of those ivars (as described below), creating new methods as necessary to expose the (now-encapsulated) data for the clients that had previously been using it directly. This CL also shows that some indirect dependencies (previously accessed via these shared ivars) can be precomputed and injected, to avoid any subsequent sharing. Finally, the CL includes some other minor readability cleanups. To narrow the visibilities, almost all ivars were marked `private`. In some cases it's convenient to grant the subclass direct access to collaborating components, so those were marked `protected` in the base class; those are exclusively `final` members (and for the most part, their APIs are even "logically stateless") so they should be much easier to reason about when reading the base class source. These classes still need substantial refactoring to define their roles and responsibilities in the system, and especially to clarify their inheritance contract; this CL is just a first step to making the existing code more understandable. Test: atest IntentResolverUnitTests Bug: 202167050 Change-Id: I659197b3fe22f46813dc818e90ba78546a61bec3
Diffstat (limited to 'java/tests/src')
-rw-r--r--java/tests/src/com/android/intentresolver/ChooserListAdapterTest.kt2
-rw-r--r--java/tests/src/com/android/intentresolver/ChooserWrapperActivity.java4
-rw-r--r--java/tests/src/com/android/intentresolver/ResolverWrapperActivity.java12
-rw-r--r--java/tests/src/com/android/intentresolver/ResolverWrapperAdapter.java22
4 files changed, 34 insertions, 6 deletions
diff --git a/java/tests/src/com/android/intentresolver/ChooserListAdapterTest.kt b/java/tests/src/com/android/intentresolver/ChooserListAdapterTest.kt
index d054e7fa..6b34f8b9 100644
--- a/java/tests/src/com/android/intentresolver/ChooserListAdapterTest.kt
+++ b/java/tests/src/com/android/intentresolver/ChooserListAdapterTest.kt
@@ -56,6 +56,8 @@ class ChooserListAdapterTest {
emptyList(),
false,
resolverListController,
+ null,
+ Intent(),
mock(),
packageManager,
chooserActivityLogger,
diff --git a/java/tests/src/com/android/intentresolver/ChooserWrapperActivity.java b/java/tests/src/com/android/intentresolver/ChooserWrapperActivity.java
index fe448d63..8c842786 100644
--- a/java/tests/src/com/android/intentresolver/ChooserWrapperActivity.java
+++ b/java/tests/src/com/android/intentresolver/ChooserWrapperActivity.java
@@ -73,6 +73,8 @@ public class ChooserWrapperActivity
List<ResolveInfo> rList,
boolean filterLastUsed,
ResolverListController resolverListController,
+ UserHandle userHandle,
+ Intent targetIntent,
ChooserRequestParameters chooserRequest,
int maxTargetsPerRow) {
PackageManager packageManager =
@@ -85,6 +87,8 @@ public class ChooserWrapperActivity
rList,
filterLastUsed,
resolverListController,
+ userHandle,
+ targetIntent,
this,
packageManager,
getChooserActivityLogger(),
diff --git a/java/tests/src/com/android/intentresolver/ResolverWrapperActivity.java b/java/tests/src/com/android/intentresolver/ResolverWrapperActivity.java
index 7d4b07d8..239bffe0 100644
--- a/java/tests/src/com/android/intentresolver/ResolverWrapperActivity.java
+++ b/java/tests/src/com/android/intentresolver/ResolverWrapperActivity.java
@@ -59,8 +59,16 @@ public class ResolverWrapperActivity extends ResolverActivity {
public ResolverListAdapter createResolverListAdapter(Context context,
List<Intent> payloadIntents, Intent[] initialIntents, List<ResolveInfo> rList,
boolean filterLastUsed, UserHandle userHandle) {
- return new ResolverWrapperAdapter(context, payloadIntents, initialIntents, rList,
- filterLastUsed, createListController(userHandle), this);
+ return new ResolverWrapperAdapter(
+ context,
+ payloadIntents,
+ initialIntents,
+ rList,
+ filterLastUsed,
+ createListController(userHandle),
+ userHandle,
+ payloadIntents.get(0), // TODO: extract upstream
+ this);
}
@Override
diff --git a/java/tests/src/com/android/intentresolver/ResolverWrapperAdapter.java b/java/tests/src/com/android/intentresolver/ResolverWrapperAdapter.java
index 1504a8ab..a53b41d1 100644
--- a/java/tests/src/com/android/intentresolver/ResolverWrapperAdapter.java
+++ b/java/tests/src/com/android/intentresolver/ResolverWrapperAdapter.java
@@ -19,6 +19,7 @@ package com.android.intentresolver;
import android.content.Context;
import android.content.Intent;
import android.content.pm.ResolveInfo;
+import android.os.UserHandle;
import androidx.test.espresso.idling.CountingIdlingResource;
@@ -31,14 +32,27 @@ public class ResolverWrapperAdapter extends ResolverListAdapter {
private CountingIdlingResource mLabelIdlingResource =
new CountingIdlingResource("LoadLabelTask");
- public ResolverWrapperAdapter(Context context,
+ public ResolverWrapperAdapter(
+ Context context,
List<Intent> payloadIntents,
Intent[] initialIntents,
- List<ResolveInfo> rList, boolean filterLastUsed,
+ List<ResolveInfo> rList,
+ boolean filterLastUsed,
ResolverListController resolverListController,
+ UserHandle userHandle,
+ Intent targetIntent,
ResolverListCommunicator resolverListCommunicator) {
- super(context, payloadIntents, initialIntents, rList, filterLastUsed,
- resolverListController, resolverListCommunicator, false);
+ super(
+ context,
+ payloadIntents,
+ initialIntents,
+ rList,
+ filterLastUsed,
+ resolverListController,
+ userHandle,
+ targetIntent,
+ resolverListCommunicator,
+ false);
}
public CountingIdlingResource getLabelIdlingResource() {