HapeLee 3 месяцев назад
Родитель
Сommit
a0d792b508

+ 6 - 1
app/src/main/java/io/legado/app/ui/book/read/ReadBookRouteScreen.kt

@@ -20,6 +20,7 @@ import androidx.compose.runtime.getValue
 import androidx.compose.runtime.key
 import androidx.compose.runtime.mutableStateOf
 import androidx.compose.runtime.remember
+import androidx.compose.runtime.saveable.rememberSaveable
 import androidx.compose.runtime.setValue
 import androidx.compose.ui.Modifier
 import androidx.compose.ui.platform.LocalContext
@@ -455,7 +456,7 @@ fun ReadBookRouteScreen(
 
     // ── View layer + Compose UI ───────────────────────────────────────
 
-    var showSelectMenuConfigSheet by remember { mutableStateOf(false) }
+    var showSelectMenuConfigSheet by rememberSaveable { mutableStateOf(false) }
 
     Box(Modifier.fillMaxSize()) {
         key(controller) {
@@ -485,6 +486,10 @@ fun ReadBookRouteScreen(
                 state = state,
                 onIntent = viewModel::onIntent,
                 onBack = { controller.closeReadBook() },
+                onOpenTextSelectMenuConfig = {
+                    viewModel.onIntent(ReadBookIntent.DismissSheet)
+                    showSelectMenuConfigSheet = true
+                },
             )
             TextActionSelectionMenu(
                 menuState = textMenuState,

+ 2 - 0
app/src/main/java/io/legado/app/ui/book/read/ReadBookScreen.kt

@@ -59,6 +59,7 @@ fun ReadBookScreen(
     state: ReadBookUiState,
     onIntent: (ReadBookIntent) -> Unit,
     onBack: () -> Unit,
+    onOpenTextSelectMenuConfig: () -> Unit,
 ) {
     BackHandler {
         when {
@@ -282,6 +283,7 @@ fun ReadBookScreen(
             onIntent(ReadBookIntent.DismissSheet)
             onIntent(ReadBookIntent.ShowSheet(ReadBookSheet.PageKeyConfig))
         },
+        onOpenTextSelectMenuConfig = onOpenTextSelectMenuConfig,
     )
     ReadAloudConfigSheet(
         show = state.activeSheet is ReadBookSheet.ReadAloudConfig,

+ 7 - 0
app/src/main/java/io/legado/app/ui/book/read/sheet/MoreConfigSheet.kt

@@ -31,6 +31,7 @@ fun MoreConfigSheet(
     onIntent: (ReadBookIntent) -> Unit,
     onOpenClickRegionalConfig: () -> Unit,
     onOpenPageKeyConfig: () -> Unit,
+    onOpenTextSelectMenuConfig: () -> Unit,
 ) {
     val readSettingsRepository: ReadSettingsRepository = koinInject()
     val preferences by readSettingsRepository.preferences.collectAsStateWithLifecycle(
@@ -144,6 +145,7 @@ fun MoreConfigSheet(
                 },
                 onOpenClickRegionalConfig = onOpenClickRegionalConfig,
                 onOpenPageKeyConfig = onOpenPageKeyConfig,
+                onOpenTextSelectMenuConfig = onOpenTextSelectMenuConfig,
                 onDisableReturnKeyChange = {
                     onIntent(ReadBookIntent.UpdateConfig(ConfigUpdate.DisableReturnKey(it)))
                 },
@@ -305,6 +307,7 @@ private fun OtherSettings(
     onOpenClickRegionalConfig: () -> Unit,
     onDisableReturnKeyChange: (Boolean) -> Unit,
     onOpenPageKeyConfig: () -> Unit,
+    onOpenTextSelectMenuConfig: () -> Unit,
     onShowReadTitleAdditionChange: (Boolean) -> Unit,
     onShowMenuIconChange: (Boolean) -> Unit,
 ) {
@@ -373,6 +376,10 @@ private fun OtherSettings(
         title = stringResource(R.string.custom_page_key),
         onClick = onOpenPageKeyConfig,
     )
+    TinyClickableSettingItem(
+        title = stringResource(R.string.edit_select_menu),
+        onClick = onOpenTextSelectMenuConfig,
+    )
     TinySwitchSettingItem(
         title = stringResource(R.string.show_read_title_addition),
         checked = preferences.showReadTitleAddition,