app: convert StrictModeInitializer to androidx.startup
authorDa Risk <da_risk@geekorum.com>
Wed, 12 Jan 2022 14:36:14 -0400
changeset 873 497c741f9c62
parent 872 227ace50d4a6
child 874 c759c3dedd91
app: convert StrictModeInitializer to androidx.startup
app/src/main/AndroidManifest.xml
app/src/main/java/com/geekorum/ttrss/Application.kt
app/src/main/java/com/geekorum/ttrss/debugtools/StrictMode.kt
--- a/app/src/main/AndroidManifest.xml	Wed Jan 12 14:27:20 2022 -0400
+++ b/app/src/main/AndroidManifest.xml	Wed Jan 12 14:36:14 2022 -0400
@@ -158,6 +158,9 @@
             <meta-data android:name="com.geekorum.ttrss.background_job.BackgroundJobManagerInitializer"
                 android:value="androidx.startup" />
 
+            <meta-data android:name="com.geekorum.ttrss.debugtools.StrictModeInitializer"
+                android:value="androidx.startup" />
+
         </provider>
 
 
--- a/app/src/main/java/com/geekorum/ttrss/Application.kt	Wed Jan 12 14:27:20 2022 -0400
+++ b/app/src/main/java/com/geekorum/ttrss/Application.kt	Wed Jan 12 14:36:14 2022 -0400
@@ -59,11 +59,7 @@
     }
 
     protected open fun sortAppInitializers(initializers: Set<AppInitializer>): List<AppInitializer> {
-        val result = mutableListOf<AppInitializer>()
-        val strictModeInitializer = initializers.find { it is StrictModeInitializer }
-        strictModeInitializer?.let { result.add(it) }
-        result.addAll(initializers)
-        return result.distinct()
+        return initializers.toList()
     }
 
     override fun getWorkManagerConfiguration(): Configuration = workManagerConfig
--- a/app/src/main/java/com/geekorum/ttrss/debugtools/StrictMode.kt	Wed Jan 12 14:27:20 2022 -0400
+++ b/app/src/main/java/com/geekorum/ttrss/debugtools/StrictMode.kt	Wed Jan 12 14:36:14 2022 -0400
@@ -21,14 +21,14 @@
 package com.geekorum.ttrss.debugtools
 
 import android.app.Application
-import android.content.ContentResolver
+import android.content.Context
 import android.os.Build
 import android.os.StrictMode
 import android.os.StrictMode.allowThreadDiskReads
 import android.os.strictmode.Violation
 import androidx.annotation.RequiresApi
+import androidx.startup.Initializer
 import com.geekorum.geekdroid.dagger.AppInitializer
-import com.geekorum.geekdroid.dagger.AppInitializersModule
 import com.geekorum.ttrss.BuildConfig
 import dagger.Binds
 import dagger.Module
@@ -46,13 +46,17 @@
 /**
  * Configure StrictMode policies
  */
-class StrictModeInitializer @Inject constructor() : AppInitializer {
+class StrictModeInitializer : Initializer<Unit> {
     private val listenerExecutor by lazy { Executors.newSingleThreadExecutor() }
 
     @delegate:RequiresApi(Build.VERSION_CODES.P)
     private val violationListener: ViolationListener by lazy { ViolationListener() }
 
-    override fun initialize(app: Application) {
+    override fun create(context: Context) {
+        initialize()
+    }
+
+    fun initialize() {
         StrictMode.setVmPolicy(StrictMode.VmPolicy.Builder()
             .detectActivityLeaks()
             .detectCleartextNetwork()
@@ -103,15 +107,8 @@
         }
     }
 
-}
-
+    override fun dependencies(): List<Class<out Initializer<*>>> = emptyList()
 
-@Module(includes = [AppInitializersModule::class])
-@InstallIn(SingletonComponent::class)
-abstract class StrictModeModule {
-    @Binds
-    @IntoSet
-    abstract fun bindStrictModeInitializer(strictModeInitializer: StrictModeInitializer): AppInitializer
 }