diff --git a/app/src/main/java/org/mozilla/fenix/SearchWidgetProvider.kt b/app/src/main/java/org/mozilla/fenix/SearchWidgetProvider.kt index 62c436e7e..001a79101 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 a3d6528b8..07bd2f4bc 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 69f1191e1..a1c027301 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 b8b665d5b..74af3953a 100644 --- a/app/src/main/res/values/preference_keys.xml +++ b/app/src/main/res/values/preference_keys.xml @@ -49,6 +49,7 @@ project_id pref_key_fxa_signed_in pref_key_fxa_has_synced_items + pref_key_search_widget_installed pref_key_show_search_suggestions diff --git a/docs/mma.md b/docs/mma.md index 9be3fa71a..fe93f8d3b 100644 --- a/docs/mma.md +++ b/docs/mma.md @@ -139,6 +139,11 @@ User Attributes A boolean indicating that the user has opted to sync at least one category of items with FxA #4568 + + `search_widget_installed` + A boolean indicating that the user has at least one search widget placed on the home screen + #4694 + Events