From cb67a516866836d0fd4129ddae99084cddc0ad64 Mon Sep 17 00:00:00 2001 From: tarsin Date: Wed, 31 May 2023 12:42:50 +0800 Subject: [PATCH] Move DialogState.selectGalleryInfoAction to CommonOperations --- .../com/hippo/ehviewer/ui/CommonOperations.kt | 34 +++++++++++++++++++ .../ehviewer/ui/scene/GalleryListScene.kt | 1 + .../hippo/ehviewer/ui/scene/HistoryScene.kt | 32 +---------------- 3 files changed, 36 insertions(+), 31 deletions(-) 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 0e06fd961..d1b29a4b0 100644 --- a/app/src/main/java/com/hippo/ehviewer/ui/CommonOperations.kt +++ b/app/src/main/java/com/hippo/ehviewer/ui/CommonOperations.kt @@ -20,15 +20,26 @@ import android.content.Context import android.content.Intent import android.os.Build import androidx.appcompat.app.AlertDialog +import androidx.compose.material.icons.Icons +import androidx.compose.material.icons.filled.Delete +import androidx.compose.material.icons.filled.Download +import androidx.compose.material.icons.filled.DriveFileMove +import androidx.compose.material.icons.filled.Favorite +import androidx.compose.material.icons.filled.HeartBroken +import androidx.compose.material.icons.filled.MenuBook import androidx.core.content.ContextCompat import com.hippo.ehviewer.EhApplication.Companion.favouriteStatusRouter import com.hippo.ehviewer.EhDB import com.hippo.ehviewer.R import com.hippo.ehviewer.Settings import com.hippo.ehviewer.client.EhEngine +import com.hippo.ehviewer.client.EhUtils import com.hippo.ehviewer.client.data.GalleryInfo import com.hippo.ehviewer.client.exception.EhException +import com.hippo.ehviewer.dao.DownloadInfo +import com.hippo.ehviewer.download.DownloadManager import com.hippo.ehviewer.download.DownloadService +import com.hippo.ehviewer.ui.compose.DialogState import com.hippo.ehviewer.ui.legacy.ListCheckBoxDialogBuilder import com.hippo.ehviewer.ui.scene.BaseScene import com.hippo.ehviewer.util.requestPermission @@ -243,3 +254,26 @@ fun Context.navToReader(info: GalleryInfo, page: Int = -1) { intent.putExtra(ReaderActivity.KEY_PAGE, page) startActivity(intent) } + +suspend fun DialogState.selectGalleryInfoAction(info: GalleryInfo): Int { + val downloaded = DownloadManager.getDownloadState(info.gid) != DownloadInfo.STATE_INVALID + val favourite = info.favoriteSlot != -2 + val selected: Int + if (!downloaded) { + selected = showSelectItemWithIcon( + Icons.Default.MenuBook to R.string.read, + Icons.Default.Download to R.string.download, + if (!favourite) Icons.Default.Favorite to R.string.add_to_favourites else Icons.Default.HeartBroken to R.string.remove_from_favourites, + title = EhUtils.getSuitableTitle(info), + ) + } else { + selected = showSelectItemWithIcon( + Icons.Default.MenuBook to R.string.read, + Icons.Default.Delete to R.string.delete_downloads, + if (!favourite) Icons.Default.Favorite to R.string.add_to_favourites else Icons.Default.HeartBroken to R.string.remove_from_favourites, + Icons.Default.DriveFileMove to R.string.download_move_dialog_title, + title = EhUtils.getSuitableTitle(info), + ) + } + return selected +} 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 a3a63bb3d..801f6dd34 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 @@ -99,6 +99,7 @@ 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.ui.selectGalleryInfoAction import com.hippo.ehviewer.util.getParcelableCompat import com.hippo.ehviewer.yorozuya.AnimationUtils import com.hippo.ehviewer.yorozuya.SimpleAnimatorListener 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 de088959d..f8624125f 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 @@ -31,13 +31,7 @@ import androidx.compose.foundation.lazy.LazyColumn import androidx.compose.foundation.lazy.rememberLazyListState import androidx.compose.material.icons.Icons import androidx.compose.material.icons.filled.ClearAll -import androidx.compose.material.icons.filled.Delete -import androidx.compose.material.icons.filled.Download -import androidx.compose.material.icons.filled.DriveFileMove -import androidx.compose.material.icons.filled.Favorite -import androidx.compose.material.icons.filled.HeartBroken import androidx.compose.material.icons.filled.Menu -import androidx.compose.material.icons.filled.MenuBook import androidx.compose.material3.DismissDirection import androidx.compose.material3.DismissValue import androidx.compose.material3.Icon @@ -71,7 +65,6 @@ import arrow.core.partially1 import com.hippo.ehviewer.EhDB 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.dao.DownloadInfo import com.hippo.ehviewer.download.DownloadManager @@ -79,13 +72,13 @@ import com.hippo.ehviewer.ui.CommonOperations import com.hippo.ehviewer.ui.MainActivity import com.hippo.ehviewer.ui.addToFavorites import com.hippo.ehviewer.ui.compose.Deferred -import com.hippo.ehviewer.ui.compose.DialogState 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 com.hippo.ehviewer.ui.selectGalleryInfoAction import eu.kanade.tachiyomi.util.lang.launchIO import eu.kanade.tachiyomi.util.lang.withUIContext import eu.kanade.tachiyomi.util.system.pxToDp @@ -297,26 +290,3 @@ class HistoryScene : BaseScene() { private val cardHeight = (Settings.listThumbSize * 3).pxToDp.dp } - -suspend fun DialogState.selectGalleryInfoAction(info: GalleryInfo): Int { - val downloaded = DownloadManager.getDownloadState(info.gid) != DownloadInfo.STATE_INVALID - val favourite = info.favoriteSlot != -2 - val selected: Int - if (!downloaded) { - selected = showSelectItemWithIcon( - Icons.Default.MenuBook to R.string.read, - Icons.Default.Download to R.string.download, - if (!favourite) Icons.Default.Favorite to R.string.add_to_favourites else Icons.Default.HeartBroken to R.string.remove_from_favourites, - title = EhUtils.getSuitableTitle(info), - ) - } else { - selected = showSelectItemWithIcon( - Icons.Default.MenuBook to R.string.read, - Icons.Default.Delete to R.string.delete_downloads, - if (!favourite) Icons.Default.Favorite to R.string.add_to_favourites else Icons.Default.HeartBroken to R.string.remove_from_favourites, - Icons.Default.DriveFileMove to R.string.download_move_dialog_title, - title = EhUtils.getSuitableTitle(info), - ) - } - return selected -}