mirror of
https://github.com/tachiyomiorg/tachiyomi.git
synced 2024-06-28 04:06:03 +02:00
89 lines
3.1 KiB
Kotlin
89 lines
3.1 KiB
Kotlin
package eu.kanade.presentation.more
|
|
|
|
import androidx.compose.foundation.layout.Spacer
|
|
import androidx.compose.foundation.layout.fillMaxWidth
|
|
import androidx.compose.foundation.layout.padding
|
|
import androidx.compose.foundation.layout.width
|
|
import androidx.compose.material.icons.Icons
|
|
import androidx.compose.material.icons.automirrored.outlined.OpenInNew
|
|
import androidx.compose.material.icons.outlined.NewReleases
|
|
import androidx.compose.material3.Icon
|
|
import androidx.compose.material3.MaterialTheme
|
|
import androidx.compose.material3.Text
|
|
import androidx.compose.material3.TextButton
|
|
import androidx.compose.runtime.Composable
|
|
import androidx.compose.ui.Modifier
|
|
import androidx.compose.ui.text.SpanStyle
|
|
import androidx.compose.ui.tooling.preview.PreviewLightDark
|
|
import com.halilibo.richtext.markdown.Markdown
|
|
import com.halilibo.richtext.ui.RichTextStyle
|
|
import com.halilibo.richtext.ui.material3.RichText
|
|
import com.halilibo.richtext.ui.string.RichTextStringStyle
|
|
import eu.kanade.presentation.theme.TachiyomiTheme
|
|
import tachiyomi.i18n.MR
|
|
import tachiyomi.presentation.core.components.material.padding
|
|
import tachiyomi.presentation.core.i18n.stringResource
|
|
import tachiyomi.presentation.core.screens.InfoScreen
|
|
|
|
@Composable
|
|
fun NewUpdateScreen(
|
|
versionName: String,
|
|
changelogInfo: String,
|
|
onOpenInBrowser: () -> Unit,
|
|
onRejectUpdate: () -> Unit,
|
|
onAcceptUpdate: () -> Unit,
|
|
) {
|
|
InfoScreen(
|
|
icon = Icons.Outlined.NewReleases,
|
|
headingText = stringResource(MR.strings.update_check_notification_update_available),
|
|
subtitleText = versionName,
|
|
acceptText = stringResource(MR.strings.update_check_confirm),
|
|
onAcceptClick = onAcceptUpdate,
|
|
rejectText = stringResource(MR.strings.action_not_now),
|
|
onRejectClick = onRejectUpdate,
|
|
) {
|
|
RichText(
|
|
modifier = Modifier
|
|
.fillMaxWidth()
|
|
.padding(vertical = MaterialTheme.padding.large),
|
|
style = RichTextStyle(
|
|
stringStyle = RichTextStringStyle(
|
|
linkStyle = SpanStyle(color = MaterialTheme.colorScheme.primary),
|
|
),
|
|
),
|
|
) {
|
|
Markdown(content = changelogInfo)
|
|
|
|
TextButton(
|
|
onClick = onOpenInBrowser,
|
|
modifier = Modifier.padding(top = MaterialTheme.padding.small),
|
|
) {
|
|
Text(text = stringResource(MR.strings.update_check_open))
|
|
Spacer(modifier = Modifier.width(MaterialTheme.padding.extraSmall))
|
|
Icon(imageVector = Icons.AutoMirrored.Outlined.OpenInNew, contentDescription = null)
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
@PreviewLightDark
|
|
@Composable
|
|
private fun NewUpdateScreenPreview() {
|
|
TachiyomiTheme {
|
|
NewUpdateScreen(
|
|
versionName = "v0.99.9",
|
|
changelogInfo = """
|
|
## Yay
|
|
Foobar
|
|
|
|
### More info
|
|
- Hello
|
|
- World
|
|
""".trimIndent(),
|
|
onOpenInBrowser = {},
|
|
onRejectUpdate = {},
|
|
onAcceptUpdate = {},
|
|
)
|
|
}
|
|
}
|