Migrate licenses screen to full Compose

This commit is contained in:
arkon 2022-07-16 18:11:26 -04:00
parent 80c7a45328
commit 1b2c12385f
6 changed files with 49 additions and 36 deletions

View file

@ -13,10 +13,10 @@ import eu.kanade.presentation.category.components.CategoryCreateDialog
import eu.kanade.presentation.category.components.CategoryDeleteDialog
import eu.kanade.presentation.category.components.CategoryFloatingActionButton
import eu.kanade.presentation.category.components.CategoryRenameDialog
import eu.kanade.presentation.components.AppBar
import eu.kanade.presentation.components.EmptyScreen
import eu.kanade.presentation.components.LoadingScreen
import eu.kanade.presentation.components.Scaffold
import eu.kanade.presentation.components.TopAppBar
import eu.kanade.presentation.util.horizontalPadding
import eu.kanade.presentation.util.plus
import eu.kanade.presentation.util.topPaddingValues
@ -35,7 +35,7 @@ fun CategoryScreen(
Scaffold(
modifier = Modifier.statusBarsPadding(),
topBar = {
TopAppBar(
AppBar(
title = stringResource(R.string.action_edit_categories),
navigateUp = navigateUp,
)

View file

@ -23,24 +23,27 @@ import androidx.compose.ui.text.style.TextOverflow
import eu.kanade.tachiyomi.R
@Composable
fun TopAppBar(
fun AppBar(
title: String?,
subtitle: String? = null,
navigateUp: () -> Unit,
navigateUp: (() -> Unit)? = null,
navigationIcon: ImageVector = Icons.Default.ArrowBack,
actions: @Composable RowScope.() -> Unit = {},
) {
SmallTopAppBar(
navigationIcon = {
IconButton(onClick = navigateUp) {
navigateUp?.let {
IconButton(onClick = it) {
Icon(
imageVector = navigationIcon,
contentDescription = stringResource(R.string.abc_action_bar_up_description),
)
}
}
},
title = {
AppBarTitle(title, subtitle)
// TODO: incognito/downloaded only banners
},
actions = actions,
)

View file

@ -16,11 +16,11 @@ import androidx.compose.ui.platform.LocalContext
import androidx.compose.ui.platform.LocalUriHandler
import androidx.compose.ui.res.painterResource
import androidx.compose.ui.res.stringResource
import eu.kanade.presentation.components.AppBar
import eu.kanade.presentation.components.LinkIcon
import eu.kanade.presentation.components.PreferenceRow
import eu.kanade.presentation.components.Scaffold
import eu.kanade.presentation.components.ScrollbarLazyColumn
import eu.kanade.presentation.components.TopAppBar
import eu.kanade.presentation.more.LogoHeader
import eu.kanade.presentation.util.plus
import eu.kanade.tachiyomi.BuildConfig
@ -42,7 +42,7 @@ fun AboutScreen(
Scaffold(
modifier = Modifier.statusBarsPadding(),
topBar = {
TopAppBar(
AppBar(
title = stringResource(R.string.pref_category_about),
navigateUp = navigateUp,
)

View file

@ -4,23 +4,35 @@ import androidx.compose.foundation.layout.WindowInsets
import androidx.compose.foundation.layout.asPaddingValues
import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.foundation.layout.navigationBars
import androidx.compose.foundation.layout.statusBarsPadding
import androidx.compose.material3.MaterialTheme
import androidx.compose.runtime.Composable
import androidx.compose.ui.Modifier
import androidx.compose.ui.input.nestedscroll.NestedScrollConnection
import androidx.compose.ui.input.nestedscroll.nestedScroll
import androidx.compose.ui.res.stringResource
import com.mikepenz.aboutlibraries.ui.compose.LibrariesContainer
import com.mikepenz.aboutlibraries.ui.compose.LibraryDefaults
import eu.kanade.presentation.components.AppBar
import eu.kanade.presentation.components.Scaffold
import eu.kanade.presentation.util.plus
import eu.kanade.tachiyomi.R
@Composable
fun LicensesScreen(
nestedScrollInterop: NestedScrollConnection,
navigateUp: () -> Unit,
) {
Scaffold(
modifier = Modifier.statusBarsPadding(),
topBar = {
AppBar(
title = stringResource(R.string.licenses),
navigateUp = navigateUp,
)
},
) { paddingValues ->
LibrariesContainer(
modifier = Modifier
.fillMaxSize()
.nestedScroll(nestedScrollInterop),
contentPadding = WindowInsets.navigationBars.asPaddingValues(),
.fillMaxSize(),
contentPadding = paddingValues + WindowInsets.navigationBars.asPaddingValues(),
colors = LibraryDefaults.libraryColors(
backgroundColor = MaterialTheme.colorScheme.background,
contentColor = MaterialTheme.colorScheme.onBackground,
@ -28,4 +40,5 @@ fun LicensesScreen(
badgeContentColor = MaterialTheme.colorScheme.onPrimary,
),
)
}
}

View file

@ -25,7 +25,6 @@ import com.google.accompanist.web.rememberWebViewNavigator
import com.google.accompanist.web.rememberWebViewState
import eu.kanade.presentation.components.AppBar
import eu.kanade.presentation.components.AppBarActions
import eu.kanade.presentation.components.TopAppBar
import eu.kanade.tachiyomi.BuildConfig
import eu.kanade.tachiyomi.R
import eu.kanade.tachiyomi.util.system.setDefaultSettings
@ -45,7 +44,7 @@ fun WebViewScreen(
val navigator = rememberWebViewNavigator()
Column {
TopAppBar(
AppBar(
title = state.pageTitle ?: initialTitle,
subtitle = state.content.getCurrentUrl(),
navigateUp = onUp,

View file

@ -1,17 +1,15 @@
package eu.kanade.tachiyomi.ui.more
import androidx.compose.runtime.Composable
import androidx.compose.ui.input.nestedscroll.NestedScrollConnection
import eu.kanade.presentation.more.about.LicensesScreen
import eu.kanade.tachiyomi.R
import eu.kanade.tachiyomi.ui.base.controller.BasicComposeController
import eu.kanade.tachiyomi.ui.base.controller.BasicFullComposeController
class LicensesController : BasicComposeController() {
override fun getTitle() = resources?.getString(R.string.licenses)
class LicensesController : BasicFullComposeController() {
@Composable
override fun ComposeContent(nestedScrollInterop: NestedScrollConnection) {
LicensesScreen(nestedScrollInterop = nestedScrollInterop)
override fun ComposeContent() {
LicensesScreen(
navigateUp = router::popCurrentController,
)
}
}