From fd7dcf36cf83e92250a2bdbdea1445cd1fd7b7ec Mon Sep 17 00:00:00 2001 From: Michael Droettboom Date: Tue, 2 Apr 2019 08:31:30 -0400 Subject: [PATCH] Don't use the not-really-public EventMetricType --- .../components/metrics/GleanMetricsService.kt | 27 +++++++++++++------ 1 file changed, 19 insertions(+), 8 deletions(-) diff --git a/app/src/main/java/org/mozilla/fenix/components/metrics/GleanMetricsService.kt b/app/src/main/java/org/mozilla/fenix/components/metrics/GleanMetricsService.kt index 59fa45ad6..2d443f036 100644 --- a/app/src/main/java/org/mozilla/fenix/components/metrics/GleanMetricsService.kt +++ b/app/src/main/java/org/mozilla/fenix/components/metrics/GleanMetricsService.kt @@ -4,7 +4,6 @@ package org.mozilla.fenix.components.metrics import android.content.Context -import mozilla.components.service.glean.metrics.EventMetricType import mozilla.components.service.glean.Glean import mozilla.components.support.utils.Browsers import org.mozilla.fenix.BuildConfig @@ -13,8 +12,8 @@ import org.mozilla.fenix.GleanMetrics.Metrics import org.mozilla.fenix.GleanMetrics.Events private class EventWrapper>( - private val event: EventMetricType, - private val keyMapper: ((String) -> T)? = null + private val recorder: ((Map?) -> Unit), + private val keyMapper: ((String) -> T)? ) { private val String.asCamelCase: String get() = this.split("_").reduceIndexed { index, acc, s -> @@ -29,16 +28,28 @@ private class EventWrapper>( null } - this.event.record(extras) + this.recorder(extras) } } private val Event.wrapper get() = when (this) { - is Event.OpenedApp -> EventWrapper(Events.appOpened) { Events.appOpenedKeys.valueOf(it) } - is Event.SearchBarTapped -> EventWrapper(Events.searchBarTapped) { Events.searchBarTappedKeys.valueOf(it) } - is Event.EnteredUrl -> EventWrapper(Events.enteredUrl) { Events.enteredUrlKeys.valueOf(it) } - is Event.PerformedSearch -> EventWrapper(Events.performedSearch) { Events.performedSearchKeys.valueOf(it) } + is Event.OpenedApp -> EventWrapper( + { Events.appOpened.record(it) }, + { Events.appOpenedKeys.valueOf(it) } + ) + is Event.SearchBarTapped -> EventWrapper( + { Events.searchBarTapped.record(it) }, + { Events.searchBarTappedKeys.valueOf(it) } + ) + is Event.EnteredUrl -> EventWrapper( + { Events.enteredUrl.record(it) }, + { Events.enteredUrlKeys.valueOf(it) } + ) + is Event.PerformedSearch -> EventWrapper( + { Events.performedSearch.record(it) }, + { Events.performedSearchKeys.valueOf(it) } + ) else -> null }