Delegate all reader call to Context.navToReader

This commit is contained in:
tarsin committed 2023-05-31 01:10:08 +08:00
1 parent 0e78494f39
commit 351231aab9
7 files changed
+14 -66

No files matched your search

@@ -236,7 +236,7 @@ suspend fun removeFromFavorites(galleryInfo: GalleryInfo) {
}
}
fun Context.navToReader(info: GalleryInfo, page: Int) {
fun Context.navToReader(info: GalleryInfo, page: Int = -1) {
val intent = Intent(this, ReaderActivity::class.java)
intent.action = ReaderActivity.ACTION_EH
intent.putExtra(ReaderActivity.KEY_GALLERY_INFO, info)
@@ -54,7 +54,6 @@ import com.hippo.ehviewer.AppConfig
import com.hippo.ehviewer.R
import com.hippo.ehviewer.Settings
import com.hippo.ehviewer.client.EhUtils
import com.hippo.ehviewer.client.data.GalleryInfo
import com.hippo.ehviewer.client.data.ListUrlBuilder
import com.hippo.ehviewer.client.parser.GalleryDetailUrlParser
import com.hippo.ehviewer.client.parser.GalleryPageUrlParser
@@ -74,7 +73,6 @@ import com.hippo.ehviewer.util.getClipboardManager
import com.hippo.ehviewer.util.getParcelableExtraCompat
import com.hippo.ehviewer.util.getUrlFromClipboard
import com.hippo.ehviewer.yorozuya.IOUtils
import eu.kanade.tachiyomi.ui.reader.ReaderActivity
import eu.kanade.tachiyomi.util.lang.launchUI
import eu.kanade.tachiyomi.util.lang.withUIContext
import kotlinx.coroutines.delay
@@ -108,14 +106,6 @@ class MainActivity : EhActivity() {
}
}
fun startReaderActivity(galleryInfo: GalleryInfo, page: Int) {
val intent = Intent(this, ReaderActivity::class.java)
intent.action = ReaderActivity.ACTION_EH
intent.putExtra(ReaderActivity.KEY_GALLERY_INFO, galleryInfo)
intent.putExtra(ReaderActivity.KEY_PAGE, page)
startActivity(intent)
}
@Suppress("OVERRIDE_DEPRECATION")
override fun onBackPressed() {
val isDrawerOpen = binding.drawView.isDrawerOpen(GravityCompat.START) or binding.drawView.isDrawerOpen(GravityCompat.END)
@@ -17,7 +17,6 @@ package com.hippo.ehviewer.ui
import android.content.ActivityNotFoundException
import android.content.Context
import android.content.Intent
import android.net.Uri
import android.os.Bundle
import android.widget.Toast
@@ -32,7 +31,6 @@ import com.hippo.ehviewer.client.parser.GalleryPageUrlParser
import com.hippo.ehviewer.ui.scene.GalleryDetailScene
import com.hippo.ehviewer.ui.scene.GalleryListScene
import com.hippo.ehviewer.ui.scene.ProgressScene
import eu.kanade.tachiyomi.ui.reader.ReaderActivity
private val intent = CustomTabsIntent.Builder().apply { setShowTitle(true) }.build()
@@ -47,23 +45,15 @@ fun Context.openBrowser(url: String) {
@MainThread
fun Context.jumpToReaderByPage(url: String, detail: GalleryDetail): Boolean {
fun jump(page: Int) {
Intent(this, ReaderActivity::class.java).apply {
action = ReaderActivity.ACTION_EH
putExtra(ReaderActivity.KEY_GALLERY_INFO, detail)
putExtra(ReaderActivity.KEY_PAGE, page)
startActivity(this)
}
}
GalleryPageUrlParser.parse(url)?.let {
if (it.gid == detail.gid) {
jump(it.page)
navToReader(detail, it.page)
return true
}
}
if (url.startsWith("#c")) {
runCatching {
jump(url.replace("#c", "").toInt() - 1)
navToReader(detail, url.replace("#c", "").toInt() - 1)
return true
}
}
@@ -91,12 +91,12 @@ import com.hippo.ehviewer.ui.legacy.easyrecyclerview.FastScroller.OnDragHandlerL
import com.hippo.ehviewer.ui.legacy.easyrecyclerview.HandlerDrawable
import com.hippo.ehviewer.ui.legacy.recyclerview.AutoStaggeredGridLayoutManager
import com.hippo.ehviewer.ui.legacy.recyclerview.STRATEGY_MIN_SIZE
import com.hippo.ehviewer.ui.navToReader
import com.hippo.ehviewer.util.sendTo
import com.hippo.ehviewer.yorozuya.FileUtils
import com.hippo.ehviewer.yorozuya.ObjectUtils
import com.hippo.ehviewer.yorozuya.collect.LongList
import com.hippo.unifile.UniFile
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.launchUI
@@ -482,7 +482,7 @@ class DownloadsScene :
}
fun onItemClick(position: Int): Boolean {
val activity = mainActivity ?: return false
val context = context ?: return false
return if (binding.recyclerView.isInCustomChoice) {
binding.recyclerView.toggleItemChecked(position)
true
@@ -491,10 +491,7 @@ class DownloadsScene :
if (position < 0 || position >= list.size) {
return false
}
val intent = Intent(activity, ReaderActivity::class.java)
intent.action = ReaderActivity.ACTION_EH
intent.putExtra(ReaderActivity.KEY_GALLERY_INFO, list[position])
startActivity(intent)
context.navToReader(list[position])
true
}
}
@@ -22,7 +22,6 @@ import android.app.Dialog
import android.app.DownloadManager
import android.content.Context
import android.content.DialogInterface
import android.content.Intent
import android.content.pm.PackageManager
import android.net.Uri
import android.os.Build
@@ -165,6 +164,7 @@ import com.hippo.ehviewer.ui.legacy.ObservedTextView
import com.hippo.ehviewer.ui.legacy.URLImageGetter
import com.hippo.ehviewer.ui.legacy.recyclerview.calculateSuitableSpanCount
import com.hippo.ehviewer.ui.login.LocalNavController
import com.hippo.ehviewer.ui.navToReader
import com.hippo.ehviewer.ui.openBrowser
import com.hippo.ehviewer.ui.removeFromFavorites
import com.hippo.ehviewer.ui.scene.GalleryListScene.Companion.toStartArgs
@@ -177,7 +177,6 @@ import com.hippo.ehviewer.util.getSystemService
import com.hippo.ehviewer.yorozuya.FileUtils
import com.hippo.ehviewer.yorozuya.ViewUtils
import com.hippo.ehviewer.yorozuya.collect.IntList
import eu.kanade.tachiyomi.ui.reader.ReaderActivity
import eu.kanade.tachiyomi.util.lang.launchIO
import eu.kanade.tachiyomi.util.lang.withUIContext
import kotlinx.coroutines.CancellationException
@@ -657,7 +656,7 @@ class GalleryDetailScene : BaseScene(), DownloadInfoListener {
items(previewList) {
EhPreviewItem(
galleryPreview = it,
onClick = { mainActivity?.startReaderActivity(gd, it.position) },
onClick = { context?.navToReader(gd, it.position) },
)
}
item(span = { GridItemSpan(maxLineSpan) }) {
@@ -856,13 +855,7 @@ class GalleryDetailScene : BaseScene(), DownloadInfoListener {
}
}
private fun onReadButtonClick() {
val galleryDetail = composeBindingGD ?: return
val intent = Intent(activity, ReaderActivity::class.java)
intent.action = ReaderActivity.ACTION_EH
intent.putExtra(ReaderActivity.KEY_GALLERY_INFO, galleryDetail)
startActivity(intent)
}
private fun onReadButtonClick() = composeBindingGI?.let { context?.navToReader(it) }
override fun onDestroyView() {
super.onDestroyView()
@@ -1011,15 +1004,7 @@ class GalleryDetailScene : BaseScene(), DownloadInfoListener {
requireActivity().findViewById(R.id.snackbar),
getString(R.string.read_from, mPage),
Snackbar.LENGTH_LONG,
)
.setAction(R.string.read) {
val intent = Intent(requireContext(), ReaderActivity::class.java)
intent.action = ReaderActivity.ACTION_EH
intent.putExtra(ReaderActivity.KEY_GALLERY_INFO, composeBindingGD)
intent.putExtra(ReaderActivity.KEY_PAGE, mPage)
startActivity(intent)
}
.show()
).setAction(R.string.read) { context?.navToReader(gd, mPage) }.show()
}
composeBindingGI = gd
composeBindingGD = gd
@@ -18,7 +18,6 @@ package com.hippo.ehviewer.ui.scene
import android.animation.Animator
import android.annotation.SuppressLint
import android.content.DialogInterface
import android.content.Intent
import android.content.res.Resources
import android.os.Bundle
import android.text.InputType
@@ -98,13 +97,13 @@ import com.hippo.ehviewer.ui.legacy.ViewTransition
import com.hippo.ehviewer.ui.legacy.WindowInsetsAnimationHelper
import com.hippo.ehviewer.ui.legacy.easyrecyclerview.EasyRecyclerView
import com.hippo.ehviewer.ui.legacy.easyrecyclerview.FastScroller.OnDragHandlerListener
import com.hippo.ehviewer.ui.navToReader
import com.hippo.ehviewer.ui.removeFromFavorites
import com.hippo.ehviewer.util.getParcelableCompat
import com.hippo.ehviewer.yorozuya.AnimationUtils
import com.hippo.ehviewer.yorozuya.SimpleAnimatorListener
import com.hippo.ehviewer.yorozuya.StringUtils
import com.hippo.ehviewer.yorozuya.ViewUtils
import eu.kanade.tachiyomi.ui.reader.ReaderActivity
import eu.kanade.tachiyomi.util.lang.launchIO
import eu.kanade.tachiyomi.util.lang.launchUI
import eu.kanade.tachiyomi.util.lang.withUIContext
@@ -725,13 +724,7 @@ class GalleryListScene : SearchBarScene(), OnDragHandlerListener, SearchLayout.H
val selected = dialogState.selectGalleryInfoAction(info)
withUIContext {
when (selected) {
0 -> {
val intent = Intent(activity, ReaderActivity::class.java)
intent.action = ReaderActivity.ACTION_EH
intent.putExtra(ReaderActivity.KEY_GALLERY_INFO, info)
startActivity(intent)
}
0 -> context.navToReader(info)
1 -> if (downloaded) {
BaseDialogBuilder(context)
.setTitle(R.string.download_remove_dialog_title)
@@ -16,7 +16,6 @@
package com.hippo.ehviewer.ui.scene
import android.content.DialogInterface
import android.content.Intent
import android.os.Bundle
import android.view.LayoutInflater
import android.view.View
@@ -85,8 +84,8 @@ import com.hippo.ehviewer.ui.compose.data.GalleryInfoListItem
import com.hippo.ehviewer.ui.compose.rememberDialogState
import com.hippo.ehviewer.ui.compose.setMD3Content
import com.hippo.ehviewer.ui.legacy.BaseDialogBuilder
import com.hippo.ehviewer.ui.navToReader
import com.hippo.ehviewer.ui.removeFromFavorites
import eu.kanade.tachiyomi.ui.reader.ReaderActivity
import eu.kanade.tachiyomi.util.lang.launchIO
import eu.kanade.tachiyomi.util.lang.withUIContext
import eu.kanade.tachiyomi.util.system.pxToDp
@@ -229,13 +228,7 @@ class HistoryScene : BaseScene() {
val downloaded = DownloadManager.getDownloadState(gi.gid) != DownloadInfo.STATE_INVALID
val favourite = gi.favoriteSlot != -2
when (which) {
0 -> {
val intent = Intent(activity, ReaderActivity::class.java)
intent.action = ReaderActivity.ACTION_EH
intent.putExtra(ReaderActivity.KEY_GALLERY_INFO, gi)
startActivity(intent)
}
0 -> context?.navToReader(gi)
1 -> if (downloaded) {
BaseDialogBuilder(requireContext())
.setTitle(R.string.download_remove_dialog_title)