diff --git a/app/src/main/java/org/mozilla/fenix/SearchWidgetProvider.kt b/app/src/main/java/org/mozilla/fenix/SearchWidgetProvider.kt
index 62c436e7e6..001a791014 100644
--- a/app/src/main/java/org/mozilla/fenix/SearchWidgetProvider.kt
+++ b/app/src/main/java/org/mozilla/fenix/SearchWidgetProvider.kt
@@ -12,9 +12,18 @@ import android.content.Context
import android.content.Intent
import android.os.Bundle
import android.widget.RemoteViews
+import org.mozilla.fenix.utils.Settings
class SearchWidgetProvider : AppWidgetProvider() {
+ override fun onEnabled(context: Context) {
+ Settings.instance?.addSearchWidgetInstalled(1)
+ }
+
+ override fun onDeleted(context: Context, appWidgetIds: IntArray) {
+ Settings.instance?.addSearchWidgetInstalled(-appWidgetIds.size)
+ }
+
override fun onUpdate(context: Context, appWidgetManager: AppWidgetManager, appWidgetIds: IntArray) {
val textSearchIntent = createTextSearchIntent(context)
val voiceSearchIntent = createVoiceSearchIntent(context)
diff --git a/app/src/main/java/org/mozilla/fenix/components/metrics/LeanplumMetricsService.kt b/app/src/main/java/org/mozilla/fenix/components/metrics/LeanplumMetricsService.kt
index a3d6528b82..07bd2f4bc2 100644
--- a/app/src/main/java/org/mozilla/fenix/components/metrics/LeanplumMetricsService.kt
+++ b/app/src/main/java/org/mozilla/fenix/components/metrics/LeanplumMetricsService.kt
@@ -73,7 +73,8 @@ class LeanplumMetricsService(private val application: Application) : MetricsServ
"focus_installed" to installedApps.contains(MozillaProductDetector.MozillaProducts.FOCUS.productName),
"klar_installed" to installedApps.contains(MozillaProductDetector.MozillaProducts.KLAR.productName),
"fxa_signed_in" to (Settings.instance?.fxaSignedIn ?: false),
- "fxa_has_synced_items" to (Settings.instance?.fxaHasSyncedItems ?: false)
+ "fxa_has_synced_items" to (Settings.instance?.fxaHasSyncedItems ?: false),
+ "search_widget_installed" to (Settings.instance?.searchWidgetInstalled ?: false)
))
}
diff --git a/app/src/main/java/org/mozilla/fenix/utils/Settings.kt b/app/src/main/java/org/mozilla/fenix/utils/Settings.kt
index 69f1191e1c..a1c027301a 100644
--- a/app/src/main/java/org/mozilla/fenix/utils/Settings.kt
+++ b/app/src/main/java/org/mozilla/fenix/utils/Settings.kt
@@ -257,6 +257,19 @@ class Settings private constructor(
appContext.getPreferenceKey(R.string.pref_key_fxa_has_synced_items), true
)
+ fun addSearchWidgetInstalled(count: Int) {
+ val key = appContext.getPreferenceKey(R.string.pref_key_search_widget_installed)
+ val newValue = preferences.getInt(key, 0) + count
+ preferences.edit()
+ .putInt(key, newValue)
+ .apply()
+ }
+
+ val searchWidgetInstalled: Boolean
+ get() = 0 < preferences.getInt(
+ appContext.getPreferenceKey(R.string.pref_key_search_widget_installed), 0
+ )
+
private val SitePermissionsRules.Action.id: Int
get() {
return when (this) {
diff --git a/app/src/main/res/values/preference_keys.xml b/app/src/main/res/values/preference_keys.xml
index b8b665d5be..74af3953ae 100644
--- a/app/src/main/res/values/preference_keys.xml
+++ b/app/src/main/res/values/preference_keys.xml
@@ -49,6 +49,7 @@