commit 17ddfa5b9c95804616fabd14062e40ae7885971a
parent 115b5ce0d8b465651553daa64f10306bdf75d8fc
Author: rhunk <101876869+rhunk@users.noreply.github.com>
Date: Wed, 24 Jul 2024 13:37:09 +0200
fix(core/account_switcher): backup fidelius databases
Signed-off-by: rhunk <101876869+rhunk@users.noreply.github.com>
Diffstat:
1 file changed, 22 insertions(+), 12 deletions(-)
diff --git a/core/src/main/kotlin/me/rhunk/snapenhance/core/features/impl/experiments/AccountSwitcher.kt b/core/src/main/kotlin/me/rhunk/snapenhance/core/features/impl/experiments/AccountSwitcher.kt
@@ -7,11 +7,7 @@ import android.database.sqlite.SQLiteDatabase
import android.net.Uri
import android.os.ParcelFileDescriptor
import android.widget.FrameLayout
-import androidx.compose.foundation.layout.Arrangement
-import androidx.compose.foundation.layout.Column
-import androidx.compose.foundation.layout.Row
-import androidx.compose.foundation.layout.fillMaxWidth
-import androidx.compose.foundation.layout.padding
+import androidx.compose.foundation.layout.*
import androidx.compose.foundation.lazy.LazyColumn
import androidx.compose.foundation.lazy.items
import androidx.compose.material.icons.Icons
@@ -303,24 +299,38 @@ class AccountSwitcher: Feature("Account Switcher") {
context.coroutineScope.launch(Dispatchers.IO) {
val zipOutputStream = ZipOutputStream(ParcelFileDescriptor.AutoCloseOutputStream(pfd[1]))
- for (file in arrayOf(
+ fun addFile(path: String, file: File) {
+ file.takeIf { it.exists() }?.inputStream()?.use {
+ context.log.verbose("Adding $file to zip")
+ zipOutputStream.putNextEntry(ZipEntry(path))
+ it.copyTo(zipOutputStream)
+ zipOutputStream.closeEntry()
+ }
+ }
+
+ for (path in arrayOf(
"databases/main.db",
"databases/main.db-shm",
"databases/main.db-wal",
"databases/core.db",
"databases/core.db-wal",
"databases/core.db-shm",
+ "databases/fidelius_database.db",
+ "databases/fidelius_database.db-wal",
+ "databases/fidelius_database.db-shm",
"shared_prefs/user_session_shared_pref.xml",
"shared_prefs/user_device_identity_keys.xml",
"shared_prefs/com.google.android.gms.appid.xml",
)) {
- context.androidContext.dataDir.resolve(file).takeIf { it.exists() }?.inputStream()?.use {
- context.log.verbose("Adding $file to zip")
- zipOutputStream.putNextEntry(ZipEntry(file))
- it.copyTo(zipOutputStream)
- zipOutputStream.closeEntry()
- }
+ addFile(path, context.androidContext.dataDir.resolve(path))
}
+
+ context.androidContext.dataDir.resolve("databases").listFiles()?.filter {
+ it.name.contains("_fidelius.db")
+ }?.forEach {
+ addFile("databases/${it.name}", it)
+ }
+
zipOutputStream.flush()
zipOutputStream.close()
}