[DO NOT USE] Import backupFav
This commit is contained in:
1 parent
48e12154c3
commit
b41e564411
1 file changed
+39
-1
@@ -35,13 +35,17 @@ import com.hippo.ehviewer.BuildConfig
|
||||
import com.hippo.ehviewer.EhDB
|
||||
import com.hippo.ehviewer.R
|
||||
import com.hippo.ehviewer.Settings
|
||||
import com.hippo.ehviewer.client.EhEngine
|
||||
import com.hippo.ehviewer.client.data.FavListUrlBuilder
|
||||
import com.hippo.ehviewer.ui.legacy.BaseDialogBuilder
|
||||
import com.hippo.ehviewer.ui.login.LocalNavController
|
||||
import com.hippo.ehviewer.util.LogCat
|
||||
import com.hippo.ehviewer.util.ReadableTime
|
||||
import eu.kanade.tachiyomi.util.lang.withUIContext
|
||||
import kotlinx.coroutines.Dispatchers
|
||||
import kotlinx.coroutines.delay
|
||||
import kotlinx.coroutines.launch
|
||||
import moe.tarsin.coroutines.runSuspendCatching
|
||||
import java.io.File
|
||||
import java.util.zip.ZipEntry
|
||||
import java.util.zip.ZipOutputStream
|
||||
@@ -198,10 +202,44 @@ fun AdvancedScreen() {
|
||||
title = stringResource(id = R.string.settings_advanced_import_data),
|
||||
summary = stringResource(id = R.string.settings_advanced_import_data_summary),
|
||||
) { importLauncher.launch("application/octet-stream") }
|
||||
val backupNothing = stringResource(id = R.string.settings_advanced_backup_favorite_nothing)
|
||||
val backupFailed = stringResource(id = R.string.settings_advanced_backup_favorite_failed)
|
||||
val backupSucceed = stringResource(id = R.string.settings_advanced_backup_favorite_success)
|
||||
Preference(
|
||||
title = stringResource(id = R.string.settings_advanced_backup_favorite),
|
||||
summary = stringResource(id = R.string.settings_advanced_backup_favorite_summary),
|
||||
)
|
||||
) {
|
||||
val favListUrlBuilder = FavListUrlBuilder()
|
||||
var favTotal = 0
|
||||
var favIndex = 0
|
||||
tailrec suspend fun doBackup() {
|
||||
val result = EhEngine.getFavorites(favListUrlBuilder.build())
|
||||
if (result.galleryInfoList.isEmpty()) {
|
||||
snackbarHostState.showSnackbar(backupNothing)
|
||||
} else {
|
||||
if (favTotal == 0) favTotal = result.countArray.sum()
|
||||
favIndex += result.galleryInfoList.size
|
||||
val status = "($favIndex/$favTotal)"
|
||||
EhDB.putLocalFavorites(result.galleryInfoList)
|
||||
snackbarHostState.showSnackbar(context.getString(R.string.settings_advanced_backup_favorite_start, status))
|
||||
if (result.next != null) {
|
||||
delay(Settings.downloadDelay.toLong())
|
||||
favListUrlBuilder.setIndex(result.next, true)
|
||||
doBackup()
|
||||
}
|
||||
}
|
||||
}
|
||||
coroutineScope.launch {
|
||||
runSuspendCatching {
|
||||
doBackup()
|
||||
}.onSuccess {
|
||||
snackbarHostState.showSnackbar(backupSucceed)
|
||||
}.onFailure {
|
||||
it.printStackTrace()
|
||||
snackbarHostState.showSnackbar(backupFailed)
|
||||
}
|
||||
}
|
||||
}
|
||||
Preference(
|
||||
title = stringResource(id = R.string.open_by_default),
|
||||
summary = null,
|
||||
|
||||
Reference in new issue
Block a user