From 5dc7fef9875ef1ba32eca12670fc92575f0bd2bb Mon Sep 17 00:00:00 2001 From: Mudsir Wazir Date: Sun, 13 Sep 2026 18:27:41 +0500 Subject: [PATCH] feat: Add Firefox Beta and Nightly search providers (#7280) Add QSB search provider entries for Firefox Beta (org.mozilla.firefox_beta) and Firefox Nightly (org.mozilla.fenix) so they can be selected in the search bar configuration, matching existing Firefox-family providers. Closes #6439 Co-authored-by: wized2 --- lawnchair/res/values/strings.xml | 2 ++ .../lawnchair/qsb/providers/FirefoxBeta.kt | 24 +++++++++++++++++++ .../lawnchair/qsb/providers/FirefoxNightly.kt | 24 +++++++++++++++++++ .../qsb/providers/QsbSearchProvider.kt | 2 ++ 4 files changed, 52 insertions(+) create mode 100644 lawnchair/src/app/lawnchair/qsb/providers/FirefoxBeta.kt create mode 100644 lawnchair/src/app/lawnchair/qsb/providers/FirefoxNightly.kt diff --git a/lawnchair/res/values/strings.xml b/lawnchair/res/values/strings.xml index 69d916f609..351f3212ec 100644 --- a/lawnchair/res/values/strings.xml +++ b/lawnchair/res/values/strings.xml @@ -842,6 +842,8 @@ Yandex Fennec Firefox + Firefox Beta + Firefox Nightly Iceraven IronFox Waterfox diff --git a/lawnchair/src/app/lawnchair/qsb/providers/FirefoxBeta.kt b/lawnchair/src/app/lawnchair/qsb/providers/FirefoxBeta.kt new file mode 100644 index 0000000000..97073dc168 --- /dev/null +++ b/lawnchair/src/app/lawnchair/qsb/providers/FirefoxBeta.kt @@ -0,0 +1,24 @@ +package app.lawnchair.qsb.providers + +import android.content.Intent +import app.lawnchair.qsb.ThemingMethod +import com.android.launcher3.R + +data object FirefoxBeta : QsbSearchProvider( + id = "FirefoxBeta", + name = R.string.search_provider_firefox_beta, + icon = R.drawable.ic_firefox, + themedIcon = R.drawable.ic_firefox_tinted, + themingMethod = ThemingMethod.TINT, + packageName = "org.mozilla.firefox_beta", + action = "org.mozilla.fenix.OPEN_TAB", + className = "org.mozilla.fenix.IntentReceiverActivity", + website = "https://play.google.com/store/apps/details?id=org.mozilla.firefox_beta", + type = QsbSearchProviderType.APP, + supportVoiceIntent = false, +) { + + override fun handleCreateVoiceIntent(): Intent = Intent(action) + .addFlags(INTENT_FLAGS) + .setClassName(packageName, "org.chromium.chrome.browser.VoiceSearchActivity") +} diff --git a/lawnchair/src/app/lawnchair/qsb/providers/FirefoxNightly.kt b/lawnchair/src/app/lawnchair/qsb/providers/FirefoxNightly.kt new file mode 100644 index 0000000000..97f00b62e4 --- /dev/null +++ b/lawnchair/src/app/lawnchair/qsb/providers/FirefoxNightly.kt @@ -0,0 +1,24 @@ +package app.lawnchair.qsb.providers + +import android.content.Intent +import app.lawnchair.qsb.ThemingMethod +import com.android.launcher3.R + +data object FirefoxNightly : QsbSearchProvider( + id = "FirefoxNightly", + name = R.string.search_provider_firefox_nightly, + icon = R.drawable.ic_firefox, + themedIcon = R.drawable.ic_firefox_tinted, + themingMethod = ThemingMethod.TINT, + packageName = "org.mozilla.fenix", + action = "org.mozilla.fenix.OPEN_TAB", + className = "org.mozilla.fenix.IntentReceiverActivity", + website = "https://play.google.com/store/apps/details?id=org.mozilla.fenix", + type = QsbSearchProviderType.APP, + supportVoiceIntent = false, +) { + + override fun handleCreateVoiceIntent(): Intent = Intent(action) + .addFlags(INTENT_FLAGS) + .setClassName(packageName, "org.chromium.chrome.browser.VoiceSearchActivity") +} diff --git a/lawnchair/src/app/lawnchair/qsb/providers/QsbSearchProvider.kt b/lawnchair/src/app/lawnchair/qsb/providers/QsbSearchProvider.kt index 00d14db7cf..d6a81bf516 100644 --- a/lawnchair/src/app/lawnchair/qsb/providers/QsbSearchProvider.kt +++ b/lawnchair/src/app/lawnchair/qsb/providers/QsbSearchProvider.kt @@ -135,6 +135,8 @@ sealed class QsbSearchProvider( Yandex, Fennec, Firefox, + FirefoxBeta, + FirefoxNightly, Iceraven, Startpage, StartpageEU,