From 71dcb2ab85cacaf18ae3e24782f7d9382fcfd089 Mon Sep 17 00:00:00 2001 From: Ahmad Ansori Palembani Date: Fri, 27 Dec 2024 07:01:35 +0700 Subject: [PATCH] fix(AppBar): Adjust scrolled container color --- .../tachiyomi/ui/library/LibraryGridHolder.kt | 2 +- .../tachiyomi/ui/library/LibraryListHolder.kt | 2 +- .../tachiyomi/ui/manga/EditMangaDialog.kt | 4 ++-- .../tachiyomi/ui/manga/MangaHeaderHolder.kt | 2 +- .../tachiyomi/ui/migration/MangaHolder.kt | 2 +- .../manga/process/MigrationProcessHolder.kt | 2 +- .../tachiyomi/ui/recents/RecentMangaHolder.kt | 2 +- .../source/browse/BrowseSourceGridHolder.kt | 2 +- .../source/browse/BrowseSourceListHolder.kt | 2 +- .../globalsearch/GlobalSearchMangaHolder.kt | 2 +- .../main/java/yokai/presentation/Scaffold.kt | 14 +++++++------ .../presentation/component/TrackLogoIcon.kt | 2 +- .../component/preference/widget/InfoWidget.kt | 2 +- .../preference/widget/TextPreferenceWidget.kt | 2 +- .../presentation/onboarding/InfoScreen.kt | 2 +- .../presentation/reader/ChapterTransition.kt | 2 +- .../settings/screen/data/StorageInfo.kt | 2 +- .../main/java/yokai/util/ComposeExtensions.kt | 20 +++++++++++++++++++ .../core => }/util/ModifierExtensions.kt | 2 +- .../util/coil/ImageViewExtensions.kt | 2 +- app/src/main/res/values/styles.xml | 3 ++- 21 files changed, 49 insertions(+), 26 deletions(-) create mode 100644 app/src/main/java/yokai/util/ComposeExtensions.kt rename app/src/main/java/yokai/{presentation/core => }/util/ModifierExtensions.kt (94%) rename app/src/main/java/yokai/{presentation/core => }/util/coil/ImageViewExtensions.kt (97%) diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryGridHolder.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryGridHolder.kt index 091642038b..abbcdc7224 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryGridHolder.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryGridHolder.kt @@ -23,7 +23,7 @@ import eu.kanade.tachiyomi.util.system.getResourceColor import eu.kanade.tachiyomi.util.view.backgroundColor import eu.kanade.tachiyomi.util.view.setCards import eu.kanade.tachiyomi.widget.AutofitRecyclerView -import yokai.presentation.core.util.coil.loadManga +import yokai.util.coil.loadManga /** * Class used to hold the displayed data of a manga in the library, like the cover or the title. diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryListHolder.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryListHolder.kt index 568068a324..38d17e926c 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryListHolder.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryListHolder.kt @@ -10,7 +10,7 @@ import eu.kanade.tachiyomi.util.lang.highlightText import eu.kanade.tachiyomi.util.system.dpToPx import eu.kanade.tachiyomi.util.view.setCards import yokai.i18n.MR -import yokai.presentation.core.util.coil.loadManga +import yokai.util.coil.loadManga import yokai.util.lang.getString /** diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/manga/EditMangaDialog.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/manga/EditMangaDialog.kt index be1f17a67e..f4dda11b1b 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/manga/EditMangaDialog.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/manga/EditMangaDialog.kt @@ -43,8 +43,8 @@ import uy.kohesive.injekt.injectLazy import yokai.domain.manga.interactor.GetManga import yokai.domain.manga.models.cover import yokai.i18n.MR -import yokai.presentation.core.util.coil.asTarget -import yokai.presentation.core.util.coil.loadManga +import yokai.util.coil.asTarget +import yokai.util.coil.loadManga import yokai.util.lang.getString import android.R as AR diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/manga/MangaHeaderHolder.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/manga/MangaHeaderHolder.kt index 85e74a2599..9e21f6c4b3 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/manga/MangaHeaderHolder.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/manga/MangaHeaderHolder.kt @@ -47,7 +47,7 @@ import eu.kanade.tachiyomi.util.system.isInNightMode import eu.kanade.tachiyomi.util.system.isLTR import eu.kanade.tachiyomi.util.view.resetStrokeColor import yokai.i18n.MR -import yokai.presentation.core.util.coil.loadManga +import yokai.util.coil.loadManga import yokai.util.lang.getString import android.R as AR diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/migration/MangaHolder.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/migration/MangaHolder.kt index 6732e191a5..d43c1dfc74 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/migration/MangaHolder.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/migration/MangaHolder.kt @@ -8,7 +8,7 @@ import eu.davidea.flexibleadapter.items.IFlexible import eu.kanade.tachiyomi.databinding.MangaListItemBinding import eu.kanade.tachiyomi.ui.base.holder.BaseFlexibleViewHolder import eu.kanade.tachiyomi.util.view.setCards -import yokai.presentation.core.util.coil.loadManga +import yokai.util.coil.loadManga class MangaHolder( view: View, diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/migration/manga/process/MigrationProcessHolder.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/migration/manga/process/MigrationProcessHolder.kt index bb57bc541c..392641714a 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/migration/manga/process/MigrationProcessHolder.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/migration/manga/process/MigrationProcessHolder.kt @@ -27,7 +27,7 @@ import yokai.domain.chapter.interactor.GetChapter import yokai.domain.manga.interactor.GetManga import yokai.domain.manga.models.cover import yokai.i18n.MR -import yokai.presentation.core.util.coil.loadManga +import yokai.util.coil.loadManga import yokai.util.lang.getString class MigrationProcessHolder( diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/recents/RecentMangaHolder.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/recents/RecentMangaHolder.kt index 24e003c2dc..dadc03fb3a 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/recents/RecentMangaHolder.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/recents/RecentMangaHolder.kt @@ -34,7 +34,7 @@ import eu.kanade.tachiyomi.util.view.setCards import java.util.Date import java.util.concurrent.TimeUnit import yokai.i18n.MR -import yokai.presentation.core.util.coil.loadManga +import yokai.util.coil.loadManga import yokai.util.lang.getString import android.R as AR diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/source/browse/BrowseSourceGridHolder.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/source/browse/BrowseSourceGridHolder.kt index 50ed40ec23..92c31cb860 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/source/browse/BrowseSourceGridHolder.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/source/browse/BrowseSourceGridHolder.kt @@ -13,7 +13,7 @@ import eu.kanade.tachiyomi.domain.manga.models.Manga import eu.kanade.tachiyomi.ui.library.LibraryCategoryAdapter import eu.kanade.tachiyomi.util.view.setCards import yokai.domain.manga.models.cover -import yokai.presentation.core.util.coil.loadManga +import yokai.util.coil.loadManga /** * Class used to hold the displayed data of a manga in the library, like the cover or the title. diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/source/browse/BrowseSourceListHolder.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/source/browse/BrowseSourceListHolder.kt index b76cfe7e8a..fcffcab813 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/source/browse/BrowseSourceListHolder.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/source/browse/BrowseSourceListHolder.kt @@ -10,7 +10,7 @@ import eu.kanade.tachiyomi.databinding.MangaListItemBinding import eu.kanade.tachiyomi.domain.manga.models.Manga import eu.kanade.tachiyomi.util.view.setCards import yokai.domain.manga.models.cover -import yokai.presentation.core.util.coil.loadManga +import yokai.util.coil.loadManga /** * Class used to hold the displayed data of a manga in the catalogue, like the cover or the title. diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/source/globalsearch/GlobalSearchMangaHolder.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/source/globalsearch/GlobalSearchMangaHolder.kt index e3837cf493..a2f98a2aa9 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/source/globalsearch/GlobalSearchMangaHolder.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/source/globalsearch/GlobalSearchMangaHolder.kt @@ -11,7 +11,7 @@ import eu.kanade.tachiyomi.util.system.dpToPx import eu.kanade.tachiyomi.util.view.makeShapeCorners import eu.kanade.tachiyomi.util.view.setCards import yokai.domain.manga.models.cover -import yokai.presentation.core.util.coil.loadManga +import yokai.util.coil.loadManga class GlobalSearchMangaHolder(view: View, adapter: GlobalSearchCardAdapter) : BaseFlexibleViewHolder(view, adapter) { diff --git a/app/src/main/java/yokai/presentation/Scaffold.kt b/app/src/main/java/yokai/presentation/Scaffold.kt index 6d411f5a91..8014c32e68 100644 --- a/app/src/main/java/yokai/presentation/Scaffold.kt +++ b/app/src/main/java/yokai/presentation/Scaffold.kt @@ -23,11 +23,13 @@ import androidx.compose.ui.graphics.toArgb import androidx.compose.ui.graphics.vector.ImageVector import androidx.compose.ui.input.nestedscroll.nestedScroll import androidx.compose.ui.platform.LocalView +import androidx.compose.ui.unit.dp import androidx.core.view.WindowInsetsControllerCompat import dev.icerock.moko.resources.compose.stringResource import yokai.i18n.MR import yokai.presentation.component.ToolTipButton import yokai.presentation.core.ExpandedAppBar +import yokai.util.applyElevationOverlay @Composable fun YokaiScaffold( @@ -44,7 +46,7 @@ fun YokaiScaffold( ) { val view = LocalView.current val useDarkIcons = MaterialTheme.colorScheme.surface.luminance() > .5 - val (color, scrolledColor) = getTopAppBarColor(title) + val color = getTopAppBarColor(title) SideEffect { val activity = view.context as Activity @@ -66,7 +68,7 @@ fun YokaiScaffold( // modifier = Modifier.statusBarsPadding(), colors = topAppBarColors( containerColor = color, - scrolledContainerColor = scrolledColor, + scrolledContainerColor = color.applyElevationOverlay(4.dp), ), navigationIcon = { ToolTipButton( @@ -85,7 +87,7 @@ fun YokaiScaffold( // modifier = Modifier.statusBarsPadding(), colors = topAppBarColors( containerColor = color, - scrolledContainerColor = scrolledColor, + scrolledContainerColor = color.applyElevationOverlay(4.dp), ), navigationIcon = { ToolTipButton( @@ -104,10 +106,10 @@ fun YokaiScaffold( } @Composable -fun getTopAppBarColor(title: String): Pair { +fun getTopAppBarColor(title: String): Color { return when (title.isEmpty()) { - true -> Color.Transparent to Color.Transparent - false -> MaterialTheme.colorScheme.surface to MaterialTheme.colorScheme.surfaceContainer + true -> Color.Transparent + false -> MaterialTheme.colorScheme.surface } } diff --git a/app/src/main/java/yokai/presentation/component/TrackLogoIcon.kt b/app/src/main/java/yokai/presentation/component/TrackLogoIcon.kt index ca75eb8d7b..3a426e678a 100644 --- a/app/src/main/java/yokai/presentation/component/TrackLogoIcon.kt +++ b/app/src/main/java/yokai/presentation/component/TrackLogoIcon.kt @@ -17,7 +17,7 @@ import androidx.compose.ui.res.stringResource import androidx.compose.ui.unit.dp import dev.icerock.moko.resources.compose.stringResource import eu.kanade.tachiyomi.data.track.TrackService -import yokai.presentation.core.util.clickableNoIndication +import yokai.util.clickableNoIndication @Composable fun TrackLogoIcon( diff --git a/app/src/main/java/yokai/presentation/component/preference/widget/InfoWidget.kt b/app/src/main/java/yokai/presentation/component/preference/widget/InfoWidget.kt index 334cfd0dde..833e034f9e 100644 --- a/app/src/main/java/yokai/presentation/component/preference/widget/InfoWidget.kt +++ b/app/src/main/java/yokai/presentation/component/preference/widget/InfoWidget.kt @@ -10,8 +10,8 @@ import androidx.compose.material3.MaterialTheme import androidx.compose.material3.Text import androidx.compose.runtime.Composable import androidx.compose.ui.Modifier -import yokai.presentation.core.util.secondaryItemAlpha import yokai.presentation.theme.Size +import yokai.util.secondaryItemAlpha @Composable internal fun InfoWidget(text: String) { diff --git a/app/src/main/java/yokai/presentation/component/preference/widget/TextPreferenceWidget.kt b/app/src/main/java/yokai/presentation/component/preference/widget/TextPreferenceWidget.kt index 8a4a677d76..4ed6ba6e6d 100644 --- a/app/src/main/java/yokai/presentation/component/preference/widget/TextPreferenceWidget.kt +++ b/app/src/main/java/yokai/presentation/component/preference/widget/TextPreferenceWidget.kt @@ -8,7 +8,7 @@ import androidx.compose.runtime.Composable import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.Color import androidx.compose.ui.graphics.vector.ImageVector -import yokai.presentation.core.util.secondaryItemAlpha +import yokai.util.secondaryItemAlpha @Composable fun TextPreferenceWidget( diff --git a/app/src/main/java/yokai/presentation/onboarding/InfoScreen.kt b/app/src/main/java/yokai/presentation/onboarding/InfoScreen.kt index d26622c5dc..7671157a80 100644 --- a/app/src/main/java/yokai/presentation/onboarding/InfoScreen.kt +++ b/app/src/main/java/yokai/presentation/onboarding/InfoScreen.kt @@ -31,8 +31,8 @@ import androidx.compose.ui.graphics.vector.ImageVector import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.Dp import androidx.compose.ui.zIndex -import yokai.presentation.core.util.secondaryItemAlpha import yokai.presentation.theme.Size +import yokai.util.secondaryItemAlpha @Composable fun InfoScreen( diff --git a/app/src/main/java/yokai/presentation/reader/ChapterTransition.kt b/app/src/main/java/yokai/presentation/reader/ChapterTransition.kt index ef6c0e3156..f51879ce76 100644 --- a/app/src/main/java/yokai/presentation/reader/ChapterTransition.kt +++ b/app/src/main/java/yokai/presentation/reader/ChapterTransition.kt @@ -42,7 +42,7 @@ import eu.kanade.tachiyomi.ui.reader.viewer.missingChapterCount import eu.kanade.tachiyomi.util.chapter.ChapterUtil.Companion.preferredChapterName import kotlinx.collections.immutable.persistentMapOf import yokai.i18n.MR -import yokai.presentation.core.util.secondaryItemAlpha +import yokai.util.secondaryItemAlpha @Composable fun ChapterTransition( diff --git a/app/src/main/java/yokai/presentation/settings/screen/data/StorageInfo.kt b/app/src/main/java/yokai/presentation/settings/screen/data/StorageInfo.kt index 827764ee5f..064a555b20 100644 --- a/app/src/main/java/yokai/presentation/settings/screen/data/StorageInfo.kt +++ b/app/src/main/java/yokai/presentation/settings/screen/data/StorageInfo.kt @@ -18,9 +18,9 @@ import yokai.i18n.MR import yokai.util.lang.getString import dev.icerock.moko.resources.compose.stringResource import eu.kanade.tachiyomi.util.storage.DiskUtil -import yokai.presentation.core.util.secondaryItemAlpha import yokai.presentation.theme.Size import yokai.presentation.theme.header +import yokai.util.secondaryItemAlpha import java.io.File @Composable diff --git a/app/src/main/java/yokai/util/ComposeExtensions.kt b/app/src/main/java/yokai/util/ComposeExtensions.kt new file mode 100644 index 0000000000..02fa8a9539 --- /dev/null +++ b/app/src/main/java/yokai/util/ComposeExtensions.kt @@ -0,0 +1,20 @@ +package yokai.util + +import androidx.compose.material3.LocalAbsoluteTonalElevation +import androidx.compose.material3.MaterialTheme +import androidx.compose.runtime.Composable +import androidx.compose.ui.graphics.Color +import androidx.compose.ui.graphics.compositeOver +import androidx.compose.ui.unit.Dp +import androidx.compose.ui.unit.dp + +@Composable +fun Color.applyElevationOverlay( + elevation: Dp = 0.dp, + overlayColor: Color = MaterialTheme.colorScheme.secondary, +): Color { + val absoluteElevation = LocalAbsoluteTonalElevation.current + elevation + return overlayColor + .copy(alpha = (absoluteElevation.value) / 100f) + .compositeOver(this) +} diff --git a/app/src/main/java/yokai/presentation/core/util/ModifierExtensions.kt b/app/src/main/java/yokai/util/ModifierExtensions.kt similarity index 94% rename from app/src/main/java/yokai/presentation/core/util/ModifierExtensions.kt rename to app/src/main/java/yokai/util/ModifierExtensions.kt index 86116f4db1..491c77bae3 100644 --- a/app/src/main/java/yokai/presentation/core/util/ModifierExtensions.kt +++ b/app/src/main/java/yokai/util/ModifierExtensions.kt @@ -1,4 +1,4 @@ -package yokai.presentation.core.util +package yokai.util import androidx.compose.foundation.combinedClickable import androidx.compose.foundation.interaction.MutableInteractionSource diff --git a/app/src/main/java/yokai/presentation/core/util/coil/ImageViewExtensions.kt b/app/src/main/java/yokai/util/coil/ImageViewExtensions.kt similarity index 97% rename from app/src/main/java/yokai/presentation/core/util/coil/ImageViewExtensions.kt rename to app/src/main/java/yokai/util/coil/ImageViewExtensions.kt index 7f1f864ae5..40f1350410 100644 --- a/app/src/main/java/yokai/presentation/core/util/coil/ImageViewExtensions.kt +++ b/app/src/main/java/yokai/util/coil/ImageViewExtensions.kt @@ -1,4 +1,4 @@ -package yokai.presentation.core.util.coil +package yokai.util.coil import android.view.View import android.widget.ImageView diff --git a/app/src/main/res/values/styles.xml b/app/src/main/res/values/styles.xml index b015ebe48a..0eb5a7108a 100644 --- a/app/src/main/res/values/styles.xml +++ b/app/src/main/res/values/styles.xml @@ -8,6 +8,7 @@ @@ -395,4 +396,4 @@ 13sp - \ No newline at end of file +