AIRA-android/app/src/main/java/sushi/hardcore/aira/background_service/SystemBroadcastReceiver.kt

36 lines
1.5 KiB
Kotlin

package sushi.hardcore.aira.background_service
import android.content.BroadcastReceiver
import android.content.Context
import android.content.Intent
import android.os.Build
import androidx.preference.PreferenceManager
import sushi.hardcore.aira.AIRADatabase
import sushi.hardcore.aira.Constants
class SystemBroadcastReceiver: BroadcastReceiver() {
init {
AIRADatabase.init()
}
override fun onReceive(context: Context, intent: Intent) {
if (intent.action == Intent.ACTION_BOOT_COMPLETED) {
if (PreferenceManager.getDefaultSharedPreferences(context).getBoolean("startAtBoot", true) && !AIRAService.isServiceRunning) {
val databaseFolder = Constants.getDatabaseFolder(context)
val isProtected = AIRADatabase.isIdentityProtected(databaseFolder)
val name = AIRADatabase.getIdentityName(databaseFolder)
if (name != null && !isProtected) {
if (AIRADatabase.loadIdentity(databaseFolder, null)) {
AIRADatabase.clearCache()
val serviceIntent = Intent(context, AIRAService::class.java)
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
context.startForegroundService(serviceIntent)
} else {
context.startService(serviceIntent)
}
}
}
}
}
}
}