diff options
author | 2024-02-22 20:29:22 +0000 | |
---|---|---|
committer | 2024-02-22 20:29:22 +0000 | |
commit | 7ac4ff9c63deec2c1d65a15f25206bf41401a9ca (patch) | |
tree | 7f437dfd33ea725eb12761c0a0db0ef495b7c2ca | |
parent | 75513e6b14ee8287fe1891916b18d51c3c55e891 (diff) | |
parent | 686477182299c6e3780c096f3461267d4f7c4ddd (diff) |
Merge "Renames ActivityLaunch to ActivityModel" into main
11 files changed, 113 insertions, 109 deletions
diff --git a/java/src/com/android/intentresolver/v2/ChooserActivity.java b/java/src/com/android/intentresolver/v2/ChooserActivity.java index 68815067..3d8bfac5 100644 --- a/java/src/com/android/intentresolver/v2/ChooserActivity.java +++ b/java/src/com/android/intentresolver/v2/ChooserActivity.java @@ -156,7 +156,7 @@ import com.android.intentresolver.v2.profiles.TabConfig; import com.android.intentresolver.v2.ui.ActionTitle; import com.android.intentresolver.v2.ui.ShareResultSender; import com.android.intentresolver.v2.ui.ShareResultSenderFactory; -import com.android.intentresolver.v2.ui.model.ActivityLaunch; +import com.android.intentresolver.v2.ui.model.ActivityModel; import com.android.intentresolver.v2.ui.model.ChooserRequest; import com.android.intentresolver.v2.ui.viewmodel.ChooserViewModel; import com.android.intentresolver.widget.ImagePreviewView; @@ -273,7 +273,7 @@ public class ChooserActivity extends Hilt_ChooserActivity implements private static final int SCROLL_STATUS_SCROLLING_VERTICAL = 1; private static final int SCROLL_STATUS_SCROLLING_HORIZONTAL = 2; - @Inject public ActivityLaunch mActivityLaunch; + @Inject public ActivityModel mActivityModel; @Inject public FeatureFlags mFeatureFlags; @Inject public android.service.chooser.FeatureFlags mChooserServiceFeatureFlags; @Inject public EventLog mEventLog; @@ -347,15 +347,15 @@ public class ChooserActivity extends Hilt_ChooserActivity implements public CreationExtras getDefaultViewModelCreationExtras() { return addDefaultArgs( super.getDefaultViewModelCreationExtras(), - new Pair<>(ActivityLaunch.ACTIVITY_LAUNCH_KEY, mActivityLaunch)); + new Pair<>(ActivityModel.ACTIVITY_MODEL_KEY, mActivityModel)); } @Override protected final void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); Log.i(TAG, "onCreate"); - Log.i(TAG, "activityLaunch=" + mActivityLaunch.toString()); - int callerUid = mActivityLaunch.getFromUid(); + Log.i(TAG, "activityLaunch=" + mActivityModel.toString()); + int callerUid = mActivityModel.getLaunchedFromUid(); if (callerUid < 0 || UserHandle.isIsolated(callerUid)) { Log.e(TAG, "Can't start a resolver from uid " + callerUid); finish(); @@ -371,7 +371,7 @@ public class ChooserActivity extends Hilt_ChooserActivity implements mViewModel.getChooserRequest().getChosenComponentSender(); if (chosenComponentSender != null) { mShareResultSender = mShareResultSenderFactory - .create(mActivityLaunch.getFromUid(), chosenComponentSender); + .create(mActivityModel.getLaunchedFromUid(), chosenComponentSender); } mLogic = createActivityLogic(); init(); @@ -491,7 +491,7 @@ public class ChooserActivity extends Hilt_ChooserActivity implements .get(BasePreviewViewModel.class); previewViewModel.init( chooserRequest.getTargetIntent(), - mActivityLaunch.getIntent(), + mActivityModel.getIntent(), chooserRequest.getAdditionalContentUri(), chooserRequest.getFocusedItemPosition(), mChooserServiceFeatureFlags.chooserPayloadToggling()); @@ -862,9 +862,9 @@ public class ChooserActivity extends Hilt_ChooserActivity implements } } catch (RuntimeException e) { Slog.wtf(TAG, - "Unable to launch as uid " + mActivityLaunch.getFromUid() - + " package " + mActivityLaunch.getFromPackage() + ", while running in " - + ActivityThread.currentProcessName(), e); + "Unable to launch as uid " + mActivityModel.getLaunchedFromUid() + + " package " + mActivityModel.getLaunchedFromPackage() + + ", while running in " + ActivityThread.currentProcessName(), e); } } @@ -1658,7 +1658,7 @@ public class ChooserActivity extends Hilt_ChooserActivity implements return false; } - return mActivityLaunch.getIntent().getBooleanExtra(Intent.EXTRA_AUTO_LAUNCH_SINGLE_CHOICE, + return mActivityModel.getIntent().getBooleanExtra(Intent.EXTRA_AUTO_LAUNCH_SINGLE_CHOICE, true); } diff --git a/java/src/com/android/intentresolver/v2/ResolverActivity.java b/java/src/com/android/intentresolver/v2/ResolverActivity.java index 241b6735..98e82b00 100644 --- a/java/src/com/android/intentresolver/v2/ResolverActivity.java +++ b/java/src/com/android/intentresolver/v2/ResolverActivity.java @@ -113,7 +113,7 @@ import com.android.intentresolver.v2.profiles.OnProfileSelectedListener; import com.android.intentresolver.v2.profiles.TabConfig; import com.android.intentresolver.v2.profiles.ResolverMultiProfilePagerAdapter; import com.android.intentresolver.v2.ui.ActionTitle; -import com.android.intentresolver.v2.ui.model.ActivityLaunch; +import com.android.intentresolver.v2.ui.model.ActivityModel; import com.android.intentresolver.v2.ui.model.ResolverRequest; import com.android.intentresolver.v2.validation.ValidationResult; import com.android.intentresolver.widget.ResolverDrawerLayout; @@ -149,7 +149,7 @@ public class ResolverActivity extends Hilt_ResolverActivity implements ResolverListAdapter.ResolverListCommunicator { @Inject public PackageManager mPackageManager; - @Inject public ActivityLaunch mActivityLaunch; + @Inject public ActivityModel mActivityModel; @Inject public DevicePolicyResources mDevicePolicyResources; @Inject public IntentForwarding mIntentForwarding; private ResolverRequest mResolverRequest; @@ -227,7 +227,7 @@ public class ResolverActivity extends Hilt_ResolverActivity implements public CreationExtras getDefaultViewModelCreationExtras() { return addDefaultArgs( super.getDefaultViewModelCreationExtras(), - new Pair<>(ActivityLaunch.ACTIVITY_LAUNCH_KEY, mActivityLaunch)); + new Pair<>(ActivityModel.ACTIVITY_MODEL_KEY, mActivityModel)); } @Override @@ -235,14 +235,14 @@ public class ResolverActivity extends Hilt_ResolverActivity implements super.onCreate(savedInstanceState); setTheme(R.style.Theme_DeviceDefault_Resolver); Log.i(TAG, "onCreate"); - Log.i(TAG, "activityLaunch=" + mActivityLaunch.toString()); - int callerUid = mActivityLaunch.getFromUid(); + Log.i(TAG, "activityLaunch=" + mActivityModel.toString()); + int callerUid = mActivityModel.getLaunchedFromUid(); if (callerUid < 0 || UserHandle.isIsolated(callerUid)) { Log.e(TAG, "Can't start a resolver from uid " + callerUid); finish(); } - ValidationResult<ResolverRequest> result = readResolverRequest(mActivityLaunch); + ValidationResult<ResolverRequest> result = readResolverRequest(mActivityModel); if (!result.isSuccess()) { result.reportToLogcat(TAG); finish(); @@ -748,7 +748,7 @@ public class ResolverActivity extends Hilt_ResolverActivity implements new ResolverRankerServiceResolverComparator( this, mResolverRequest.getIntent(), - mActivityLaunch.getReferrerPackage(), + mActivityModel.getReferrerPackage(), null, null, getResolverRankerServiceUserHandleList(userHandle), @@ -756,9 +756,9 @@ public class ResolverActivity extends Hilt_ResolverActivity implements return new ResolverListController( this, mPackageManager, - mActivityLaunch.getIntent(), - mActivityLaunch.getReferrerPackage(), - mActivityLaunch.getFromUid(), + mActivityModel.getIntent(), + mActivityModel.getReferrerPackage(), + mActivityModel.getLaunchedFromUid(), resolverComparator, getQueryIntentsUser(userHandle)); } @@ -1479,7 +1479,7 @@ public class ResolverActivity extends Hilt_ResolverActivity implements } } catch (RuntimeException e) { Slog.wtf(TAG, - "Unable to launch as uid " + mActivityLaunch.getFromUid() + "Unable to launch as uid " + mActivityModel.getLaunchedFromUid() + " package " + getLaunchedFromPackage() + ", while running in " + ActivityThread.currentProcessName(), e); } diff --git a/java/src/com/android/intentresolver/v2/ui/model/ActivityLaunch.kt b/java/src/com/android/intentresolver/v2/ui/model/ActivityModel.kt index e5f342d9..02bb6640 100644 --- a/java/src/com/android/intentresolver/v2/ui/model/ActivityLaunch.kt +++ b/java/src/com/android/intentresolver/v2/ui/model/ActivityModel.kt @@ -22,14 +22,14 @@ import android.os.Parcelable import com.android.intentresolver.v2.ext.readParcelable import com.android.intentresolver.v2.ext.requireParcelable -/** Contains Activity-scope information about the state at launch time. */ -data class ActivityLaunch( +/** Contains Activity-scope information about the state when started. */ +data class ActivityModel( /** The [Intent] received by the app */ val intent: Intent, /** The identifier for the sending app and user */ - val fromUid: Int, + val launchedFromUid: Int, /** The package of the sending app */ - val fromPackage: String, + val launchedFromPackage: String, /** The referrer as supplied to the activity. */ val referrer: Uri? ) : Parcelable { @@ -37,8 +37,8 @@ data class ActivityLaunch( source: Parcel ) : this( intent = source.requireParcelable(), - fromUid = source.readInt(), - fromPackage = requireNotNull(source.readString()), + launchedFromUid = source.readInt(), + launchedFromPackage = requireNotNull(source.readString()), referrer = source.readParcelable() ) @@ -49,20 +49,20 @@ data class ActivityLaunch( override fun writeToParcel(dest: Parcel, flags: Int) { dest.writeParcelable(intent, flags) - dest.writeInt(fromUid) - dest.writeString(fromPackage) + dest.writeInt(launchedFromUid) + dest.writeString(launchedFromPackage) dest.writeParcelable(referrer, flags) } companion object { - const val ACTIVITY_LAUNCH_KEY = "com.android.intentresolver.ACTIVITY_LAUNCH" + const val ACTIVITY_MODEL_KEY = "com.android.intentresolver.ACTIVITY_MODEL" @JvmField @Suppress("unused") val CREATOR = - object : Parcelable.Creator<ActivityLaunch> { - override fun newArray(size: Int) = arrayOfNulls<ActivityLaunch>(size) - override fun createFromParcel(source: Parcel) = ActivityLaunch(source) + object : Parcelable.Creator<ActivityModel> { + override fun newArray(size: Int) = arrayOfNulls<ActivityModel>(size) + override fun createFromParcel(source: Parcel) = ActivityModel(source) } } } diff --git a/java/src/com/android/intentresolver/v2/ui/model/ActivityLaunchModule.kt b/java/src/com/android/intentresolver/v2/ui/model/ActivityModelModule.kt index bb8f3a54..d9fb1fa6 100644 --- a/java/src/com/android/intentresolver/v2/ui/model/ActivityLaunchModule.kt +++ b/java/src/com/android/intentresolver/v2/ui/model/ActivityModelModule.kt @@ -25,19 +25,19 @@ import dagger.hilt.android.scopes.ActivityScoped @Module @InstallIn(ActivityComponent::class) -object ActivityLaunchModule { +object ActivityModelModule { @Provides @ActivityScoped - fun callerInfo(activity: Activity): ActivityLaunch { - return ActivityLaunch( - activity.intent, - activity.launchedFromUid, - requireNotNull(activity.launchedFromPackage) { + fun activityModel(activity: Activity): ActivityModel { + return ActivityModel( + intent = activity.intent, + launchedFromUid = activity.launchedFromUid, + launchedFromPackage = requireNotNull(activity.launchedFromPackage) { "activity.launchedFromPackage was null. This is expected to be non-null for " + - "any system-signed application!" + "any system-signed application!" }, - activity.referrer + referrer = activity.referrer ) } } diff --git a/java/src/com/android/intentresolver/v2/ui/viewmodel/ChooserRequestReader.kt b/java/src/com/android/intentresolver/v2/ui/viewmodel/ChooserRequestReader.kt index e32d69b0..8fe1dba5 100644 --- a/java/src/com/android/intentresolver/v2/ui/viewmodel/ChooserRequestReader.kt +++ b/java/src/com/android/intentresolver/v2/ui/viewmodel/ChooserRequestReader.kt @@ -47,7 +47,7 @@ import com.android.intentresolver.inject.ChooserServiceFlags import com.android.intentresolver.util.hasValidIcon import com.android.intentresolver.v2.ext.hasSendAction import com.android.intentresolver.v2.ext.ifMatch -import com.android.intentresolver.v2.ui.model.ActivityLaunch +import com.android.intentresolver.v2.ui.model.ActivityModel import com.android.intentresolver.v2.ui.model.ChooserRequest import com.android.intentresolver.v2.validation.ValidationResult import com.android.intentresolver.v2.validation.types.IntentOrUri @@ -65,7 +65,7 @@ internal fun Intent.maybeAddSendActionFlags() = } fun readChooserRequest( - launch: ActivityLaunch, + launch: ActivityModel, flags: ChooserServiceFlags ): ValidationResult<ChooserRequest> { val extras = launch.intent.extras ?: Bundle() @@ -162,7 +162,7 @@ fun readChooserRequest( isSendActionTarget = isSendAction, targetType = targetIntent.type, launchedFromPackage = - requireNotNull(launch.fromPackage) { + requireNotNull(launch.launchedFromPackage) { "launch.fromPackage was null, See Activity.getLaunchedFromPackage()" }, title = customTitle, diff --git a/java/src/com/android/intentresolver/v2/ui/viewmodel/ChooserViewModel.kt b/java/src/com/android/intentresolver/v2/ui/viewmodel/ChooserViewModel.kt index a03f3769..cd1a16e3 100644 --- a/java/src/com/android/intentresolver/v2/ui/viewmodel/ChooserViewModel.kt +++ b/java/src/com/android/intentresolver/v2/ui/viewmodel/ChooserViewModel.kt @@ -19,8 +19,8 @@ import android.util.Log import androidx.lifecycle.SavedStateHandle import androidx.lifecycle.ViewModel import com.android.intentresolver.inject.ChooserServiceFlags -import com.android.intentresolver.v2.ui.model.ActivityLaunch -import com.android.intentresolver.v2.ui.model.ActivityLaunch.Companion.ACTIVITY_LAUNCH_KEY +import com.android.intentresolver.v2.ui.model.ActivityModel +import com.android.intentresolver.v2.ui.model.ActivityModel.Companion.ACTIVITY_MODEL_KEY import com.android.intentresolver.v2.ui.model.ChooserRequest import com.android.intentresolver.v2.validation.ValidationResult import dagger.hilt.android.lifecycle.HiltViewModel @@ -36,14 +36,14 @@ constructor( flags: ChooserServiceFlags, ) : ViewModel() { - private val mActivityLaunch: ActivityLaunch = - requireNotNull(args[ACTIVITY_LAUNCH_KEY]) { - "ActivityLaunch missing in SavedStateHandle! ($ACTIVITY_LAUNCH_KEY)" + private val mActivityModel: ActivityModel = + requireNotNull(args[ACTIVITY_MODEL_KEY]) { + "ActivityModel missing in SavedStateHandle! ($ACTIVITY_MODEL_KEY)" } /** The result of reading and validating the inputs provided in savedState. */ private val status: ValidationResult<ChooserRequest> = - readChooserRequest(mActivityLaunch, flags) + readChooserRequest(mActivityModel, flags) val chooserRequest: ChooserRequest by lazy { status.getOrThrow() } diff --git a/java/src/com/android/intentresolver/v2/ui/viewmodel/ResolverRequestReader.kt b/java/src/com/android/intentresolver/v2/ui/viewmodel/ResolverRequestReader.kt index 22d76493..bbc376ea 100644 --- a/java/src/com/android/intentresolver/v2/ui/viewmodel/ResolverRequestReader.kt +++ b/java/src/com/android/intentresolver/v2/ui/viewmodel/ResolverRequestReader.kt @@ -21,7 +21,7 @@ import android.os.UserHandle import com.android.intentresolver.v2.ResolverActivity.PROFILE_PERSONAL import com.android.intentresolver.v2.ResolverActivity.PROFILE_WORK import com.android.intentresolver.v2.shared.model.Profile -import com.android.intentresolver.v2.ui.model.ActivityLaunch +import com.android.intentresolver.v2.ui.model.ActivityModel import com.android.intentresolver.v2.ui.model.ResolverRequest import com.android.intentresolver.v2.validation.Validation import com.android.intentresolver.v2.validation.ValidationResult @@ -33,7 +33,7 @@ const val EXTRA_SELECTED_PROFILE = "com.android.internal.app.ResolverActivity.EXTRA_SELECTED_PROFILE" const val EXTRA_IS_AUDIO_CAPTURE_DEVICE = "is_audio_capture_device" -fun readResolverRequest(launch: ActivityLaunch): ValidationResult<ResolverRequest> { +fun readResolverRequest(launch: ActivityModel): ValidationResult<ResolverRequest> { @Suppress("DEPRECATION") return validateFrom((launch.intent.extras ?: Bundle())::get) { val callingUser = optional(value<UserHandle>(EXTRA_CALLING_USER)) diff --git a/tests/activity/src/com/android/intentresolver/v2/ui/model/TestActivityLaunchModule.kt b/tests/activity/src/com/android/intentresolver/v2/ui/model/TestActivityModelModule.kt index 7dd15dbe..7d05dc0f 100644 --- a/tests/activity/src/com/android/intentresolver/v2/ui/model/TestActivityLaunchModule.kt +++ b/tests/activity/src/com/android/intentresolver/v2/ui/model/TestActivityModelModule.kt @@ -24,13 +24,17 @@ import dagger.hilt.android.scopes.ActivityScoped import dagger.hilt.testing.TestInstallIn @Module -@TestInstallIn(components = [ActivityComponent::class], replaces = [ActivityLaunchModule::class]) -class TestActivityLaunchModule { +@TestInstallIn(components = [ActivityComponent::class], replaces = [ActivityModelModule::class]) +class TestActivityModelModule { @Provides @ActivityScoped - fun activityLaunch(activity: Activity): ActivityLaunch { - return ActivityLaunch(activity.intent, LAUNCHED_FROM_UID, LAUNCHED_FROM_PACKAGE, REFERRER) + fun activityModel(activity: Activity): ActivityModel { + return ActivityModel( + intent = activity.intent, + launchedFromUid = LAUNCHED_FROM_UID, + launchedFromPackage = LAUNCHED_FROM_PACKAGE, + referrer = REFERRER) } companion object { diff --git a/tests/unit/src/com/android/intentresolver/v2/ui/model/ActivityLaunchTest.kt b/tests/unit/src/com/android/intentresolver/v2/ui/model/ActivityLaunchTest.kt index 25eac220..e30cd81a 100644 --- a/tests/unit/src/com/android/intentresolver/v2/ui/model/ActivityLaunchTest.kt +++ b/tests/unit/src/com/android/intentresolver/v2/ui/model/ActivityLaunchTest.kt @@ -29,7 +29,7 @@ class ActivityLaunchTest { @Test fun testDefaultValues() { - val input = ActivityLaunch(Intent(ACTION_CHOOSER), 0, "example.com", null) + val input = ActivityModel(Intent(ACTION_CHOOSER), 0, "example.com", null) val output = input.toParcelAndBack() @@ -40,7 +40,7 @@ class ActivityLaunchTest { fun testCommonValues() { val intent = Intent(ACTION_CHOOSER).apply { putExtra(EXTRA_TEXT, "Test") } val input = - ActivityLaunch(intent, 1234, "com.example", Uri.parse("android-app://example.com")) + ActivityModel(intent, 1234, "com.example", Uri.parse("android-app://example.com")) val output = input.toParcelAndBack() @@ -50,10 +50,10 @@ class ActivityLaunchTest { @Test fun testReferrerPackage_withAppReferrer_usesReferrer() { val launch1 = - ActivityLaunch( + ActivityModel( intent = Intent(), - fromUid = 1000, - fromPackage = "other.example.com", + launchedFromUid = 1000, + launchedFromPackage = "other.example.com", referrer = Uri.parse("android-app://app.example.com") ) @@ -63,10 +63,10 @@ class ActivityLaunchTest { @Test fun testReferrerPackage_httpReferrer_isNull() { val launch = - ActivityLaunch( + ActivityModel( intent = Intent(), - fromUid = 1000, - fromPackage = "example.com", + launchedFromUid = 1000, + launchedFromPackage = "example.com", referrer = Uri.parse("http://some.other.value") ) @@ -76,29 +76,29 @@ class ActivityLaunchTest { @Test fun testReferrerPackage_nullReferrer_isNull() { val launch = - ActivityLaunch( + ActivityModel( intent = Intent(), - fromUid = 1000, - fromPackage = "example.com", + launchedFromUid = 1000, + launchedFromPackage = "example.com", referrer = null ) assertThat(launch.referrerPackage).isNull() } - private fun assertEquals(expected: ActivityLaunch, actual: ActivityLaunch) { + private fun assertEquals(expected: ActivityModel, actual: ActivityModel) { // Test fields separately: Intent does not override equals() assertWithMessage("%s.filterEquals(%s)", actual.intent, expected.intent) .that(actual.intent.filterEquals(expected.intent)) .isTrue() assertWithMessage("actual fromUid is equal to expected") - .that(actual.fromUid) - .isEqualTo(expected.fromUid) + .that(actual.launchedFromUid) + .isEqualTo(expected.launchedFromUid) assertWithMessage("actual fromPackage is equal to expected") - .that(actual.fromPackage) - .isEqualTo(expected.fromPackage) + .that(actual.launchedFromPackage) + .isEqualTo(expected.launchedFromPackage) assertWithMessage("actual referrer is equal to expected") .that(actual.referrer) diff --git a/tests/unit/src/com/android/intentresolver/v2/ui/viewmodel/ChooserRequestTest.kt b/tests/unit/src/com/android/intentresolver/v2/ui/viewmodel/ChooserRequestTest.kt index 4a33f733..d2ddf680 100644 --- a/tests/unit/src/com/android/intentresolver/v2/ui/viewmodel/ChooserRequestTest.kt +++ b/tests/unit/src/com/android/intentresolver/v2/ui/viewmodel/ChooserRequestTest.kt @@ -29,7 +29,7 @@ import androidx.core.net.toUri import androidx.core.os.bundleOf import com.android.intentresolver.ContentTypeHint import com.android.intentresolver.inject.FakeChooserServiceFlags -import com.android.intentresolver.v2.ui.model.ActivityLaunch +import com.android.intentresolver.v2.ui.model.ActivityModel import com.android.intentresolver.v2.ui.model.ChooserRequest import com.android.intentresolver.v2.validation.RequiredValueMissing import com.android.intentresolver.v2.validation.ValidationResultSubject.Companion.assertThat @@ -44,18 +44,18 @@ private const val EXTRA_CHOOSER_ADDITIONAL_CONTENT_URI = private const val EXTRA_CHOOSER_FOCUSED_ITEM_POSITION = "android.intent.extra.CHOOSER_FOCUSED_ITEM_POSITION" -private fun createLaunch( +private fun createActivityModel( targetIntent: Intent?, referrer: Uri? = null, additionalIntents: List<Intent>? = null ) = - ActivityLaunch( + ActivityModel( Intent(ACTION_CHOOSER).apply { targetIntent?.also { putExtra(EXTRA_INTENT, it) } additionalIntents?.also { putExtra(EXTRA_ALTERNATE_INTENTS, it.toTypedArray()) } }, - fromUid = 10000, - fromPackage = "com.android.example", + launchedFromUid = 10000, + launchedFromPackage = "com.android.example", referrer = referrer ?: "android-app://com.android.example".toUri() ) @@ -70,7 +70,7 @@ class ChooserRequestTest { @Test fun missingIntent() { - val launch = createLaunch(targetIntent = null) + val launch = createActivityModel(targetIntent = null) val result = readChooserRequest(launch, fakeChooserServiceFlags) assertThat(result).value().isNull() @@ -82,7 +82,7 @@ class ChooserRequestTest { @Test fun referrerFillIn() { val referrer = Uri.parse("android-app://example.com") - val launch = createLaunch(targetIntent = Intent(ACTION_SEND), referrer) + val launch = createActivityModel(targetIntent = Intent(ACTION_SEND), referrer) launch.intent.putExtras(bundleOf(EXTRA_REFERRER to referrer)) val result = readChooserRequest(launch, fakeChooserServiceFlags) @@ -97,7 +97,7 @@ class ChooserRequestTest { val referrer = Uri.parse("http://example.com") val intent = Intent().putExtras(bundleOf(EXTRA_INTENT to Intent(ACTION_SEND))) - val launch = createLaunch(targetIntent = intent, referrer = referrer) + val launch = createActivityModel(targetIntent = intent, referrer = referrer) val result = readChooserRequest(launch, fakeChooserServiceFlags) @@ -107,7 +107,7 @@ class ChooserRequestTest { @Test fun referrerPackage_fromAppReferrer() { val referrer = Uri.parse("android-app://example.com") - val launch = createLaunch(targetIntent = Intent(ACTION_SEND), referrer) + val launch = createActivityModel(targetIntent = Intent(ACTION_SEND), referrer) launch.intent.putExtras(bundleOf(EXTRA_REFERRER to referrer)) @@ -120,7 +120,7 @@ class ChooserRequestTest { fun payloadIntents_includesTargetThenAdditional() { val intent1 = Intent(ACTION_SEND) val intent2 = Intent(ACTION_SEND_MULTIPLE) - val launch = createLaunch(targetIntent = intent1, additionalIntents = listOf(intent2)) + val launch = createActivityModel(targetIntent = intent1, additionalIntents = listOf(intent2)) val result = readChooserRequest(launch, fakeChooserServiceFlags) assertThat(result.value?.payloadIntents).containsExactly(intent1, intent2) @@ -129,12 +129,12 @@ class ChooserRequestTest { @Test fun testRequest_withOnlyRequiredValues() { val intent = Intent().putExtras(bundleOf(EXTRA_INTENT to Intent(ACTION_SEND))) - val launch = createLaunch(targetIntent = intent) + val launch = createActivityModel(targetIntent = intent) val result = readChooserRequest(launch, fakeChooserServiceFlags) assertThat(result).value().isNotNull() val value: ChooserRequest = result.getOrThrow() - assertThat(value.launchedFromPackage).isEqualTo(launch.fromPackage) + assertThat(value.launchedFromPackage).isEqualTo(launch.launchedFromPackage) assertThat(result).findings().isEmpty() } @@ -144,7 +144,7 @@ class ChooserRequestTest { val uri = Uri.parse("content://org.pkg/path") val position = 10 val launch = - createLaunch(targetIntent = Intent(ACTION_SEND)).apply { + createActivityModel(targetIntent = Intent(ACTION_SEND)).apply { intent.putExtra(EXTRA_CHOOSER_ADDITIONAL_CONTENT_URI, uri) intent.putExtra(EXTRA_CHOOSER_FOCUSED_ITEM_POSITION, position) } @@ -163,7 +163,7 @@ class ChooserRequestTest { val uri = Uri.parse("content://org.pkg/path") val position = 10 val launch = - createLaunch(targetIntent = Intent(ACTION_SEND)).apply { + createActivityModel(targetIntent = Intent(ACTION_SEND)).apply { intent.putExtra(EXTRA_CHOOSER_ADDITIONAL_CONTENT_URI, uri) intent.putExtra(EXTRA_CHOOSER_FOCUSED_ITEM_POSITION, position) } @@ -180,7 +180,7 @@ class ChooserRequestTest { fun testRequest_actionSendWithInvalidAdditionalContentUri() { fakeChooserServiceFlags.setFlag(Flags.FLAG_CHOOSER_PAYLOAD_TOGGLING, true) val launch = - createLaunch(targetIntent = Intent(ACTION_SEND)).apply { + createActivityModel(targetIntent = Intent(ACTION_SEND)).apply { intent.putExtra(EXTRA_CHOOSER_ADDITIONAL_CONTENT_URI, "content://org.pkg/path") intent.putExtra(EXTRA_CHOOSER_FOCUSED_ITEM_POSITION, "1") } @@ -195,7 +195,7 @@ class ChooserRequestTest { @Test fun testRequest_actionSendWithoutAdditionalContentUri() { fakeChooserServiceFlags.setFlag(Flags.FLAG_CHOOSER_PAYLOAD_TOGGLING, true) - val launch = createLaunch(targetIntent = Intent(ACTION_SEND)) + val launch = createActivityModel(targetIntent = Intent(ACTION_SEND)) val result = readChooserRequest(launch, fakeChooserServiceFlags) assertThat(result).value().isNotNull() @@ -210,7 +210,7 @@ class ChooserRequestTest { val uri = Uri.parse("content://org.pkg/path") val position = 10 val launch = - createLaunch(targetIntent = Intent(ACTION_VIEW)).apply { + createActivityModel(targetIntent = Intent(ACTION_VIEW)).apply { intent.putExtra(EXTRA_CHOOSER_ADDITIONAL_CONTENT_URI, uri) intent.putExtra(EXTRA_CHOOSER_FOCUSED_ITEM_POSITION, position) } @@ -226,7 +226,7 @@ class ChooserRequestTest { @Test fun testAlbumType() { fakeChooserServiceFlags.setFlag(Flags.FLAG_CHOOSER_ALBUM_TEXT, true) - val launch = createLaunch(Intent(ACTION_SEND)) + val launch = createActivityModel(Intent(ACTION_SEND)) launch.intent.putExtra( Intent.EXTRA_CHOOSER_CONTENT_TYPE_HINT, Intent.CHOOSER_CONTENT_TYPE_ALBUM @@ -245,7 +245,7 @@ class ChooserRequestTest { fakeChooserServiceFlags.setFlag(Flags.FLAG_ENABLE_SHARESHEET_METADATA_EXTRA, false) val metadataText: CharSequence = "Test metadata text" val launch = - createLaunch(targetIntent = Intent()).apply { + createActivityModel(targetIntent = Intent()).apply { intent.putExtra(Intent.EXTRA_METADATA_TEXT, metadataText) } @@ -263,7 +263,7 @@ class ChooserRequestTest { fakeChooserServiceFlags.setFlag(Flags.FLAG_ENABLE_SHARESHEET_METADATA_EXTRA, true) val metadataText: CharSequence = "Test metadata text" val launch = - createLaunch(targetIntent = Intent()).apply { + createActivityModel(targetIntent = Intent()).apply { intent.putExtra(Intent.EXTRA_METADATA_TEXT, metadataText) } diff --git a/tests/unit/src/com/android/intentresolver/v2/ui/viewmodel/ResolverRequestTest.kt b/tests/unit/src/com/android/intentresolver/v2/ui/viewmodel/ResolverRequestTest.kt index e88c46f5..cc9b9a77 100644 --- a/tests/unit/src/com/android/intentresolver/v2/ui/viewmodel/ResolverRequestTest.kt +++ b/tests/unit/src/com/android/intentresolver/v2/ui/viewmodel/ResolverRequestTest.kt @@ -23,7 +23,7 @@ import androidx.core.net.toUri import androidx.core.os.bundleOf import com.android.intentresolver.v2.ResolverActivity.PROFILE_WORK import com.android.intentresolver.v2.shared.model.Profile.Type.WORK -import com.android.intentresolver.v2.ui.model.ActivityLaunch +import com.android.intentresolver.v2.ui.model.ActivityModel import com.android.intentresolver.v2.ui.model.ResolverRequest import com.android.intentresolver.v2.validation.UncaughtException import com.android.intentresolver.v2.validation.ValidationResultSubject.Companion.assertThat @@ -33,14 +33,14 @@ import org.junit.Test private val targetUri = Uri.parse("content://example.com/123") -private fun createLaunch( +private fun createActivityModel( targetIntent: Intent, referrer: Uri? = null, ) = - ActivityLaunch( + ActivityModel( intent = targetIntent, - fromUid = 10000, - fromPackage = "com.android.example", + launchedFromUid = 10000, + launchedFromPackage = "com.android.example", referrer = referrer ?: "android-app://com.android.example".toUri() ) @@ -48,14 +48,14 @@ class ResolverRequestTest { @Test fun testDefaults() { val intent = Intent(ACTION_VIEW).apply { data = targetUri } - val launch = createLaunch(intent) + val activity = createActivityModel(intent) - val result = readResolverRequest(launch) + val result = readResolverRequest(activity) assertThat(result).isSuccess() assertThat(result).findings().isEmpty() val value: ResolverRequest = result.getOrThrow() - assertThat(value.intent.filterEquals(launch.intent)).isTrue() + assertThat(value.intent.filterEquals(activity.intent)).isTrue() assertThat(value.callingUser).isNull() assertThat(value.selectedProfile).isNull() } @@ -68,9 +68,9 @@ class ResolverRequestTest { putExtra(EXTRA_SELECTED_PROFILE, -1000) } - val launch = createLaunch(intent) + val activity = createActivityModel(intent) - val result = readResolverRequest(launch) + val result = readResolverRequest(activity) assertThat(result).isFailure() assertWithMessage("the first finding") @@ -85,9 +85,9 @@ class ResolverRequestTest { Intent(Intent.ACTION_SEND).apply { putParcelableArrayListExtra(Intent.EXTRA_ALTERNATE_INTENTS, arrayListOf(intent2)) } - val launch = createLaunch(targetIntent = intent1) + val activity = createActivityModel(targetIntent = intent1) - val result = readResolverRequest(launch) + val result = readResolverRequest(activity) // Assert that payloadIntents does NOT include EXTRA_ALTERNATE_INTENTS // that is only supported for Chooser and should be not be added here. @@ -97,9 +97,9 @@ class ResolverRequestTest { @Test fun testAllValues() { val intent = Intent(ACTION_VIEW).apply { data = Uri.parse("content://example.com/123") } - val launch = createLaunch(targetIntent = intent) + val activity = createActivityModel(targetIntent = intent) - launch.intent.putExtras( + activity.intent.putExtras( bundleOf( EXTRA_CALLING_USER to UserHandle.of(123), EXTRA_SELECTED_PROFILE to PROFILE_WORK, @@ -107,12 +107,12 @@ class ResolverRequestTest { ) ) - val result = readResolverRequest(launch) + val result = readResolverRequest(activity) assertThat(result).value().isNotNull() val value: ResolverRequest = result.getOrThrow() - assertThat(value.intent.filterEquals(launch.intent)).isTrue() + assertThat(value.intent.filterEquals(activity.intent)).isTrue() assertThat(value.isAudioCaptureDevice).isTrue() assertThat(value.callingUser).isEqualTo(UserHandle.of(123)) assertThat(value.selectedProfile).isEqualTo(WORK) |