Kill FavouriteScene AddFavoritesListener

This commit is contained in:
tarsin committed 2023-04-22 15:43:00 +08:00
1 parent ec4446bb9b
commit d200dd9cbe
3 files changed
+28 -53

No files matched your search

@@ -26,7 +26,7 @@ object EhClient {
request.job = scope.launchIO {
val callback: Callback<Any?>? = request.callback
try {
val result: Any? = request.run {
val result: Any = request.run {
if (args == null) {
execute(method)
} else {
@@ -44,20 +44,12 @@ object EhClient {
}
}
suspend fun execute(method: Int, vararg params: Any?): Any? {
suspend fun execute(method: Int, vararg params: Any?): Any {
return when (method) {
METHOD_GET_FAVORITES -> EhEngine.getFavorites(
params[0] as String,
)
METHOD_ADD_FAVORITES_RANGE ->
@Suppress("UNCHECKED_CAST")
EhEngine.addFavoritesRange(
params[0] as LongArray,
params[1] as Array<String?>,
params[2] as Int,
)
METHOD_MODIFY_FAVORITES -> EhEngine.modifyFavorites(
params[0] as String,
params[1] as LongArray,
@@ -87,7 +79,6 @@ object EhClient {
}
const val METHOD_GET_FAVORITES = 8
const val METHOD_ADD_FAVORITES_RANGE = 10
const val METHOD_MODIFY_FAVORITES = 11
const val METHOD_GET_TORRENT_LIST = 12
const val METHOD_ARCHIVE_LIST = 17
@@ -393,7 +393,7 @@ object EhEngine {
gidArray: LongArray,
tokenArray: Array<String?>,
dstCat: Int,
): Void? {
) {
check(gidArray.size == tokenArray.size)
var i = 0
val n = gidArray.size
@@ -401,7 +401,6 @@ object EhEngine {
addFavorites(gidArray[i], tokenArray[i], dstCat, null)
i++
}
return null
}
suspend fun modifyFavorites(
@@ -32,6 +32,7 @@ import androidx.core.view.GravityCompat
import androidx.core.view.ViewCompat
import androidx.core.view.WindowInsetsAnimationCompat
import androidx.drawerlayout.widget.DrawerLayout
import androidx.lifecycle.lifecycleScope
import androidx.recyclerview.widget.LinearLayoutManager
import androidx.recyclerview.widget.RecyclerView
import com.google.android.material.datepicker.CalendarConstraints
@@ -51,6 +52,7 @@ import com.hippo.ehviewer.R
import com.hippo.ehviewer.Settings
import com.hippo.ehviewer.WindowInsetsAnimationHelper
import com.hippo.ehviewer.client.EhClient
import com.hippo.ehviewer.client.EhEngine
import com.hippo.ehviewer.client.EhRequest
import com.hippo.ehviewer.client.EhUrl
import com.hippo.ehviewer.client.data.FavListUrlBuilder
@@ -66,6 +68,9 @@ import com.hippo.widget.FabLayout.OnExpandListener
import com.hippo.yorozuya.ObjectUtils
import com.hippo.yorozuya.SimpleHandler
import com.hippo.yorozuya.ViewUtils
import eu.kanade.tachiyomi.util.lang.launchIO
import eu.kanade.tachiyomi.util.lang.withUIContext
import moe.tarsin.coroutines.runSuspendCatching
import rikka.core.res.resolveColor
import java.time.LocalDateTime
import java.time.ZoneId
@@ -638,13 +643,11 @@ class FavoritesScene :
System.arraycopy(result.catArray, 0, mFavCatArray!!, 0, 10)
}
mFavCountArray = result.countArray
if (mFavCountArray != null) {
mFavCountSum = 0
for (i in 0..9) {
mFavCountSum += mFavCountArray!![i]
}
Settings.putFavCloudCount(mFavCountSum)
mFavCountSum = 0
for (i in 0..9) {
mFavCountSum += mFavCountArray!![i]
}
Settings.putFavCloudCount(mFavCountSum)
updateSearchBar()
mHelper!!.onGetPageData(taskId, 0, 0, result.prev, result.next, result.galleryInfoList)
if (mDrawerAdapter != null) {
@@ -691,28 +694,6 @@ class FavoritesScene :
}
}
private inner class AddFavoritesListener(
context: Context,
private val mTaskId: Int,
private val mKeyword: String?,
private val mBackup: List<GalleryInfo>,
) : EhCallback<FavoritesScene?, Void?>(context) {
override fun onSuccess(result: Void?) {
val scene = this@FavoritesScene
scene.onGetFavoritesLocal(mKeyword, mTaskId)
}
override fun onFailure(e: Exception) {
// TODO It's a failure, add all of backup back to db.
// But how to known which one is failed?
EhDB.putLocalFavorites(mBackup)
val scene = this@FavoritesScene
scene.onGetFavoritesLocal(mKeyword, mTaskId)
}
override fun onCancel() {}
}
private inner class GetFavoritesListener(
context: Context,
private val mTaskId: Int, // Local fav is shown now, but operation need be done for cloud fav
@@ -931,18 +912,22 @@ class FavoritesScene :
}
val modifyGiListBackup: List<GalleryInfo> = ArrayList(mModifyGiList)
mModifyGiList.clear()
val request = EhRequest()
request.setMethod(EhClient.METHOD_ADD_FAVORITES_RANGE)
request.setCallback(
AddFavoritesListener(
context,
taskId,
mUrlBuilder!!.keyword,
modifyGiListBackup,
),
)
request.setArgs(gidArray, tokenArray, mModifyFavCat)
request.enqueue(this@FavoritesScene)
lifecycleScope.launchIO {
runSuspendCatching {
EhEngine.addFavoritesRange(gidArray, tokenArray, mModifyFavCat)
}.onSuccess {
withUIContext {
onGetFavoritesLocal(mUrlBuilder?.keyword, taskId)
}
}.onFailure {
// TODO It's a failure, add all of backup back to db.
// But how to known which one is failed?
EhDB.putLocalFavorites(modifyGiListBackup)
withUIContext {
onGetFavoritesLocal(mUrlBuilder?.keyword, taskId)
}
}
}
} else {
var i = 0
val n = mModifyGiList.size