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