From 88c4bb5ebb03f9fe7a49f7aef18705693fc27603 Mon Sep 17 00:00:00 2001 From: merkost Date: Mon, 29 May 2023 17:18:35 +1000 Subject: [PATCH] Removed languages refactoring (Language.kt enum) --- .../keyboard/extensions/Context.kt | 50 +++++++++-- .../keyboard/helpers/Config.kt | 4 +- .../keyboard/helpers/Constants.kt | 18 ++++ .../keyboard/helpers/Language.kt | 83 ------------------- .../keyboard/services/SimpleKeyboardIME.kt | 22 ++++- 5 files changed, 83 insertions(+), 94 deletions(-) delete mode 100644 app/src/main/kotlin/com/simplemobiletools/keyboard/helpers/Language.kt diff --git a/app/src/main/kotlin/com/simplemobiletools/keyboard/extensions/Context.kt b/app/src/main/kotlin/com/simplemobiletools/keyboard/extensions/Context.kt index 75e8aa8..7a62833 100644 --- a/app/src/main/kotlin/com/simplemobiletools/keyboard/extensions/Context.kt +++ b/app/src/main/kotlin/com/simplemobiletools/keyboard/extensions/Context.kt @@ -4,11 +4,7 @@ import android.content.ClipboardManager import android.content.Context import android.graphics.Color import android.os.IBinder -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.view.Window -import android.view.WindowManager +import android.view.* import android.widget.TextView import androidx.appcompat.app.AlertDialog import androidx.core.content.res.ResourcesCompat @@ -149,9 +145,47 @@ fun Context.setupKeyboardDialogStuff( } fun Context.getKeyboardLanguages(): ArrayList { - val languages = Language.sorted(this).map { RadioItem(it.ordinal, it.getName(this)) } - return ArrayList(languages) + return arrayListOf( + RadioItem(LANGUAGE_BENGALI, getKeyboardLanguageText(LANGUAGE_BENGALI)), + RadioItem(LANGUAGE_BULGARIAN, getKeyboardLanguageText(LANGUAGE_BULGARIAN)), + RadioItem(LANGUAGE_DANISH, getKeyboardLanguageText(LANGUAGE_DANISH)), + 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_NORWEGIAN, getKeyboardLanguageText(LANGUAGE_NORWEGIAN)), + 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_SWEDISH, getKeyboardLanguageText(LANGUAGE_SWEDISH)), + RadioItem(LANGUAGE_TURKISH_Q, getKeyboardLanguageText(LANGUAGE_TURKISH_Q)), + ) +} + +fun Context.getKeyboardLanguageText(language: Int): String { + return when (language) { + LANGUAGE_BENGALI -> getString(R.string.translation_bengali) + LANGUAGE_BULGARIAN -> getString(R.string.translation_bulgarian) + LANGUAGE_DANISH -> getString(R.string.translation_danish) + 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_NORWEGIAN -> getString(R.string.translation_norwegian) + 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_SWEDISH -> getString(R.string.translation_swedish) + LANGUAGE_TURKISH_Q -> "${getString(R.string.translation_turkish)} (Q)" + else -> "${getString(R.string.translation_english)} (QWERTY)" + } } -fun Context.getKeyboardLanguageText(language: Int) = Language.getKeyboardName(this, language) diff --git a/app/src/main/kotlin/com/simplemobiletools/keyboard/helpers/Config.kt b/app/src/main/kotlin/com/simplemobiletools/keyboard/helpers/Config.kt index 06cb020..c612e27 100644 --- a/app/src/main/kotlin/com/simplemobiletools/keyboard/helpers/Config.kt +++ b/app/src/main/kotlin/com/simplemobiletools/keyboard/helpers/Config.kt @@ -48,9 +48,9 @@ class Config(context: Context) : BaseConfig(context) { private fun getDefaultLanguage(): Int { val conf = context.resources.configuration return if (conf.locale.toString().toLowerCase(Locale.getDefault()).startsWith("ru_")) { - Language.RUSSIAN.ordinal + LANGUAGE_RUSSIAN } else { - Language.ENGLISH_QWERTY.ordinal + LANGUAGE_ENGLISH_QWERTY } } } diff --git a/app/src/main/kotlin/com/simplemobiletools/keyboard/helpers/Constants.kt b/app/src/main/kotlin/com/simplemobiletools/keyboard/helpers/Constants.kt index a49ebf8..3045fde 100644 --- a/app/src/main/kotlin/com/simplemobiletools/keyboard/helpers/Constants.kt +++ b/app/src/main/kotlin/com/simplemobiletools/keyboard/helpers/Constants.kt @@ -75,6 +75,24 @@ const val SHOW_NUMBERS_ROW = "show_numbers_row" const val ITEM_SECTION_LABEL = 0 const val ITEM_CLIP = 1 +const val LANGUAGE_ENGLISH_QWERTY = 0 +const val LANGUAGE_RUSSIAN = 1 +const val LANGUAGE_FRENCH = 2 +const val LANGUAGE_ENGLISH_QWERTZ = 3 +const val LANGUAGE_SPANISH = 4 +const val LANGUAGE_GERMAN = 5 +const val LANGUAGE_ENGLISH_DVORAK = 6 +const val LANGUAGE_ROMANIAN = 7 +const val LANGUAGE_SLOVENIAN = 8 +const val LANGUAGE_BULGARIAN = 9 +const val LANGUAGE_TURKISH_Q = 10 +const val LANGUAGE_LITHUANIAN = 11 +const val LANGUAGE_BENGALI = 12 +const val LANGUAGE_GREEK = 13 +const val LANGUAGE_NORWEGIAN = 14 +const val LANGUAGE_SWEDISH = 15 +const val LANGUAGE_DANISH = 16 + // keyboard height multiplier options const val KEYBOARD_HEIGHT_MULTIPLIER_SMALL = 1 const val KEYBOARD_HEIGHT_MULTIPLIER_MEDIUM = 2 diff --git a/app/src/main/kotlin/com/simplemobiletools/keyboard/helpers/Language.kt b/app/src/main/kotlin/com/simplemobiletools/keyboard/helpers/Language.kt deleted file mode 100644 index 5656b79..0000000 --- a/app/src/main/kotlin/com/simplemobiletools/keyboard/helpers/Language.kt +++ /dev/null @@ -1,83 +0,0 @@ -package com.simplemobiletools.keyboard.helpers - -import android.content.Context -import androidx.annotation.StringRes -import com.simplemobiletools.keyboard.R - -enum class Language(@StringRes private val stringRes: Int, private val layout: Int) { - BENGALI( - R.string.translation_bengali, R.xml.keys_letters_bengali - ), - BULGARIAN( - R.string.translation_bulgarian, R.xml.keys_letters_bulgarian - ), - DANISH( - R.string.translation_danish, R.xml.keys_letters_danish - ), - ENGLISH_DVORAK( - R.string.translation_english, R.xml.keys_letters_english_dvorak - ), - ENGLISH_QWERTY( - R.string.translation_english, R.xml.keys_letters_english_qwerty - ), - ENGLISH_QWERTZ( - R.string.translation_english, R.xml.keys_letters_english_qwertz - ), - FRENCH( - R.string.translation_french, R.xml.keys_letters_french - ), - GERMAN( - R.string.translation_german, R.xml.keys_letters_german - ), - GREEK( - R.string.translation_greek, R.xml.keys_letters_greek - ), - LITHUANIAN( - R.string.translation_lithuanian, R.xml.keys_letters_lithuanian - ), - NORWEGIAN( - R.string.translation_norwegian, R.xml.keys_letters_norwegian - ), - ROMANIAN( - R.string.translation_romanian, R.xml.keys_letters_romanian - ), - RUSSIAN( - R.string.translation_russian, R.xml.keys_letters_russian - ), - SLOVENIAN( - R.string.translation_slovenian, R.xml.keys_letters_slovenian - ), - SPANISH( - R.string.translation_spanish, R.string.translation_spanish - ), - SWEDISH( - R.string.translation_swedish, R.xml.keys_letters_swedish - ), - TURKISH_Q( - R.string.translation_turkish, R.xml.keys_letters_turkish_q - ); - - 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 sorted(context: Context) = Language.values().sortedBy { context.getString(it.stringRes) } - - 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) - } - } - -} diff --git a/app/src/main/kotlin/com/simplemobiletools/keyboard/services/SimpleKeyboardIME.kt b/app/src/main/kotlin/com/simplemobiletools/keyboard/services/SimpleKeyboardIME.kt index 2c6faa8..fc6c529 100644 --- a/app/src/main/kotlin/com/simplemobiletools/keyboard/services/SimpleKeyboardIME.kt +++ b/app/src/main/kotlin/com/simplemobiletools/keyboard/services/SimpleKeyboardIME.kt @@ -294,7 +294,27 @@ class SimpleKeyboardIME : InputMethodService(), MyKeyboardView.OnKeyboardActionL } } - private fun getKeyboardLayoutXML() = Language.getKeyboardLayout(baseContext.config.keyboardLanguage) + private fun getKeyboardLayoutXML(): Int { + return when (baseContext.config.keyboardLanguage) { + LANGUAGE_BENGALI -> R.xml.keys_letters_bengali + LANGUAGE_BULGARIAN -> R.xml.keys_letters_bulgarian + LANGUAGE_DANISH -> R.xml.keys_letters_danish + 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_NORWEGIAN -> R.xml.keys_letters_norwegian + LANGUAGE_ROMANIAN -> R.xml.keys_letters_romanian + LANGUAGE_RUSSIAN -> R.xml.keys_letters_russian + LANGUAGE_SLOVENIAN -> R.xml.keys_letters_slovenian + LANGUAGE_SWEDISH -> R.xml.keys_letters_swedish + 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?) { keyboardView?.setupKeyboard()