|
|
|
|
@ -17,7 +17,7 @@ import timber.log.Timber |
|
|
|
|
import java.util.* |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class BackupTask(var context: Context, var params: WorkerParameters) : Worker(context, params) { |
|
|
|
|
class BackupWorker(var context: Context, var params: WorkerParameters) : Worker(context, params) { |
|
|
|
|
|
|
|
|
|
enum class ParamKeys(val value: String) { |
|
|
|
|
DATA("title"), |
|
|
|
|
@ -31,20 +31,29 @@ class BackupTask(var context: Context, var params: WorkerParameters) : Worker(co |
|
|
|
|
val dataType = DataType.values()[dataTypeInt] |
|
|
|
|
|
|
|
|
|
Preferences.getBackupEmail(context)?.let { email -> |
|
|
|
|
when(dataType) { |
|
|
|
|
DataType.SESSION -> { |
|
|
|
|
backupSessions(email) |
|
|
|
|
} |
|
|
|
|
DataType.TRANSACTION -> { |
|
|
|
|
backupTransactions(email) |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
val task = BackupTask(dataType, email, context) |
|
|
|
|
task.start() |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
return Result.success() |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
private fun backupSessions(email: String) { |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
class BackupTask(val dataType: DataType, val email: String, val context: Context) { |
|
|
|
|
|
|
|
|
|
fun start() { |
|
|
|
|
when(this.dataType) { |
|
|
|
|
DataType.SESSION -> { |
|
|
|
|
backupSessions() |
|
|
|
|
} |
|
|
|
|
DataType.TRANSACTION -> { |
|
|
|
|
backupTransactions() |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
private fun backupSessions() { |
|
|
|
|
|
|
|
|
|
Timber.d(">>>> backup sessions") |
|
|
|
|
val realm = Realm.getDefaultInstance() |
|
|
|
|
@ -53,12 +62,13 @@ class BackupTask(var context: Context, var params: WorkerParameters) : Worker(co |
|
|
|
|
val fileName = "sessions_${Date().dateTimeFileFormatted}.csv" |
|
|
|
|
|
|
|
|
|
CoroutineScope(context = Dispatchers.IO).launch { |
|
|
|
|
BackupApi.backupFile(context, email, fileName, csv) |
|
|
|
|
val success = BackupApi.backupFile(context, email, fileName, csv) |
|
|
|
|
Preferences.setSessionsBackupSuccess(success, context) |
|
|
|
|
} |
|
|
|
|
realm.close() |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
private fun backupTransactions(email: String) { |
|
|
|
|
private fun backupTransactions() { |
|
|
|
|
|
|
|
|
|
Timber.d(">>>> backup transactions") |
|
|
|
|
val realm = Realm.getDefaultInstance() |
|
|
|
|
@ -67,7 +77,8 @@ class BackupTask(var context: Context, var params: WorkerParameters) : Worker(co |
|
|
|
|
val fileName = "transactions_${Date().dateTimeFileFormatted}.csv" |
|
|
|
|
|
|
|
|
|
CoroutineScope(context = Dispatchers.IO).launch { |
|
|
|
|
BackupApi.backupFile(context, email, fileName, csv) |
|
|
|
|
val success = BackupApi.backupFile(context, email, fileName, csv) |
|
|
|
|
Preferences.setTransactionsBackupSuccess(success, context) |
|
|
|
|
} |
|
|
|
|
realm.close() |
|
|
|
|
} |