mirror of
				https://github.com/mihonapp/mihon.git
				synced 2025-10-30 22:07:57 +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