From 1629878a66d9234a1b15ce563b21941d02267790 Mon Sep 17 00:00:00 2001 From: James Hugman Date: Tue, 30 Jun 2020 20:12:38 +0100 Subject: [PATCH] Add install_search_widget --- .../fenix/home/intent/DeepLinkIntentProcessor.kt | 6 ++++++ .../home/intent/DeepLinkIntentProcessorTest.kt | 14 ++++++++++++++ docs/mma.md | 4 ++++ 3 files changed, 24 insertions(+) diff --git a/app/src/main/java/org/mozilla/fenix/home/intent/DeepLinkIntentProcessor.kt b/app/src/main/java/org/mozilla/fenix/home/intent/DeepLinkIntentProcessor.kt index 4b05ada34..acce6276e 100644 --- a/app/src/main/java/org/mozilla/fenix/home/intent/DeepLinkIntentProcessor.kt +++ b/app/src/main/java/org/mozilla/fenix/home/intent/DeepLinkIntentProcessor.kt @@ -15,6 +15,7 @@ import org.mozilla.fenix.BrowserDirection import org.mozilla.fenix.GlobalDirections import org.mozilla.fenix.HomeActivity import org.mozilla.fenix.browser.browsingmode.BrowsingMode +import org.mozilla.fenix.components.SearchWidgetCreator import org.mozilla.fenix.ext.alreadyOnDestination /** @@ -91,6 +92,11 @@ class DeepLinkIntentProcessor( val intent = notificationSettings(activity) activity.startActivity(intent) } + "install_search_widget" -> { + if (SDK_INT >= Build.VERSION_CODES.O) { + SearchWidgetCreator.createSearchWidget(activity) + } + } } } diff --git a/app/src/test/java/org/mozilla/fenix/home/intent/DeepLinkIntentProcessorTest.kt b/app/src/test/java/org/mozilla/fenix/home/intent/DeepLinkIntentProcessorTest.kt index 0507b3daf..c80619204 100644 --- a/app/src/test/java/org/mozilla/fenix/home/intent/DeepLinkIntentProcessorTest.kt +++ b/app/src/test/java/org/mozilla/fenix/home/intent/DeepLinkIntentProcessorTest.kt @@ -8,7 +8,9 @@ import android.content.Intent import androidx.core.net.toUri import androidx.navigation.NavController import io.mockk.Called +import io.mockk.every import io.mockk.mockk +import io.mockk.mockkObject import io.mockk.verify import mozilla.appservices.places.BookmarkRoot import org.junit.Assert.assertFalse @@ -20,6 +22,7 @@ import org.mozilla.fenix.BrowserDirection import org.mozilla.fenix.HomeActivity import org.mozilla.fenix.NavGraphDirections import org.mozilla.fenix.browser.browsingmode.BrowsingMode +import org.mozilla.fenix.components.SearchWidgetCreator import org.mozilla.fenix.helpers.FenixRobolectricTestRunner @RunWith(FenixRobolectricTestRunner::class) @@ -222,5 +225,16 @@ class DeepLinkIntentProcessorTest { verify { activity.startActivity(any()) } } + @Test + fun `process install_search_widget deep link`() { + mockkObject(SearchWidgetCreator) + every { SearchWidgetCreator.createSearchWidget(any()) } returns true + assertTrue(processor.process(testIntent("fenix://install_search_widget"), navController, out)) + + verify { navController wasNot Called } + verify { out wasNot Called } + verify { activity wasNot Called } + } + private fun testIntent(uri: String) = Intent("", uri.toUri()) } diff --git a/docs/mma.md b/docs/mma.md index c8e6e5b30..09a857d10 100644 --- a/docs/mma.md +++ b/docs/mma.md @@ -318,6 +318,10 @@ Here is the list of current deep links available, which can be found here in the `fenix://settings_notifications` Opens to the Android notification settings screen for Fenix. **Only works on Android API >=24** + + `fenix://install_search_widget` + Adds the search widget to the users launcher homescreen. **Only works on Android API >=26** + Messages