some fixes

This commit is contained in:
Helium314 2024-01-31 19:49:50 +01:00
parent a91a90bfbd
commit 40f39a70d0
6 changed files with 24 additions and 21 deletions

View file

@ -204,10 +204,10 @@ abstract class KeyboardParser(private val params: KeyboardParams, private val co
val layoutName = Settings.readSymbolsLayoutName(context, params.mId.locale)
val layout = if (layoutName.startsWith(CUSTOM_LAYOUT_PREFIX)) {
val parser = if (layoutName.endsWith("json")) JsonKeyboardParser(params, context)
else SimpleKeyboardParser(params, context)
else SimpleKeyboardParser(params, context, false)
parser.parseCoreLayout(getLayoutFile(layoutName, context).readText())
} else {
SimpleKeyboardParser(params, context).parseCoreLayout(context.readAssetsFile("layouts/$layoutName.txt"))
SimpleKeyboardParser(params, context, false).parseCoreLayout(context.readAssetsFile("layouts/$layoutName.txt"))
}
layout.forEachIndexed { i, row ->
val baseRow = baseKeys.getOrNull(i) ?: return@forEachIndexed

View file

@ -13,9 +13,11 @@ import helium314.keyboard.latin.common.splitOnWhitespace
* for alphabet, 3 keys for symbols and 4 keys for shift symbols. MoreKeys on period and comma get
* merged with defaults.
*/
class SimpleKeyboardParser(private val params: KeyboardParams, private val context: Context) : KeyboardParser(params, context) {
private val addExtraKeys = params.mId.mSubtype.keyboardLayoutSetName.endsWith("+")
class SimpleKeyboardParser(
private val params: KeyboardParams,
context: Context,
private val addExtraKeys: Boolean = params.mId.mSubtype.keyboardLayoutSetName.endsWith("+") && params.mId.isAlphabetKeyboard
) : KeyboardParser(params, context) {
override fun parseCoreLayout(layoutContent: String): MutableList<List<KeyData>> {
val rowStrings = layoutContent.replace("\r\n", "\n").split("\\n\\s*\\n".toRegex())
return rowStrings.mapIndexedNotNullTo(mutableListOf()) { i, row ->

View file

@ -1,3 +1,4 @@
// SPDX-License-Identifier: Apache-2.0 AND GPL-3.0-only
package helium314.keyboard.latin
import android.app.Application
@ -9,6 +10,7 @@ import helium314.keyboard.latin.settings.Settings
import helium314.keyboard.latin.settings.USER_DICTIONARY_SUFFIX
import helium314.keyboard.latin.utils.DeviceProtectedUtils
import helium314.keyboard.latin.utils.DictionaryInfoUtils
import helium314.keyboard.latin.utils.Log
import helium314.keyboard.latin.utils.upgradeToolbarPref
import java.io.File
@ -33,6 +35,7 @@ class App : Application() {
fun checkVersionUpgrade(context: Context) {
val prefs = DeviceProtectedUtils.getSharedPreferences(context)
val oldVersion = prefs.getInt(Settings.PREF_VERSION_CODE, 0)
Log.d("test", "old v $oldVersion, current ${BuildConfig.VERSION_CODE}")
if (oldVersion == BuildConfig.VERSION_CODE)
return
upgradeToolbarPref(prefs)
@ -85,6 +88,7 @@ private fun upgradesWhenComingFromOldAppName(context: Context) {
}
prefs.all.toMap().forEach {
if (it.key.startsWith("pref_key_") && it.key != "pref_key_longpress_timeout") {
Log.d("test", "adjusting ${it.key}")
var remove = true
when (val value = it.value) {
is Boolean -> prefs.edit().putBoolean(it.key.substringAfter("pref_key_"), value).apply()
@ -97,6 +101,7 @@ private fun upgradesWhenComingFromOldAppName(context: Context) {
if (remove)
prefs.edit().remove(it.key).apply()
} else if (it.key.startsWith("pref_")) {
Log.d("test", "adjusting ${it.key}")
var remove = true
when (val value = it.value) {
is Boolean -> prefs.edit().putBoolean(it.key.substringAfter("pref_"), value).apply()
@ -108,19 +113,24 @@ private fun upgradesWhenComingFromOldAppName(context: Context) {
}
if (remove)
prefs.edit().remove(it.key).apply()
} else {
Log.d("test", "keeping ${it.key}")
}
}
// change more_keys to popup_keys
if (prefs.contains("more_keys_order")) {
Log.d("test", "more_keys_order")
prefs.edit().putString(Settings.PREF_POPUP_KEYS_ORDER, prefs.getString("more_keys_order", "")).apply()
prefs.edit().remove("more_keys_order").apply()
}
if (prefs.contains("more_keys_labels_order")) {
Log.d("test", "more_keys_labels_order")
prefs.edit().putString(Settings.PREF_POPUP_KEYS_LABELS_ORDER, prefs.getString("more_keys_labels_order", "")).apply()
prefs.edit().remove("more_keys_labels_order").apply()
}
if (prefs.contains("more_more_keys")) {
prefs.edit().putString(Settings.PREF_POPUP_KEYS_ORDER, prefs.getString("more_more_keys", "")).apply()
Log.d("test", "more_more_keys")
prefs.edit().putString(Settings.PREF_MORE_POPUP_KEYS, prefs.getString("more_more_keys", "")).apply()
prefs.edit().remove("more_more_keys").apply()
}
// upgrade additional subtype locale strings