Просмотр исходного кода

MoreScreen: Remove title (#8158)

* MoreScreen: Remove title

Also removes the state banners as it's redundant

* Add back banners
Ivan Iskandar 2 лет назад
Родитель
Сommit
cf6407c4d4

+ 10 - 7
app/src/main/java/eu/kanade/presentation/components/Banners.kt

@@ -1,7 +1,7 @@
 package eu.kanade.presentation.components
 
 import androidx.compose.foundation.background
-import androidx.compose.foundation.layout.ColumnScope
+import androidx.compose.foundation.layout.Column
 import androidx.compose.foundation.layout.fillMaxWidth
 import androidx.compose.foundation.layout.padding
 import androidx.compose.material3.MaterialTheme
@@ -14,15 +14,18 @@ import androidx.compose.ui.unit.dp
 import eu.kanade.tachiyomi.R
 
 @Composable
-fun ColumnScope.AppStateBanners(
+fun AppStateBanners(
     downloadedOnlyMode: Boolean,
     incognitoMode: Boolean,
+    modifier: Modifier = Modifier,
 ) {
-    if (downloadedOnlyMode) {
-        DownloadedOnlyModeBanner()
-    }
-    if (incognitoMode) {
-        IncognitoModeBanner()
+    Column(modifier = modifier) {
+        if (downloadedOnlyMode) {
+            DownloadedOnlyModeBanner()
+        }
+        if (incognitoMode) {
+            IncognitoModeBanner()
+        }
     }
 }
 

+ 13 - 14
app/src/main/java/eu/kanade/presentation/more/LogoHeader.kt

@@ -6,8 +6,8 @@ import androidx.compose.foundation.layout.padding
 import androidx.compose.foundation.layout.size
 import androidx.compose.material3.Icon
 import androidx.compose.material3.MaterialTheme
-import androidx.compose.material3.Surface
 import androidx.compose.runtime.Composable
+import androidx.compose.ui.Alignment
 import androidx.compose.ui.Modifier
 import androidx.compose.ui.res.painterResource
 import androidx.compose.ui.unit.dp
@@ -16,19 +16,18 @@ import eu.kanade.tachiyomi.R
 
 @Composable
 fun LogoHeader() {
-    Column {
-        Surface(
-            modifier = Modifier.fillMaxWidth(),
-        ) {
-            Icon(
-                painter = painterResource(R.drawable.ic_tachi),
-                contentDescription = null,
-                tint = MaterialTheme.colorScheme.onSurface,
-                modifier = Modifier
-                    .padding(32.dp)
-                    .size(56.dp),
-            )
-        }
+    Column(
+        modifier = Modifier.fillMaxWidth(),
+        horizontalAlignment = Alignment.CenterHorizontally,
+    ) {
+        Icon(
+            painter = painterResource(R.drawable.ic_tachi),
+            contentDescription = null,
+            tint = MaterialTheme.colorScheme.onSurface,
+            modifier = Modifier
+                .padding(vertical = 56.dp)
+                .size(64.dp),
+        )
 
         Divider()
     }

+ 93 - 96
app/src/main/java/eu/kanade/presentation/more/MoreScreen.kt

@@ -1,5 +1,6 @@
 package eu.kanade.presentation.more
 
+import androidx.compose.foundation.layout.statusBarsPadding
 import androidx.compose.material.icons.Icons
 import androidx.compose.material.icons.outlined.CloudOff
 import androidx.compose.material.icons.outlined.GetApp
@@ -11,18 +12,17 @@ import androidx.compose.material.icons.outlined.SettingsBackupRestore
 import androidx.compose.runtime.Composable
 import androidx.compose.runtime.collectAsState
 import androidx.compose.runtime.getValue
+import androidx.compose.ui.Modifier
 import androidx.compose.ui.graphics.vector.rememberVectorPainter
 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.AppStateBanners
 import eu.kanade.presentation.components.Divider
 import eu.kanade.presentation.components.PreferenceRow
-import eu.kanade.presentation.components.Scaffold
 import eu.kanade.presentation.components.ScrollbarLazyColumn
 import eu.kanade.presentation.components.SwitchPreference
 import eu.kanade.presentation.util.bottomNavPaddingValues
-import eu.kanade.presentation.util.plus
 import eu.kanade.presentation.util.quantityStringResource
 import eu.kanade.tachiyomi.R
 import eu.kanade.tachiyomi.ui.more.DownloadQueueState
@@ -41,108 +41,105 @@ fun MoreScreen(
     val uriHandler = LocalUriHandler.current
     val downloadQueueState by presenter.downloadQueueState.collectAsState()
 
-    Scaffold(
-        topBar = { scrollBehavior ->
-            AppBar(
-                title = stringResource(R.string.label_more),
+    ScrollbarLazyColumn(
+        modifier = Modifier.statusBarsPadding(),
+        contentPadding = bottomNavPaddingValues,
+    ) {
+        item {
+            LogoHeader()
+        }
+
+        item {
+            AppStateBanners(
                 downloadedOnlyMode = presenter.downloadedOnly.value,
                 incognitoMode = presenter.incognitoMode.value,
-                scrollBehavior = scrollBehavior,
             )
-        },
-    ) { contentPadding ->
-        ScrollbarLazyColumn(
-            contentPadding = contentPadding + bottomNavPaddingValues,
-        ) {
-            item {
-                LogoHeader()
-            }
+        }
 
-            item {
-                SwitchPreference(
-                    preference = presenter.downloadedOnly,
-                    title = stringResource(R.string.label_downloaded_only),
-                    subtitle = stringResource(R.string.downloaded_only_summary),
-                    painter = rememberVectorPainter(Icons.Outlined.CloudOff),
-                )
-            }
-            item {
-                SwitchPreference(
-                    preference = presenter.incognitoMode,
-                    title = stringResource(R.string.pref_incognito_mode),
-                    subtitle = stringResource(R.string.pref_incognito_mode_summary),
-                    painter = painterResource(R.drawable.ic_glasses_24dp),
-                )
-            }
+        item {
+            SwitchPreference(
+                preference = presenter.downloadedOnly,
+                title = stringResource(R.string.label_downloaded_only),
+                subtitle = stringResource(R.string.downloaded_only_summary),
+                painter = rememberVectorPainter(Icons.Outlined.CloudOff),
+            )
+        }
+        item {
+            SwitchPreference(
+                preference = presenter.incognitoMode,
+                title = stringResource(R.string.pref_incognito_mode),
+                subtitle = stringResource(R.string.pref_incognito_mode_summary),
+                painter = painterResource(R.drawable.ic_glasses_24dp),
+            )
+        }
 
-            item { Divider() }
+        item { Divider() }
 
-            item {
-                PreferenceRow(
-                    title = stringResource(R.string.label_download_queue),
-                    subtitle = when (downloadQueueState) {
-                        DownloadQueueState.Stopped -> null
-                        is DownloadQueueState.Paused -> {
-                            val pending = (downloadQueueState as DownloadQueueState.Paused).pending
-                            if (pending == 0) {
-                                stringResource(R.string.paused)
-                            } else {
-                                "${stringResource(R.string.paused)} • ${
-                                quantityStringResource(
-                                    R.plurals.download_queue_summary,
-                                    pending,
-                                    pending,
-                                )
-                                }"
-                            }
-                        }
-                        is DownloadQueueState.Downloading -> {
-                            val pending = (downloadQueueState as DownloadQueueState.Downloading).pending
-                            quantityStringResource(R.plurals.download_queue_summary, pending, pending)
+        item {
+            PreferenceRow(
+                title = stringResource(R.string.label_download_queue),
+                subtitle = when (downloadQueueState) {
+                    DownloadQueueState.Stopped -> null
+                    is DownloadQueueState.Paused -> {
+                        val pending = (downloadQueueState as DownloadQueueState.Paused).pending
+                        if (pending == 0) {
+                            stringResource(R.string.paused)
+                        } else {
+                            "${stringResource(R.string.paused)} • ${
+                            quantityStringResource(
+                                R.plurals.download_queue_summary,
+                                pending,
+                                pending,
+                            )
+                            }"
                         }
-                    },
-                    painter = rememberVectorPainter(Icons.Outlined.GetApp),
-                    onClick = onClickDownloadQueue,
-                )
-            }
-            item {
-                PreferenceRow(
-                    title = stringResource(R.string.categories),
-                    painter = rememberVectorPainter(Icons.Outlined.Label),
-                    onClick = onClickCategories,
-                )
-            }
-            item {
-                PreferenceRow(
-                    title = stringResource(R.string.label_backup),
-                    painter = rememberVectorPainter(Icons.Outlined.SettingsBackupRestore),
-                    onClick = onClickBackupAndRestore,
-                )
-            }
+                    }
+                    is DownloadQueueState.Downloading -> {
+                        val pending = (downloadQueueState as DownloadQueueState.Downloading).pending
+                        quantityStringResource(R.plurals.download_queue_summary, pending, pending)
+                    }
+                },
+                painter = rememberVectorPainter(Icons.Outlined.GetApp),
+                onClick = onClickDownloadQueue,
+            )
+        }
+        item {
+            PreferenceRow(
+                title = stringResource(R.string.categories),
+                painter = rememberVectorPainter(Icons.Outlined.Label),
+                onClick = onClickCategories,
+            )
+        }
+        item {
+            PreferenceRow(
+                title = stringResource(R.string.label_backup),
+                painter = rememberVectorPainter(Icons.Outlined.SettingsBackupRestore),
+                onClick = onClickBackupAndRestore,
+            )
+        }
 
-            item { Divider() }
+        item { Divider() }
 
-            item {
-                PreferenceRow(
-                    title = stringResource(R.string.label_settings),
-                    painter = rememberVectorPainter(Icons.Outlined.Settings),
-                    onClick = onClickSettings,
-                )
-            }
-            item {
-                PreferenceRow(
-                    title = stringResource(R.string.pref_category_about),
-                    painter = rememberVectorPainter(Icons.Outlined.Info),
-                    onClick = onClickAbout,
-                )
-            }
-            item {
-                PreferenceRow(
-                    title = stringResource(R.string.label_help),
-                    painter = rememberVectorPainter(Icons.Outlined.HelpOutline),
-                    onClick = { uriHandler.openUri(MoreController.URL_HELP) },
-                )
-            }
+        item {
+            PreferenceRow(
+                title = stringResource(R.string.label_settings),
+                painter = rememberVectorPainter(Icons.Outlined.Settings),
+                onClick = onClickSettings,
+            )
+        }
+        item {
+            PreferenceRow(
+                title = stringResource(R.string.pref_category_about),
+                painter = rememberVectorPainter(Icons.Outlined.Info),
+                onClick = onClickAbout,
+            )
+        }
+        item {
+            PreferenceRow(
+                title = stringResource(R.string.label_help),
+                painter = rememberVectorPainter(Icons.Outlined.HelpOutline),
+                onClick = { uriHandler.openUri(MoreController.URL_HELP) },
+            )
         }
     }
 }