diff --git a/app/build.gradle b/app/build.gradle index 564482c1..604beb64 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -64,7 +64,7 @@ android { } dependencies { - implementation 'com.github.SimpleMobileTools:Simple-Commons:49c2c3da51' + implementation 'com.github.SimpleMobileTools:Simple-Commons:81809a9339' kapt 'androidx.room:room-compiler:2.3.0' implementation 'androidx.room:room-runtime:2.3.0' 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 02cd8204..f24cce08 100644 --- a/app/src/main/kotlin/com/simplemobiletools/keyboard/activities/SettingsActivity.kt +++ b/app/src/main/kotlin/com/simplemobiletools/keyboard/activities/SettingsActivity.kt @@ -3,9 +3,13 @@ package com.simplemobiletools.keyboard.activities import android.content.Intent import android.os.Bundle import android.view.Menu +import com.simplemobiletools.commons.dialogs.RadioGroupDialog import com.simplemobiletools.commons.extensions.* +import com.simplemobiletools.commons.models.RadioItem import com.simplemobiletools.keyboard.R import com.simplemobiletools.keyboard.extensions.config +import com.simplemobiletools.keyboard.helpers.LANGUAGE_ENGLISH +import com.simplemobiletools.keyboard.helpers.LANGUAGE_RUSSIAN import kotlinx.android.synthetic.main.activity_settings.* import java.util.* import kotlin.system.exitProcess @@ -26,6 +30,7 @@ class SettingsActivity : SimpleActivity() { setupManageClipboardItems() setupVibrateOnKeypress() setupShowPopupOnKeypress() + setupKeyboardLanguage() updateTextColors(settings_scrollview) @@ -101,4 +106,26 @@ class SettingsActivity : SimpleActivity() { config.showPopupOnKeypress = settings_show_popup_on_keypress.isChecked } } + + private fun setupKeyboardLanguage() { + settings_keyboard_language.text = getKeyboardLanguageText() + settings_keyboard_language_holder.setOnClickListener { + val items = arrayListOf( + RadioItem(LANGUAGE_ENGLISH, getString(R.string.translation_english)), + RadioItem(LANGUAGE_RUSSIAN, getString(R.string.translation_russian)) + ) + + RadioGroupDialog(this@SettingsActivity, items, config.keyboardLanguage) { + config.keyboardLanguage = it as Int + settings_keyboard_language.text = getKeyboardLanguageText() + } + } + } + + fun getKeyboardLanguageText() = getString( + when (config.keyboardLanguage) { + LANGUAGE_RUSSIAN -> R.string.translation_russian + else -> R.string.translation_english + } + ) } 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 5ff51ef2..4ed3af67 100644 --- a/app/src/main/kotlin/com/simplemobiletools/keyboard/helpers/Config.kt +++ b/app/src/main/kotlin/com/simplemobiletools/keyboard/helpers/Config.kt @@ -2,6 +2,7 @@ package com.simplemobiletools.keyboard.helpers import android.content.Context import com.simplemobiletools.commons.helpers.BaseConfig +import java.util.* class Config(context: Context) : BaseConfig(context) { companion object { @@ -20,7 +21,16 @@ class Config(context: Context) : BaseConfig(context) { get() = prefs.getString(LAST_EXPORTED_CLIPS_FOLDER, "")!! set(lastExportedClipsFolder) = prefs.edit().putString(LAST_EXPORTED_CLIPS_FOLDER, lastExportedClipsFolder).apply() - var keyboardLanguage: String - get() = prefs.getString(KEYBOARD_LANGUAGE, "en")!! - set(keyboardLanguage) = prefs.edit().putString(KEYBOARD_LANGUAGE, keyboardLanguage).apply() + var keyboardLanguage: Int + get() = prefs.getInt(KEYBOARD_LANGUAGE, getDefaultLanguage()) + set(keyboardLanguage) = prefs.edit().putInt(KEYBOARD_LANGUAGE, keyboardLanguage).apply() + + private fun getDefaultLanguage(): Int { + val conf = context.resources.configuration + return if (conf.locale.toString().toLowerCase(Locale.getDefault()).startsWith("ru_")) { + LANGUAGE_RUSSIAN + } else { + LANGUAGE_ENGLISH + } + } } 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 2b6a40bf..af30f6ba 100644 --- a/app/src/main/kotlin/com/simplemobiletools/keyboard/helpers/Constants.kt +++ b/app/src/main/kotlin/com/simplemobiletools/keyboard/helpers/Constants.kt @@ -16,3 +16,6 @@ const val KEYBOARD_LANGUAGE = "keyboard_language" // differentiate current and pinned clips at the keyboards' Clipboard section const val ITEM_SECTION_LABEL = 0 const val ITEM_CLIP = 1 + +const val LANGUAGE_ENGLISH = 0 +const val LANGUAGE_RUSSIAN = 1 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 9e9bf89f..708b8abb 100644 --- a/app/src/main/kotlin/com/simplemobiletools/keyboard/services/SimpleKeyboardIME.kt +++ b/app/src/main/kotlin/com/simplemobiletools/keyboard/services/SimpleKeyboardIME.kt @@ -10,10 +10,7 @@ import android.view.inputmethod.EditorInfo.IME_ACTION_NONE import android.view.inputmethod.ExtractedTextRequest import com.simplemobiletools.keyboard.R import com.simplemobiletools.keyboard.extensions.config -import com.simplemobiletools.keyboard.helpers.MyKeyboard -import com.simplemobiletools.keyboard.helpers.SHIFT_OFF -import com.simplemobiletools.keyboard.helpers.SHIFT_ON_ONE_CHAR -import com.simplemobiletools.keyboard.helpers.SHIFT_ON_PERMANENT +import com.simplemobiletools.keyboard.helpers.* import com.simplemobiletools.keyboard.views.MyKeyboardView import kotlinx.android.synthetic.main.keyboard_view_keyboard.view.* @@ -216,7 +213,7 @@ class SimpleKeyboardIME : InputMethodService(), MyKeyboardView.OnKeyboardActionL private fun getKeyboardLayoutXML(): Int { return when (baseContext.config.keyboardLanguage) { - "ru" -> R.xml.keys_letters_russian + LANGUAGE_RUSSIAN -> R.xml.keys_letters_russian else -> R.xml.keys_letters_english } } diff --git a/app/src/main/res/layout/activity_settings.xml b/app/src/main/res/layout/activity_settings.xml index 3e209358..8a994608 100644 --- a/app/src/main/res/layout/activity_settings.xml +++ b/app/src/main/res/layout/activity_settings.xml @@ -1,5 +1,6 @@ @@ -126,7 +127,7 @@ style="@style/SettingsHolderCheckboxStyle" android:layout_width="match_parent" android:layout_height="wrap_content" - android:background="@drawable/ripple_bottom_corners"> + android:background="@drawable/ripple_background"> + + + + + + + +