summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--java/src/com/android/intentresolver/v2/ActivityLogic.kt3
-rw-r--r--java/src/com/android/intentresolver/v2/ChooserActivity.java48
-rw-r--r--java/src/com/android/intentresolver/v2/ChooserActivityLogic.kt5
-rw-r--r--java/src/com/android/intentresolver/v2/ResolverActivity.java47
-rw-r--r--java/src/com/android/intentresolver/v2/ResolverActivityLogic.kt14
-rw-r--r--tests/activity/src/com/android/intentresolver/v2/ChooserWrapperActivity.java7
-rw-r--r--tests/activity/src/com/android/intentresolver/v2/ResolverWrapperActivity.java5
-rw-r--r--tests/activity/src/com/android/intentresolver/v2/TestChooserActivityLogic.kt3
8 files changed, 51 insertions, 81 deletions
diff --git a/java/src/com/android/intentresolver/v2/ActivityLogic.kt b/java/src/com/android/intentresolver/v2/ActivityLogic.kt
index 495c39e6..7062da33 100644
--- a/java/src/com/android/intentresolver/v2/ActivityLogic.kt
+++ b/java/src/com/android/intentresolver/v2/ActivityLogic.kt
@@ -8,7 +8,6 @@ import androidx.activity.ComponentActivity
import androidx.core.content.getSystemService
import com.android.intentresolver.AnnotatedUserHandles
import com.android.intentresolver.WorkProfileAvailabilityManager
-import com.android.intentresolver.icons.TargetDataLoader
/**
* Logic for IntentResolver Activities. Anything that is not the same across activities (including
@@ -27,8 +26,6 @@ interface ActivityLogic : CommonActivityLogic {
val defaultTitleResId: Int
/** Intents received to be processed. */
val initialIntents: List<Intent>?
- /** Fetches display info for processed candidates. */
- val targetDataLoader: TargetDataLoader
/** The intents for potential actual targets. [targetIntent] must be first. */
val payloadIntents: List<Intent>
}
diff --git a/java/src/com/android/intentresolver/v2/ChooserActivity.java b/java/src/com/android/intentresolver/v2/ChooserActivity.java
index fe55a936..e093058a 100644
--- a/java/src/com/android/intentresolver/v2/ChooserActivity.java
+++ b/java/src/com/android/intentresolver/v2/ChooserActivity.java
@@ -317,8 +317,7 @@ public class ChooserActivity extends Hilt_ChooserActivity implements
return new ChooserActivityLogic(
TAG,
/* activity = */ this,
- this::onWorkProfileStatusUpdated,
- mTargetDataLoader);
+ this::onWorkProfileStatusUpdated);
}
@Override
@@ -365,7 +364,6 @@ public class ChooserActivity extends Hilt_ChooserActivity implements
Intent intent = mLogic.getTargetIntent();
List<Intent> initialIntents = mLogic.getInitialIntents();
- TargetDataLoader targetDataLoader = mLogic.getTargetDataLoader();
// Calling UID did not have valid permissions
if (mLogic.getAnnotatedUserHandles() == null) {
@@ -376,10 +374,9 @@ public class ChooserActivity extends Hilt_ChooserActivity implements
mChooserMultiProfilePagerAdapter = createMultiProfilePagerAdapter(
requireNonNullElse(initialIntents, emptyList()).toArray(new Intent[0]),
/* resolutionList = */ null,
- false,
- targetDataLoader
+ false
);
- if (!configureContentView(targetDataLoader)) {
+ if (!configureContentView(mTargetDataLoader)) {
mPersonalPackageMonitor = createPackageMonitor(
mChooserMultiProfilePagerAdapter.getPersonalListAdapter());
mPersonalPackageMonitor.register(
@@ -659,7 +656,7 @@ public class ChooserActivity extends Hilt_ChooserActivity implements
private CharSequence getOrLoadDisplayLabel(TargetInfo info) {
if (info.isDisplayResolveInfo()) {
- mLogic.getTargetDataLoader().getOrLoadLabel((DisplayResolveInfo) info);
+ mTargetDataLoader.getOrLoadLabel((DisplayResolveInfo) info);
}
CharSequence displayLabel = info.getDisplayLabel();
return displayLabel == null ? "" : displayLabel;
@@ -1225,14 +1222,13 @@ public class ChooserActivity extends Hilt_ChooserActivity implements
protected ChooserMultiProfilePagerAdapter createMultiProfilePagerAdapter(
Intent[] initialIntents,
List<ResolveInfo> rList,
- boolean filterLastUsed,
- TargetDataLoader targetDataLoader) {
+ boolean filterLastUsed) {
if (hasWorkProfile()) {
mChooserMultiProfilePagerAdapter = createChooserMultiProfilePagerAdapterForTwoProfiles(
- initialIntents, rList, filterLastUsed, targetDataLoader);
+ initialIntents, rList, filterLastUsed);
} else {
mChooserMultiProfilePagerAdapter = createChooserMultiProfilePagerAdapterForOneProfile(
- initialIntents, rList, filterLastUsed, targetDataLoader);
+ initialIntents, rList, filterLastUsed);
}
return mChooserMultiProfilePagerAdapter;
}
@@ -1277,16 +1273,15 @@ public class ChooserActivity extends Hilt_ChooserActivity implements
private ChooserMultiProfilePagerAdapter createChooserMultiProfilePagerAdapterForOneProfile(
Intent[] initialIntents,
List<ResolveInfo> rList,
- boolean filterLastUsed,
- TargetDataLoader targetDataLoader) {
+ boolean filterLastUsed) {
ChooserGridAdapter adapter = createChooserGridAdapter(
/* context */ this,
mLogic.getPayloadIntents(),
initialIntents,
rList,
filterLastUsed,
- /* userHandle */ requireAnnotatedUserHandles().personalProfileUserHandle,
- targetDataLoader);
+ /* userHandle */ requireAnnotatedUserHandles().personalProfileUserHandle
+ );
return new ChooserMultiProfilePagerAdapter(
/* context */ this,
mDevicePolicyResources.getPersonalTabLabel(),
@@ -1304,8 +1299,7 @@ public class ChooserActivity extends Hilt_ChooserActivity implements
private ChooserMultiProfilePagerAdapter createChooserMultiProfilePagerAdapterForTwoProfiles(
Intent[] initialIntents,
List<ResolveInfo> rList,
- boolean filterLastUsed,
- TargetDataLoader targetDataLoader) {
+ boolean filterLastUsed) {
int selectedProfile = findSelectedProfile();
ChooserGridAdapter personalAdapter = createChooserGridAdapter(
/* context */ this,
@@ -1313,16 +1307,16 @@ public class ChooserActivity extends Hilt_ChooserActivity implements
selectedProfile == PROFILE_PERSONAL ? initialIntents : null,
rList,
filterLastUsed,
- /* userHandle */ requireAnnotatedUserHandles().personalProfileUserHandle,
- targetDataLoader);
+ /* userHandle */ requireAnnotatedUserHandles().personalProfileUserHandle
+ );
ChooserGridAdapter workAdapter = createChooserGridAdapter(
/* context */ this,
mLogic.getPayloadIntents(),
selectedProfile == PROFILE_WORK ? initialIntents : null,
rList,
filterLastUsed,
- /* userHandle */ requireAnnotatedUserHandles().workProfileUserHandle,
- targetDataLoader);
+ /* userHandle */ requireAnnotatedUserHandles().workProfileUserHandle
+ );
return new ChooserMultiProfilePagerAdapter(
/* context */ this,
mDevicePolicyResources.getPersonalTabLabel(),
@@ -1960,8 +1954,7 @@ public class ChooserActivity extends Hilt_ChooserActivity implements
Intent[] initialIntents,
List<ResolveInfo> rList,
boolean filterLastUsed,
- UserHandle userHandle,
- TargetDataLoader targetDataLoader) {
+ UserHandle userHandle) {
ChooserRequestParameters parameters = requireChooserRequest();
ChooserListAdapter chooserListAdapter = createChooserListAdapter(
context,
@@ -1973,8 +1966,8 @@ public class ChooserActivity extends Hilt_ChooserActivity implements
userHandle,
mLogic.getTargetIntent(),
parameters.getReferrerFillInIntent(),
- mMaxTargetsPerRow,
- targetDataLoader);
+ mMaxTargetsPerRow
+ );
return new ChooserGridAdapter(
context,
@@ -2025,8 +2018,7 @@ public class ChooserActivity extends Hilt_ChooserActivity implements
UserHandle userHandle,
Intent targetIntent,
Intent referrerFillInIntent,
- int maxTargetsPerRow,
- TargetDataLoader targetDataLoader) {
+ int maxTargetsPerRow) {
UserHandle initialIntentsUserSpace = isLaunchedAsCloneProfile()
&& userHandle.equals(requireAnnotatedUserHandles().personalProfileUserHandle)
? requireAnnotatedUserHandles().cloneProfileUserHandle : userHandle;
@@ -2045,7 +2037,7 @@ public class ChooserActivity extends Hilt_ChooserActivity implements
getEventLog(),
maxTargetsPerRow,
initialIntentsUserSpace,
- targetDataLoader,
+ mTargetDataLoader,
() -> {
ProfileRecord record = getProfileRecord(userHandle);
if (record != null && record.shortcutLoader != null) {
diff --git a/java/src/com/android/intentresolver/v2/ChooserActivityLogic.kt b/java/src/com/android/intentresolver/v2/ChooserActivityLogic.kt
index 2cc75fab..a8150f52 100644
--- a/java/src/com/android/intentresolver/v2/ChooserActivityLogic.kt
+++ b/java/src/com/android/intentresolver/v2/ChooserActivityLogic.kt
@@ -6,8 +6,6 @@ import android.util.Log
import androidx.activity.ComponentActivity
import androidx.annotation.OpenForTesting
import com.android.intentresolver.ChooserRequestParameters
-import com.android.intentresolver.icons.TargetDataLoader
-import com.android.intentresolver.v2.util.mutableLazy
private const val TAG = "ChooserActivityLogic"
@@ -22,8 +20,7 @@ private const val TAG = "ChooserActivityLogic"
open class ChooserActivityLogic(
tag: String,
activity: ComponentActivity,
- onWorkProfileStatusUpdated: () -> Unit,
- override val targetDataLoader: TargetDataLoader,
+ onWorkProfileStatusUpdated: () -> Unit
) :
ActivityLogic,
CommonActivityLogic by CommonActivityLogicImpl(
diff --git a/java/src/com/android/intentresolver/v2/ResolverActivity.java b/java/src/com/android/intentresolver/v2/ResolverActivity.java
index c3654f3f..9672e9d6 100644
--- a/java/src/com/android/intentresolver/v2/ResolverActivity.java
+++ b/java/src/com/android/intentresolver/v2/ResolverActivity.java
@@ -96,6 +96,7 @@ import com.android.intentresolver.emptystate.CompositeEmptyStateProvider;
import com.android.intentresolver.emptystate.CrossProfileIntentsChecker;
import com.android.intentresolver.emptystate.EmptyState;
import com.android.intentresolver.emptystate.EmptyStateProvider;
+import com.android.intentresolver.icons.DefaultTargetDataLoader;
import com.android.intentresolver.icons.TargetDataLoader;
import com.android.intentresolver.model.ResolverRankerServiceResolverComparator;
import com.android.intentresolver.v2.MultiProfilePagerAdapter.OnSwitchOnWorkSelectedListener;
@@ -139,6 +140,7 @@ public class ResolverActivity extends Hilt_ResolverActivity implements
@Inject public IntentForwarding mIntentForwarding;
protected ActivityLogic mLogic;
+ protected TargetDataLoader mTargetDataLoader;
private Button mAlwaysButton;
private Button mOnceButton;
@@ -233,6 +235,13 @@ public class ResolverActivity extends Hilt_ResolverActivity implements
super.onCreate(savedInstanceState);
setTheme(R.style.Theme_DeviceDefault_Resolver);
mLogic = createActivityLogic();
+ mTargetDataLoader = new DefaultTargetDataLoader(
+ this,
+ getLifecycle(),
+ getIntent().getBooleanExtra(
+ ResolverActivity.EXTRA_IS_AUDIO_CAPTURE_DEVICE,
+ /* defaultValue = */ false)
+ );
}
@Override
@@ -245,7 +254,6 @@ public class ResolverActivity extends Hilt_ResolverActivity implements
private void init() {
Intent intent = mLogic.getTargetIntent();
List<Intent> initialIntents = mLogic.getInitialIntents();
- TargetDataLoader targetDataLoader = mLogic.getTargetDataLoader();
// Calling UID did not have valid permissions
if (mLogic.getAnnotatedUserHandles() == null) {
@@ -267,10 +275,9 @@ public class ResolverActivity extends Hilt_ResolverActivity implements
mMultiProfilePagerAdapter = createMultiProfilePagerAdapter(
requireNonNullElse(initialIntents, emptyList()).toArray(new Intent[0]),
/* resolutionList = */ null,
- filterLastUsed,
- targetDataLoader
+ filterLastUsed
);
- if (configureContentView(targetDataLoader)) {
+ if (configureContentView(mTargetDataLoader)) {
return;
}
@@ -342,16 +349,15 @@ public class ResolverActivity extends Hilt_ResolverActivity implements
protected ResolverMultiProfilePagerAdapter createMultiProfilePagerAdapter(
Intent[] initialIntents,
List<ResolveInfo> resolutionList,
- boolean filterLastUsed,
- TargetDataLoader targetDataLoader) {
+ boolean filterLastUsed) {
ResolverMultiProfilePagerAdapter resolverMultiProfilePagerAdapter = null;
if (hasWorkProfile()) {
resolverMultiProfilePagerAdapter =
createResolverMultiProfilePagerAdapterForTwoProfiles(
- initialIntents, resolutionList, filterLastUsed, targetDataLoader);
+ initialIntents, resolutionList, filterLastUsed);
} else {
resolverMultiProfilePagerAdapter = createResolverMultiProfilePagerAdapterForOneProfile(
- initialIntents, resolutionList, filterLastUsed, targetDataLoader);
+ initialIntents, resolutionList, filterLastUsed);
}
return resolverMultiProfilePagerAdapter;
}
@@ -886,8 +892,7 @@ public class ResolverActivity extends Hilt_ResolverActivity implements
Intent[] initialIntents,
List<ResolveInfo> resolutionList,
boolean filterLastUsed,
- UserHandle userHandle,
- TargetDataLoader targetDataLoader) {
+ UserHandle userHandle) {
UserHandle initialIntentsUserSpace = isLaunchedAsCloneProfile()
&& userHandle.equals(requireAnnotatedUserHandles().personalProfileUserHandle)
? requireAnnotatedUserHandles().cloneProfileUserHandle : userHandle;
@@ -902,7 +907,7 @@ public class ResolverActivity extends Hilt_ResolverActivity implements
mLogic.getTargetIntent(),
this,
initialIntentsUserSpace,
- targetDataLoader);
+ mTargetDataLoader);
}
protected final EmptyStateProvider createEmptyStateProvider(
@@ -940,16 +945,15 @@ public class ResolverActivity extends Hilt_ResolverActivity implements
createResolverMultiProfilePagerAdapterForOneProfile(
Intent[] initialIntents,
List<ResolveInfo> resolutionList,
- boolean filterLastUsed,
- TargetDataLoader targetDataLoader) {
+ boolean filterLastUsed) {
ResolverListAdapter personalAdapter = createResolverListAdapter(
/* context */ this,
mLogic.getPayloadIntents(),
initialIntents,
resolutionList,
filterLastUsed,
- /* userHandle */ requireAnnotatedUserHandles().personalProfileUserHandle,
- targetDataLoader);
+ /* userHandle */ requireAnnotatedUserHandles().personalProfileUserHandle
+ );
return new ResolverMultiProfilePagerAdapter(
/* context */ this,
mDevicePolicyResources.getPersonalTabLabel(),
@@ -971,8 +975,7 @@ public class ResolverActivity extends Hilt_ResolverActivity implements
private ResolverMultiProfilePagerAdapter createResolverMultiProfilePagerAdapterForTwoProfiles(
Intent[] initialIntents,
List<ResolveInfo> resolutionList,
- boolean filterLastUsed,
- TargetDataLoader targetDataLoader) {
+ boolean filterLastUsed) {
// In the edge case when we have 0 apps in the current profile and >1 apps in the other,
// the intent resolver is started in the other profile. Since this is the only case when
// this happens, we check for it here and set the current profile's tab.
@@ -1000,8 +1003,8 @@ public class ResolverActivity extends Hilt_ResolverActivity implements
resolutionList,
(filterLastUsed && UserHandle.myUserId()
== requireAnnotatedUserHandles().personalProfileUserHandle.getIdentifier()),
- /* userHandle */ requireAnnotatedUserHandles().personalProfileUserHandle,
- targetDataLoader);
+ /* userHandle */ requireAnnotatedUserHandles().personalProfileUserHandle
+ );
UserHandle workProfileUserHandle = requireAnnotatedUserHandles().workProfileUserHandle;
ResolverListAdapter workAdapter = createResolverListAdapter(
/* context */ this,
@@ -1010,8 +1013,8 @@ public class ResolverActivity extends Hilt_ResolverActivity implements
resolutionList,
(filterLastUsed && UserHandle.myUserId()
== workProfileUserHandle.getIdentifier()),
- /* userHandle */ workProfileUserHandle,
- targetDataLoader);
+ /* userHandle */ workProfileUserHandle
+ );
return new ResolverMultiProfilePagerAdapter(
/* context */ this,
mDevicePolicyResources.getPersonalTabLabel(),
@@ -1954,7 +1957,7 @@ public class ResolverActivity extends Hilt_ResolverActivity implements
private CharSequence getOrLoadDisplayLabel(TargetInfo info) {
if (info.isDisplayResolveInfo()) {
- mLogic.getTargetDataLoader().getOrLoadLabel((DisplayResolveInfo) info);
+ mTargetDataLoader.getOrLoadLabel((DisplayResolveInfo) info);
}
CharSequence displayLabel = info.getDisplayLabel();
return displayLabel == null ? "" : displayLabel;
diff --git a/java/src/com/android/intentresolver/v2/ResolverActivityLogic.kt b/java/src/com/android/intentresolver/v2/ResolverActivityLogic.kt
index 51288e51..cf843043 100644
--- a/java/src/com/android/intentresolver/v2/ResolverActivityLogic.kt
+++ b/java/src/com/android/intentresolver/v2/ResolverActivityLogic.kt
@@ -3,9 +3,6 @@ package com.android.intentresolver.v2
import android.content.Intent
import androidx.activity.ComponentActivity
import androidx.annotation.OpenForTesting
-import com.android.intentresolver.icons.DefaultTargetDataLoader
-import com.android.intentresolver.icons.TargetDataLoader
-import com.android.intentresolver.v2.util.mutableLazy
/** Activity logic for [ResolverActivity]. */
@OpenForTesting
@@ -41,7 +38,7 @@ open class ResolverActivityLogic(
override val resolvingHome: Boolean =
targetIntent.action == Intent.ACTION_MAIN &&
- targetIntent.categories.singleOrNull() == Intent.CATEGORY_HOME
+ targetIntent.categories.singleOrNull() == Intent.CATEGORY_HOME
override val title: CharSequence? = null
@@ -49,14 +46,5 @@ open class ResolverActivityLogic(
override val initialIntents: List<Intent>? = null
- override val targetDataLoader: TargetDataLoader = DefaultTargetDataLoader(
- activity,
- activity.lifecycle,
- activity.intent.getBooleanExtra(
- ResolverActivity.EXTRA_IS_AUDIO_CAPTURE_DEVICE,
- /* defaultValue = */ false,
- ),
- )
-
override val payloadIntents: List<Intent> = listOf(targetIntent)
}
diff --git a/tests/activity/src/com/android/intentresolver/v2/ChooserWrapperActivity.java b/tests/activity/src/com/android/intentresolver/v2/ChooserWrapperActivity.java
index b045c801..0b268905 100644
--- a/tests/activity/src/com/android/intentresolver/v2/ChooserWrapperActivity.java
+++ b/tests/activity/src/com/android/intentresolver/v2/ChooserWrapperActivity.java
@@ -39,7 +39,6 @@ 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.icons.TargetDataLoader;
import com.android.intentresolver.shortcuts.ShortcutLoader;
import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
@@ -60,7 +59,6 @@ public class ChooserWrapperActivity extends ChooserActivity implements IChooserW
"ChooserWrapper",
/* activity = */ this,
this::onWorkProfileStatusUpdated,
- mTargetDataLoader,
sOverrides);
}
@@ -82,8 +80,7 @@ public class ChooserWrapperActivity extends ChooserActivity implements IChooserW
UserHandle userHandle,
Intent targetIntent,
Intent referrerFillInIntent,
- int maxTargetsPerRow,
- TargetDataLoader targetDataLoader) {
+ int maxTargetsPerRow) {
return new ChooserListAdapter(
context,
@@ -100,7 +97,7 @@ public class ChooserWrapperActivity extends ChooserActivity implements IChooserW
getEventLog(),
maxTargetsPerRow,
userHandle,
- targetDataLoader,
+ mTargetDataLoader,
null,
mFeatureFlags);
}
diff --git a/tests/activity/src/com/android/intentresolver/v2/ResolverWrapperActivity.java b/tests/activity/src/com/android/intentresolver/v2/ResolverWrapperActivity.java
index fcd6205c..d06b7929 100644
--- a/tests/activity/src/com/android/intentresolver/v2/ResolverWrapperActivity.java
+++ b/tests/activity/src/com/android/intentresolver/v2/ResolverWrapperActivity.java
@@ -84,8 +84,7 @@ public class ResolverWrapperActivity extends ResolverActivity {
Intent[] initialIntents,
List<ResolveInfo> rList,
boolean filterLastUsed,
- UserHandle userHandle,
- TargetDataLoader targetDataLoader) {
+ UserHandle userHandle) {
return new ResolverListAdapter(
context,
payloadIntents,
@@ -97,7 +96,7 @@ public class ResolverWrapperActivity extends ResolverActivity {
payloadIntents.get(0), // TODO: extract upstream
this,
userHandle,
- new TargetDataLoaderWrapper(targetDataLoader, mLabelIdlingResource));
+ new TargetDataLoaderWrapper(mTargetDataLoader, mLabelIdlingResource));
}
@Override
diff --git a/tests/activity/src/com/android/intentresolver/v2/TestChooserActivityLogic.kt b/tests/activity/src/com/android/intentresolver/v2/TestChooserActivityLogic.kt
index b6354c7a..0849e511 100644
--- a/tests/activity/src/com/android/intentresolver/v2/TestChooserActivityLogic.kt
+++ b/tests/activity/src/com/android/intentresolver/v2/TestChooserActivityLogic.kt
@@ -3,21 +3,18 @@ package com.android.intentresolver.v2
import androidx.activity.ComponentActivity
import com.android.intentresolver.AnnotatedUserHandles
import com.android.intentresolver.WorkProfileAvailabilityManager
-import com.android.intentresolver.icons.TargetDataLoader
/** Activity logic for use when testing [ChooserActivity]. */
class TestChooserActivityLogic(
tag: String,
activity: ComponentActivity,
onWorkProfileStatusUpdated: () -> Unit,
- targetDataLoader: TargetDataLoader,
private val overrideData: ChooserActivityOverrideData,
) :
ChooserActivityLogic(
tag,
activity,
onWorkProfileStatusUpdated,
- targetDataLoader,
) {
override val annotatedUserHandles: AnnotatedUserHandles? by lazy {