From f36480d5d65f70f30a28ec26d73155e0f710657f Mon Sep 17 00:00:00 2001 From: tarsin Date: Sat, 22 Apr 2023 15:03:32 +0800 Subject: [PATCH] Kill GalleryPreviewsScene GetPreviewListListener --- .../com/hippo/ehviewer/client/EhClient.kt | 5 -- .../ehviewer/ui/scene/GalleryPreviewsScene.kt | 73 ++++++------------- .../java/com/hippo/widget/ContentLayout.kt | 6 +- 3 files changed, 26 insertions(+), 58 deletions(-) diff --git a/app/src/main/java/com/hippo/ehviewer/client/EhClient.kt b/app/src/main/java/com/hippo/ehviewer/client/EhClient.kt index 92c2b0aff..7cc0c536b 100644 --- a/app/src/main/java/com/hippo/ehviewer/client/EhClient.kt +++ b/app/src/main/java/com/hippo/ehviewer/client/EhClient.kt @@ -55,10 +55,6 @@ object EhClient { params[0] as String, ) - METHOD_GET_PREVIEW_LIST -> EhEngine.getPreviewList( - params[0] as String, - ) - METHOD_GET_COMMENT_GALLERY -> EhEngine.commentGallery( params[0] as String?, params[1] as String, @@ -120,7 +116,6 @@ object EhClient { const val METHOD_GET_GALLERY_LIST = 1 const val METHOD_GET_GALLERY_DETAIL = 3 - const val METHOD_GET_PREVIEW_LIST = 4 const val METHOD_GET_COMMENT_GALLERY = 6 const val METHOD_GET_GALLERY_TOKEN = 7 const val METHOD_GET_FAVORITES = 8 diff --git a/app/src/main/java/com/hippo/ehviewer/ui/scene/GalleryPreviewsScene.kt b/app/src/main/java/com/hippo/ehviewer/ui/scene/GalleryPreviewsScene.kt index ccce5d7f8..85486dea1 100644 --- a/app/src/main/java/com/hippo/ehviewer/ui/scene/GalleryPreviewsScene.kt +++ b/app/src/main/java/com/hippo/ehviewer/ui/scene/GalleryPreviewsScene.kt @@ -27,8 +27,7 @@ import com.hippo.app.BaseDialogBuilder import com.hippo.easyrecyclerview.MarginItemDecoration import com.hippo.ehviewer.R import com.hippo.ehviewer.Settings -import com.hippo.ehviewer.client.EhClient -import com.hippo.ehviewer.client.EhRequest +import com.hippo.ehviewer.client.EhEngine import com.hippo.ehviewer.client.EhUrl import com.hippo.ehviewer.client.data.GalleryDetail import com.hippo.ehviewer.client.data.GalleryPreview @@ -41,6 +40,7 @@ import com.hippo.widget.ContentLayout.ContentHelper import com.hippo.widget.recyclerview.AutoGridLayoutManager import com.hippo.widget.recyclerview.STRATEGY_SUITABLE_SIZE import eu.kanade.tachiyomi.util.lang.launchIO +import moe.tarsin.coroutines.runSuspendCatching import java.util.Locale class GalleryPreviewsScene : BaseToolbarScene() { @@ -163,44 +163,6 @@ class GalleryPreviewsScene : BaseToolbarScene() { return false } - private fun onGetPreviewListSuccess(result: Pair, Int>, taskId: Int) { - if (null != mHelper && mHelper!!.isCurrentTask(taskId) && null != mGalleryDetail) { - if (Settings.preloadThumbAggressively) { - lifecycleScope.launchIO { - result.first.forEach { - context?.run { - imageLoader.enqueue(imageRequest(it.imageUrl)) - } - } - } - } - mHelper!!.onGetPageData(taskId, result.second, 0, null, null, result.first) - } - } - - private fun onGetPreviewListFailure(e: Exception, taskId: Int) { - if (mHelper != null && mHelper!!.isCurrentTask(taskId)) { - mHelper!!.onGetException(taskId, e) - } - } - - private inner class GetPreviewListListener( - context: Context, - private val mTaskId: Int, - ) : EhCallback, Int>>(context) { - override fun onSuccess(result: Pair, Int>) { - val scene = this@GalleryPreviewsScene - scene.onGetPreviewListSuccess(result, mTaskId) - } - - override fun onFailure(e: Exception) { - val scene = this@GalleryPreviewsScene - scene.onGetPreviewListFailure(e, mTaskId) - } - - override fun onCancel() {} - } - private inner class GalleryPreviewHelper : ContentHelper() { override fun getPageData( taskId: Int, @@ -209,18 +171,31 @@ class GalleryPreviewsScene : BaseToolbarScene() { index: String?, isNext: Boolean, ) { - val activity = mainActivity - if (null == activity || null == mGalleryDetail) { + val detail = mGalleryDetail ?: run { onGetException(taskId, EhException(getString(R.string.error_cannot_find_gallery))) return } - val url = - EhUrl.getGalleryDetailUrl(mGalleryDetail!!.gid, mGalleryDetail!!.token, page, false) - val request = EhRequest() - request.setMethod(EhClient.METHOD_GET_PREVIEW_LIST) - request.setCallback(GetPreviewListListener(context, taskId)) - request.setArgs(url) - request.enqueue(this@GalleryPreviewsScene) + detail.run { + val url = EhUrl.getGalleryDetailUrl(gid, token, page, false) + lifecycleScope.launchIO { + runSuspendCatching { + EhEngine.getPreviewList(url) + }.onSuccess { result -> + if (Settings.preloadThumbAggressively) { + lifecycleScope.launchIO { + result.first.forEach { + context.run { + imageLoader.enqueue(imageRequest(it.imageUrl)) + } + } + } + } + mHelper?.takeIf { it.isCurrentTask(taskId) }?.run { onGetPageData(taskId, result.second, 0, null, null, result.first) } + }.onFailure { + mHelper?.takeIf { it.isCurrentTask(taskId) }?.run { onGetException(taskId, it) } + } + } + } } override val context diff --git a/app/src/main/java/com/hippo/widget/ContentLayout.kt b/app/src/main/java/com/hippo/widget/ContentLayout.kt index 6147d6ffe..9aacf7230 100644 --- a/app/src/main/java/com/hippo/widget/ContentLayout.kt +++ b/app/src/main/java/com/hippo/widget/ContentLayout.kt @@ -555,14 +555,12 @@ class ContentLayout(context: Context, attrs: AttributeSet? = null) : FrameLayout } } - fun onGetException(taskId: Int, e: Exception?) { + fun onGetException(taskId: Int, e: Throwable) { if (mCurrentTaskId == taskId) { showProgress(PROGRESS_NONE) - val readableError = if (e != null) { + val readableError = run { e.printStackTrace() ExceptionUtils.getReadableString(e) - } else { - context.getString(R.string.error_unknown) } if (mViewTransition.shownViewIndex == 0) { Toast.makeText(context, readableError, Toast.LENGTH_SHORT).show()