diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index b160fc6e0b..42a3c9d60c 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 0000000000..b98c9d53cb
--- /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 7e94fa4022..bcc6d04b6e 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 0000000000..c135933739
--- /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)
+ }
+}