diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index b160fc6e0..42a3c9d60 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -19,13 +19,21 @@ + + + + + + + + + + - - - - - + + + diff --git a/app/src/main/java/org/mozilla/fenix/IntentReceiverActivity.kt b/app/src/main/java/org/mozilla/fenix/IntentReceiverActivity.kt new file mode 100644 index 000000000..b98c9d53c --- /dev/null +++ b/app/src/main/java/org/mozilla/fenix/IntentReceiverActivity.kt @@ -0,0 +1,27 @@ +package org.mozilla.fenix + +import android.app.Activity +import android.content.Intent +import android.os.Bundle +import mozilla.components.browser.session.tab.CustomTabConfig +import mozilla.components.support.utils.SafeIntent +import org.mozilla.fenix.ext.components + +class IntentReceiverActivity : Activity() { + + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + + components.utils.intentProcessor.process(intent) + + val intent = Intent(intent) + if (CustomTabConfig.isCustomTabIntent(SafeIntent(intent))) { + // TODO Enter CustomTabActivity here. + } else { + intent.setClassName(applicationContext, HomeActivity::class.java.name) + } + + startActivity(intent) + finish() + } +} \ No newline at end of file diff --git a/app/src/main/java/org/mozilla/fenix/components/Components.kt b/app/src/main/java/org/mozilla/fenix/components/Components.kt index 7e94fa402..bcc6d04b6 100644 --- a/app/src/main/java/org/mozilla/fenix/components/Components.kt +++ b/app/src/main/java/org/mozilla/fenix/components/Components.kt @@ -21,4 +21,5 @@ class Components(private val context: Context) { core.sessionManager ) } + val utils by lazy { Utilities(context, core.sessionManager, useCases.sessionUseCases, useCases.searchUseCases) } } \ No newline at end of file diff --git a/app/src/main/java/org/mozilla/fenix/components/Utilities.kt b/app/src/main/java/org/mozilla/fenix/components/Utilities.kt new file mode 100644 index 000000000..c13593373 --- /dev/null +++ b/app/src/main/java/org/mozilla/fenix/components/Utilities.kt @@ -0,0 +1,26 @@ +package org.mozilla.fenix.components + +import android.content.Context +import mozilla.components.browser.session.SessionManager +import mozilla.components.feature.intent.IntentProcessor +import mozilla.components.feature.search.SearchUseCases +import mozilla.components.feature.session.SessionUseCases + + +/** + * Component group for miscellaneous components. + */ +class Utilities( + private val context: Context, + private val sessionManager: SessionManager, + private val sessionUseCases: SessionUseCases, + private val searchUseCases: SearchUseCases +) { + /** + * Provides intent processing functionality for CustomTab, ACTION_VIEW + * and ACTION_SEND intents. + */ + val intentProcessor by lazy { + IntentProcessor(sessionUseCases, sessionManager, searchUseCases, context) + } +}