mirror of
https://github.com/null2264/yokai.git
synced 2025-06-21 10:44:42 +00:00
fix(AppBar): Adjust scrolled container color
This commit is contained in:
parent
60ef9482c8
commit
71dcb2ab85
21 changed files with 49 additions and 26 deletions
|
@ -23,7 +23,7 @@ import eu.kanade.tachiyomi.util.system.getResourceColor
|
||||||
import eu.kanade.tachiyomi.util.view.backgroundColor
|
import eu.kanade.tachiyomi.util.view.backgroundColor
|
||||||
import eu.kanade.tachiyomi.util.view.setCards
|
import eu.kanade.tachiyomi.util.view.setCards
|
||||||
import eu.kanade.tachiyomi.widget.AutofitRecyclerView
|
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.
|
* Class used to hold the displayed data of a manga in the library, like the cover or the title.
|
||||||
|
|
|
@ -10,7 +10,7 @@ import eu.kanade.tachiyomi.util.lang.highlightText
|
||||||
import eu.kanade.tachiyomi.util.system.dpToPx
|
import eu.kanade.tachiyomi.util.system.dpToPx
|
||||||
import eu.kanade.tachiyomi.util.view.setCards
|
import eu.kanade.tachiyomi.util.view.setCards
|
||||||
import yokai.i18n.MR
|
import yokai.i18n.MR
|
||||||
import yokai.presentation.core.util.coil.loadManga
|
import yokai.util.coil.loadManga
|
||||||
import yokai.util.lang.getString
|
import yokai.util.lang.getString
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -43,8 +43,8 @@ import uy.kohesive.injekt.injectLazy
|
||||||
import yokai.domain.manga.interactor.GetManga
|
import yokai.domain.manga.interactor.GetManga
|
||||||
import yokai.domain.manga.models.cover
|
import yokai.domain.manga.models.cover
|
||||||
import yokai.i18n.MR
|
import yokai.i18n.MR
|
||||||
import yokai.presentation.core.util.coil.asTarget
|
import yokai.util.coil.asTarget
|
||||||
import yokai.presentation.core.util.coil.loadManga
|
import yokai.util.coil.loadManga
|
||||||
import yokai.util.lang.getString
|
import yokai.util.lang.getString
|
||||||
import android.R as AR
|
import android.R as AR
|
||||||
|
|
||||||
|
|
|
@ -47,7 +47,7 @@ import eu.kanade.tachiyomi.util.system.isInNightMode
|
||||||
import eu.kanade.tachiyomi.util.system.isLTR
|
import eu.kanade.tachiyomi.util.system.isLTR
|
||||||
import eu.kanade.tachiyomi.util.view.resetStrokeColor
|
import eu.kanade.tachiyomi.util.view.resetStrokeColor
|
||||||
import yokai.i18n.MR
|
import yokai.i18n.MR
|
||||||
import yokai.presentation.core.util.coil.loadManga
|
import yokai.util.coil.loadManga
|
||||||
import yokai.util.lang.getString
|
import yokai.util.lang.getString
|
||||||
import android.R as AR
|
import android.R as AR
|
||||||
|
|
||||||
|
|
|
@ -8,7 +8,7 @@ import eu.davidea.flexibleadapter.items.IFlexible
|
||||||
import eu.kanade.tachiyomi.databinding.MangaListItemBinding
|
import eu.kanade.tachiyomi.databinding.MangaListItemBinding
|
||||||
import eu.kanade.tachiyomi.ui.base.holder.BaseFlexibleViewHolder
|
import eu.kanade.tachiyomi.ui.base.holder.BaseFlexibleViewHolder
|
||||||
import eu.kanade.tachiyomi.util.view.setCards
|
import eu.kanade.tachiyomi.util.view.setCards
|
||||||
import yokai.presentation.core.util.coil.loadManga
|
import yokai.util.coil.loadManga
|
||||||
|
|
||||||
class MangaHolder(
|
class MangaHolder(
|
||||||
view: View,
|
view: View,
|
||||||
|
|
|
@ -27,7 +27,7 @@ import yokai.domain.chapter.interactor.GetChapter
|
||||||
import yokai.domain.manga.interactor.GetManga
|
import yokai.domain.manga.interactor.GetManga
|
||||||
import yokai.domain.manga.models.cover
|
import yokai.domain.manga.models.cover
|
||||||
import yokai.i18n.MR
|
import yokai.i18n.MR
|
||||||
import yokai.presentation.core.util.coil.loadManga
|
import yokai.util.coil.loadManga
|
||||||
import yokai.util.lang.getString
|
import yokai.util.lang.getString
|
||||||
|
|
||||||
class MigrationProcessHolder(
|
class MigrationProcessHolder(
|
||||||
|
|
|
@ -34,7 +34,7 @@ import eu.kanade.tachiyomi.util.view.setCards
|
||||||
import java.util.Date
|
import java.util.Date
|
||||||
import java.util.concurrent.TimeUnit
|
import java.util.concurrent.TimeUnit
|
||||||
import yokai.i18n.MR
|
import yokai.i18n.MR
|
||||||
import yokai.presentation.core.util.coil.loadManga
|
import yokai.util.coil.loadManga
|
||||||
import yokai.util.lang.getString
|
import yokai.util.lang.getString
|
||||||
import android.R as AR
|
import android.R as AR
|
||||||
|
|
||||||
|
|
|
@ -13,7 +13,7 @@ import eu.kanade.tachiyomi.domain.manga.models.Manga
|
||||||
import eu.kanade.tachiyomi.ui.library.LibraryCategoryAdapter
|
import eu.kanade.tachiyomi.ui.library.LibraryCategoryAdapter
|
||||||
import eu.kanade.tachiyomi.util.view.setCards
|
import eu.kanade.tachiyomi.util.view.setCards
|
||||||
import yokai.domain.manga.models.cover
|
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.
|
* Class used to hold the displayed data of a manga in the library, like the cover or the title.
|
||||||
|
|
|
@ -10,7 +10,7 @@ import eu.kanade.tachiyomi.databinding.MangaListItemBinding
|
||||||
import eu.kanade.tachiyomi.domain.manga.models.Manga
|
import eu.kanade.tachiyomi.domain.manga.models.Manga
|
||||||
import eu.kanade.tachiyomi.util.view.setCards
|
import eu.kanade.tachiyomi.util.view.setCards
|
||||||
import yokai.domain.manga.models.cover
|
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.
|
* Class used to hold the displayed data of a manga in the catalogue, like the cover or the title.
|
||||||
|
|
|
@ -11,7 +11,7 @@ import eu.kanade.tachiyomi.util.system.dpToPx
|
||||||
import eu.kanade.tachiyomi.util.view.makeShapeCorners
|
import eu.kanade.tachiyomi.util.view.makeShapeCorners
|
||||||
import eu.kanade.tachiyomi.util.view.setCards
|
import eu.kanade.tachiyomi.util.view.setCards
|
||||||
import yokai.domain.manga.models.cover
|
import yokai.domain.manga.models.cover
|
||||||
import yokai.presentation.core.util.coil.loadManga
|
import yokai.util.coil.loadManga
|
||||||
|
|
||||||
class GlobalSearchMangaHolder(view: View, adapter: GlobalSearchCardAdapter) :
|
class GlobalSearchMangaHolder(view: View, adapter: GlobalSearchCardAdapter) :
|
||||||
BaseFlexibleViewHolder(view, adapter) {
|
BaseFlexibleViewHolder(view, adapter) {
|
||||||
|
|
|
@ -23,11 +23,13 @@ import androidx.compose.ui.graphics.toArgb
|
||||||
import androidx.compose.ui.graphics.vector.ImageVector
|
import androidx.compose.ui.graphics.vector.ImageVector
|
||||||
import androidx.compose.ui.input.nestedscroll.nestedScroll
|
import androidx.compose.ui.input.nestedscroll.nestedScroll
|
||||||
import androidx.compose.ui.platform.LocalView
|
import androidx.compose.ui.platform.LocalView
|
||||||
|
import androidx.compose.ui.unit.dp
|
||||||
import androidx.core.view.WindowInsetsControllerCompat
|
import androidx.core.view.WindowInsetsControllerCompat
|
||||||
import dev.icerock.moko.resources.compose.stringResource
|
import dev.icerock.moko.resources.compose.stringResource
|
||||||
import yokai.i18n.MR
|
import yokai.i18n.MR
|
||||||
import yokai.presentation.component.ToolTipButton
|
import yokai.presentation.component.ToolTipButton
|
||||||
import yokai.presentation.core.ExpandedAppBar
|
import yokai.presentation.core.ExpandedAppBar
|
||||||
|
import yokai.util.applyElevationOverlay
|
||||||
|
|
||||||
@Composable
|
@Composable
|
||||||
fun YokaiScaffold(
|
fun YokaiScaffold(
|
||||||
|
@ -44,7 +46,7 @@ fun YokaiScaffold(
|
||||||
) {
|
) {
|
||||||
val view = LocalView.current
|
val view = LocalView.current
|
||||||
val useDarkIcons = MaterialTheme.colorScheme.surface.luminance() > .5
|
val useDarkIcons = MaterialTheme.colorScheme.surface.luminance() > .5
|
||||||
val (color, scrolledColor) = getTopAppBarColor(title)
|
val color = getTopAppBarColor(title)
|
||||||
|
|
||||||
SideEffect {
|
SideEffect {
|
||||||
val activity = view.context as Activity
|
val activity = view.context as Activity
|
||||||
|
@ -66,7 +68,7 @@ fun YokaiScaffold(
|
||||||
// modifier = Modifier.statusBarsPadding(),
|
// modifier = Modifier.statusBarsPadding(),
|
||||||
colors = topAppBarColors(
|
colors = topAppBarColors(
|
||||||
containerColor = color,
|
containerColor = color,
|
||||||
scrolledContainerColor = scrolledColor,
|
scrolledContainerColor = color.applyElevationOverlay(4.dp),
|
||||||
),
|
),
|
||||||
navigationIcon = {
|
navigationIcon = {
|
||||||
ToolTipButton(
|
ToolTipButton(
|
||||||
|
@ -85,7 +87,7 @@ fun YokaiScaffold(
|
||||||
// modifier = Modifier.statusBarsPadding(),
|
// modifier = Modifier.statusBarsPadding(),
|
||||||
colors = topAppBarColors(
|
colors = topAppBarColors(
|
||||||
containerColor = color,
|
containerColor = color,
|
||||||
scrolledContainerColor = scrolledColor,
|
scrolledContainerColor = color.applyElevationOverlay(4.dp),
|
||||||
),
|
),
|
||||||
navigationIcon = {
|
navigationIcon = {
|
||||||
ToolTipButton(
|
ToolTipButton(
|
||||||
|
@ -104,10 +106,10 @@ fun YokaiScaffold(
|
||||||
}
|
}
|
||||||
|
|
||||||
@Composable
|
@Composable
|
||||||
fun getTopAppBarColor(title: String): Pair<Color, Color> {
|
fun getTopAppBarColor(title: String): Color {
|
||||||
return when (title.isEmpty()) {
|
return when (title.isEmpty()) {
|
||||||
true -> Color.Transparent to Color.Transparent
|
true -> Color.Transparent
|
||||||
false -> MaterialTheme.colorScheme.surface to MaterialTheme.colorScheme.surfaceContainer
|
false -> MaterialTheme.colorScheme.surface
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -17,7 +17,7 @@ import androidx.compose.ui.res.stringResource
|
||||||
import androidx.compose.ui.unit.dp
|
import androidx.compose.ui.unit.dp
|
||||||
import dev.icerock.moko.resources.compose.stringResource
|
import dev.icerock.moko.resources.compose.stringResource
|
||||||
import eu.kanade.tachiyomi.data.track.TrackService
|
import eu.kanade.tachiyomi.data.track.TrackService
|
||||||
import yokai.presentation.core.util.clickableNoIndication
|
import yokai.util.clickableNoIndication
|
||||||
|
|
||||||
@Composable
|
@Composable
|
||||||
fun TrackLogoIcon(
|
fun TrackLogoIcon(
|
||||||
|
|
|
@ -10,8 +10,8 @@ import androidx.compose.material3.MaterialTheme
|
||||||
import androidx.compose.material3.Text
|
import androidx.compose.material3.Text
|
||||||
import androidx.compose.runtime.Composable
|
import androidx.compose.runtime.Composable
|
||||||
import androidx.compose.ui.Modifier
|
import androidx.compose.ui.Modifier
|
||||||
import yokai.presentation.core.util.secondaryItemAlpha
|
|
||||||
import yokai.presentation.theme.Size
|
import yokai.presentation.theme.Size
|
||||||
|
import yokai.util.secondaryItemAlpha
|
||||||
|
|
||||||
@Composable
|
@Composable
|
||||||
internal fun InfoWidget(text: String) {
|
internal fun InfoWidget(text: String) {
|
||||||
|
|
|
@ -8,7 +8,7 @@ import androidx.compose.runtime.Composable
|
||||||
import androidx.compose.ui.Modifier
|
import androidx.compose.ui.Modifier
|
||||||
import androidx.compose.ui.graphics.Color
|
import androidx.compose.ui.graphics.Color
|
||||||
import androidx.compose.ui.graphics.vector.ImageVector
|
import androidx.compose.ui.graphics.vector.ImageVector
|
||||||
import yokai.presentation.core.util.secondaryItemAlpha
|
import yokai.util.secondaryItemAlpha
|
||||||
|
|
||||||
@Composable
|
@Composable
|
||||||
fun TextPreferenceWidget(
|
fun TextPreferenceWidget(
|
||||||
|
|
|
@ -31,8 +31,8 @@ import androidx.compose.ui.graphics.vector.ImageVector
|
||||||
import androidx.compose.ui.tooling.preview.Preview
|
import androidx.compose.ui.tooling.preview.Preview
|
||||||
import androidx.compose.ui.unit.Dp
|
import androidx.compose.ui.unit.Dp
|
||||||
import androidx.compose.ui.zIndex
|
import androidx.compose.ui.zIndex
|
||||||
import yokai.presentation.core.util.secondaryItemAlpha
|
|
||||||
import yokai.presentation.theme.Size
|
import yokai.presentation.theme.Size
|
||||||
|
import yokai.util.secondaryItemAlpha
|
||||||
|
|
||||||
@Composable
|
@Composable
|
||||||
fun InfoScreen(
|
fun InfoScreen(
|
||||||
|
|
|
@ -42,7 +42,7 @@ import eu.kanade.tachiyomi.ui.reader.viewer.missingChapterCount
|
||||||
import eu.kanade.tachiyomi.util.chapter.ChapterUtil.Companion.preferredChapterName
|
import eu.kanade.tachiyomi.util.chapter.ChapterUtil.Companion.preferredChapterName
|
||||||
import kotlinx.collections.immutable.persistentMapOf
|
import kotlinx.collections.immutable.persistentMapOf
|
||||||
import yokai.i18n.MR
|
import yokai.i18n.MR
|
||||||
import yokai.presentation.core.util.secondaryItemAlpha
|
import yokai.util.secondaryItemAlpha
|
||||||
|
|
||||||
@Composable
|
@Composable
|
||||||
fun ChapterTransition(
|
fun ChapterTransition(
|
||||||
|
|
|
@ -18,9 +18,9 @@ import yokai.i18n.MR
|
||||||
import yokai.util.lang.getString
|
import yokai.util.lang.getString
|
||||||
import dev.icerock.moko.resources.compose.stringResource
|
import dev.icerock.moko.resources.compose.stringResource
|
||||||
import eu.kanade.tachiyomi.util.storage.DiskUtil
|
import eu.kanade.tachiyomi.util.storage.DiskUtil
|
||||||
import yokai.presentation.core.util.secondaryItemAlpha
|
|
||||||
import yokai.presentation.theme.Size
|
import yokai.presentation.theme.Size
|
||||||
import yokai.presentation.theme.header
|
import yokai.presentation.theme.header
|
||||||
|
import yokai.util.secondaryItemAlpha
|
||||||
import java.io.File
|
import java.io.File
|
||||||
|
|
||||||
@Composable
|
@Composable
|
||||||
|
|
20
app/src/main/java/yokai/util/ComposeExtensions.kt
Normal file
20
app/src/main/java/yokai/util/ComposeExtensions.kt
Normal 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)
|
||||||
|
}
|
|
@ -1,4 +1,4 @@
|
||||||
package yokai.presentation.core.util
|
package yokai.util
|
||||||
|
|
||||||
import androidx.compose.foundation.combinedClickable
|
import androidx.compose.foundation.combinedClickable
|
||||||
import androidx.compose.foundation.interaction.MutableInteractionSource
|
import androidx.compose.foundation.interaction.MutableInteractionSource
|
|
@ -1,4 +1,4 @@
|
||||||
package yokai.presentation.core.util.coil
|
package yokai.util.coil
|
||||||
|
|
||||||
import android.view.View
|
import android.view.View
|
||||||
import android.widget.ImageView
|
import android.widget.ImageView
|
|
@ -8,6 +8,7 @@
|
||||||
<style name="Theme.ActionBar.DayNight" parent="ThemeOverlay.Material3.ActionBar">
|
<style name="Theme.ActionBar.DayNight" parent="ThemeOverlay.Material3.ActionBar">
|
||||||
<item name="elevationOverlayEnabled">true</item>
|
<item name="elevationOverlayEnabled">true</item>
|
||||||
<item name="elevationOverlayColor">?colorSecondary</item>
|
<item name="elevationOverlayColor">?colorSecondary</item>
|
||||||
|
<item name="elevation">4dp</item>
|
||||||
</style>
|
</style>
|
||||||
|
|
||||||
<!--===============-->
|
<!--===============-->
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue