Inject dependencies in the app module

pull/2064/head
lihenggui 1 year ago
parent 29ded3566e
commit b6a6538cd9

@ -68,7 +68,7 @@ class MainActivity : ComponentActivity() {
private val userNewsResourceRepository: UserNewsResourceRepository by inject()
private val viewModel: MainScreenViewModel by viewModels()
private val viewModel: MainScreenViewModel by inject()
override fun onCreate(savedInstanceState: Bundle?) {
val splashScreen = installSplashScreen()

@ -21,12 +21,14 @@ import coil3.ImageLoader
import coil3.PlatformContext
import coil3.SingletonImageLoader
import coil3.request.crossfade
import com.google.samples.apps.nowinandroid.di.JankStatsModule
import com.google.samples.apps.nowinandroid.di.appModules
import com.google.samples.apps.nowinandroid.util.ProfileVerifierLogger
import org.koin.android.ext.android.inject
import org.koin.android.ext.koin.androidContext
import org.koin.android.ext.koin.androidLogger
import org.koin.core.context.startKoin
import org.koin.ksp.generated.module
/**
* [Application] class for NiA
@ -40,7 +42,10 @@ class NiaApplication : Application(), SingletonImageLoader.Factory {
startKoin {
androidLogger()
androidContext(this@NiaApplication)
modules(appModules)
modules(
JankStatsModule().module,
appModules,
)
}
// Initialize Sync; the system responsible for keeping data in the app up to date.
// Sync.initialize(context = this)

@ -21,6 +21,8 @@ import android.util.Log
import android.view.Window
import androidx.metrics.performance.JankStats
import androidx.metrics.performance.JankStats.OnFrameListener
import com.google.samples.apps.nowinandroid.util.ProfileVerifierLogger
import kotlinx.coroutines.CoroutineScope
import org.koin.core.annotation.Factory
import org.koin.core.annotation.Module
import org.koin.core.annotation.Single
@ -44,4 +46,8 @@ class JankStatsModule {
window: Window,
frameListener: OnFrameListener,
): JankStats = JankStats.createAndTrack(window, frameListener)
@Single
fun provideProfileVerifierLogger(scope: CoroutineScope): ProfileVerifierLogger =
ProfileVerifierLogger(scope)
}

@ -48,7 +48,6 @@ import org.koin.core.annotation.Single
*
* @see androidx.profileinstaller.ProfileVerifier.CompilationStatus.ResultCode
*/
@Single
class ProfileVerifierLogger(
@ApplicationScope private val scope: CoroutineScope,
) {

Loading…
Cancel
Save