From b815c924ffaecc9c88eab40bd63a9dda51499eb4 Mon Sep 17 00:00:00 2001 From: FooIbar <118464521+FooIbar@users.noreply.github.com> Date: Tue, 7 Mar 2023 19:07:19 +0800 Subject: [PATCH] Drop PreviewSet --- .../com/hippo/ehviewer/client/EhClient.kt | 4 +- .../com/hippo/ehviewer/client/EhEngine.kt | 6 +- .../ehviewer/client/data/GalleryDetail.kt | 36 +----- .../ehviewer/client/data/GalleryPreview.kt | 23 ++-- .../ehviewer/client/data/LargePreviewSet.kt | 59 ---------- .../ehviewer/client/data/NormalPreviewSet.kt | 75 ------------- .../hippo/ehviewer/client/data/PreviewSet.kt | 26 ----- .../client/parser/GalleryDetailParser.kt | 104 ++++-------------- .../com/hippo/ehviewer/spider/SpiderQueen.kt | 17 ++- .../ehviewer/ui/scene/GalleryDetailScene.kt | 12 +- .../ehviewer/ui/scene/GalleryPreviewsScene.kt | 30 ++--- 11 files changed, 59 insertions(+), 333 deletions(-) delete mode 100644 app/src/main/java/com/hippo/ehviewer/client/data/LargePreviewSet.kt delete mode 100644 app/src/main/java/com/hippo/ehviewer/client/data/NormalPreviewSet.kt delete mode 100644 app/src/main/java/com/hippo/ehviewer/client/data/PreviewSet.kt 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 1e480882e..fc2963ae4 100644 --- a/app/src/main/java/com/hippo/ehviewer/client/EhClient.kt +++ b/app/src/main/java/com/hippo/ehviewer/client/EhClient.kt @@ -58,7 +58,7 @@ object EhClient { params[0] as String? ) - METHOD_GET_PREVIEW_SET -> EhEngine.getPreviewSet( + METHOD_GET_PREVIEW_LIST -> EhEngine.getPreviewList( params[0] as String? ) @@ -165,7 +165,7 @@ object EhClient { const val METHOD_SIGN_IN = 0 const val METHOD_GET_GALLERY_LIST = 1 const val METHOD_GET_GALLERY_DETAIL = 3 - const val METHOD_GET_PREVIEW_SET = 4 + const val METHOD_GET_PREVIEW_LIST = 4 const val METHOD_GET_RATE_GALLERY = 5 const val METHOD_GET_COMMENT_GALLERY = 6 const val METHOD_GET_GALLERY_TOKEN = 7 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 14279f492..89259013e 100644 --- a/app/src/main/java/com/hippo/ehviewer/client/EhEngine.kt +++ b/app/src/main/java/com/hippo/ehviewer/client/EhEngine.kt @@ -26,7 +26,7 @@ import com.hippo.ehviewer.Settings import com.hippo.ehviewer.client.data.GalleryCommentList import com.hippo.ehviewer.client.data.GalleryDetail import com.hippo.ehviewer.client.data.GalleryInfo -import com.hippo.ehviewer.client.data.PreviewSet +import com.hippo.ehviewer.client.data.GalleryPreview import com.hippo.ehviewer.client.exception.EhException import com.hippo.ehviewer.client.exception.ParseException import com.hippo.ehviewer.client.parser.ArchiveParser @@ -336,7 +336,7 @@ object EhEngine { } @Throws(Throwable::class) - suspend fun getPreviewSet(url: String?): Pair { + suspend fun getPreviewList(url: String?): Pair, Int> { val referer = EhUrl.referer Log.d(TAG, url!!) val request = EhRequestBuilder(url, referer).build() @@ -351,7 +351,7 @@ object EhEngine { headers = response.headers body = response.body.string() return Pair.create( - GalleryDetailParser.parsePreviewSet(body!!), + GalleryDetailParser.parsePreviewList(body!!), GalleryDetailParser.parsePreviewPages(body!!) ) } diff --git a/app/src/main/java/com/hippo/ehviewer/client/data/GalleryDetail.kt b/app/src/main/java/com/hippo/ehviewer/client/data/GalleryDetail.kt index cdaa7874c..deb2b4bf8 100644 --- a/app/src/main/java/com/hippo/ehviewer/client/data/GalleryDetail.kt +++ b/app/src/main/java/com/hippo/ehviewer/client/data/GalleryDetail.kt @@ -21,60 +21,26 @@ import kotlinx.parcelize.Parcelize @Parcelize class GalleryDetail( - @JvmField val galleryInfo: GalleryInfo = BaseGalleryInfo(), - - @JvmField var apiUid: Long = -1L, - - @JvmField var apiKey: String? = null, - - @JvmField var torrentCount: Int = 0, - - @JvmField var torrentUrl: String? = null, - - @JvmField var archiveUrl: String? = null, - - @JvmField var parent: String? = null, - - @JvmField var newerVersions: ArrayList = ArrayList(), - - @JvmField var visible: String? = null, - - @JvmField var language: String? = null, - - @JvmField var size: String? = null, - - @JvmField var favoriteCount: Int = 0, - - @JvmField var isFavorited: Boolean = false, - - @JvmField var ratingCount: Int = 0, - - @JvmField var tags: Array? = null, - - @JvmField var comments: GalleryCommentList? = null, - - @JvmField var previewPages: Int = 0, @IgnoredOnParcel - @JvmField - var previewSet: PreviewSet? = null, + var previewList: List = emptyList(), ) : AbstractGalleryInfo by galleryInfo, GalleryInfo { override fun generateSLang() { val index = LANGUAGES.indexOf(language) diff --git a/app/src/main/java/com/hippo/ehviewer/client/data/GalleryPreview.kt b/app/src/main/java/com/hippo/ehviewer/client/data/GalleryPreview.kt index 984d7374c..fe39dbfc9 100644 --- a/app/src/main/java/com/hippo/ehviewer/client/data/GalleryPreview.kt +++ b/app/src/main/java/com/hippo/ehviewer/client/data/GalleryPreview.kt @@ -21,23 +21,16 @@ import kotlinx.parcelize.Parcelize @Parcelize class GalleryPreview( - @JvmField - var imageUrl: String? = null, - @JvmField - var pageUrl: String? = null, - @JvmField - var position: Int = 0, - @JvmField - var offsetX: Int = Int.MIN_VALUE, - @JvmField - var offsetY: Int = Int.MIN_VALUE, - @JvmField - var clipWidth: Int = Int.MIN_VALUE, - @JvmField - var clipHeight: Int = Int.MIN_VALUE, + private val imageUrl: String, + val pageUrl: String, + val position: Int, + private val offsetX: Int = Int.MIN_VALUE, + private val offsetY: Int = Int.MIN_VALUE, + private val clipWidth: Int = Int.MIN_VALUE, + private val clipHeight: Int = Int.MIN_VALUE, ) : Parcelable { fun load(view: LoadImageView) { view.setClip(offsetX, offsetY, clipWidth, clipHeight) - view.load(imageUrl!!) + view.load(imageUrl) } } \ No newline at end of file diff --git a/app/src/main/java/com/hippo/ehviewer/client/data/LargePreviewSet.kt b/app/src/main/java/com/hippo/ehviewer/client/data/LargePreviewSet.kt deleted file mode 100644 index 29198b418..000000000 --- a/app/src/main/java/com/hippo/ehviewer/client/data/LargePreviewSet.kt +++ /dev/null @@ -1,59 +0,0 @@ -/* - * Copyright 2016 Hippo Seven - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package com.hippo.ehviewer.client.data - -import com.hippo.widget.LoadImageView -import com.hippo.yorozuya.collect.IntList - -class LargePreviewSet( - private val mPositionList: IntList = IntList(), - private val mImageUrlList: ArrayList = ArrayList(), - private val mPageUrlList: ArrayList = ArrayList() -) : PreviewSet() { - - fun addItem(index: Int, imageUrl: String, pageUrl: String) { - mPositionList.add(index) - mImageUrlList.add(imageUrl) - mPageUrlList.add(pageUrl) - } - - override fun size(): Int { - return mImageUrlList.size - } - - override fun getPosition(index: Int): Int { - return mPositionList[index] - } - - override fun getPageUrlAt(index: Int): String { - return mPageUrlList[index] - } - - override fun getGalleryPreview(gid: Long, index: Int): GalleryPreview { - val galleryPreview = GalleryPreview() - galleryPreview.position = mPositionList[index] - galleryPreview.imageUrl = mImageUrlList[index] - galleryPreview.pageUrl = mPageUrlList[index] - return galleryPreview - } - - override fun load(view: LoadImageView, gid: Long, index: Int) { - view.resetClip() - view.load( - mImageUrlList[index] - ) - } -} \ No newline at end of file diff --git a/app/src/main/java/com/hippo/ehviewer/client/data/NormalPreviewSet.kt b/app/src/main/java/com/hippo/ehviewer/client/data/NormalPreviewSet.kt deleted file mode 100644 index d96c4872c..000000000 --- a/app/src/main/java/com/hippo/ehviewer/client/data/NormalPreviewSet.kt +++ /dev/null @@ -1,75 +0,0 @@ -/* - * Copyright 2016 Hippo Seven - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package com.hippo.ehviewer.client.data - -import com.hippo.widget.LoadImageView -import com.hippo.yorozuya.collect.IntList - -class NormalPreviewSet( - private var mPositionList: IntList = IntList(), - private var mImageUrlList: ArrayList = ArrayList(), - private var mOffsetXList: IntList = IntList(), - private var mOffsetYList: IntList = IntList(), - private var mClipWidthList: IntList = IntList(), - private var mClipHeightList: IntList = IntList(), - private var mPageUrlList: ArrayList = ArrayList() -) : PreviewSet() { - - fun addItem( - position: Int, imageUrl: String, xOffset: Int, yOffset: Int, width: Int, - height: Int, pageUrl: String - ) { - mPositionList.add(position) - mImageUrlList.add(imageUrl) - mOffsetXList.add(xOffset) - mOffsetYList.add(yOffset) - mClipWidthList.add(width) - mClipHeightList.add(height) - mPageUrlList.add(pageUrl) - } - - override fun size(): Int { - return mPositionList.size - } - - override fun getPosition(index: Int): Int { - return mPositionList[index] - } - - override fun getPageUrlAt(index: Int): String { - return mPageUrlList[index] - } - - override fun getGalleryPreview(gid: Long, index: Int): GalleryPreview { - val galleryPreview = GalleryPreview() - galleryPreview.position = mPositionList[index] - galleryPreview.imageUrl = mImageUrlList[index] - galleryPreview.pageUrl = mPageUrlList[index] - galleryPreview.offsetX = mOffsetXList[index] - galleryPreview.offsetY = mOffsetYList[index] - galleryPreview.clipWidth = mClipWidthList[index] - galleryPreview.clipHeight = mClipHeightList[index] - return galleryPreview - } - - override fun load(view: LoadImageView, gid: Long, index: Int) { - view.setClip( - mOffsetXList[index], mOffsetYList[index], - mClipWidthList[index], mClipHeightList[index] - ) - view.load(mImageUrlList[index]) - } -} \ No newline at end of file diff --git a/app/src/main/java/com/hippo/ehviewer/client/data/PreviewSet.kt b/app/src/main/java/com/hippo/ehviewer/client/data/PreviewSet.kt deleted file mode 100644 index a3996468b..000000000 --- a/app/src/main/java/com/hippo/ehviewer/client/data/PreviewSet.kt +++ /dev/null @@ -1,26 +0,0 @@ -/* - * Copyright 2016 Hippo Seven - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package com.hippo.ehviewer.client.data - -import com.hippo.widget.LoadImageView - -abstract class PreviewSet { - abstract fun size(): Int - abstract fun getPosition(index: Int): Int - abstract fun getPageUrlAt(index: Int): String - abstract fun getGalleryPreview(gid: Long, index: Int): GalleryPreview - abstract fun load(view: LoadImageView, gid: Long, index: Int) -} \ No newline at end of file diff --git a/app/src/main/java/com/hippo/ehviewer/client/parser/GalleryDetailParser.kt b/app/src/main/java/com/hippo/ehviewer/client/parser/GalleryDetailParser.kt index ef73097d1..7fb3dfd6e 100644 --- a/app/src/main/java/com/hippo/ehviewer/client/parser/GalleryDetailParser.kt +++ b/app/src/main/java/com/hippo/ehviewer/client/parser/GalleryDetailParser.kt @@ -24,10 +24,8 @@ import com.hippo.ehviewer.client.data.BaseGalleryInfo import com.hippo.ehviewer.client.data.GalleryComment import com.hippo.ehviewer.client.data.GalleryCommentList import com.hippo.ehviewer.client.data.GalleryDetail +import com.hippo.ehviewer.client.data.GalleryPreview import com.hippo.ehviewer.client.data.GalleryTagGroup -import com.hippo.ehviewer.client.data.LargePreviewSet -import com.hippo.ehviewer.client.data.NormalPreviewSet -import com.hippo.ehviewer.client.data.PreviewSet import com.hippo.ehviewer.client.exception.EhException import com.hippo.ehviewer.client.exception.OffensiveException import com.hippo.ehviewer.client.exception.ParseException @@ -97,8 +95,8 @@ object GalleryDetailParser { parseDetail(galleryDetail, document, body) galleryDetail.tags = parseTagGroups(document) galleryDetail.comments = parseComments(document) - galleryDetail.previewPages = parsePreviewPages(document, body) - galleryDetail.previewSet = parsePreviewSet(document, body) + galleryDetail.previewPages = parsePreviewPages(body) + galleryDetail.previewList = parsePreviewList(body) // Generate simpleLanguage for local favorites galleryDetail.generateSLang() @@ -447,26 +445,9 @@ object GalleryDetailParser { } } - /** - * Parse preview pages with html parser - */ - @Throws(ParseException::class) - fun parsePreviewPages(document: Document, body: String?): Int { - return try { - val ptt = document.getElementsByClass("ptt").first()!! - val elements = ptt.child(0).child(0).children() - elements[elements.size - 2].text().toInt() - } catch (e: Throwable) { - ExceptionUtils.throwIfFatal(e) - e.printStackTrace() - throw ParseException("Can't parse preview pages", body!!) - } - } - /** * Parse preview pages with regular expressions */ - @JvmStatic @Throws(ParseException::class) fun parsePreviewPages(body: String): Int { return PATTERN_PREVIEW_PAGES.find(body)?.groupValues?.get(1)?.toIntOrNull() @@ -476,7 +457,6 @@ object GalleryDetailParser { /** * Parse pages with regular expressions */ - @JvmStatic @Throws(ParseException::class) fun parsePages(body: String): Int { return PATTERN_PAGES.find(body)?.groupValues?.get(1)?.toIntOrNull() @@ -484,21 +464,11 @@ object GalleryDetailParser { } @Throws(ParseException::class) - fun parsePreviewSet(d: Document, body: String): PreviewSet { + fun parsePreviewList(body: String): List { return try { - parseLargePreviewSet(d, body) + parseLargePreview(body) } catch (e: ParseException) { - parseNormalPreviewSet(body) - } - } - - @JvmStatic - @Throws(ParseException::class) - fun parsePreviewSet(body: String): PreviewSet { - return try { - parseLargePreviewSet(body) - } catch (e: ParseException) { - parseNormalPreviewSet(body) + parseNormalPreview(body) } } @@ -506,67 +476,37 @@ object GalleryDetailParser { * Parse large previews with regular expressions */ @Throws(ParseException::class) - private fun parseLargePreviewSet(d: Document, body: String): LargePreviewSet { - return try { - val largePreviewSet = LargePreviewSet() - val gdt = d.getElementById("gdt")!! - val gdtls = gdt.getElementsByClass("gdtl") - val n = gdtls.size - if (n == 0) { - throw ParseException("Can't parse large preview", body) - } - for (i in 0 until n) { - var element = gdtls[i].child(0) - val pageUrl = element.attr("href") - element = element.child(0) - val imageUrl = element.attr("src") - val index = element.attr("alt").toInt() - 1 - largePreviewSet.addItem(index, imageUrl, pageUrl) - } - largePreviewSet - } catch (e: Throwable) { - ExceptionUtils.throwIfFatal(e) - throw ParseException("Can't parse large preview", body) - } - } - - /** - * Parse large previews with regular expressions - */ - @Throws(ParseException::class) - private fun parseLargePreviewSet(body: String): LargePreviewSet { - val largePreviewSet = LargePreviewSet() - PATTERN_LARGE_PREVIEW.findAll(body).forEach { - val index = (it.groupValues[2].toIntOrNull() ?: return@forEach) - 1 + private fun parseLargePreview(body: String): List { + val list = PATTERN_LARGE_PREVIEW.findAll(body).mapNotNull { + val index = (it.groupValues[2].toIntOrNull() ?: return@mapNotNull null) - 1 val imageUrl = it.groupValues[3].trim() val pageUrl = it.groupValues[1].trim() - largePreviewSet.addItem(index, imageUrl, pageUrl) - } - if (largePreviewSet.size() == 0) { + GalleryPreview(imageUrl, pageUrl, index) + }.toList() + if (list.isEmpty()) { throw ParseException("Can't parse large preview", body) } - return largePreviewSet + return list } /** * Parse normal previews with regular expressions */ @Throws(ParseException::class) - private fun parseNormalPreviewSet(body: String): NormalPreviewSet { - val normalPreviewSet = NormalPreviewSet() - PATTERN_NORMAL_PREVIEW.findAll(body).forEach { - val position = (it.groupValues[6].toIntOrNull() ?: return@forEach) - 1 + private fun parseNormalPreview(body: String): List { + val list = PATTERN_NORMAL_PREVIEW.findAll(body).mapNotNull { + val position = (it.groupValues[6].toIntOrNull() ?: return@mapNotNull null) - 1 val imageUrl = it.groupValues[3].trim() val xOffset = it.groupValues[4].toIntOrNull() ?: 0 val yOffset = 0 - val width = it.groupValues[1].toIntOrNull() ?: return@forEach - val height = it.groupValues[2].toIntOrNull() ?: return@forEach + val width = it.groupValues[1].toIntOrNull() ?: return@mapNotNull null + val height = it.groupValues[2].toIntOrNull() ?: return@mapNotNull null val pageUrl = it.groupValues[5].trim() - normalPreviewSet.addItem(position, imageUrl, xOffset, yOffset, width, height, pageUrl) - } - if (normalPreviewSet.size() == 0) { + GalleryPreview(imageUrl, pageUrl, position, xOffset, yOffset, width, height) + }.toList() + if (list.isEmpty()) { throw ParseException("Can't parse normal preview", body) } - return normalPreviewSet + return list } } diff --git a/app/src/main/java/com/hippo/ehviewer/spider/SpiderQueen.kt b/app/src/main/java/com/hippo/ehviewer/spider/SpiderQueen.kt index a8276ee81..3351947de 100644 --- a/app/src/main/java/com/hippo/ehviewer/spider/SpiderQueen.kt +++ b/app/src/main/java/com/hippo/ehviewer/spider/SpiderQueen.kt @@ -34,7 +34,7 @@ import com.hippo.ehviewer.client.data.GalleryInfo import com.hippo.ehviewer.client.exception.ParseException import com.hippo.ehviewer.client.parser.GalleryDetailParser.parsePages import com.hippo.ehviewer.client.parser.GalleryDetailParser.parsePreviewPages -import com.hippo.ehviewer.client.parser.GalleryDetailParser.parsePreviewSet +import com.hippo.ehviewer.client.parser.GalleryDetailParser.parsePreviewList import com.hippo.ehviewer.client.parser.GalleryMultiPageViewerPTokenParser import com.hippo.ehviewer.client.parser.GalleryPageUrlParser import com.hippo.image.Image @@ -339,22 +339,19 @@ class SpiderQueen private constructor(val galleryInfo: GalleryInfo) : CoroutineS @Throws(ParseException::class) private fun readPreviews(body: String, index: Int, spiderInfo: SpiderInfo) { spiderInfo.previewPages = parsePreviewPages(body) - val previewSet = parsePreviewSet(body) - if (previewSet.size() > 0) { + val previewList = parsePreviewList(body) + if (previewList.isNotEmpty()) { if (index == 0) { - spiderInfo.previewPerPage = previewSet.size() + spiderInfo.previewPerPage = previewList.size } else { - spiderInfo.previewPerPage = previewSet.getPosition(0) / index + spiderInfo.previewPerPage = previewList[0].position / index } } - var i = 0 - val n = previewSet.size() - while (i < n) { - val result = GalleryPageUrlParser.parse(previewSet.getPageUrlAt(i)) + previewList.forEach { + val result = GalleryPageUrlParser.parse(it.pageUrl) if (result != null) { spiderInfo.pTokenMap[result.page] = result.pToken } - i++ } } diff --git a/app/src/main/java/com/hippo/ehviewer/ui/scene/GalleryDetailScene.kt b/app/src/main/java/com/hippo/ehviewer/ui/scene/GalleryDetailScene.kt index b68c05037..63b66dbe6 100755 --- a/app/src/main/java/com/hippo/ehviewer/ui/scene/GalleryDetailScene.kt +++ b/app/src/main/java/com/hippo/ehviewer/ui/scene/GalleryDetailScene.kt @@ -709,8 +709,8 @@ class GalleryDetailScene : CollapsingToolbarScene(), View.OnClickListener, Downl _binding ?: return binding.content.previews.run { gridLayout.removeAllViews() - val previewSet = gd.previewSet - if (gd.previewPages <= 0 || previewSet == null || previewSet.size() == 0) { + val previewList = gd.previewList + if (gd.previewPages <= 0 || previewList.isEmpty()) { previewText.setText(R.string.no_previews) return } else if (gd.previewPages == 1) { @@ -722,17 +722,17 @@ class GalleryDetailScene : CollapsingToolbarScene(), View.OnClickListener, Downl gridLayout.setColumnSize(columnWidth) gridLayout.setStrategy(SimpleGridAutoSpanLayout.STRATEGY_SUITABLE_SIZE) viewLifecycleOwner.lifecycleScope.launchIO { - for (i in 0 until previewSet.size()) { + previewList.forEach { val view = inflater.inflate(R.layout.item_gallery_preview, gridLayout, false) val image = view.findViewById(R.id.image) withUIContext { gridLayout.addView(view) - image.setTag(R.id.index, i) + image.setTag(R.id.index, it.position) image.setOnClickListener(this@GalleryDetailScene) val text = view.findViewById(R.id.text) - text.text = (previewSet.getPosition(i) + 1).toString() + text.text = (it.position + 1).toString() } - previewSet.load(image, gd.gid, i) + it.load(image) } } } 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 161b77bcc..7125b585c 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 @@ -40,7 +40,6 @@ import com.hippo.ehviewer.client.EhUrl import com.hippo.ehviewer.client.data.GalleryDetail import com.hippo.ehviewer.client.data.GalleryInfo import com.hippo.ehviewer.client.data.GalleryPreview -import com.hippo.ehviewer.client.data.PreviewSet import com.hippo.ehviewer.client.exception.EhException import com.hippo.ehviewer.databinding.SceneGalleryPreviewsBinding import com.hippo.util.getParcelableCompat @@ -185,22 +184,13 @@ class GalleryPreviewsScene : BaseToolbarScene() { return true } - private fun onGetPreviewSetSuccess(result: Pair, taskId: Int) { + private fun onGetPreviewListSuccess(result: Pair, Int>, taskId: Int) { if (null != mHelper && mHelper!!.isCurrentTask(taskId) && null != mGalleryInfo) { - val previewSet = result.first - val size = previewSet.size() - val list = ArrayList(size) - for (i in 0 until size) { - list.add(previewSet.getGalleryPreview(mGalleryInfo!!.gid, i)) - } - mHelper!!.onGetPageData( - taskId, result.second, 0, null, null, - list as List? - ) + mHelper!!.onGetPageData(taskId, result.second, 0, null, null, result.first) } } - private fun onGetPreviewSetFailure(e: Exception, taskId: Int) { + private fun onGetPreviewListFailure(e: Exception, taskId: Int) { if (mHelper != null && mHelper!!.isCurrentTask(taskId)) { mHelper!!.onGetException(taskId, e) } @@ -216,18 +206,18 @@ class GalleryPreviewsScene : BaseToolbarScene() { } } - private inner class GetPreviewSetListener( + private inner class GetPreviewListListener( context: Context, private val mTaskId: Int - ) : EhCallback>(context) { - override fun onSuccess(result: Pair) { + ) : EhCallback, Int>>(context) { + override fun onSuccess(result: Pair, Int>) { val scene = this@GalleryPreviewsScene - scene.onGetPreviewSetSuccess(result, mTaskId) + scene.onGetPreviewListSuccess(result, mTaskId) } override fun onFailure(e: Exception) { val scene = this@GalleryPreviewsScene - scene.onGetPreviewSetFailure(e, mTaskId) + scene.onGetPreviewListFailure(e, mTaskId) } override fun onCancel() {} @@ -279,9 +269,9 @@ class GalleryPreviewsScene : BaseToolbarScene() { val url = EhUrl.getGalleryDetailUrl(mGalleryInfo!!.gid, mGalleryInfo!!.token, page, false) val request = EhRequest() - request.setMethod(EhClient.METHOD_GET_PREVIEW_SET) + request.setMethod(EhClient.METHOD_GET_PREVIEW_LIST) request.setCallback( - GetPreviewSetListener( + GetPreviewListListener( context, taskId )