From 6c06651ecc5916e9a064da5f46e4b8bf43364230 Mon Sep 17 00:00:00 2001 From: Jonathan Almeida Date: Tue, 29 Jan 2019 15:46:11 -0500 Subject: [PATCH] Closes #268: Integrate feature-intent component --- app/src/main/AndroidManifest.xml | 18 +++++++++---- .../mozilla/fenix/IntentReceiverActivity.kt | 27 +++++++++++++++++++ .../mozilla/fenix/components/Components.kt | 1 + .../org/mozilla/fenix/components/Utilities.kt | 26 ++++++++++++++++++ 4 files changed, 67 insertions(+), 5 deletions(-) create mode 100644 app/src/main/java/org/mozilla/fenix/IntentReceiverActivity.kt create mode 100644 app/src/main/java/org/mozilla/fenix/components/Utilities.kt 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) + } +}