komikku/app/src/main/java/eu/kanade/tachiyomi/App.kt

93 lines
2.8 KiB
Kotlin
Raw Normal View History

package eu.kanade.tachiyomi
import android.app.Application
2016-10-15 11:12:16 +02:00
import android.content.Context
import android.content.res.Configuration
2016-10-15 11:12:16 +02:00
import android.support.multidex.MultiDex
import com.evernote.android.job.JobManager
import com.github.ajalt.reprint.core.Reprint
import eu.kanade.tachiyomi.data.backup.BackupCreatorJob
import eu.kanade.tachiyomi.data.library.LibraryUpdateJob
import eu.kanade.tachiyomi.data.notification.Notifications
import eu.kanade.tachiyomi.data.updater.UpdaterJob
import eu.kanade.tachiyomi.util.LocaleHelper
2017-08-25 23:31:38 +02:00
import io.realm.Realm
import io.realm.RealmConfiguration
import timber.log.Timber
import uy.kohesive.injekt.Injekt
import uy.kohesive.injekt.api.InjektScope
import uy.kohesive.injekt.registry.default.DefaultRegistrar
2017-08-25 23:31:38 +02:00
import java.io.File
import kotlin.concurrent.thread
open class App : Application() {
override fun onCreate() {
super.onCreate()
if (BuildConfig.DEBUG) Timber.plant(Timber.DebugTree())
Injekt = InjektScope(DefaultRegistrar())
Injekt.importModule(AppModule(this))
setupJobManager()
setupNotificationChannels()
2017-08-25 23:31:38 +02:00
setupRealm() //Setup metadata DB (EH)
Reprint.initialize(this) //Setup fingerprint (EH)
LocaleHelper.updateConfiguration(this, resources.configuration)
}
2016-10-15 11:12:16 +02:00
override fun attachBaseContext(base: Context) {
super.attachBaseContext(base)
2019-04-13 15:10:44 +02:00
MultiDex.install(this)
2016-10-15 11:12:16 +02:00
}
override fun onConfigurationChanged(newConfig: Configuration) {
super.onConfigurationChanged(newConfig)
LocaleHelper.updateConfiguration(this, newConfig, true)
}
protected open fun setupJobManager() {
2019-03-14 21:44:20 +01:00
try {
JobManager.create(this).addJobCreator { tag ->
when (tag) {
LibraryUpdateJob.TAG -> LibraryUpdateJob()
UpdaterJob.TAG -> UpdaterJob()
BackupCreatorJob.TAG -> BackupCreatorJob()
else -> null
}
}
2019-03-14 21:44:20 +01:00
} catch (e: Exception) {
Timber.w("Can't initialize job manager")
}
}
protected open fun setupNotificationChannels() {
Notifications.createChannels(this)
}
2017-11-24 03:03:49 +01:00
// EXH
2017-08-25 23:31:38 +02:00
private fun setupRealm() {
Realm.init(this)
val config = RealmConfiguration.Builder()
.name("gallery-metadata.realm")
2018-04-16 15:53:18 +02:00
.schemaVersion(3)
.deleteRealmIfMigrationNeeded()
2017-08-25 23:31:38 +02:00
.build()
Realm.setDefaultConfiguration(config)
//Delete old paper db files
listOf(
File(filesDir, "gallery-ex"),
File(filesDir, "gallery-perveden"),
File(filesDir, "gallery-nhentai")
).forEach {
if(it.exists()) {
thread {
it.deleteRecursively()
}
}
}
}
}