From e7a02cf4601408ce988f792f3e1e454098a0de96 Mon Sep 17 00:00:00 2001 From: darthpaul Date: Sun, 6 Nov 2022 11:39:42 +0000 Subject: [PATCH] extract method to get keyboard languages to Context extension --- .../keyboard/activities/SettingsActivity.kt | 37 ++--------------- .../keyboard/dialogs/ChangeLanguagePopup.kt | 39 +----------------- .../keyboard/extensions/Context.kt | 40 ++++++++++++++++++- 3 files changed, 44 insertions(+), 72 deletions(-) diff --git a/app/src/main/kotlin/com/simplemobiletools/keyboard/activities/SettingsActivity.kt b/app/src/main/kotlin/com/simplemobiletools/keyboard/activities/SettingsActivity.kt index 5565aed..3a19ffc 100644 --- a/app/src/main/kotlin/com/simplemobiletools/keyboard/activities/SettingsActivity.kt +++ b/app/src/main/kotlin/com/simplemobiletools/keyboard/activities/SettingsActivity.kt @@ -9,6 +9,8 @@ import com.simplemobiletools.commons.helpers.isTiramisuPlus import com.simplemobiletools.commons.models.RadioItem import com.simplemobiletools.keyboard.R import com.simplemobiletools.keyboard.extensions.config +import com.simplemobiletools.keyboard.extensions.getKeyboardLanguageText +import com.simplemobiletools.keyboard.extensions.getKeyboardLanguages import com.simplemobiletools.keyboard.helpers.* import kotlinx.android.synthetic.main.activity_settings.* import java.util.* @@ -117,22 +119,7 @@ class SettingsActivity : SimpleActivity() { private fun setupKeyboardLanguage() { settings_keyboard_language.text = getKeyboardLanguageText(config.keyboardLanguage) settings_keyboard_language_holder.setOnClickListener { - val items = arrayListOf( - RadioItem(LANGUAGE_BENGALI, getKeyboardLanguageText(LANGUAGE_BENGALI)), - 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_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)), - ) - + val items = getKeyboardLanguages() RadioGroupDialog(this@SettingsActivity, items, config.keyboardLanguage) { config.keyboardLanguage = it as Int settings_keyboard_language.text = getKeyboardLanguageText(config.keyboardLanguage) @@ -140,24 +127,6 @@ class SettingsActivity : SimpleActivity() { } } - private fun getKeyboardLanguageText(language: Int): String { - 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_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)" - } - } - private fun setupKeyboardHeightMultiplier() { settings_keyboard_height_multiplier.text = getKeyboardHeightMultiplierText(config.keyboardHeightMultiplier) settings_keyboard_height_multiplier_holder.setOnClickListener { diff --git a/app/src/main/kotlin/com/simplemobiletools/keyboard/dialogs/ChangeLanguagePopup.kt b/app/src/main/kotlin/com/simplemobiletools/keyboard/dialogs/ChangeLanguagePopup.kt index 28946c9..53538bd 100644 --- a/app/src/main/kotlin/com/simplemobiletools/keyboard/dialogs/ChangeLanguagePopup.kt +++ b/app/src/main/kotlin/com/simplemobiletools/keyboard/dialogs/ChangeLanguagePopup.kt @@ -1,10 +1,8 @@ package com.simplemobiletools.keyboard.dialogs import android.view.View -import com.simplemobiletools.commons.models.RadioItem -import com.simplemobiletools.keyboard.R import com.simplemobiletools.keyboard.extensions.config -import com.simplemobiletools.keyboard.helpers.* +import com.simplemobiletools.keyboard.extensions.getKeyboardLanguages class ChangeLanguagePopup( inputView: View, @@ -14,43 +12,10 @@ class ChangeLanguagePopup( private val config = context.config init { - val items = arrayListOf( - RadioItem(LANGUAGE_BENGALI, getKeyboardLanguageText(LANGUAGE_BENGALI)), - 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_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)) - ) - + val items = context.getKeyboardLanguages() KeyboardRadioGroupDialog(inputView, items, config.keyboardLanguage) { config.keyboardLanguage = it as Int onSelect.invoke() } } - - private fun getKeyboardLanguageText(language: Int): String { - return when (language) { - LANGUAGE_BENGALI -> context.getString(R.string.translation_bengali) - LANGUAGE_BULGARIAN -> context.getString(R.string.translation_bulgarian) - LANGUAGE_ENGLISH_DVORAK -> "${context.getString(R.string.translation_english)} (DVORAK)" - LANGUAGE_ENGLISH_QWERTZ -> "${context.getString(R.string.translation_english)} (QWERTZ)" - LANGUAGE_FRENCH -> context.getString(R.string.translation_french) - LANGUAGE_GERMAN -> context.getString(R.string.translation_german) - LANGUAGE_LITHUANIAN -> context.getString(R.string.translation_lithuanian) - LANGUAGE_ROMANIAN -> context.getString(R.string.translation_romanian) - LANGUAGE_RUSSIAN -> context.getString(R.string.translation_russian) - LANGUAGE_SLOVENIAN -> context.getString(R.string.translation_slovenian) - LANGUAGE_SPANISH -> context.getString(R.string.translation_spanish) - LANGUAGE_TURKISH_Q -> "${context.getString(R.string.translation_turkish)} (Q)" - else -> "${context.getString(R.string.translation_english)} (QWERTY)" - } - } } 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 dea328e..55d9aa9 100644 --- a/app/src/main/kotlin/com/simplemobiletools/keyboard/extensions/Context.kt +++ b/app/src/main/kotlin/com/simplemobiletools/keyboard/extensions/Context.kt @@ -14,10 +14,11 @@ import androidx.appcompat.app.AlertDialog import androidx.core.content.res.ResourcesCompat import com.google.android.material.dialog.MaterialAlertDialogBuilder import com.simplemobiletools.commons.extensions.* +import com.simplemobiletools.commons.models.RadioItem import com.simplemobiletools.commons.views.MyTextView import com.simplemobiletools.keyboard.R import com.simplemobiletools.keyboard.databases.ClipsDatabase -import com.simplemobiletools.keyboard.helpers.Config +import com.simplemobiletools.keyboard.helpers.* import com.simplemobiletools.keyboard.interfaces.ClipsDao val Context.config: Config get() = Config.newInstance(applicationContext) @@ -146,3 +147,40 @@ fun Context.setupKeyboardDialogStuff( } } } + +fun Context.getKeyboardLanguages(): ArrayList { + return arrayListOf( + RadioItem(LANGUAGE_BENGALI, getKeyboardLanguageText(LANGUAGE_BENGALI)), + 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_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 { + 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_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)" + } +} +