diff --git a/app/src/main/kotlin/com/hippo/ehviewer/download/DownloadService.kt b/app/src/main/kotlin/com/hippo/ehviewer/download/DownloadService.kt index 5bb82917b..e3528300d 100644 --- a/app/src/main/kotlin/com/hippo/ehviewer/download/DownloadService.kt +++ b/app/src/main/kotlin/com/hippo/ehviewer/download/DownloadService.kt @@ -35,7 +35,7 @@ import com.hippo.ehviewer.client.EhUtils import com.hippo.ehviewer.client.data.BaseGalleryInfo import com.hippo.ehviewer.dao.DownloadInfo import com.hippo.ehviewer.ui.MainActivity -import com.hippo.ehviewer.ui.scene.DownloadsFragment +import com.hippo.ehviewer.ui.screen.DownloadsFragment import com.hippo.ehviewer.util.FileUtils import com.hippo.ehviewer.util.ReadableTime import com.hippo.ehviewer.util.SimpleHandler diff --git a/app/src/main/kotlin/com/hippo/ehviewer/ui/GalleryInfoBottomSheet.kt b/app/src/main/kotlin/com/hippo/ehviewer/ui/GalleryInfoBottomSheet.kt index 89835f8c4..20a9bf42a 100644 --- a/app/src/main/kotlin/com/hippo/ehviewer/ui/GalleryInfoBottomSheet.kt +++ b/app/src/main/kotlin/com/hippo/ehviewer/ui/GalleryInfoBottomSheet.kt @@ -31,7 +31,7 @@ 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.ui.screen.navWithUrl import com.hippo.ehviewer.util.addTextToClipboard import com.ramcosta.composedestinations.navigation.DestinationsNavigator diff --git a/app/src/main/kotlin/com/hippo/ehviewer/ui/MainActivity.kt b/app/src/main/kotlin/com/hippo/ehviewer/ui/MainActivity.kt index 2c8978550..111ca8b9d 100644 --- a/app/src/main/kotlin/com/hippo/ehviewer/ui/MainActivity.kt +++ b/app/src/main/kotlin/com/hippo/ehviewer/ui/MainActivity.kt @@ -108,9 +108,9 @@ import com.hippo.ehviewer.ui.destinations.SubscriptionScreenDestination import com.hippo.ehviewer.ui.destinations.ToplistScreenDestination import com.hippo.ehviewer.ui.destinations.WhatshotScreenDestination import com.hippo.ehviewer.ui.legacy.BaseDialogBuilder -import com.hippo.ehviewer.ui.scene.TokenArgs -import com.hippo.ehviewer.ui.scene.navWithUrl -import com.hippo.ehviewer.ui.scene.navigate +import com.hippo.ehviewer.ui.screen.TokenArgs +import com.hippo.ehviewer.ui.screen.navWithUrl +import com.hippo.ehviewer.ui.screen.navigate import com.hippo.ehviewer.ui.settings.showNewVersion import com.hippo.ehviewer.ui.tools.LocalDialogState import com.hippo.ehviewer.ui.tools.LocalTouchSlopProvider diff --git a/app/src/main/kotlin/com/hippo/ehviewer/ui/main/GalleryList.kt b/app/src/main/kotlin/com/hippo/ehviewer/ui/main/GalleryList.kt index b746e4614..43eacef33 100644 --- a/app/src/main/kotlin/com/hippo/ehviewer/ui/main/GalleryList.kt +++ b/app/src/main/kotlin/com/hippo/ehviewer/ui/main/GalleryList.kt @@ -58,7 +58,7 @@ import com.hippo.ehviewer.collectAsState import com.hippo.ehviewer.icons.EhIcons import com.hippo.ehviewer.icons.big.SadAndroid import com.hippo.ehviewer.ui.WebViewActivity -import com.hippo.ehviewer.ui.scene.collectDetailSizeAsState +import com.hippo.ehviewer.ui.screen.collectDetailSizeAsState import com.hippo.ehviewer.ui.tools.FastScrollLazyVerticalGrid import com.hippo.ehviewer.ui.tools.FastScrollLazyVerticalStaggeredGrid import com.hippo.ehviewer.ui.tools.LocalDialogState diff --git a/app/src/main/kotlin/com/hippo/ehviewer/ui/scene/MainNav.kt b/app/src/main/kotlin/com/hippo/ehviewer/ui/scene/MainNav.kt deleted file mode 100644 index 9d8daad74..000000000 --- a/app/src/main/kotlin/com/hippo/ehviewer/ui/scene/MainNav.kt +++ /dev/null @@ -1,55 +0,0 @@ -package com.hippo.ehviewer.ui.scene - -import androidx.annotation.MainThread -import androidx.navigation.NavController -import com.hippo.ehviewer.client.parser.GalleryDetailUrlParser -import com.hippo.ehviewer.client.parser.GalleryListUrlParser -import com.hippo.ehviewer.client.parser.GalleryPageUrlParser -import com.hippo.ehviewer.ui.destinations.GalleryDetailScreenDestination -import com.hippo.ehviewer.ui.destinations.GalleryListScreenDestination -import com.hippo.ehviewer.ui.destinations.ProgressScreenDestination -import com.ramcosta.composedestinations.navigation.DestinationsNavigator -import com.ramcosta.composedestinations.spec.Direction - -@MainThread -fun DestinationsNavigator.navWithUrl(url: String): Boolean { - if (url.isEmpty()) return false - GalleryListUrlParser.parse(url)?.let { - navigate(GalleryListScreenDestination(it)) - return true - } - - GalleryDetailUrlParser.parse(url)?.apply { - navigate(GalleryDetailScreenDestination(TokenArgs(gid, token))) - return true - } - - GalleryPageUrlParser.parse(url)?.apply { - navigate(ProgressScreenDestination(gid, pToken, page)) - return true - } - return false -} - -@MainThread -fun NavController.navWithUrl(url: String): Boolean { - if (url.isEmpty()) return false - GalleryListUrlParser.parse(url)?.let { - navigate(GalleryListScreenDestination(it)) - return true - } - - GalleryDetailUrlParser.parse(url)?.apply { - navigate(GalleryDetailScreenDestination(TokenArgs(gid, token))) - return true - } - - GalleryPageUrlParser.parse(url)?.apply { - navigate(ProgressScreenDestination(gid, pToken, page)) - return true - } - return false -} - -@MainThread -fun NavController.navigate(direction: Direction) = navigate(direction.route) diff --git a/app/src/main/kotlin/com/hippo/ehviewer/ui/scene/DownloadsFragment.kt b/app/src/main/kotlin/com/hippo/ehviewer/ui/screen/DownloadsScreen.kt similarity index 99% rename from app/src/main/kotlin/com/hippo/ehviewer/ui/scene/DownloadsFragment.kt rename to app/src/main/kotlin/com/hippo/ehviewer/ui/screen/DownloadsScreen.kt index d951daf79..df292986f 100644 --- a/app/src/main/kotlin/com/hippo/ehviewer/ui/scene/DownloadsFragment.kt +++ b/app/src/main/kotlin/com/hippo/ehviewer/ui/screen/DownloadsScreen.kt @@ -1,4 +1,4 @@ -package com.hippo.ehviewer.ui.scene +package com.hippo.ehviewer.ui.screen import android.content.Intent import androidx.compose.animation.core.animateDpAsState @@ -521,10 +521,8 @@ fun DownloadsScreen(navigator: DestinationsNavigator) { } } -class DownloadsFragment { - companion object { - const val KEY_GID = "gid" - const val KEY_ACTION = "action" - const val ACTION_CLEAR_DOWNLOAD_SERVICE = "clear_download_service" - } +object DownloadsFragment { + const val KEY_GID = "gid" + const val KEY_ACTION = "action" + const val ACTION_CLEAR_DOWNLOAD_SERVICE = "clear_download_service" } diff --git a/app/src/main/kotlin/com/hippo/ehviewer/ui/scene/FavoritesFragment.kt b/app/src/main/kotlin/com/hippo/ehviewer/ui/screen/FavoritesScreen.kt similarity index 99% rename from app/src/main/kotlin/com/hippo/ehviewer/ui/scene/FavoritesFragment.kt rename to app/src/main/kotlin/com/hippo/ehviewer/ui/screen/FavoritesScreen.kt index c1c9a1f38..bc651f1b6 100644 --- a/app/src/main/kotlin/com/hippo/ehviewer/ui/scene/FavoritesFragment.kt +++ b/app/src/main/kotlin/com/hippo/ehviewer/ui/screen/FavoritesScreen.kt @@ -1,4 +1,4 @@ -package com.hippo.ehviewer.ui.scene +package com.hippo.ehviewer.ui.screen import androidx.compose.foundation.clickable import androidx.compose.foundation.layout.Column diff --git a/app/src/main/kotlin/com/hippo/ehviewer/ui/scene/GalleryCommentsFragment.kt b/app/src/main/kotlin/com/hippo/ehviewer/ui/screen/GalleryCommentsScreen.kt similarity index 99% rename from app/src/main/kotlin/com/hippo/ehviewer/ui/scene/GalleryCommentsFragment.kt rename to app/src/main/kotlin/com/hippo/ehviewer/ui/screen/GalleryCommentsScreen.kt index dfc3800d7..1bc6901a3 100644 --- a/app/src/main/kotlin/com/hippo/ehviewer/ui/scene/GalleryCommentsFragment.kt +++ b/app/src/main/kotlin/com/hippo/ehviewer/ui/screen/GalleryCommentsScreen.kt @@ -1,4 +1,4 @@ -package com.hippo.ehviewer.ui.scene +package com.hippo.ehviewer.ui.screen import android.annotation.SuppressLint import android.content.Context diff --git a/app/src/main/kotlin/com/hippo/ehviewer/ui/scene/GalleryDetailFragment.kt b/app/src/main/kotlin/com/hippo/ehviewer/ui/screen/GalleryDetailScreen.kt similarity index 99% rename from app/src/main/kotlin/com/hippo/ehviewer/ui/scene/GalleryDetailFragment.kt rename to app/src/main/kotlin/com/hippo/ehviewer/ui/screen/GalleryDetailScreen.kt index 0999ea6c3..00b2e5d1d 100644 --- a/app/src/main/kotlin/com/hippo/ehviewer/ui/scene/GalleryDetailFragment.kt +++ b/app/src/main/kotlin/com/hippo/ehviewer/ui/screen/GalleryDetailScreen.kt @@ -1,4 +1,4 @@ -package com.hippo.ehviewer.ui.scene +package com.hippo.ehviewer.ui.screen import android.Manifest import android.app.Dialog diff --git a/app/src/main/kotlin/com/hippo/ehviewer/ui/scene/GalleryHolder.kt b/app/src/main/kotlin/com/hippo/ehviewer/ui/screen/GalleryHolder.kt similarity index 97% rename from app/src/main/kotlin/com/hippo/ehviewer/ui/scene/GalleryHolder.kt rename to app/src/main/kotlin/com/hippo/ehviewer/ui/screen/GalleryHolder.kt index abb91344b..9a4f163bc 100644 --- a/app/src/main/kotlin/com/hippo/ehviewer/ui/scene/GalleryHolder.kt +++ b/app/src/main/kotlin/com/hippo/ehviewer/ui/screen/GalleryHolder.kt @@ -1,4 +1,4 @@ -package com.hippo.ehviewer.ui.scene +package com.hippo.ehviewer.ui.screen import androidx.compose.foundation.layout.Box import androidx.compose.material.icons.Icons diff --git a/app/src/main/kotlin/com/hippo/ehviewer/ui/scene/GalleryListFragment.kt b/app/src/main/kotlin/com/hippo/ehviewer/ui/screen/GalleryListScreen.kt similarity index 99% rename from app/src/main/kotlin/com/hippo/ehviewer/ui/scene/GalleryListFragment.kt rename to app/src/main/kotlin/com/hippo/ehviewer/ui/screen/GalleryListScreen.kt index 487ab0b35..a4627c51f 100644 --- a/app/src/main/kotlin/com/hippo/ehviewer/ui/scene/GalleryListFragment.kt +++ b/app/src/main/kotlin/com/hippo/ehviewer/ui/screen/GalleryListScreen.kt @@ -1,4 +1,4 @@ -package com.hippo.ehviewer.ui.scene +package com.hippo.ehviewer.ui.screen import android.graphics.Bitmap import android.net.Uri diff --git a/app/src/main/kotlin/com/hippo/ehviewer/ui/scene/GalleryPreviewFragment.kt b/app/src/main/kotlin/com/hippo/ehviewer/ui/screen/GalleryPreviewScreen.kt similarity index 99% rename from app/src/main/kotlin/com/hippo/ehviewer/ui/scene/GalleryPreviewFragment.kt rename to app/src/main/kotlin/com/hippo/ehviewer/ui/screen/GalleryPreviewScreen.kt index fd5ad64bf..1f87d5749 100644 --- a/app/src/main/kotlin/com/hippo/ehviewer/ui/scene/GalleryPreviewFragment.kt +++ b/app/src/main/kotlin/com/hippo/ehviewer/ui/screen/GalleryPreviewScreen.kt @@ -1,4 +1,4 @@ -package com.hippo.ehviewer.ui.scene +package com.hippo.ehviewer.ui.screen import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.padding diff --git a/app/src/main/kotlin/com/hippo/ehviewer/ui/scene/HistoryFragment.kt b/app/src/main/kotlin/com/hippo/ehviewer/ui/screen/HistoryScreen.kt similarity index 99% rename from app/src/main/kotlin/com/hippo/ehviewer/ui/scene/HistoryFragment.kt rename to app/src/main/kotlin/com/hippo/ehviewer/ui/screen/HistoryScreen.kt index a1d8aa793..6137de5b2 100644 --- a/app/src/main/kotlin/com/hippo/ehviewer/ui/scene/HistoryFragment.kt +++ b/app/src/main/kotlin/com/hippo/ehviewer/ui/screen/HistoryScreen.kt @@ -1,4 +1,4 @@ -package com.hippo.ehviewer.ui.scene +package com.hippo.ehviewer.ui.screen import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Column diff --git a/app/src/main/kotlin/com/hippo/ehviewer/ui/screen/MainNav.kt b/app/src/main/kotlin/com/hippo/ehviewer/ui/screen/MainNav.kt new file mode 100644 index 000000000..d898ccc4b --- /dev/null +++ b/app/src/main/kotlin/com/hippo/ehviewer/ui/screen/MainNav.kt @@ -0,0 +1,40 @@ +package com.hippo.ehviewer.ui.screen + +import androidx.annotation.MainThread +import androidx.navigation.NavController +import com.hippo.ehviewer.client.parser.GalleryDetailUrlParser +import com.hippo.ehviewer.client.parser.GalleryListUrlParser +import com.hippo.ehviewer.client.parser.GalleryPageUrlParser +import com.hippo.ehviewer.ui.destinations.GalleryDetailScreenDestination +import com.hippo.ehviewer.ui.destinations.GalleryListScreenDestination +import com.hippo.ehviewer.ui.destinations.ProgressScreenDestination +import com.ramcosta.composedestinations.navigation.DestinationsNavigator +import com.ramcosta.composedestinations.spec.Direction + +private fun urlToDestination(url: String): Direction? { + if (url.isEmpty()) return null + val ret1 = GalleryListUrlParser.parse(url) + if (ret1 != null) return GalleryListScreenDestination(ret1) + val ret2 = GalleryDetailUrlParser.parse(url) + if (ret2 != null) return GalleryDetailScreenDestination(TokenArgs(ret2.gid, ret2.token)) + val ret3 = GalleryPageUrlParser.parse(url) + if (ret3 != null) return ProgressScreenDestination(ret3.gid, ret3.pToken, ret3.page) + return null +} + +@MainThread +fun DestinationsNavigator.navWithUrl(url: String): Boolean { + val dest = urlToDestination(url) ?: return false + navigate(dest) + return true +} + +@MainThread +fun NavController.navWithUrl(url: String): Boolean { + val dest = urlToDestination(url) ?: return false + navigate(dest) + return false +} + +@MainThread +fun NavController.navigate(direction: Direction) = navigate(direction.route) diff --git a/app/src/main/kotlin/com/hippo/ehviewer/ui/scene/ProgressFragment.kt b/app/src/main/kotlin/com/hippo/ehviewer/ui/screen/ProgressScreen.kt similarity index 98% rename from app/src/main/kotlin/com/hippo/ehviewer/ui/scene/ProgressFragment.kt rename to app/src/main/kotlin/com/hippo/ehviewer/ui/screen/ProgressScreen.kt index 0b809529d..4ffadaf5a 100644 --- a/app/src/main/kotlin/com/hippo/ehviewer/ui/scene/ProgressFragment.kt +++ b/app/src/main/kotlin/com/hippo/ehviewer/ui/screen/ProgressScreen.kt @@ -1,4 +1,4 @@ -package com.hippo.ehviewer.ui.scene +package com.hippo.ehviewer.ui.screen import androidx.compose.foundation.clickable import androidx.compose.foundation.layout.Arrangement diff --git a/app/src/main/kotlin/com/hippo/ehviewer/ui/scene/SearchBarScene.kt b/app/src/main/kotlin/com/hippo/ehviewer/ui/screen/SearchBarScreen.kt similarity index 99% rename from app/src/main/kotlin/com/hippo/ehviewer/ui/scene/SearchBarScene.kt rename to app/src/main/kotlin/com/hippo/ehviewer/ui/screen/SearchBarScreen.kt index 61334758f..5a8ac6278 100644 --- a/app/src/main/kotlin/com/hippo/ehviewer/ui/scene/SearchBarScene.kt +++ b/app/src/main/kotlin/com/hippo/ehviewer/ui/screen/SearchBarScreen.kt @@ -1,4 +1,4 @@ -package com.hippo.ehviewer.ui.scene +package com.hippo.ehviewer.ui.screen import android.annotation.SuppressLint import androidx.compose.animation.core.animateFloatAsState