feat(android): integrate AppPlugin

This commit is contained in:
Harsh Shandilya 2022-11-13 20:35:13 +05:30
parent 72acf9c850
commit c75d1959a6
No known key found for this signature in database

View file

@ -8,31 +8,31 @@ package dev.msfjarvis.claw.android
import android.app.Application import android.app.Application
import android.os.StrictMode import android.os.StrictMode
import android.util.Log
import androidx.work.Configuration
import coil.ImageLoader import coil.ImageLoader
import coil.ImageLoaderFactory import coil.ImageLoaderFactory
import coil.disk.DiskCache import coil.disk.DiskCache
import coil.memory.MemoryCache import coil.memory.MemoryCache
import dev.msfjarvis.claw.core.injection.AppPlugin
import dev.msfjarvis.claw.injection.Components import dev.msfjarvis.claw.injection.Components
import io.github.aakira.napier.DebugAntilog import dev.msfjarvis.claw.injection.scopes.AppScope
import io.github.aakira.napier.Napier import javax.inject.Inject
import tangle.inject.TangleGraph import tangle.inject.TangleGraph
import tangle.inject.TangleScope
class ClawApplication : Application(), Configuration.Provider, ImageLoaderFactory { @TangleScope(AppScope::class)
class ClawApplication : Application(), ImageLoaderFactory {
@Inject lateinit var plugins: Set<@JvmSuppressWildcards AppPlugin>
override fun onCreate() { override fun onCreate() {
super.onCreate() super.onCreate()
val component = DaggerAppComponent.factory().create(this) val component = DaggerAppComponent.factory().create(this)
Components.add(component) Components.add(component)
TangleGraph.add(component) TangleGraph.add(component)
TangleGraph.inject(this)
StrictMode.setVmPolicy(StrictMode.VmPolicy.Builder().detectAll().penaltyLog().build()) StrictMode.setVmPolicy(StrictMode.VmPolicy.Builder().detectAll().penaltyLog().build())
StrictMode.setThreadPolicy(StrictMode.ThreadPolicy.Builder().detectAll().penaltyLog().build()) StrictMode.setThreadPolicy(StrictMode.ThreadPolicy.Builder().detectAll().penaltyLog().build())
Napier.base(DebugAntilog()) plugins.forEach { plugin -> plugin.apply(this) }
}
override fun getWorkManagerConfiguration(): Configuration {
return Configuration.Builder().setMinimumLoggingLevel(Log.DEBUG).build()
} }
override fun newImageLoader(): ImageLoader { override fun newImageLoader(): ImageLoader {