1
0
Fork 0

For #12103: Add ChangedDefaultBrowser event for leanplum

master
Sawyer Blatz 2020-07-27 14:24:02 -07:00 committed by Emily Kager
parent 2b1122bc77
commit 8bfc493568
7 changed files with 30 additions and 0 deletions

View File

@ -31,6 +31,7 @@ import androidx.navigation.ui.NavigationUI
import kotlinx.android.synthetic.main.activity_home.*
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.Dispatchers.IO
import kotlinx.coroutines.ExperimentalCoroutinesApi
import kotlinx.coroutines.Job
import kotlinx.coroutines.delay
@ -68,6 +69,7 @@ import org.mozilla.fenix.components.metrics.BreadcrumbsRecorder
import org.mozilla.fenix.components.metrics.Event
import org.mozilla.fenix.ext.alreadyOnDestination
import org.mozilla.fenix.ext.components
import org.mozilla.fenix.ext.metrics
import org.mozilla.fenix.ext.nav
import org.mozilla.fenix.ext.resetPoliciesAfter
import org.mozilla.fenix.ext.settings
@ -243,12 +245,24 @@ open class HomeActivity : LocaleAwareAppCompatActivity(), NavHostActivity {
}
}
}
// Launch this on a background thread so as not to affect startup performance
lifecycleScope.launch(IO) {
if (settings().wasDefaultBrowserOnLastPause != settings().isDefaultBrowser()) {
metrics.track(Event.ChangedToDefaultBrowser)
}
}
}
final override fun onPause() {
if (settings().lastKnownMode.isPrivate) {
window.addFlags(WindowManager.LayoutParams.FLAG_SECURE)
}
if (settings().wasDefaultBrowserOnLastPause != settings().isDefaultBrowser()) {
settings().wasDefaultBrowserOnLastPause = settings().isDefaultBrowser()
}
super.onPause()
// Every time the application goes into the background, it is possible that the user

View File

@ -666,6 +666,7 @@ private val Event.wrapper: EventWrapper<*>?
is Event.FennecToFenixMigrated -> null
is Event.AddonInstalled -> null
is Event.SearchWidgetInstalled -> null
is Event.ChangedToDefaultBrowser -> null
}
class GleanMetricsService(private val context: Context) : MetricsService {

View File

@ -40,6 +40,7 @@ private val Event.name: String?
is Event.FennecToFenixMigrated -> "E_Fennec_To_Fenix_Migrated"
is Event.AddonInstalled -> "E_Addon_Installed"
is Event.SearchWidgetInstalled -> "E_Search_Widget_Added"
is Event.ChangedToDefaultBrowser -> "E_Changed_Default_To_Fenix"
// Do not track other events in Leanplum
else -> null

View File

@ -183,6 +183,7 @@ sealed class Event {
object OnboardingPrivateBrowsing : Event()
object OnboardingWhatsNew : Event()
object OnboardingFinish : Event()
object ChangedToDefaultBrowser : Event()
object ContextualHintETPDisplayed : Event()
object ContextualHintETPDismissed : Event()

View File

@ -10,6 +10,8 @@ import android.widget.Switch
import androidx.preference.Preference
import androidx.preference.PreferenceViewHolder
import org.mozilla.fenix.R
import org.mozilla.fenix.components.metrics.Event
import org.mozilla.fenix.ext.metrics
import org.mozilla.fenix.utils.BrowsersCache
class DefaultBrowserPreference @JvmOverloads constructor(

View File

@ -324,6 +324,15 @@ class Settings(private val appContext: Context) : PreferencesHolder {
default = true
)
/**
* Caches the last known "is default browser" state when the app was paused.
* For an up to do date state use `isDefaultBrowser` instead.
*/
var wasDefaultBrowserOnLastPause by booleanPreference(
appContext.getPreferenceKey(R.string.pref_key_default_browser),
default = isDefaultBrowser()
)
fun isDefaultBrowser(): Boolean {
val browsers = BrowsersCache.all(appContext)
return browsers.isDefaultBrowser

View File

@ -186,5 +186,7 @@
<string name="pref_key_is_in_search_widget_experiment" translatable="false">pref_key_is_in_search_widget_experiment</string>
<string name="pref_key_show_search_widget_cfr" translatable="false">pref_key_show_search_widget_cfr</string>
<string name="pref_key_default_browser" translatable="false">pref_key_default_browser</string>
<string name="pref_key_login_exceptions" translatable="false">pref_key_login_exceptions</string>
</resources>