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:
Mcore/src/main/kotlin/me/rhunk/snapenhance/core/features/impl/experiments/AccountSwitcher.kt | 34++++++++++++++++++++++------------
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() }