mirror of
https://github.com/Helium314/HeliBoard.git
synced 2025-04-26 17:47:27 +00:00
Apply padding on all sides on settings screens (#1496)
This commit is contained in:
parent
49ed863a7e
commit
69bcca0a22
5 changed files with 32 additions and 30 deletions
|
@ -6,14 +6,13 @@ import androidx.compose.animation.AnimatedVisibility
|
||||||
import androidx.compose.foundation.layout.Box
|
import androidx.compose.foundation.layout.Box
|
||||||
import androidx.compose.foundation.layout.Column
|
import androidx.compose.foundation.layout.Column
|
||||||
import androidx.compose.foundation.layout.ColumnScope
|
import androidx.compose.foundation.layout.ColumnScope
|
||||||
import androidx.compose.foundation.layout.PaddingValues
|
|
||||||
import androidx.compose.foundation.layout.WindowInsets
|
import androidx.compose.foundation.layout.WindowInsets
|
||||||
|
import androidx.compose.foundation.layout.WindowInsetsSides
|
||||||
import androidx.compose.foundation.layout.fillMaxSize
|
import androidx.compose.foundation.layout.fillMaxSize
|
||||||
import androidx.compose.foundation.layout.fillMaxWidth
|
import androidx.compose.foundation.layout.fillMaxWidth
|
||||||
import androidx.compose.foundation.layout.ime
|
import androidx.compose.foundation.layout.only
|
||||||
import androidx.compose.foundation.layout.padding
|
import androidx.compose.foundation.layout.padding
|
||||||
import androidx.compose.foundation.layout.systemBars
|
import androidx.compose.foundation.layout.safeDrawing
|
||||||
import androidx.compose.foundation.layout.union
|
|
||||||
import androidx.compose.foundation.lazy.LazyColumn
|
import androidx.compose.foundation.lazy.LazyColumn
|
||||||
import androidx.compose.foundation.lazy.items
|
import androidx.compose.foundation.lazy.items
|
||||||
import androidx.compose.foundation.rememberScrollState
|
import androidx.compose.foundation.rememberScrollState
|
||||||
|
@ -64,10 +63,12 @@ fun SearchSettingsScreen(
|
||||||
content = {
|
content = {
|
||||||
if (content != null) content()
|
if (content != null) content()
|
||||||
else {
|
else {
|
||||||
Scaffold(contentWindowInsets = WindowInsets.systemBars.union(WindowInsets.ime)) { innerPadding ->
|
Scaffold(
|
||||||
|
contentWindowInsets = WindowInsets.safeDrawing
|
||||||
|
.only(WindowInsetsSides.Horizontal + WindowInsetsSides.Bottom)
|
||||||
|
) { innerPadding ->
|
||||||
Column(
|
Column(
|
||||||
Modifier.verticalScroll(rememberScrollState())
|
Modifier.verticalScroll(rememberScrollState()).then(Modifier.padding(innerPadding))
|
||||||
.then(Modifier.padding(bottom = innerPadding.calculateBottomPadding()))
|
|
||||||
) {
|
) {
|
||||||
settings.forEach {
|
settings.forEach {
|
||||||
if (it is Int) {
|
if (it is Int) {
|
||||||
|
@ -206,8 +207,11 @@ fun <T: Any?> SearchScreen(
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
val items = filteredItems(searchText.text)
|
val items = filteredItems(searchText.text)
|
||||||
Scaffold(contentWindowInsets = WindowInsets.systemBars.union(WindowInsets.ime)) { innerPadding ->
|
Scaffold(
|
||||||
LazyColumn(contentPadding = PaddingValues.Absolute(bottom = innerPadding.calculateBottomPadding())) {
|
contentWindowInsets = WindowInsets.safeDrawing
|
||||||
|
.only(WindowInsetsSides.Horizontal + WindowInsetsSides.Bottom)
|
||||||
|
) { innerPadding ->
|
||||||
|
LazyColumn(contentPadding = innerPadding) {
|
||||||
items(items) {
|
items(items) {
|
||||||
itemContent(it)
|
itemContent(it)
|
||||||
}
|
}
|
||||||
|
|
|
@ -8,17 +8,14 @@ import android.net.Uri
|
||||||
import android.os.Build
|
import android.os.Build
|
||||||
import android.os.Bundle
|
import android.os.Bundle
|
||||||
import android.view.View
|
import android.view.View
|
||||||
import android.view.WindowInsets.Type
|
|
||||||
import android.view.inputmethod.EditorInfo
|
import android.view.inputmethod.EditorInfo
|
||||||
import android.view.inputmethod.InputMethodManager
|
import android.view.inputmethod.InputMethodManager
|
||||||
import androidx.activity.ComponentActivity
|
import androidx.activity.ComponentActivity
|
||||||
import androidx.activity.enableEdgeToEdge
|
import androidx.activity.enableEdgeToEdge
|
||||||
import androidx.compose.foundation.layout.Column
|
import androidx.compose.foundation.layout.Column
|
||||||
import androidx.compose.foundation.layout.WindowInsets
|
import androidx.compose.foundation.layout.WindowInsets
|
||||||
import androidx.compose.foundation.layout.ime
|
|
||||||
import androidx.compose.foundation.layout.padding
|
import androidx.compose.foundation.layout.padding
|
||||||
import androidx.compose.foundation.layout.systemBars
|
import androidx.compose.foundation.layout.safeDrawing
|
||||||
import androidx.compose.foundation.layout.union
|
|
||||||
import androidx.compose.material3.Scaffold
|
import androidx.compose.material3.Scaffold
|
||||||
import androidx.compose.material3.Surface
|
import androidx.compose.material3.Surface
|
||||||
import androidx.compose.material3.Text
|
import androidx.compose.material3.Text
|
||||||
|
@ -29,7 +26,6 @@ import androidx.compose.runtime.saveable.rememberSaveable
|
||||||
import androidx.compose.runtime.setValue
|
import androidx.compose.runtime.setValue
|
||||||
import androidx.compose.ui.Modifier
|
import androidx.compose.ui.Modifier
|
||||||
import androidx.compose.ui.platform.ComposeView
|
import androidx.compose.ui.platform.ComposeView
|
||||||
import androidx.core.view.ViewCompat
|
|
||||||
import helium314.keyboard.compat.locale
|
import helium314.keyboard.compat.locale
|
||||||
import helium314.keyboard.keyboard.KeyboardSwitcher
|
import helium314.keyboard.keyboard.KeyboardSwitcher
|
||||||
import helium314.keyboard.latin.BuildConfig
|
import helium314.keyboard.latin.BuildConfig
|
||||||
|
@ -96,7 +92,7 @@ class SettingsActivity : ComponentActivity(), SharedPreferences.OnSharedPreferen
|
||||||
|| !UncachedInputMethodManagerUtils.isThisImeEnabled(this, imm)
|
|| !UncachedInputMethodManagerUtils.isThisImeEnabled(this, imm)
|
||||||
) }
|
) }
|
||||||
if (spellchecker)
|
if (spellchecker)
|
||||||
Scaffold(contentWindowInsets = WindowInsets.systemBars.union(WindowInsets.ime)) { innerPadding ->
|
Scaffold(contentWindowInsets = WindowInsets.safeDrawing) { innerPadding ->
|
||||||
Column(Modifier.padding(innerPadding)) { // lazy way of implementing spell checker settings
|
Column(Modifier.padding(innerPadding)) { // lazy way of implementing spell checker settings
|
||||||
settingsContainer[Settings.PREF_USE_CONTACTS]!!.Preference()
|
settingsContainer[Settings.PREF_USE_CONTACTS]!!.Preference()
|
||||||
settingsContainer[Settings.PREF_BLOCK_POTENTIALLY_OFFENSIVE]!!.Preference()
|
settingsContainer[Settings.PREF_BLOCK_POTENTIALLY_OFFENSIVE]!!.Preference()
|
||||||
|
|
|
@ -3,10 +3,10 @@ package helium314.keyboard.settings.screens
|
||||||
|
|
||||||
import androidx.compose.foundation.layout.Column
|
import androidx.compose.foundation.layout.Column
|
||||||
import androidx.compose.foundation.layout.WindowInsets
|
import androidx.compose.foundation.layout.WindowInsets
|
||||||
import androidx.compose.foundation.layout.ime
|
import androidx.compose.foundation.layout.WindowInsetsSides
|
||||||
|
import androidx.compose.foundation.layout.only
|
||||||
import androidx.compose.foundation.layout.padding
|
import androidx.compose.foundation.layout.padding
|
||||||
import androidx.compose.foundation.layout.systemBars
|
import androidx.compose.foundation.layout.safeDrawing
|
||||||
import androidx.compose.foundation.layout.union
|
|
||||||
import androidx.compose.foundation.rememberScrollState
|
import androidx.compose.foundation.rememberScrollState
|
||||||
import androidx.compose.foundation.verticalScroll
|
import androidx.compose.foundation.verticalScroll
|
||||||
import androidx.compose.material3.Scaffold
|
import androidx.compose.material3.Scaffold
|
||||||
|
@ -21,10 +21,10 @@ import helium314.keyboard.latin.utils.JniUtils
|
||||||
import helium314.keyboard.latin.utils.SubtypeSettings
|
import helium314.keyboard.latin.utils.SubtypeSettings
|
||||||
import helium314.keyboard.latin.utils.displayName
|
import helium314.keyboard.latin.utils.displayName
|
||||||
import helium314.keyboard.settings.NextScreenIcon
|
import helium314.keyboard.settings.NextScreenIcon
|
||||||
import helium314.keyboard.settings.preferences.Preference
|
|
||||||
import helium314.keyboard.settings.SearchSettingsScreen
|
import helium314.keyboard.settings.SearchSettingsScreen
|
||||||
import helium314.keyboard.settings.Theme
|
import helium314.keyboard.settings.Theme
|
||||||
import helium314.keyboard.settings.initPreview
|
import helium314.keyboard.settings.initPreview
|
||||||
|
import helium314.keyboard.settings.preferences.Preference
|
||||||
import helium314.keyboard.settings.previewDark
|
import helium314.keyboard.settings.previewDark
|
||||||
|
|
||||||
@Composable
|
@Composable
|
||||||
|
@ -48,10 +48,11 @@ fun MainSettingsScreen(
|
||||||
settings = emptyList(),
|
settings = emptyList(),
|
||||||
) {
|
) {
|
||||||
val enabledSubtypes = SubtypeSettings.getEnabledSubtypes(true)
|
val enabledSubtypes = SubtypeSettings.getEnabledSubtypes(true)
|
||||||
Scaffold(contentWindowInsets = WindowInsets.systemBars.union(WindowInsets.ime)) { innerPadding ->
|
Scaffold(
|
||||||
|
contentWindowInsets = WindowInsets.safeDrawing.only(WindowInsetsSides.Horizontal + WindowInsetsSides.Bottom)
|
||||||
|
) { innerPadding ->
|
||||||
Column(
|
Column(
|
||||||
Modifier.verticalScroll(rememberScrollState())
|
Modifier.verticalScroll(rememberScrollState()).then(Modifier.padding(innerPadding))
|
||||||
.then(Modifier.padding(bottom = innerPadding.calculateBottomPadding()))
|
|
||||||
) {
|
) {
|
||||||
Preference(
|
Preference(
|
||||||
name = stringResource(R.string.language_and_layouts_title),
|
name = stringResource(R.string.language_and_layouts_title),
|
||||||
|
|
|
@ -10,9 +10,8 @@ import androidx.compose.foundation.layout.Arrangement
|
||||||
import androidx.compose.foundation.layout.Column
|
import androidx.compose.foundation.layout.Column
|
||||||
import androidx.compose.foundation.layout.Row
|
import androidx.compose.foundation.layout.Row
|
||||||
import androidx.compose.foundation.layout.fillMaxWidth
|
import androidx.compose.foundation.layout.fillMaxWidth
|
||||||
import androidx.compose.foundation.layout.imePadding
|
|
||||||
import androidx.compose.foundation.layout.padding
|
import androidx.compose.foundation.layout.padding
|
||||||
import androidx.compose.foundation.layout.systemBarsPadding
|
import androidx.compose.foundation.layout.safeDrawingPadding
|
||||||
import androidx.compose.foundation.layout.wrapContentSize
|
import androidx.compose.foundation.layout.wrapContentSize
|
||||||
import androidx.compose.foundation.text.KeyboardOptions
|
import androidx.compose.foundation.text.KeyboardOptions
|
||||||
import androidx.compose.material3.ExtendedFloatingActionButton
|
import androidx.compose.material3.ExtendedFloatingActionButton
|
||||||
|
@ -179,7 +178,7 @@ fun PersonalDictionaryScreen(
|
||||||
text = { Text(stringResource(R.string.user_dict_add_word_button)) },
|
text = { Text(stringResource(R.string.user_dict_add_word_button)) },
|
||||||
icon = { Icon(painter = painterResource(R.drawable.ic_edit), stringResource(R.string.user_dict_add_word_button)) },
|
icon = { Icon(painter = painterResource(R.drawable.ic_edit), stringResource(R.string.user_dict_add_word_button)) },
|
||||||
modifier = Modifier.wrapContentSize(Alignment.BottomEnd).padding(all = 12.dp)
|
modifier = Modifier.wrapContentSize(Alignment.BottomEnd).padding(all = 12.dp)
|
||||||
.then(Modifier.systemBarsPadding().imePadding())
|
.then(Modifier.safeDrawingPadding())
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -5,11 +5,11 @@ import androidx.compose.foundation.layout.Arrangement
|
||||||
import androidx.compose.foundation.layout.Column
|
import androidx.compose.foundation.layout.Column
|
||||||
import androidx.compose.foundation.layout.Row
|
import androidx.compose.foundation.layout.Row
|
||||||
import androidx.compose.foundation.layout.WindowInsets
|
import androidx.compose.foundation.layout.WindowInsets
|
||||||
|
import androidx.compose.foundation.layout.WindowInsetsSides
|
||||||
import androidx.compose.foundation.layout.fillMaxWidth
|
import androidx.compose.foundation.layout.fillMaxWidth
|
||||||
import androidx.compose.foundation.layout.ime
|
import androidx.compose.foundation.layout.only
|
||||||
import androidx.compose.foundation.layout.padding
|
import androidx.compose.foundation.layout.padding
|
||||||
import androidx.compose.foundation.layout.systemBars
|
import androidx.compose.foundation.layout.safeDrawing
|
||||||
import androidx.compose.foundation.layout.union
|
|
||||||
import androidx.compose.foundation.layout.widthIn
|
import androidx.compose.foundation.layout.widthIn
|
||||||
import androidx.compose.foundation.rememberScrollState
|
import androidx.compose.foundation.rememberScrollState
|
||||||
import androidx.compose.foundation.verticalScroll
|
import androidx.compose.foundation.verticalScroll
|
||||||
|
@ -145,10 +145,12 @@ fun SubtypeScreen(
|
||||||
itemContent = { },
|
itemContent = { },
|
||||||
filteredItems = { emptyList<String>() }
|
filteredItems = { emptyList<String>() }
|
||||||
) {
|
) {
|
||||||
Scaffold(contentWindowInsets = WindowInsets.systemBars.union(WindowInsets.ime)) { innerPadding ->
|
Scaffold(
|
||||||
|
contentWindowInsets = WindowInsets.safeDrawing.only(WindowInsetsSides.Horizontal + WindowInsetsSides.Bottom)
|
||||||
|
) { innerPadding ->
|
||||||
Column(
|
Column(
|
||||||
modifier = Modifier.verticalScroll(scrollState).padding(horizontal = 12.dp)
|
modifier = Modifier.verticalScroll(scrollState).padding(horizontal = 12.dp)
|
||||||
.then(Modifier.padding(bottom = innerPadding.calculateBottomPadding())),
|
.then(Modifier.padding(innerPadding)),
|
||||||
verticalArrangement = Arrangement.spacedBy(8.dp),
|
verticalArrangement = Arrangement.spacedBy(8.dp),
|
||||||
) {
|
) {
|
||||||
MainLayoutRow(currentSubtype, customMainLayouts) { setCurrentSubtype(it) }
|
MainLayoutRow(currentSubtype, customMainLayouts) { setCurrentSubtype(it) }
|
||||||
|
|
Loading…
Add table
Reference in a new issue