@@ -37,7 +37,11 @@ class TrackingService @Inject constructor(
37
37
const val CONFIG_KEY_MIN_TIME = " feature_analytics_optin_min_time"
38
38
}
39
39
40
- private val sharedPreferences by lazy { PreferenceManager .getDefaultSharedPreferences(application) }
40
+ private val sharedPreferences by lazy {
41
+ PreferenceManager .getDefaultSharedPreferences(
42
+ application
43
+ )
44
+ }
41
45
private var firebaseAnalyticsOptInStatus: OptInStatus
42
46
get() = if (sharedPreferences.contains(PREF_KEY_OPTED_IN )) {
43
47
when (sharedPreferences.getBoolean(PREF_KEY_OPTED_IN , false )) {
@@ -51,24 +55,26 @@ class TrackingService @Inject constructor(
51
55
OptInStatus .UNKNOWN -> throw IllegalArgumentException (" UNKNOWN not allowed" )
52
56
}
53
57
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
+ }
68
74
}
69
75
}
70
76
}
71
- }
77
+ private val coroutineScope = CoroutineScope ( SupervisorJob () + Dispatchers . Main )
72
78
73
79
init {
74
80
sharedPreferences.registerOnSharedPreferenceChangeListener(preferenceChangedListener)
@@ -117,9 +123,13 @@ class TrackingService @Inject constructor(
117
123
)
118
124
.setPositiveButton(" Opt-in" ) { _, _ ->
119
125
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 {
123
133
animationMode = Snackbar .ANIMATION_MODE_SLIDE
124
134
setAction(" OK" ) {
125
135
dismiss()
@@ -131,7 +141,7 @@ class TrackingService @Inject constructor(
131
141
.setCancelable(false )
132
142
.create()
133
143
alertDialog.setCanceledOnTouchOutside(false )
134
- val job = GlobalScope .async(Dispatchers . Main , start = CoroutineStart .LAZY ) {
144
+ val job = coroutineScope .async(start = CoroutineStart .LAZY ) {
135
145
alertDialog.findViewById<TextView >(android.R .id.message)?.movementMethod =
136
146
LinkMovementMethod .getInstance()
137
147
val positiveButton = alertDialog.getButton(AlertDialog .BUTTON_POSITIVE )
0 commit comments