@@ -37,7 +37,11 @@ class TrackingService @Inject constructor(
3737 const val CONFIG_KEY_MIN_TIME = " feature_analytics_optin_min_time"
3838 }
3939
40- private val sharedPreferences by lazy { PreferenceManager .getDefaultSharedPreferences(application) }
40+ private val sharedPreferences by lazy {
41+ PreferenceManager .getDefaultSharedPreferences(
42+ application
43+ )
44+ }
4145 private var firebaseAnalyticsOptInStatus: OptInStatus
4246 get() = if (sharedPreferences.contains(PREF_KEY_OPTED_IN )) {
4347 when (sharedPreferences.getBoolean(PREF_KEY_OPTED_IN , false )) {
@@ -51,24 +55,26 @@ class TrackingService @Inject constructor(
5155 OptInStatus .UNKNOWN -> throw IllegalArgumentException (" UNKNOWN not allowed" )
5256 }
5357 private val firebaseAnalytics: FirebaseAnalytics = Firebase .analytics
54- private val preferenceChangedListener = OnSharedPreferenceChangeListener { sharedPreferences, key ->
55- logger.info { " Preference changed: $key " }
56- when (key) {
57- PREF_KEY_OPTED_IN -> {
58- val value = sharedPreferences.getBoolean(key, false )
59- sharedPreferences.edit {
60- putLong(PREF_KEY_OPTED_IN_TIME , System .currentTimeMillis())
61- }
62- if (value) {
63- setConsentStatus(FirebaseAnalytics .ConsentStatus .GRANTED )
64- firebaseAnalytics.setAnalyticsCollectionEnabled(true )
65- } else {
66- setConsentStatus(FirebaseAnalytics .ConsentStatus .DENIED )
67- firebaseAnalytics.setAnalyticsCollectionEnabled(false )
58+ private val preferenceChangedListener =
59+ OnSharedPreferenceChangeListener { sharedPreferences, key ->
60+ logger.info { " Preference changed: $key " }
61+ when (key) {
62+ PREF_KEY_OPTED_IN -> {
63+ val value = sharedPreferences.getBoolean(key, false )
64+ sharedPreferences.edit {
65+ putLong(PREF_KEY_OPTED_IN_TIME , System .currentTimeMillis())
66+ }
67+ if (value) {
68+ setConsentStatus(FirebaseAnalytics .ConsentStatus .GRANTED )
69+ firebaseAnalytics.setAnalyticsCollectionEnabled(true )
70+ } else {
71+ setConsentStatus(FirebaseAnalytics .ConsentStatus .DENIED )
72+ firebaseAnalytics.setAnalyticsCollectionEnabled(false )
73+ }
6874 }
6975 }
7076 }
71- }
77+ private val coroutineScope = CoroutineScope ( SupervisorJob () + Dispatchers . Main )
7278
7379 init {
7480 sharedPreferences.registerOnSharedPreferenceChangeListener(preferenceChangedListener)
@@ -117,9 +123,13 @@ class TrackingService @Inject constructor(
117123 )
118124 .setPositiveButton(" Opt-in" ) { _, _ ->
119125 optIn()
120- Snackbar .make(activity.findViewById(android.R .id.content), buildSpannedString {
121- bold { append(" Thank you! You can change your decision anytime on the settings tab." ) }
122- }, Snackbar .LENGTH_LONG ).apply {
126+ Snackbar .make(
127+ activity.findViewById(android.R .id.content),
128+ buildSpannedString {
129+ bold { append(" Thank you! You can change your decision anytime on the settings tab." ) }
130+ },
131+ Snackbar .LENGTH_LONG
132+ ).apply {
123133 animationMode = Snackbar .ANIMATION_MODE_SLIDE
124134 setAction(" OK" ) {
125135 dismiss()
@@ -131,7 +141,7 @@ class TrackingService @Inject constructor(
131141 .setCancelable(false )
132142 .create()
133143 alertDialog.setCanceledOnTouchOutside(false )
134- val job = GlobalScope .async(Dispatchers . Main , start = CoroutineStart .LAZY ) {
144+ val job = coroutineScope .async(start = CoroutineStart .LAZY ) {
135145 alertDialog.findViewById<TextView >(android.R .id.message)?.movementMethod =
136146 LinkMovementMethod .getInstance()
137147 val positiveButton = alertDialog.getButton(AlertDialog .BUTTON_POSITIVE )
0 commit comments