For #1190: Adds additional telemetry for FxA login
This commit is contained in:
parent
62bed0cd06
commit
9aa4f48e77
|
@ -746,11 +746,11 @@ error_page:
|
||||||
- fenix-core@mozilla.com
|
- fenix-core@mozilla.com
|
||||||
expires: "2020-03-01"
|
expires: "2020-03-01"
|
||||||
|
|
||||||
sync:
|
sync_auth:
|
||||||
opened:
|
opened:
|
||||||
type: event
|
type: event
|
||||||
description: >
|
description: >
|
||||||
A user opened the sync page
|
A user opened the sync authentication page
|
||||||
bugs:
|
bugs:
|
||||||
- 1190
|
- 1190
|
||||||
data_reviews:
|
data_reviews:
|
||||||
|
@ -772,7 +772,7 @@ sync:
|
||||||
sign_in:
|
sign_in:
|
||||||
type: event
|
type: event
|
||||||
description: >
|
description: >
|
||||||
A user pressed the sign in button on the sync page
|
A user pressed the sign in button on the sync authentication page
|
||||||
bugs:
|
bugs:
|
||||||
- 1190
|
- 1190
|
||||||
data_reviews:
|
data_reviews:
|
||||||
|
@ -783,7 +783,7 @@ sync:
|
||||||
scan_pairing:
|
scan_pairing:
|
||||||
type: event
|
type: event
|
||||||
description: >
|
description: >
|
||||||
A user pressed the scan pairing button on the sync page
|
A user pressed the scan pairing button on the sync authentication page
|
||||||
bugs:
|
bugs:
|
||||||
- 1190
|
- 1190
|
||||||
data_reviews:
|
data_reviews:
|
||||||
|
@ -794,7 +794,31 @@ sync:
|
||||||
create_account:
|
create_account:
|
||||||
type: event
|
type: event
|
||||||
description: >
|
description: >
|
||||||
A user pressed the create account button on the sync page
|
A user pressed the create account button on the sync authentication page
|
||||||
|
bugs:
|
||||||
|
- 1190
|
||||||
|
data_reviews:
|
||||||
|
- https://github.com/mozilla-mobile/fenix/pull/2745#issuecomment-494918532
|
||||||
|
notification_emails:
|
||||||
|
- fenix-core@mozilla.com
|
||||||
|
expires: "2020-03-01"
|
||||||
|
|
||||||
|
sync_account:
|
||||||
|
opened:
|
||||||
|
type: event
|
||||||
|
description: >
|
||||||
|
A user opened the sync account page
|
||||||
|
bugs:
|
||||||
|
- 1190
|
||||||
|
data_reviews:
|
||||||
|
- https://github.com/mozilla-mobile/fenix/pull/2745#issuecomment-494918532
|
||||||
|
notification_emails:
|
||||||
|
- fenix-core@mozilla.com
|
||||||
|
expires: "2020-03-01"
|
||||||
|
closed:
|
||||||
|
type: event
|
||||||
|
description: >
|
||||||
|
A user closed the sync account page
|
||||||
bugs:
|
bugs:
|
||||||
- 1190
|
- 1190
|
||||||
data_reviews:
|
data_reviews:
|
||||||
|
@ -805,7 +829,7 @@ sync:
|
||||||
sync_now:
|
sync_now:
|
||||||
type: event
|
type: event
|
||||||
description: >
|
description: >
|
||||||
A user pressed the sync now button on the sync page
|
A user pressed the sync now button on the sync account page
|
||||||
bugs:
|
bugs:
|
||||||
- 1190
|
- 1190
|
||||||
data_reviews:
|
data_reviews:
|
||||||
|
@ -816,7 +840,7 @@ sync:
|
||||||
sign_out:
|
sign_out:
|
||||||
type: event
|
type: event
|
||||||
description: >
|
description: >
|
||||||
A user pressed the sign out button on the sync page
|
A user pressed the sign out button on the sync account page
|
||||||
bugs:
|
bugs:
|
||||||
- 1190
|
- 1190
|
||||||
data_reviews:
|
data_reviews:
|
||||||
|
|
|
@ -26,7 +26,8 @@ import kotlinx.coroutines.runBlocking
|
||||||
import org.mozilla.fenix.GleanMetrics.QrScanner
|
import org.mozilla.fenix.GleanMetrics.QrScanner
|
||||||
import org.mozilla.fenix.GleanMetrics.Library
|
import org.mozilla.fenix.GleanMetrics.Library
|
||||||
import org.mozilla.fenix.GleanMetrics.ErrorPage
|
import org.mozilla.fenix.GleanMetrics.ErrorPage
|
||||||
import org.mozilla.fenix.GleanMetrics.Sync
|
import org.mozilla.fenix.GleanMetrics.SyncAccount
|
||||||
|
import org.mozilla.fenix.GleanMetrics.SyncAuth
|
||||||
import org.mozilla.fenix.R
|
import org.mozilla.fenix.R
|
||||||
import org.mozilla.fenix.ext.getPreferenceKey
|
import org.mozilla.fenix.ext.getPreferenceKey
|
||||||
import org.mozilla.fenix.utils.Settings
|
import org.mozilla.fenix.utils.Settings
|
||||||
|
@ -192,26 +193,32 @@ private val Event.wrapper
|
||||||
{ ErrorPage.visitedError },
|
{ ErrorPage.visitedError },
|
||||||
{ ErrorPage.visitedErrorKeys.valueOf(it) }
|
{ ErrorPage.visitedErrorKeys.valueOf(it) }
|
||||||
)
|
)
|
||||||
is Event.SyncOpened -> EventWrapper<NoExtraKeys>(
|
is Event.SyncAuthOpened -> EventWrapper<NoExtraKeys>(
|
||||||
{ Sync.opened.record(it) }
|
{ SyncAuth.opened.record(it) }
|
||||||
)
|
)
|
||||||
is Event.SyncClosed -> EventWrapper<NoExtraKeys>(
|
is Event.SyncAuthClosed -> EventWrapper<NoExtraKeys>(
|
||||||
{ Sync.closed.record(it) }
|
{ SyncAuth.closed.record(it) }
|
||||||
)
|
)
|
||||||
is Event.SyncSignIn -> EventWrapper<NoExtraKeys>(
|
is Event.SyncAuthSignIn -> EventWrapper<NoExtraKeys>(
|
||||||
{ Sync.signIn.record(it) }
|
{ SyncAuth.signIn.record(it) }
|
||||||
)
|
)
|
||||||
is Event.SyncScanPairing -> EventWrapper<NoExtraKeys>(
|
is Event.SyncAuthScanPairing -> EventWrapper<NoExtraKeys>(
|
||||||
{ Sync.scanPairing.record(it) }
|
{ SyncAuth.scanPairing.record(it) }
|
||||||
)
|
)
|
||||||
is Event.SyncCreateAccount -> EventWrapper<NoExtraKeys>(
|
is Event.SyncAuthCreateAccount -> EventWrapper<NoExtraKeys>(
|
||||||
{ Sync.createAccount.record(it) }
|
{ SyncAuth.createAccount.record(it) }
|
||||||
)
|
)
|
||||||
is Event.SyncSyncNow -> EventWrapper<NoExtraKeys>(
|
is Event.SyncAccountOpened -> EventWrapper<NoExtraKeys>(
|
||||||
{ Sync.syncNow.record(it) }
|
{ SyncAccount.opened.record(it) }
|
||||||
)
|
)
|
||||||
is Event.SyncSignOut -> EventWrapper<NoExtraKeys>(
|
is Event.SyncAccountClosed -> EventWrapper<NoExtraKeys>(
|
||||||
{ Sync.signOut.record(it) }
|
{ SyncAccount.closed.record(it) }
|
||||||
|
)
|
||||||
|
is Event.SyncAccountSyncNow -> EventWrapper<NoExtraKeys>(
|
||||||
|
{ SyncAccount.syncNow.record(it) }
|
||||||
|
)
|
||||||
|
is Event.SyncAccountSignOut -> EventWrapper<NoExtraKeys>(
|
||||||
|
{ SyncAccount.signOut.record(it) }
|
||||||
)
|
)
|
||||||
|
|
||||||
// Don't track other events with Glean
|
// Don't track other events with Glean
|
||||||
|
|
|
@ -81,13 +81,15 @@ sealed class Event {
|
||||||
object QRScannerNavigationDenied : Event()
|
object QRScannerNavigationDenied : Event()
|
||||||
object LibraryOpened : Event()
|
object LibraryOpened : Event()
|
||||||
object LibraryClosed : Event()
|
object LibraryClosed : Event()
|
||||||
object SyncOpened : Event()
|
object SyncAuthOpened : Event()
|
||||||
object SyncClosed : Event()
|
object SyncAuthClosed : Event()
|
||||||
object SyncSignIn : Event()
|
object SyncAuthSignIn : Event()
|
||||||
object SyncScanPairing : Event()
|
object SyncAuthScanPairing : Event()
|
||||||
object SyncCreateAccount : Event()
|
object SyncAuthCreateAccount : Event()
|
||||||
object SyncSyncNow : Event()
|
object SyncAccountOpened : Event()
|
||||||
object SyncSignOut : Event()
|
object SyncAccountClosed : Event()
|
||||||
|
object SyncAccountSyncNow : Event()
|
||||||
|
object SyncAccountSignOut : Event()
|
||||||
|
|
||||||
data class PreferenceToggled(val preferenceKey: String, val enabled: Boolean, val context: Context) : Event() {
|
data class PreferenceToggled(val preferenceKey: String, val enabled: Boolean, val context: Context) : Event() {
|
||||||
private val switchPreferenceTelemetryAllowList = listOf(
|
private val switchPreferenceTelemetryAllowList = listOf(
|
||||||
|
|
|
@ -45,11 +45,13 @@ class AccountSettingsFragment : PreferenceFragmentCompat(), CoroutineScope {
|
||||||
job = Job()
|
job = Job()
|
||||||
(activity as AppCompatActivity).title = getString(R.string.preferences_account_settings)
|
(activity as AppCompatActivity).title = getString(R.string.preferences_account_settings)
|
||||||
(activity as AppCompatActivity).supportActionBar?.show()
|
(activity as AppCompatActivity).supportActionBar?.show()
|
||||||
|
requireComponents.analytics.metrics.track(Event.SyncAccountOpened)
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun onDestroy() {
|
override fun onDestroy() {
|
||||||
super.onDestroy()
|
super.onDestroy()
|
||||||
job.cancel()
|
job.cancel()
|
||||||
|
requireComponents.analytics.metrics.track(Event.SyncAccountClosed)
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun onCreatePreferences(savedInstanceState: Bundle?, rootKey: String?) {
|
override fun onCreatePreferences(savedInstanceState: Bundle?, rootKey: String?) {
|
||||||
|
@ -97,7 +99,7 @@ class AccountSettingsFragment : PreferenceFragmentCompat(), CoroutineScope {
|
||||||
|
|
||||||
private fun getClickListenerForSignOut(): Preference.OnPreferenceClickListener {
|
private fun getClickListenerForSignOut(): Preference.OnPreferenceClickListener {
|
||||||
return Preference.OnPreferenceClickListener {
|
return Preference.OnPreferenceClickListener {
|
||||||
requireComponents.analytics.metrics.track(Event.SyncSignOut)
|
requireComponents.analytics.metrics.track(Event.SyncAccountSignOut)
|
||||||
launch {
|
launch {
|
||||||
accountManager.logoutAsync().await()
|
accountManager.logoutAsync().await()
|
||||||
Navigation.findNavController(view!!).popBackStack()
|
Navigation.findNavController(view!!).popBackStack()
|
||||||
|
@ -109,7 +111,7 @@ class AccountSettingsFragment : PreferenceFragmentCompat(), CoroutineScope {
|
||||||
private fun getClickListenerForSyncNow(): Preference.OnPreferenceClickListener {
|
private fun getClickListenerForSyncNow(): Preference.OnPreferenceClickListener {
|
||||||
return Preference.OnPreferenceClickListener {
|
return Preference.OnPreferenceClickListener {
|
||||||
// Trigger a sync.
|
// Trigger a sync.
|
||||||
requireComponents.analytics.metrics.track(Event.SyncSyncNow)
|
requireComponents.analytics.metrics.track(Event.SyncAccountSyncNow)
|
||||||
requireComponents.backgroundServices.syncManager.syncNow()
|
requireComponents.backgroundServices.syncManager.syncNow()
|
||||||
// Poll for device events.
|
// Poll for device events.
|
||||||
launch {
|
launch {
|
||||||
|
@ -183,7 +185,6 @@ class AccountSettingsFragment : PreferenceFragmentCompat(), CoroutineScope {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
private val deviceConstellationObserver = object : DeviceConstellationObserver {
|
private val deviceConstellationObserver = object : DeviceConstellationObserver {
|
||||||
override fun onDevicesUpdate(constellation: ConstellationState) {
|
override fun onDevicesUpdate(constellation: ConstellationState) {
|
||||||
val deviceNameKey = context!!.getPreferenceKey(R.string.pref_key_sync_device_name)
|
val deviceNameKey = context!!.getPreferenceKey(R.string.pref_key_sync_device_name)
|
||||||
|
|
|
@ -203,7 +203,6 @@ class SettingsFragment : PreferenceFragmentCompat(), CoroutineScope, AccountObse
|
||||||
|
|
||||||
private fun getClickListenerForSignIn(): OnPreferenceClickListener {
|
private fun getClickListenerForSignIn(): OnPreferenceClickListener {
|
||||||
return OnPreferenceClickListener {
|
return OnPreferenceClickListener {
|
||||||
requireComponents.analytics.metrics.track(Event.SyncOpened)
|
|
||||||
val directions = SettingsFragmentDirections.actionSettingsFragmentToTurnOnSyncFragment()
|
val directions = SettingsFragmentDirections.actionSettingsFragmentToTurnOnSyncFragment()
|
||||||
Navigation.findNavController(view!!).navigate(directions)
|
Navigation.findNavController(view!!).navigate(directions)
|
||||||
true
|
true
|
||||||
|
|
|
@ -20,12 +20,12 @@ class TurnOnSyncFragment : PreferenceFragmentCompat() {
|
||||||
|
|
||||||
override fun onCreate(savedInstanceState: Bundle?) {
|
override fun onCreate(savedInstanceState: Bundle?) {
|
||||||
super.onCreate(savedInstanceState)
|
super.onCreate(savedInstanceState)
|
||||||
requireComponents.analytics.metrics.track(Event.SyncOpened)
|
requireComponents.analytics.metrics.track(Event.SyncAuthOpened)
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun onDestroy() {
|
override fun onDestroy() {
|
||||||
super.onDestroy()
|
super.onDestroy()
|
||||||
requireComponents.analytics.metrics.track(Event.SyncClosed)
|
requireComponents.analytics.metrics.track(Event.SyncAuthClosed)
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun onResume() {
|
override fun onResume() {
|
||||||
|
@ -56,7 +56,7 @@ class TurnOnSyncFragment : PreferenceFragmentCompat() {
|
||||||
// session history stack.
|
// session history stack.
|
||||||
// We could auto-close this tab once we get to the end of the authentication process?
|
// We could auto-close this tab once we get to the end of the authentication process?
|
||||||
// Via an interceptor, perhaps.
|
// Via an interceptor, perhaps.
|
||||||
requireComponents.analytics.metrics.track(Event.SyncSignIn)
|
requireComponents.analytics.metrics.track(Event.SyncAuthSignIn)
|
||||||
view?.let {
|
view?.let {
|
||||||
(activity as HomeActivity).openToBrowser(BrowserDirection.FromTurnOnSync)
|
(activity as HomeActivity).openToBrowser(BrowserDirection.FromTurnOnSync)
|
||||||
}
|
}
|
||||||
|
@ -68,7 +68,7 @@ class TurnOnSyncFragment : PreferenceFragmentCompat() {
|
||||||
// Currently the same as sign in, as FxA handles this, however we want to emit a different telemetry event
|
// Currently the same as sign in, as FxA handles this, however we want to emit a different telemetry event
|
||||||
return Preference.OnPreferenceClickListener {
|
return Preference.OnPreferenceClickListener {
|
||||||
requireComponents.services.accountsAuthFeature.beginAuthentication()
|
requireComponents.services.accountsAuthFeature.beginAuthentication()
|
||||||
requireComponents.analytics.metrics.track(Event.SyncCreateAccount)
|
requireComponents.analytics.metrics.track(Event.SyncAuthCreateAccount)
|
||||||
view?.let {
|
view?.let {
|
||||||
(activity as HomeActivity).openToBrowser(BrowserDirection.FromTurnOnSync)
|
(activity as HomeActivity).openToBrowser(BrowserDirection.FromTurnOnSync)
|
||||||
}
|
}
|
||||||
|
@ -80,7 +80,7 @@ class TurnOnSyncFragment : PreferenceFragmentCompat() {
|
||||||
return Preference.OnPreferenceClickListener {
|
return Preference.OnPreferenceClickListener {
|
||||||
val directions = TurnOnSyncFragmentDirections.actionTurnOnSyncFragmentToPairInstructionsFragment()
|
val directions = TurnOnSyncFragmentDirections.actionTurnOnSyncFragmentToPairInstructionsFragment()
|
||||||
Navigation.findNavController(view!!).navigate(directions)
|
Navigation.findNavController(view!!).navigate(directions)
|
||||||
requireComponents.analytics.metrics.track(Event.SyncScanPairing)
|
requireComponents.analytics.metrics.track(Event.SyncAuthScanPairing)
|
||||||
|
|
||||||
true
|
true
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue
Block a user