From 2d02815abaf17b1beeb6d917fbd226b79ce4d39b Mon Sep 17 00:00:00 2001 From: FooIbar <118464521+FooIbar@users.noreply.github.com> Date: Tue, 19 Aug 2025 20:27:13 +0800 Subject: [PATCH] Extract common UI components part 1/n --- app/build.gradle.kts | 1 + .../com/hippo/ehviewer/EhApplication.kt | 8 ++--- .../com/hippo/ehviewer/SettingsCollector.kt | 2 +- .../com/hippo/ehviewer/client/EhUtils.kt | 2 +- .../ehviewer/dailycheck/DailyCheckWork.kt | 2 +- .../ehviewer/download/DownloadService.kt | 2 +- .../com/hippo/ehviewer/gallery/PageLoader.kt | 2 +- .../com/hippo/ehviewer/ui/CommonOperations.kt | 4 +-- .../com/hippo/ehviewer/ui/ComposeDefault.kt | 6 ++-- .../com/hippo/ehviewer/ui/MainActivity.kt | 16 ++++----- .../hippo/ehviewer/ui/login/SignInScreen.kt | 10 +++--- .../com/hippo/ehviewer/ui/main/AvatarIcon.kt | 6 ++-- .../hippo/ehviewer/ui/main/DownloadCard.kt | 6 ++-- .../hippo/ehviewer/ui/main/EhAsyncThumb.kt | 8 ++--- .../com/hippo/ehviewer/ui/main/FundsItem.kt | 1 + .../hippo/ehviewer/ui/main/GalleryDetail.kt | 8 ++--- .../com/hippo/ehviewer/ui/main/GalleryInfo.kt | 10 +++--- .../com/hippo/ehviewer/ui/main/GalleryList.kt | 10 +++--- .../hippo/ehviewer/ui/main/GalleryPreview.kt | 2 +- .../hippo/ehviewer/ui/main/SearchFilter.kt | 6 ++-- .../ehviewer/ui/reader/ColorFilterSetting.kt | 2 +- .../com/hippo/ehviewer/ui/reader/PagerItem.kt | 2 +- .../hippo/ehviewer/ui/reader/ReaderScreen.kt | 10 +++--- .../com/hippo/ehviewer/ui/reader/Widget.kt | 2 +- .../ehviewer/ui/screen/DownloadsScreen.kt | 34 +++++++++---------- .../ehviewer/ui/screen/FavoritesScreen.kt | 22 ++++++------ .../ehviewer/ui/screen/FavoritesViewModel.kt | 2 +- .../ui/screen/GalleryCommentsScreen.kt | 12 +++---- .../ui/screen/GalleryDetailContent.kt | 32 ++++++++--------- .../ehviewer/ui/screen/GalleryDetailScreen.kt | 12 +++---- .../ehviewer/ui/screen/GalleryListScreen.kt | 28 +++++++-------- .../ui/screen/GalleryListViewModel.kt | 2 +- .../hippo/ehviewer/ui/screen/HistoryScreen.kt | 14 ++++---- .../ehviewer/ui/screen/ImageSearchScreen.kt | 8 ++--- .../ehviewer/ui/screen/ProgressScreen.kt | 6 ++-- .../ehviewer/ui/screen/SearchBarScreen.kt | 6 ++-- .../hippo/ehviewer/ui/settings/AboutScreen.kt | 4 +-- .../ehviewer/ui/settings/AdvancedScreen.kt | 4 +-- .../ehviewer/ui/settings/DownloadScreen.kt | 4 +-- .../hippo/ehviewer/ui/settings/EhScreen.kt | 2 +- .../ehviewer/ui/settings/FilterScreen.kt | 8 ++--- .../ehviewer/ui/settings/PreferenceWidgets.kt | 2 +- .../ehviewer/ui/settings/PrivacyScreen.kt | 2 +- .../ehviewer/ui/settings/SettingsScreen.kt | 4 +-- .../ehviewer/ui/settings/UConfigScreen.kt | 2 +- .../com/hippo/ehviewer/ui/theme/Theme.kt | 2 +- .../com/hippo/ehviewer/ui/tools/Dialog.kt | 2 ++ .../ehviewer/util/FavouriteStatusRouter.kt | 4 +-- .../com/hippo/ehviewer/util/LauncherUtils.kt | 2 +- .../tachiyomi/ui/reader/BottomReaderBar.kt | 6 ++-- .../tachiyomi/ui/reader/ChapterNavigator.kt | 8 ++--- .../tachiyomi/ui/reader/PageIndicatorText.kt | 4 +-- .../ui/reader/setting/OrientationType.kt | 12 +++---- .../ui/reader/setting/ReadingModeType.kt | 14 ++++---- .../compose/preference/IntSliderPreference.kt | 2 +- .../main/kotlin/moe/tarsin/ContextBridges.kt | 19 ----------- .../kotlin/moe/tarsin/coroutines/Result.kt | 2 +- core/common/build.gradle.kts | 21 ++++++++++++ .../com/ehviewer/core/util/ContextBridges.kt | 21 ++++++++++++ .../core/util}/CoroutinesExtensions.kt | 2 +- .../kotlin/com/ehviewer/core/util}/Flow.kt | 2 +- .../kotlin/com/ehviewer/core/util/Lazy.kt | 2 +- core/data/build.gradle.kts | 3 +- core/ui/build.gradle.kts | 29 ++++++++++++++++ .../gestures/AnchoredHorizontalDraggable.kt | 0 .../gestures/HorizontalDragGestureDetector.kt | 0 .../gestures/HorizontalDraggable.kt | 0 .../LazyStaggeredGridScrollbarAdapter.kt | 0 .../compose/foundation/scrollbar/Scrollbar.kt | 0 .../foundation/scrollbar/ScrollbarAdapter.kt | 0 .../androidx/compose/material3/SideDrawer.kt | 2 +- .../material3/fork/DraggableAnchors.kt | 0 .../material3/fork/SwipeToDismissBox.kt | 0 .../com/ehviewer/core/ui/component}/Button.kt | 2 +- .../com/ehviewer/core/ui/component}/Card.kt | 2 +- .../core/ui/component}/DropdownFilterChip.kt | 2 +- .../com/ehviewer/core/ui/component}/Dummy.kt | 2 +- .../ehviewer/core/ui/component}/FabLayout.kt | 12 +++---- .../core/ui/component}/LabeledCheckbox.kt | 2 +- .../ehviewer/core/ui/component}/LazyGrid.kt | 2 +- .../ehviewer/core/ui/component}/LazyList.kt | 2 +- .../core/ui/component}/MutableSideSheet.kt | 2 +- .../core/ui/component}/RollingNumber.kt | 2 +- .../com/ehviewer/core/ui/component}/Slider.kt | 2 +- .../core/ui/component}/VerticalScrollbar.kt | 8 ++--- .../com/ehviewer/core/ui}/icons/EhIcons.kt | 2 +- .../ehviewer/core/ui}/icons/big/Download.kt | 8 ++--- .../ehviewer/core/ui}/icons/big/History.kt | 8 ++--- .../ehviewer/core/ui}/icons/big/SadAndroid.kt | 8 ++--- .../ehviewer/core/ui}/icons/filled/Crop.kt | 6 ++-- .../ehviewer/core/ui}/icons/filled/CropOff.kt | 6 ++-- .../ehviewer/core/ui}/icons/filled/GoTo.kt | 6 ++-- .../ehviewer/core/ui}/icons/filled/Magnet.kt | 6 ++-- .../core/ui}/icons/filled/SadPanda.kt | 6 ++-- .../core/ui}/icons/filled/Subscriptions.kt | 6 ++-- .../ui}/icons/reader/ContinuousVertical.kt | 6 ++-- .../ehviewer/core/ui}/icons/reader/Default.kt | 6 ++-- .../core/ui}/icons/reader/Landscape.kt | 6 ++-- .../core/ui}/icons/reader/LandscapeLocked.kt | 6 ++-- .../core/ui}/icons/reader/LeftToRight.kt | 6 ++-- .../core/ui}/icons/reader/Portrait.kt | 6 ++-- .../core/ui}/icons/reader/PortraitLocked.kt | 6 ++-- .../core/ui}/icons/reader/RightToLeft.kt | 6 ++-- .../core/ui}/icons/reader/ScreenRotation.kt | 6 ++-- .../core/ui}/icons/reader/Vertical.kt | 6 ++-- .../ehviewer/core/ui}/icons/reader/Webtoon.kt | 6 ++-- .../com/ehviewer/core/ui/util}/Await.kt | 2 +- .../com/ehviewer/core/ui/util}/Modifier.kt | 2 +- .../ehviewer/core/ui/util}/PredictiveBack.kt | 6 ++-- .../core/ui/util}/SharedElementTransition.kt | 2 +- .../ehviewer/core/ui/util}/SnackBarPadding.kt | 6 ++-- .../core/ui/util}/SnapshotFlowState.kt | 2 +- .../ehviewer/core/ui/util}/ViewModelState.kt | 2 +- .../ehviewer/core/ui/util}/WindowSizeClass.kt | 2 +- gradle/libs.versions.toml | 7 ++-- settings.gradle.kts | 2 ++ 116 files changed, 380 insertions(+), 318 deletions(-) create mode 100644 core/common/build.gradle.kts create mode 100644 core/common/src/commonMain/kotlin/com/ehviewer/core/util/ContextBridges.kt rename {app/src/main/kotlin/eu/kanade/tachiyomi/util/lang => core/common/src/commonMain/kotlin/com/ehviewer/core/util}/CoroutinesExtensions.kt (96%) rename {app/src/main/kotlin/moe/tarsin/coroutines => core/common/src/commonMain/kotlin/com/ehviewer/core/util}/Flow.kt (89%) rename app/src/main/kotlin/com/hippo/ehviewer/util/LazyDelegate.kt => core/common/src/commonMain/kotlin/com/ehviewer/core/util/Lazy.kt (73%) create mode 100644 core/ui/build.gradle.kts rename {app/src/main => core/ui/src/commonMain}/kotlin/androidx/compose/foundation/gestures/AnchoredHorizontalDraggable.kt (100%) rename {app/src/main => core/ui/src/commonMain}/kotlin/androidx/compose/foundation/gestures/HorizontalDragGestureDetector.kt (100%) rename {app/src/main => core/ui/src/commonMain}/kotlin/androidx/compose/foundation/gestures/HorizontalDraggable.kt (100%) rename {app/src/main => core/ui/src/commonMain}/kotlin/androidx/compose/foundation/scrollbar/LazyStaggeredGridScrollbarAdapter.kt (100%) rename {app/src/main => core/ui/src/commonMain}/kotlin/androidx/compose/foundation/scrollbar/Scrollbar.kt (100%) rename {app/src/main => core/ui/src/commonMain}/kotlin/androidx/compose/foundation/scrollbar/ScrollbarAdapter.kt (100%) rename {app/src/main => core/ui/src/commonMain}/kotlin/androidx/compose/material3/SideDrawer.kt (99%) rename {app/src/main => core/ui/src/commonMain}/kotlin/androidx/compose/material3/fork/DraggableAnchors.kt (100%) rename {app/src/main => core/ui/src/commonMain}/kotlin/androidx/compose/material3/fork/SwipeToDismissBox.kt (100%) rename {app/src/main/kotlin/com/hippo/ehviewer/ui/tools => core/ui/src/commonMain/kotlin/com/ehviewer/core/ui/component}/Button.kt (98%) rename {app/src/main/kotlin/com/hippo/ehviewer/ui/tools => core/ui/src/commonMain/kotlin/com/ehviewer/core/ui/component}/Card.kt (97%) rename {app/src/main/kotlin/com/hippo/ehviewer/ui/tools => core/ui/src/commonMain/kotlin/com/ehviewer/core/ui/component}/DropdownFilterChip.kt (97%) rename {app/src/main/kotlin/com/hippo/ehviewer/ui/tools => core/ui/src/commonMain/kotlin/com/ehviewer/core/ui/component}/Dummy.kt (98%) rename {app/src/main/kotlin/com/hippo/ehviewer/ui/main => core/ui/src/commonMain/kotlin/com/ehviewer/core/ui/component}/FabLayout.kt (96%) rename {app/src/main/kotlin/com/hippo/ehviewer/ui/tools => core/ui/src/commonMain/kotlin/com/ehviewer/core/ui/component}/LabeledCheckbox.kt (97%) rename {app/src/main/kotlin/com/hippo/ehviewer/ui/tools => core/ui/src/commonMain/kotlin/com/ehviewer/core/ui/component}/LazyGrid.kt (98%) rename {app/src/main/kotlin/com/hippo/ehviewer/ui/tools => core/ui/src/commonMain/kotlin/com/ehviewer/core/ui/component}/LazyList.kt (98%) rename {app/src/main/kotlin/com/hippo/ehviewer/ui => core/ui/src/commonMain/kotlin/com/ehviewer/core/ui/component}/MutableSideSheet.kt (98%) rename {app/src/main/kotlin/com/hippo/ehviewer/ui/main => core/ui/src/commonMain/kotlin/com/ehviewer/core/ui/component}/RollingNumber.kt (99%) rename {app/src/main/kotlin/com/hippo/ehviewer/ui/tools => core/ui/src/commonMain/kotlin/com/ehviewer/core/ui/component}/Slider.kt (98%) rename {app/src/main/kotlin/com/hippo/ehviewer/ui/tools => core/ui/src/commonMain/kotlin/com/ehviewer/core/ui/component}/VerticalScrollbar.kt (93%) rename {app/src/main/kotlin/com/hippo/ehviewer => core/ui/src/commonMain/kotlin/com/ehviewer/core/ui}/icons/EhIcons.kt (95%) rename {app/src/main/kotlin/com/hippo/ehviewer => core/ui/src/commonMain/kotlin/com/ehviewer/core/ui}/icons/big/Download.kt (87%) rename {app/src/main/kotlin/com/hippo/ehviewer => core/ui/src/commonMain/kotlin/com/ehviewer/core/ui}/icons/big/History.kt (91%) rename {app/src/main/kotlin/com/hippo/ehviewer => core/ui/src/commonMain/kotlin/com/ehviewer/core/ui}/icons/big/SadAndroid.kt (93%) rename {app/src/main/kotlin/com/hippo/ehviewer => core/ui/src/commonMain/kotlin/com/ehviewer/core/ui}/icons/filled/Crop.kt (92%) rename {app/src/main/kotlin/com/hippo/ehviewer => core/ui/src/commonMain/kotlin/com/ehviewer/core/ui}/icons/filled/CropOff.kt (94%) rename {app/src/main/kotlin/com/hippo/ehviewer => core/ui/src/commonMain/kotlin/com/ehviewer/core/ui}/icons/filled/GoTo.kt (91%) rename {app/src/main/kotlin/com/hippo/ehviewer => core/ui/src/commonMain/kotlin/com/ehviewer/core/ui}/icons/filled/Magnet.kt (91%) rename {app/src/main/kotlin/com/hippo/ehviewer => core/ui/src/commonMain/kotlin/com/ehviewer/core/ui}/icons/filled/SadPanda.kt (94%) rename {app/src/main/kotlin/com/hippo/ehviewer => core/ui/src/commonMain/kotlin/com/ehviewer/core/ui}/icons/filled/Subscriptions.kt (95%) rename {app/src/main/kotlin/com/hippo/ehviewer => core/ui/src/commonMain/kotlin/com/ehviewer/core/ui}/icons/reader/ContinuousVertical.kt (93%) rename {app/src/main/kotlin/com/hippo/ehviewer => core/ui/src/commonMain/kotlin/com/ehviewer/core/ui}/icons/reader/Default.kt (97%) rename {app/src/main/kotlin/com/hippo/ehviewer => core/ui/src/commonMain/kotlin/com/ehviewer/core/ui}/icons/reader/Landscape.kt (90%) rename {app/src/main/kotlin/com/hippo/ehviewer => core/ui/src/commonMain/kotlin/com/ehviewer/core/ui}/icons/reader/LandscapeLocked.kt (94%) rename {app/src/main/kotlin/com/hippo/ehviewer => core/ui/src/commonMain/kotlin/com/ehviewer/core/ui}/icons/reader/LeftToRight.kt (95%) rename {app/src/main/kotlin/com/hippo/ehviewer => core/ui/src/commonMain/kotlin/com/ehviewer/core/ui}/icons/reader/Portrait.kt (90%) rename {app/src/main/kotlin/com/hippo/ehviewer => core/ui/src/commonMain/kotlin/com/ehviewer/core/ui}/icons/reader/PortraitLocked.kt (94%) rename {app/src/main/kotlin/com/hippo/ehviewer => core/ui/src/commonMain/kotlin/com/ehviewer/core/ui}/icons/reader/RightToLeft.kt (95%) rename {app/src/main/kotlin/com/hippo/ehviewer => core/ui/src/commonMain/kotlin/com/ehviewer/core/ui}/icons/reader/ScreenRotation.kt (94%) rename {app/src/main/kotlin/com/hippo/ehviewer => core/ui/src/commonMain/kotlin/com/ehviewer/core/ui}/icons/reader/Vertical.kt (93%) rename {app/src/main/kotlin/com/hippo/ehviewer => core/ui/src/commonMain/kotlin/com/ehviewer/core/ui}/icons/reader/Webtoon.kt (92%) rename {app/src/main/kotlin/com/hippo/ehviewer/ui/tools => core/ui/src/commonMain/kotlin/com/ehviewer/core/ui/util}/Await.kt (96%) rename {app/src/main/kotlin/com/hippo/ehviewer/ui/tools => core/ui/src/commonMain/kotlin/com/ehviewer/core/ui/util}/Modifier.kt (82%) rename {app/src/main/kotlin/com/hippo/ehviewer/ui/tools => core/ui/src/commonMain/kotlin/com/ehviewer/core/ui/util}/PredictiveBack.kt (96%) rename {app/src/main/kotlin/com/hippo/ehviewer/ui/tools => core/ui/src/commonMain/kotlin/com/ehviewer/core/ui/util}/SharedElementTransition.kt (98%) rename {app/src/main/kotlin/com/hippo/ehviewer/ui/tools => core/ui/src/commonMain/kotlin/com/ehviewer/core/ui/util}/SnackBarPadding.kt (82%) rename {app/src/main/kotlin/com/hippo/ehviewer/ui/tools => core/ui/src/commonMain/kotlin/com/ehviewer/core/ui/util}/SnapshotFlowState.kt (93%) rename {app/src/main/kotlin/com/hippo/ehviewer/ui/tools => core/ui/src/commonMain/kotlin/com/ehviewer/core/ui/util}/ViewModelState.kt (99%) rename {app/src/main/kotlin/com/hippo/ehviewer/ui/tools => core/ui/src/commonMain/kotlin/com/ehviewer/core/ui/util}/WindowSizeClass.kt (92%) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index aced4a821..833f8034b 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -171,6 +171,7 @@ baselineProfile { dependencies { implementation(projects.core.data) implementation(projects.core.i18n) + implementation(projects.core.ui) // https://developer.android.com/jetpack/androidx/releases/activity implementation(libs.androidx.activity.compose) diff --git a/app/src/main/kotlin/com/hippo/ehviewer/EhApplication.kt b/app/src/main/kotlin/com/hippo/ehviewer/EhApplication.kt index 7f72b7ae4..778a56762 100644 --- a/app/src/main/kotlin/com/hippo/ehviewer/EhApplication.kt +++ b/app/src/main/kotlin/com/hippo/ehviewer/EhApplication.kt @@ -37,6 +37,10 @@ import coil3.request.allowRgb565 import coil3.request.crossfade import coil3.serviceLoaderEnabled import coil3.util.DebugLogger +import com.ehviewer.core.ui.util.initSETConnection +import com.ehviewer.core.util.launchIO +import com.ehviewer.core.util.launchUI +import com.ehviewer.core.util.withUIContext import com.hippo.ehviewer.client.EhTagDatabase import com.hippo.ehviewer.coil.AnimatedWebPDecoder import com.hippo.ehviewer.coil.CropBorderInterceptor @@ -59,7 +63,6 @@ import com.hippo.ehviewer.ui.keepNoMediaFileStatus import com.hippo.ehviewer.ui.lockObserver import com.hippo.ehviewer.ui.screen.detailCache import com.hippo.ehviewer.ui.tools.dataStateFlow -import com.hippo.ehviewer.ui.tools.initSETConnection import com.hippo.ehviewer.util.AppConfig import com.hippo.ehviewer.util.CrashHandler import com.hippo.ehviewer.util.FavouriteStatusRouter @@ -70,9 +73,6 @@ import com.hippo.ehviewer.util.isAtLeastP import com.hippo.ehviewer.util.isAtLeastS import com.hippo.ehviewer.util.isAtLeastSExtension7 import com.hippo.files.deleteContent -import eu.kanade.tachiyomi.util.lang.launchIO -import eu.kanade.tachiyomi.util.lang.launchUI -import eu.kanade.tachiyomi.util.lang.withUIContext import eu.kanade.tachiyomi.util.system.logcat import io.ktor.client.HttpClient import io.ktor.client.engine.okhttp.OkHttp diff --git a/app/src/main/kotlin/com/hippo/ehviewer/SettingsCollector.kt b/app/src/main/kotlin/com/hippo/ehviewer/SettingsCollector.kt index d2aa21662..fda29068f 100644 --- a/app/src/main/kotlin/com/hippo/ehviewer/SettingsCollector.kt +++ b/app/src/main/kotlin/com/hippo/ehviewer/SettingsCollector.kt @@ -4,12 +4,12 @@ import android.app.UiModeManager import androidx.appcompat.app.AppCompatDelegate import arrow.core.Either.Companion.catch import com.ehviewer.core.preferences.PrefDelegate +import com.ehviewer.core.util.withIOContext import com.hippo.ehviewer.client.EhEngine import com.hippo.ehviewer.client.EhTagDatabase import com.hippo.ehviewer.dailycheck.updateDailyCheckWork import com.hippo.ehviewer.ui.keepNoMediaFileStatus import com.hippo.ehviewer.util.isAtLeastS -import eu.kanade.tachiyomi.util.lang.withIOContext import eu.kanade.tachiyomi.util.system.logcat import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.Dispatchers diff --git a/app/src/main/kotlin/com/hippo/ehviewer/client/EhUtils.kt b/app/src/main/kotlin/com/hippo/ehviewer/client/EhUtils.kt index 7e7783aba..76b30a930 100644 --- a/app/src/main/kotlin/com/hippo/ehviewer/client/EhUtils.kt +++ b/app/src/main/kotlin/com/hippo/ehviewer/client/EhUtils.kt @@ -27,6 +27,7 @@ import androidx.compose.runtime.Stable import androidx.compose.ui.graphics.Color import androidx.core.net.toUri import arrow.core.memoize +import com.ehviewer.core.util.withUIContext import com.hippo.ehviewer.Settings import com.hippo.ehviewer.client.data.GalleryDetail import com.hippo.ehviewer.client.data.GalleryInfo @@ -38,7 +39,6 @@ import com.hippo.ehviewer.util.addTextToClipboard import com.materialkolor.hct.Hct import com.materialkolor.ktx.from import com.materialkolor.ktx.toColor -import eu.kanade.tachiyomi.util.lang.withUIContext import splitties.systemservices.downloadManager object EhUtils { diff --git a/app/src/main/kotlin/com/hippo/ehviewer/dailycheck/DailyCheckWork.kt b/app/src/main/kotlin/com/hippo/ehviewer/dailycheck/DailyCheckWork.kt index c4dbebdfb..581f74001 100644 --- a/app/src/main/kotlin/com/hippo/ehviewer/dailycheck/DailyCheckWork.kt +++ b/app/src/main/kotlin/com/hippo/ehviewer/dailycheck/DailyCheckWork.kt @@ -19,10 +19,10 @@ import androidx.work.PeriodicWorkRequest import androidx.work.PeriodicWorkRequestBuilder import androidx.work.WorkManager import androidx.work.WorkerParameters +import com.ehviewer.core.util.withIOContext import com.hippo.ehviewer.R import com.hippo.ehviewer.Settings import com.hippo.ehviewer.client.EhEngine -import eu.kanade.tachiyomi.util.lang.withIOContext import eu.kanade.tachiyomi.util.system.logcat import java.time.Duration import java.util.concurrent.TimeUnit 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 bad0e171c..0781285ac 100644 --- a/app/src/main/kotlin/com/hippo/ehviewer/download/DownloadService.kt +++ b/app/src/main/kotlin/com/hippo/ehviewer/download/DownloadService.kt @@ -32,6 +32,7 @@ import androidx.core.content.ContextCompat import androidx.savedstate.serialization.decodeFromSavedState import androidx.savedstate.serialization.encodeToSavedState import com.ehviewer.core.i18n.R +import com.ehviewer.core.util.unsafeLazy import com.hippo.ehviewer.client.EhUtils import com.hippo.ehviewer.client.data.BaseGalleryInfo import com.hippo.ehviewer.dao.DownloadInfo @@ -39,7 +40,6 @@ import com.hippo.ehviewer.ui.MainActivity import com.hippo.ehviewer.util.FileUtils import com.hippo.ehviewer.util.ReadableTime import com.hippo.ehviewer.util.isAtLeastS -import com.hippo.ehviewer.util.unsafeLazy import eu.kanade.tachiyomi.util.system.logcat import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.Dispatchers diff --git a/app/src/main/kotlin/com/hippo/ehviewer/gallery/PageLoader.kt b/app/src/main/kotlin/com/hippo/ehviewer/gallery/PageLoader.kt index 72c64cdb4..04cfce5aa 100644 --- a/app/src/main/kotlin/com/hippo/ehviewer/gallery/PageLoader.kt +++ b/app/src/main/kotlin/com/hippo/ehviewer/gallery/PageLoader.kt @@ -4,6 +4,7 @@ import androidx.collection.SieveCache import androidx.collection.mutableIntObjectMapOf import arrow.fx.coroutines.ExitCase import arrow.fx.coroutines.bracketCase +import com.ehviewer.core.util.withNonCancellableContext import com.hippo.ehviewer.EhDB import com.hippo.ehviewer.Settings import com.hippo.ehviewer.image.Image @@ -13,7 +14,6 @@ import com.hippo.ehviewer.util.OSUtils import com.hippo.ehviewer.util.detectAds import com.hippo.ehviewer.util.displayString import com.hippo.ehviewer.util.isAtLeastO -import eu.kanade.tachiyomi.util.lang.withNonCancellableContext import java.util.concurrent.locks.ReentrantReadWriteLock import kotlin.concurrent.atomics.AtomicInt import kotlin.concurrent.read diff --git a/app/src/main/kotlin/com/hippo/ehviewer/ui/CommonOperations.kt b/app/src/main/kotlin/com/hippo/ehviewer/ui/CommonOperations.kt index bcedd7ba7..e3eee11d5 100644 --- a/app/src/main/kotlin/com/hippo/ehviewer/ui/CommonOperations.kt +++ b/app/src/main/kotlin/com/hippo/ehviewer/ui/CommonOperations.kt @@ -36,6 +36,8 @@ import androidx.compose.ui.Modifier import androidx.compose.ui.res.stringResource import androidx.compose.ui.unit.dp import com.ehviewer.core.i18n.R +import com.ehviewer.core.ui.component.LabeledCheckbox +import com.ehviewer.core.util.withIOContext import com.hippo.ehviewer.EhDB import com.hippo.ehviewer.Settings import com.hippo.ehviewer.client.EhEngine @@ -54,7 +56,6 @@ import com.hippo.ehviewer.download.tempDownloadDir import com.hippo.ehviewer.ui.destinations.ReaderScreenDestination import com.hippo.ehviewer.ui.reader.ReaderScreenArgs import com.hippo.ehviewer.ui.tools.DialogState -import com.hippo.ehviewer.ui.tools.LabeledCheckbox import com.hippo.ehviewer.ui.tools.awaitConfirmationOrCancel import com.hippo.ehviewer.ui.tools.awaitResult import com.hippo.ehviewer.ui.tools.awaitSelectDate @@ -75,7 +76,6 @@ import com.hippo.files.exists import com.hippo.files.isDirectory import com.hippo.files.write import com.ramcosta.composedestinations.navigation.DestinationsNavigator -import eu.kanade.tachiyomi.util.lang.withIOContext import kotlin.time.Clock import kotlinx.coroutines.sync.Mutex import kotlinx.coroutines.sync.withLock diff --git a/app/src/main/kotlin/com/hippo/ehviewer/ui/ComposeDefault.kt b/app/src/main/kotlin/com/hippo/ehviewer/ui/ComposeDefault.kt index 7f3a00d70..4b3258d28 100644 --- a/app/src/main/kotlin/com/hippo/ehviewer/ui/ComposeDefault.kt +++ b/app/src/main/kotlin/com/hippo/ehviewer/ui/ComposeDefault.kt @@ -10,11 +10,11 @@ import androidx.compose.runtime.remember import androidx.compose.runtime.rememberCoroutineScope import androidx.compose.ui.Modifier import androidx.compose.ui.platform.LocalContext +import com.ehviewer.core.ui.util.NoopTransitionsVisibilityScope +import com.ehviewer.core.ui.util.TransitionsVisibilityScope +import com.ehviewer.core.ui.util.togetherWith import com.hippo.ehviewer.ui.tools.DialogState import com.hippo.ehviewer.ui.tools.LocalGlobalDialogState -import com.hippo.ehviewer.ui.tools.NoopTransitionsVisibilityScope -import com.hippo.ehviewer.ui.tools.TransitionsVisibilityScope -import com.hippo.ehviewer.ui.tools.togetherWith import com.hippo.ehviewer.util.findActivity import com.ramcosta.composedestinations.navigation.DestinationsNavigator import kotlinx.coroutines.CoroutineScope 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 fcac35fd0..a677fb036 100644 --- a/app/src/main/kotlin/com/hippo/ehviewer/ui/MainActivity.kt +++ b/app/src/main/kotlin/com/hippo/ehviewer/ui/MainActivity.kt @@ -70,7 +70,6 @@ import androidx.compose.runtime.Composable import androidx.compose.runtime.CompositionLocalProvider import androidx.compose.runtime.DisposableEffect import androidx.compose.runtime.LaunchedEffect -import androidx.compose.runtime.State import androidx.compose.runtime.collectAsState import androidx.compose.runtime.compositionLocalOf import androidx.compose.runtime.currentCompositeKeyHashCode @@ -97,7 +96,6 @@ import androidx.compose.ui.platform.LocalConfiguration import androidx.compose.ui.platform.LocalDensity import androidx.compose.ui.res.painterResource import androidx.compose.ui.res.stringResource -import androidx.compose.ui.unit.Dp import androidx.compose.ui.unit.dp import androidx.compose.ui.util.lerp import androidx.core.net.toUri @@ -105,6 +103,14 @@ import androidx.core.splashscreen.SplashScreen.Companion.installSplashScreen import androidx.lifecycle.compose.LifecycleResumeEffect import androidx.navigation.compose.rememberNavController import com.ehviewer.core.i18n.R +import com.ehviewer.core.ui.component.LabeledCheckbox +import com.ehviewer.core.ui.component.LocalSideSheetState +import com.ehviewer.core.ui.component.MutableSideSheet +import com.ehviewer.core.ui.icons.EhIcons +import com.ehviewer.core.ui.icons.filled.Subscriptions +import com.ehviewer.core.ui.util.LocalSnackBarFabPadding +import com.ehviewer.core.ui.util.LocalWindowSizeClass +import com.ehviewer.core.util.withIOContext import com.hippo.ehviewer.Settings import com.hippo.ehviewer.client.data.ListUrlBuilder import com.hippo.ehviewer.client.parser.GalleryDetailUrlParser @@ -112,8 +118,6 @@ import com.hippo.ehviewer.client.parser.GalleryPageUrlParser import com.hippo.ehviewer.collectAsState import com.hippo.ehviewer.download.DownloadService import com.hippo.ehviewer.download.downloadLocation -import com.hippo.ehviewer.icons.EhIcons -import com.hippo.ehviewer.icons.filled.Subscriptions import com.hippo.ehviewer.ui.destinations.DownloadScreenDestination import com.hippo.ehviewer.ui.destinations.DownloadsScreenDestination import com.hippo.ehviewer.ui.destinations.FavouritesScreenDestination @@ -130,8 +134,6 @@ import com.hippo.ehviewer.ui.screen.asDstWith import com.hippo.ehviewer.ui.screen.navWithUrl import com.hippo.ehviewer.ui.settings.showNewVersion import com.hippo.ehviewer.ui.tools.DialogState -import com.hippo.ehviewer.ui.tools.LabeledCheckbox -import com.hippo.ehviewer.ui.tools.LocalWindowSizeClass import com.hippo.ehviewer.ui.tools.awaitConfirmationOrCancel import com.hippo.ehviewer.ui.tools.awaitInputText import com.hippo.ehviewer.updater.AppUpdater @@ -150,7 +152,6 @@ import com.ramcosta.composedestinations.DestinationsNavHost import com.ramcosta.composedestinations.spec.Direction import com.ramcosta.composedestinations.utils.currentDestinationAsState import com.ramcosta.composedestinations.utils.rememberDestinationsNavigator -import eu.kanade.tachiyomi.util.lang.withIOContext import kotlinx.coroutines.channels.BufferOverflow import kotlinx.coroutines.channels.Channel import kotlinx.coroutines.delay @@ -532,7 +533,6 @@ val LocalNavDrawerState = compositionLocalOf { error("CompositionLo val LocalDrawerHandle = compositionLocalOf> { error("CompositionLocal LocalDrawerHandle not present!") } val LocalSnackBarHostState = compositionLocalOf { error("CompositionLocal LocalSnackBarHostState not present!") } -val LocalSnackBarFabPadding = compositionLocalOf> { error("CompositionLocal LocalSnackBarFabPadding not present!") } val LocalSharedTransitionScope = compositionLocalOf { error("CompositionLocal LocalSharedTransitionScope not present!") } @Composable diff --git a/app/src/main/kotlin/com/hippo/ehviewer/ui/login/SignInScreen.kt b/app/src/main/kotlin/com/hippo/ehviewer/ui/login/SignInScreen.kt index ad299ae34..23fb3c6eb 100644 --- a/app/src/main/kotlin/com/hippo/ehviewer/ui/login/SignInScreen.kt +++ b/app/src/main/kotlin/com/hippo/ehviewer/ui/login/SignInScreen.kt @@ -59,6 +59,11 @@ import androidx.compose.ui.text.style.TextDecoration import androidx.compose.ui.text.withStyle import androidx.compose.ui.unit.dp import com.ehviewer.core.i18n.R +import com.ehviewer.core.ui.util.LocalWindowSizeClass +import com.ehviewer.core.ui.util.isExpanded +import com.ehviewer.core.ui.util.thenIf +import com.ehviewer.core.util.launchIO +import com.ehviewer.core.util.withUIContext import com.hippo.ehviewer.Settings import com.hippo.ehviewer.client.EhEngine import com.hippo.ehviewer.client.EhUrl @@ -66,18 +71,13 @@ import com.hippo.ehviewer.client.EhUtils import com.hippo.ehviewer.ui.Screen import com.hippo.ehviewer.ui.destinations.WebViewSignInScreenDestination import com.hippo.ehviewer.ui.openBrowser -import com.hippo.ehviewer.ui.tools.LocalWindowSizeClass import com.hippo.ehviewer.ui.tools.awaitConfirmationOrCancel -import com.hippo.ehviewer.ui.tools.isExpanded -import com.hippo.ehviewer.ui.tools.thenIf import com.hippo.ehviewer.util.displayString import com.jamal.composeprefs3.ui.ifTrueThen import com.ramcosta.composedestinations.annotation.Destination import com.ramcosta.composedestinations.annotation.RootGraph import com.ramcosta.composedestinations.navigation.DestinationsNavigator -import eu.kanade.tachiyomi.util.lang.withUIContext import kotlinx.coroutines.Job -import moe.tarsin.launchIO import moe.tarsin.navigate @Destination(start = true) diff --git a/app/src/main/kotlin/com/hippo/ehviewer/ui/main/AvatarIcon.kt b/app/src/main/kotlin/com/hippo/ehviewer/ui/main/AvatarIcon.kt index caf7b6c3f..24cf02bfd 100644 --- a/app/src/main/kotlin/com/hippo/ehviewer/ui/main/AvatarIcon.kt +++ b/app/src/main/kotlin/com/hippo/ehviewer/ui/main/AvatarIcon.kt @@ -44,6 +44,10 @@ import arrow.core.some import coil3.compose.AsyncImage import coil3.network.HttpException import com.ehviewer.core.i18n.R +import com.ehviewer.core.ui.component.RollingNumber +import com.ehviewer.core.ui.component.RollingNumberPlaceholder +import com.ehviewer.core.util.launch +import com.ehviewer.core.util.launchIO import com.hippo.ehviewer.Settings import com.hippo.ehviewer.client.EhEngine import com.hippo.ehviewer.client.EhUtils @@ -65,8 +69,6 @@ import kotlinx.coroutines.flow.merge import kotlinx.coroutines.flow.onEach import kotlinx.coroutines.flow.stateIn import moe.tarsin.coroutines.runSwallowingWithUI -import moe.tarsin.launch -import moe.tarsin.launchIO private val limitScope = CoroutineScope(Dispatchers.IO) private val refreshEvent = MutableSharedFlow() diff --git a/app/src/main/kotlin/com/hippo/ehviewer/ui/main/DownloadCard.kt b/app/src/main/kotlin/com/hippo/ehviewer/ui/main/DownloadCard.kt index 88e94c2f2..cffd11e9d 100644 --- a/app/src/main/kotlin/com/hippo/ehviewer/ui/main/DownloadCard.kt +++ b/app/src/main/kotlin/com/hippo/ehviewer/ui/main/DownloadCard.kt @@ -40,14 +40,14 @@ import androidx.compose.ui.res.stringResource import androidx.compose.ui.text.style.TextOverflow import androidx.compose.ui.unit.dp import com.ehviewer.core.i18n.R +import com.ehviewer.core.ui.component.CrystalCard +import com.ehviewer.core.ui.util.TransitionsVisibilityScope +import com.ehviewer.core.ui.util.listThumbGenerator import com.hippo.ehviewer.Settings import com.hippo.ehviewer.client.EhUtils import com.hippo.ehviewer.dao.DownloadInfo import com.hippo.ehviewer.download.DownloadManager -import com.hippo.ehviewer.ui.tools.CrystalCard import com.hippo.ehviewer.ui.tools.GalleryListCardRating -import com.hippo.ehviewer.ui.tools.TransitionsVisibilityScope -import com.hippo.ehviewer.ui.tools.listThumbGenerator import com.hippo.ehviewer.util.FileUtils @Composable diff --git a/app/src/main/kotlin/com/hippo/ehviewer/ui/main/EhAsyncThumb.kt b/app/src/main/kotlin/com/hippo/ehviewer/ui/main/EhAsyncThumb.kt index 74a2031d2..5e8c7e189 100644 --- a/app/src/main/kotlin/com/hippo/ehviewer/ui/main/EhAsyncThumb.kt +++ b/app/src/main/kotlin/com/hippo/ehviewer/ui/main/EhAsyncThumb.kt @@ -18,13 +18,13 @@ import androidx.compose.ui.layout.ContentScale import androidx.compose.ui.platform.LocalContext import coil3.compose.AsyncImagePainter import coil3.compose.rememberAsyncImagePainter +import com.ehviewer.core.ui.util.SETNodeGenerator +import com.ehviewer.core.ui.util.SharedElementBox +import com.ehviewer.core.ui.util.TransitionsVisibilityScope +import com.ehviewer.core.ui.util.thenIf import com.hippo.ehviewer.client.data.GalleryInfo import com.hippo.ehviewer.ktbuilder.imageRequest -import com.hippo.ehviewer.ui.tools.SETNodeGenerator -import com.hippo.ehviewer.ui.tools.SharedElementBox -import com.hippo.ehviewer.ui.tools.TransitionsVisibilityScope import com.hippo.ehviewer.ui.tools.shouldCrop -import com.hippo.ehviewer.ui.tools.thenIf @Composable @NonRestartableComposable diff --git a/app/src/main/kotlin/com/hippo/ehviewer/ui/main/FundsItem.kt b/app/src/main/kotlin/com/hippo/ehviewer/ui/main/FundsItem.kt index a077bad21..4b1a00c74 100644 --- a/app/src/main/kotlin/com/hippo/ehviewer/ui/main/FundsItem.kt +++ b/app/src/main/kotlin/com/hippo/ehviewer/ui/main/FundsItem.kt @@ -11,6 +11,7 @@ import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.text.TextStyle import androidx.compose.ui.unit.dp +import com.ehviewer.core.ui.component.RollingNumber @Composable fun FundsItem( diff --git a/app/src/main/kotlin/com/hippo/ehviewer/ui/main/GalleryDetail.kt b/app/src/main/kotlin/com/hippo/ehviewer/ui/main/GalleryDetail.kt index 20ad2ca75..d349300fb 100644 --- a/app/src/main/kotlin/com/hippo/ehviewer/ui/main/GalleryDetail.kt +++ b/app/src/main/kotlin/com/hippo/ehviewer/ui/main/GalleryDetail.kt @@ -33,13 +33,13 @@ import androidx.compose.ui.res.stringResource import androidx.compose.ui.text.style.TextOverflow import androidx.compose.ui.unit.dp import com.ehviewer.core.i18n.R +import com.ehviewer.core.ui.icons.EhIcons +import com.ehviewer.core.ui.icons.big.SadAndroid +import com.ehviewer.core.ui.util.TransitionsVisibilityScope +import com.ehviewer.core.ui.util.detailThumbGenerator import com.hippo.ehviewer.client.EhUtils import com.hippo.ehviewer.client.data.GalleryDetail import com.hippo.ehviewer.client.data.GalleryInfo -import com.hippo.ehviewer.icons.EhIcons -import com.hippo.ehviewer.icons.big.SadAndroid -import com.hippo.ehviewer.ui.tools.TransitionsVisibilityScope -import com.hippo.ehviewer.ui.tools.detailThumbGenerator @Composable fun GalleryDetailHeaderInfoCard( diff --git a/app/src/main/kotlin/com/hippo/ehviewer/ui/main/GalleryInfo.kt b/app/src/main/kotlin/com/hippo/ehviewer/ui/main/GalleryInfo.kt index 9c8e951f6..ddb819de8 100644 --- a/app/src/main/kotlin/com/hippo/ehviewer/ui/main/GalleryInfo.kt +++ b/app/src/main/kotlin/com/hippo/ehviewer/ui/main/GalleryInfo.kt @@ -38,17 +38,17 @@ import androidx.compose.ui.text.font.FontStyle import androidx.compose.ui.text.style.TextOverflow import androidx.compose.ui.unit.dp import coil3.compose.AsyncImage +import com.ehviewer.core.ui.component.CrystalCard +import com.ehviewer.core.ui.component.ElevatedCard +import com.ehviewer.core.ui.util.SharedElementBox +import com.ehviewer.core.ui.util.TransitionsVisibilityScope +import com.ehviewer.core.ui.util.listThumbGenerator import com.hippo.ehviewer.Settings 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 import com.hippo.ehviewer.ui.tools.GalleryListCardRating -import com.hippo.ehviewer.ui.tools.SharedElementBox -import com.hippo.ehviewer.ui.tools.TransitionsVisibilityScope -import com.hippo.ehviewer.ui.tools.listThumbGenerator import com.hippo.ehviewer.util.FavouriteStatusRouter @Composable 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 5518992a1..b3f140c76 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 @@ -52,22 +52,22 @@ import androidx.paging.compose.LazyPagingItems import androidx.paging.compose.itemContentType import androidx.paging.compose.itemKey import com.ehviewer.core.i18n.R +import com.ehviewer.core.ui.component.FastScrollLazyVerticalGrid +import com.ehviewer.core.ui.component.FastScrollLazyVerticalStaggeredGrid +import com.ehviewer.core.ui.icons.EhIcons +import com.ehviewer.core.ui.icons.big.SadAndroid +import com.ehviewer.core.util.launch import com.hippo.ehviewer.Settings import com.hippo.ehviewer.client.data.BaseGalleryInfo import com.hippo.ehviewer.client.exception.NoHitsFoundException import com.hippo.ehviewer.coil.PrefetchAround import com.hippo.ehviewer.collectAsState -import com.hippo.ehviewer.icons.EhIcons -import com.hippo.ehviewer.icons.big.SadAndroid import com.hippo.ehviewer.ktbuilder.imageRequest 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.util.displayString import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.flow.drop import kotlinx.coroutines.flow.first -import moe.tarsin.launch @Stable operator fun PaddingValues.plus(r: PaddingValues) = object : PaddingValues { diff --git a/app/src/main/kotlin/com/hippo/ehviewer/ui/main/GalleryPreview.kt b/app/src/main/kotlin/com/hippo/ehviewer/ui/main/GalleryPreview.kt index de57b2124..1c24a50ae 100644 --- a/app/src/main/kotlin/com/hippo/ehviewer/ui/main/GalleryPreview.kt +++ b/app/src/main/kotlin/com/hippo/ehviewer/ui/main/GalleryPreview.kt @@ -23,10 +23,10 @@ import androidx.compose.ui.unit.IntSize import coil3.BitmapImage import coil3.compose.AsyncImagePainter.State import coil3.compose.rememberAsyncImagePainter +import com.ehviewer.core.ui.component.CrystalCard import com.hippo.ehviewer.client.data.GalleryPreview import com.hippo.ehviewer.client.data.V2GalleryPreview import com.hippo.ehviewer.ktbuilder.imageRequest -import com.hippo.ehviewer.ui.tools.CrystalCard import com.hippo.ehviewer.ui.tools.shouldCrop @Composable diff --git a/app/src/main/kotlin/com/hippo/ehviewer/ui/main/SearchFilter.kt b/app/src/main/kotlin/com/hippo/ehviewer/ui/main/SearchFilter.kt index 35cdc0cf3..b2a9492cf 100644 --- a/app/src/main/kotlin/com/hippo/ehviewer/ui/main/SearchFilter.kt +++ b/app/src/main/kotlin/com/hippo/ehviewer/ui/main/SearchFilter.kt @@ -34,18 +34,18 @@ import androidx.compose.ui.text.input.KeyboardType import androidx.compose.ui.unit.dp import arrow.core.raise.ensure import com.ehviewer.core.i18n.R +import com.ehviewer.core.ui.component.DropdownFilterChip +import com.ehviewer.core.ui.util.thenIf +import com.ehviewer.core.util.launch import com.hippo.ehviewer.Settings import com.hippo.ehviewer.client.EhTagDatabase import com.hippo.ehviewer.client.EhUtils import com.hippo.ehviewer.client.data.GalleryInfo.Companion.S_LANG_TAGS import com.hippo.ehviewer.collectAsState import com.hippo.ehviewer.ui.tools.DialogState -import com.hippo.ehviewer.ui.tools.DropdownFilterChip import com.hippo.ehviewer.ui.tools.awaitResult -import com.hippo.ehviewer.ui.tools.thenIf import com.hippo.ehviewer.util.toIntOrDefault import kotlinx.coroutines.CoroutineScope -import moe.tarsin.launch private val categoryTable = arrayOf( EhUtils.DOUJINSHI to R.string.doujinshi, diff --git a/app/src/main/kotlin/com/hippo/ehviewer/ui/reader/ColorFilterSetting.kt b/app/src/main/kotlin/com/hippo/ehviewer/ui/reader/ColorFilterSetting.kt index 7e5f02cde..e4e4725ba 100644 --- a/app/src/main/kotlin/com/hippo/ehviewer/ui/reader/ColorFilterSetting.kt +++ b/app/src/main/kotlin/com/hippo/ehviewer/ui/reader/ColorFilterSetting.kt @@ -22,9 +22,9 @@ import androidx.core.graphics.blue import androidx.core.graphics.green import androidx.core.graphics.red import com.ehviewer.core.i18n.R +import com.ehviewer.core.ui.component.RollingNumber import com.hippo.ehviewer.Settings import com.hippo.ehviewer.asMutableState -import com.hippo.ehviewer.ui.main.RollingNumber @Composable fun ColorFilterSetting() = Column(modifier = Modifier.verticalScroll(rememberScrollState()).navigationBarsPadding()) { diff --git a/app/src/main/kotlin/com/hippo/ehviewer/ui/reader/PagerItem.kt b/app/src/main/kotlin/com/hippo/ehviewer/ui/reader/PagerItem.kt index 51ef02974..9c3f86f66 100644 --- a/app/src/main/kotlin/com/hippo/ehviewer/ui/reader/PagerItem.kt +++ b/app/src/main/kotlin/com/hippo/ehviewer/ui/reader/PagerItem.kt @@ -38,6 +38,7 @@ import coil3.compose.AsyncImagePainter import coil3.compose.SubcomposeAsyncImage import coil3.compose.SubcomposeAsyncImageContent import com.ehviewer.core.i18n.R +import com.ehviewer.core.ui.util.thenIf import com.google.accompanist.drawablepainter.DrawablePainter import com.hippo.ehviewer.Settings import com.hippo.ehviewer.collectAsState @@ -47,7 +48,6 @@ import com.hippo.ehviewer.gallery.PageStatus import com.hippo.ehviewer.gallery.progressObserved import com.hippo.ehviewer.gallery.statusObserved import com.hippo.ehviewer.image.Image -import com.hippo.ehviewer.ui.tools.thenIf import com.hippo.ehviewer.util.AdsPlaceholderFile import eu.kanade.tachiyomi.ui.reader.viewer.CombinedCircularProgressIndicator import kotlinx.coroutines.awaitCancellation diff --git a/app/src/main/kotlin/com/hippo/ehviewer/ui/reader/ReaderScreen.kt b/app/src/main/kotlin/com/hippo/ehviewer/ui/reader/ReaderScreen.kt index 4d990c6ba..a613774e0 100644 --- a/app/src/main/kotlin/com/hippo/ehviewer/ui/reader/ReaderScreen.kt +++ b/app/src/main/kotlin/com/hippo/ehviewer/ui/reader/ReaderScreen.kt @@ -60,6 +60,11 @@ import arrow.core.Either.Companion.catch import arrow.core.raise.ensure import arrow.core.right import com.ehviewer.core.i18n.R +import com.ehviewer.core.ui.util.Await +import com.ehviewer.core.ui.util.asyncInVM +import com.ehviewer.core.ui.util.thenIf +import com.ehviewer.core.util.launch +import com.ehviewer.core.util.launchIO import com.google.accompanist.systemuicontroller.rememberSystemUiController import com.hippo.ehviewer.EhDB import com.hippo.ehviewer.Settings @@ -78,12 +83,9 @@ import com.hippo.ehviewer.ui.MainActivity import com.hippo.ehviewer.ui.Screen import com.hippo.ehviewer.ui.theme.EhTheme import com.hippo.ehviewer.ui.theme.scrim -import com.hippo.ehviewer.ui.tools.Await import com.hippo.ehviewer.ui.tools.DialogState -import com.hippo.ehviewer.ui.tools.asyncInVM import com.hippo.ehviewer.ui.tools.awaitInputText import com.hippo.ehviewer.ui.tools.dialog -import com.hippo.ehviewer.ui.tools.thenIf import com.hippo.ehviewer.util.displayString import com.hippo.ehviewer.util.hasAds import com.ramcosta.composedestinations.annotation.Destination @@ -94,7 +96,6 @@ import eu.kanade.tachiyomi.ui.reader.ReaderAppBars import eu.kanade.tachiyomi.ui.reader.ReaderContentOverlay import eu.kanade.tachiyomi.ui.reader.ReaderPageSheetMeta import eu.kanade.tachiyomi.ui.reader.setting.ReadingModeType -import eu.kanade.tachiyomi.util.lang.launchIO import kotlin.coroutines.resume import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.awaitCancellation @@ -104,7 +105,6 @@ import kotlinx.coroutines.flow.sample import kotlinx.coroutines.suspendCancellableCoroutine import kotlinx.serialization.Serializable import moe.tarsin.kt.unreachable -import moe.tarsin.launch import moe.tarsin.string import okio.Path.Companion.toPath diff --git a/app/src/main/kotlin/com/hippo/ehviewer/ui/reader/Widget.kt b/app/src/main/kotlin/com/hippo/ehviewer/ui/reader/Widget.kt index 02a2256ac..70cf1ffd8 100644 --- a/app/src/main/kotlin/com/hippo/ehviewer/ui/reader/Widget.kt +++ b/app/src/main/kotlin/com/hippo/ehviewer/ui/reader/Widget.kt @@ -25,7 +25,7 @@ import androidx.compose.runtime.setValue import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.unit.dp -import com.hippo.ehviewer.ui.tools.Slider +import com.ehviewer.core.ui.component.Slider @Composable fun SpinnerChoice(title: String, entries: Array, values: Array, field: MutableState) { diff --git a/app/src/main/kotlin/com/hippo/ehviewer/ui/screen/DownloadsScreen.kt b/app/src/main/kotlin/com/hippo/ehviewer/ui/screen/DownloadsScreen.kt index 119717741..b49200e53 100644 --- a/app/src/main/kotlin/com/hippo/ehviewer/ui/screen/DownloadsScreen.kt +++ b/app/src/main/kotlin/com/hippo/ehviewer/ui/screen/DownloadsScreen.kt @@ -81,6 +81,23 @@ import androidx.compose.ui.res.stringResource import androidx.compose.ui.unit.dp import arrow.core.partially1 import com.ehviewer.core.i18n.R +import com.ehviewer.core.ui.component.FAB_ANIMATE_TIME +import com.ehviewer.core.ui.component.FabLayout +import com.ehviewer.core.ui.component.FastScrollLazyColumn +import com.ehviewer.core.ui.component.FastScrollLazyVerticalStaggeredGrid +import com.ehviewer.core.ui.component.LocalSideSheetState +import com.ehviewer.core.ui.component.ProvideSideSheetContent +import com.ehviewer.core.ui.icons.EhIcons +import com.ehviewer.core.ui.icons.big.Download +import com.ehviewer.core.ui.util.Await +import com.ehviewer.core.ui.util.asyncState +import com.ehviewer.core.ui.util.rememberInVM +import com.ehviewer.core.ui.util.thenIf +import com.ehviewer.core.util.launch +import com.ehviewer.core.util.launchIO +import com.ehviewer.core.util.onEachLatest +import com.ehviewer.core.util.withNonCancellableContext +import com.ehviewer.core.util.withUIContext import com.hippo.ehviewer.EhDB import com.hippo.ehviewer.Settings import com.hippo.ehviewer.asMutableState @@ -93,47 +110,30 @@ import com.hippo.ehviewer.download.DownloadManager.downloadInfoList import com.hippo.ehviewer.download.DownloadService import com.hippo.ehviewer.download.DownloadsFilterMode import com.hippo.ehviewer.download.SortMode -import com.hippo.ehviewer.icons.EhIcons -import com.hippo.ehviewer.icons.big.Download import com.hippo.ehviewer.ui.DrawerHandle -import com.hippo.ehviewer.ui.LocalSideSheetState -import com.hippo.ehviewer.ui.ProvideSideSheetContent import com.hippo.ehviewer.ui.Screen import com.hippo.ehviewer.ui.confirmRemoveDownloadRange import com.hippo.ehviewer.ui.main.DownloadCard -import com.hippo.ehviewer.ui.main.FAB_ANIMATE_TIME -import com.hippo.ehviewer.ui.main.FabLayout import com.hippo.ehviewer.ui.main.GalleryInfoGridItem import com.hippo.ehviewer.ui.main.plus import com.hippo.ehviewer.ui.navToReader import com.hippo.ehviewer.ui.showMoveDownloadLabelList -import com.hippo.ehviewer.ui.tools.Await import com.hippo.ehviewer.ui.tools.DialogState -import com.hippo.ehviewer.ui.tools.FastScrollLazyColumn -import com.hippo.ehviewer.ui.tools.FastScrollLazyVerticalStaggeredGrid import com.hippo.ehviewer.ui.tools.HapticFeedbackType -import com.hippo.ehviewer.ui.tools.asyncState import com.hippo.ehviewer.ui.tools.awaitConfirmationOrCancel import com.hippo.ehviewer.ui.tools.awaitInputText import com.hippo.ehviewer.ui.tools.awaitSelectAction import com.hippo.ehviewer.ui.tools.awaitSelectItemWithCheckBox import com.hippo.ehviewer.ui.tools.awaitSingleChoice import com.hippo.ehviewer.ui.tools.rememberHapticFeedback -import com.hippo.ehviewer.ui.tools.rememberInVM -import com.hippo.ehviewer.ui.tools.thenIf import com.hippo.ehviewer.util.mapToLongArray import com.hippo.ehviewer.util.takeAndClear import com.jamal.composeprefs3.ui.ifTrueThen import com.ramcosta.composedestinations.annotation.Destination import com.ramcosta.composedestinations.annotation.RootGraph import com.ramcosta.composedestinations.navigation.DestinationsNavigator -import eu.kanade.tachiyomi.util.lang.withNonCancellableContext -import eu.kanade.tachiyomi.util.lang.withUIContext import kotlin.math.roundToInt import kotlinx.coroutines.delay -import moe.tarsin.coroutines.onEachLatest -import moe.tarsin.launch -import moe.tarsin.launchIO import moe.tarsin.navigate import sh.calvin.reorderable.ReorderableItem import sh.calvin.reorderable.rememberReorderableLazyListState diff --git a/app/src/main/kotlin/com/hippo/ehviewer/ui/screen/FavoritesScreen.kt b/app/src/main/kotlin/com/hippo/ehviewer/ui/screen/FavoritesScreen.kt index 0f6173c01..47eff419e 100644 --- a/app/src/main/kotlin/com/hippo/ehviewer/ui/screen/FavoritesScreen.kt +++ b/app/src/main/kotlin/com/hippo/ehviewer/ui/screen/FavoritesScreen.kt @@ -54,41 +54,41 @@ import androidx.compose.ui.unit.dp import androidx.lifecycle.viewmodel.compose.viewModel import androidx.paging.compose.collectAsLazyPagingItems import com.ehviewer.core.i18n.R +import com.ehviewer.core.ui.component.FAB_ANIMATE_TIME +import com.ehviewer.core.ui.component.FabLayout +import com.ehviewer.core.ui.component.LocalSideSheetState +import com.ehviewer.core.ui.component.ProvideSideSheetContent +import com.ehviewer.core.ui.icons.EhIcons +import com.ehviewer.core.ui.icons.filled.GoTo +import com.ehviewer.core.ui.util.asyncState +import com.ehviewer.core.ui.util.thenIf +import com.ehviewer.core.util.launch +import com.ehviewer.core.util.onEachLatest +import com.ehviewer.core.util.withUIContext import com.hippo.ehviewer.EhDB import com.hippo.ehviewer.Settings import com.hippo.ehviewer.client.EhEngine import com.hippo.ehviewer.client.data.BaseGalleryInfo import com.hippo.ehviewer.client.data.FavListUrlBuilder import com.hippo.ehviewer.collectAsState -import com.hippo.ehviewer.icons.EhIcons -import com.hippo.ehviewer.icons.filled.GoTo import com.hippo.ehviewer.ui.DrawerHandle -import com.hippo.ehviewer.ui.LocalSideSheetState -import com.hippo.ehviewer.ui.ProvideSideSheetContent import com.hippo.ehviewer.ui.Screen import com.hippo.ehviewer.ui.awaitSelectDate import com.hippo.ehviewer.ui.main.AvatarIcon -import com.hippo.ehviewer.ui.main.FAB_ANIMATE_TIME -import com.hippo.ehviewer.ui.main.FabLayout import com.hippo.ehviewer.ui.main.GalleryInfoGridItem import com.hippo.ehviewer.ui.main.GalleryInfoListItem import com.hippo.ehviewer.ui.main.GalleryList import com.hippo.ehviewer.ui.startDownload -import com.hippo.ehviewer.ui.tools.asyncState import com.hippo.ehviewer.ui.tools.awaitConfirmationOrCancel import com.hippo.ehviewer.ui.tools.awaitSelectItem -import com.hippo.ehviewer.ui.tools.thenIf import com.hippo.ehviewer.util.mapToLongArray import com.hippo.ehviewer.util.takeAndClear import com.ramcosta.composedestinations.annotation.Destination import com.ramcosta.composedestinations.annotation.RootGraph import com.ramcosta.composedestinations.navigation.DestinationsNavigator -import eu.kanade.tachiyomi.util.lang.withUIContext import kotlin.math.roundToInt import kotlinx.coroutines.delay -import moe.tarsin.coroutines.onEachLatest import moe.tarsin.coroutines.runSwallowingWithUI -import moe.tarsin.launch import moe.tarsin.navigate @Destination diff --git a/app/src/main/kotlin/com/hippo/ehviewer/ui/screen/FavoritesViewModel.kt b/app/src/main/kotlin/com/hippo/ehviewer/ui/screen/FavoritesViewModel.kt index ee7545699..16246a113 100644 --- a/app/src/main/kotlin/com/hippo/ehviewer/ui/screen/FavoritesViewModel.kt +++ b/app/src/main/kotlin/com/hippo/ehviewer/ui/screen/FavoritesViewModel.kt @@ -14,13 +14,13 @@ import androidx.paging.PagingState import androidx.paging.cachedIn import androidx.paging.filter import androidx.savedstate.compose.serialization.serializers.MutableStateSerializer +import com.ehviewer.core.util.withIOContext import com.hippo.ehviewer.EhDB import com.hippo.ehviewer.Settings import com.hippo.ehviewer.client.EhEngine import com.hippo.ehviewer.client.data.BaseGalleryInfo import com.hippo.ehviewer.client.data.FavListUrlBuilder import com.hippo.ehviewer.ui.tools.foldToLoadResult -import eu.kanade.tachiyomi.util.lang.withIOContext import kotlinx.coroutines.flow.flatMapLatest import kotlinx.coroutines.flow.map import moe.tarsin.coroutines.runSuspendCatching diff --git a/app/src/main/kotlin/com/hippo/ehviewer/ui/screen/GalleryCommentsScreen.kt b/app/src/main/kotlin/com/hippo/ehviewer/ui/screen/GalleryCommentsScreen.kt index 160327cb3..5f1080a6b 100644 --- a/app/src/main/kotlin/com/hippo/ehviewer/ui/screen/GalleryCommentsScreen.kt +++ b/app/src/main/kotlin/com/hippo/ehviewer/ui/screen/GalleryCommentsScreen.kt @@ -85,6 +85,12 @@ import androidx.core.text.getSpans import androidx.core.text.inSpans import androidx.core.text.parseAsHtml import com.ehviewer.core.i18n.R +import com.ehviewer.core.ui.util.animateFloatMergePredictiveBackAsState +import com.ehviewer.core.ui.util.snackBarPadding +import com.ehviewer.core.ui.util.thenIf +import com.ehviewer.core.util.launch +import com.ehviewer.core.util.launchIO +import com.ehviewer.core.util.withUIContext import com.hippo.ehviewer.Settings import com.hippo.ehviewer.client.EhEngine import com.hippo.ehviewer.client.EhFilter.remember @@ -99,14 +105,11 @@ import com.hippo.ehviewer.ui.jumpToReaderByPage import com.hippo.ehviewer.ui.main.GalleryCommentCard import com.hippo.ehviewer.ui.main.NavigationIcon import com.hippo.ehviewer.ui.openBrowser -import com.hippo.ehviewer.ui.tools.animateFloatMergePredictiveBackAsState import com.hippo.ehviewer.ui.tools.awaitConfirmationOrCancel import com.hippo.ehviewer.ui.tools.awaitSelectAction import com.hippo.ehviewer.ui.tools.normalizeSpan import com.hippo.ehviewer.ui.tools.rememberBBCodeTextToolbar import com.hippo.ehviewer.ui.tools.showNoButton -import com.hippo.ehviewer.ui.tools.snackBarPadding -import com.hippo.ehviewer.ui.tools.thenIf import com.hippo.ehviewer.ui.tools.toBBCode import com.hippo.ehviewer.ui.tools.updateSpan import com.hippo.ehviewer.util.ReadableTime @@ -115,13 +118,10 @@ import com.hippo.ehviewer.util.displayString import com.ramcosta.composedestinations.annotation.Destination import com.ramcosta.composedestinations.annotation.RootGraph import com.ramcosta.composedestinations.navigation.DestinationsNavigator -import eu.kanade.tachiyomi.util.lang.withUIContext import eu.kanade.tachiyomi.util.system.logcat import kotlin.collections.forEach import kotlin.math.roundToInt import moe.tarsin.coroutines.runSuspendCatching -import moe.tarsin.launch -import moe.tarsin.launchIO import moe.tarsin.navigate import moe.tarsin.snackbar diff --git a/app/src/main/kotlin/com/hippo/ehviewer/ui/screen/GalleryDetailContent.kt b/app/src/main/kotlin/com/hippo/ehviewer/ui/screen/GalleryDetailContent.kt index 55700b843..1c9f1b017 100644 --- a/app/src/main/kotlin/com/hippo/ehviewer/ui/screen/GalleryDetailContent.kt +++ b/app/src/main/kotlin/com/hippo/ehviewer/ui/screen/GalleryDetailContent.kt @@ -69,6 +69,22 @@ import arrow.core.partially1 import arrow.fx.coroutines.parMap import arrow.fx.coroutines.parZip import com.ehviewer.core.i18n.R +import com.ehviewer.core.ui.component.CrystalCard +import com.ehviewer.core.ui.component.FastScrollLazyVerticalGrid +import com.ehviewer.core.ui.component.FilledTertiaryIconButton +import com.ehviewer.core.ui.component.FilledTertiaryIconToggleButton +import com.ehviewer.core.ui.icons.EhIcons +import com.ehviewer.core.ui.icons.filled.Magnet +import com.ehviewer.core.ui.util.LocalWindowSizeClass +import com.ehviewer.core.ui.util.TransitionsVisibilityScope +import com.ehviewer.core.ui.util.isExpanded +import com.ehviewer.core.ui.util.rememberInVM +import com.ehviewer.core.util.async +import com.ehviewer.core.util.launch +import com.ehviewer.core.util.launchIO +import com.ehviewer.core.util.launchUI +import com.ehviewer.core.util.withIOContext +import com.ehviewer.core.util.withUIContext import com.hippo.ehviewer.EhDB import com.hippo.ehviewer.Settings import com.hippo.ehviewer.client.EhEngine @@ -96,8 +112,6 @@ import com.hippo.ehviewer.dao.DownloadInfo import com.hippo.ehviewer.dao.Filter import com.hippo.ehviewer.dao.FilterMode import com.hippo.ehviewer.download.DownloadManager -import com.hippo.ehviewer.icons.EhIcons -import com.hippo.ehviewer.icons.filled.Magnet import com.hippo.ehviewer.ktbuilder.executeIn import com.hippo.ehviewer.ktbuilder.imageRequest import com.hippo.ehviewer.ui.GalleryInfoBottomSheet @@ -117,15 +131,9 @@ import com.hippo.ehviewer.ui.modifyFavorites import com.hippo.ehviewer.ui.navToReader import com.hippo.ehviewer.ui.openBrowser import com.hippo.ehviewer.ui.startDownload -import com.hippo.ehviewer.ui.tools.CrystalCard import com.hippo.ehviewer.ui.tools.DialogState -import com.hippo.ehviewer.ui.tools.FastScrollLazyVerticalGrid -import com.hippo.ehviewer.ui.tools.FilledTertiaryIconButton -import com.hippo.ehviewer.ui.tools.FilledTertiaryIconToggleButton import com.hippo.ehviewer.ui.tools.GalleryDetailRating import com.hippo.ehviewer.ui.tools.GalleryRatingBar -import com.hippo.ehviewer.ui.tools.LocalWindowSizeClass -import com.hippo.ehviewer.ui.tools.TransitionsVisibilityScope import com.hippo.ehviewer.ui.tools.awaitConfirmationOrCancel import com.hippo.ehviewer.ui.tools.awaitResult import com.hippo.ehviewer.ui.tools.awaitSelectAction @@ -135,8 +143,6 @@ import com.hippo.ehviewer.ui.tools.foldToLoadResult import com.hippo.ehviewer.ui.tools.getClippedRefreshKey import com.hippo.ehviewer.ui.tools.getLimit import com.hippo.ehviewer.ui.tools.getOffset -import com.hippo.ehviewer.ui.tools.isExpanded -import com.hippo.ehviewer.ui.tools.rememberInVM import com.hippo.ehviewer.ui.tools.showNoButton import com.hippo.ehviewer.util.FavouriteStatusRouter import com.hippo.ehviewer.util.addTextToClipboard @@ -144,8 +150,6 @@ import com.hippo.ehviewer.util.bgWork import com.hippo.ehviewer.util.displayString import com.hippo.ehviewer.util.flattenForEach import com.ramcosta.composedestinations.navigation.DestinationsNavigator -import eu.kanade.tachiyomi.util.lang.withIOContext -import eu.kanade.tachiyomi.util.lang.withUIContext import eu.kanade.tachiyomi.util.system.logcat import io.ktor.http.encodeURLParameter import kotlin.coroutines.resume @@ -154,12 +158,8 @@ import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.CoroutineStart import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.Job -import moe.tarsin.async import moe.tarsin.coroutines.runSuspendCatching import moe.tarsin.coroutines.runSwallowingWithUI -import moe.tarsin.launch -import moe.tarsin.launchIO -import moe.tarsin.launchUI import moe.tarsin.navigate import moe.tarsin.snackbar import moe.tarsin.string diff --git a/app/src/main/kotlin/com/hippo/ehviewer/ui/screen/GalleryDetailScreen.kt b/app/src/main/kotlin/com/hippo/ehviewer/ui/screen/GalleryDetailScreen.kt index d3c848f14..2758d7131 100644 --- a/app/src/main/kotlin/com/hippo/ehviewer/ui/screen/GalleryDetailScreen.kt +++ b/app/src/main/kotlin/com/hippo/ehviewer/ui/screen/GalleryDetailScreen.kt @@ -35,6 +35,12 @@ import androidx.compose.ui.text.style.TextOverflow import androidx.compose.ui.util.fastJoinToString import androidx.lifecycle.viewModelScope import com.ehviewer.core.i18n.R +import com.ehviewer.core.ui.util.LocalWindowSizeClass +import com.ehviewer.core.ui.util.isExpanded +import com.ehviewer.core.ui.util.launchInVM +import com.ehviewer.core.ui.util.rememberInVM +import com.ehviewer.core.util.launchIO +import com.ehviewer.core.util.withIOContext import com.hippo.ehviewer.EhApplication.Companion.imageCache import com.hippo.ehviewer.EhDB import com.hippo.ehviewer.Settings @@ -58,12 +64,8 @@ import com.hippo.ehviewer.ui.main.GalleryDetailErrorTip import com.hippo.ehviewer.ui.main.NavigationIcon import com.hippo.ehviewer.ui.navToReader import com.hippo.ehviewer.ui.openBrowser -import com.hippo.ehviewer.ui.tools.LocalWindowSizeClass import com.hippo.ehviewer.ui.tools.awaitConfirmationOrCancel import com.hippo.ehviewer.ui.tools.awaitSelectTags -import com.hippo.ehviewer.ui.tools.isExpanded -import com.hippo.ehviewer.ui.tools.launchInVM -import com.hippo.ehviewer.ui.tools.rememberInVM import com.hippo.ehviewer.util.AppHelper import com.hippo.ehviewer.util.awaitActivityResult import com.hippo.ehviewer.util.bgWork @@ -73,11 +75,9 @@ import com.hippo.files.toOkioPath import com.ramcosta.composedestinations.annotation.Destination import com.ramcosta.composedestinations.annotation.RootGraph import com.ramcosta.composedestinations.navigation.DestinationsNavigator -import eu.kanade.tachiyomi.util.lang.withIOContext import eu.kanade.tachiyomi.util.system.logcat import kotlinx.serialization.Serializable import moe.tarsin.coroutines.runSuspendCatching -import moe.tarsin.launchIO import moe.tarsin.snackbar import moe.tarsin.tip diff --git a/app/src/main/kotlin/com/hippo/ehviewer/ui/screen/GalleryListScreen.kt b/app/src/main/kotlin/com/hippo/ehviewer/ui/screen/GalleryListScreen.kt index e36848f0b..e58e19e54 100644 --- a/app/src/main/kotlin/com/hippo/ehviewer/ui/screen/GalleryListScreen.kt +++ b/app/src/main/kotlin/com/hippo/ehviewer/ui/screen/GalleryListScreen.kt @@ -70,6 +70,20 @@ import androidx.paging.compose.collectAsLazyPagingItems import arrow.core.raise.ensure import arrow.core.raise.ensureNotNull import com.ehviewer.core.i18n.R +import com.ehviewer.core.ui.component.FAB_ANIMATE_TIME +import com.ehviewer.core.ui.component.FabLayout +import com.ehviewer.core.ui.component.FastScrollLazyColumn +import com.ehviewer.core.ui.component.LocalSideSheetState +import com.ehviewer.core.ui.component.ProvideSideSheetContent +import com.ehviewer.core.ui.icons.EhIcons +import com.ehviewer.core.ui.icons.filled.GoTo +import com.ehviewer.core.ui.util.Await +import com.ehviewer.core.ui.util.asyncState +import com.ehviewer.core.ui.util.thenIf +import com.ehviewer.core.util.launch +import com.ehviewer.core.util.launchIO +import com.ehviewer.core.util.onEachLatest +import com.ehviewer.core.util.withUIContext import com.hippo.ehviewer.EhDB import com.hippo.ehviewer.Settings import com.hippo.ehviewer.asMutableState @@ -87,46 +101,32 @@ import com.hippo.ehviewer.client.parser.GalleryDetailUrlParser import com.hippo.ehviewer.client.parser.GalleryPageUrlParser import com.hippo.ehviewer.collectAsState import com.hippo.ehviewer.dao.QuickSearch -import com.hippo.ehviewer.icons.EhIcons -import com.hippo.ehviewer.icons.filled.GoTo import com.hippo.ehviewer.ui.DrawerHandle -import com.hippo.ehviewer.ui.LocalSideSheetState -import com.hippo.ehviewer.ui.ProvideSideSheetContent import com.hippo.ehviewer.ui.Screen import com.hippo.ehviewer.ui.awaitSelectDate import com.hippo.ehviewer.ui.destinations.ProgressScreenDestination import com.hippo.ehviewer.ui.doGalleryInfoAction import com.hippo.ehviewer.ui.main.AdvancedSearchOption import com.hippo.ehviewer.ui.main.AvatarIcon -import com.hippo.ehviewer.ui.main.FAB_ANIMATE_TIME -import com.hippo.ehviewer.ui.main.FabLayout import com.hippo.ehviewer.ui.main.GalleryInfoGridItem import com.hippo.ehviewer.ui.main.GalleryInfoListItem import com.hippo.ehviewer.ui.main.GalleryList import com.hippo.ehviewer.ui.main.SearchFilter -import com.hippo.ehviewer.ui.tools.Await import com.hippo.ehviewer.ui.tools.DialogState -import com.hippo.ehviewer.ui.tools.FastScrollLazyColumn import com.hippo.ehviewer.ui.tools.HapticFeedbackType -import com.hippo.ehviewer.ui.tools.asyncState import com.hippo.ehviewer.ui.tools.awaitConfirmationOrCancel import com.hippo.ehviewer.ui.tools.awaitInputText import com.hippo.ehviewer.ui.tools.awaitInputTextWithCheckBox import com.hippo.ehviewer.ui.tools.rememberHapticFeedback import com.hippo.ehviewer.ui.tools.rememberMutableStateInDataStore -import com.hippo.ehviewer.ui.tools.thenIf import com.hippo.ehviewer.util.FavouriteStatusRouter import com.ramcosta.composedestinations.annotation.Destination import com.ramcosta.composedestinations.annotation.RootGraph import com.ramcosta.composedestinations.navigation.DestinationsNavigator import com.ramcosta.composedestinations.spec.Direction -import eu.kanade.tachiyomi.util.lang.withUIContext import kotlin.math.roundToInt import kotlin.random.Random import kotlinx.coroutines.delay -import moe.tarsin.coroutines.onEachLatest -import moe.tarsin.launch -import moe.tarsin.launchIO import moe.tarsin.navigate import moe.tarsin.snackbar import moe.tarsin.string diff --git a/app/src/main/kotlin/com/hippo/ehviewer/ui/screen/GalleryListViewModel.kt b/app/src/main/kotlin/com/hippo/ehviewer/ui/screen/GalleryListViewModel.kt index 66a14feb0..a6a1a99fe 100644 --- a/app/src/main/kotlin/com/hippo/ehviewer/ui/screen/GalleryListViewModel.kt +++ b/app/src/main/kotlin/com/hippo/ehviewer/ui/screen/GalleryListViewModel.kt @@ -11,12 +11,12 @@ import androidx.paging.PagingSource import androidx.paging.PagingState import androidx.paging.cachedIn import androidx.savedstate.compose.serialization.serializers.MutableStateSerializer +import com.ehviewer.core.util.withIOContext import com.hippo.ehviewer.client.EhEngine import com.hippo.ehviewer.client.data.BaseGalleryInfo import com.hippo.ehviewer.client.data.ListUrlBuilder import com.hippo.ehviewer.client.data.ListUrlBuilder.Companion.MODE_TOPLIST import com.hippo.ehviewer.ui.tools.foldToLoadResult -import eu.kanade.tachiyomi.util.lang.withIOContext import moe.tarsin.coroutines.runSuspendCatching class GalleryListViewModel(lub: ListUrlBuilder, savedStateHandle: SavedStateHandle) : ViewModel() { diff --git a/app/src/main/kotlin/com/hippo/ehviewer/ui/screen/HistoryScreen.kt b/app/src/main/kotlin/com/hippo/ehviewer/ui/screen/HistoryScreen.kt index 048926160..478b8f706 100644 --- a/app/src/main/kotlin/com/hippo/ehviewer/ui/screen/HistoryScreen.kt +++ b/app/src/main/kotlin/com/hippo/ehviewer/ui/screen/HistoryScreen.kt @@ -43,20 +43,21 @@ import androidx.paging.compose.itemContentType import androidx.paging.compose.itemKey import androidx.paging.map import com.ehviewer.core.i18n.R +import com.ehviewer.core.ui.component.FastScrollLazyColumn +import com.ehviewer.core.ui.icons.EhIcons +import com.ehviewer.core.ui.icons.big.History +import com.ehviewer.core.ui.util.Await +import com.ehviewer.core.ui.util.rememberInVM +import com.ehviewer.core.ui.util.thenIf +import com.ehviewer.core.util.launch import com.hippo.ehviewer.EhDB import com.hippo.ehviewer.Settings import com.hippo.ehviewer.collectAsState -import com.hippo.ehviewer.icons.EhIcons -import com.hippo.ehviewer.icons.big.History import com.hippo.ehviewer.ui.DrawerHandle import com.hippo.ehviewer.ui.Screen import com.hippo.ehviewer.ui.doGalleryInfoAction import com.hippo.ehviewer.ui.main.GalleryInfoListItem -import com.hippo.ehviewer.ui.tools.Await -import com.hippo.ehviewer.ui.tools.FastScrollLazyColumn import com.hippo.ehviewer.ui.tools.awaitConfirmationOrCancel -import com.hippo.ehviewer.ui.tools.rememberInVM -import com.hippo.ehviewer.ui.tools.thenIf import com.hippo.ehviewer.util.FavouriteStatusRouter import com.ramcosta.composedestinations.annotation.Destination import com.ramcosta.composedestinations.annotation.RootGraph @@ -64,7 +65,6 @@ import com.ramcosta.composedestinations.navigation.DestinationsNavigator import kotlin.math.roundToInt import kotlinx.coroutines.delay import kotlinx.coroutines.flow.map -import moe.tarsin.launch import moe.tarsin.navigate @Destination diff --git a/app/src/main/kotlin/com/hippo/ehviewer/ui/screen/ImageSearchScreen.kt b/app/src/main/kotlin/com/hippo/ehviewer/ui/screen/ImageSearchScreen.kt index 43ccbbe60..b0f05e497 100644 --- a/app/src/main/kotlin/com/hippo/ehviewer/ui/screen/ImageSearchScreen.kt +++ b/app/src/main/kotlin/com/hippo/ehviewer/ui/screen/ImageSearchScreen.kt @@ -28,21 +28,21 @@ import androidx.compose.ui.res.dimensionResource import androidx.compose.ui.res.stringResource import androidx.compose.ui.text.font.FontWeight import com.ehviewer.core.i18n.R +import com.ehviewer.core.ui.util.snackBarPadding +import com.ehviewer.core.util.launch +import com.ehviewer.core.util.launchUI +import com.ehviewer.core.util.withIOContext import com.hippo.ehviewer.client.data.ListUrlBuilder import com.hippo.ehviewer.client.data.ListUrlBuilder.Companion.MODE_IMAGE_SEARCH import com.hippo.ehviewer.ui.Screen import com.hippo.ehviewer.ui.main.ImageSearch import com.hippo.ehviewer.ui.main.plus -import com.hippo.ehviewer.ui.tools.snackBarPadding import com.hippo.ehviewer.util.pickVisualMedia import com.hippo.ehviewer.util.sha1 import com.hippo.files.toOkioPath import com.ramcosta.composedestinations.annotation.Destination import com.ramcosta.composedestinations.annotation.RootGraph import com.ramcosta.composedestinations.navigation.DestinationsNavigator -import eu.kanade.tachiyomi.util.lang.withIOContext -import moe.tarsin.launch -import moe.tarsin.launchUI import moe.tarsin.navigate import moe.tarsin.snackbar diff --git a/app/src/main/kotlin/com/hippo/ehviewer/ui/screen/ProgressScreen.kt b/app/src/main/kotlin/com/hippo/ehviewer/ui/screen/ProgressScreen.kt index d0ddadd86..7c39bc694 100644 --- a/app/src/main/kotlin/com/hippo/ehviewer/ui/screen/ProgressScreen.kt +++ b/app/src/main/kotlin/com/hippo/ehviewer/ui/screen/ProgressScreen.kt @@ -22,15 +22,15 @@ import androidx.compose.ui.Modifier import androidx.compose.ui.res.stringResource import androidx.compose.ui.unit.dp import com.ehviewer.core.i18n.R +import com.ehviewer.core.ui.icons.EhIcons +import com.ehviewer.core.ui.icons.big.SadAndroid +import com.ehviewer.core.util.withUIContext import com.hippo.ehviewer.client.EhEngine -import com.hippo.ehviewer.icons.EhIcons -import com.hippo.ehviewer.icons.big.SadAndroid import com.hippo.ehviewer.ui.Screen import com.hippo.ehviewer.util.displayString import com.ramcosta.composedestinations.annotation.Destination import com.ramcosta.composedestinations.annotation.RootGraph import com.ramcosta.composedestinations.navigation.DestinationsNavigator -import eu.kanade.tachiyomi.util.lang.withUIContext import moe.tarsin.coroutines.runSuspendCatching import moe.tarsin.navigate diff --git a/app/src/main/kotlin/com/hippo/ehviewer/ui/screen/SearchBarScreen.kt b/app/src/main/kotlin/com/hippo/ehviewer/ui/screen/SearchBarScreen.kt index 9cf31027f..a5caa5b9b 100644 --- a/app/src/main/kotlin/com/hippo/ehviewer/ui/screen/SearchBarScreen.kt +++ b/app/src/main/kotlin/com/hippo/ehviewer/ui/screen/SearchBarScreen.kt @@ -66,6 +66,9 @@ import androidx.compose.ui.unit.IntOffset import androidx.compose.ui.unit.coerceAtMost import androidx.compose.ui.unit.dp import com.ehviewer.core.i18n.R +import com.ehviewer.core.ui.util.thenIf +import com.ehviewer.core.util.launchIO +import com.ehviewer.core.util.launchUI import com.hippo.ehviewer.EhApplication.Companion.searchDatabase import com.hippo.ehviewer.Settings import com.hippo.ehviewer.client.EhTagDatabase @@ -79,12 +82,9 @@ import com.hippo.ehviewer.ui.theme.scrim import com.hippo.ehviewer.ui.tools.DialogState import com.hippo.ehviewer.ui.tools.awaitConfirmationOrCancel import com.hippo.ehviewer.ui.tools.rememberCompositionActiveState -import com.hippo.ehviewer.ui.tools.thenIf import com.jamal.composeprefs3.ui.ifNotNullThen import com.jamal.composeprefs3.ui.ifTrueThen import com.ramcosta.composedestinations.navigation.DestinationsNavigator -import eu.kanade.tachiyomi.util.lang.launchIO -import eu.kanade.tachiyomi.util.lang.launchUI import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.flow.Flow import kotlinx.coroutines.flow.collectLatest diff --git a/app/src/main/kotlin/com/hippo/ehviewer/ui/settings/AboutScreen.kt b/app/src/main/kotlin/com/hippo/ehviewer/ui/settings/AboutScreen.kt index 429b59138..5a488f9fb 100644 --- a/app/src/main/kotlin/com/hippo/ehviewer/ui/settings/AboutScreen.kt +++ b/app/src/main/kotlin/com/hippo/ehviewer/ui/settings/AboutScreen.kt @@ -22,6 +22,8 @@ import androidx.compose.ui.text.AnnotatedString import androidx.compose.ui.text.fromHtml import androidx.compose.ui.unit.dp import com.ehviewer.core.i18n.R +import com.ehviewer.core.util.launch +import com.ehviewer.core.util.withUIContext import com.hippo.ehviewer.BuildConfig import com.hippo.ehviewer.EhDB import com.hippo.ehviewer.Settings @@ -42,9 +44,7 @@ import com.hippo.files.delete import com.ramcosta.composedestinations.annotation.Destination import com.ramcosta.composedestinations.annotation.RootGraph import com.ramcosta.composedestinations.navigation.DestinationsNavigator -import eu.kanade.tachiyomi.util.lang.withUIContext import moe.tarsin.coroutines.runSuspendCatching -import moe.tarsin.launch import moe.tarsin.navigate import moe.tarsin.snackbar import moe.tarsin.string diff --git a/app/src/main/kotlin/com/hippo/ehviewer/ui/settings/AdvancedScreen.kt b/app/src/main/kotlin/com/hippo/ehviewer/ui/settings/AdvancedScreen.kt index 53560090f..ed60a45cd 100644 --- a/app/src/main/kotlin/com/hippo/ehviewer/ui/settings/AdvancedScreen.kt +++ b/app/src/main/kotlin/com/hippo/ehviewer/ui/settings/AdvancedScreen.kt @@ -31,6 +31,8 @@ import androidx.compose.ui.input.nestedscroll.nestedScroll import androidx.compose.ui.res.stringResource import androidx.core.net.toUri import com.ehviewer.core.i18n.R +import com.ehviewer.core.util.launch +import com.ehviewer.core.util.withIOContext import com.hippo.ehviewer.BuildConfig import com.hippo.ehviewer.EhDB import com.hippo.ehviewer.Settings @@ -57,7 +59,6 @@ import com.hippo.files.toOkioPath import com.ramcosta.composedestinations.annotation.Destination import com.ramcosta.composedestinations.annotation.RootGraph import com.ramcosta.composedestinations.navigation.DestinationsNavigator -import eu.kanade.tachiyomi.util.lang.withIOContext import eu.kanade.tachiyomi.util.system.logcat import java.io.File import java.util.zip.ZipEntry @@ -67,7 +68,6 @@ import kotlinx.coroutines.flow.collectLatest import kotlinx.coroutines.flow.merge import me.zhanghai.compose.preference.DropdownListPreference import moe.tarsin.coroutines.runSuspendCatching -import moe.tarsin.launch import moe.tarsin.snackbar import moe.tarsin.string diff --git a/app/src/main/kotlin/com/hippo/ehviewer/ui/settings/DownloadScreen.kt b/app/src/main/kotlin/com/hippo/ehviewer/ui/settings/DownloadScreen.kt index e1ff4ccb0..7209074cd 100644 --- a/app/src/main/kotlin/com/hippo/ehviewer/ui/settings/DownloadScreen.kt +++ b/app/src/main/kotlin/com/hippo/ehviewer/ui/settings/DownloadScreen.kt @@ -30,6 +30,8 @@ import androidx.compose.ui.unit.dp import arrow.fx.coroutines.parMap import arrow.fx.coroutines.parMapNotNull import com.ehviewer.core.i18n.R +import com.ehviewer.core.util.launch +import com.ehviewer.core.util.launchIO import com.hippo.ehviewer.EhDB import com.hippo.ehviewer.Settings import com.hippo.ehviewer.asMutableState @@ -73,8 +75,6 @@ import com.ramcosta.composedestinations.annotation.RootGraph import com.ramcosta.composedestinations.navigation.DestinationsNavigator import eu.kanade.tachiyomi.util.system.logcat import moe.tarsin.coroutines.runSuspendCatching -import moe.tarsin.launch -import moe.tarsin.launchIO import moe.tarsin.snackbar import moe.tarsin.string import okio.Path diff --git a/app/src/main/kotlin/com/hippo/ehviewer/ui/settings/EhScreen.kt b/app/src/main/kotlin/com/hippo/ehviewer/ui/settings/EhScreen.kt index c7323d06d..55bdddbba 100644 --- a/app/src/main/kotlin/com/hippo/ehviewer/ui/settings/EhScreen.kt +++ b/app/src/main/kotlin/com/hippo/ehviewer/ui/settings/EhScreen.kt @@ -29,6 +29,7 @@ import androidx.compose.ui.res.stringResource import androidx.compose.ui.text.AnnotatedString import androidx.compose.ui.text.fromHtml import com.ehviewer.core.i18n.R +import com.ehviewer.core.util.launch import com.hippo.ehviewer.Settings import com.hippo.ehviewer.asMutableState import com.hippo.ehviewer.client.EhCookieStore @@ -49,7 +50,6 @@ import com.ramcosta.composedestinations.annotation.Destination import com.ramcosta.composedestinations.annotation.RootGraph import com.ramcosta.composedestinations.navigation.DestinationsNavigator import kotlinx.datetime.LocalTime -import moe.tarsin.launch import moe.tarsin.navigate import moe.tarsin.snackbar diff --git a/app/src/main/kotlin/com/hippo/ehviewer/ui/settings/FilterScreen.kt b/app/src/main/kotlin/com/hippo/ehviewer/ui/settings/FilterScreen.kt index 70a124a92..cf9d9a1c2 100644 --- a/app/src/main/kotlin/com/hippo/ehviewer/ui/settings/FilterScreen.kt +++ b/app/src/main/kotlin/com/hippo/ehviewer/ui/settings/FilterScreen.kt @@ -54,6 +54,10 @@ import androidx.compose.ui.res.stringResource import androidx.compose.ui.text.input.ImeAction import androidx.compose.ui.unit.dp import com.ehviewer.core.i18n.R +import com.ehviewer.core.ui.util.Await +import com.ehviewer.core.ui.util.thenIf +import com.ehviewer.core.util.async +import com.ehviewer.core.util.launch import com.hippo.ehviewer.Settings import com.hippo.ehviewer.client.EhFilter import com.hippo.ehviewer.client.EhFilter.forget @@ -64,17 +68,13 @@ import com.hippo.ehviewer.dao.Filter import com.hippo.ehviewer.dao.FilterMode import com.hippo.ehviewer.ui.Screen import com.hippo.ehviewer.ui.main.NavigationIcon -import com.hippo.ehviewer.ui.tools.Await import com.hippo.ehviewer.ui.tools.awaitConfirmationOrCancel import com.hippo.ehviewer.ui.tools.dialog -import com.hippo.ehviewer.ui.tools.thenIf import com.ramcosta.composedestinations.annotation.Destination import com.ramcosta.composedestinations.annotation.RootGraph import com.ramcosta.composedestinations.navigation.DestinationsNavigator import kotlin.coroutines.resume -import moe.tarsin.async import moe.tarsin.coroutines.groupByToObserved -import moe.tarsin.launch @Destination @Composable diff --git a/app/src/main/kotlin/com/hippo/ehviewer/ui/settings/PreferenceWidgets.kt b/app/src/main/kotlin/com/hippo/ehviewer/ui/settings/PreferenceWidgets.kt index 7d1385441..ce7af1dfb 100644 --- a/app/src/main/kotlin/com/hippo/ehviewer/ui/settings/PreferenceWidgets.kt +++ b/app/src/main/kotlin/com/hippo/ehviewer/ui/settings/PreferenceWidgets.kt @@ -21,7 +21,7 @@ import androidx.compose.ui.res.integerArrayResource import androidx.compose.ui.res.stringArrayResource import androidx.compose.ui.res.stringResource import androidx.compose.ui.text.AnnotatedString -import com.hippo.ehviewer.ui.main.RollingNumber +import com.ehviewer.core.ui.component.RollingNumber import com.hippo.ehviewer.ui.openBrowser import com.hippo.ehviewer.util.ProgressDialog import com.ramcosta.composedestinations.navigation.DestinationsNavigator diff --git a/app/src/main/kotlin/com/hippo/ehviewer/ui/settings/PrivacyScreen.kt b/app/src/main/kotlin/com/hippo/ehviewer/ui/settings/PrivacyScreen.kt index 10d6dedae..a0e916f5c 100644 --- a/app/src/main/kotlin/com/hippo/ehviewer/ui/settings/PrivacyScreen.kt +++ b/app/src/main/kotlin/com/hippo/ehviewer/ui/settings/PrivacyScreen.kt @@ -13,6 +13,7 @@ import androidx.compose.ui.Modifier import androidx.compose.ui.input.nestedscroll.nestedScroll import androidx.compose.ui.res.stringResource import com.ehviewer.core.i18n.R +import com.ehviewer.core.util.launch import com.hippo.ehviewer.EhApplication.Companion.searchDatabase import com.hippo.ehviewer.Settings import com.hippo.ehviewer.asMutableState @@ -23,7 +24,6 @@ import com.hippo.ehviewer.ui.tools.awaitConfirmationOrCancel import com.ramcosta.composedestinations.annotation.Destination import com.ramcosta.composedestinations.annotation.RootGraph import com.ramcosta.composedestinations.navigation.DestinationsNavigator -import moe.tarsin.launch import moe.tarsin.snackbar @Destination diff --git a/app/src/main/kotlin/com/hippo/ehviewer/ui/settings/SettingsScreen.kt b/app/src/main/kotlin/com/hippo/ehviewer/ui/settings/SettingsScreen.kt index 668c2caf5..d94aa7fbf 100644 --- a/app/src/main/kotlin/com/hippo/ehviewer/ui/settings/SettingsScreen.kt +++ b/app/src/main/kotlin/com/hippo/ehviewer/ui/settings/SettingsScreen.kt @@ -17,8 +17,8 @@ import androidx.compose.ui.Modifier import androidx.compose.ui.input.nestedscroll.nestedScroll import androidx.compose.ui.res.stringResource import com.ehviewer.core.i18n.R -import com.hippo.ehviewer.icons.EhIcons -import com.hippo.ehviewer.icons.filled.SadPanda +import com.ehviewer.core.ui.icons.EhIcons +import com.ehviewer.core.ui.icons.filled.SadPanda import com.hippo.ehviewer.ui.Screen import com.hippo.ehviewer.ui.destinations.AboutScreenDestination import com.hippo.ehviewer.ui.destinations.AdvancedScreenDestination diff --git a/app/src/main/kotlin/com/hippo/ehviewer/ui/settings/UConfigScreen.kt b/app/src/main/kotlin/com/hippo/ehviewer/ui/settings/UConfigScreen.kt index 7a5167d64..bb5a6d5ce 100644 --- a/app/src/main/kotlin/com/hippo/ehviewer/ui/settings/UConfigScreen.kt +++ b/app/src/main/kotlin/com/hippo/ehviewer/ui/settings/UConfigScreen.kt @@ -16,6 +16,7 @@ import androidx.compose.runtime.DisposableEffect import androidx.compose.ui.Modifier import androidx.compose.ui.res.stringResource import com.ehviewer.core.i18n.R +import com.ehviewer.core.util.launch import com.google.accompanist.web.WebView import com.google.accompanist.web.rememberWebViewNavigator import com.google.accompanist.web.rememberWebViewState @@ -27,7 +28,6 @@ import com.hippo.ehviewer.util.setDefaultSettings import com.ramcosta.composedestinations.annotation.Destination import com.ramcosta.composedestinations.annotation.RootGraph import com.ramcosta.composedestinations.navigation.DestinationsNavigator -import moe.tarsin.launch import moe.tarsin.snackbar private const val APPLY_JS = "javascript:(function(){var apply = document.getElementById(\"apply\").children[0];apply.click();})();" diff --git a/app/src/main/kotlin/com/hippo/ehviewer/ui/theme/Theme.kt b/app/src/main/kotlin/com/hippo/ehviewer/ui/theme/Theme.kt index 3c9381251..61d96a349 100644 --- a/app/src/main/kotlin/com/hippo/ehviewer/ui/theme/Theme.kt +++ b/app/src/main/kotlin/com/hippo/ehviewer/ui/theme/Theme.kt @@ -18,9 +18,9 @@ import androidx.compose.runtime.CompositionLocalProvider import androidx.compose.runtime.getValue import androidx.compose.ui.graphics.Color import androidx.compose.ui.platform.LocalContext +import com.ehviewer.core.ui.component.scrollbarStyle import com.hippo.ehviewer.Settings import com.hippo.ehviewer.collectAsState -import com.hippo.ehviewer.ui.tools.scrollbarStyle import com.hippo.ehviewer.util.isAtLeastOMR1 import com.hippo.ehviewer.util.isAtLeastS import com.materialkolor.dynamicColorScheme diff --git a/app/src/main/kotlin/com/hippo/ehviewer/ui/tools/Dialog.kt b/app/src/main/kotlin/com/hippo/ehviewer/ui/tools/Dialog.kt index b1c0f0912..c46cd8d21 100644 --- a/app/src/main/kotlin/com/hippo/ehviewer/ui/tools/Dialog.kt +++ b/app/src/main/kotlin/com/hippo/ehviewer/ui/tools/Dialog.kt @@ -94,6 +94,8 @@ import arrow.core.raise.Raise import arrow.core.raise.either import arrow.core.right import com.ehviewer.core.i18n.R +import com.ehviewer.core.ui.component.FastScrollLazyColumn +import com.ehviewer.core.ui.component.LabeledCheckbox import com.hippo.ehviewer.client.EhTagDatabase import com.hippo.ehviewer.client.EhTagDatabase.suggestion import com.jamal.composeprefs3.ui.ifNotNullThen diff --git a/app/src/main/kotlin/com/hippo/ehviewer/util/FavouriteStatusRouter.kt b/app/src/main/kotlin/com/hippo/ehviewer/util/FavouriteStatusRouter.kt index e0873d131..4c37cb0e8 100644 --- a/app/src/main/kotlin/com/hippo/ehviewer/util/FavouriteStatusRouter.kt +++ b/app/src/main/kotlin/com/hippo/ehviewer/util/FavouriteStatusRouter.kt @@ -22,10 +22,10 @@ import androidx.compose.runtime.collectAsState import androidx.compose.runtime.getValue import androidx.compose.runtime.remember import androidx.paging.compose.LazyPagingItems +import com.ehviewer.core.ui.util.launchInVM +import com.ehviewer.core.ui.util.rememberUpdatedStateInVM import com.hippo.ehviewer.EhDB import com.hippo.ehviewer.client.data.GalleryInfo -import com.hippo.ehviewer.ui.tools.launchInVM -import com.hippo.ehviewer.ui.tools.rememberUpdatedStateInVM import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.flow.FlowCollector diff --git a/app/src/main/kotlin/com/hippo/ehviewer/util/LauncherUtils.kt b/app/src/main/kotlin/com/hippo/ehviewer/util/LauncherUtils.kt index c1ba7d285..d3bf6ee10 100644 --- a/app/src/main/kotlin/com/hippo/ehviewer/util/LauncherUtils.kt +++ b/app/src/main/kotlin/com/hippo/ehviewer/util/LauncherUtils.kt @@ -22,7 +22,7 @@ import androidx.lifecycle.Lifecycle import androidx.lifecycle.LifecycleEventObserver import androidx.lifecycle.LifecycleOwner import com.ehviewer.core.i18n.R -import eu.kanade.tachiyomi.util.lang.withUIContext +import com.ehviewer.core.util.withUIContext import java.io.File import kotlin.concurrent.atomics.AtomicInt import kotlin.concurrent.atomics.fetchAndIncrement diff --git a/app/src/main/kotlin/eu/kanade/tachiyomi/ui/reader/BottomReaderBar.kt b/app/src/main/kotlin/eu/kanade/tachiyomi/ui/reader/BottomReaderBar.kt index ce09c932d..796191a5e 100644 --- a/app/src/main/kotlin/eu/kanade/tachiyomi/ui/reader/BottomReaderBar.kt +++ b/app/src/main/kotlin/eu/kanade/tachiyomi/ui/reader/BottomReaderBar.kt @@ -27,12 +27,12 @@ import androidx.compose.ui.res.stringResource import androidx.compose.ui.unit.Dp import androidx.compose.ui.unit.dp import com.ehviewer.core.i18n.R +import com.ehviewer.core.ui.icons.EhIcons +import com.ehviewer.core.ui.icons.filled.Crop +import com.ehviewer.core.ui.icons.filled.CropOff import com.hippo.ehviewer.Settings import com.hippo.ehviewer.asMutableState import com.hippo.ehviewer.collectAsState -import com.hippo.ehviewer.icons.EhIcons -import com.hippo.ehviewer.icons.filled.Crop -import com.hippo.ehviewer.icons.filled.CropOff import eu.kanade.tachiyomi.ui.reader.setting.OrientationType import eu.kanade.tachiyomi.ui.reader.setting.PreferenceType import eu.kanade.tachiyomi.ui.reader.setting.ReadingModeType diff --git a/app/src/main/kotlin/eu/kanade/tachiyomi/ui/reader/ChapterNavigator.kt b/app/src/main/kotlin/eu/kanade/tachiyomi/ui/reader/ChapterNavigator.kt index cf419bba6..1d96bf636 100644 --- a/app/src/main/kotlin/eu/kanade/tachiyomi/ui/reader/ChapterNavigator.kt +++ b/app/src/main/kotlin/eu/kanade/tachiyomi/ui/reader/ChapterNavigator.kt @@ -19,11 +19,11 @@ import androidx.compose.ui.graphics.Color import androidx.compose.ui.platform.LocalLayoutDirection import androidx.compose.ui.unit.LayoutDirection import androidx.compose.ui.unit.dp +import com.ehviewer.core.ui.component.Slider +import com.ehviewer.core.ui.component.defaultMaxTickCount +import com.ehviewer.core.ui.util.LocalWindowSizeClass +import com.ehviewer.core.ui.util.isExpanded import com.hippo.ehviewer.ui.tools.HapticFeedbackType -import com.hippo.ehviewer.ui.tools.LocalWindowSizeClass -import com.hippo.ehviewer.ui.tools.Slider -import com.hippo.ehviewer.ui.tools.defaultMaxTickCount -import com.hippo.ehviewer.ui.tools.isExpanded import com.hippo.ehviewer.ui.tools.rememberHapticFeedback @Composable diff --git a/app/src/main/kotlin/eu/kanade/tachiyomi/ui/reader/PageIndicatorText.kt b/app/src/main/kotlin/eu/kanade/tachiyomi/ui/reader/PageIndicatorText.kt index 0a633871a..8dc97d228 100644 --- a/app/src/main/kotlin/eu/kanade/tachiyomi/ui/reader/PageIndicatorText.kt +++ b/app/src/main/kotlin/eu/kanade/tachiyomi/ui/reader/PageIndicatorText.kt @@ -13,8 +13,8 @@ import androidx.compose.ui.graphics.drawscope.Stroke import androidx.compose.ui.text.TextStyle import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.unit.sp -import com.hippo.ehviewer.ui.main.RollingNumber -import com.hippo.ehviewer.ui.main.RollingNumberPlaceholder +import com.ehviewer.core.ui.component.RollingNumber +import com.ehviewer.core.ui.component.RollingNumberPlaceholder @Composable fun PageIndicatorText( diff --git a/app/src/main/kotlin/eu/kanade/tachiyomi/ui/reader/setting/OrientationType.kt b/app/src/main/kotlin/eu/kanade/tachiyomi/ui/reader/setting/OrientationType.kt index 7df1f85d2..5475d44a6 100644 --- a/app/src/main/kotlin/eu/kanade/tachiyomi/ui/reader/setting/OrientationType.kt +++ b/app/src/main/kotlin/eu/kanade/tachiyomi/ui/reader/setting/OrientationType.kt @@ -3,12 +3,12 @@ package eu.kanade.tachiyomi.ui.reader.setting import android.content.pm.ActivityInfo import androidx.compose.ui.graphics.vector.ImageVector import com.ehviewer.core.i18n.R -import com.hippo.ehviewer.icons.EhIcons -import com.hippo.ehviewer.icons.reader.Landscape -import com.hippo.ehviewer.icons.reader.LandscapeLocked -import com.hippo.ehviewer.icons.reader.Portrait -import com.hippo.ehviewer.icons.reader.PortraitLocked -import com.hippo.ehviewer.icons.reader.ScreenRotation +import com.ehviewer.core.ui.icons.EhIcons +import com.ehviewer.core.ui.icons.reader.Landscape +import com.ehviewer.core.ui.icons.reader.LandscapeLocked +import com.ehviewer.core.ui.icons.reader.Portrait +import com.ehviewer.core.ui.icons.reader.PortraitLocked +import com.ehviewer.core.ui.icons.reader.ScreenRotation enum class OrientationType( override val prefValue: Int, diff --git a/app/src/main/kotlin/eu/kanade/tachiyomi/ui/reader/setting/ReadingModeType.kt b/app/src/main/kotlin/eu/kanade/tachiyomi/ui/reader/setting/ReadingModeType.kt index 8e83c563f..f8ae41a80 100644 --- a/app/src/main/kotlin/eu/kanade/tachiyomi/ui/reader/setting/ReadingModeType.kt +++ b/app/src/main/kotlin/eu/kanade/tachiyomi/ui/reader/setting/ReadingModeType.kt @@ -3,13 +3,13 @@ package eu.kanade.tachiyomi.ui.reader.setting import androidx.compose.runtime.Stable import androidx.compose.ui.graphics.vector.ImageVector import com.ehviewer.core.i18n.R -import com.hippo.ehviewer.icons.EhIcons -import com.hippo.ehviewer.icons.reader.ContinuousVertical -import com.hippo.ehviewer.icons.reader.Default -import com.hippo.ehviewer.icons.reader.LeftToRight -import com.hippo.ehviewer.icons.reader.RightToLeft -import com.hippo.ehviewer.icons.reader.Vertical -import com.hippo.ehviewer.icons.reader.Webtoon +import com.ehviewer.core.ui.icons.EhIcons +import com.ehviewer.core.ui.icons.reader.ContinuousVertical +import com.ehviewer.core.ui.icons.reader.Default +import com.ehviewer.core.ui.icons.reader.LeftToRight +import com.ehviewer.core.ui.icons.reader.RightToLeft +import com.ehviewer.core.ui.icons.reader.Vertical +import com.ehviewer.core.ui.icons.reader.Webtoon @Stable enum class ReadingModeType( diff --git a/app/src/main/kotlin/me/zhanghai/compose/preference/IntSliderPreference.kt b/app/src/main/kotlin/me/zhanghai/compose/preference/IntSliderPreference.kt index 53a37b9bb..d371e996b 100644 --- a/app/src/main/kotlin/me/zhanghai/compose/preference/IntSliderPreference.kt +++ b/app/src/main/kotlin/me/zhanghai/compose/preference/IntSliderPreference.kt @@ -30,7 +30,7 @@ import androidx.compose.runtime.remember import androidx.compose.runtime.setValue import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier -import com.hippo.ehviewer.ui.tools.Slider +import com.ehviewer.core.ui.component.Slider @Composable fun IntSliderPreference( diff --git a/app/src/main/kotlin/moe/tarsin/ContextBridges.kt b/app/src/main/kotlin/moe/tarsin/ContextBridges.kt index 006e409a4..4452ca7f2 100644 --- a/app/src/main/kotlin/moe/tarsin/ContextBridges.kt +++ b/app/src/main/kotlin/moe/tarsin/ContextBridges.kt @@ -7,25 +7,6 @@ import androidx.compose.material3.SnackbarHostState import com.hippo.ehviewer.ui.MainActivity import com.ramcosta.composedestinations.navigation.DestinationsNavigator import com.ramcosta.composedestinations.spec.Direction -import kotlin.coroutines.CoroutineContext -import kotlin.coroutines.EmptyCoroutineContext -import kotlinx.coroutines.CoroutineScope -import kotlinx.coroutines.CoroutineStart -import kotlinx.coroutines.Dispatchers -import kotlinx.coroutines.async -import kotlinx.coroutines.launch - -context(scope: CoroutineScope) -fun launch(context: CoroutineContext = EmptyCoroutineContext, start: CoroutineStart = CoroutineStart.DEFAULT, block: suspend CoroutineScope.() -> Unit) = scope.launch(context, start, block) - -context(scope: CoroutineScope) -fun async(context: CoroutineContext = EmptyCoroutineContext, start: CoroutineStart = CoroutineStart.DEFAULT, block: suspend CoroutineScope.() -> T) = scope.async(context, start, block) - -context(_: CoroutineScope) -fun launchIO(block: suspend CoroutineScope.() -> Unit) = launch(Dispatchers.IO, block = block) - -context(_: CoroutineScope) -fun launchUI(block: suspend CoroutineScope.() -> Unit) = launch(Dispatchers.Main, block = block) context(nav: DestinationsNavigator) fun navigate(direction: Direction) = nav.navigate(direction) diff --git a/app/src/main/kotlin/moe/tarsin/coroutines/Result.kt b/app/src/main/kotlin/moe/tarsin/coroutines/Result.kt index e75707423..74f9d0e9f 100644 --- a/app/src/main/kotlin/moe/tarsin/coroutines/Result.kt +++ b/app/src/main/kotlin/moe/tarsin/coroutines/Result.kt @@ -1,10 +1,10 @@ package moe.tarsin.coroutines import androidx.compose.material3.SnackbarHostState +import com.ehviewer.core.util.launch import com.hippo.ehviewer.util.displayString import kotlinx.coroutines.CancellationException import kotlinx.coroutines.CoroutineScope -import moe.tarsin.launch import moe.tarsin.snackbar inline fun Result.except() = onFailure { if (it is E) throw it } diff --git a/core/common/build.gradle.kts b/core/common/build.gradle.kts new file mode 100644 index 000000000..d32da33ed --- /dev/null +++ b/core/common/build.gradle.kts @@ -0,0 +1,21 @@ +plugins { + alias(libs.plugins.ehviewer.multiplatform.library) +} + +kotlin { + sourceSets { + commonMain { + dependencies { + api(libs.kotlinx.coroutines.core) + api(libs.logcat) + api(project.dependencies.platform(libs.arrow.stack)) + api(libs.bundles.arrow) + } + } + androidMain { + dependencies { + api(libs.kotlinx.coroutines.android) + } + } + } +} diff --git a/core/common/src/commonMain/kotlin/com/ehviewer/core/util/ContextBridges.kt b/core/common/src/commonMain/kotlin/com/ehviewer/core/util/ContextBridges.kt new file mode 100644 index 000000000..9a92078fb --- /dev/null +++ b/core/common/src/commonMain/kotlin/com/ehviewer/core/util/ContextBridges.kt @@ -0,0 +1,21 @@ +package com.ehviewer.core.util + +import kotlin.coroutines.CoroutineContext +import kotlin.coroutines.EmptyCoroutineContext +import kotlinx.coroutines.CoroutineScope +import kotlinx.coroutines.CoroutineStart +import kotlinx.coroutines.Dispatchers +import kotlinx.coroutines.async +import kotlinx.coroutines.launch + +context(scope: CoroutineScope) +fun launch(context: CoroutineContext = EmptyCoroutineContext, start: CoroutineStart = CoroutineStart.DEFAULT, block: suspend CoroutineScope.() -> Unit) = scope.launch(context, start, block) + +context(scope: CoroutineScope) +fun async(context: CoroutineContext = EmptyCoroutineContext, start: CoroutineStart = CoroutineStart.DEFAULT, block: suspend CoroutineScope.() -> T) = scope.async(context, start, block) + +context(_: CoroutineScope) +fun launchIO(block: suspend CoroutineScope.() -> Unit) = launch(Dispatchers.IO, block = block) + +context(_: CoroutineScope) +fun launchUI(block: suspend CoroutineScope.() -> Unit) = launch(Dispatchers.Main, block = block) diff --git a/app/src/main/kotlin/eu/kanade/tachiyomi/util/lang/CoroutinesExtensions.kt b/core/common/src/commonMain/kotlin/com/ehviewer/core/util/CoroutinesExtensions.kt similarity index 96% rename from app/src/main/kotlin/eu/kanade/tachiyomi/util/lang/CoroutinesExtensions.kt rename to core/common/src/commonMain/kotlin/com/ehviewer/core/util/CoroutinesExtensions.kt index 6e4c4f1d3..a06142621 100644 --- a/app/src/main/kotlin/eu/kanade/tachiyomi/util/lang/CoroutinesExtensions.kt +++ b/core/common/src/commonMain/kotlin/com/ehviewer/core/util/CoroutinesExtensions.kt @@ -1,4 +1,4 @@ -package eu.kanade.tachiyomi.util.lang +package com.ehviewer.core.util import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.Dispatchers diff --git a/app/src/main/kotlin/moe/tarsin/coroutines/Flow.kt b/core/common/src/commonMain/kotlin/com/ehviewer/core/util/Flow.kt similarity index 89% rename from app/src/main/kotlin/moe/tarsin/coroutines/Flow.kt rename to core/common/src/commonMain/kotlin/com/ehviewer/core/util/Flow.kt index 27d0c461f..ed9c1ad46 100644 --- a/app/src/main/kotlin/moe/tarsin/coroutines/Flow.kt +++ b/core/common/src/commonMain/kotlin/com/ehviewer/core/util/Flow.kt @@ -1,4 +1,4 @@ -package moe.tarsin.coroutines +package com.ehviewer.core.util import kotlinx.coroutines.flow.Flow import kotlinx.coroutines.flow.transformLatest diff --git a/app/src/main/kotlin/com/hippo/ehviewer/util/LazyDelegate.kt b/core/common/src/commonMain/kotlin/com/ehviewer/core/util/Lazy.kt similarity index 73% rename from app/src/main/kotlin/com/hippo/ehviewer/util/LazyDelegate.kt rename to core/common/src/commonMain/kotlin/com/ehviewer/core/util/Lazy.kt index 0b10170be..d74ca992f 100644 --- a/app/src/main/kotlin/com/hippo/ehviewer/util/LazyDelegate.kt +++ b/core/common/src/commonMain/kotlin/com/ehviewer/core/util/Lazy.kt @@ -1,3 +1,3 @@ -package com.hippo.ehviewer.util +package com.ehviewer.core.util fun unsafeLazy(initializer: () -> T) = lazy(LazyThreadSafetyMode.NONE, initializer) diff --git a/core/data/build.gradle.kts b/core/data/build.gradle.kts index b7c333a98..727964c45 100644 --- a/core/data/build.gradle.kts +++ b/core/data/build.gradle.kts @@ -6,14 +6,13 @@ kotlin { sourceSets { commonMain { dependencies { + api(projects.core.common) api(project.dependencies.platform(libs.okio.bom)) api(libs.androidx.datastore) - api(libs.kotlinx.coroutines.core) } } androidMain { dependencies { - api(libs.kotlinx.coroutines.android) api(libs.splitties.appctx) } } diff --git a/core/ui/build.gradle.kts b/core/ui/build.gradle.kts new file mode 100644 index 000000000..fae95a078 --- /dev/null +++ b/core/ui/build.gradle.kts @@ -0,0 +1,29 @@ +import org.jetbrains.compose.compose + +plugins { + alias(libs.plugins.ehviewer.multiplatform.library.compose) +} + +kotlin { + sourceSets { + commonMain { + dependencies { + api(projects.core.common) + api(compose.material3) + api(compose.materialIconsExtended) + api(libs.compose.material3.adaptive) + api(libs.androidx.lifecycle.compose) + api(libs.androidx.lifecycle.viewmodel.compose) + implementation(compose("org.jetbrains.compose.ui:ui-backhandler")) + implementation(compose.preview) + } + } + + androidMain { + dependencies { + api(project.dependencies.platform(libs.compose.bom)) + implementation(libs.androidx.activity.compose) + } + } + } +} diff --git a/app/src/main/kotlin/androidx/compose/foundation/gestures/AnchoredHorizontalDraggable.kt b/core/ui/src/commonMain/kotlin/androidx/compose/foundation/gestures/AnchoredHorizontalDraggable.kt similarity index 100% rename from app/src/main/kotlin/androidx/compose/foundation/gestures/AnchoredHorizontalDraggable.kt rename to core/ui/src/commonMain/kotlin/androidx/compose/foundation/gestures/AnchoredHorizontalDraggable.kt diff --git a/app/src/main/kotlin/androidx/compose/foundation/gestures/HorizontalDragGestureDetector.kt b/core/ui/src/commonMain/kotlin/androidx/compose/foundation/gestures/HorizontalDragGestureDetector.kt similarity index 100% rename from app/src/main/kotlin/androidx/compose/foundation/gestures/HorizontalDragGestureDetector.kt rename to core/ui/src/commonMain/kotlin/androidx/compose/foundation/gestures/HorizontalDragGestureDetector.kt diff --git a/app/src/main/kotlin/androidx/compose/foundation/gestures/HorizontalDraggable.kt b/core/ui/src/commonMain/kotlin/androidx/compose/foundation/gestures/HorizontalDraggable.kt similarity index 100% rename from app/src/main/kotlin/androidx/compose/foundation/gestures/HorizontalDraggable.kt rename to core/ui/src/commonMain/kotlin/androidx/compose/foundation/gestures/HorizontalDraggable.kt diff --git a/app/src/main/kotlin/androidx/compose/foundation/scrollbar/LazyStaggeredGridScrollbarAdapter.kt b/core/ui/src/commonMain/kotlin/androidx/compose/foundation/scrollbar/LazyStaggeredGridScrollbarAdapter.kt similarity index 100% rename from app/src/main/kotlin/androidx/compose/foundation/scrollbar/LazyStaggeredGridScrollbarAdapter.kt rename to core/ui/src/commonMain/kotlin/androidx/compose/foundation/scrollbar/LazyStaggeredGridScrollbarAdapter.kt diff --git a/app/src/main/kotlin/androidx/compose/foundation/scrollbar/Scrollbar.kt b/core/ui/src/commonMain/kotlin/androidx/compose/foundation/scrollbar/Scrollbar.kt similarity index 100% rename from app/src/main/kotlin/androidx/compose/foundation/scrollbar/Scrollbar.kt rename to core/ui/src/commonMain/kotlin/androidx/compose/foundation/scrollbar/Scrollbar.kt diff --git a/app/src/main/kotlin/androidx/compose/foundation/scrollbar/ScrollbarAdapter.kt b/core/ui/src/commonMain/kotlin/androidx/compose/foundation/scrollbar/ScrollbarAdapter.kt similarity index 100% rename from app/src/main/kotlin/androidx/compose/foundation/scrollbar/ScrollbarAdapter.kt rename to core/ui/src/commonMain/kotlin/androidx/compose/foundation/scrollbar/ScrollbarAdapter.kt diff --git a/app/src/main/kotlin/androidx/compose/material3/SideDrawer.kt b/core/ui/src/commonMain/kotlin/androidx/compose/material3/SideDrawer.kt similarity index 99% rename from app/src/main/kotlin/androidx/compose/material3/SideDrawer.kt rename to core/ui/src/commonMain/kotlin/androidx/compose/material3/SideDrawer.kt index f67e002bb..e554a78fd 100644 --- a/app/src/main/kotlin/androidx/compose/material3/SideDrawer.kt +++ b/core/ui/src/commonMain/kotlin/androidx/compose/material3/SideDrawer.kt @@ -47,7 +47,7 @@ import androidx.compose.ui.unit.Density import androidx.compose.ui.unit.IntOffset import androidx.compose.ui.unit.dp import androidx.compose.ui.util.lerp -import com.hippo.ehviewer.ui.tools.animateFloatMergeOneWayPredictiveBackAsState +import com.ehviewer.core.ui.util.animateFloatMergeOneWayPredictiveBackAsState import kotlin.math.roundToInt import kotlinx.coroutines.CancellationException import kotlinx.coroutines.launch diff --git a/app/src/main/kotlin/androidx/compose/material3/fork/DraggableAnchors.kt b/core/ui/src/commonMain/kotlin/androidx/compose/material3/fork/DraggableAnchors.kt similarity index 100% rename from app/src/main/kotlin/androidx/compose/material3/fork/DraggableAnchors.kt rename to core/ui/src/commonMain/kotlin/androidx/compose/material3/fork/DraggableAnchors.kt diff --git a/app/src/main/kotlin/androidx/compose/material3/fork/SwipeToDismissBox.kt b/core/ui/src/commonMain/kotlin/androidx/compose/material3/fork/SwipeToDismissBox.kt similarity index 100% rename from app/src/main/kotlin/androidx/compose/material3/fork/SwipeToDismissBox.kt rename to core/ui/src/commonMain/kotlin/androidx/compose/material3/fork/SwipeToDismissBox.kt diff --git a/app/src/main/kotlin/com/hippo/ehviewer/ui/tools/Button.kt b/core/ui/src/commonMain/kotlin/com/ehviewer/core/ui/component/Button.kt similarity index 98% rename from app/src/main/kotlin/com/hippo/ehviewer/ui/tools/Button.kt rename to core/ui/src/commonMain/kotlin/com/ehviewer/core/ui/component/Button.kt index f2cc5bdfb..1360567c0 100644 --- a/app/src/main/kotlin/com/hippo/ehviewer/ui/tools/Button.kt +++ b/core/ui/src/commonMain/kotlin/com/ehviewer/core/ui/component/Button.kt @@ -1,4 +1,4 @@ -package com.hippo.ehviewer.ui.tools +package com.ehviewer.core.ui.component import androidx.compose.foundation.interaction.MutableInteractionSource import androidx.compose.material3.FilledIconButton diff --git a/app/src/main/kotlin/com/hippo/ehviewer/ui/tools/Card.kt b/core/ui/src/commonMain/kotlin/com/ehviewer/core/ui/component/Card.kt similarity index 97% rename from app/src/main/kotlin/com/hippo/ehviewer/ui/tools/Card.kt rename to core/ui/src/commonMain/kotlin/com/ehviewer/core/ui/component/Card.kt index 363ae0701..63149c4a5 100644 --- a/app/src/main/kotlin/com/hippo/ehviewer/ui/tools/Card.kt +++ b/core/ui/src/commonMain/kotlin/com/ehviewer/core/ui/component/Card.kt @@ -1,4 +1,4 @@ -package com.hippo.ehviewer.ui.tools +package com.ehviewer.core.ui.component import androidx.compose.foundation.BorderStroke import androidx.compose.foundation.interaction.MutableInteractionSource diff --git a/app/src/main/kotlin/com/hippo/ehviewer/ui/tools/DropdownFilterChip.kt b/core/ui/src/commonMain/kotlin/com/ehviewer/core/ui/component/DropdownFilterChip.kt similarity index 97% rename from app/src/main/kotlin/com/hippo/ehviewer/ui/tools/DropdownFilterChip.kt rename to core/ui/src/commonMain/kotlin/com/ehviewer/core/ui/component/DropdownFilterChip.kt index baca51030..9d7edc200 100644 --- a/app/src/main/kotlin/com/hippo/ehviewer/ui/tools/DropdownFilterChip.kt +++ b/core/ui/src/commonMain/kotlin/com/ehviewer/core/ui/component/DropdownFilterChip.kt @@ -1,4 +1,4 @@ -package com.hippo.ehviewer.ui.tools +package com.ehviewer.core.ui.component import androidx.compose.material3.DropdownMenuItem import androidx.compose.material3.ExposedDropdownMenuAnchorType diff --git a/app/src/main/kotlin/com/hippo/ehviewer/ui/tools/Dummy.kt b/core/ui/src/commonMain/kotlin/com/ehviewer/core/ui/component/Dummy.kt similarity index 98% rename from app/src/main/kotlin/com/hippo/ehviewer/ui/tools/Dummy.kt rename to core/ui/src/commonMain/kotlin/com/ehviewer/core/ui/component/Dummy.kt index 5248343f1..07973b6cb 100644 --- a/app/src/main/kotlin/com/hippo/ehviewer/ui/tools/Dummy.kt +++ b/core/ui/src/commonMain/kotlin/com/ehviewer/core/ui/component/Dummy.kt @@ -1,4 +1,4 @@ -package com.hippo.ehviewer.ui.tools +package com.ehviewer.core.ui.component import androidx.compose.foundation.BorderStroke import androidx.compose.foundation.combinedClickable diff --git a/app/src/main/kotlin/com/hippo/ehviewer/ui/main/FabLayout.kt b/core/ui/src/commonMain/kotlin/com/ehviewer/core/ui/component/FabLayout.kt similarity index 96% rename from app/src/main/kotlin/com/hippo/ehviewer/ui/main/FabLayout.kt rename to core/ui/src/commonMain/kotlin/com/ehviewer/core/ui/component/FabLayout.kt index 7aefb36b2..7f2aa7592 100644 --- a/app/src/main/kotlin/com/hippo/ehviewer/ui/main/FabLayout.kt +++ b/core/ui/src/commonMain/kotlin/com/ehviewer/core/ui/component/FabLayout.kt @@ -1,4 +1,4 @@ -package com.hippo.ehviewer.ui.main +package com.ehviewer.core.ui.component import androidx.activity.compose.PredictiveBackHandler import androidx.compose.animation.core.Animatable @@ -35,15 +35,15 @@ import androidx.compose.ui.unit.dp import androidx.compose.ui.util.lerp import arrow.resilience.Schedule import arrow.resilience.retry -import com.hippo.ehviewer.ui.tools.PredictiveBackEasing -import com.hippo.ehviewer.ui.tools.asyncState -import com.hippo.ehviewer.ui.tools.snackBarPadding +import com.ehviewer.core.ui.util.PredictiveBackEasing +import com.ehviewer.core.ui.util.asyncState +import com.ehviewer.core.ui.util.snackBarPadding +import com.ehviewer.core.util.launch +import com.ehviewer.core.util.onEachLatest import kotlin.time.Duration.Companion.microseconds import kotlinx.coroutines.CancellationException import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.Dispatchers -import moe.tarsin.coroutines.onEachLatest -import moe.tarsin.launch @Stable enum class FabLayoutValue { Hidden, Primary, Expand } diff --git a/app/src/main/kotlin/com/hippo/ehviewer/ui/tools/LabeledCheckbox.kt b/core/ui/src/commonMain/kotlin/com/ehviewer/core/ui/component/LabeledCheckbox.kt similarity index 97% rename from app/src/main/kotlin/com/hippo/ehviewer/ui/tools/LabeledCheckbox.kt rename to core/ui/src/commonMain/kotlin/com/ehviewer/core/ui/component/LabeledCheckbox.kt index a40a507cb..2d6725223 100644 --- a/app/src/main/kotlin/com/hippo/ehviewer/ui/tools/LabeledCheckbox.kt +++ b/core/ui/src/commonMain/kotlin/com/ehviewer/core/ui/component/LabeledCheckbox.kt @@ -1,4 +1,4 @@ -package com.hippo.ehviewer.ui.tools +package com.ehviewer.core.ui.component import androidx.compose.foundation.Indication import androidx.compose.foundation.LocalIndication diff --git a/app/src/main/kotlin/com/hippo/ehviewer/ui/tools/LazyGrid.kt b/core/ui/src/commonMain/kotlin/com/ehviewer/core/ui/component/LazyGrid.kt similarity index 98% rename from app/src/main/kotlin/com/hippo/ehviewer/ui/tools/LazyGrid.kt rename to core/ui/src/commonMain/kotlin/com/ehviewer/core/ui/component/LazyGrid.kt index eac210016..25a36e44a 100644 --- a/app/src/main/kotlin/com/hippo/ehviewer/ui/tools/LazyGrid.kt +++ b/core/ui/src/commonMain/kotlin/com/ehviewer/core/ui/component/LazyGrid.kt @@ -1,4 +1,4 @@ -package com.hippo.ehviewer.ui.tools +package com.ehviewer.core.ui.component import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Box diff --git a/app/src/main/kotlin/com/hippo/ehviewer/ui/tools/LazyList.kt b/core/ui/src/commonMain/kotlin/com/ehviewer/core/ui/component/LazyList.kt similarity index 98% rename from app/src/main/kotlin/com/hippo/ehviewer/ui/tools/LazyList.kt rename to core/ui/src/commonMain/kotlin/com/ehviewer/core/ui/component/LazyList.kt index 06bda2f99..40e2ffe89 100644 --- a/app/src/main/kotlin/com/hippo/ehviewer/ui/tools/LazyList.kt +++ b/core/ui/src/commonMain/kotlin/com/ehviewer/core/ui/component/LazyList.kt @@ -1,4 +1,4 @@ -package com.hippo.ehviewer.ui.tools +package com.ehviewer.core.ui.component import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.PaddingValues diff --git a/app/src/main/kotlin/com/hippo/ehviewer/ui/MutableSideSheet.kt b/core/ui/src/commonMain/kotlin/com/ehviewer/core/ui/component/MutableSideSheet.kt similarity index 98% rename from app/src/main/kotlin/com/hippo/ehviewer/ui/MutableSideSheet.kt rename to core/ui/src/commonMain/kotlin/com/ehviewer/core/ui/component/MutableSideSheet.kt index 6a85a6c03..60365bbe7 100644 --- a/app/src/main/kotlin/com/hippo/ehviewer/ui/MutableSideSheet.kt +++ b/core/ui/src/commonMain/kotlin/com/ehviewer/core/ui/component/MutableSideSheet.kt @@ -1,4 +1,4 @@ -package com.hippo.ehviewer.ui +package com.ehviewer.core.ui.component import androidx.compose.foundation.layout.ColumnScope import androidx.compose.foundation.layout.WindowInsets diff --git a/app/src/main/kotlin/com/hippo/ehviewer/ui/main/RollingNumber.kt b/core/ui/src/commonMain/kotlin/com/ehviewer/core/ui/component/RollingNumber.kt similarity index 99% rename from app/src/main/kotlin/com/hippo/ehviewer/ui/main/RollingNumber.kt rename to core/ui/src/commonMain/kotlin/com/ehviewer/core/ui/component/RollingNumber.kt index 5b3f9cc83..f9460f7a5 100644 --- a/app/src/main/kotlin/com/hippo/ehviewer/ui/main/RollingNumber.kt +++ b/core/ui/src/commonMain/kotlin/com/ehviewer/core/ui/component/RollingNumber.kt @@ -1,4 +1,4 @@ -package com.hippo.ehviewer.ui.main +package com.ehviewer.core.ui.component import androidx.compose.animation.core.animateOffset import androidx.compose.animation.core.updateTransition diff --git a/app/src/main/kotlin/com/hippo/ehviewer/ui/tools/Slider.kt b/core/ui/src/commonMain/kotlin/com/ehviewer/core/ui/component/Slider.kt similarity index 98% rename from app/src/main/kotlin/com/hippo/ehviewer/ui/tools/Slider.kt rename to core/ui/src/commonMain/kotlin/com/ehviewer/core/ui/component/Slider.kt index e0cb0062c..3fc371fcc 100644 --- a/app/src/main/kotlin/com/hippo/ehviewer/ui/tools/Slider.kt +++ b/core/ui/src/commonMain/kotlin/com/ehviewer/core/ui/component/Slider.kt @@ -1,4 +1,4 @@ -package com.hippo.ehviewer.ui.tools +package com.ehviewer.core.ui.component import androidx.compose.foundation.interaction.MutableInteractionSource import androidx.compose.material3.Slider diff --git a/app/src/main/kotlin/com/hippo/ehviewer/ui/tools/VerticalScrollbar.kt b/core/ui/src/commonMain/kotlin/com/ehviewer/core/ui/component/VerticalScrollbar.kt similarity index 93% rename from app/src/main/kotlin/com/hippo/ehviewer/ui/tools/VerticalScrollbar.kt rename to core/ui/src/commonMain/kotlin/com/ehviewer/core/ui/component/VerticalScrollbar.kt index 6f500d229..34481d09e 100644 --- a/app/src/main/kotlin/com/hippo/ehviewer/ui/tools/VerticalScrollbar.kt +++ b/core/ui/src/commonMain/kotlin/com/ehviewer/core/ui/component/VerticalScrollbar.kt @@ -1,6 +1,5 @@ -package com.hippo.ehviewer.ui.tools +package com.ehviewer.core.ui.component -import android.view.ViewConfiguration import androidx.compose.animation.core.Animatable import androidx.compose.animation.core.tween import androidx.compose.foundation.interaction.MutableInteractionSource @@ -80,9 +79,10 @@ private val ThumbLength = 48.dp private val ThumbThickness = 8.dp private val ThumbShape = RoundedCornerShape(ThumbThickness / 2) private val FadeOutAnimationSpec = tween( - durationMillis = ViewConfiguration.getScrollBarFadeDuration(), + durationMillis = SCROLL_BAR_FADE_DURATION, delayMillis = 2000, ) private val FadeInAnimationSpec = tween( - durationMillis = ViewConfiguration.getScrollBarFadeDuration(), + durationMillis = SCROLL_BAR_FADE_DURATION, ) +private const val SCROLL_BAR_FADE_DURATION = 250 diff --git a/app/src/main/kotlin/com/hippo/ehviewer/icons/EhIcons.kt b/core/ui/src/commonMain/kotlin/com/ehviewer/core/ui/icons/EhIcons.kt similarity index 95% rename from app/src/main/kotlin/com/hippo/ehviewer/icons/EhIcons.kt rename to core/ui/src/commonMain/kotlin/com/ehviewer/core/ui/icons/EhIcons.kt index 2232513a4..9d7f35cd6 100644 --- a/app/src/main/kotlin/com/hippo/ehviewer/icons/EhIcons.kt +++ b/core/ui/src/commonMain/kotlin/com/ehviewer/core/ui/icons/EhIcons.kt @@ -1,6 +1,6 @@ @file:Suppress("ktlint:standard:property-naming") -package com.hippo.ehviewer.icons +package com.ehviewer.core.ui.icons import androidx.compose.ui.graphics.vector.ImageVector import androidx.compose.ui.unit.dp diff --git a/app/src/main/kotlin/com/hippo/ehviewer/icons/big/Download.kt b/core/ui/src/commonMain/kotlin/com/ehviewer/core/ui/icons/big/Download.kt similarity index 87% rename from app/src/main/kotlin/com/hippo/ehviewer/icons/big/Download.kt rename to core/ui/src/commonMain/kotlin/com/ehviewer/core/ui/icons/big/Download.kt index 935cd5616..e0936a877 100644 --- a/app/src/main/kotlin/com/hippo/ehviewer/icons/big/Download.kt +++ b/core/ui/src/commonMain/kotlin/com/ehviewer/core/ui/icons/big/Download.kt @@ -1,9 +1,9 @@ -package com.hippo.ehviewer.icons.big +package com.ehviewer.core.ui.icons.big import androidx.compose.material.icons.materialPath -import com.hippo.ehviewer.icons.EhIcons -import com.hippo.ehviewer.icons.bigIcon -import com.hippo.ehviewer.util.unsafeLazy +import com.ehviewer.core.ui.icons.EhIcons +import com.ehviewer.core.ui.icons.bigIcon +import com.ehviewer.core.util.unsafeLazy val EhIcons.Big.Filled.Download by unsafeLazy { bigIcon(name = "Download") { diff --git a/app/src/main/kotlin/com/hippo/ehviewer/icons/big/History.kt b/core/ui/src/commonMain/kotlin/com/ehviewer/core/ui/icons/big/History.kt similarity index 91% rename from app/src/main/kotlin/com/hippo/ehviewer/icons/big/History.kt rename to core/ui/src/commonMain/kotlin/com/ehviewer/core/ui/icons/big/History.kt index d7a3e450a..4ff8e12b4 100644 --- a/app/src/main/kotlin/com/hippo/ehviewer/icons/big/History.kt +++ b/core/ui/src/commonMain/kotlin/com/ehviewer/core/ui/icons/big/History.kt @@ -1,9 +1,9 @@ -package com.hippo.ehviewer.icons.big +package com.ehviewer.core.ui.icons.big import androidx.compose.material.icons.materialPath -import com.hippo.ehviewer.icons.EhIcons -import com.hippo.ehviewer.icons.bigIcon -import com.hippo.ehviewer.util.unsafeLazy +import com.ehviewer.core.ui.icons.EhIcons +import com.ehviewer.core.ui.icons.bigIcon +import com.ehviewer.core.util.unsafeLazy val EhIcons.Big.Filled.History by unsafeLazy { bigIcon(name = "History") { diff --git a/app/src/main/kotlin/com/hippo/ehviewer/icons/big/SadAndroid.kt b/core/ui/src/commonMain/kotlin/com/ehviewer/core/ui/icons/big/SadAndroid.kt similarity index 93% rename from app/src/main/kotlin/com/hippo/ehviewer/icons/big/SadAndroid.kt rename to core/ui/src/commonMain/kotlin/com/ehviewer/core/ui/icons/big/SadAndroid.kt index 14f7b449a..ef4df520f 100644 --- a/app/src/main/kotlin/com/hippo/ehviewer/icons/big/SadAndroid.kt +++ b/core/ui/src/commonMain/kotlin/com/ehviewer/core/ui/icons/big/SadAndroid.kt @@ -1,9 +1,9 @@ -package com.hippo.ehviewer.icons.big +package com.ehviewer.core.ui.icons.big import androidx.compose.material.icons.materialPath -import com.hippo.ehviewer.icons.EhIcons -import com.hippo.ehviewer.icons.bigIcon -import com.hippo.ehviewer.util.unsafeLazy +import com.ehviewer.core.ui.icons.EhIcons +import com.ehviewer.core.ui.icons.bigIcon +import com.ehviewer.core.util.unsafeLazy val EhIcons.Big.Filled.SadAndroid by unsafeLazy { bigIcon(name = "SadAndroid") { diff --git a/app/src/main/kotlin/com/hippo/ehviewer/icons/filled/Crop.kt b/core/ui/src/commonMain/kotlin/com/ehviewer/core/ui/icons/filled/Crop.kt similarity index 92% rename from app/src/main/kotlin/com/hippo/ehviewer/icons/filled/Crop.kt rename to core/ui/src/commonMain/kotlin/com/ehviewer/core/ui/icons/filled/Crop.kt index 10ca24cd6..bc30e7dd7 100644 --- a/app/src/main/kotlin/com/hippo/ehviewer/icons/filled/Crop.kt +++ b/core/ui/src/commonMain/kotlin/com/ehviewer/core/ui/icons/filled/Crop.kt @@ -1,12 +1,12 @@ -package com.hippo.ehviewer.icons.filled +package com.ehviewer.core.ui.icons.filled import androidx.compose.foundation.Image import androidx.compose.material.icons.materialIcon import androidx.compose.material.icons.materialPath import androidx.compose.runtime.Composable import androidx.compose.ui.tooling.preview.Preview -import com.hippo.ehviewer.icons.EhIcons -import com.hippo.ehviewer.util.unsafeLazy +import com.ehviewer.core.ui.icons.EhIcons +import com.ehviewer.core.util.unsafeLazy val EhIcons.Filled.Crop by unsafeLazy { materialIcon(name = "Crop") { diff --git a/app/src/main/kotlin/com/hippo/ehviewer/icons/filled/CropOff.kt b/core/ui/src/commonMain/kotlin/com/ehviewer/core/ui/icons/filled/CropOff.kt similarity index 94% rename from app/src/main/kotlin/com/hippo/ehviewer/icons/filled/CropOff.kt rename to core/ui/src/commonMain/kotlin/com/ehviewer/core/ui/icons/filled/CropOff.kt index d36b50eca..e4b7a21cc 100644 --- a/app/src/main/kotlin/com/hippo/ehviewer/icons/filled/CropOff.kt +++ b/core/ui/src/commonMain/kotlin/com/ehviewer/core/ui/icons/filled/CropOff.kt @@ -1,12 +1,12 @@ -package com.hippo.ehviewer.icons.filled +package com.ehviewer.core.ui.icons.filled import androidx.compose.foundation.Image import androidx.compose.material.icons.materialIcon import androidx.compose.material.icons.materialPath import androidx.compose.runtime.Composable import androidx.compose.ui.tooling.preview.Preview -import com.hippo.ehviewer.icons.EhIcons -import com.hippo.ehviewer.util.unsafeLazy +import com.ehviewer.core.ui.icons.EhIcons +import com.ehviewer.core.util.unsafeLazy @Suppress("BooleanLiteralArgument") val EhIcons.Filled.CropOff by unsafeLazy { diff --git a/app/src/main/kotlin/com/hippo/ehviewer/icons/filled/GoTo.kt b/core/ui/src/commonMain/kotlin/com/ehviewer/core/ui/icons/filled/GoTo.kt similarity index 91% rename from app/src/main/kotlin/com/hippo/ehviewer/icons/filled/GoTo.kt rename to core/ui/src/commonMain/kotlin/com/ehviewer/core/ui/icons/filled/GoTo.kt index 465153618..3407d6e9f 100644 --- a/app/src/main/kotlin/com/hippo/ehviewer/icons/filled/GoTo.kt +++ b/core/ui/src/commonMain/kotlin/com/ehviewer/core/ui/icons/filled/GoTo.kt @@ -1,12 +1,12 @@ -package com.hippo.ehviewer.icons.filled +package com.ehviewer.core.ui.icons.filled import androidx.compose.foundation.Image import androidx.compose.material.icons.materialIcon import androidx.compose.material.icons.materialPath import androidx.compose.runtime.Composable import androidx.compose.ui.tooling.preview.Preview -import com.hippo.ehviewer.icons.EhIcons -import com.hippo.ehviewer.util.unsafeLazy +import com.ehviewer.core.ui.icons.EhIcons +import com.ehviewer.core.util.unsafeLazy val EhIcons.Filled.GoTo by unsafeLazy { materialIcon(name = "GoTo") { diff --git a/app/src/main/kotlin/com/hippo/ehviewer/icons/filled/Magnet.kt b/core/ui/src/commonMain/kotlin/com/ehviewer/core/ui/icons/filled/Magnet.kt similarity index 91% rename from app/src/main/kotlin/com/hippo/ehviewer/icons/filled/Magnet.kt rename to core/ui/src/commonMain/kotlin/com/ehviewer/core/ui/icons/filled/Magnet.kt index 06ea8ccb4..1f693b08f 100644 --- a/app/src/main/kotlin/com/hippo/ehviewer/icons/filled/Magnet.kt +++ b/core/ui/src/commonMain/kotlin/com/ehviewer/core/ui/icons/filled/Magnet.kt @@ -1,12 +1,12 @@ -package com.hippo.ehviewer.icons.filled +package com.ehviewer.core.ui.icons.filled import androidx.compose.foundation.Image import androidx.compose.material.icons.materialIcon import androidx.compose.material.icons.materialPath import androidx.compose.runtime.Composable import androidx.compose.ui.tooling.preview.Preview -import com.hippo.ehviewer.icons.EhIcons -import com.hippo.ehviewer.util.unsafeLazy +import com.ehviewer.core.ui.icons.EhIcons +import com.ehviewer.core.util.unsafeLazy val EhIcons.Filled.Magnet by unsafeLazy { materialIcon(name = "Magnet") { diff --git a/app/src/main/kotlin/com/hippo/ehviewer/icons/filled/SadPanda.kt b/core/ui/src/commonMain/kotlin/com/ehviewer/core/ui/icons/filled/SadPanda.kt similarity index 94% rename from app/src/main/kotlin/com/hippo/ehviewer/icons/filled/SadPanda.kt rename to core/ui/src/commonMain/kotlin/com/ehviewer/core/ui/icons/filled/SadPanda.kt index e39dc2553..2a29aa046 100644 --- a/app/src/main/kotlin/com/hippo/ehviewer/icons/filled/SadPanda.kt +++ b/core/ui/src/commonMain/kotlin/com/ehviewer/core/ui/icons/filled/SadPanda.kt @@ -1,12 +1,12 @@ -package com.hippo.ehviewer.icons.filled +package com.ehviewer.core.ui.icons.filled import androidx.compose.foundation.Image import androidx.compose.material.icons.materialIcon import androidx.compose.material.icons.materialPath import androidx.compose.runtime.Composable import androidx.compose.ui.tooling.preview.Preview -import com.hippo.ehviewer.icons.EhIcons -import com.hippo.ehviewer.util.unsafeLazy +import com.ehviewer.core.ui.icons.EhIcons +import com.ehviewer.core.util.unsafeLazy val EhIcons.Filled.SadPanda by unsafeLazy { materialIcon(name = "SadPanda") { diff --git a/app/src/main/kotlin/com/hippo/ehviewer/icons/filled/Subscriptions.kt b/core/ui/src/commonMain/kotlin/com/ehviewer/core/ui/icons/filled/Subscriptions.kt similarity index 95% rename from app/src/main/kotlin/com/hippo/ehviewer/icons/filled/Subscriptions.kt rename to core/ui/src/commonMain/kotlin/com/ehviewer/core/ui/icons/filled/Subscriptions.kt index fa07d6f01..e8992bf7f 100644 --- a/app/src/main/kotlin/com/hippo/ehviewer/icons/filled/Subscriptions.kt +++ b/core/ui/src/commonMain/kotlin/com/ehviewer/core/ui/icons/filled/Subscriptions.kt @@ -1,12 +1,12 @@ -package com.hippo.ehviewer.icons.filled +package com.ehviewer.core.ui.icons.filled import androidx.compose.foundation.Image import androidx.compose.material.icons.materialIcon import androidx.compose.material.icons.materialPath import androidx.compose.runtime.Composable import androidx.compose.ui.tooling.preview.Preview -import com.hippo.ehviewer.icons.EhIcons -import com.hippo.ehviewer.util.unsafeLazy +import com.ehviewer.core.ui.icons.EhIcons +import com.ehviewer.core.util.unsafeLazy val EhIcons.Filled.Subscriptions by unsafeLazy { materialIcon(name = "Subscriptions") { diff --git a/app/src/main/kotlin/com/hippo/ehviewer/icons/reader/ContinuousVertical.kt b/core/ui/src/commonMain/kotlin/com/ehviewer/core/ui/icons/reader/ContinuousVertical.kt similarity index 93% rename from app/src/main/kotlin/com/hippo/ehviewer/icons/reader/ContinuousVertical.kt rename to core/ui/src/commonMain/kotlin/com/ehviewer/core/ui/icons/reader/ContinuousVertical.kt index 702156709..06ae9b0fa 100644 --- a/app/src/main/kotlin/com/hippo/ehviewer/icons/reader/ContinuousVertical.kt +++ b/core/ui/src/commonMain/kotlin/com/ehviewer/core/ui/icons/reader/ContinuousVertical.kt @@ -1,12 +1,12 @@ -package com.hippo.ehviewer.icons.reader +package com.ehviewer.core.ui.icons.reader import androidx.compose.foundation.Image import androidx.compose.material.icons.materialIcon import androidx.compose.material.icons.materialPath import androidx.compose.runtime.Composable import androidx.compose.ui.tooling.preview.Preview -import com.hippo.ehviewer.icons.EhIcons -import com.hippo.ehviewer.util.unsafeLazy +import com.ehviewer.core.ui.icons.EhIcons +import com.ehviewer.core.util.unsafeLazy @Suppress("BooleanLiteralArgument") val EhIcons.Reader.ContinuousVertical by unsafeLazy { diff --git a/app/src/main/kotlin/com/hippo/ehviewer/icons/reader/Default.kt b/core/ui/src/commonMain/kotlin/com/ehviewer/core/ui/icons/reader/Default.kt similarity index 97% rename from app/src/main/kotlin/com/hippo/ehviewer/icons/reader/Default.kt rename to core/ui/src/commonMain/kotlin/com/ehviewer/core/ui/icons/reader/Default.kt index b5aa4f8b3..62ec4ad35 100644 --- a/app/src/main/kotlin/com/hippo/ehviewer/icons/reader/Default.kt +++ b/core/ui/src/commonMain/kotlin/com/ehviewer/core/ui/icons/reader/Default.kt @@ -1,12 +1,12 @@ -package com.hippo.ehviewer.icons.reader +package com.ehviewer.core.ui.icons.reader import androidx.compose.foundation.Image import androidx.compose.material.icons.materialIcon import androidx.compose.material.icons.materialPath import androidx.compose.runtime.Composable import androidx.compose.ui.tooling.preview.Preview -import com.hippo.ehviewer.icons.EhIcons -import com.hippo.ehviewer.util.unsafeLazy +import com.ehviewer.core.ui.icons.EhIcons +import com.ehviewer.core.util.unsafeLazy @Suppress("BooleanLiteralArgument") val EhIcons.Reader.Default by unsafeLazy { diff --git a/app/src/main/kotlin/com/hippo/ehviewer/icons/reader/Landscape.kt b/core/ui/src/commonMain/kotlin/com/ehviewer/core/ui/icons/reader/Landscape.kt similarity index 90% rename from app/src/main/kotlin/com/hippo/ehviewer/icons/reader/Landscape.kt rename to core/ui/src/commonMain/kotlin/com/ehviewer/core/ui/icons/reader/Landscape.kt index 13aaee24b..81e0665e8 100644 --- a/app/src/main/kotlin/com/hippo/ehviewer/icons/reader/Landscape.kt +++ b/core/ui/src/commonMain/kotlin/com/ehviewer/core/ui/icons/reader/Landscape.kt @@ -1,12 +1,12 @@ -package com.hippo.ehviewer.icons.reader +package com.ehviewer.core.ui.icons.reader import androidx.compose.foundation.Image import androidx.compose.material.icons.materialIcon import androidx.compose.material.icons.materialPath import androidx.compose.runtime.Composable import androidx.compose.ui.tooling.preview.Preview -import com.hippo.ehviewer.icons.EhIcons -import com.hippo.ehviewer.util.unsafeLazy +import com.ehviewer.core.ui.icons.EhIcons +import com.ehviewer.core.util.unsafeLazy val EhIcons.Reader.Landscape by unsafeLazy { materialIcon(name = "Landscape") { diff --git a/app/src/main/kotlin/com/hippo/ehviewer/icons/reader/LandscapeLocked.kt b/core/ui/src/commonMain/kotlin/com/ehviewer/core/ui/icons/reader/LandscapeLocked.kt similarity index 94% rename from app/src/main/kotlin/com/hippo/ehviewer/icons/reader/LandscapeLocked.kt rename to core/ui/src/commonMain/kotlin/com/ehviewer/core/ui/icons/reader/LandscapeLocked.kt index 479395c86..d15d82f3e 100644 --- a/app/src/main/kotlin/com/hippo/ehviewer/icons/reader/LandscapeLocked.kt +++ b/core/ui/src/commonMain/kotlin/com/ehviewer/core/ui/icons/reader/LandscapeLocked.kt @@ -1,12 +1,12 @@ -package com.hippo.ehviewer.icons.reader +package com.ehviewer.core.ui.icons.reader import androidx.compose.foundation.Image import androidx.compose.material.icons.materialIcon import androidx.compose.material.icons.materialPath import androidx.compose.runtime.Composable import androidx.compose.ui.tooling.preview.Preview -import com.hippo.ehviewer.icons.EhIcons -import com.hippo.ehviewer.util.unsafeLazy +import com.ehviewer.core.ui.icons.EhIcons +import com.ehviewer.core.util.unsafeLazy val EhIcons.Reader.LandscapeLocked by unsafeLazy { materialIcon(name = "LandscapeLocked") { diff --git a/app/src/main/kotlin/com/hippo/ehviewer/icons/reader/LeftToRight.kt b/core/ui/src/commonMain/kotlin/com/ehviewer/core/ui/icons/reader/LeftToRight.kt similarity index 95% rename from app/src/main/kotlin/com/hippo/ehviewer/icons/reader/LeftToRight.kt rename to core/ui/src/commonMain/kotlin/com/ehviewer/core/ui/icons/reader/LeftToRight.kt index 198e7092c..c3b7a7911 100644 --- a/app/src/main/kotlin/com/hippo/ehviewer/icons/reader/LeftToRight.kt +++ b/core/ui/src/commonMain/kotlin/com/ehviewer/core/ui/icons/reader/LeftToRight.kt @@ -1,12 +1,12 @@ -package com.hippo.ehviewer.icons.reader +package com.ehviewer.core.ui.icons.reader import androidx.compose.foundation.Image import androidx.compose.material.icons.materialIcon import androidx.compose.material.icons.materialPath import androidx.compose.runtime.Composable import androidx.compose.ui.tooling.preview.Preview -import com.hippo.ehviewer.icons.EhIcons -import com.hippo.ehviewer.util.unsafeLazy +import com.ehviewer.core.ui.icons.EhIcons +import com.ehviewer.core.util.unsafeLazy @Suppress("BooleanLiteralArgument") val EhIcons.Reader.LeftToRight by unsafeLazy { diff --git a/app/src/main/kotlin/com/hippo/ehviewer/icons/reader/Portrait.kt b/core/ui/src/commonMain/kotlin/com/ehviewer/core/ui/icons/reader/Portrait.kt similarity index 90% rename from app/src/main/kotlin/com/hippo/ehviewer/icons/reader/Portrait.kt rename to core/ui/src/commonMain/kotlin/com/ehviewer/core/ui/icons/reader/Portrait.kt index 729da3fce..562c23d19 100644 --- a/app/src/main/kotlin/com/hippo/ehviewer/icons/reader/Portrait.kt +++ b/core/ui/src/commonMain/kotlin/com/ehviewer/core/ui/icons/reader/Portrait.kt @@ -1,12 +1,12 @@ -package com.hippo.ehviewer.icons.reader +package com.ehviewer.core.ui.icons.reader import androidx.compose.foundation.Image import androidx.compose.material.icons.materialIcon import androidx.compose.material.icons.materialPath import androidx.compose.runtime.Composable import androidx.compose.ui.tooling.preview.Preview -import com.hippo.ehviewer.icons.EhIcons -import com.hippo.ehviewer.util.unsafeLazy +import com.ehviewer.core.ui.icons.EhIcons +import com.ehviewer.core.util.unsafeLazy val EhIcons.Reader.Portrait by unsafeLazy { materialIcon(name = "Portrait") { diff --git a/app/src/main/kotlin/com/hippo/ehviewer/icons/reader/PortraitLocked.kt b/core/ui/src/commonMain/kotlin/com/ehviewer/core/ui/icons/reader/PortraitLocked.kt similarity index 94% rename from app/src/main/kotlin/com/hippo/ehviewer/icons/reader/PortraitLocked.kt rename to core/ui/src/commonMain/kotlin/com/ehviewer/core/ui/icons/reader/PortraitLocked.kt index 538fe641e..750ff5afd 100644 --- a/app/src/main/kotlin/com/hippo/ehviewer/icons/reader/PortraitLocked.kt +++ b/core/ui/src/commonMain/kotlin/com/ehviewer/core/ui/icons/reader/PortraitLocked.kt @@ -1,12 +1,12 @@ -package com.hippo.ehviewer.icons.reader +package com.ehviewer.core.ui.icons.reader import androidx.compose.foundation.Image import androidx.compose.material.icons.materialIcon import androidx.compose.material.icons.materialPath import androidx.compose.runtime.Composable import androidx.compose.ui.tooling.preview.Preview -import com.hippo.ehviewer.icons.EhIcons -import com.hippo.ehviewer.util.unsafeLazy +import com.ehviewer.core.ui.icons.EhIcons +import com.ehviewer.core.util.unsafeLazy val EhIcons.Reader.PortraitLocked by unsafeLazy { materialIcon(name = "PortraitLocked") { diff --git a/app/src/main/kotlin/com/hippo/ehviewer/icons/reader/RightToLeft.kt b/core/ui/src/commonMain/kotlin/com/ehviewer/core/ui/icons/reader/RightToLeft.kt similarity index 95% rename from app/src/main/kotlin/com/hippo/ehviewer/icons/reader/RightToLeft.kt rename to core/ui/src/commonMain/kotlin/com/ehviewer/core/ui/icons/reader/RightToLeft.kt index 31eea14d9..74c7c7a3b 100644 --- a/app/src/main/kotlin/com/hippo/ehviewer/icons/reader/RightToLeft.kt +++ b/core/ui/src/commonMain/kotlin/com/ehviewer/core/ui/icons/reader/RightToLeft.kt @@ -1,12 +1,12 @@ -package com.hippo.ehviewer.icons.reader +package com.ehviewer.core.ui.icons.reader import androidx.compose.foundation.Image import androidx.compose.material.icons.materialIcon import androidx.compose.material.icons.materialPath import androidx.compose.runtime.Composable import androidx.compose.ui.tooling.preview.Preview -import com.hippo.ehviewer.icons.EhIcons -import com.hippo.ehviewer.util.unsafeLazy +import com.ehviewer.core.ui.icons.EhIcons +import com.ehviewer.core.util.unsafeLazy @Suppress("BooleanLiteralArgument") val EhIcons.Reader.RightToLeft by unsafeLazy { diff --git a/app/src/main/kotlin/com/hippo/ehviewer/icons/reader/ScreenRotation.kt b/core/ui/src/commonMain/kotlin/com/ehviewer/core/ui/icons/reader/ScreenRotation.kt similarity index 94% rename from app/src/main/kotlin/com/hippo/ehviewer/icons/reader/ScreenRotation.kt rename to core/ui/src/commonMain/kotlin/com/ehviewer/core/ui/icons/reader/ScreenRotation.kt index 0f2b373b8..8c1cc849b 100644 --- a/app/src/main/kotlin/com/hippo/ehviewer/icons/reader/ScreenRotation.kt +++ b/core/ui/src/commonMain/kotlin/com/ehviewer/core/ui/icons/reader/ScreenRotation.kt @@ -1,12 +1,12 @@ -package com.hippo.ehviewer.icons.reader +package com.ehviewer.core.ui.icons.reader import androidx.compose.foundation.Image import androidx.compose.material.icons.materialIcon import androidx.compose.material.icons.materialPath import androidx.compose.runtime.Composable import androidx.compose.ui.tooling.preview.Preview -import com.hippo.ehviewer.icons.EhIcons -import com.hippo.ehviewer.util.unsafeLazy +import com.ehviewer.core.ui.icons.EhIcons +import com.ehviewer.core.util.unsafeLazy val EhIcons.Reader.ScreenRotation by unsafeLazy { materialIcon(name = "ScreenRotation") { diff --git a/app/src/main/kotlin/com/hippo/ehviewer/icons/reader/Vertical.kt b/core/ui/src/commonMain/kotlin/com/ehviewer/core/ui/icons/reader/Vertical.kt similarity index 93% rename from app/src/main/kotlin/com/hippo/ehviewer/icons/reader/Vertical.kt rename to core/ui/src/commonMain/kotlin/com/ehviewer/core/ui/icons/reader/Vertical.kt index 9e41408fc..bffb5f9a3 100644 --- a/app/src/main/kotlin/com/hippo/ehviewer/icons/reader/Vertical.kt +++ b/core/ui/src/commonMain/kotlin/com/ehviewer/core/ui/icons/reader/Vertical.kt @@ -1,12 +1,12 @@ -package com.hippo.ehviewer.icons.reader +package com.ehviewer.core.ui.icons.reader import androidx.compose.foundation.Image import androidx.compose.material.icons.materialIcon import androidx.compose.material.icons.materialPath import androidx.compose.runtime.Composable import androidx.compose.ui.tooling.preview.Preview -import com.hippo.ehviewer.icons.EhIcons -import com.hippo.ehviewer.util.unsafeLazy +import com.ehviewer.core.ui.icons.EhIcons +import com.ehviewer.core.util.unsafeLazy @Suppress("BooleanLiteralArgument") val EhIcons.Reader.Vertical by unsafeLazy { diff --git a/app/src/main/kotlin/com/hippo/ehviewer/icons/reader/Webtoon.kt b/core/ui/src/commonMain/kotlin/com/ehviewer/core/ui/icons/reader/Webtoon.kt similarity index 92% rename from app/src/main/kotlin/com/hippo/ehviewer/icons/reader/Webtoon.kt rename to core/ui/src/commonMain/kotlin/com/ehviewer/core/ui/icons/reader/Webtoon.kt index ce9cb6f2a..34a3909c4 100644 --- a/app/src/main/kotlin/com/hippo/ehviewer/icons/reader/Webtoon.kt +++ b/core/ui/src/commonMain/kotlin/com/ehviewer/core/ui/icons/reader/Webtoon.kt @@ -1,12 +1,12 @@ -package com.hippo.ehviewer.icons.reader +package com.ehviewer.core.ui.icons.reader import androidx.compose.foundation.Image import androidx.compose.material.icons.materialIcon import androidx.compose.material.icons.materialPath import androidx.compose.runtime.Composable import androidx.compose.ui.tooling.preview.Preview -import com.hippo.ehviewer.icons.EhIcons -import com.hippo.ehviewer.util.unsafeLazy +import com.ehviewer.core.ui.icons.EhIcons +import com.ehviewer.core.util.unsafeLazy @Suppress("BooleanLiteralArgument") val EhIcons.Reader.Webtoon by unsafeLazy { diff --git a/app/src/main/kotlin/com/hippo/ehviewer/ui/tools/Await.kt b/core/ui/src/commonMain/kotlin/com/ehviewer/core/ui/util/Await.kt similarity index 96% rename from app/src/main/kotlin/com/hippo/ehviewer/ui/tools/Await.kt rename to core/ui/src/commonMain/kotlin/com/ehviewer/core/ui/util/Await.kt index fa4d6b844..565b72285 100644 --- a/app/src/main/kotlin/com/hippo/ehviewer/ui/tools/Await.kt +++ b/core/ui/src/commonMain/kotlin/com/ehviewer/core/ui/util/Await.kt @@ -1,4 +1,4 @@ -package com.hippo.ehviewer.ui.tools +package com.ehviewer.core.ui.util import androidx.compose.runtime.Composable import androidx.compose.runtime.LaunchedEffect diff --git a/app/src/main/kotlin/com/hippo/ehviewer/ui/tools/Modifier.kt b/core/ui/src/commonMain/kotlin/com/ehviewer/core/ui/util/Modifier.kt similarity index 82% rename from app/src/main/kotlin/com/hippo/ehviewer/ui/tools/Modifier.kt rename to core/ui/src/commonMain/kotlin/com/ehviewer/core/ui/util/Modifier.kt index 3c03c3240..100680794 100644 --- a/app/src/main/kotlin/com/hippo/ehviewer/ui/tools/Modifier.kt +++ b/core/ui/src/commonMain/kotlin/com/ehviewer/core/ui/util/Modifier.kt @@ -1,4 +1,4 @@ -package com.hippo.ehviewer.ui.tools +package com.ehviewer.core.ui.util import androidx.compose.ui.Modifier diff --git a/app/src/main/kotlin/com/hippo/ehviewer/ui/tools/PredictiveBack.kt b/core/ui/src/commonMain/kotlin/com/ehviewer/core/ui/util/PredictiveBack.kt similarity index 96% rename from app/src/main/kotlin/com/hippo/ehviewer/ui/tools/PredictiveBack.kt rename to core/ui/src/commonMain/kotlin/com/ehviewer/core/ui/util/PredictiveBack.kt index e1ea5e77d..312b8df6f 100644 --- a/app/src/main/kotlin/com/hippo/ehviewer/ui/tools/PredictiveBack.kt +++ b/core/ui/src/commonMain/kotlin/com/ehviewer/core/ui/util/PredictiveBack.kt @@ -1,7 +1,6 @@ -package com.hippo.ehviewer.ui.tools +package com.ehviewer.core.ui.util import androidx.activity.BackEventCompat -import androidx.activity.compose.PredictiveBackHandler import androidx.compose.animation.core.Animatable import androidx.compose.animation.core.AnimationSpec import androidx.compose.animation.core.CubicBezierEasing @@ -16,9 +15,10 @@ import androidx.compose.runtime.State import androidx.compose.runtime.getValue import androidx.compose.runtime.remember import androidx.compose.runtime.rememberUpdatedState +import androidx.compose.ui.backhandler.PredictiveBackHandler import androidx.compose.ui.platform.LocalLayoutDirection import androidx.compose.ui.unit.LayoutDirection -import eu.kanade.tachiyomi.util.lang.withNonCancellableContext +import com.ehviewer.core.util.withNonCancellableContext import kotlinx.coroutines.CancellationException import kotlinx.coroutines.channels.Channel import kotlinx.coroutines.launch diff --git a/app/src/main/kotlin/com/hippo/ehviewer/ui/tools/SharedElementTransition.kt b/core/ui/src/commonMain/kotlin/com/ehviewer/core/ui/util/SharedElementTransition.kt similarity index 98% rename from app/src/main/kotlin/com/hippo/ehviewer/ui/tools/SharedElementTransition.kt rename to core/ui/src/commonMain/kotlin/com/ehviewer/core/ui/util/SharedElementTransition.kt index f9a78922e..113abc532 100644 --- a/app/src/main/kotlin/com/hippo/ehviewer/ui/tools/SharedElementTransition.kt +++ b/core/ui/src/commonMain/kotlin/com/ehviewer/core/ui/util/SharedElementTransition.kt @@ -1,4 +1,4 @@ -package com.hippo.ehviewer.ui.tools +package com.ehviewer.core.ui.util import androidx.compose.animation.AnimatedVisibilityScope import androidx.compose.animation.EnterTransition diff --git a/app/src/main/kotlin/com/hippo/ehviewer/ui/tools/SnackBarPadding.kt b/core/ui/src/commonMain/kotlin/com/ehviewer/core/ui/util/SnackBarPadding.kt similarity index 82% rename from app/src/main/kotlin/com/hippo/ehviewer/ui/tools/SnackBarPadding.kt rename to core/ui/src/commonMain/kotlin/com/ehviewer/core/ui/util/SnackBarPadding.kt index a3e46556d..25d6649f6 100644 --- a/app/src/main/kotlin/com/hippo/ehviewer/ui/tools/SnackBarPadding.kt +++ b/core/ui/src/commonMain/kotlin/com/ehviewer/core/ui/util/SnackBarPadding.kt @@ -1,4 +1,4 @@ -package com.hippo.ehviewer.ui.tools +package com.ehviewer.core.ui.util import androidx.compose.foundation.layout.PaddingValues import androidx.compose.foundation.layout.padding @@ -6,11 +6,11 @@ import androidx.compose.runtime.Composable import androidx.compose.runtime.ReadOnlyComposable import androidx.compose.runtime.Stable import androidx.compose.runtime.State +import androidx.compose.runtime.compositionLocalOf import androidx.compose.ui.Modifier import androidx.compose.ui.unit.Dp import androidx.compose.ui.unit.LayoutDirection import androidx.compose.ui.unit.dp -import com.hippo.ehviewer.ui.LocalSnackBarFabPadding @Stable @ReadOnlyComposable @@ -28,3 +28,5 @@ fun Modifier.snackBarPadding(): Modifier { val snackBarPadding = LocalSnackBarFabPadding.current.asBottomPaddingValues() return padding(snackBarPadding) } + +val LocalSnackBarFabPadding = compositionLocalOf> { error("CompositionLocal LocalSnackBarFabPadding not present!") } diff --git a/app/src/main/kotlin/com/hippo/ehviewer/ui/tools/SnapshotFlowState.kt b/core/ui/src/commonMain/kotlin/com/ehviewer/core/ui/util/SnapshotFlowState.kt similarity index 93% rename from app/src/main/kotlin/com/hippo/ehviewer/ui/tools/SnapshotFlowState.kt rename to core/ui/src/commonMain/kotlin/com/ehviewer/core/ui/util/SnapshotFlowState.kt index d9083c39f..169b2687f 100644 --- a/app/src/main/kotlin/com/hippo/ehviewer/ui/tools/SnapshotFlowState.kt +++ b/core/ui/src/commonMain/kotlin/com/ehviewer/core/ui/util/SnapshotFlowState.kt @@ -1,4 +1,4 @@ -package com.hippo.ehviewer.ui.tools +package com.ehviewer.core.ui.util import androidx.compose.runtime.Composable import androidx.compose.runtime.collectAsState diff --git a/app/src/main/kotlin/com/hippo/ehviewer/ui/tools/ViewModelState.kt b/core/ui/src/commonMain/kotlin/com/ehviewer/core/ui/util/ViewModelState.kt similarity index 99% rename from app/src/main/kotlin/com/hippo/ehviewer/ui/tools/ViewModelState.kt rename to core/ui/src/commonMain/kotlin/com/ehviewer/core/ui/util/ViewModelState.kt index d04df554e..57eddc31a 100644 --- a/app/src/main/kotlin/com/hippo/ehviewer/ui/tools/ViewModelState.kt +++ b/core/ui/src/commonMain/kotlin/com/ehviewer/core/ui/util/ViewModelState.kt @@ -1,4 +1,4 @@ -package com.hippo.ehviewer.ui.tools +package com.ehviewer.core.ui.util import androidx.collection.mutableLongObjectMapOf import androidx.compose.runtime.Composable diff --git a/app/src/main/kotlin/com/hippo/ehviewer/ui/tools/WindowSizeClass.kt b/core/ui/src/commonMain/kotlin/com/ehviewer/core/ui/util/WindowSizeClass.kt similarity index 92% rename from app/src/main/kotlin/com/hippo/ehviewer/ui/tools/WindowSizeClass.kt rename to core/ui/src/commonMain/kotlin/com/ehviewer/core/ui/util/WindowSizeClass.kt index ebfaa37b7..8df17538f 100644 --- a/app/src/main/kotlin/com/hippo/ehviewer/ui/tools/WindowSizeClass.kt +++ b/core/ui/src/commonMain/kotlin/com/ehviewer/core/ui/util/WindowSizeClass.kt @@ -1,4 +1,4 @@ -package com.hippo.ehviewer.ui.tools +package com.ehviewer.core.ui.util import androidx.compose.runtime.compositionLocalOf import androidx.window.core.layout.WindowSizeClass diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index f5e27eb04..6951f03f5 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -2,14 +2,14 @@ aboutlibraries = "12.2.4" accompanist = "0.37.3" agp = "8.12.1" -androidx-activity = "1.10.1" +androidx-activity = "1.12.0-alpha06" androidx-appcompat = "1.7.1" androidx-biometric = "1.4.0-alpha04" androidx-browser = "1.9.0" androidx-core = "1.17.0" androidx-core-splashscreen = "1.2.0-rc01" androidx-datastore = "1.1.7" -androidx-lifecycle = "2.9.2" +androidx-lifecycle = "2.10.0-alpha02" androidx-paging = "3.3.6" androidx-room = "2.7.2" androidx-work = "2.10.3" @@ -51,6 +51,7 @@ androidx-core-splashscreen = { module = "androidx.core:core-splashscreen", versi androidx-datastore = { module = "androidx.datastore:datastore-preferences", version.ref = "androidx-datastore" } androidx-lifecycle-process = { module = "androidx.lifecycle:lifecycle-process", version.ref = "androidx-lifecycle" } androidx-lifecycle-compose = { module = "androidx.lifecycle:lifecycle-runtime-compose", version.ref = "androidx-lifecycle" } +androidx-lifecycle-viewmodel-compose = { module = "androidx.lifecycle:lifecycle-viewmodel-compose", version.ref = "androidx-lifecycle" } androidx-paging-compose = { module = "androidx.paging:paging-compose", version.ref = "androidx-paging" } @@ -73,7 +74,7 @@ compose-bom = { module = "androidx.compose:compose-bom-alpha", version.ref = "co compose-foundation = { module = "androidx.compose.foundation:foundation" } compose-material-icons-extended = { module = "androidx.compose.material:material-icons-extended" } compose-material3 = { module = "androidx.compose.material3:material3" } -compose-material3-adaptive = { module = "androidx.compose.material3.adaptive:adaptive" } +compose-material3-adaptive = { module = "org.jetbrains.compose.material3.adaptive:adaptive", version = "1.1.2" } compose-ui-tooling = { module = "androidx.compose.ui:ui-tooling" } compose-ui-tooling-preview = { module = "androidx.compose.ui:ui-tooling-preview" } compose-ui-util = { module = "androidx.compose.ui:ui-util" } diff --git a/settings.gradle.kts b/settings.gradle.kts index ea83080f7..aa190dd4c 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -44,5 +44,7 @@ enableFeaturePreview("STABLE_CONFIGURATION_CACHE") rootProject.name = "EhViewer" include(":app") include(":benchmark") +include(":core:common") include(":core:data") include(":core:i18n") +include(":core:ui")