diff --git a/app/src/main/java/eu/kanade/presentation/category/CategoryScreen.kt b/app/src/main/java/eu/kanade/presentation/category/CategoryScreen.kt index b1874f046..06bc7afca 100644 --- a/app/src/main/java/eu/kanade/presentation/category/CategoryScreen.kt +++ b/app/src/main/java/eu/kanade/presentation/category/CategoryScreen.kt @@ -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.category.components.CategoryTopAppBar 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,9 +35,9 @@ fun CategoryScreen( Scaffold( modifier = Modifier.statusBarsPadding(), topBar = { - CategoryTopAppBar( + TopAppBar( + title = stringResource(R.string.action_edit_categories), navigateUp = navigateUp, - title = stringResource(id = R.string.action_edit_categories), ) }, floatingActionButton = { diff --git a/app/src/main/java/eu/kanade/presentation/category/SortTagScreen.kt b/app/src/main/java/eu/kanade/presentation/category/SortTagScreen.kt index fec272625..ea7fc7034 100644 --- a/app/src/main/java/eu/kanade/presentation/category/SortTagScreen.kt +++ b/app/src/main/java/eu/kanade/presentation/category/SortTagScreen.kt @@ -11,11 +11,11 @@ import androidx.compose.ui.res.stringResource 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.CategoryTopAppBar import eu.kanade.presentation.category.components.genre.SortTagContent 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,9 +35,9 @@ fun SortTagScreen( modifier = Modifier .statusBarsPadding(), topBar = { - CategoryTopAppBar( + TopAppBar( navigateUp = navigateUp, - title = stringResource(id = R.string.action_edit_tags), + title = stringResource(R.string.action_edit_tags), ) }, floatingActionButton = { diff --git a/app/src/main/java/eu/kanade/presentation/category/SourceCategoryScreen.kt b/app/src/main/java/eu/kanade/presentation/category/SourceCategoryScreen.kt index 6f2301330..d9fb672d6 100644 --- a/app/src/main/java/eu/kanade/presentation/category/SourceCategoryScreen.kt +++ b/app/src/main/java/eu/kanade/presentation/category/SourceCategoryScreen.kt @@ -12,11 +12,11 @@ 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.category.components.CategoryTopAppBar import eu.kanade.presentation.category.components.sources.SourceCategoryContent 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 @@ -36,9 +36,9 @@ fun SourceCategoryScreen( modifier = Modifier .statusBarsPadding(), topBar = { - CategoryTopAppBar( + TopAppBar( navigateUp = navigateUp, - title = stringResource(id = R.string.action_edit_categories), + title = stringResource(R.string.action_edit_categories), ) }, floatingActionButton = { diff --git a/app/src/main/java/eu/kanade/presentation/category/SourceRepoScreen.kt b/app/src/main/java/eu/kanade/presentation/category/SourceRepoScreen.kt index a4e346919..c9d729e2e 100644 --- a/app/src/main/java/eu/kanade/presentation/category/SourceRepoScreen.kt +++ b/app/src/main/java/eu/kanade/presentation/category/SourceRepoScreen.kt @@ -11,11 +11,11 @@ import androidx.compose.ui.res.stringResource 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.CategoryTopAppBar import eu.kanade.presentation.category.components.repo.SourceRepoContent 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 SourceRepoScreen( modifier = Modifier .statusBarsPadding(), topBar = { - CategoryTopAppBar( + TopAppBar( navigateUp = navigateUp, title = stringResource(R.string.action_edit_repos), ) diff --git a/app/src/main/java/eu/kanade/presentation/category/components/CategoryTopAppBar.kt b/app/src/main/java/eu/kanade/presentation/category/components/CategoryTopAppBar.kt deleted file mode 100644 index e4ad6af8f..000000000 --- a/app/src/main/java/eu/kanade/presentation/category/components/CategoryTopAppBar.kt +++ /dev/null @@ -1,31 +0,0 @@ -package eu.kanade.presentation.category.components - -import androidx.compose.material.icons.Icons -import androidx.compose.material.icons.filled.ArrowBack -import androidx.compose.material3.Icon -import androidx.compose.material3.IconButton -import androidx.compose.material3.SmallTopAppBar -import androidx.compose.material3.Text -import androidx.compose.runtime.Composable -import androidx.compose.ui.res.stringResource -import eu.kanade.tachiyomi.R - -@Composable -fun CategoryTopAppBar( - navigateUp: () -> Unit, - title: String, -) { - SmallTopAppBar( - navigationIcon = { - IconButton(onClick = navigateUp) { - Icon( - imageVector = Icons.Default.ArrowBack, - contentDescription = stringResource(R.string.abc_action_bar_up_description), - ) - } - }, - title = { - Text(text = title) - }, - ) -} diff --git a/app/src/main/java/eu/kanade/presentation/components/AppBar.kt b/app/src/main/java/eu/kanade/presentation/components/AppBar.kt index 418a8856c..cf849609e 100644 --- a/app/src/main/java/eu/kanade/presentation/components/AppBar.kt +++ b/app/src/main/java/eu/kanade/presentation/components/AppBar.kt @@ -1,12 +1,15 @@ package eu.kanade.presentation.components import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.RowScope import androidx.compose.material.icons.Icons +import androidx.compose.material.icons.filled.ArrowBack import androidx.compose.material.icons.filled.MoreVert import androidx.compose.material3.DropdownMenuItem import androidx.compose.material3.Icon import androidx.compose.material3.IconButton import androidx.compose.material3.MaterialTheme +import androidx.compose.material3.SmallTopAppBar import androidx.compose.material3.Text import androidx.compose.runtime.Composable import androidx.compose.runtime.getValue @@ -19,6 +22,30 @@ import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.text.style.TextOverflow import eu.kanade.tachiyomi.R +@Composable +fun TopAppBar( + title: String?, + subtitle: String? = null, + navigateUp: () -> Unit, + 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), + ) + } + }, + title = { + AppBarTitle(title, subtitle) + }, + actions = actions, + ) +} + @Composable fun AppBarTitle( title: String?, diff --git a/app/src/main/java/eu/kanade/presentation/more/about/AboutScreen.kt b/app/src/main/java/eu/kanade/presentation/more/about/AboutScreen.kt index 330b03144..f5648f961 100644 --- a/app/src/main/java/eu/kanade/presentation/more/about/AboutScreen.kt +++ b/app/src/main/java/eu/kanade/presentation/more/about/AboutScreen.kt @@ -6,20 +6,21 @@ import androidx.compose.foundation.layout.WindowInsets import androidx.compose.foundation.layout.asPaddingValues import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.navigationBars +import androidx.compose.foundation.layout.statusBarsPadding import androidx.compose.material.icons.Icons import androidx.compose.material.icons.outlined.Public import androidx.compose.runtime.Composable import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.vector.rememberVectorPainter -import androidx.compose.ui.input.nestedscroll.NestedScrollConnection -import androidx.compose.ui.input.nestedscroll.nestedScroll 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.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.tachiyomi.BuildConfig import eu.kanade.tachiyomi.R @@ -29,7 +30,7 @@ import exh.syDebugVersion @Composable fun AboutScreen( - nestedScrollInterop: NestedScrollConnection, + navigateUp: () -> Unit, checkVersion: () -> Unit, getFormattedBuildTime: () -> String, onClickLicenses: () -> Unit, @@ -38,110 +39,119 @@ fun AboutScreen( val context = LocalContext.current val uriHandler = LocalUriHandler.current - ScrollbarLazyColumn( - modifier = Modifier.nestedScroll(nestedScrollInterop), - contentPadding = WindowInsets.navigationBars.asPaddingValues(), - ) { - item { - LogoHeader() - } - - item { - PreferenceRow( - title = stringResource(R.string.version), - subtitle = when { - BuildConfig.DEBUG -> { - "Debug ${BuildConfig.COMMIT_SHA} (${getFormattedBuildTime()})" - } - // SY --> - syDebugVersion != "0" -> { - "Preview r$syDebugVersion (${BuildConfig.COMMIT_SHA}, ${getFormattedBuildTime()})" - } - // SY <-- - else -> { - "Stable ${BuildConfig.VERSION_NAME} (${getFormattedBuildTime()})" - } - }, - onClick = { - val deviceInfo = CrashLogUtil(context).getDebugInfo() - context.copyToClipboard("Debug information", deviceInfo) - }, + Scaffold( + modifier = Modifier.statusBarsPadding(), + topBar = { + TopAppBar( + title = stringResource(R.string.pref_category_about), + navigateUp = navigateUp, ) - } + }, + ) { paddingValues -> + ScrollbarLazyColumn( + contentPadding = WindowInsets.navigationBars.asPaddingValues(), + ) { + item { + LogoHeader() + } - if (BuildConfig.INCLUDE_UPDATER) { item { PreferenceRow( - title = stringResource(R.string.check_for_updates), - onClick = checkVersion, + title = stringResource(R.string.version), + subtitle = when { + BuildConfig.DEBUG -> { + "Debug ${BuildConfig.COMMIT_SHA} (${getFormattedBuildTime()})" + } + // SY --> + syDebugVersion != "0" -> { + "Preview r$syDebugVersion (${BuildConfig.COMMIT_SHA}, ${getFormattedBuildTime()})" + } + // SY <-- + else -> { + "Stable ${BuildConfig.VERSION_NAME} (${getFormattedBuildTime()})" + } + }, + onClick = { + val deviceInfo = CrashLogUtil(context).getDebugInfo() + context.copyToClipboard("Debug information", deviceInfo) + }, ) } - } - if (!BuildConfig.DEBUG) { + + if (BuildConfig.INCLUDE_UPDATER) { + item { + PreferenceRow( + title = stringResource(R.string.check_for_updates), + onClick = checkVersion, + ) + } + } + if (!BuildConfig.DEBUG) { + item { + PreferenceRow( + title = stringResource(R.string.whats_new), + onClick = onClickWhatsNew, + ) + } + } + item { PreferenceRow( - title = stringResource(R.string.whats_new), - onClick = onClickWhatsNew, + title = stringResource(R.string.help_translate), + onClick = { uriHandler.openUri("https://tachiyomi.org/help/contribution/#translation") }, ) } - } - item { - PreferenceRow( - title = stringResource(R.string.help_translate), - onClick = { uriHandler.openUri("https://tachiyomi.org/help/contribution/#translation") }, - ) - } + item { + PreferenceRow( + title = stringResource(R.string.licenses), + onClick = onClickLicenses, + ) + } - item { - PreferenceRow( - title = stringResource(R.string.licenses), - onClick = onClickLicenses, - ) - } + item { + PreferenceRow( + title = stringResource(R.string.privacy_policy), + onClick = { uriHandler.openUri("https://tachiyomi.org/privacy") }, + ) + } - item { - PreferenceRow( - title = stringResource(R.string.privacy_policy), - onClick = { uriHandler.openUri("https://tachiyomi.org/privacy") }, - ) - } - - item { - Row( - modifier = Modifier.fillMaxWidth(), - horizontalArrangement = Arrangement.Center, - ) { - LinkIcon( - label = stringResource(R.string.website), - painter = rememberVectorPainter(Icons.Outlined.Public), - url = "https://tachiyomi.org", - ) - LinkIcon( - label = "Discord", - painter = painterResource(R.drawable.ic_discord_24dp), - url = "https://discord.gg/tachiyomi", - ) - LinkIcon( - label = "Twitter", - painter = painterResource(R.drawable.ic_twitter_24dp), - url = "https://twitter.com/tachiyomiorg", - ) - LinkIcon( - label = "Facebook", - painter = painterResource(R.drawable.ic_facebook_24dp), - url = "https://facebook.com/tachiyomiorg", - ) - LinkIcon( - label = "Reddit", - painter = painterResource(R.drawable.ic_reddit_24dp), - url = "https://www.reddit.com/r/Tachiyomi", - ) - LinkIcon( - label = "GitHub", - painter = painterResource(R.drawable.ic_github_24dp), - url = "https://github.com/jobobby04/tachiyomisy", - ) + item { + Row( + modifier = Modifier.fillMaxWidth(), + horizontalArrangement = Arrangement.Center, + ) { + LinkIcon( + label = stringResource(R.string.website), + painter = rememberVectorPainter(Icons.Outlined.Public), + url = "https://tachiyomi.org", + ) + LinkIcon( + label = "Discord", + painter = painterResource(R.drawable.ic_discord_24dp), + url = "https://discord.gg/tachiyomi", + ) + LinkIcon( + label = "Twitter", + painter = painterResource(R.drawable.ic_twitter_24dp), + url = "https://twitter.com/tachiyomiorg", + ) + LinkIcon( + label = "Facebook", + painter = painterResource(R.drawable.ic_facebook_24dp), + url = "https://facebook.com/tachiyomiorg", + ) + LinkIcon( + label = "Reddit", + painter = painterResource(R.drawable.ic_reddit_24dp), + url = "https://www.reddit.com/r/Tachiyomi", + ) + LinkIcon( + label = "GitHub", + painter = painterResource(R.drawable.ic_github_24dp), + url = "https://github.com/jobobby04/tachiyomisy", + ) + } } } } diff --git a/app/src/main/java/eu/kanade/presentation/webview/WebViewScreen.kt b/app/src/main/java/eu/kanade/presentation/webview/WebViewScreen.kt index 94b0ed0f3..b49c9372b 100644 --- a/app/src/main/java/eu/kanade/presentation/webview/WebViewScreen.kt +++ b/app/src/main/java/eu/kanade/presentation/webview/WebViewScreen.kt @@ -11,10 +11,7 @@ import androidx.compose.material.icons.Icons import androidx.compose.material.icons.filled.ArrowBack import androidx.compose.material.icons.filled.ArrowForward import androidx.compose.material.icons.filled.Close -import androidx.compose.material3.Icon -import androidx.compose.material3.IconButton import androidx.compose.material3.LinearProgressIndicator -import androidx.compose.material3.SmallTopAppBar import androidx.compose.runtime.Composable import androidx.compose.runtime.remember import androidx.compose.ui.Modifier @@ -28,7 +25,7 @@ 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.AppBarTitle +import eu.kanade.presentation.components.TopAppBar import eu.kanade.tachiyomi.BuildConfig import eu.kanade.tachiyomi.R import eu.kanade.tachiyomi.util.system.setDefaultSettings @@ -48,21 +45,11 @@ fun WebViewScreen( val navigator = rememberWebViewNavigator() Column { - SmallTopAppBar( - title = { - AppBarTitle( - title = state.pageTitle ?: initialTitle, - subtitle = state.content.getCurrentUrl(), - ) - }, - navigationIcon = { - IconButton(onClick = onUp) { - Icon( - imageVector = Icons.Default.Close, - contentDescription = stringResource(R.string.action_close), - ) - } - }, + TopAppBar( + title = state.pageTitle ?: initialTitle, + subtitle = state.content.getCurrentUrl(), + navigateUp = onUp, + navigationIcon = Icons.Default.Close, actions = { AppBarActions( listOf( diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/base/controller/ComposeController.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/base/controller/ComposeController.kt index d4f30a76f..bd705e5b4 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/base/controller/ComposeController.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/base/controller/ComposeController.kt @@ -73,6 +73,27 @@ abstract class BasicComposeController(bundle: Bundle? = null) : } } +/** + * Basic Compose controller without a presenter. + */ +abstract class BasicFullComposeController : + BaseController(), + FullComposeContentController { + + override fun createBinding(inflater: LayoutInflater) = + ComposeControllerBinding.inflate(inflater) + + override fun onViewCreated(view: View) { + super.onViewCreated(view) + + binding.root.apply { + setComposeContent { + ComposeContent() + } + } + } +} + abstract class SearchableComposeController

>(bundle: Bundle? = null) : SearchableNucleusController(bundle), ComposeContentController { diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/main/MainActivity.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/main/MainActivity.kt index fe7077b94..e066c4001 100755 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/main/MainActivity.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/main/MainActivity.kt @@ -44,7 +44,7 @@ import eu.kanade.tachiyomi.extension.api.ExtensionGithubApi import eu.kanade.tachiyomi.ui.base.activity.BaseActivity import eu.kanade.tachiyomi.ui.base.controller.DialogController import eu.kanade.tachiyomi.ui.base.controller.FabController -import eu.kanade.tachiyomi.ui.base.controller.FullComposeController +import eu.kanade.tachiyomi.ui.base.controller.FullComposeContentController import eu.kanade.tachiyomi.ui.base.controller.NoAppBarElevationController import eu.kanade.tachiyomi.ui.base.controller.RootController import eu.kanade.tachiyomi.ui.base.controller.TabbedController @@ -660,7 +660,7 @@ class MainActivity : BaseActivity() { binding.fabLayout.rootFab.hide() } - val isFullComposeController = internalTo is FullComposeController<*> + val isFullComposeController = internalTo is FullComposeContentController binding.appbar.isVisible = !isFullComposeController binding.controllerContainer.enableScrollingBehavior(!isFullComposeController) diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/more/AboutController.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/more/AboutController.kt index 81156e7c0..7c11d816a 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/more/AboutController.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/more/AboutController.kt @@ -1,15 +1,13 @@ package eu.kanade.tachiyomi.ui.more import androidx.compose.runtime.Composable -import androidx.compose.ui.input.nestedscroll.NestedScrollConnection import eu.kanade.presentation.more.about.AboutScreen import eu.kanade.tachiyomi.BuildConfig import eu.kanade.tachiyomi.R import eu.kanade.tachiyomi.data.preference.PreferencesHelper import eu.kanade.tachiyomi.data.updater.AppUpdateChecker import eu.kanade.tachiyomi.data.updater.AppUpdateResult -import eu.kanade.tachiyomi.ui.base.controller.BasicComposeController -import eu.kanade.tachiyomi.ui.base.controller.NoAppBarElevationController +import eu.kanade.tachiyomi.ui.base.controller.BasicFullComposeController import eu.kanade.tachiyomi.ui.base.controller.pushController import eu.kanade.tachiyomi.ui.main.WhatsNewDialogController import eu.kanade.tachiyomi.util.lang.launchNow @@ -23,17 +21,15 @@ import java.text.SimpleDateFormat import java.util.Locale import java.util.TimeZone -class AboutController : BasicComposeController(), NoAppBarElevationController { +class AboutController : BasicFullComposeController() { private val preferences: PreferencesHelper by injectLazy() private val updateChecker by lazy { AppUpdateChecker() } - override fun getTitle() = resources?.getString(R.string.pref_category_about) - @Composable - override fun ComposeContent(nestedScrollInterop: NestedScrollConnection) { + override fun ComposeContent() { AboutScreen( - nestedScrollInterop = nestedScrollInterop, + navigateUp = router::popCurrentController, checkVersion = this::checkVersion, getFormattedBuildTime = this::getFormattedBuildTime, onClickLicenses = { diff --git a/app/src/main/java/exh/pagepreview/components/PagePreviewScreen.kt b/app/src/main/java/exh/pagepreview/components/PagePreviewScreen.kt index c48598e1c..20fe1c7f5 100644 --- a/app/src/main/java/exh/pagepreview/components/PagePreviewScreen.kt +++ b/app/src/main/java/exh/pagepreview/components/PagePreviewScreen.kt @@ -8,18 +8,13 @@ import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.statusBarsPadding import androidx.compose.material.icons.Icons -import androidx.compose.material.icons.filled.ArrowBack import androidx.compose.material.icons.filled.UTurnRight import androidx.compose.material3.AlertDialog import androidx.compose.material3.Icon import androidx.compose.material3.IconButton import androidx.compose.material3.Slider -import androidx.compose.material3.SmallTopAppBar import androidx.compose.material3.Text import androidx.compose.material3.TextButton -import androidx.compose.material3.TopAppBarDefaults -import androidx.compose.material3.TopAppBarScrollBehavior -import androidx.compose.material3.rememberTopAppBarScrollState import androidx.compose.runtime.Composable import androidx.compose.runtime.SideEffect import androidx.compose.runtime.derivedStateOf @@ -30,7 +25,6 @@ import androidx.compose.runtime.rememberCoroutineScope import androidx.compose.runtime.setValue import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier -import androidx.compose.ui.input.nestedscroll.nestedScroll import androidx.compose.ui.res.stringResource import androidx.compose.ui.unit.dp import eu.kanade.presentation.components.AroundLayout @@ -38,6 +32,7 @@ import eu.kanade.presentation.components.EmptyScreen import eu.kanade.presentation.components.LoadingScreen import eu.kanade.presentation.components.Scaffold import eu.kanade.presentation.components.ScrollbarLazyColumn +import eu.kanade.presentation.components.TopAppBar import eu.kanade.presentation.manga.components.PagePreview import eu.kanade.presentation.util.plus import eu.kanade.presentation.util.topPaddingValues @@ -57,18 +52,13 @@ fun PagePreviewScreen( onDismissPageDialog: () -> Unit, navigateUp: () -> Unit, ) { - val topAppBarScrollState = rememberTopAppBarScrollState() - val topAppBarScrollBehavior = TopAppBarDefaults.enterAlwaysScrollBehavior(topAppBarScrollState) - Scaffold( modifier = Modifier - .statusBarsPadding() - .nestedScroll(topAppBarScrollBehavior.nestedScrollConnection), + .statusBarsPadding(), topBar = { PagePreviewTopAppBar( - topAppBarScrollBehavior = topAppBarScrollBehavior, navigateUp = navigateUp, - title = stringResource(id = R.string.page_previews), + title = stringResource(R.string.page_previews), onOpenPageDialog = onOpenPageDialog, showOpenPageDialog = state is PagePreviewState.Success && (state.pageCount != null && state.pageCount > 1 /* TODO support unknown pageCount || state.hasNextPage*/), @@ -176,25 +166,13 @@ fun PagePreviewPageDialog( @Composable fun PagePreviewTopAppBar( - topAppBarScrollBehavior: TopAppBarScrollBehavior, navigateUp: () -> Unit, title: String, onOpenPageDialog: () -> Unit, showOpenPageDialog: Boolean, ) { - SmallTopAppBar( - navigationIcon = { - IconButton(onClick = navigateUp) { - Icon( - imageVector = Icons.Default.ArrowBack, - contentDescription = stringResource(R.string.abc_action_bar_up_description), - ) - } - }, - title = { - Text(text = title) - }, - scrollBehavior = topAppBarScrollBehavior, + TopAppBar( + title = title, actions = { if (showOpenPageDialog) { IconButton(onClick = onOpenPageDialog) { @@ -205,5 +183,6 @@ fun PagePreviewTopAppBar( } } }, + navigateUp = navigateUp, ) } diff --git a/app/src/main/res/layout/main_activity.xml b/app/src/main/res/layout/main_activity.xml index 98e63ad49..9a2a6ed03 100755 --- a/app/src/main/res/layout/main_activity.xml +++ b/app/src/main/res/layout/main_activity.xml @@ -23,8 +23,7 @@ android:id="@+id/toolbar" android:layout_width="match_parent" android:layout_height="?attr/actionBarSize" - android:theme="?attr/actionBarTheme" - app:layout_scrollFlags="scroll|enterAlways|snap" /> + android:theme="?attr/actionBarTheme" />