You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
63 lines
1.3 KiB
Kotlin
63 lines
1.3 KiB
Kotlin
package org.koitharu.kotatsu
|
|
|
|
import android.app.Application
|
|
import androidx.room.Room
|
|
import okhttp3.OkHttpClient
|
|
import org.koin.android.ext.koin.androidContext
|
|
import org.koin.android.ext.koin.androidLogger
|
|
import org.koin.core.context.startKoin
|
|
import org.koin.dsl.module
|
|
import org.koitharu.kotatsu.core.db.MangaDatabase
|
|
import org.koitharu.kotatsu.core.local.PagesCache
|
|
import org.koitharu.kotatsu.core.prefs.AppSettings
|
|
import org.koitharu.kotatsu.domain.MangaLoaderContext
|
|
import java.util.concurrent.TimeUnit
|
|
|
|
class KotatsuApp : Application() {
|
|
|
|
override fun onCreate() {
|
|
super.onCreate()
|
|
initKoin()
|
|
}
|
|
|
|
private fun initKoin() {
|
|
startKoin {
|
|
androidLogger()
|
|
androidContext(applicationContext)
|
|
modules(listOf(
|
|
module {
|
|
factory {
|
|
okHttp().build()
|
|
}
|
|
}, module {
|
|
single {
|
|
MangaLoaderContext()
|
|
}
|
|
}, module {
|
|
single {
|
|
mangaDb().build()
|
|
}
|
|
}, module {
|
|
factory {
|
|
AppSettings(applicationContext)
|
|
}
|
|
}, module {
|
|
single {
|
|
PagesCache(applicationContext)
|
|
}
|
|
}
|
|
))
|
|
}
|
|
}
|
|
|
|
private fun okHttp() = OkHttpClient.Builder()
|
|
.connectTimeout(20, TimeUnit.SECONDS)
|
|
.readTimeout(60, TimeUnit.SECONDS)
|
|
.writeTimeout(20, TimeUnit.SECONDS)
|
|
|
|
private fun mangaDb() = Room.databaseBuilder(
|
|
applicationContext,
|
|
MangaDatabase::class.java,
|
|
"kotatsu-db"
|
|
)
|
|
} |