52 lines
1.9 KiB
Kotlin
52 lines
1.9 KiB
Kotlin
package com.github.gotifycustom
|
|
|
|
import android.app.Application
|
|
import android.app.NotificationManager
|
|
import android.os.Build
|
|
import androidx.preference.PreferenceManager
|
|
import com.github.gotifycustom.api.CertUtils
|
|
import com.github.gotifycustom.log.LoggerHelper
|
|
import com.github.gotifycustom.log.UncaughtExceptionHandler
|
|
import com.github.gotifycustom.settings.ThemeHelper
|
|
import java.io.File
|
|
import java.io.FileOutputStream
|
|
import java.io.IOException
|
|
import org.tinylog.kotlin.Logger
|
|
|
|
class GotifyApplication : Application() {
|
|
override fun onCreate() {
|
|
LoggerHelper.init(this)
|
|
UncaughtExceptionHandler.registerCurrentThread()
|
|
Logger.info("${javaClass.simpleName}: onCreate")
|
|
|
|
val theme = PreferenceManager.getDefaultSharedPreferences(this)
|
|
.getString(getString(R.string.setting_key_theme), getString(R.string.theme_default))!!
|
|
ThemeHelper.setTheme(this, theme)
|
|
|
|
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
|
|
NotificationSupport.createForegroundChannel(
|
|
this,
|
|
this.getSystemService(NotificationManager::class.java)
|
|
)
|
|
}
|
|
|
|
val settings = Settings(this)
|
|
if (settings.legacyCert != null) {
|
|
Logger.info("Migrating legacy CA cert to new location")
|
|
try {
|
|
val legacyCert = settings.legacyCert
|
|
settings.legacyCert = null
|
|
val caCertFile = File(settings.filesDir, CertUtils.CA_CERT_NAME)
|
|
FileOutputStream(caCertFile).use {
|
|
it.write(legacyCert?.encodeToByteArray())
|
|
}
|
|
settings.caCertPath = caCertFile.absolutePath
|
|
Logger.info("Migration of legacy CA cert succeeded")
|
|
} catch (e: IOException) {
|
|
Logger.error(e, "Migration of legacy CA cert failed")
|
|
}
|
|
}
|
|
super.onCreate()
|
|
}
|
|
}
|