From 39f76246c8fede1a98353578fabe1bbc7a91d078 Mon Sep 17 00:00:00 2001 From: FooIbar <118464521+FooIbar@users.noreply.github.com> Date: Sun, 16 Jul 2023 13:29:42 +0800 Subject: [PATCH] Fix favorites move from local to cloud --- .../java/com/hippo/ehviewer/client/EhEngine.kt | 5 ++--- .../hippo/ehviewer/ui/scene/FavoritesScene.kt | 17 +++++++++++------ 2 files changed, 13 insertions(+), 9 deletions(-) diff --git a/app/src/main/java/com/hippo/ehviewer/client/EhEngine.kt b/app/src/main/java/com/hippo/ehviewer/client/EhEngine.kt index 7ffee7760..1bf8ca5dd 100644 --- a/app/src/main/java/com/hippo/ehviewer/client/EhEngine.kt +++ b/app/src/main/java/com/hippo/ehviewer/client/EhEngine.kt @@ -334,7 +334,6 @@ object EhEngine { formBody { add("ddact", catStr) gidArray.forEach { add("modifygids[]", it.toString()) } - add("apply", "Apply") } }.executeAndParsingWith(FavoritesParser::parse).apply { fillGalleryList(galleryInfoList, url, false) } } @@ -481,7 +480,7 @@ object EhEngine { if (filter) list.removeAll { EhFilter.filterUploader(it) || EhFilter.filterTag(it) || EhFilter.filterTagNamespace(it) } } - suspend fun addFavoritesRange(gidTokenArray: Array>, dstCat: Int) { - gidTokenArray.forEach { (gid, token) -> addFavorites(gid, token, dstCat) } + suspend fun addFavoritesRange(galleryList: List>, dstCat: Int) { + galleryList.forEach { (gid, token) -> addFavorites(gid, token, dstCat) } } } diff --git a/app/src/main/java/com/hippo/ehviewer/ui/scene/FavoritesScene.kt b/app/src/main/java/com/hippo/ehviewer/ui/scene/FavoritesScene.kt index 8dc9b3929..08c47fc47 100644 --- a/app/src/main/java/com/hippo/ehviewer/ui/scene/FavoritesScene.kt +++ b/app/src/main/java/com/hippo/ehviewer/ui/scene/FavoritesScene.kt @@ -495,8 +495,8 @@ class FavoritesScene : SearchBarScene() { val gidArray = info.map { it.gid }.toLongArray() EhDB.removeLocalFavorites(gidArray) } else { - val delArray = info.map { it.gid to it.token!! }.toTypedArray() - EhEngine.addFavoritesRange(delArray, -1) + val delList = info.map { it.gid to it.token!! } + EhEngine.addFavoritesRange(delList, -1) } mAdapter?.refresh() } @@ -514,15 +514,20 @@ class FavoritesScene : SearchBarScene() { // Move from local to cloud val gidArray = info.map { it.gid }.toLongArray() EhDB.removeLocalFavorites(gidArray) - } - if (dstCat == FavListUrlBuilder.FAV_CAT_LOCAL) { + val galleryList = info.map { it.gid to it.token!! } + runCatching { + EhEngine.addFavoritesRange(galleryList, dstCat) + } + } else if (dstCat == FavListUrlBuilder.FAV_CAT_LOCAL) { // Move from cloud to local EhDB.putLocalFavorites(info) } else { - // Move from cloud/local to cloud + // Move from cloud to cloud val gidArray = info.map { it.gid }.toLongArray() val url = ehUrl { addPathSegments(EhUrl.FAV_PATH) }.toString() - EhEngine.modifyFavorites(url, gidArray, dstCat) + runCatching { + EhEngine.modifyFavorites(url, gidArray, dstCat) + } } mAdapter?.refresh() }