[fenix] add events based on feedback

pull/600/head
Matt Tighe 2 years ago committed by mergify[bot]
parent 880c34528d
commit 00cc662e9f

@ -6970,16 +6970,16 @@ wallpapers:
data_sensitivity:
- interaction
expires: "2023-05-01"
new_wallpaper_applied:
wallpaper_selected:
type: event
description: |
An event that is fired when a new wallpaper is applied to the home screen.
A wallpaper is selected from the settings screen.
extra_keys:
name:
description: The name of the applied wallpaper
description: The name of the selected wallpaper
type: string
theme_collection:
description: The theme collection the applied wallpaper belongs to.
description: The theme collection the selected wallpaper belongs to.
type: string
bugs:
- https://github.com/mozilla-mobile/fenix/issues/23381
@ -6990,3 +6990,41 @@ wallpapers:
data_sensitivity:
- interaction
expires: "2023-05-01"
wallpaper_switched:
type: event
description: |
The wallpaper was switched by using the homescreen toggle.
extra_keys:
name:
description: The name of the new wallpaper
type: string
theme_collection:
description: The theme collection the new wallpaper belongs to.
type: string
bugs:
- https://github.com/mozilla-mobile/fenix/issues/23381
data_reviews:
- https://github.com/mozilla-mobile/fenix/pull/23382
notification_emails:
- android-probes@mozilla.com
data_sensitivity:
- interaction
expires: "2023-05-01"
change_wallpaper_logo_toggled:
type: event
description: |
A user has toggled the switch that controls the tap-logo-to-change-
wallpaper feature.
extra_keys:
checked:
description: Whether the switch is enabled or disabled.
type: boolean
bugs:
- https://github.com/mozilla-mobile/fenix/issues/23381
data_reviews:
- https://github.com/mozilla-mobile/fenix/pull/23382
notification_emails:
- android-probes@mozilla.com
data_sensitivity:
- interaction
expires: "2023-05-01"

@ -145,7 +145,7 @@ class Components(private val context: Context) {
}
val wallpaperManager by lazyMonitored {
WallpaperManager(settings, WallpapersAssetsStorage(context), analytics.metrics)
WallpaperManager(settings, WallpapersAssetsStorage(context))
}
val analytics by lazyMonitored { Analytics(context) }

