package com.vgmlr.shim
import android.content.Context
import androidx.work.CoroutineWorker
import androidx.work.WorkerParameters
import java.io.File
import java.io.FileOutputStream
class ShimBackUp(context: Context, params: WorkerParameters) : CoroutineWorker(context, params) {
override suspend fun doWork(): Result {
return try {
val dbFile = applicationContext.getDatabasePath("shim.db")
if (!dbFile.exists()) return Result.success()
val externalDir = applicationContext.getExternalFilesDir(null) ?: return Result.failure()
val backupDir = File(externalDir, "backups")
if (!backupDir.exists()) {
backupDir.mkdirs()
}
val backupFile = File(backupDir, "shim_backup.db")
dbFile.inputStream().use { input ->
FileOutputStream(backupFile).use { output ->
input.copyTo(output)
}
}
Result.success()
} catch (_: Exception) {
Result.failure()
}
}
}