diff --git a/app/src/main/java/com/hippo/ehviewer/ui/CommonOperations.kt b/app/src/main/java/com/hippo/ehviewer/ui/CommonOperations.kt index aba2e62ee..0e06fd961 100644 --- a/app/src/main/java/com/hippo/ehviewer/ui/CommonOperations.kt +++ b/app/src/main/java/com/hippo/ehviewer/ui/CommonOperations.kt @@ -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) diff --git a/app/src/main/java/com/hippo/ehviewer/ui/MainActivity.kt b/app/src/main/java/com/hippo/ehviewer/ui/MainActivity.kt index ab1c74723..2e819148f 100644 --- a/app/src/main/java/com/hippo/ehviewer/ui/MainActivity.kt +++ b/app/src/main/java/com/hippo/ehviewer/ui/MainActivity.kt @@ -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) diff --git a/app/src/main/java/com/hippo/ehviewer/ui/UrlOpener.kt b/app/src/main/java/com/hippo/ehviewer/ui/UrlOpener.kt index ab70a79fe..f14364cb6 100644 --- a/app/src/main/java/com/hippo/ehviewer/ui/UrlOpener.kt +++ b/app/src/main/java/com/hippo/ehviewer/ui/UrlOpener.kt @@ -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 } } diff --git a/app/src/main/java/com/hippo/ehviewer/ui/scene/DownloadsScene.kt b/app/src/main/java/com/hippo/ehviewer/ui/scene/DownloadsScene.kt index c66eec1ae..c2a63f301 100644 --- a/app/src/main/java/com/hippo/ehviewer/ui/scene/DownloadsScene.kt +++ b/app/src/main/java/com/hippo/ehviewer/ui/scene/DownloadsScene.kt @@ -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 } } 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 4f14f4d10..fbd3fce81 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 @@ -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 diff --git a/app/src/main/java/com/hippo/ehviewer/ui/scene/GalleryListScene.kt b/app/src/main/java/com/hippo/ehviewer/ui/scene/GalleryListScene.kt index c70c662ca..a3a63bb3d 100644 --- a/app/src/main/java/com/hippo/ehviewer/ui/scene/GalleryListScene.kt +++ b/app/src/main/java/com/hippo/ehviewer/ui/scene/GalleryListScene.kt @@ -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) diff --git a/app/src/main/java/com/hippo/ehviewer/ui/scene/HistoryScene.kt b/app/src/main/java/com/hippo/ehviewer/ui/scene/HistoryScene.kt index 1ec2683ab..de088959d 100644 --- a/app/src/main/java/com/hippo/ehviewer/ui/scene/HistoryScene.kt +++ b/app/src/main/java/com/hippo/ehviewer/ui/scene/HistoryScene.kt @@ -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)