fix(AppBar): Adjust scrolled container color

This commit is contained in:
Ahmad Ansori Palembani 2024-12-27 07:01:35 +07:00
parent 60ef9482c8
commit 71dcb2ab85
Signed by: null2264
GPG key ID: BA64F8B60AF3EFB6
21 changed files with 49 additions and 26 deletions

View file

@ -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.

View file

@ -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
/**

View file

@ -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

View file

@ -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

View file

@ -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,

View file

@ -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(

View file

@ -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

View file

@ -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.

View file

@ -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.

View file

@ -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) {

View file

@ -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<Color, Color> {
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
}
}

View file

@ -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(

View file

@ -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) {

View file

@ -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(

View file

@ -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(

View file

@ -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(

View file

@ -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

View file

@ -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)
}

View file

@ -1,4 +1,4 @@
package yokai.presentation.core.util
package yokai.util
import androidx.compose.foundation.combinedClickable
import androidx.compose.foundation.interaction.MutableInteractionSource

View file

@ -1,4 +1,4 @@
package yokai.presentation.core.util.coil
package yokai.util.coil
import android.view.View
import android.widget.ImageView

View file

@ -8,6 +8,7 @@
<style name="Theme.ActionBar.DayNight" parent="ThemeOverlay.Material3.ActionBar">
<item name="elevationOverlayEnabled">true</item>
<item name="elevationOverlayColor">?colorSecondary</item>
<item name="elevation">4dp</item>
</style>
<!--===============-->