Kill FavouriteScene AddFavoritesListener
This commit is contained in:
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
|
||||
|
||||
Reference in new issue
Block a user