Merge fix/one-side-panel-at-a-time
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
commit
bcdad2e699
@ -97,6 +97,14 @@ fun PoemScreen(
|
|||||||
// finds, so the couplet's own actions live at its foot rather than behind a tap between words.
|
// finds, so the couplet's own actions live at its foot rather than behind a tap between words.
|
||||||
var tapped by remember { mutableStateOf<WordTap?>(null) }
|
var tapped by remember { mutableStateOf<WordTap?>(null) }
|
||||||
|
|
||||||
|
// One side panel at a time. The dictionary and the reading settings both want the left of the
|
||||||
|
// screen, and opening the second put two panels there at once — or, where there was no longer
|
||||||
|
// room for two, left the dictionary as a sheet in the middle of the page while the settings
|
||||||
|
// sat beside it. Either way the reader is asked to look in two places. The settings replace
|
||||||
|
// the dictionary instead; closing them leaves the poem, which is where the reader was.
|
||||||
|
val sidePanelOpen = LocalSidePanelOpen.current
|
||||||
|
LaunchedEffect(sidePanelOpen) { if (sidePanelOpen) tapped = null }
|
||||||
|
|
||||||
Load(
|
Load(
|
||||||
key = fullUrl,
|
key = fullUrl,
|
||||||
block = { Ganjoor.poem(fullUrl) },
|
block = { Ganjoor.poem(fullUrl) },
|
||||||
|
|||||||
@ -48,6 +48,15 @@ import com.ganjoor.android.data.LocalAssistant
|
|||||||
import com.ganjoor.android.data.Pronunciation
|
import com.ganjoor.android.data.Pronunciation
|
||||||
import com.ganjoor.android.ui.theme.readingStyle
|
import com.ganjoor.android.ui.theme.readingStyle
|
||||||
|
|
||||||
|
/**
|
||||||
|
* How wide the dictionary sits beside the poem.
|
||||||
|
*
|
||||||
|
* Narrower than the reading settings, deliberately: the settings fold the columns away and take
|
||||||
|
* the room that frees, while the dictionary is read *against* the line it came from, so the verse
|
||||||
|
* keeps the width instead. A definition is short; a hemistich is not.
|
||||||
|
*/
|
||||||
|
val DictionaryPanelWidth = 216.dp
|
||||||
|
|
||||||
/** English prose inside an otherwise right-to-left sheet. */
|
/** English prose inside an otherwise right-to-left sheet. */
|
||||||
@Composable
|
@Composable
|
||||||
private fun LeftToRight(content: @Composable () -> Unit) {
|
private fun LeftToRight(content: @Composable () -> Unit) {
|
||||||
@ -102,7 +111,7 @@ fun WordPanel(word: String, onDismiss: () -> Unit, passage: Bookmark? = null) {
|
|||||||
BackHandler(onBack = onDismiss)
|
BackHandler(onBack = onDismiss)
|
||||||
Surface(
|
Surface(
|
||||||
color = MaterialTheme.colorScheme.surfaceContainerLow,
|
color = MaterialTheme.colorScheme.surfaceContainerLow,
|
||||||
modifier = Modifier.width(360.dp).fillMaxHeight(),
|
modifier = Modifier.width(DictionaryPanelWidth).fillMaxHeight(),
|
||||||
) {
|
) {
|
||||||
Column(Modifier.statusBarsPadding()) {
|
Column(Modifier.statusBarsPadding()) {
|
||||||
Row(
|
Row(
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user