@ -677,7 +677,9 @@ sealed class Event {
sealed class Search
object WallpaperFeatureDiscovered : Event()
data class NewWallpaperApplied(val wallpaper: org.mozilla.fenix.wallpapers.Wallpaper) : Event()
data class WallpaperSelected(val wallpaper: org.mozilla.fenix.wallpapers.Wallpaper) : Event()
data class WallpaperSwitched(val wallpaper: org.mozilla.fenix.wallpapers.Wallpaper) : Event()
data class ChangeWallpaperWithLogoToggled(val checked: Boolean) : Event()
internal open val extras: Map<*, String>?
get() = null

@ -911,16 +911,35 @@ private val Event.wrapper: EventWrapper<*>?
is Event.WallpaperFeatureDiscovered -> EventWrapper<NoExtraKeys>(
{ Wallpapers.discoveredWallpaperFeature.set(true) }
)
is Event.NewWallpaperApplied -> EventWrapper<NoExtraKeys>(
is Event.WallpaperSelected -> EventWrapper<NoExtraKeys>(
{
Wallpapers.newWallpaperApplied.record(
Wallpapers.NewWallpaperAppliedExtra(
Wallpapers.wallpaperSelected.record(
Wallpapers.WallpaperSelectedExtra(
name = this.wallpaper.name,
themeCollection = this.wallpaper.themeCollection::class.simpleName,
),
)
}
)
is Event.WallpaperSwitched -> EventWrapper<NoExtraKeys>(
{
Wallpapers.wallpaperSwitched.record(
Wallpapers.WallpaperSwitchedExtra(
name = this.wallpaper.name,
themeCollection = this.wallpaper.themeCollection::class.simpleName,
),
)
}
)
is Event.ChangeWallpaperWithLogoToggled -> EventWrapper<NoExtraKeys>(
{
Wallpapers.changeWallpaperLogoToggled.record(
Wallpapers.ChangeWallpaperLogoToggledExtra(
checked = this.checked,
),
)
}
)
// Don't record other events in Glean:
is Event.AddBookmark -> null

@ -767,10 +767,12 @@ class HomeFragment : Fragment() {
if (shouldEnableWallpaper() && context.settings().wallpapersSwitchedByLogoTap) {
binding.wordmark.setOnClickListener {
val manager = requireComponents.wallpaperManager
val newWallpaper = manager.switchToNextWallpaper()
requireComponents.analytics.metrics.track(Event.WallpaperFeatureDiscovered)
requireComponents.analytics.metrics.track(Event.WallpaperSwitched(newWallpaper))
manager.updateWallpaper(
wallpaperContainer = binding.homeLayout,
newWallpaper = manager.switchToNextWallpaper()
newWallpaper = newWallpaper
)
}
}

@ -58,12 +58,14 @@ class WallpaperSettingsFragment : Fragment() {
onSelectWallpaper = { selectedWallpaper: Wallpaper ->
currentWallpaper = selectedWallpaper
wallpaperManager.currentWallpaper = selectedWallpaper
metrics.track(Event.WallpaperSelected(selectedWallpaper))
},
onViewWallpaper = { findNavController().navigate(R.id.homeFragment) },
tapLogoSwitchChecked = wallpapersSwitchedByLogo,
onTapLogoSwitchCheckedChange = {
settings.wallpapersSwitchedByLogoTap = it
wallpapersSwitchedByLogo = it
metrics.track(Event.ChangeWallpaperWithLogoToggled(it))
}
)
}

@ -14,8 +14,6 @@ import androidx.appcompat.app.AppCompatDelegate
import mozilla.components.support.base.log.logger.Logger
import mozilla.components.support.ktx.android.content.getColorFromAttr
import org.mozilla.fenix.R
import org.mozilla.fenix.components.metrics.Event
import org.mozilla.fenix.components.metrics.MetricController
import org.mozilla.fenix.ext.asActivity
import org.mozilla.fenix.utils.Settings
@ -26,7 +24,6 @@ import org.mozilla.fenix.utils.Settings
class WallpaperManager(
private val settings: Settings,
private val wallpaperStorage: WallpaperStorage,
private val metrics: MetricController,
) {
val logger = Logger("WallpaperManager")
var availableWallpapers: List<Wallpaper> = loadWallpapers()
@ -52,7 +49,6 @@ class WallpaperManager(
wallpaperContainer.background = BitmapDrawable(context.resources, bitmap)
}
currentWallpaper = newWallpaper
metrics.track(Event.NewWallpaperApplied(newWallpaper))
adjustTheme(wallpaperContainer.context)
}

@ -5,10 +5,8 @@ import io.mockk.just
import io.mockk.mockk
import io.mockk.runs
import io.mockk.slot
import io.mockk.verify
import org.junit.Assert.assertEquals
import org.junit.Test
import org.mozilla.fenix.components.metrics.Event
import org.mozilla.fenix.components.metrics.MetricController
import org.mozilla.fenix.utils.Settings
@ -29,22 +27,9 @@ class WallpaperManagerTest {
every { mockSettings.currentWallpaper = capture(currentCaptureSlot) } just runs
val updatedWallpaper = WallpaperManager.defaultWallpaper
val wallpaperManager = WallpaperManager(mockSettings, mockStorage, mockMetrics)
val wallpaperManager = WallpaperManager(mockSettings, mockStorage)
wallpaperManager.currentWallpaper = updatedWallpaper
assertEquals(updatedWallpaper.name, currentCaptureSlot.captured)
}
@Test
fun `WHEN wallpaper updated THEN wallpaper applied metric recorded`() {
val defaultWallpaper = WallpaperManager.defaultWallpaper
every { mockSettings.currentWallpaper } returns defaultWallpaper.name
every { mockSettings.currentWallpaper = capture(slot()) } just runs
every { mockMetrics.track(any()) } just runs
val manager = WallpaperManager(mockSettings, mockStorage, mockMetrics)
manager.updateWallpaper(mockk(relaxed = true), defaultWallpaper)
verify { mockMetrics.track(Event.NewWallpaperApplied(defaultWallpaper)) }
}
}

Loading…
Cancel
Save