From 325909401cbaf6031d89363ded2ef3565208ca83 Mon Sep 17 00:00:00 2001 From: FooIbar <118464521+FooIbar@users.noreply.github.com> Date: Tue, 4 Jul 2023 15:24:39 +0800 Subject: [PATCH] Use named constant instead of magic number --- .../ehviewer/client/data/BaseGalleryInfo.kt | 3 ++- .../hippo/ehviewer/client/data/GalleryInfo.kt | 3 +++ .../client/parser/GalleryDetailParser.kt | 6 ++++-- .../client/parser/GalleryListParser.kt | 6 ++++-- .../hippo/ehviewer/dao/LocalFavoriteInfo.kt | 3 ++- .../com/hippo/ehviewer/ui/CommonOperations.kt | 18 ++++++++++-------- .../ehviewer/ui/GalleryInfoBottomSheet.kt | 3 ++- .../com/hippo/ehviewer/ui/main/GalleryInfo.kt | 5 +++-- .../ehviewer/ui/scene/GalleryDetailScene.kt | 5 +++-- 9 files changed, 33 insertions(+), 19 deletions(-) diff --git a/app/src/main/java/com/hippo/ehviewer/client/data/BaseGalleryInfo.kt b/app/src/main/java/com/hippo/ehviewer/client/data/BaseGalleryInfo.kt index 4106c8460..ab26efe2b 100644 --- a/app/src/main/java/com/hippo/ehviewer/client/data/BaseGalleryInfo.kt +++ b/app/src/main/java/com/hippo/ehviewer/client/data/BaseGalleryInfo.kt @@ -18,6 +18,7 @@ package com.hippo.ehviewer.client.data import androidx.room.ColumnInfo import androidx.room.Ignore import androidx.room.PrimaryKey +import com.hippo.ehviewer.client.data.GalleryInfo.Companion.NOT_FAVORITED import kotlinx.parcelize.Parcelize @Parcelize @@ -72,7 +73,7 @@ open class BaseGalleryInfo( override var simpleLanguage: String? = null, @Ignore - override var favoriteSlot: Int = -2, + override var favoriteSlot: Int = NOT_FAVORITED, @Ignore override var favoriteName: String? = null, diff --git a/app/src/main/java/com/hippo/ehviewer/client/data/GalleryInfo.kt b/app/src/main/java/com/hippo/ehviewer/client/data/GalleryInfo.kt index 0caa8d312..a5305b45b 100644 --- a/app/src/main/java/com/hippo/ehviewer/client/data/GalleryInfo.kt +++ b/app/src/main/java/com/hippo/ehviewer/client/data/GalleryInfo.kt @@ -127,5 +127,8 @@ interface GalleryInfo : AbstractGalleryInfo, Parcelable { "language:hungarian", "language:dutch", ) + + const val NOT_FAVORITED = -2 + const val LOCAL_FAVORITED = -1 } } diff --git a/app/src/main/java/com/hippo/ehviewer/client/parser/GalleryDetailParser.kt b/app/src/main/java/com/hippo/ehviewer/client/parser/GalleryDetailParser.kt index 0ab94d98a..1f21bca96 100644 --- a/app/src/main/java/com/hippo/ehviewer/client/parser/GalleryDetailParser.kt +++ b/app/src/main/java/com/hippo/ehviewer/client/parser/GalleryDetailParser.kt @@ -25,6 +25,8 @@ import com.hippo.ehviewer.client.data.BaseGalleryInfo import com.hippo.ehviewer.client.data.GalleryComment import com.hippo.ehviewer.client.data.GalleryCommentList import com.hippo.ehviewer.client.data.GalleryDetail +import com.hippo.ehviewer.client.data.GalleryInfo.Companion.LOCAL_FAVORITED +import com.hippo.ehviewer.client.data.GalleryInfo.Companion.NOT_FAVORITED import com.hippo.ehviewer.client.data.GalleryPreview import com.hippo.ehviewer.client.data.GalleryTagGroup import com.hippo.ehviewer.client.data.LargeGalleryPreview @@ -207,8 +209,8 @@ object GalleryDetailParser { } } } - if (gd.favoriteSlot == -2 && EhDB.containLocalFavorites(gd.gid)) { - gd.favoriteSlot = -1 + if (gd.favoriteSlot == NOT_FAVORITED && EhDB.containLocalFavorites(gd.gid)) { + gd.favoriteSlot = LOCAL_FAVORITED } } catch (e: Throwable) { ExceptionUtils.throwIfFatal(e) diff --git a/app/src/main/java/com/hippo/ehviewer/client/parser/GalleryListParser.kt b/app/src/main/java/com/hippo/ehviewer/client/parser/GalleryListParser.kt index 4c6228528..a6378f50a 100644 --- a/app/src/main/java/com/hippo/ehviewer/client/parser/GalleryListParser.kt +++ b/app/src/main/java/com/hippo/ehviewer/client/parser/GalleryListParser.kt @@ -18,6 +18,8 @@ package com.hippo.ehviewer.client.parser import android.util.Log import com.hippo.ehviewer.EhDB import com.hippo.ehviewer.client.data.GalleryInfo +import com.hippo.ehviewer.client.data.GalleryInfo.Companion.LOCAL_FAVORITED +import com.hippo.ehviewer.client.data.GalleryInfo.Companion.NOT_FAVORITED import com.hippo.ehviewer.client.exception.ParseException import com.hippo.ehviewer.util.ExceptionUtils import com.hippo.ehviewer.yorozuya.toIntOrDefault @@ -92,8 +94,8 @@ object GalleryListParser { list.addAll( es.mapNotNull { runCatching { parseGalleryInfo(it.toString()) }.onFailure { it.printStackTrace() }.getOrNull()?.apply { - if (favoriteSlot == -2 && EhDB.containLocalFavorites(gid)) { - favoriteSlot = -1 + if (favoriteSlot == NOT_FAVORITED && EhDB.containLocalFavorites(gid)) { + favoriteSlot = LOCAL_FAVORITED } generateSLang() } diff --git a/app/src/main/java/com/hippo/ehviewer/dao/LocalFavoriteInfo.kt b/app/src/main/java/com/hippo/ehviewer/dao/LocalFavoriteInfo.kt index 5cd5f675c..f8e9dd1ed 100644 --- a/app/src/main/java/com/hippo/ehviewer/dao/LocalFavoriteInfo.kt +++ b/app/src/main/java/com/hippo/ehviewer/dao/LocalFavoriteInfo.kt @@ -4,6 +4,7 @@ import androidx.room.ColumnInfo import androidx.room.Entity import com.hippo.ehviewer.client.data.BaseGalleryInfo import com.hippo.ehviewer.client.data.GalleryInfo +import com.hippo.ehviewer.client.data.GalleryInfo.Companion.LOCAL_FAVORITED @Entity(tableName = "LOCAL_FAVORITES") class LocalFavoriteInfo() : BaseGalleryInfo() { @@ -25,6 +26,6 @@ class LocalFavoriteInfo() : BaseGalleryInfo() { } init { - favoriteSlot = -1 + favoriteSlot = LOCAL_FAVORITED } } 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 5550b03ec..75e866a44 100644 --- a/app/src/main/java/com/hippo/ehviewer/ui/CommonOperations.kt +++ b/app/src/main/java/com/hippo/ehviewer/ui/CommonOperations.kt @@ -38,6 +38,8 @@ 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.data.GalleryInfo.Companion.LOCAL_FAVORITED +import com.hippo.ehviewer.client.data.GalleryInfo.Companion.NOT_FAVORITED import com.hippo.ehviewer.client.exception.EhException import com.hippo.ehviewer.dao.DownloadInfo import com.hippo.ehviewer.download.DownloadManager @@ -211,21 +213,21 @@ suspend fun DialogState.addToFavorites(galleryInfo: GalleryInfo): Boolean { private suspend fun doAddToFavorites( galleryInfo: GalleryInfo, - slot: Int = -2, + slot: Int = NOT_FAVORITED, newFavoriteName: String? = null, note: String? = null, localFaved: Boolean = true, ): Boolean { val add = when (slot) { - -2 -> { + NOT_FAVORITED -> { EhDB.removeLocalFavorites(galleryInfo.gid) - if (galleryInfo.favoriteSlot >= 0) { + if (galleryInfo.favoriteSlot > LOCAL_FAVORITED) { EhEngine.addFavorites(galleryInfo.gid, galleryInfo.token) } false } - -1 -> { + LOCAL_FAVORITED -> { if (localFaved) { EhDB.removeLocalFavorites(galleryInfo.gid) } else { @@ -247,15 +249,15 @@ private suspend fun doAddToFavorites( else -> throw EhException("Invalid favorite slot!") } if (add) { - if (slot != -1 || galleryInfo.favoriteSlot == -2) { // Cloud favorites have priority + if (slot != LOCAL_FAVORITED || galleryInfo.favoriteSlot == NOT_FAVORITED) { // Cloud favorites have priority galleryInfo.favoriteSlot = slot galleryInfo.favoriteName = newFavoriteName withUIContext { FavouriteStatusRouter.modifyFavourites(galleryInfo.gid, slot) } } - } else if (slot != -1 || galleryInfo.favoriteSlot == -1) { - val newSlot = if (slot >= 0 && localFaved) -1 else -2 + } else if (slot != LOCAL_FAVORITED || galleryInfo.favoriteSlot == LOCAL_FAVORITED) { + val newSlot = if (slot > LOCAL_FAVORITED && localFaved) LOCAL_FAVORITED else NOT_FAVORITED galleryInfo.favoriteSlot = newSlot galleryInfo.favoriteName = null withUIContext { @@ -277,7 +279,7 @@ fun Context.navToReader(info: GalleryInfo, page: Int = -1) { suspend fun DialogState.doGalleryInfoAction(info: GalleryInfo, context: Context) { val downloaded = DownloadManager.getDownloadState(info.gid) != DownloadInfo.STATE_INVALID - val favourite = info.favoriteSlot != -2 + val favourite = info.favoriteSlot != NOT_FAVORITED val selected = if (!downloaded) { showSelectItemWithIcon( Icons.Default.MenuBook to R.string.read, diff --git a/app/src/main/java/com/hippo/ehviewer/ui/GalleryInfoBottomSheet.kt b/app/src/main/java/com/hippo/ehviewer/ui/GalleryInfoBottomSheet.kt index ce71f30b4..5908de8f2 100644 --- a/app/src/main/java/com/hippo/ehviewer/ui/GalleryInfoBottomSheet.kt +++ b/app/src/main/java/com/hippo/ehviewer/ui/GalleryInfoBottomSheet.kt @@ -42,6 +42,7 @@ import com.hippo.ehviewer.Settings import com.hippo.ehviewer.client.EhUrl import com.hippo.ehviewer.client.EhUtils import com.hippo.ehviewer.client.data.GalleryDetail +import com.hippo.ehviewer.client.data.GalleryInfo.Companion.LOCAL_FAVORITED import com.hippo.ehviewer.client.thumbUrl import com.hippo.ehviewer.ui.scene.navWithUrl import com.hippo.ehviewer.util.tellClipboardWithToast @@ -96,7 +97,7 @@ fun GalleryInfoBottomSheet( pages.toString(), size, favoriteCount.toString(), - (favoriteSlot >= 0).toString(), + (favoriteSlot > LOCAL_FAVORITED).toString(), ratingCount.toString(), rating.toString(), torrentCount.toString(), diff --git a/app/src/main/java/com/hippo/ehviewer/ui/main/GalleryInfo.kt b/app/src/main/java/com/hippo/ehviewer/ui/main/GalleryInfo.kt index c689de1e9..bd21a2199 100644 --- a/app/src/main/java/com/hippo/ehviewer/ui/main/GalleryInfo.kt +++ b/app/src/main/java/com/hippo/ehviewer/ui/main/GalleryInfo.kt @@ -37,6 +37,7 @@ import androidx.constraintlayout.compose.ConstraintLayout import com.hippo.ehviewer.FavouriteStatusRouter import com.hippo.ehviewer.client.EhUtils import com.hippo.ehviewer.client.data.GalleryInfo +import com.hippo.ehviewer.client.data.GalleryInfo.Companion.NOT_FAVORITED import com.hippo.ehviewer.download.DownloadManager import com.hippo.ehviewer.ui.tools.CrystalCard import com.hippo.ehviewer.ui.tools.ElevatedCard @@ -64,9 +65,9 @@ fun GalleryInfoListItem( ) } val showFav by produceState(false, info.gid) { - value = info.favoriteSlot != -2 && !isInFavScene + value = info.favoriteSlot != NOT_FAVORITED && !isInFavScene FavouriteStatusRouter.stateFlow(info.gid).collect { - value = it != -2 && !isInFavScene + value = it != NOT_FAVORITED && !isInFavScene } } ConstraintLayout(modifier = Modifier.padding(8.dp, 4.dp).fillMaxSize()) { 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 b7121bcaf..0f3acad8b 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 @@ -116,6 +116,7 @@ import com.hippo.ehviewer.client.EhUtils import com.hippo.ehviewer.client.data.GalleryComment import com.hippo.ehviewer.client.data.GalleryDetail import com.hippo.ehviewer.client.data.GalleryInfo +import com.hippo.ehviewer.client.data.GalleryInfo.Companion.NOT_FAVORITED import com.hippo.ehviewer.client.data.GalleryTagGroup import com.hippo.ehviewer.client.data.ListUrlBuilder import com.hippo.ehviewer.client.exception.NoHAtHClientException @@ -692,8 +693,8 @@ class GalleryDetailScene : BaseScene() { horizontalArrangement = Arrangement.Center, ) { val favored by produceState(initialValue = false) { - value = galleryDetail.favoriteSlot != -2 - FavouriteStatusRouter.stateFlow(galleryDetail.gid).collect { value = it != -2 } + value = galleryDetail.favoriteSlot != NOT_FAVORITED + FavouriteStatusRouter.stateFlow(galleryDetail.gid).collect { value = it != NOT_FAVORITED } } FilledTertiaryIconToggleButton( checked = favored,