mirror of
https://github.com/SimpleMobileTools/Simple-Keyboard.git
synced 2025-06-05 21:49:26 +02:00
Refactored language constants to a single enum
This commit is contained in:
@@ -149,40 +149,9 @@ fun Context.setupKeyboardDialogStuff(
|
|||||||
}
|
}
|
||||||
|
|
||||||
fun Context.getKeyboardLanguages(): ArrayList<RadioItem> {
|
fun Context.getKeyboardLanguages(): ArrayList<RadioItem> {
|
||||||
return arrayListOf(
|
val languages = Language.values().map { RadioItem(it.ordinal, it.getName(this)) }
|
||||||
RadioItem(LANGUAGE_BENGALI, getKeyboardLanguageText(LANGUAGE_BENGALI)),
|
return ArrayList(languages)
|
||||||
RadioItem(LANGUAGE_BULGARIAN, getKeyboardLanguageText(LANGUAGE_BULGARIAN)),
|
|
||||||
RadioItem(LANGUAGE_ENGLISH_QWERTY, getKeyboardLanguageText(LANGUAGE_ENGLISH_QWERTY)),
|
|
||||||
RadioItem(LANGUAGE_ENGLISH_QWERTZ, getKeyboardLanguageText(LANGUAGE_ENGLISH_QWERTZ)),
|
|
||||||
RadioItem(LANGUAGE_ENGLISH_DVORAK, getKeyboardLanguageText(LANGUAGE_ENGLISH_DVORAK)),
|
|
||||||
RadioItem(LANGUAGE_FRENCH, getKeyboardLanguageText(LANGUAGE_FRENCH)),
|
|
||||||
RadioItem(LANGUAGE_GERMAN, getKeyboardLanguageText(LANGUAGE_GERMAN)),
|
|
||||||
RadioItem(LANGUAGE_GREEK, getKeyboardLanguageText(LANGUAGE_GREEK)),
|
|
||||||
RadioItem(LANGUAGE_LITHUANIAN, getKeyboardLanguageText(LANGUAGE_LITHUANIAN)),
|
|
||||||
RadioItem(LANGUAGE_ROMANIAN, getKeyboardLanguageText(LANGUAGE_ROMANIAN)),
|
|
||||||
RadioItem(LANGUAGE_RUSSIAN, getKeyboardLanguageText(LANGUAGE_RUSSIAN)),
|
|
||||||
RadioItem(LANGUAGE_SLOVENIAN, getKeyboardLanguageText(LANGUAGE_SLOVENIAN)),
|
|
||||||
RadioItem(LANGUAGE_SPANISH, getKeyboardLanguageText(LANGUAGE_SPANISH)),
|
|
||||||
RadioItem(LANGUAGE_TURKISH_Q, getKeyboardLanguageText(LANGUAGE_TURKISH_Q)),
|
|
||||||
)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
fun Context.getKeyboardLanguageText(language: Int): String {
|
fun Context.getKeyboardLanguageText(language: Int) = Language.getKeyboardName(this, language)
|
||||||
return when (language) {
|
|
||||||
LANGUAGE_BENGALI -> getString(R.string.translation_bengali)
|
|
||||||
LANGUAGE_BULGARIAN -> getString(R.string.translation_bulgarian)
|
|
||||||
LANGUAGE_ENGLISH_DVORAK -> "${getString(R.string.translation_english)} (DVORAK)"
|
|
||||||
LANGUAGE_ENGLISH_QWERTZ -> "${getString(R.string.translation_english)} (QWERTZ)"
|
|
||||||
LANGUAGE_FRENCH -> getString(R.string.translation_french)
|
|
||||||
LANGUAGE_GERMAN -> getString(R.string.translation_german)
|
|
||||||
LANGUAGE_GREEK -> getString(R.string.translation_greek)
|
|
||||||
LANGUAGE_LITHUANIAN -> getString(R.string.translation_lithuanian)
|
|
||||||
LANGUAGE_ROMANIAN -> getString(R.string.translation_romanian)
|
|
||||||
LANGUAGE_RUSSIAN -> getString(R.string.translation_russian)
|
|
||||||
LANGUAGE_SLOVENIAN -> getString(R.string.translation_slovenian)
|
|
||||||
LANGUAGE_SPANISH -> getString(R.string.translation_spanish)
|
|
||||||
LANGUAGE_TURKISH_Q -> "${getString(R.string.translation_turkish)} (Q)"
|
|
||||||
else -> "${getString(R.string.translation_english)} (QWERTY)"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
@@ -44,9 +44,9 @@ class Config(context: Context) : BaseConfig(context) {
|
|||||||
private fun getDefaultLanguage(): Int {
|
private fun getDefaultLanguage(): Int {
|
||||||
val conf = context.resources.configuration
|
val conf = context.resources.configuration
|
||||||
return if (conf.locale.toString().toLowerCase(Locale.getDefault()).startsWith("ru_")) {
|
return if (conf.locale.toString().toLowerCase(Locale.getDefault()).startsWith("ru_")) {
|
||||||
LANGUAGE_RUSSIAN
|
Language.RUSSIAN.ordinal
|
||||||
} else {
|
} else {
|
||||||
LANGUAGE_ENGLISH_QWERTY
|
Language.ENGLISH_QWERTY.ordinal
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -1,5 +1,9 @@
|
|||||||
package com.simplemobiletools.keyboard.helpers
|
package com.simplemobiletools.keyboard.helpers
|
||||||
|
|
||||||
|
import android.content.Context
|
||||||
|
import androidx.annotation.StringRes
|
||||||
|
import com.simplemobiletools.keyboard.R
|
||||||
|
|
||||||
const val SHIFT_OFF = 0
|
const val SHIFT_OFF = 0
|
||||||
const val SHIFT_ON_ONE_CHAR = 1
|
const val SHIFT_ON_ONE_CHAR = 1
|
||||||
const val SHIFT_ON_PERMANENT = 2
|
const val SHIFT_ON_PERMANENT = 2
|
||||||
@@ -21,20 +25,72 @@ const val SHOW_NUMBERS_ROW = "show_numbers_row"
|
|||||||
const val ITEM_SECTION_LABEL = 0
|
const val ITEM_SECTION_LABEL = 0
|
||||||
const val ITEM_CLIP = 1
|
const val ITEM_CLIP = 1
|
||||||
|
|
||||||
const val LANGUAGE_ENGLISH_QWERTY = 0
|
enum class Language(@StringRes private val stringRes: Int, private val layout: Int) {
|
||||||
const val LANGUAGE_RUSSIAN = 1
|
ENGLISH_QWERTY(
|
||||||
const val LANGUAGE_FRENCH = 2
|
R.string.translation_english, R.xml.keys_letters_english_qwerty
|
||||||
const val LANGUAGE_ENGLISH_QWERTZ = 3
|
),
|
||||||
const val LANGUAGE_SPANISH = 4
|
RUSSIAN(
|
||||||
const val LANGUAGE_GERMAN = 5
|
R.string.translation_russian, R.xml.keys_letters_russian
|
||||||
const val LANGUAGE_ENGLISH_DVORAK = 6
|
),
|
||||||
const val LANGUAGE_ROMANIAN = 7
|
FRENCH(
|
||||||
const val LANGUAGE_SLOVENIAN = 8
|
R.string.translation_french, R.xml.keys_letters_french
|
||||||
const val LANGUAGE_BULGARIAN = 9
|
),
|
||||||
const val LANGUAGE_TURKISH_Q = 10
|
ENGLISH_QWERTZ(
|
||||||
const val LANGUAGE_LITHUANIAN = 11
|
R.string.translation_english, R.xml.keys_letters_english_qwertz
|
||||||
const val LANGUAGE_BENGALI = 12
|
),
|
||||||
const val LANGUAGE_GREEK = 13
|
SPANISH(
|
||||||
|
R.string.translation_spanish, R.string.translation_spanish
|
||||||
|
),
|
||||||
|
GERMAN(
|
||||||
|
R.string.translation_german, R.xml.keys_letters_german
|
||||||
|
),
|
||||||
|
ENGLISH_DVORAK(
|
||||||
|
R.string.translation_english, R.xml.keys_letters_english_dvorak
|
||||||
|
),
|
||||||
|
ROMANIAN(
|
||||||
|
R.string.translation_romanian, R.xml.keys_letters_romanian
|
||||||
|
),
|
||||||
|
SLOVENIAN(
|
||||||
|
R.string.translation_slovenian, R.xml.keys_letters_slovenian
|
||||||
|
),
|
||||||
|
BULGARIAN(
|
||||||
|
R.string.translation_bulgarian, R.xml.keys_letters_bulgarian
|
||||||
|
),
|
||||||
|
TURKISH_Q(
|
||||||
|
R.string.translation_turkish, R.xml.keys_letters_turkish_q
|
||||||
|
),
|
||||||
|
LITHUANIAN(
|
||||||
|
R.string.translation_lithuanian, R.xml.keys_letters_lithuanian
|
||||||
|
),
|
||||||
|
BENGALI(
|
||||||
|
R.string.translation_bengali, R.xml.keys_letters_bengali
|
||||||
|
),
|
||||||
|
GREEK(
|
||||||
|
R.string.translation_greek, R.xml.keys_letters_greek
|
||||||
|
);
|
||||||
|
|
||||||
|
fun getName(context: Context): String {
|
||||||
|
with(context) {
|
||||||
|
return when (val language = this@Language) {
|
||||||
|
ENGLISH_DVORAK -> "${getString(language.stringRes)} (DVORAK)"
|
||||||
|
ENGLISH_QWERTY -> "${getString(language.stringRes)} (QWERTY)"
|
||||||
|
ENGLISH_QWERTZ -> "${getString(language.stringRes)} (QWERTZ)"
|
||||||
|
else -> getString(language.stringRes)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
companion object {
|
||||||
|
fun getKeyboardLayout(keyboardLanguage: Int): Int {
|
||||||
|
return Language.values().getOrElse(keyboardLanguage) { ENGLISH_QWERTY }.layout
|
||||||
|
}
|
||||||
|
|
||||||
|
fun getKeyboardName(context: Context, language: Int): String {
|
||||||
|
return Language.values().getOrElse(language) { ENGLISH_QWERTY }.getName(context)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
// keyboard height multiplier options
|
// keyboard height multiplier options
|
||||||
const val KEYBOARD_HEIGHT_MULTIPLIER_SMALL = 1
|
const val KEYBOARD_HEIGHT_MULTIPLIER_SMALL = 1
|
||||||
|
@@ -270,24 +270,7 @@ class SimpleKeyboardIME : InputMethodService(), MyKeyboardView.OnKeyboardActionL
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun getKeyboardLayoutXML(): Int {
|
private fun getKeyboardLayoutXML() = Language.getKeyboardLayout(baseContext.config.keyboardLanguage)
|
||||||
return when (baseContext.config.keyboardLanguage) {
|
|
||||||
LANGUAGE_BENGALI -> R.xml.keys_letters_bengali
|
|
||||||
LANGUAGE_BULGARIAN -> R.xml.keys_letters_bulgarian
|
|
||||||
LANGUAGE_ENGLISH_DVORAK -> R.xml.keys_letters_english_dvorak
|
|
||||||
LANGUAGE_ENGLISH_QWERTZ -> R.xml.keys_letters_english_qwertz
|
|
||||||
LANGUAGE_FRENCH -> R.xml.keys_letters_french
|
|
||||||
LANGUAGE_GERMAN -> R.xml.keys_letters_german
|
|
||||||
LANGUAGE_GREEK -> R.xml.keys_letters_greek
|
|
||||||
LANGUAGE_LITHUANIAN -> R.xml.keys_letters_lithuanian
|
|
||||||
LANGUAGE_ROMANIAN -> R.xml.keys_letters_romanian
|
|
||||||
LANGUAGE_RUSSIAN -> R.xml.keys_letters_russian
|
|
||||||
LANGUAGE_SLOVENIAN -> R.xml.keys_letters_slovenian
|
|
||||||
LANGUAGE_SPANISH -> R.xml.keys_letters_spanish_qwerty
|
|
||||||
LANGUAGE_TURKISH_Q -> R.xml.keys_letters_turkish_q
|
|
||||||
else -> R.xml.keys_letters_english_qwerty
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
override fun onSharedPreferenceChanged(sharedPreferences: SharedPreferences?, key: String?) {
|
override fun onSharedPreferenceChanged(sharedPreferences: SharedPreferences?, key: String?) {
|
||||||
keyboardView?.setupKeyboard()
|
keyboardView?.setupKeyboard()
|
||||||
|
Reference in New Issue
Block a user