app: move ByteArray interpolation to BackupHandler

Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>
This commit is contained in:
Harsh Shandilya 2021-04-03 15:15:53 +05:30
parent 31fbc8c95c
commit b4069af1c7
No known key found for this signature in database
GPG key ID: 366D7BBAD1031E80
2 changed files with 6 additions and 6 deletions

View file

@ -17,15 +17,15 @@ constructor(
) {
private val adapter = moshi.adapter<List<SavedPost>>()
suspend fun exportSavedPosts(): String {
suspend fun exportSavedPosts(): ByteArray {
val posts =
withContext(Dispatchers.IO) { database.savedPostQueries.selectAllPosts().executeAsList() }
return adapter.toJson(posts)
return adapter.toJson(posts).toByteArray(Charsets.UTF_8)
}
suspend fun importSavedPosts(json: String) {
suspend fun importSavedPosts(json: ByteArray) {
withContext(Dispatchers.IO) {
val posts = requireNotNull(adapter.fromJson(json))
val posts = requireNotNull(adapter.fromJson(json.toString(Charsets.UTF_8)))
database.transaction { posts.forEach { database.savedPostQueries.insertOrReplacePost(it) } }
}
}

View file

@ -24,7 +24,7 @@ fun BackupOption(
if (uri == null) return@registerForActivityResult
context.contentResolver.openOutputStream(uri)?.let {
coroutineScope.launch(Dispatchers.IO) {
it.write(backupHandler.exportSavedPosts().toByteArray(Charsets.UTF_8))
it.write(backupHandler.exportSavedPosts())
it.close()
}
}
@ -47,7 +47,7 @@ fun RestoreOption(
if (uri == null) return@registerForActivityResult
context.contentResolver.openInputStream(uri)?.let {
coroutineScope.launch(Dispatchers.IO) {
backupHandler.importSavedPosts(it.readBytes().toString(Charsets.UTF_8))
backupHandler.importSavedPosts(it.readBytes())
it.close()
}
}