diff options
author | 2023-12-12 12:32:38 -0500 | |
---|---|---|
committer | 2023-12-15 17:54:45 -0500 | |
commit | 37b363161b23f4b9d4c85713468c38613fc5fbc4 (patch) | |
tree | 7b718a682b8c1f2e3b59584733c2d1cee7eec982 /tests/activity | |
parent | 0890c097c3a2cd22d01a50af77fe1c8675b07ba1 (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')
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 |