@@ -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