Avoid unnecessary thread create
This commit is contained in:
1 parent
300fabca21
commit
7d00e01e00
2 files changed
+31
-13
No files matched your search
@@ -652,6 +652,25 @@ public final class SpiderQueen implements Runnable {
|
||||
}
|
||||
}
|
||||
|
||||
// Mark as suspend fun when kotlinize, need IO
|
||||
public static int getStartPage(long gid) {
|
||||
var queen = sQueenMap.get(gid);
|
||||
SpiderInfo spiderInfo = null;
|
||||
|
||||
// Fast Path: read existing queen
|
||||
if (queen != null) {
|
||||
spiderInfo = queen.mSpiderInfo.get();
|
||||
}
|
||||
|
||||
// Slow path, read diskcache
|
||||
if (spiderInfo == null) {
|
||||
spiderInfo = SpiderInfo.readFromCache(gid);
|
||||
}
|
||||
|
||||
if (spiderInfo == null) return 0;
|
||||
return spiderInfo.getStartPage();
|
||||
}
|
||||
|
||||
public int getStartPage() {
|
||||
SpiderInfo spiderInfo = mSpiderInfo.get();
|
||||
if (spiderInfo == null) spiderInfo = readSpiderInfoFromLocal();
|
||||
|
||||
@@ -86,9 +86,8 @@ import com.hippo.ehviewer.dao.DownloadInfo
|
||||
import com.hippo.ehviewer.dao.Filter
|
||||
import com.hippo.ehviewer.databinding.SceneGalleryDetailBinding
|
||||
import com.hippo.ehviewer.download.DownloadManager.DownloadInfoListener
|
||||
import com.hippo.ehviewer.gallery.EhPageLoader
|
||||
import com.hippo.ehviewer.gallery.PageLoader2
|
||||
import com.hippo.ehviewer.spider.SpiderDen
|
||||
import com.hippo.ehviewer.spider.SpiderQueen
|
||||
import com.hippo.ehviewer.ui.CommonOperations
|
||||
import com.hippo.ehviewer.ui.GalleryInfoBottomSheet
|
||||
import com.hippo.ehviewer.ui.MainActivity
|
||||
@@ -260,19 +259,19 @@ class GalleryDetailScene : CollapsingToolbarScene(), View.OnClickListener, Downl
|
||||
override fun onResume() {
|
||||
super.onResume()
|
||||
_binding ?: return
|
||||
val galleryProvider: PageLoader2 = EhPageLoader(mGalleryInfo)
|
||||
galleryProvider.start()
|
||||
viewLifecycleOwner.lifecycleScope.launchIO {
|
||||
runCatching {
|
||||
val startPage = galleryProvider.startPage
|
||||
if (startPage != 0) {
|
||||
withUIContext {
|
||||
binding.content.header.read.text = getString(R.string.read_from, startPage + 1)
|
||||
mGalleryInfo?.let {
|
||||
viewLifecycleOwner.lifecycleScope.launchIO {
|
||||
runCatching {
|
||||
val startPage = SpiderQueen.getStartPage(it.gid)
|
||||
if (startPage != 0) {
|
||||
withUIContext {
|
||||
binding.content.header.read.text =
|
||||
getString(R.string.read_from, startPage + 1)
|
||||
}
|
||||
}
|
||||
}.onFailure {
|
||||
it.printStackTrace()
|
||||
}
|
||||
galleryProvider.stop()
|
||||
}.onFailure {
|
||||
it.printStackTrace()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user