mirror of
				https://github.com/mihonapp/mihon.git
				synced 2025-11-03 23:58:55 +01:00 
			
		
		
		
	Migrate licenses screen to full Compose
This commit is contained in:
		@@ -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,
 | 
			
		||||
            )
 | 
			
		||||
 
 | 
			
		||||
@@ -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) {
 | 
			
		||||
                Icon(
 | 
			
		||||
                    imageVector = navigationIcon,
 | 
			
		||||
                    contentDescription = stringResource(R.string.abc_action_bar_up_description),
 | 
			
		||||
                )
 | 
			
		||||
            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,
 | 
			
		||||
    )
 | 
			
		||||
 
 | 
			
		||||
@@ -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,
 | 
			
		||||
            )
 | 
			
		||||
 
 | 
			
		||||
@@ -4,28 +4,41 @@ 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,
 | 
			
		||||
) {
 | 
			
		||||
    LibrariesContainer(
 | 
			
		||||
        modifier = Modifier
 | 
			
		||||
            .fillMaxSize()
 | 
			
		||||
            .nestedScroll(nestedScrollInterop),
 | 
			
		||||
        contentPadding = WindowInsets.navigationBars.asPaddingValues(),
 | 
			
		||||
        colors = LibraryDefaults.libraryColors(
 | 
			
		||||
            backgroundColor = MaterialTheme.colorScheme.background,
 | 
			
		||||
            contentColor = MaterialTheme.colorScheme.onBackground,
 | 
			
		||||
            badgeBackgroundColor = MaterialTheme.colorScheme.primary,
 | 
			
		||||
            badgeContentColor = MaterialTheme.colorScheme.onPrimary,
 | 
			
		||||
        ),
 | 
			
		||||
    )
 | 
			
		||||
    Scaffold(
 | 
			
		||||
        modifier = Modifier.statusBarsPadding(),
 | 
			
		||||
        topBar = {
 | 
			
		||||
            AppBar(
 | 
			
		||||
                title = stringResource(R.string.licenses),
 | 
			
		||||
                navigateUp = navigateUp,
 | 
			
		||||
            )
 | 
			
		||||
        },
 | 
			
		||||
    ) { paddingValues ->
 | 
			
		||||
        LibrariesContainer(
 | 
			
		||||
            modifier = Modifier
 | 
			
		||||
                .fillMaxSize(),
 | 
			
		||||
            contentPadding = paddingValues + WindowInsets.navigationBars.asPaddingValues(),
 | 
			
		||||
            colors = LibraryDefaults.libraryColors(
 | 
			
		||||
                backgroundColor = MaterialTheme.colorScheme.background,
 | 
			
		||||
                contentColor = MaterialTheme.colorScheme.onBackground,
 | 
			
		||||
                badgeBackgroundColor = MaterialTheme.colorScheme.primary,
 | 
			
		||||
                badgeContentColor = MaterialTheme.colorScheme.onPrimary,
 | 
			
		||||
            ),
 | 
			
		||||
        )
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -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,
 | 
			
		||||
 
 | 
			
		||||
@@ -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,
 | 
			
		||||
        )
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user