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 74c1af98e..0d23a6868 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 @@ -113,9 +113,7 @@ import com.hippo.yorozuya.ViewUtils import com.hippo.yorozuya.collect.IntList import eu.kanade.tachiyomi.ui.reader.ReaderActivity import eu.kanade.tachiyomi.util.lang.launchIO -import eu.kanade.tachiyomi.util.lang.launchNonCancellable import eu.kanade.tachiyomi.util.lang.withUIContext -import kotlinx.coroutines.delay import okhttp3.HttpUrl.Companion.toHttpUrl import rikka.core.res.resolveColor import kotlin.math.roundToInt @@ -266,12 +264,7 @@ class GalleryDetailScene : CollapsingToolbarScene(), View.OnClickListener, Downl mGalleryInfo?.let { viewLifecycleOwner.lifecycleScope.launchIO { runCatching { - val spiderQueen = SpiderQueen.obtainSpiderQueen(it, SpiderQueen.MODE_READ) - val startPage = spiderQueen.awaitStartPage() - launchNonCancellable { - delay(30000) - SpiderQueen.releaseSpiderQueen(spiderQueen, SpiderQueen.MODE_READ) - } + val startPage = spiderQueen?.awaitStartPage() ?: 0 withUIContext { binding.content.header.read.text = if (startPage == 0) { getString(R.string.read) @@ -361,6 +354,8 @@ class GalleryDetailScene : CollapsingToolbarScene(), View.OnClickListener, Downl return true } + private var spiderQueen: SpiderQueen? = null + override fun onCreateViewWithToolbar( inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle? @@ -428,11 +423,14 @@ class GalleryDetailScene : CollapsingToolbarScene(), View.OnClickListener, Downl } downloadManager.addDownloadInfoListener(this) (requireActivity() as MainActivity).mShareUrl = galleryDetailUrl + spiderQueen = SpiderQueen.obtainSpiderQueen(galleryInfo!!, SpiderQueen.MODE_READ) return binding.root } override fun onDestroyView() { super.onDestroyView() + spiderQueen?.let { SpiderQueen.releaseSpiderQueen(it, SpiderQueen.MODE_READ) } + spiderQueen = null val context = context AssertUtils.assertNotNull(context) downloadManager.removeDownloadInfoListener(this)