12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697 |
- package eu.kanade.presentation.components
- import androidx.annotation.StringRes
- import androidx.compose.foundation.background
- import androidx.compose.foundation.layout.Column
- import androidx.compose.foundation.layout.WindowInsets
- import androidx.compose.foundation.layout.WindowInsetsSides
- import androidx.compose.foundation.layout.fillMaxWidth
- import androidx.compose.foundation.layout.only
- import androidx.compose.foundation.layout.padding
- import androidx.compose.foundation.layout.systemBars
- import androidx.compose.foundation.layout.windowInsetsPadding
- import androidx.compose.material3.MaterialTheme
- import androidx.compose.material3.Text
- import androidx.compose.runtime.Composable
- import androidx.compose.ui.Modifier
- import androidx.compose.ui.res.stringResource
- import androidx.compose.ui.text.style.TextAlign
- import androidx.compose.ui.unit.dp
- import eu.kanade.tachiyomi.R
- val DownloadedOnlyBannerBackgroundColor
- @Composable get() = MaterialTheme.colorScheme.tertiary
- val IncognitoModeBannerBackgroundColor
- @Composable get() = MaterialTheme.colorScheme.primary
- @Composable
- fun WarningBanner(
- @StringRes textRes: Int,
- modifier: Modifier = Modifier,
- ) {
- Text(
- text = stringResource(textRes),
- modifier = modifier
- .fillMaxWidth()
- .background(MaterialTheme.colorScheme.error)
- .padding(16.dp),
- color = MaterialTheme.colorScheme.onError,
- style = MaterialTheme.typography.bodyMedium,
- textAlign = TextAlign.Center,
- )
- }
- @Composable
- fun AppStateBanners(
- downloadedOnlyMode: Boolean,
- incognitoMode: Boolean,
- modifier: Modifier = Modifier,
- ) {
- val insets = WindowInsets.systemBars.only(WindowInsetsSides.Top + WindowInsetsSides.Horizontal)
- Column(modifier = modifier) {
- if (downloadedOnlyMode) {
- DownloadedOnlyModeBanner(
- modifier = Modifier.windowInsetsPadding(insets),
- )
- }
- if (incognitoMode) {
- IncognitoModeBanner(
- modifier = if (!downloadedOnlyMode) {
- Modifier.windowInsetsPadding(insets)
- } else {
- Modifier
- },
- )
- }
- }
- }
- @Composable
- private fun DownloadedOnlyModeBanner(modifier: Modifier = Modifier) {
- Text(
- text = stringResource(R.string.label_downloaded_only),
- modifier = Modifier
- .background(DownloadedOnlyBannerBackgroundColor)
- .fillMaxWidth()
- .padding(4.dp)
- .then(modifier),
- color = MaterialTheme.colorScheme.onTertiary,
- textAlign = TextAlign.Center,
- style = MaterialTheme.typography.labelMedium,
- )
- }
- @Composable
- private fun IncognitoModeBanner(modifier: Modifier = Modifier) {
- Text(
- text = stringResource(R.string.pref_incognito_mode),
- modifier = Modifier
- .background(IncognitoModeBannerBackgroundColor)
- .fillMaxWidth()
- .padding(4.dp)
- .then(modifier),
- color = MaterialTheme.colorScheme.onPrimary,
- textAlign = TextAlign.Center,
- style = MaterialTheme.typography.labelMedium,
- )
- }
|