mirror of
https://github.com/Helium314/HeliBoard.git
synced 2025-05-14 22:12:46 +00:00
move extension functions and update todo
This commit is contained in:
parent
8e624408f1
commit
5e7482085f
13 changed files with 100 additions and 114 deletions
|
@ -1,6 +1,9 @@
|
|||
package helium314.keyboard.latin.utils
|
||||
|
||||
import android.content.Context
|
||||
import android.content.ContextWrapper
|
||||
import android.content.SharedPreferences
|
||||
import androidx.activity.ComponentActivity
|
||||
|
||||
// generic extension functions
|
||||
|
||||
|
@ -13,10 +16,9 @@ inline fun <T> Iterable<T>.sumOf(selector: (T) -> Float): Float {
|
|||
return sum
|
||||
}
|
||||
|
||||
// todo: string instead of CharSequence for compose? because resource STRINGs should be strings anyway...
|
||||
fun CharSequence.getStringResourceOrName(prefix: String, context: Context): CharSequence {
|
||||
fun CharSequence.getStringResourceOrName(prefix: String, context: Context): String {
|
||||
val resId = context.resources.getIdentifier(prefix + this, "string", context.packageName)
|
||||
return if (resId == 0) this else context.getString(resId)
|
||||
return if (resId == 0) this.toString() else context.getString(resId)
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -55,3 +57,14 @@ fun <T> MutableList<T>.replaceFirst(predicate: (T) -> Boolean, with: (T) -> T) {
|
|||
val i = indexOfFirst(predicate)
|
||||
if (i >= 0) this[i] = with(this[i])
|
||||
}
|
||||
|
||||
fun Context.getActivity(): ComponentActivity? {
|
||||
val componentActivity = when (this) {
|
||||
is ComponentActivity -> this
|
||||
is ContextWrapper -> baseContext.getActivity()
|
||||
else -> null
|
||||
}
|
||||
return componentActivity
|
||||
}
|
||||
|
||||
fun Context.prefs(): SharedPreferences = DeviceProtectedUtils.getSharedPreferences(this)
|
||||
|
|
|
@ -2,12 +2,8 @@
|
|||
package helium314.keyboard.settings
|
||||
|
||||
import android.content.Context
|
||||
import android.content.ContextWrapper
|
||||
import android.content.SharedPreferences
|
||||
import androidx.activity.ComponentActivity
|
||||
import androidx.annotation.StringRes
|
||||
import androidx.compose.runtime.Composable
|
||||
import helium314.keyboard.latin.utils.DeviceProtectedUtils
|
||||
import helium314.keyboard.settings.screens.createAboutPrefs
|
||||
import helium314.keyboard.settings.screens.createAdvancedPrefs
|
||||
import helium314.keyboard.settings.screens.createAppearancePrefs
|
||||
|
@ -62,18 +58,6 @@ private fun createPrefDefs(context: Context) = createAboutPrefs(context) +
|
|||
createGestureTypingPrefs(context) + createAdvancedPrefs(context) + createDebugPrefs(context) +
|
||||
createAppearancePrefs(context)
|
||||
|
||||
// todo: move somewhere else
|
||||
fun Context.getActivity(): ComponentActivity? {
|
||||
val componentActivity = when (this) {
|
||||
is ComponentActivity -> this
|
||||
is ContextWrapper -> baseContext.getActivity()
|
||||
else -> null
|
||||
}
|
||||
return componentActivity
|
||||
}
|
||||
|
||||
fun Context.prefs(): SharedPreferences = DeviceProtectedUtils.getSharedPreferences(this)
|
||||
|
||||
object NonSettingsPrefs {
|
||||
const val EDIT_PERSONAL_DICTIONARY = "edit_personal_dictionary"
|
||||
const val APP = "app"
|
||||
|
@ -89,7 +73,3 @@ object NonSettingsPrefs {
|
|||
const val DEBUG_SETTINGS = "screen_debug"
|
||||
const val LOAD_GESTURE_LIB = "load_gesture_library"
|
||||
}
|
||||
|
||||
@JvmField
|
||||
// todo: maybe better name it "reloadKeyboard"?
|
||||
var themeChanged = false
|
||||
|
|
|
@ -39,6 +39,8 @@ import androidx.compose.ui.unit.dp
|
|||
import androidx.core.content.edit
|
||||
import helium314.keyboard.latin.R
|
||||
import helium314.keyboard.latin.utils.Log
|
||||
import helium314.keyboard.latin.utils.getActivity
|
||||
import helium314.keyboard.latin.utils.prefs
|
||||
import helium314.keyboard.settings.dialogs.ListPickerDialog
|
||||
import helium314.keyboard.settings.dialogs.SliderDialog
|
||||
|
||||
|
|
|
@ -10,72 +10,63 @@ import androidx.compose.ui.platform.ComposeView
|
|||
import androidx.core.view.isGone
|
||||
import helium314.keyboard.latin.R
|
||||
import helium314.keyboard.latin.settings.Settings
|
||||
import helium314.keyboard.latin.utils.prefs
|
||||
import kotlinx.coroutines.flow.MutableStateFlow
|
||||
|
||||
// todo
|
||||
// todo (roughly in order)
|
||||
// make all prefs actually work
|
||||
// make the pref lists more compact (compare with old settings)
|
||||
// try making text size similar to old state (also in dialogs)
|
||||
// check whether dialogs have the same colors, i think currently it's a bit inconsistent
|
||||
// rename both settingsActivities
|
||||
// work on todos in other files
|
||||
// use better / more structured and clear names and arrangement of files
|
||||
// animations when stuff (dis)appears
|
||||
// LaunchedEffect, AnimatedVisibility
|
||||
// performance
|
||||
// find a nice way of testing (probably add logs for measuring time and recompositions)
|
||||
// consider that stuff in composables can get called quite often on any changes -> use remember for things that are slow
|
||||
// improve performance when loading screens with many settings (lazyColumn?)
|
||||
// first check whether it's really necessary (test advanced or correction screen normal and with lazyColumn)
|
||||
// screens could have a lazy column of preferences and category separators, and the list has an if-setting-then-null for hiding
|
||||
// lazyColumn also has a "key", this should be used and be the pref name (or maybe title because that's also for category separators)
|
||||
// nice arrows (in top bar, and as next-screen indicator)
|
||||
// PRs adding prefs -> need to do before continuing
|
||||
// 1319 (soon)
|
||||
// 1263 (no response for 3 weeks)
|
||||
// merge main to implement all the new settings
|
||||
// consider IME insets when searching
|
||||
// consider that stuff in composables can get called quite often on any changes -> use remember for things that are slow (maybe add test logging)
|
||||
// dialogs should be rememberSaveable to survive display orientation change and stuff?
|
||||
// default buttons for toolbar key(s) customizer and toolbar reorder dialog
|
||||
// try making old fragment back stuff work better, and try the different themes (with and without top bar)
|
||||
// any way to get rid of the "old" background on starting settings? probably comes from app theme, can we avoid it?
|
||||
// consider using simple list picker dialog (but the "full" one is probably better for language settings stuff)
|
||||
// spdx headers everywhere
|
||||
|
||||
// what should be done, but not in this PR
|
||||
// in general: changes to anything outside the new settings (unless necessary), and changes to how screens / fragments work
|
||||
// re-organize screens, no need to keep exactly the same arrangement
|
||||
// language settings (should change more than just move to compose)
|
||||
// user dictionary settings (or maybe leave old state for a while?)
|
||||
// color settings (should at least change how colors are stored, and have a color search/filter)
|
||||
// one single place for default values (to be used in composables and settings)
|
||||
// make auto_correct_threshold a float directly with the list pref (needs pref upgrade)
|
||||
// using context.prefs() outside settings
|
||||
// merge PREF_TOOLBAR_CUSTOM_KEY_CODES and PREF_TOOLBAR_CUSTOM_LONGPRESS_CODES into one pref (don't forget settings upgrade)
|
||||
// adjust debug settings
|
||||
// have them in main screen?
|
||||
// allow users to find the individual settings in search even if debug settings are not enabled?
|
||||
|
||||
// later
|
||||
// improve performance when loading screens with many settings (lazyColumn?)
|
||||
// first check whether it's really necessary (test advanced or correction screen normal and with lazyColumn)
|
||||
// screens could have a lazy column of preferences and category separators, and the list has an if-setting-then-null for hiding
|
||||
// lazyColumn also has the key, this should be used! and must be unique
|
||||
// nice arrows (in top bar, and as next-screen indicator)
|
||||
// animations when stuff (dis)appears
|
||||
// LaunchedEffect, AnimatedVisibility
|
||||
// remove PrefScreen if not used
|
||||
// rename some classes
|
||||
// split the preferences in allPrefs.createDefs into multiple files, this will get horribly long
|
||||
// maybe have sub-lists in the pref screens using the settings?
|
||||
// spdx headers everywhere (except DragDropColumn, which is from stackoverflow without explicit license)
|
||||
// changes to anything but the compose settings package should not be in the initial PR
|
||||
// commit them separately if possible
|
||||
// though some might be necessary
|
||||
// toolbar key enabled state can be wrong
|
||||
// go to correction settings, open search, toggle autocorrect toolbar key, and then toggle setting
|
||||
// -> now toolbar key always has the wrong state
|
||||
// color settings needs a color search
|
||||
// more convenient access to prefs
|
||||
// merge PREF_TOOLBAR_CUSTOM_KEY_CODES and PREF_TOOLBAR_CUSTOM_LONGPRESS_CODES
|
||||
// should be single pref containing both
|
||||
// needs settings upgrade of course...
|
||||
// consider disabled settings & search
|
||||
// don't show -> users confused
|
||||
// show as disabled -> users confused
|
||||
// show (but change will not do anything because another setting needs to be enabled first)
|
||||
// -> users confused, but probably better than the 2 above
|
||||
// adjust layout a little, there is too much empty space and titles are too large (dialogs!)
|
||||
// check dialogs have the same colors
|
||||
// list preference -> we can make auto_correct_threshold a float directly (needs pref upgrade
|
||||
// actually test all the settings
|
||||
// when starting keyboard from settings, initially there is the "old" background color before compose stuff starts
|
||||
// language settings (separate commit / PR, should change more than just move to compose)
|
||||
// user dictionary settings (separate commit / PR, or maybe leave old state for a while?)
|
||||
// color settings (separate commit / PR, should at least change how colors are stored)
|
||||
// one single place for default values (to be used in composables and settings)
|
||||
// better a separate commit
|
||||
// -> last is probably best, but people will probably open issues no matter what
|
||||
|
||||
// maybe later
|
||||
// weird problem with app sometimes closing on back, but that's related to "old" settings (don't care if all are removed before next release)
|
||||
// bottom text field (though we have the search now anyway)
|
||||
// remove navHost? but probably too useful to have...
|
||||
// lazyColumn for prefs (or just in category?)
|
||||
// should improve loading time for screens with many settings
|
||||
// but needs a bit of work for probably not so much benefit
|
||||
// adjust the debug settings thing, so that users can always find them in search but nowhere else? unless debug mode
|
||||
// maybe do after the PR
|
||||
// bottom dummy text field (though we have the search now anyway, and thus maybe don't need it)
|
||||
// search only in current pref screen, except when in main?
|
||||
// try getting rid of appcompat stuff (activity, dialogs, ...)
|
||||
// re-organize screens, no need to keep exactly the same arrangement
|
||||
// use simple list picker
|
||||
// exclude all debug settings from search results if they are not enabled
|
||||
// rearrange settings screens? now it should be very simple to do (definitely separate PR)
|
||||
|
||||
// preliminary results:
|
||||
|
@ -104,22 +95,25 @@ class SettingsActivity2 : AppCompatActivity(), SharedPreferences.OnSharedPrefere
|
|||
if (Settings.getInstance().current == null)
|
||||
Settings.init(this)
|
||||
|
||||
// val cv = ComposeView(context = this)
|
||||
allPrefs = AllPrefs(this)
|
||||
// setContentView(cv) // todo: later, but for showing both old and new style settings, the layout is better
|
||||
|
||||
// todo: when removing old settings completely, remove settings_activity.xml and supportFragmentManager stuff
|
||||
// val cv = ComposeView(context = this)
|
||||
// setContentView(cv)
|
||||
setContentView(R.layout.settings_activity)
|
||||
supportFragmentManager.addOnBackStackChangedListener {
|
||||
updateContainerVisibility()
|
||||
}
|
||||
// cv.setContent { // also later...
|
||||
// cv.setContent { // todo: when removing old settings
|
||||
findViewById<ComposeView>(R.id.navHost).setContent {
|
||||
Theme {
|
||||
Surface {
|
||||
SettingsNavHost(
|
||||
onClickBack = {
|
||||
if (supportFragmentManager.findFragmentById(R.id.settingsFragmentContainer) == null) // todo: remove after migration is complete
|
||||
// this.finish() // todo: when removing old settings
|
||||
if (supportFragmentManager.findFragmentById(R.id.settingsFragmentContainer) == null)
|
||||
this.finish()
|
||||
else supportFragmentManager.popBackStack() // todo: remove after migration is complete
|
||||
else supportFragmentManager.popBackStack()
|
||||
}
|
||||
)
|
||||
}
|
||||
|
@ -127,7 +121,7 @@ class SettingsActivity2 : AppCompatActivity(), SharedPreferences.OnSharedPrefere
|
|||
}
|
||||
}
|
||||
|
||||
private fun updateContainerVisibility() { // todo: remove after migration is complete
|
||||
private fun updateContainerVisibility() { // todo: remove when removing old settings
|
||||
findViewById<RelativeLayout>(R.id.settingsFragmentContainer).isGone = supportFragmentManager.findFragmentById(R.id.settingsFragmentContainer) == null
|
||||
}
|
||||
|
||||
|
@ -150,3 +144,6 @@ class SettingsActivity2 : AppCompatActivity(), SharedPreferences.OnSharedPrefere
|
|||
prefChanged.value++
|
||||
}
|
||||
}
|
||||
|
||||
@JvmField
|
||||
var needsKeyboardReload = false
|
||||
|
|
|
@ -33,11 +33,11 @@ import helium314.keyboard.latin.utils.ToolbarKey
|
|||
import helium314.keyboard.latin.utils.getCodeForToolbarKey
|
||||
import helium314.keyboard.latin.utils.getCodeForToolbarKeyLongClick
|
||||
import helium314.keyboard.latin.utils.getStringResourceOrName
|
||||
import helium314.keyboard.latin.utils.prefs
|
||||
import helium314.keyboard.latin.utils.readCustomKeyCodes
|
||||
import helium314.keyboard.latin.utils.readCustomLongpressCodes
|
||||
import helium314.keyboard.latin.utils.writeCustomKeyCodes
|
||||
import helium314.keyboard.latin.utils.writeCustomLongpressCodes
|
||||
import helium314.keyboard.settings.prefs
|
||||
import helium314.keyboard.settings.screens.GetIcon
|
||||
|
||||
// todo:
|
||||
|
@ -63,7 +63,7 @@ fun ToolbarKeysCustomizer(
|
|||
modifier = Modifier.clickable { showKeyCustomizer = it }.fillParentMaxWidth()
|
||||
) {
|
||||
KeyboardIconsSet.instance.GetIcon(it.name)
|
||||
Text(it.name.lowercase().getStringResourceOrName("", ctx).toString())
|
||||
Text(it.name.lowercase().getStringResourceOrName("", ctx))
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -102,7 +102,7 @@ private fun ToolbarKeyCustomizer(
|
|||
) { Text(stringResource(android.R.string.ok)) }
|
||||
},
|
||||
dismissButton = { TextButton(onClick = onDismissRequest) { Text(stringResource(android.R.string.cancel)) } },
|
||||
title = { Text(key.name.lowercase().getStringResourceOrName("", ctx).toString()) },
|
||||
title = { Text(key.name.lowercase().getStringResourceOrName("", ctx)) },
|
||||
text = {
|
||||
Column {
|
||||
Row(verticalAlignment = Alignment.CenterVertically) {
|
||||
|
|
|
@ -27,6 +27,8 @@ import helium314.keyboard.latin.R
|
|||
import helium314.keyboard.latin.settings.DebugSettings
|
||||
import helium314.keyboard.latin.utils.Log
|
||||
import helium314.keyboard.latin.utils.SpannableStringUtils
|
||||
import helium314.keyboard.latin.utils.getActivity
|
||||
import helium314.keyboard.latin.utils.prefs
|
||||
import helium314.keyboard.settings.AllPrefs
|
||||
import helium314.keyboard.settings.NonSettingsPrefs
|
||||
import helium314.keyboard.settings.PrefDef
|
||||
|
@ -34,8 +36,6 @@ import helium314.keyboard.settings.Preference
|
|||
import helium314.keyboard.settings.SearchPrefScreen
|
||||
import helium314.keyboard.settings.SettingsActivity2
|
||||
import helium314.keyboard.settings.Theme
|
||||
import helium314.keyboard.settings.getActivity
|
||||
import helium314.keyboard.settings.prefs
|
||||
import kotlinx.coroutines.Dispatchers
|
||||
import kotlinx.coroutines.launch
|
||||
|
||||
|
|
|
@ -16,6 +16,7 @@ import helium314.keyboard.latin.R
|
|||
import helium314.keyboard.latin.SystemBroadcastReceiver
|
||||
import helium314.keyboard.latin.settings.DebugSettings
|
||||
import helium314.keyboard.latin.settings.Settings
|
||||
import helium314.keyboard.latin.utils.prefs
|
||||
import helium314.keyboard.settings.AllPrefs
|
||||
import helium314.keyboard.settings.ListPreference
|
||||
import helium314.keyboard.settings.NonSettingsPrefs
|
||||
|
@ -28,8 +29,7 @@ import helium314.keyboard.settings.SettingsDestination
|
|||
import helium314.keyboard.settings.SliderPreference
|
||||
import helium314.keyboard.settings.SwitchPreference
|
||||
import helium314.keyboard.settings.Theme
|
||||
import helium314.keyboard.settings.prefs
|
||||
import helium314.keyboard.settings.themeChanged
|
||||
import helium314.keyboard.settings.needsKeyboardReload
|
||||
|
||||
@Composable
|
||||
fun AdvancedSettingsScreen(
|
||||
|
@ -89,7 +89,6 @@ fun createAdvancedPrefs(context: Context) = listOf(
|
|||
)
|
||||
},
|
||||
PrefDef(context, Settings.PREF_SPACE_HORIZONTAL_SWIPE, R.string.show_horizontal_space_swipe) { def ->
|
||||
// todo: get rid of the arrays from old settings
|
||||
val items = listOf(
|
||||
stringResource(R.string.space_swipe_move_cursor_entry) to "move_cursor",
|
||||
stringResource(R.string.switch_language) to "switch_language",
|
||||
|
@ -99,7 +98,6 @@ fun createAdvancedPrefs(context: Context) = listOf(
|
|||
ListPreference(def, items, "move_cursor")
|
||||
},
|
||||
PrefDef(context, Settings.PREF_SPACE_VERTICAL_SWIPE, R.string.show_vertical_space_swipe) { def ->
|
||||
// todo: get rid of the arrays from old settings
|
||||
val items = listOf(
|
||||
stringResource(R.string.space_swipe_move_cursor_entry) to "move_cursor",
|
||||
stringResource(R.string.switch_language) to "switch_language",
|
||||
|
@ -166,7 +164,6 @@ fun createAdvancedPrefs(context: Context) = listOf(
|
|||
// if (showDialog) todo: show the currency customizer
|
||||
},
|
||||
PrefDef(context, Settings.PREF_MORE_POPUP_KEYS, R.string.show_popup_keys_title) { def ->
|
||||
// todo: get rid of the arrays from old settings
|
||||
val items = listOf(
|
||||
stringResource(R.string.show_popup_keys_normal) to "normal",
|
||||
stringResource(R.string.show_popup_keys_main) to "main",
|
||||
|
@ -232,7 +229,7 @@ fun createAdvancedPrefs(context: Context) = listOf(
|
|||
else -> "version unknown"
|
||||
}
|
||||
},
|
||||
onValueChanged = { themeChanged = true }
|
||||
onValueChanged = { needsKeyboardReload = true }
|
||||
)
|
||||
},
|
||||
PrefDef(context, Settings.PREF_URL_DETECTION, R.string.url_detection_title, R.string.url_detection_summary) {
|
||||
|
|
|
@ -17,7 +17,9 @@ import helium314.keyboard.keyboard.KeyboardTheme
|
|||
import helium314.keyboard.latin.R
|
||||
import helium314.keyboard.latin.settings.Settings
|
||||
import helium314.keyboard.latin.utils.Log
|
||||
import helium314.keyboard.latin.utils.getActivity
|
||||
import helium314.keyboard.latin.utils.getStringResourceOrName
|
||||
import helium314.keyboard.latin.utils.prefs
|
||||
import helium314.keyboard.settings.AllPrefs
|
||||
import helium314.keyboard.settings.ListPreference
|
||||
import helium314.keyboard.settings.PrefDef
|
||||
|
@ -26,12 +28,8 @@ import helium314.keyboard.settings.PreferenceCategory
|
|||
import helium314.keyboard.settings.SearchPrefScreen
|
||||
import helium314.keyboard.settings.SettingsActivity2
|
||||
import helium314.keyboard.settings.SettingsDestination
|
||||
import helium314.keyboard.settings.SliderPreference
|
||||
import helium314.keyboard.settings.SwitchPreference
|
||||
import helium314.keyboard.settings.Theme
|
||||
import helium314.keyboard.settings.getActivity
|
||||
import helium314.keyboard.settings.prefs
|
||||
import helium314.keyboard.settings.themeChanged
|
||||
|
||||
@Composable
|
||||
fun AppearanceScreen(
|
||||
|
@ -60,7 +58,7 @@ fun createAppearancePrefs(context: Context) = listOf(
|
|||
PrefDef(context, Settings.PREF_THEME_STYLE, R.string.theme_style) { def ->
|
||||
val ctx = LocalContext.current
|
||||
val items = KeyboardTheme.STYLES.map {
|
||||
it.getStringResourceOrName("style_name_", ctx).toString() to it
|
||||
it.getStringResourceOrName("style_name_", ctx) to it
|
||||
}
|
||||
ListPreference(
|
||||
def,
|
||||
|
@ -71,7 +69,7 @@ fun createAppearancePrefs(context: Context) = listOf(
|
|||
PrefDef(context, Settings.PREF_ICON_STYLE, R.string.icon_style) { def ->
|
||||
val ctx = LocalContext.current
|
||||
val items = KeyboardTheme.STYLES.map {
|
||||
it.getStringResourceOrName("style_name_", ctx).toString() to it
|
||||
it.getStringResourceOrName("style_name_", ctx) to it
|
||||
}
|
||||
ListPreference(
|
||||
def,
|
||||
|
@ -92,7 +90,7 @@ fun createAppearancePrefs(context: Context) = listOf(
|
|||
val items = KeyboardTheme.COLORS.mapNotNull {
|
||||
if (it == KeyboardTheme.THEME_HOLO_WHITE && currentStyle == KeyboardTheme.STYLE_HOLO)
|
||||
return@mapNotNull null
|
||||
it.getStringResourceOrName("theme_name_", ctx).toString() to it
|
||||
it.getStringResourceOrName("theme_name_", ctx) to it
|
||||
}
|
||||
ListPreference(
|
||||
def,
|
||||
|
@ -106,7 +104,7 @@ fun createAppearancePrefs(context: Context) = listOf(
|
|||
val items = KeyboardTheme.COLORS.mapNotNull {
|
||||
if (it == KeyboardTheme.THEME_HOLO_WHITE && currentStyle == KeyboardTheme.STYLE_HOLO)
|
||||
return@mapNotNull null
|
||||
it.getStringResourceOrName("theme_name_", ctx).toString() to it
|
||||
it.getStringResourceOrName("theme_name_", ctx) to it
|
||||
}
|
||||
ListPreference(
|
||||
def,
|
||||
|
|
|
@ -13,6 +13,7 @@ import helium314.keyboard.latin.DictionaryFacilitator
|
|||
import helium314.keyboard.latin.R
|
||||
import helium314.keyboard.latin.settings.DebugSettings
|
||||
import helium314.keyboard.latin.settings.DebugSettingsFragment
|
||||
import helium314.keyboard.latin.utils.prefs
|
||||
import helium314.keyboard.settings.AllPrefs
|
||||
import helium314.keyboard.settings.PrefDef
|
||||
import helium314.keyboard.settings.Preference
|
||||
|
@ -21,8 +22,7 @@ import helium314.keyboard.settings.SearchPrefScreen
|
|||
import helium314.keyboard.settings.SettingsActivity2
|
||||
import helium314.keyboard.settings.SwitchPreference
|
||||
import helium314.keyboard.settings.Theme
|
||||
import helium314.keyboard.settings.prefs
|
||||
import helium314.keyboard.settings.themeChanged
|
||||
import helium314.keyboard.settings.needsKeyboardReload
|
||||
|
||||
@Composable
|
||||
fun DebugScreen(
|
||||
|
@ -63,7 +63,7 @@ fun createDebugPrefs(context: Context) = listOf(
|
|||
}
|
||||
},
|
||||
PrefDef(context, DebugSettings.PREF_SHOW_SUGGESTION_INFOS, R.string.prefs_show_suggestion_infos) { def ->
|
||||
SwitchPreference(def, false) { themeChanged = true }
|
||||
SwitchPreference(def, false) { needsKeyboardReload = true }
|
||||
},
|
||||
PrefDef(context, DebugSettings.PREF_FORCE_NON_DISTINCT_MULTITOUCH, R.string.prefs_force_non_distinct_multitouch) { def ->
|
||||
SwitchPreference(def, false) { needsRestart = true }
|
||||
|
|
|
@ -11,6 +11,8 @@ import androidx.compose.ui.tooling.preview.Preview
|
|||
import helium314.keyboard.latin.R
|
||||
import helium314.keyboard.latin.settings.Settings
|
||||
import helium314.keyboard.latin.utils.Log
|
||||
import helium314.keyboard.latin.utils.getActivity
|
||||
import helium314.keyboard.latin.utils.prefs
|
||||
import helium314.keyboard.settings.AllPrefs
|
||||
import helium314.keyboard.settings.PrefDef
|
||||
import helium314.keyboard.settings.SearchPrefScreen
|
||||
|
@ -18,9 +20,7 @@ import helium314.keyboard.settings.SettingsActivity2
|
|||
import helium314.keyboard.settings.SliderPreference
|
||||
import helium314.keyboard.settings.SwitchPreference
|
||||
import helium314.keyboard.settings.Theme
|
||||
import helium314.keyboard.settings.getActivity
|
||||
import helium314.keyboard.settings.prefs
|
||||
import helium314.keyboard.settings.themeChanged
|
||||
import helium314.keyboard.settings.needsKeyboardReload
|
||||
|
||||
@Composable
|
||||
fun GestureTypingScreen(
|
||||
|
@ -74,7 +74,7 @@ fun createGestureTypingPrefs(context: Context) = listOf(
|
|||
SwitchPreference(
|
||||
def = it,
|
||||
default = true
|
||||
) { themeChanged = true }
|
||||
) { needsKeyboardReload = true }
|
||||
},
|
||||
PrefDef(context, Settings.PREF_GESTURE_SPACE_AWARE, R.string.gesture_space_aware, R.string.gesture_space_aware_summary) {
|
||||
SwitchPreference(
|
||||
|
@ -106,7 +106,7 @@ fun createGestureTypingPrefs(context: Context) = listOf(
|
|||
range = 100f..1900f,
|
||||
description = { stringResource(R.string.abbreviation_unit_milliseconds, (it + 100).toString()) },
|
||||
// todo: 50 ms steps?
|
||||
) { themeChanged = true }
|
||||
) { needsKeyboardReload = true }
|
||||
},
|
||||
)
|
||||
|
||||
|
|
|
@ -25,11 +25,11 @@ import helium314.keyboard.latin.settings.LanguageSettingsFragment
|
|||
import helium314.keyboard.latin.settings.PreferencesSettingsFragment
|
||||
import helium314.keyboard.latin.settings.ToolbarSettingsFragment
|
||||
import helium314.keyboard.latin.utils.JniUtils
|
||||
import helium314.keyboard.latin.utils.getActivity
|
||||
import helium314.keyboard.settings.Preference
|
||||
import helium314.keyboard.settings.PreferenceCategory
|
||||
import helium314.keyboard.settings.SearchPrefScreen
|
||||
import helium314.keyboard.settings.Theme
|
||||
import helium314.keyboard.settings.getActivity
|
||||
|
||||
@Composable
|
||||
fun MainSettingsScreen(
|
||||
|
|
|
@ -24,6 +24,8 @@ import helium314.keyboard.latin.permissions.PermissionsUtil
|
|||
import helium314.keyboard.latin.settings.Settings
|
||||
import helium314.keyboard.latin.settings.UserDictionaryListFragment
|
||||
import helium314.keyboard.latin.utils.Log
|
||||
import helium314.keyboard.latin.utils.getActivity
|
||||
import helium314.keyboard.latin.utils.prefs
|
||||
import helium314.keyboard.settings.AllPrefs
|
||||
import helium314.keyboard.settings.ListPreference
|
||||
import helium314.keyboard.settings.NonSettingsPrefs
|
||||
|
@ -35,10 +37,7 @@ import helium314.keyboard.settings.SettingsActivity2
|
|||
import helium314.keyboard.settings.SwitchPreference
|
||||
import helium314.keyboard.settings.Theme
|
||||
import helium314.keyboard.settings.dialogs.ConfirmationDialog
|
||||
import helium314.keyboard.settings.dialogs.ListPickerDialog
|
||||
import helium314.keyboard.settings.getActivity
|
||||
import helium314.keyboard.settings.prefs
|
||||
import helium314.keyboard.settings.themeChanged
|
||||
import helium314.keyboard.settings.needsKeyboardReload
|
||||
|
||||
@Composable
|
||||
fun TextCorrectionScreen(
|
||||
|
@ -205,7 +204,7 @@ fun createCorrectionPrefs(context: Context) = listOf(
|
|||
R.string.bigram_prediction,
|
||||
R.string.bigram_prediction_summary
|
||||
) {
|
||||
SwitchPreference(it, true) { themeChanged = true }
|
||||
SwitchPreference(it, true) { needsKeyboardReload = true }
|
||||
},
|
||||
PrefDef(context,
|
||||
Settings.PREF_CENTER_SUGGESTION_TEXT_TO_ENTER,
|
||||
|
|
|
@ -43,7 +43,7 @@ import helium314.keyboard.settings.Theme
|
|||
import helium314.keyboard.settings.dialogs.ReorderDialog
|
||||
import helium314.keyboard.settings.dialogs.ToolbarKeysCustomizer
|
||||
import helium314.keyboard.settings.prefs
|
||||
import helium314.keyboard.settings.themeChanged
|
||||
import helium314.keyboard.settings.needsKeyboardReload
|
||||
|
||||
@Composable
|
||||
fun ToolbarScreen(
|
||||
|
@ -123,7 +123,7 @@ fun createToolbarPrefs(context: Context) = listOf(
|
|||
SwitchPreference(
|
||||
def,
|
||||
false,
|
||||
) { themeChanged = true }
|
||||
) { needsKeyboardReload = true }
|
||||
},
|
||||
PrefDef(context, Settings.PREF_AUTO_SHOW_TOOLBAR, R.string.auto_show_toolbar, R.string.auto_show_toolbar_summary) { def ->
|
||||
SwitchPreference(
|
||||
|
@ -164,7 +164,7 @@ fun ToolbarKeyReorderDialog(
|
|||
onConfirmed = { reorderedItems ->
|
||||
val value = reorderedItems.joinToString(";") { it.name + "," + it.state }
|
||||
prefs.edit().putString(prefKey, value).apply()
|
||||
themeChanged = true
|
||||
needsKeyboardReload = true
|
||||
},
|
||||
onDismissRequest = onDismiss,
|
||||
items = items,
|
||||
|
@ -173,7 +173,7 @@ fun ToolbarKeyReorderDialog(
|
|||
var checked by remember { mutableStateOf(item.state) }
|
||||
Row(verticalAlignment = Alignment.CenterVertically) {
|
||||
KeyboardIconsSet.instance.GetIcon(item.name)
|
||||
val text = item.name.lowercase().getStringResourceOrName("", ctx).toString()
|
||||
val text = item.name.lowercase().getStringResourceOrName("", ctx)
|
||||
Text(text, Modifier.weight(1f))
|
||||
Switch(
|
||||
checked = checked,
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue