For #5586 - Add telemetry for save logins setting
parent
7adb5b6084
commit
c556e819bd
|
@ -114,7 +114,7 @@ events:
|
|||
description: "The preference key for the boolean (true/false) preference the user toggled. We currently track:
|
||||
show_search_suggestions, remote_debugging, telemetry, tracking_protection, search_bookmarks,
|
||||
search_browsing_history, show_clipboard_suggestions, show_search_shortcuts, open_links_in_a_private_tab (bug in implementation https://github.com/mozilla-mobile/fenix/issues/7384),
|
||||
pref_key_sync_logins, pref_key_sync_bookmarks, pref_key_sync_history
|
||||
pref_key_sync_logins, pref_key_sync_bookmarks, pref_key_sync_history,
|
||||
and pref_key_show_search_suggestions_in_private"
|
||||
enabled:
|
||||
description: "Whether or not the preference is *now* enabled"
|
||||
|
@ -1537,6 +1537,20 @@ logins:
|
|||
notification_emails:
|
||||
- fenix-core@mozilla.com
|
||||
expires: "2020-09-01"
|
||||
save_logins_setting_changed:
|
||||
type: event
|
||||
description: >
|
||||
A user changed their setting for asking to save logins
|
||||
extra_keys:
|
||||
setting:
|
||||
description: "The new setting for saving logins the user selected. Either `ask_to_save` or `never_save`"
|
||||
bugs:
|
||||
- https://github.com/mozilla-mobile/fenix/issues/5586
|
||||
data_reviews:
|
||||
- https://github.com/mozilla-mobile/fenix/pull/7767
|
||||
notification_emails:
|
||||
- fenix-core@mozilla.com
|
||||
expires: "2020-09-01"
|
||||
|
||||
download_notification:
|
||||
resume:
|
||||
|
|
|
@ -452,6 +452,10 @@ private val Event.wrapper: EventWrapper<*>?
|
|||
is Event.CustomEngineDeleted -> EventWrapper<NoExtraKeys>(
|
||||
{ UserSpecifiedSearchEngines.customEngineDeleted.record(it) }
|
||||
)
|
||||
is Event.SaveLoginsSettingChanged -> EventWrapper(
|
||||
{ Logins.saveLoginsSettingChanged.record(it) },
|
||||
{ Logins.saveLoginsSettingChangedKeys.valueOf(it) }
|
||||
)
|
||||
// Don't record other events in Glean:
|
||||
is Event.AddBookmark -> null
|
||||
is Event.OpenedBookmark -> null
|
||||
|
|
|
@ -26,6 +26,7 @@ import org.mozilla.fenix.GleanMetrics.CrashReporter
|
|||
import org.mozilla.fenix.GleanMetrics.ErrorPage
|
||||
import org.mozilla.fenix.GleanMetrics.Events
|
||||
import org.mozilla.fenix.GleanMetrics.Library
|
||||
import org.mozilla.fenix.GleanMetrics.Logins
|
||||
import org.mozilla.fenix.GleanMetrics.SearchShortcuts
|
||||
import org.mozilla.fenix.GleanMetrics.ToolbarSettings
|
||||
import org.mozilla.fenix.GleanMetrics.TrackingProtection
|
||||
|
@ -189,6 +190,13 @@ sealed class Event {
|
|||
get() = hashMapOf(TrackingProtection.etpSettingChangedKeys.etpSetting to setting.name)
|
||||
}
|
||||
|
||||
data class SaveLoginsSettingChanged(val setting: Setting) : Event() {
|
||||
enum class Setting { NEVER_SAVE, ASK_TO_SAVE }
|
||||
|
||||
override val extras: Map<Logins.saveLoginsSettingChangedKeys, String>?
|
||||
get() = hashMapOf(Logins.saveLoginsSettingChangedKeys.setting to setting.name)
|
||||
}
|
||||
|
||||
data class OpenedApp(val source: Source) : Event() {
|
||||
enum class Source { APP_ICON, LINK, CUSTOM_TAB }
|
||||
override val extras: Map<Events.appOpenedKeys, String>?
|
||||
|
|
|
@ -5,10 +5,14 @@
|
|||
package org.mozilla.fenix.settings.logins
|
||||
|
||||
import android.os.Bundle
|
||||
import androidx.preference.Preference
|
||||
import androidx.preference.PreferenceFragmentCompat
|
||||
import org.mozilla.fenix.R
|
||||
import org.mozilla.fenix.components.metrics.Event
|
||||
import org.mozilla.fenix.ext.metrics
|
||||
import org.mozilla.fenix.ext.showToolbar
|
||||
import org.mozilla.fenix.settings.RadioButtonPreference
|
||||
import org.mozilla.fenix.settings.SharedPreferenceUpdater
|
||||
|
||||
class SaveLoginSettingFragment : PreferenceFragmentCompat() {
|
||||
override fun onCreatePreferences(savedInstanceState: Bundle?, rootKey: String?) {
|
||||
|
@ -24,13 +28,39 @@ class SaveLoginSettingFragment : PreferenceFragmentCompat() {
|
|||
}
|
||||
|
||||
private fun bindSave(): RadioButtonPreference {
|
||||
val keyStrict = getString(R.string.pref_key_save_logins)
|
||||
return requireNotNull(findPreference(keyStrict))
|
||||
val keySave = getString(R.string.pref_key_save_logins)
|
||||
val preferenceSave = findPreference<RadioButtonPreference>(keySave)
|
||||
preferenceSave?.onPreferenceChangeListener = object : SharedPreferenceUpdater() {
|
||||
override fun onPreferenceChange(preference: Preference, newValue: Any?): Boolean {
|
||||
if (newValue == true) {
|
||||
context?.metrics?.track(
|
||||
Event.SaveLoginsSettingChanged(
|
||||
Event.SaveLoginsSettingChanged.Setting.ASK_TO_SAVE
|
||||
)
|
||||
)
|
||||
}
|
||||
return super.onPreferenceChange(preference, newValue)
|
||||
}
|
||||
}
|
||||
return requireNotNull(preferenceSave)
|
||||
}
|
||||
|
||||
private fun bindNeverSave(): RadioButtonPreference {
|
||||
val keyStandard = getString(R.string.pref_key_never_save_logins)
|
||||
return requireNotNull(findPreference(keyStandard))
|
||||
val keyNeverSave = getString(R.string.pref_key_never_save_logins)
|
||||
val preferenceNeverSave = findPreference<RadioButtonPreference>(keyNeverSave)
|
||||
preferenceNeverSave?.onPreferenceChangeListener = object : SharedPreferenceUpdater() {
|
||||
override fun onPreferenceChange(preference: Preference, newValue: Any?): Boolean {
|
||||
if (newValue == true) {
|
||||
context?.metrics?.track(
|
||||
Event.SaveLoginsSettingChanged(
|
||||
Event.SaveLoginsSettingChanged.Setting.NEVER_SAVE
|
||||
)
|
||||
)
|
||||
}
|
||||
return super.onPreferenceChange(preference, newValue)
|
||||
}
|
||||
}
|
||||
return requireNotNull(preferenceNeverSave)
|
||||
}
|
||||
|
||||
private fun setupRadioGroups(
|
||||
|
|
File diff suppressed because one or more lines are too long
Loading…
Reference in New Issue