parent
e544827e83
commit
13198f56df
111
app/metrics.yaml
111
app/metrics.yaml
|
@ -940,4 +940,115 @@ reader_mode:
|
|||
- https://github.com/mozilla-mobile/fenix/pull/3941
|
||||
notification_emails:
|
||||
- fenix-core@mozilla.com
|
||||
expires: "2020-03-01"
|
||||
|
||||
collections:
|
||||
renamed:
|
||||
type: event
|
||||
description: >
|
||||
A user renamed a collection
|
||||
bugs:
|
||||
- 969
|
||||
data_reviews:
|
||||
- https://github.com/mozilla-mobile/fenix/pull/3935
|
||||
notification_emails:
|
||||
- fenix-core@mozilla.com
|
||||
expires: "2020-03-01"
|
||||
tab_restored:
|
||||
type: event
|
||||
description: >
|
||||
A user restored a tab from collection tab list
|
||||
bugs:
|
||||
- 969
|
||||
data_reviews:
|
||||
- https://github.com/mozilla-mobile/fenix/pull/3935
|
||||
notification_emails:
|
||||
- fenix-core@mozilla.com
|
||||
expires: "2020-03-01"
|
||||
all_tabs_restored:
|
||||
type: event
|
||||
description: >
|
||||
A user tapped "open tabs" from collection menu
|
||||
bugs:
|
||||
- 969
|
||||
data_reviews:
|
||||
- https://github.com/mozilla-mobile/fenix/pull/3935
|
||||
notification_emails:
|
||||
- fenix-core@mozilla.com
|
||||
expires: "2020-03-01"
|
||||
tab_removed:
|
||||
type: event
|
||||
description: >
|
||||
A user tapped remove tab from collection tab list
|
||||
bugs:
|
||||
- 969
|
||||
data_reviews:
|
||||
- https://github.com/mozilla-mobile/fenix/pull/3935
|
||||
notification_emails:
|
||||
- fenix-core@mozilla.com
|
||||
expires: "2020-03-01"
|
||||
shared:
|
||||
type: event
|
||||
description: >
|
||||
A user tapped share collection
|
||||
bugs:
|
||||
- 969
|
||||
data_reviews:
|
||||
- https://github.com/mozilla-mobile/fenix/pull/3935
|
||||
notification_emails:
|
||||
- fenix-core@mozilla.com
|
||||
expires: "2020-03-01"
|
||||
removed:
|
||||
type: event
|
||||
description: >
|
||||
A user tapped delete collection from collection menu
|
||||
bugs:
|
||||
- 969
|
||||
data_reviews:
|
||||
- https://github.com/mozilla-mobile/fenix/pull/3935
|
||||
notification_emails:
|
||||
- fenix-core@mozilla.com
|
||||
expires: "2020-03-01"
|
||||
saved:
|
||||
type: event
|
||||
description: >
|
||||
A user saved a list of tabs to a new collection
|
||||
extra_keys:
|
||||
tabs_open:
|
||||
description: "The number of tabs open in the current session"
|
||||
tabs_selected:
|
||||
description: "The number of tabs added to the collection"
|
||||
bugs:
|
||||
- 969
|
||||
data_reviews:
|
||||
- https://github.com/mozilla-mobile/fenix/pull/3935
|
||||
notification_emails:
|
||||
- fenix-core@mozilla.com
|
||||
expires: "2020-03-01"
|
||||
tabs_added:
|
||||
type: event
|
||||
description: >
|
||||
A user saved a list of tabs to an existing collection
|
||||
extra_keys:
|
||||
tabs_open:
|
||||
description: "The number of tabs open in the current session"
|
||||
tabs_selected:
|
||||
description: "The number of tabs added to the collection"
|
||||
bugs:
|
||||
- 969
|
||||
data_reviews:
|
||||
- https://github.com/mozilla-mobile/fenix/pull/3935
|
||||
notification_emails:
|
||||
- fenix-core@mozilla.com
|
||||
expires: "2020-03-01"
|
||||
tab_select_opened:
|
||||
type: event
|
||||
description: >
|
||||
A user opened the select tabs screen (the first step of the collection creation flow)
|
||||
bugs:
|
||||
- 969
|
||||
data_reviews:
|
||||
- https://github.com/mozilla-mobile/fenix/pull/3935
|
||||
notification_emails:
|
||||
- fenix-core@mozilla.com
|
||||
expires: "2020-03-01"
|
|
@ -29,6 +29,8 @@ import kotlinx.coroutines.Job
|
|||
import mozilla.components.support.ktx.android.view.hideKeyboard
|
||||
import mozilla.components.support.ktx.android.view.showKeyboard
|
||||
import org.mozilla.fenix.R
|
||||
import org.mozilla.fenix.components.metrics.Event
|
||||
import org.mozilla.fenix.ext.components
|
||||
import org.mozilla.fenix.ext.increaseTapArea
|
||||
import org.mozilla.fenix.ext.urlToTrimmedHost
|
||||
import org.mozilla.fenix.home.sessioncontrol.Tab
|
||||
|
@ -124,6 +126,8 @@ class CollectionCreationUIView(
|
|||
|
||||
when (it.saveCollectionStep) {
|
||||
is SaveCollectionStep.SelectTabs -> {
|
||||
view.context.components.analytics.metrics.track(Event.CollectionTabSelectOpened)
|
||||
|
||||
view.tab_list.isClickable = true
|
||||
|
||||
back_button.setOnClickListener {
|
||||
|
|
|
@ -17,6 +17,7 @@ import kotlinx.coroutines.Dispatchers
|
|||
import kotlinx.coroutines.launch
|
||||
import org.mozilla.fenix.FenixViewModelProvider
|
||||
import org.mozilla.fenix.R
|
||||
import org.mozilla.fenix.components.metrics.Event
|
||||
import org.mozilla.fenix.ext.components
|
||||
import org.mozilla.fenix.ext.requireComponents
|
||||
import org.mozilla.fenix.home.sessioncontrol.Tab
|
||||
|
@ -122,6 +123,11 @@ class CreateCollectionFragment : DialogFragment() {
|
|||
viewLifecycleOwner.lifecycleScope.launch(Dispatchers.IO) {
|
||||
context.components.core.tabCollectionStorage.createCollection(it.name, sessionBundle)
|
||||
}
|
||||
|
||||
context.components.analytics.metrics.track(
|
||||
Event.CollectionSaved(context.components.core.sessionManager.size, sessionBundle.size)
|
||||
)
|
||||
|
||||
closeTabsIfNecessary(it.tabs)
|
||||
}
|
||||
}
|
||||
|
@ -133,6 +139,11 @@ class CreateCollectionFragment : DialogFragment() {
|
|||
context.components.core.tabCollectionStorage
|
||||
.addTabsToCollection(it.collection, sessionBundle)
|
||||
}
|
||||
|
||||
context.components.analytics.metrics.track(
|
||||
Event.CollectionTabsAdded(context.components.core.sessionManager.size, sessionBundle.size)
|
||||
)
|
||||
|
||||
closeTabsIfNecessary(it.tabs)
|
||||
}
|
||||
}
|
||||
|
@ -140,6 +151,7 @@ class CreateCollectionFragment : DialogFragment() {
|
|||
dismiss()
|
||||
viewLifecycleOwner.lifecycleScope.launch(Dispatchers.IO) {
|
||||
requireComponents.core.tabCollectionStorage.renameCollection(it.collection, it.name)
|
||||
requireComponents.analytics.metrics.track(Event.CollectionRenamed)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -29,9 +29,10 @@ import org.mozilla.fenix.GleanMetrics.Pings
|
|||
import org.mozilla.fenix.GleanMetrics.QrScanner
|
||||
import org.mozilla.fenix.GleanMetrics.QuickActionSheet
|
||||
import org.mozilla.fenix.GleanMetrics.SearchDefaultEngine
|
||||
import org.mozilla.fenix.ext.components
|
||||
import org.mozilla.fenix.GleanMetrics.Collections
|
||||
import org.mozilla.fenix.GleanMetrics.SyncAccount
|
||||
import org.mozilla.fenix.GleanMetrics.SyncAuth
|
||||
import org.mozilla.fenix.ext.components
|
||||
|
||||
private class EventWrapper<T : Enum<T>>(
|
||||
private val recorder: ((Map<T, String>?) -> Unit),
|
||||
|
@ -243,6 +244,27 @@ private val Event.wrapper
|
|||
is Event.HistoryAllItemsRemoved -> EventWrapper<NoExtraKeys>(
|
||||
{ History.removedAll.record(it) }
|
||||
)
|
||||
is Event.CollectionRenamed -> EventWrapper<NoExtraKeys>(
|
||||
{ Collections.renamed.record(it) }
|
||||
)
|
||||
is Event.CollectionTabRestored -> EventWrapper<NoExtraKeys>(
|
||||
{ Collections.tabRestored.record(it) }
|
||||
)
|
||||
is Event.CollectionAllTabsRestored -> EventWrapper<NoExtraKeys>(
|
||||
{ Collections.allTabsRestored.record(it) }
|
||||
)
|
||||
is Event.CollectionTabRemoved -> EventWrapper<NoExtraKeys>(
|
||||
{ Collections.tabRemoved.record(it) }
|
||||
)
|
||||
is Event.CollectionShared -> EventWrapper<NoExtraKeys>(
|
||||
{ Collections.shared.record(it) }
|
||||
)
|
||||
is Event.CollectionRemoved -> EventWrapper<NoExtraKeys>(
|
||||
{ Collections.removed.record(it) }
|
||||
)
|
||||
is Event.CollectionTabSelectOpened -> EventWrapper<NoExtraKeys>(
|
||||
{ Collections.tabSelectOpened.record(it) }
|
||||
)
|
||||
|
||||
// Don't track other events with Glean
|
||||
else -> null
|
||||
|
|
|
@ -101,6 +101,13 @@ sealed class Event {
|
|||
object ReaderModeAvailable : Event()
|
||||
object ReaderModeOpened : Event()
|
||||
object ReaderModeAppearanceOpened : Event()
|
||||
object CollectionRenamed : Event()
|
||||
object CollectionTabRestored : Event()
|
||||
object CollectionAllTabsRestored : Event()
|
||||
object CollectionTabRemoved : Event()
|
||||
object CollectionShared : Event()
|
||||
object CollectionRemoved : Event()
|
||||
object CollectionTabSelectOpened : Event()
|
||||
|
||||
data class PreferenceToggled(val preferenceKey: String, val enabled: Boolean, val context: Context) : Event() {
|
||||
private val switchPreferenceTelemetryAllowList = listOf(
|
||||
|
@ -124,6 +131,22 @@ sealed class Event {
|
|||
}
|
||||
|
||||
// Interaction Events
|
||||
data class CollectionSaved(val tabsOpenCount: Int, val tabsSelectedCount: Int) : Event() {
|
||||
override val extras: Map<String, String>?
|
||||
get() = mapOf(
|
||||
"tabs_open" to tabsOpenCount.toString(),
|
||||
"tabs_selected" to tabsSelectedCount.toString()
|
||||
)
|
||||
}
|
||||
|
||||
data class CollectionTabsAdded(val tabsOpenCount: Int, val tabsSelectedCount: Int) : Event() {
|
||||
override val extras: Map<String, String>?
|
||||
get() = mapOf(
|
||||
"tabs_open" to tabsOpenCount.toString(),
|
||||
"tabs_selected" to tabsSelectedCount.toString()
|
||||
)
|
||||
}
|
||||
|
||||
data class LibrarySelectedItem(val item: String) : Event() {
|
||||
override val extras: Map<String, String>?
|
||||
get() = mapOf("item" to item)
|
||||
|
|
|
@ -460,6 +460,7 @@ class HomeFragment : Fragment(), AccountObserver {
|
|||
setPositiveButton(R.string.tab_collection_dialog_positive) { dialog: DialogInterface, _ ->
|
||||
viewLifecycleOwner.lifecycleScope.launch(Dispatchers.IO) {
|
||||
requireComponents.core.tabCollectionStorage.removeCollection(tabCollection)
|
||||
requireComponents.analytics.metrics.track(Event.CollectionRemoved)
|
||||
}.invokeOnCompletion {
|
||||
dialog.dismiss()
|
||||
}
|
||||
|
@ -516,6 +517,7 @@ class HomeFragment : Fragment(), AccountObserver {
|
|||
)
|
||||
(activity as HomeActivity).openToBrowser(BrowserDirection.FromHome)
|
||||
}
|
||||
requireComponents.analytics.metrics.track(Event.CollectionTabRestored)
|
||||
}
|
||||
is CollectionAction.OpenTabs -> {
|
||||
invokePendingDeleteJobs()
|
||||
|
@ -540,15 +542,18 @@ class HomeFragment : Fragment(), AccountObserver {
|
|||
delay(ANIM_SCROLL_DELAY)
|
||||
sessionControlComponent.view.smoothScrollToPosition(0)
|
||||
}
|
||||
requireComponents.analytics.metrics.track(Event.CollectionAllTabsRestored)
|
||||
}
|
||||
is CollectionAction.ShareTabs -> {
|
||||
val shareTabs = action.collection.tabs.map { ShareTab(it.url, it.title) }
|
||||
share(tabs = shareTabs)
|
||||
requireComponents.analytics.metrics.track(Event.CollectionShared)
|
||||
}
|
||||
is CollectionAction.RemoveTab -> {
|
||||
viewLifecycleOwner.lifecycleScope.launch(Dispatchers.IO) {
|
||||
requireComponents.core.tabCollectionStorage.removeTabFromCollection(action.collection, action.tab)
|
||||
}
|
||||
requireComponents.analytics.metrics.track(Event.CollectionTabRemoved)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -800,6 +800,98 @@ tracking_protection</td>
|
|||
</table>
|
||||
</pre>
|
||||
|
||||
## collections
|
||||
|
||||
<pre>
|
||||
<table style="width: 100%">
|
||||
<tr>
|
||||
<th>key</th>
|
||||
<th>type</th>
|
||||
<th>description</th>
|
||||
<th>data deview</th>
|
||||
<th>extras</th>
|
||||
<th>expires</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>renamed</td>
|
||||
<td>event</td>
|
||||
<td>A user renamed a collection</td>
|
||||
<td><a href="https://github.com/mozilla-mobile/fenix/pull/3935">link</a></td>
|
||||
<td></td>
|
||||
<td>2020-03-01</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>tab_restored</td>
|
||||
<td>event</td>
|
||||
<td>A user restored a tab from collection tab list</td>
|
||||
<td><a href="https://github.com/mozilla-mobile/fenix/pull/3935">link</a></td>
|
||||
<td></td>
|
||||
<td>2020-03-01</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>all_tabs_restored</td>
|
||||
<td>event</td>
|
||||
<td>A user tapped "open tabs" from collection menu</td>
|
||||
<td><a href="https://github.com/mozilla-mobile/fenix/pull/3935">link</a></td>
|
||||
<td></td>
|
||||
<td>2020-03-01</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>tab_removed</td>
|
||||
<td>event</td>
|
||||
<td>A user tapped remove tab from collection tab list</td>
|
||||
<td><a href="https://github.com/mozilla-mobile/fenix/pull/3935">link</a></td>
|
||||
<td></td>
|
||||
<td>2020-03-01</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>shared</td>
|
||||
<td>event</td>
|
||||
<td>A user tapped share collection</td>
|
||||
<td><a href="https://github.com/mozilla-mobile/fenix/pull/3935">link</a></td>
|
||||
<td></td>
|
||||
<td>2020-03-01</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>removed</td>
|
||||
<td>event</td>
|
||||
<td>A user tapped delete collection from collection menu</td>
|
||||
<td><a href="https://github.com/mozilla-mobile/fenix/pull/3935">link</a></td>
|
||||
<td></td>
|
||||
<td>2020-03-01</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>saved</td>
|
||||
<td>event</td>
|
||||
<td>A user saved a list of tabs to a new collection</td>
|
||||
<td><a href="https://github.com/mozilla-mobile/fenix/pull/3935">link</a></td>
|
||||
<td>tabs_open: The number of tabs open in the current session
|
||||
tabs_selected: The number of tabs added to the collection
|
||||
</td>
|
||||
<td>2020-03-01</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>tabs_added</td>
|
||||
<td>event</td>
|
||||
<td>A user saved a list of tabs to an existing collection</td>
|
||||
<td><a href="https://github.com/mozilla-mobile/fenix/pull/3935">link</a></td>
|
||||
<td>tabs_open: The number of tabs open in the current session
|
||||
tabs_selected: The number of tabs added to the collection
|
||||
</td>
|
||||
<td>2020-03-01</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>tab_select_opened</td>
|
||||
<td>event</td>
|
||||
<td>A user opened the select tabs screen (the first step of the collection creation flow)</td>
|
||||
<td><a href="https://github.com/mozilla-mobile/fenix/pull/3935">link</a></td>
|
||||
<td></td>
|
||||
<td>2020-03-01</td>
|
||||
</tr>
|
||||
</table>
|
||||
</pre>
|
||||
|
||||
|
||||
## Metrics
|
||||
|
||||
Items that are added to the metrics ping
|
||||
|
|
Loading…
Reference in New Issue