diff options
Diffstat (limited to 'java/src')
-rw-r--r-- | java/src/com/android/intentresolver/v2/ext/IntentExt.kt | 6 | ||||
-rw-r--r-- | java/src/com/android/intentresolver/v2/ui/viewmodel/ChooserRequestReader.kt | 8 |
2 files changed, 8 insertions, 6 deletions
diff --git a/java/src/com/android/intentresolver/v2/ext/IntentExt.kt b/java/src/com/android/intentresolver/v2/ext/IntentExt.kt index 7aa8e036..8c2d7277 100644 --- a/java/src/com/android/intentresolver/v2/ext/IntentExt.kt +++ b/java/src/com/android/intentresolver/v2/ext/IntentExt.kt @@ -32,8 +32,14 @@ inline fun Intent.ifMatch( /** True if the Intent has one of the specified actions. */ fun Intent.hasAction(vararg actions: String): Boolean = action in actions +/** True if the Intent has a specific component target */ +fun Intent.hasComponent(): Boolean = (component != null) + /** True if the Intent has a single matching category. */ fun Intent.hasSingleCategory(category: String) = categories.singleOrNull() == category +/** True if the Intent is a SEND or SEND_MULTIPLE action. */ +fun Intent.hasSendAction() = hasAction(Intent.ACTION_SEND, Intent.ACTION_SEND_MULTIPLE) + /** True if the Intent resolves to the special Home (Launcher) component */ fun Intent.isHomeIntent() = hasAction(Intent.ACTION_MAIN) && hasSingleCategory(Intent.CATEGORY_HOME) 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 565d4de1..e32d69b0 100644 --- a/java/src/com/android/intentresolver/v2/ui/viewmodel/ChooserRequestReader.kt +++ b/java/src/com/android/intentresolver/v2/ui/viewmodel/ChooserRequestReader.kt @@ -17,8 +17,6 @@ package com.android.intentresolver.v2.ui.viewmodel import android.content.ComponentName import android.content.Intent -import android.content.Intent.ACTION_SEND -import android.content.Intent.ACTION_SEND_MULTIPLE import android.content.Intent.EXTRA_ALTERNATE_INTENTS import android.content.Intent.EXTRA_CHOOSER_CUSTOM_ACTIONS import android.content.Intent.EXTRA_CHOOSER_MODIFY_SHARE_ACTION @@ -47,7 +45,7 @@ import com.android.intentresolver.ContentTypeHint import com.android.intentresolver.R import com.android.intentresolver.inject.ChooserServiceFlags import com.android.intentresolver.util.hasValidIcon -import com.android.intentresolver.v2.ext.hasAction +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.ChooserRequest @@ -60,8 +58,6 @@ import com.android.intentresolver.v2.validation.validateFrom private const val MAX_CHOOSER_ACTIONS = 5 private const val MAX_INITIAL_INTENTS = 2 -private fun Intent.hasSendAction() = hasAction(ACTION_SEND, ACTION_SEND_MULTIPLE) - internal fun Intent.maybeAddSendActionFlags() = ifMatch(Intent::hasSendAction) { addFlags(FLAG_ACTIVITY_NEW_DOCUMENT) @@ -77,7 +73,7 @@ fun readChooserRequest( return validateFrom(extras::get) { val targetIntent = required(IntentOrUri(EXTRA_INTENT)).maybeAddSendActionFlags() - val isSendAction = targetIntent.hasAction(ACTION_SEND, ACTION_SEND_MULTIPLE) + val isSendAction = targetIntent.hasSendAction() val additionalTargets = optional(array<Intent>(EXTRA_ALTERNATE_INTENTS))?.map { it.maybeAddSendActionFlags() } |