Skip to content

Commit 079fa14

Browse files
committed
make some dialogs scrollable
1 parent a525103 commit 079fa14

4 files changed

Lines changed: 21 additions & 7 deletions

File tree

app/src/main/java/helium314/keyboard/settings/dialogs/DictionaryDialog.kt

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,6 @@ import androidx.compose.foundation.layout.Column
1010
import androidx.compose.foundation.layout.Row
1111
import androidx.compose.foundation.layout.fillMaxWidth
1212
import androidx.compose.foundation.layout.padding
13-
import androidx.compose.foundation.rememberScrollState
14-
import androidx.compose.foundation.verticalScroll
1513
import androidx.compose.material3.HorizontalDivider
1614
import androidx.compose.material3.LocalTextStyle
1715
import androidx.compose.material3.MaterialTheme
@@ -62,8 +60,7 @@ fun DictionaryDialog(
6260
cancelButtonText = stringResource(R.string.dialog_close),
6361
title = { Text(locale.localizedDisplayName(LocalResources.current)) },
6462
content = {
65-
val state = rememberScrollState()
66-
Column(Modifier.verticalScroll(state)) {
63+
Column {
6764
if (hasInternal) {
6865
val color = if (mainDict == null) MaterialTheme.typography.titleSmall.color
6966
else MaterialTheme.colorScheme.onSurface.copy(alpha = 0.38f) // for disabled look
@@ -97,6 +94,7 @@ fun DictionaryDialog(
9794
}
9895
}
9996
},
97+
scrollContent = true,
10098
neutralButtonText = stringResource(R.string.add_new_dictionary_title),
10199
onNeutral = {
102100
val intent = Intent(Intent.ACTION_OPEN_DOCUMENT)

app/src/main/java/helium314/keyboard/settings/dialogs/InfoDialog.kt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ fun InfoDialog(
2525
ThreeButtonAlertDialog(
2626
onDismissRequest = onDismissRequest,
2727
content = { Text(message) },
28+
scrollContent = true,
2829
cancelButtonText = stringResource(android.R.string.ok),
2930
onConfirmed = { },
3031
confirmButtonText = null

app/src/main/java/helium314/keyboard/settings/dialogs/NewDictionaryDialog.kt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -116,7 +116,8 @@ fun NewDictionaryDialog(
116116
)
117117
}
118118
}
119-
}
119+
},
120+
scrollContent = true,
120121
)
121122
}
122123
}

app/src/main/java/helium314/keyboard/settings/dialogs/ThreeButtonAlertDialog.kt

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,8 @@ import androidx.compose.foundation.layout.Row
1212
import androidx.compose.foundation.layout.Spacer
1313
import androidx.compose.foundation.layout.padding
1414
import androidx.compose.foundation.layout.widthIn
15+
import androidx.compose.foundation.rememberScrollState
16+
import androidx.compose.foundation.verticalScroll
1517
import androidx.compose.material3.LocalTextStyle
1618
import androidx.compose.material3.MaterialTheme
1719
import androidx.compose.material3.Surface
@@ -36,6 +38,7 @@ fun ThreeButtonAlertDialog(
3638
modifier: Modifier = Modifier,
3739
title: @Composable (() -> Unit)? = null,
3840
content: @Composable (() -> Unit)? = null,
41+
scrollContent: Boolean = false,
3942
onNeutral: () -> Unit = { },
4043
checkOk: () -> Boolean = { true },
4144
confirmButtonText: String? = stringResource(android.R.string.ok),
@@ -72,8 +75,19 @@ fun ThreeButtonAlertDialog(
7275
}
7376
content?.let {
7477
CompositionLocalProvider(LocalTextStyle provides MaterialTheme.typography.bodyMedium) {
75-
Box(Modifier.weight(weight = 1f, fill = false).padding(bottom = if (reducePadding) 2.dp else 8.dp)) {
76-
content()
78+
if (scrollContent) {
79+
val scrollState = rememberScrollState()
80+
Box(Modifier
81+
.weight(weight = 1f, fill = false)
82+
.padding(bottom = if (reducePadding) 2.dp else 8.dp)
83+
.verticalScroll(scrollState)
84+
) {
85+
content()
86+
}
87+
} else {
88+
Box(Modifier.weight(weight = 1f, fill = false).padding(bottom = if (reducePadding) 2.dp else 8.dp)) {
89+
content()
90+
}
7791
}
7892
}
7993
}

0 commit comments

Comments
 (0)