summaryrefslogtreecommitdiff
path: root/tests/activity
diff options
context:
space:
mode:
author Mark Renouf <mrenouf@google.com> 2023-12-12 12:32:38 -0500
committer mrenouf <mrenouf@google.com> 2023-12-15 17:54:45 -0500
commit37b363161b23f4b9d4c85713468c38613fc5fbc4 (patch)
tree7b718a682b8c1f2e3b59584733c2d1cee7eec982 /tests/activity
parent0890c097c3a2cd22d01a50af77fe1c8675b07ba1 (diff)
Separates the Chooser and Resolver activities
This change removes the class inheritence relationship between these two activities. They bear only historic similarities and have remained related and grown together unnaturually over the years. This only separates the dependency at the class level while much of the implementation relies on classes which also form a hierarchy. Because of this, most of the common code is left duplicated in both locations pending other cleanup work. Other notes: * Variables which depended on class have now been logically inlined, simplifying or removing the code in each location * All code related to 'profile switch button' removed (obsolete UI) Bug: 309960444 Test: atest com.android.intentresolver.v2 Change-Id: I7c754388387ea7f23d534d5c487416e0edaaf968
Diffstat (limited to 'tests/activity')
-rw-r--r--tests/activity/src/com/android/intentresolver/v2/ChooserWrapperActivity.java15
-rw-r--r--tests/activity/src/com/android/intentresolver/v2/ResolverActivityTest.java12
-rw-r--r--tests/activity/src/com/android/intentresolver/v2/ResolverWrapperActivity.java13
-rw-r--r--tests/activity/src/com/android/intentresolver/v2/TestChooserActivityLogic.kt10
-rw-r--r--tests/activity/src/com/android/intentresolver/v2/TestResolverActivityLogic.kt4
5 files changed, 28 insertions, 26 deletions
diff --git a/tests/activity/src/com/android/intentresolver/v2/ChooserWrapperActivity.java b/tests/activity/src/com/android/intentresolver/v2/ChooserWrapperActivity.java
index 700be615..8da045dc 100644
--- a/tests/activity/src/com/android/intentresolver/v2/ChooserWrapperActivity.java
+++ b/tests/activity/src/com/android/intentresolver/v2/ChooserWrapperActivity.java
@@ -40,6 +40,7 @@ import com.android.intentresolver.TestContentPreviewViewModel;
import com.android.intentresolver.chooser.DisplayResolveInfo;
import com.android.intentresolver.chooser.TargetInfo;
import com.android.intentresolver.emptystate.CrossProfileIntentsChecker;
+import com.android.intentresolver.grid.ChooserGridAdapter;
import com.android.intentresolver.icons.TargetDataLoader;
import com.android.intentresolver.shortcuts.ShortcutLoader;
import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
@@ -56,15 +57,13 @@ public class ChooserWrapperActivity extends ChooserActivity implements IChooserW
private UsageStatsManager mUsm;
@Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setLogic(new TestChooserActivityLogic(
+ protected final ActivityLogic createActivityLogic() {
+ return new TestChooserActivityLogic(
"ChooserWrapper",
- () -> this,
+ /* activity = */ this,
this::onWorkProfileStatusUpdated,
- () -> mTargetDataLoader,
- this::onPreinitialization,
- sOverrides));
+ mTargetDataLoader,
+ sOverrides);
}
// ResolverActivity (the base class of ChooserActivity) inspects the launched-from UID at
@@ -233,7 +232,7 @@ public class ChooserWrapperActivity extends ChooserActivity implements IChooserW
@Override
public UserHandle getCurrentUserHandle() {
- return mMultiProfilePagerAdapter.getCurrentUserHandle();
+ return mChooserMultiProfilePagerAdapter.getCurrentUserHandle();
}
@Override
diff --git a/tests/activity/src/com/android/intentresolver/v2/ResolverActivityTest.java b/tests/activity/src/com/android/intentresolver/v2/ResolverActivityTest.java
index f0911833..993f1760 100644
--- a/tests/activity/src/com/android/intentresolver/v2/ResolverActivityTest.java
+++ b/tests/activity/src/com/android/intentresolver/v2/ResolverActivityTest.java
@@ -25,8 +25,10 @@ import static androidx.test.espresso.matcher.ViewMatchers.isDisplayed;
import static androidx.test.espresso.matcher.ViewMatchers.isEnabled;
import static androidx.test.espresso.matcher.ViewMatchers.withId;
import static androidx.test.espresso.matcher.ViewMatchers.withText;
+
import static com.android.intentresolver.MatcherUtils.first;
import static com.android.intentresolver.v2.ResolverWrapperActivity.sOverrides;
+
import static org.hamcrest.CoreMatchers.allOf;
import static org.hamcrest.CoreMatchers.is;
import static org.hamcrest.CoreMatchers.not;
@@ -58,8 +60,12 @@ import com.android.intentresolver.R;
import com.android.intentresolver.ResolvedComponentInfo;
import com.android.intentresolver.ResolverDataProvider;
import com.android.intentresolver.widget.ResolverDrawerLayout;
+
import com.google.android.collect.Lists;
+import dagger.hilt.android.testing.HiltAndroidRule;
+import dagger.hilt.android.testing.HiltAndroidTest;
+
import org.junit.Before;
import org.junit.Ignore;
import org.junit.Rule;
@@ -74,6 +80,7 @@ import java.util.List;
* Resolver activity instrumentation tests
*/
@RunWith(AndroidJUnit4.class)
+@HiltAndroidTest
public class ResolverActivityTest {
private static final UserHandle PERSONAL_USER_HANDLE = androidx.test.platform.app
@@ -88,7 +95,10 @@ public class ResolverActivityTest {
return clientIntent;
}
- @Rule
+ @Rule(order = 0)
+ public HiltAndroidRule mHiltAndroidRule = new HiltAndroidRule(this);
+
+ @Rule(order = 1)
public ActivityTestRule<ResolverWrapperActivity> mActivityRule =
new ActivityTestRule<>(ResolverWrapperActivity.class, false, false);
diff --git a/tests/activity/src/com/android/intentresolver/v2/ResolverWrapperActivity.java b/tests/activity/src/com/android/intentresolver/v2/ResolverWrapperActivity.java
index a09ee894..fcd6205c 100644
--- a/tests/activity/src/com/android/intentresolver/v2/ResolverWrapperActivity.java
+++ b/tests/activity/src/com/android/intentresolver/v2/ResolverWrapperActivity.java
@@ -60,22 +60,17 @@ public class ResolverWrapperActivity extends ResolverActivity {
private final CountingIdlingResource mLabelIdlingResource =
new CountingIdlingResource("LoadLabelTask");
- public ResolverWrapperActivity() {
- super(/* isIntentPicker= */ true);
- }
-
@Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setLogic(new TestResolverActivityLogic(
+ protected final ActivityLogic createActivityLogic() {
+ return new TestResolverActivityLogic(
"ResolverWrapper",
- () -> this,
+ this,
() -> {
onWorkProfileStatusUpdated();
return Unit.INSTANCE;
},
sOverrides
- ));
+ );
}
public CountingIdlingResource getLabelIdlingResource() {
diff --git a/tests/activity/src/com/android/intentresolver/v2/TestChooserActivityLogic.kt b/tests/activity/src/com/android/intentresolver/v2/TestChooserActivityLogic.kt
index 198b9236..b6354c7a 100644
--- a/tests/activity/src/com/android/intentresolver/v2/TestChooserActivityLogic.kt
+++ b/tests/activity/src/com/android/intentresolver/v2/TestChooserActivityLogic.kt
@@ -8,18 +8,16 @@ import com.android.intentresolver.icons.TargetDataLoader
/** Activity logic for use when testing [ChooserActivity]. */
class TestChooserActivityLogic(
tag: String,
- activityProvider: () -> ComponentActivity,
+ activity: ComponentActivity,
onWorkProfileStatusUpdated: () -> Unit,
- targetDataLoaderProvider: () -> TargetDataLoader,
- onPreinitialization: () -> Unit,
+ targetDataLoader: TargetDataLoader,
private val overrideData: ChooserActivityOverrideData,
) :
ChooserActivityLogic(
tag,
- activityProvider,
+ activity,
onWorkProfileStatusUpdated,
- targetDataLoaderProvider,
- onPreinitialization,
+ targetDataLoader,
) {
override val annotatedUserHandles: AnnotatedUserHandles? by lazy {
diff --git a/tests/activity/src/com/android/intentresolver/v2/TestResolverActivityLogic.kt b/tests/activity/src/com/android/intentresolver/v2/TestResolverActivityLogic.kt
index 7581043e..6826f23d 100644
--- a/tests/activity/src/com/android/intentresolver/v2/TestResolverActivityLogic.kt
+++ b/tests/activity/src/com/android/intentresolver/v2/TestResolverActivityLogic.kt
@@ -7,10 +7,10 @@ import com.android.intentresolver.WorkProfileAvailabilityManager
/** Activity logic for use when testing [ResolverActivity]. */
class TestResolverActivityLogic(
tag: String,
- activityProvider: () -> ComponentActivity,
+ activity: ComponentActivity,
onWorkProfileStatusUpdated: () -> Unit,
private val overrideData: ResolverWrapperActivity.OverrideData,
-) : ResolverActivityLogic(tag, activityProvider, onWorkProfileStatusUpdated) {
+) : ResolverActivityLogic(tag, activity, onWorkProfileStatusUpdated) {
override val annotatedUserHandles: AnnotatedUserHandles? by lazy {
overrideData.annotatedUserHandles