Merge branch 'main' into talkback_improvements

# Conflicts:
#	app/src/main/kotlin/com/simplemobiletools/keyboard/views/MyKeyboardView.kt
This commit is contained in:
merkost 2023-06-09 10:38:37 +10:00
commit bd03b19a56
56 changed files with 853 additions and 112 deletions

View File

@ -44,6 +44,7 @@ class SettingsActivity : SimpleActivity() {
setupKeyboardLanguage()
setupKeyboardHeightMultiplier()
setupShowClipboardContent()
setupSentencesCapitalization()
setupShowNumbersRow()
updateTextColors(settings_nested_scrollview)
@ -160,6 +161,15 @@ class SettingsActivity : SimpleActivity() {
config.showClipboardContent = settings_show_clipboard_content.isChecked
}
}
private fun setupSentencesCapitalization() {
settings_start_sentences_capitalized.isChecked = config.enableSentencesCapitalization
settings_start_sentences_capitalized_holder.setOnClickListener {
settings_start_sentences_capitalized.toggle()
config.enableSentencesCapitalization = settings_start_sentences_capitalized.isChecked
}
}
private fun setupShowNumbersRow() {
settings_show_numbers_row.isChecked = config.showNumbersRow
settings_show_numbers_row_holder.setOnClickListener {

View File

@ -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
@ -152,6 +148,7 @@ fun Context.getKeyboardLanguages(): ArrayList<RadioItem> {
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)),
@ -159,10 +156,12 @@ fun Context.getKeyboardLanguages(): ArrayList<RadioItem> {
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)),
)
}
@ -171,18 +170,22 @@ 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)"
}
}

View File

@ -17,6 +17,10 @@ class Config(context: Context) : BaseConfig(context) {
get() = prefs.getBoolean(SHOW_POPUP_ON_KEYPRESS, true)
set(showPopupOnKeypress) = prefs.edit().putBoolean(SHOW_POPUP_ON_KEYPRESS, showPopupOnKeypress).apply()
var enableSentencesCapitalization: Boolean
get() = prefs.getBoolean(SENTENCES_CAPITALIZATION, true)
set(enableCapitalization) = prefs.edit().putBoolean(SENTENCES_CAPITALIZATION, enableCapitalization).apply()
var showKeyBorders: Boolean
get() = prefs.getBoolean(SHOW_KEY_BORDERS, false)
set(showKeyBorders) = prefs.edit().putBoolean(SHOW_KEY_BORDERS, showKeyBorders).apply()

View File

@ -1,8 +1,11 @@
package com.simplemobiletools.keyboard.helpers
const val SHIFT_OFF = 0
const val SHIFT_ON_ONE_CHAR = 1
const val SHIFT_ON_PERMANENT = 2
enum class ShiftState {
OFF,
ON_ONE_CHAR,
ON_PERMANENT;
}
// limit the count of alternative characters that show up at long pressing a key
const val MAX_KEYS_PER_MINI_ROW = 9
@ -11,6 +14,7 @@ const val MAX_KEYS_PER_MINI_ROW = 9
const val VIBRATE_ON_KEYPRESS = "vibrate_on_keypress"
const val SHOW_POPUP_ON_KEYPRESS = "show_popup_on_keypress"
const val SHOW_KEY_BORDERS = "show_key_borders"
const val SENTENCES_CAPITALIZATION = "sentences_capitalization"
const val LAST_EXPORTED_CLIPS_FOLDER = "last_exported_clips_folder"
const val KEYBOARD_LANGUAGE = "keyboard_language"
const val HEIGHT_MULTIPLIER = "height_multiplier"
@ -35,6 +39,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

View File

@ -34,7 +34,7 @@ class MyKeyboard {
var mKeyboardHeightMultiplier: Float = 1F
/** Is the keyboard in the shifted state */
var mShiftState = SHIFT_OFF
var mShiftState = ShiftState.OFF
/** Total height of the keyboard, including the padding and keys */
var mHeight = 0
@ -201,8 +201,14 @@ class MyKeyboard {
a.recycle()
a = res.obtainAttributes(Xml.asAttributeSet(parser), R.styleable.MyKeyboard_Key)
label = a.getText(R.styleable.MyKeyboard_Key_keyLabel) ?: ""
code = a.getInt(R.styleable.MyKeyboard_Key_code, 0)
if (label.isNotEmpty() && code == 0) {
code = label[0].code
}
popupCharacters = a.getText(R.styleable.MyKeyboard_Key_popupCharacters)
popupResId = a.getResourceId(R.styleable.MyKeyboard_Key_popupKeyboard, 0)
repeatable = a.getBoolean(R.styleable.MyKeyboard_Key_isRepeatable, false)
@ -213,12 +219,9 @@ class MyKeyboard {
secondaryIcon = a.getDrawable(R.styleable.MyKeyboard_Key_secondaryKeyIcon)
secondaryIcon?.setBounds(0, 0, secondaryIcon!!.intrinsicWidth, secondaryIcon!!.intrinsicHeight)
label = a.getText(R.styleable.MyKeyboard_Key_keyLabel) ?: ""
topSmallNumber = a.getString(R.styleable.MyKeyboard_Key_topSmallNumber) ?: ""
if (label.isNotEmpty() && code != KEYCODE_MODE_CHANGE && code != KEYCODE_SHIFT) {
code = label[0].code
}
a.recycle()
}
@ -274,12 +277,7 @@ class MyKeyboard {
fun isInside(x: Int, y: Int): Boolean {
val leftEdge = edgeFlags and EDGE_LEFT > 0
val rightEdge = edgeFlags and EDGE_RIGHT > 0
return (
(x >= this.x || leftEdge && x <= this.x + width) &&
(x < this.x + width || rightEdge && x >= this.x) &&
(y >= this.y && y <= this.y + height) &&
(y < this.y + height && y >= this.y)
)
return ((x >= this.x || leftEdge && x <= this.x + width) && (x < this.x + width || rightEdge && x >= this.x) && (y >= this.y && y <= this.y + height) && (y < this.y + height && y >= this.y))
}
}
@ -309,8 +307,7 @@ class MyKeyboard {
* @param characters the list of characters to display on the keyboard. One key will be created for each character.
* @param keyWidth the width of the popup key, make sure it is the same as the key itself
*/
constructor(context: Context, layoutTemplateResId: Int, characters: CharSequence, keyWidth: Int) :
this(context, layoutTemplateResId, 0) {
constructor(context: Context, layoutTemplateResId: Int, characters: CharSequence, keyWidth: Int) : this(context, layoutTemplateResId, 0) {
var x = 0
var y = 0
var column = 0
@ -347,12 +344,11 @@ class MyKeyboard {
mRows.add(row)
}
fun setShifted(shiftState: Int): Boolean {
fun setShifted(shiftState: ShiftState): Boolean {
if (this.mShiftState != shiftState) {
this.mShiftState = shiftState
return true
}
return false
}

View File

@ -2,11 +2,7 @@ package com.simplemobiletools.keyboard.services
import android.content.SharedPreferences
import android.inputmethodservice.InputMethodService
import android.text.InputType
import android.text.InputType.TYPE_CLASS_DATETIME
import android.text.InputType.TYPE_CLASS_NUMBER
import android.text.InputType.TYPE_CLASS_PHONE
import android.text.InputType.TYPE_MASK_CLASS
import android.text.InputType.*
import android.text.TextUtils
import android.view.KeyEvent
import android.view.View
@ -36,13 +32,13 @@ class SimpleKeyboardIME : InputMethodService(), OnKeyboardActionListener, Shared
private var keyboardView: MyKeyboardView? = null
private var lastShiftPressTS = 0L
private var keyboardMode = KEYBOARD_LETTERS
private var inputTypeClass = InputType.TYPE_CLASS_TEXT
private var inputTypeClass = TYPE_CLASS_TEXT
private var inputTypeClassVariation = TYPE_CLASS_TEXT
private var enterKeyType = IME_ACTION_NONE
private var switchToLetters = false
override fun onInitializeInterface() {
super.onInitializeInterface()
keyboard = MyKeyboard(this, getKeyboardLayoutXML(), enterKeyType)
getSharedPrefs().registerOnSharedPreferenceChangeListener(this)
}
@ -65,24 +61,31 @@ class SimpleKeyboardIME : InputMethodService(), OnKeyboardActionListener, Shared
override fun onStartInput(attribute: EditorInfo?, restarting: Boolean) {
super.onStartInput(attribute, restarting)
inputTypeClass = attribute!!.inputType and TYPE_MASK_CLASS
enterKeyType = attribute.imeOptions and (IME_MASK_ACTION or IME_FLAG_NO_ENTER_ACTION)
inputTypeClassVariation = attribute.inputType and TYPE_MASK_VARIATION
keyboard = getKeyBoard()
enterKeyType = attribute.imeOptions and (IME_MASK_ACTION or IME_FLAG_NO_ENTER_ACTION)
keyboard = createNewKeyboard()
keyboardView?.setKeyboard(keyboard!!)
keyboardView?.setEditorInfo(attribute)
updateShiftKeyState()
updateShiftKeyState(null)
}
private fun updateShiftKeyState() {
if (keyboardMode == KEYBOARD_LETTERS) {
val editorInfo = currentInputEditorInfo
if (editorInfo != null && editorInfo.inputType != InputType.TYPE_NULL && keyboard?.mShiftState != SHIFT_ON_PERMANENT) {
if (currentInputConnection.getCursorCapsMode(editorInfo.inputType) != 0) {
keyboard?.setShifted(SHIFT_ON_ONE_CHAR)
keyboardView?.invalidateAllKeys()
}
private fun updateShiftKeyState(code: Int?) {
if (code == MyKeyboard.KEYCODE_SHIFT) {
return
}
val editorInfo = currentInputEditorInfo
if (config.enableSentencesCapitalization && editorInfo != null && editorInfo.inputType != TYPE_NULL) {
if (currentInputConnection.getCursorCapsMode(editorInfo.inputType) != 0) {
keyboard?.setShifted(ShiftState.ON_ONE_CHAR)
keyboardView?.invalidateAllKeys()
return
}
}
keyboard?.setShifted(ShiftState.OFF)
keyboardView?.invalidateAllKeys()
}
override fun onKey(code: Int) {
@ -97,10 +100,6 @@ class SimpleKeyboardIME : InputMethodService(), OnKeyboardActionListener, Shared
when (code) {
MyKeyboard.KEYCODE_DELETE -> {
if (keyboard!!.mShiftState == SHIFT_ON_ONE_CHAR) {
keyboard!!.mShiftState = SHIFT_OFF
}
val selectedText = inputConnection.getSelectedText(0)
if (TextUtils.isEmpty(selectedText)) {
inputConnection.sendKeyEvent(KeyEvent(KeyEvent.ACTION_DOWN, KeyEvent.KEYCODE_DEL))
@ -108,15 +107,14 @@ class SimpleKeyboardIME : InputMethodService(), OnKeyboardActionListener, Shared
} else {
inputConnection.commitText("", 1)
}
keyboardView!!.invalidateAllKeys()
}
MyKeyboard.KEYCODE_SHIFT -> {
if (keyboardMode == KEYBOARD_LETTERS) {
when {
keyboard!!.mShiftState == SHIFT_ON_PERMANENT -> keyboard!!.mShiftState = SHIFT_OFF
System.currentTimeMillis() - lastShiftPressTS < SHIFT_PERM_TOGGLE_SPEED -> keyboard!!.mShiftState = SHIFT_ON_PERMANENT
keyboard!!.mShiftState == SHIFT_ON_ONE_CHAR -> keyboard!!.mShiftState = SHIFT_OFF
keyboard!!.mShiftState == SHIFT_OFF -> keyboard!!.mShiftState = SHIFT_ON_ONE_CHAR
keyboard!!.mShiftState == ShiftState.ON_PERMANENT -> keyboard!!.mShiftState = ShiftState.OFF
System.currentTimeMillis() - lastShiftPressTS < SHIFT_PERM_TOGGLE_SPEED -> keyboard!!.mShiftState = ShiftState.ON_PERMANENT
keyboard!!.mShiftState == ShiftState.ON_ONE_CHAR -> keyboard!!.mShiftState = ShiftState.OFF
keyboard!!.mShiftState == ShiftState.OFF -> keyboard!!.mShiftState = ShiftState.ON_ONE_CHAR
}
lastShiftPressTS = System.currentTimeMillis()
@ -158,43 +156,43 @@ class SimpleKeyboardIME : InputMethodService(), OnKeyboardActionListener, Shared
}
else -> {
var codeChar = code.toChar()
if (Character.isLetter(codeChar) && keyboard!!.mShiftState > SHIFT_OFF) {
val originalText = inputConnection.getExtractedText(ExtractedTextRequest(), 0)?.text ?: return
if (Character.isLetter(codeChar) && keyboard!!.mShiftState > ShiftState.OFF) {
codeChar = Character.toUpperCase(codeChar)
}
// If the keyboard is set to symbols and the user presses space, we usually should switch back to the letters keyboard.
// However, avoid doing that in cases when the EditText for example requires numbers as the input.
// We can detect that by the text not changing on pressing Space.
if (keyboardMode != KEYBOARD_LETTERS && code == MyKeyboard.KEYCODE_SPACE) {
val originalText = inputConnection.getExtractedText(ExtractedTextRequest(), 0)?.text ?: return
if (keyboardMode != KEYBOARD_LETTERS && inputTypeClass == TYPE_CLASS_TEXT && code == MyKeyboard.KEYCODE_SPACE) {
inputConnection.commitText(codeChar.toString(), 1)
val newText = inputConnection.getExtractedText(ExtractedTextRequest(), 0)?.text
switchToLetters = originalText != newText
if (originalText != newText) {
switchToLetters = true
}
} else {
inputConnection.commitText(codeChar.toString(), 1)
}
if (keyboard!!.mShiftState == SHIFT_ON_ONE_CHAR && keyboardMode == KEYBOARD_LETTERS) {
keyboard!!.mShiftState = SHIFT_OFF
keyboardView!!.invalidateAllKeys()
}
}
}
if (code != MyKeyboard.KEYCODE_SHIFT) {
updateShiftKeyState()
if (keyboard!!.mShiftState != ShiftState.ON_PERMANENT) {
updateShiftKeyState(code)
}
}
override fun onActionUp() {
if (switchToLetters) {
// TODO: Change keyboardMode to enum class
keyboardMode = KEYBOARD_LETTERS
keyboard = MyKeyboard(this, getKeyboardLayoutXML(), enterKeyType)
val editorInfo = currentInputEditorInfo
if (editorInfo != null && editorInfo.inputType != InputType.TYPE_NULL && keyboard?.mShiftState != SHIFT_ON_PERMANENT) {
if (editorInfo != null && editorInfo.inputType != TYPE_NULL && keyboard?.mShiftState != ShiftState.ON_PERMANENT) {
if (currentInputConnection.getCursorCapsMode(editorInfo.inputType) != 0) {
keyboard?.setShifted(SHIFT_ON_ONE_CHAR)
keyboard?.setShifted(ShiftState.ON_ONE_CHAR)
}
}
@ -216,12 +214,12 @@ class SimpleKeyboardIME : InputMethodService(), OnKeyboardActionListener, Shared
}
override fun reloadKeyboard() {
val keyboard = getKeyBoard()
val keyboard = createNewKeyboard()
this.keyboard = keyboard
keyboardView?.setKeyboard(keyboard)
}
private fun getKeyBoard(): MyKeyboard {
private fun createNewKeyboard(): MyKeyboard {
val keyboardXml = when (inputTypeClass) {
TYPE_CLASS_NUMBER -> {
keyboardMode = KEYBOARD_NUMBERS
@ -240,8 +238,11 @@ class SimpleKeyboardIME : InputMethodService(), OnKeyboardActionListener, Shared
getKeyboardLayoutXML()
}
}
return MyKeyboard(this, keyboardXml, enterKeyType)
return MyKeyboard(
context = this,
xmlLayoutResId = keyboardXml,
enterKeyType = enterKeyType,
)
}
override fun onUpdateSelection(oldSelStart: Int, oldSelEnd: Int, newSelStart: Int, newSelEnd: Int, candidatesStart: Int, candidatesEnd: Int) {
@ -275,15 +276,18 @@ class SimpleKeyboardIME : InputMethodService(), OnKeyboardActionListener, Shared
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

View File

@ -56,7 +56,7 @@ import kotlinx.android.synthetic.main.keyboard_popup_keyboard.view.*
import kotlinx.android.synthetic.main.keyboard_view_keyboard.view.*
import java.util.*
@SuppressLint("UseCompatLoadingForDrawables")
@SuppressLint("UseCompatLoadingForDrawables", "ClickableViewAccessibility")
class MyKeyboardView @JvmOverloads constructor(context: Context, attrs: AttributeSet?, defStyleRes: Int = 0) :
View(context, attrs, defStyleRes) {
@ -496,7 +496,7 @@ class MyKeyboardView @JvmOverloads constructor(context: Context, attrs: Attribut
* @param shifted whether or not to enable the state of the shift key
* @return true if the shift key state changed, false if there was no change
*/
private fun setShifted(shiftState: Int) {
private fun setShifted(shiftState: ShiftState) {
if (mKeyboard?.setShifted(shiftState) == true) {
invalidateAllKeys()
}
@ -507,7 +507,7 @@ class MyKeyboardView @JvmOverloads constructor(context: Context, attrs: Attribut
* @return true if the shift is in a pressed state, false otherwise
*/
private fun isShifted(): Boolean {
return (mKeyboard?.mShiftState ?: SHIFT_OFF) > SHIFT_OFF
return (mKeyboard?.mShiftState ?: ShiftState.OFF) > ShiftState.OFF
}
private fun setPopupOffset(x: Int, y: Int) {
@ -520,7 +520,7 @@ class MyKeyboardView @JvmOverloads constructor(context: Context, attrs: Attribut
private fun adjustCase(label: CharSequence): CharSequence? {
var newLabel: CharSequence? = label
if (!newLabel.isNullOrEmpty() && mKeyboard!!.mShiftState > SHIFT_OFF && newLabel.length < 3 && Character.isLowerCase(newLabel[0])) {
if (!newLabel.isNullOrEmpty() && mKeyboard!!.mShiftState != ShiftState.OFF && newLabel.length < 3 && Character.isLowerCase(newLabel[0])) {
newLabel = newLabel.toString().uppercase(Locale.getDefault())
}
return newLabel
@ -610,6 +610,8 @@ class MyKeyboardView @JvmOverloads constructor(context: Context, attrs: Attribut
for (i in 0 until keyCount) {
val key = keys[i]
val code = key.code
// TODO: Space key background on a KEYBOARD_PHONE should not be applied
setupKeyBackground(key, code, canvas)
// Switch the character to uppercase if shift is pressed
@ -643,8 +645,8 @@ class MyKeyboardView @JvmOverloads constructor(context: Context, attrs: Attribut
} else if (key.icon != null && mKeyboard != null) {
if (code == KEYCODE_SHIFT) {
val drawableId = when (mKeyboard!!.mShiftState) {
SHIFT_OFF -> R.drawable.ic_caps_outline_vector
SHIFT_ON_ONE_CHAR -> R.drawable.ic_caps_vector
ShiftState.OFF -> R.drawable.ic_caps_outline_vector
ShiftState.ON_ONE_CHAR -> R.drawable.ic_caps_vector
else -> R.drawable.ic_caps_underlined_vector
}
key.icon = resources.getDrawable(drawableId)
@ -715,9 +717,9 @@ class MyKeyboardView @JvmOverloads constructor(context: Context, attrs: Attribut
}
private fun setupKeyBackground(key: MyKeyboard.Key, keyCode: Int, canvas: Canvas) {
val keyBackground = when (keyCode) {
KEYCODE_SPACE -> getSpaceKeyBackground()
KEYCODE_ENTER -> getEnterKeyBackground()
val keyBackground = when {
keyCode == KEYCODE_SPACE && key.label.isBlank() -> getSpaceKeyBackground()
keyCode == KEYCODE_ENTER -> getEnterKeyBackground()
else -> mKeyBackground
}
@ -1170,7 +1172,7 @@ class MyKeyboardView @JvmOverloads constructor(context: Context, attrs: Attribut
mMiniKeyboardSelectedKeyIndex = selectedKeyIndex
mMiniKeyboard!!.invalidateAllKeys()
val miniShiftStatus = if (isShifted()) SHIFT_ON_PERMANENT else SHIFT_OFF
val miniShiftStatus = if (isShifted()) ShiftState.ON_PERMANENT else ShiftState.OFF
mMiniKeyboard!!.setShifted(miniShiftStatus)
mPopupKeyboard.contentView = mMiniKeyboardContainer
mPopupKeyboard.width = mMiniKeyboardContainer!!.measuredWidth

View File

@ -41,13 +41,32 @@
</RelativeLayout>
<com.simplemobiletools.commons.views.MyEditText
android:id="@+id/text_edittext"
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/change_keyboard_holder"
android:layout_margin="@dimen/activity_margin" />
android:orientation="vertical">
<com.simplemobiletools.commons.views.MyEditText
android:id="@+id/text_edittext"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/activity_margin"
android:layout_marginTop="@dimen/activity_margin"
android:layout_marginEnd="@dimen/activity_margin"
android:layout_marginBottom="@dimen/activity_margin" />
<com.simplemobiletools.commons.views.MyEditText
android:id="@+id/text_editphone"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/activity_margin"
android:layout_marginTop="@dimen/activity_margin"
android:layout_marginEnd="@dimen/activity_margin"
android:layout_marginBottom="@dimen/activity_margin"
android:inputType="phone" />
</LinearLayout>
</RelativeLayout>
</androidx.core.widget.NestedScrollView>
</androidx.coordinatorlayout.widget.CoordinatorLayout>

View File

@ -190,6 +190,7 @@
android:text="@string/show_clipboard_content" />
</RelativeLayout>
<RelativeLayout
android:id="@+id/settings_show_numbers_row_holder"
style="@style/SettingsHolderCheckboxStyle"
@ -205,6 +206,21 @@
</RelativeLayout>
<RelativeLayout
android:id="@+id/settings_start_sentences_capitalized_holder"
style="@style/SettingsHolderCheckboxStyle"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<com.simplemobiletools.commons.views.MyAppCompatCheckbox
android:id="@+id/settings_start_sentences_capitalized"
style="@style/SettingsCheckboxStyle"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/start_sentences_capitalized" />
</RelativeLayout>
<RelativeLayout
android:id="@+id/settings_keyboard_language_holder"
style="@style/SettingsHolderTextViewStyle"

View File

@ -34,10 +34,11 @@
<string name="keyboard_height">ارتفاع لوحة المفاتيح</string>
<string name="show_key_borders">إظهار حدود المفاتيح</string>
<string name="show_numbers_row">إظهار الأرقام في صف منفصل</string>
<string name="start_sentences_capitalized">بدء الجمل بحرف كبير</string>
<!-- Emojis -->
<string name="emojis">الرموز التعبيرية</string>
<!--
Haven't found some strings? There's more at
https://github.com/SimpleMobileTools/Simple-Commons/tree/master/commons/src/main/res
-->
</resources>
</resources>

View File

@ -34,10 +34,11 @@
<string name="keyboard_height">Вышыня клавіятуры</string>
<string name="show_key_borders">Паказаць контуры клавіш</string>
<string name="show_numbers_row">Паказаць лічбы ў асобным радку</string>
<string name="start_sentences_capitalized">Start sentences with a capital letter</string>
<!-- Emojis -->
<string name="emojis">Эмодзі</string>
<!--
Haven't found some strings? There's more at
https://github.com/SimpleMobileTools/Simple-Commons/tree/master/commons/src/main/res
-->
</resources>
</resources>

View File

@ -34,10 +34,11 @@
<string name="keyboard_height">Височина на клавиатурата</string>
<string name="show_key_borders">Show key borders</string>
<string name="show_numbers_row">Show numbers on a separate row</string>
<string name="start_sentences_capitalized">Start sentences with a capital letter</string>
<!-- Emojis -->
<string name="emojis">Емоджита</string>
<!--
Haven't found some strings? There's more at
https://github.com/SimpleMobileTools/Simple-Commons/tree/master/commons/src/main/res
-->
</resources>
</resources>

View File

@ -34,10 +34,11 @@
<string name="keyboard_height">Alçada del teclat</string>
<string name="show_key_borders">Mostra les vores de les tecles</string>
<string name="show_numbers_row">Mostra els números en una fila separada</string>
<string name="start_sentences_capitalized">Comença les frases amb una lletra majúscula</string>
<!-- Emojis -->
<string name="emojis">Emojis</string>
<!--
Haven't found some strings? There's more at
https://github.com/SimpleMobileTools/Simple-Commons/tree/master/commons/src/main/res
-->
</resources>
</resources>

View File

@ -34,6 +34,7 @@
<string name="keyboard_height">قەبارەی تەختەکلیل</string>
<string name="show_key_borders">لێواری دوگمەکان</string>
<string name="show_numbers_row">پیشاندانی لیستی ژمارەکان بەجیا</string>
<string name="start_sentences_capitalized">Start sentences with a capital letter</string>
<!-- Emojis -->
<string name="emojis">خەندەکان</string>
</resources>

View File

@ -34,6 +34,7 @@
<string name="keyboard_height">Výška klávesnice</string>
<string name="show_key_borders">Zobrazit ohraničení kláves</string>
<string name="show_numbers_row">Zobrazit čísla na samostatném řádku</string>
<string name="start_sentences_capitalized">Začínat věty velkým písmenem</string>
<!-- Emojis -->
<string name="emojis">Emotikony</string>
<!--

View File

@ -34,6 +34,7 @@
<string name="keyboard_height">Keyboard height</string>
<string name="show_key_borders">Show key borders</string>
<string name="show_numbers_row">Show numbers on a separate row</string>
<string name="start_sentences_capitalized">Start sentences with a capital letter</string>
<!-- Emojis -->
<string name="emojis">Emojis</string>
<!--

View File

@ -34,10 +34,11 @@
<string name="keyboard_height">Höhe der Tastatur</string>
<string name="show_key_borders">Tastenränder anzeigen</string>
<string name="show_numbers_row">Zahlen in einer separaten Zeile anzeigen</string>
<string name="start_sentences_capitalized">Sätze mit einem Großbuchstaben beginnen</string>
<!-- Emojis -->
<string name="emojis">Emojis</string>
<!--
Haven't found some strings? There's more at
https://github.com/SimpleMobileTools/Simple-Commons/tree/master/commons/src/main/res
-->
</resources>
</resources>

View File

@ -34,6 +34,7 @@
<string name="keyboard_height">Ύψος πληκτρολογίου</string>
<string name="show_key_borders">Εμφάνιση ορίων πλήκτρου</string>
<string name="show_numbers_row">Εμφάνιση αριθμών σε ξεχωριστή γραμμή</string>
<string name="start_sentences_capitalized">Αρχίστε τις προτάσεις με κεφαλαίο γράμμα</string>
<!-- Emojis -->
<string name="emojis">Emojis</string>
<!--

View File

@ -34,6 +34,7 @@
<string name="keyboard_height">Keyboard height</string>
<string name="show_key_borders">Show key borders</string>
<string name="show_numbers_row">Show numbers on a separate row</string>
<string name="start_sentences_capitalized">Start sentences with a capital letter</string>
<!-- Emojis -->
<string name="emojis">Emojis</string>
<!--

View File

@ -34,6 +34,7 @@
<string name="keyboard_height">Altura del teclado</string>
<string name="show_key_borders">Mostrar bordes de las teclas</string>
<string name="show_numbers_row">Mostrar los números en una fila separada</string>
<string name="start_sentences_capitalized">Empezar las frases con mayúsculas</string>
<!-- Emojis -->
<string name="emojis">Emoticonos</string>
<!--

View File

@ -34,6 +34,7 @@
<string name="keyboard_height">Klaviatuuri kõrgus</string>
<string name="show_key_borders">Näita klahvide ääriseid</string>
<string name="show_numbers_row">Näita numbreid eraldi real</string>
<string name="start_sentences_capitalized">Alusta lauseid suurtähega</string>
<!-- Emojis -->
<string name="emojis">Emojid</string>
<!--

View File

@ -34,10 +34,11 @@
<string name="keyboard_height">Näppäimistön korkeus</string>
<string name="show_key_borders">Näytä näppäinten ääriviivat</string>
<string name="show_numbers_row">Näytä erillinen numerorivi</string>
<string name="start_sentences_capitalized">Start sentences with a capital letter</string>
<!-- Emojis -->
<string name="emojis">Emojit</string>
<!--
Haven't found some strings? There's more at
https://github.com/SimpleMobileTools/Simple-Commons/tree/master/commons/src/main/res
-->
</resources>
</resources>

View File

@ -34,10 +34,11 @@
<string name="keyboard_height">Hauteur du clavier</string>
<string name="show_key_borders">Afficher les bordures des touches</string>
<string name="show_numbers_row">Afficher les chiffres sur une ligne distincte</string>
<string name="start_sentences_capitalized">Start sentences with a capital letter</string>
<!-- Emojis -->
<string name="emojis">Émojis</string>
<!--
Haven't found some strings? There's more at
https://github.com/SimpleMobileTools/Simple-Commons/tree/master/commons/src/main/res
-->
</resources>
</resources>

View File

@ -34,10 +34,11 @@
<string name="keyboard_height">Altura do teclado</string>
<string name="show_key_borders">Mostralos bordes das teclas</string>
<string name="show_numbers_row">Mostralos números nunha fila afastada</string>
<string name="start_sentences_capitalized">Start sentences with a capital letter</string>
<!-- Emojis -->
<string name="emojis">Emoticona</string>
<!--
Haven't found some strings? There's more at
https://github.com/SimpleMobileTools/Simple-Commons/tree/master/commons/src/main/res
-->
</resources>
</resources>

View File

@ -34,10 +34,11 @@
<string name="keyboard_height">Visina tipkovnice</string>
<string name="show_key_borders">Prikaži obrube ključeva</string>
<string name="show_numbers_row">Pokaži brojeve u zasebnom retku</string>
<string name="start_sentences_capitalized">Počni rečenice s velikim slovom</string>
<!-- Emojis -->
<string name="emojis">Emoji</string>
<!--
Haven't found some strings? There's more at
https://github.com/SimpleMobileTools/Simple-Commons/tree/master/commons/src/main/res
-->
</resources>
</resources>

View File

@ -34,10 +34,11 @@
<string name="keyboard_height">Billentyűzet magassága</string>
<string name="show_key_borders">Gombszélek megjelenítése</string>
<string name="show_numbers_row">Számok megjelenítése külön sorban</string>
<string name="start_sentences_capitalized">Start sentences with a capital letter</string>
<!-- Emojis -->
<string name="emojis">Emojik</string>
<!--
Haven't found some strings? There's more at
https://github.com/SimpleMobileTools/Simple-Commons/tree/master/commons/src/main/res
-->
</resources>
</resources>

View File

@ -34,10 +34,11 @@
<string name="keyboard_height">Tinggi papan tik</string>
<string name="show_key_borders">Tampilkan garis luar tombol</string>
<string name="show_numbers_row">Tampilkan nomor di baris terpisah</string>
<string name="start_sentences_capitalized">Start sentences with a capital letter</string>
<!-- Emojis -->
<string name="emojis">Emoji</string>
<!--
Haven't found some strings? There's more at
https://github.com/SimpleMobileTools/Simple-Commons/tree/master/commons/src/main/res
-->
</resources>
</resources>

View File

@ -34,10 +34,11 @@
<string name="keyboard_height">Altezza della tastiera</string>
<string name="show_key_borders">Mostra i bordi dei tasti</string>
<string name="show_numbers_row">Mostra i numeri su una riga separata</string>
<string name="start_sentences_capitalized">Start sentences with a capital letter</string>
<!-- Emojis -->
<string name="emojis">Emoji</string>
<!--
Haven't found some strings? There's more at
https://github.com/SimpleMobileTools/Simple-Commons/tree/master/commons/src/main/res
-->
</resources>
</resources>

View File

@ -34,6 +34,7 @@
<string name="keyboard_height">Keyboard height</string>
<string name="show_key_borders">Show key borders</string>
<string name="show_numbers_row">Show numbers on a separate row</string>
<string name="start_sentences_capitalized">Start sentences with a capital letter</string>
<!-- Emojis -->
<string name="emojis">Emojis</string>
<!--

View File

@ -34,10 +34,11 @@
<string name="keyboard_height">キーボードの高さ</string>
<string name="show_key_borders">キー枠を表示する</string>
<string name="show_numbers_row">数字を別の行に表示する</string>
<string name="start_sentences_capitalized">Start sentences with a capital letter</string>
<!-- Emojis -->
<string name="emojis">絵文字</string>
<!--
Haven't found some strings? There's more at
https://github.com/SimpleMobileTools/Simple-Commons/tree/master/commons/src/main/res
-->
</resources>
</resources>

View File

@ -34,6 +34,7 @@
<string name="keyboard_height">Keyboard height</string>
<string name="show_key_borders">Show key borders</string>
<string name="show_numbers_row">Show numbers on a separate row</string>
<string name="start_sentences_capitalized">Start sentences with a capital letter</string>
<!-- Emojis -->
<string name="emojis">Emojis</string>
<!--

View File

@ -34,6 +34,7 @@
<string name="keyboard_height">കീബോർഡ് ഉയരം</string>
<string name="show_key_borders">പ്രധാന അതിരുകൾ കാണിക്കുക</string>
<string name="show_numbers_row">ഒരു പ്രത്യേക വരിയിൽ സംഖ്യകൾ കാണിക്കുക</string>
<string name="start_sentences_capitalized">Start sentences with a capital letter</string>
<!-- Emojis -->
<string name="emojis">ഇമോജികൾ</string>
</resources>

View File

@ -34,6 +34,7 @@
<string name="keyboard_height">Keyboard height</string>
<string name="show_key_borders">Show key borders</string>
<string name="show_numbers_row">Show numbers on a separate row</string>
<string name="start_sentences_capitalized">Start sentences with a capital letter</string>
<!-- Emojis -->
<string name="emojis">Emojis</string>
<!--

View File

@ -34,10 +34,11 @@
<string name="keyboard_height">Hoogte toetsenbord</string>
<string name="show_key_borders">Toetsen omranden</string>
<string name="show_numbers_row">Cijfers op een aparte rij</string>
<string name="start_sentences_capitalized">Zinnen met een hoofdletter beginnen</string>
<!-- Emojis -->
<string name="emojis">Emoji\'s</string>
<!--
Haven't found some strings? There's more at
https://github.com/SimpleMobileTools/Simple-Commons/tree/master/commons/src/main/res
-->
</resources>
</resources>

View File

@ -34,6 +34,7 @@
<string name="keyboard_height">کیبورڈ دی اُچائی</string>
<string name="show_key_borders">کنجیاں دے حد ویکھو</string>
<string name="show_numbers_row">وکھری قطار وچ نمبر ویکھو</string>
<string name="start_sentences_capitalized">Start sentences with a capital letter</string>
<!-- Emojis -->
<string name="emojis">ایموجیاں</string>
</resources>

View File

@ -34,6 +34,7 @@
<string name="keyboard_height">ਕੀਬੋਰਡ ਦੀ ਉਚਾਈ</string>
<string name="show_key_borders">Show key borders</string>
<string name="show_numbers_row">Show numbers on a separate row</string>
<string name="start_sentences_capitalized">Start sentences with a capital letter</string>
<!-- Emojis -->
<string name="emojis">ਇਮੋਜੀਆਂ</string>
</resources>

View File

@ -34,10 +34,11 @@
<string name="keyboard_height">Wysokość klawiatury</string>
<string name="show_key_borders">Pokazuj obramowania klawiszy</string>
<string name="show_numbers_row">Pokazuj cyfry w osobnym wierszu</string>
<string name="start_sentences_capitalized">Zaczynaj zdania wielką literą</string>
<!-- Emojis -->
<string name="emojis">Emoji</string>
<!--
Haven't found some strings? There's more at
https://github.com/SimpleMobileTools/Simple-Commons/tree/master/commons/src/main/res
-->
</resources>
</resources>

View File

@ -34,6 +34,7 @@
<string name="keyboard_height">Keyboard height</string>
<string name="show_key_borders">Show key borders</string>
<string name="show_numbers_row">Show numbers on a separate row</string>
<string name="start_sentences_capitalized">Start sentences with a capital letter</string>
<!-- Emojis -->
<string name="emojis">Emojis</string>
<!--

View File

@ -34,6 +34,7 @@
<string name="keyboard_height">Altura do teclado</string>
<string name="show_key_borders">Mostrar contorno das teclas</string>
<string name="show_numbers_row">Mostrar números em linha distinta</string>
<string name="start_sentences_capitalized">Iniciar frases com letra maiúscula</string>
<!-- Emojis -->
<string name="emojis">Emojis</string>
<!--

View File

@ -34,10 +34,11 @@
<string name="keyboard_height">Înălțime tastatură</string>
<string name="show_key_borders">Show key borders</string>
<string name="show_numbers_row">Show numbers on a separate row</string>
<string name="start_sentences_capitalized">Start sentences with a capital letter</string>
<!-- Emojis -->
<string name="emojis">Emoticoane</string>
<!--
Haven't found some strings? There's more at
https://github.com/SimpleMobileTools/Simple-Commons/tree/master/commons/src/main/res
-->
</resources>
</resources>

View File

@ -35,6 +35,7 @@
<string name="keyboard_height">Высота клавиатуры</string>
<string name="show_key_borders">Показывать границы кнопок</string>
<string name="show_numbers_row">Показывать цифры отдельной строкой</string>
<string name="start_sentences_capitalized">Начинать предложения с заглавной буквы</string>
<!-- Emojis -->
<string name="emojis">Эмодзи</string>
<!--

View File

@ -34,6 +34,7 @@
<string name="keyboard_height">Výška klávesnice</string>
<string name="show_key_borders">Zobraziť hranice kláves</string>
<string name="show_numbers_row">Zobraziť čísla na samostatnom riadku</string>
<string name="start_sentences_capitalized">Začať vety veľkým písmenom</string>
<!-- Emojis -->
<string name="emojis">Emoji</string>
<!--

View File

@ -34,6 +34,7 @@
<string name="keyboard_height">Višina tipkovnice</string>
<string name="show_key_borders">Prikaži meje ključa</string>
<string name="show_numbers_row">Prikažite številke v ločeni vrstici</string>
<string name="start_sentences_capitalized">Start sentences with a capital letter</string>
<!-- Emojis -->
<string name="emojis">Emoji-ji</string>
</resources>
</resources>

View File

@ -34,6 +34,7 @@
<string name="keyboard_height">Висина тастатуре</string>
<string name="show_key_borders">Прикажи ивице кључева</string>
<string name="show_numbers_row">Прикажи бројеве у посебном реду</string>
<string name="start_sentences_capitalized">Start sentences with a capital letter</string>
<!-- Emojis -->
<string name="emojis">Емоји</string>
</resources>

View File

@ -15,7 +15,7 @@
<string name="clipboard_current">Nuvarande</string>
<string name="clipboard_pinned">Nålad</string>
<string name="add_new_item">Lägg till ett nytt objekt</string>
<string name="manage_clips">Du kan hantera eller addera nya klipp här för snabb tillgänglighet.</string>
<string name="manage_clips">Du kan hantera eller lägga till klipp här för snabb åtkomst.</string>
<string name="clip_text">Klipp text</string>
<string name="pin_text">Nåla text</string>
<string name="text_pinned">Text har blivit nålad</string>
@ -34,6 +34,7 @@
<string name="keyboard_height">Tangentbordshöjd</string>
<string name="show_key_borders">Visa ramar runt tangenterna</string>
<string name="show_numbers_row">Visa siffror på en separat rad</string>
<string name="start_sentences_capitalized">Börja meningar med stor bokstav</string>
<!-- Emojis -->
<string name="emojis">Emojier</string>
<!--

View File

@ -34,6 +34,7 @@
<string name="keyboard_height">Keyboard height</string>
<string name="show_key_borders">Show key borders</string>
<string name="show_numbers_row">Show numbers on a separate row</string>
<string name="start_sentences_capitalized">Start sentences with a capital letter</string>
<!-- Emojis -->
<string name="emojis">Emojis</string>
<!--

View File

@ -34,10 +34,11 @@
<string name="keyboard_height">Klavye yüksekliği</string>
<string name="show_key_borders">Tuş sınırlarını göster</string>
<string name="show_numbers_row">Sayıları ayrı bir satırda göster</string>
<string name="start_sentences_capitalized">Cümlelere büyük harfle başla</string>
<!-- Emojis -->
<string name="emojis">Emojiler</string>
<!--
Haven't found some strings? There's more at
https://github.com/SimpleMobileTools/Simple-Commons/tree/master/commons/src/main/res
-->
</resources>
</resources>

View File

@ -34,10 +34,11 @@
<string name="keyboard_height">Висота клавіатури</string>
<string name="show_key_borders">Показати рамки клавіш</string>
<string name="show_numbers_row">Відображення чисел в окремому рядку</string>
<string name="start_sentences_capitalized">Start sentences with a capital letter</string>
<!-- Emojis -->
<string name="emojis">Емодзі</string>
<!--
Haven't found some strings? There's more at
https://github.com/SimpleMobileTools/Simple-Commons/tree/master/commons/src/main/res
-->
</resources>
</resources>

View File

@ -34,10 +34,11 @@
<string name="keyboard_height">键盘高度</string>
<string name="show_key_borders">显示键符边界</string>
<string name="show_numbers_row">在单独的行上显示数字</string>
<string name="start_sentences_capitalized">句子开头使用大写字母</string>
<!-- Emojis -->
<string name="emojis">表情符号</string>
<!--
Haven't found some strings? There's more at
https://github.com/SimpleMobileTools/Simple-Commons/tree/master/commons/src/main/res
-->
</resources>
</resources>

View File

@ -35,6 +35,7 @@
<string name="keyboard_height">Keyboard height</string>
<string name="show_key_borders">Show key borders</string>
<string name="show_numbers_row">Show numbers on a separate row</string>
<string name="start_sentences_capitalized">Start sentences with a capital letter</string>
<!-- Emojis -->
<string name="emojis">Emojis</string>
<!--

View File

@ -35,6 +35,7 @@
<string name="keyboard_height">Keyboard height</string>
<string name="show_key_borders">Show key borders</string>
<string name="show_numbers_row">Show numbers on a separate row</string>
<string name="start_sentences_capitalized">Start sentences with a capital letter</string>
<!-- Emojis -->
<string name="emojis">Emojis</string>
<!--

View File

@ -0,0 +1,213 @@
<?xml version="1.0" encoding="utf-8"?>
<Keyboard xmlns:app="http://schemas.android.com/apk/res-auto">
<Row app:isNumbersRow="true">
<Key
app:keyEdgeFlags="left"
app:keyLabel="1"
app:topSmallNumber="1" />
<Key
app:keyLabel="2"
app:topSmallNumber="2" />
<Key
app:keyLabel="3"
app:topSmallNumber="3" />
<Key
app:keyLabel="4"
app:topSmallNumber="4" />
<Key
app:keyLabel="5"
app:topSmallNumber="5" />
<Key
app:keyLabel="6"
app:topSmallNumber="6" />
<Key
app:keyLabel="7"
app:topSmallNumber="7" />
<Key
app:keyLabel="8"
app:topSmallNumber="8" />
<Key
app:keyLabel="9"
app:topSmallNumber="9" />
<Key
app:keyEdgeFlags="right"
app:keyLabel="0"
app:topSmallNumber="0" />
</Row>
<Row>
<Key
app:keyEdgeFlags="left"
app:keyLabel="q"
app:keyWidth="9.05%p"
app:popupCharacters="1"
app:popupKeyboard="@xml/keyboard_popup_template"
app:topSmallNumber="1" />
<Key
app:keyLabel="w"
app:keyWidth="9.05%p"
app:popupCharacters="2"
app:popupKeyboard="@xml/keyboard_popup_template"
app:topSmallNumber="2" />
<Key
app:keyLabel="e"
app:keyWidth="9.05%p"
app:popupCharacters="éè3êëēę"
app:popupKeyboard="@xml/keyboard_popup_template"
app:topSmallNumber="3" />
<Key
app:keyLabel="r"
app:keyWidth="9.05%p"
app:popupCharacters="ř4ŕ"
app:popupKeyboard="@xml/keyboard_popup_template"
app:topSmallNumber="4" />
<Key
app:keyLabel="t"
app:keyWidth="9.05%p"
app:popupCharacters="5ť"
app:popupKeyboard="@xml/keyboard_popup_template"
app:topSmallNumber="5" />
<Key
app:keyLabel="y"
app:keyWidth="9.05%p"
app:popupCharacters="ý6ÿ¥"
app:popupKeyboard="@xml/keyboard_popup_template"
app:topSmallNumber="6" />
<Key
app:keyLabel="u"
app:keyWidth="9.05%p"
app:popupCharacters="űúù7ûüū"
app:popupKeyboard="@xml/keyboard_popup_template"
app:topSmallNumber="7" />
<Key
app:keyLabel="i"
app:keyWidth="9.05%p"
app:popupCharacters="íì8îïī"
app:popupKeyboard="@xml/keyboard_popup_template"
app:topSmallNumber="8" />
<Key
app:keyLabel="o"
app:keyWidth="9.05%p"
app:popupCharacters="őöøóôò9õō"
app:popupKeyboard="@xml/keyboard_popup_template"
app:topSmallNumber="9" />
<Key
app:keyLabel="p"
app:keyWidth="9.05%p"
app:popupCharacters="0"
app:popupKeyboard="@xml/keyboard_popup_template"
app:topSmallNumber="0" />
<Key
app:keyEdgeFlags="right"
app:keyLabel="å"
app:keyWidth="9.05%p" />
</Row>
<Row>
<Key
app:keyEdgeFlags="left"
app:keyLabel="a"
app:keyWidth="9.05%p"
app:popupCharacters="áàâãäåāæą"
app:popupKeyboard="@xml/keyboard_popup_template" />
<Key
app:keyLabel="s"
app:keyWidth="9.05%p"
app:popupCharacters="śßš"
app:popupKeyboard="@xml/keyboard_popup_template" />
<Key
app:keyLabel="d"
app:keyWidth="9.05%p"
app:popupCharacters="ďđ"
app:popupKeyboard="@xml/keyboard_popup_template" />
<Key
app:keyLabel="f"
app:keyWidth="9.05%p"
app:popupCharacters="₣"
app:popupKeyboard="@xml/keyboard_popup_template" />
<Key
app:keyLabel="g"
app:keyWidth="9.05%p" />
<Key
app:keyLabel="h"
app:keyWidth="9.05%p" />
<Key
app:keyLabel="j"
app:keyWidth="9.05%p" />
<Key app:keyLabel="k" />
<Key
app:keyLabel="l"
app:keyWidth="9.05%p"
app:popupCharacters="ĺľł"
app:popupKeyboard="@xml/keyboard_popup_template" />
<Key
app:keyLabel="æ"
app:keyWidth="9.05%p"
app:popupCharacters="ä"
app:popupKeyboard="@xml/keyboard_popup_template" />
<Key
app:keyEdgeFlags="right"
app:keyLabel="ø"
app:keyWidth="9.05%p"
app:popupCharacters="ö"
app:popupKeyboard="@xml/keyboard_popup_template" />
</Row>
<Row>
<Key
app:code="-1"
app:keyEdgeFlags="left"
app:keyIcon="@drawable/ic_caps_outline_vector"
app:keyWidth="15%p" />
<Key
app:keyLabel="z"
app:popupCharacters="źžż"
app:popupKeyboard="@xml/keyboard_popup_template" />
<Key app:keyLabel="x" />
<Key
app:keyLabel="c"
app:popupCharacters="çčć¢"
app:popupKeyboard="@xml/keyboard_popup_template" />
<Key app:keyLabel="v" />
<Key app:keyLabel="b" />
<Key
app:keyLabel="n"
app:popupCharacters="ňńñ"
app:popupKeyboard="@xml/keyboard_popup_template" />
<Key app:keyLabel="m" />
<Key
app:code="-5"
app:isRepeatable="true"
app:keyEdgeFlags="right"
app:keyIcon="@drawable/ic_clear_vector"
app:keyWidth="15%p" />
</Row>
<Row>
<Key
app:code="-2"
app:keyEdgeFlags="left"
app:keyLabel="123"
app:keyWidth="15%p" />
<Key
app:keyLabel=","
app:keyWidth="10%p" />
<Key
app:code="-6"
app:keyEdgeFlags="left"
app:keyIcon="@drawable/ic_emoji_emotions_outline_vector"
app:keyWidth="10%p"
app:secondaryKeyIcon="@drawable/ic_language_outlined" />
<Key
app:code="32"
app:isRepeatable="true"
app:keyWidth="40%p" />
<Key
app:keyLabel="."
app:keyWidth="10%p"
app:popupCharacters=",?!;:…"
app:popupKeyboard="@xml/keyboard_popup_template" />
<Key
app:code="-4"
app:keyEdgeFlags="right"
app:keyIcon="@drawable/ic_enter_vector"
app:keyWidth="15%p" />
</Row>
</Keyboard>

View File

@ -73,7 +73,7 @@
app:topSmallNumber="7" />
<Key
app:keyLabel="i"
app:popupCharacters="íìî8įïī"
app:popupCharacters="íìîį8ïī"
app:popupKeyboard="@xml/keyboard_popup_template"
app:topSmallNumber="8" />
<Key
@ -159,17 +159,17 @@
app:code="-6"
app:keyEdgeFlags="left"
app:keyIcon="@drawable/ic_emoji_emotions_outline_vector"
app:secondaryKeyIcon="@drawable/ic_language_outlined"
app:keyWidth="10%p" />
app:keyWidth="10%p"
app:secondaryKeyIcon="@drawable/ic_language_outlined" />
<Key
app:code="32"
app:isRepeatable="true"
app:keyWidth="40%p" />
<Key
app:keyLabel="."
app:keyWidth="10%p"
app:popupCharacters=",?!;:…"
app:popupKeyboard="@xml/keyboard_popup_template"
app:keyWidth="10%p" />
app:popupKeyboard="@xml/keyboard_popup_template" />
<Key
app:code="-4"
app:keyEdgeFlags="right"

View File

@ -0,0 +1,213 @@
<?xml version="1.0" encoding="utf-8"?>
<Keyboard xmlns:app="http://schemas.android.com/apk/res-auto">
<Row app:isNumbersRow="true">
<Key
app:keyEdgeFlags="left"
app:keyLabel="1"
app:topSmallNumber="1" />
<Key
app:keyLabel="2"
app:topSmallNumber="2" />
<Key
app:keyLabel="3"
app:topSmallNumber="3" />
<Key
app:keyLabel="4"
app:topSmallNumber="4" />
<Key
app:keyLabel="5"
app:topSmallNumber="5" />
<Key
app:keyLabel="6"
app:topSmallNumber="6" />
<Key
app:keyLabel="7"
app:topSmallNumber="7" />
<Key
app:keyLabel="8"
app:topSmallNumber="8" />
<Key
app:keyLabel="9"
app:topSmallNumber="9" />
<Key
app:keyEdgeFlags="right"
app:keyLabel="0"
app:topSmallNumber="0" />
</Row>
<Row>
<Key
app:keyEdgeFlags="left"
app:keyLabel="q"
app:keyWidth="9.05%p"
app:popupCharacters="1"
app:popupKeyboard="@xml/keyboard_popup_template"
app:topSmallNumber="1" />
<Key
app:keyLabel="w"
app:keyWidth="9.05%p"
app:popupCharacters="2"
app:popupKeyboard="@xml/keyboard_popup_template"
app:topSmallNumber="2" />
<Key
app:keyLabel="e"
app:keyWidth="9.05%p"
app:popupCharacters="éè3êëēę"
app:popupKeyboard="@xml/keyboard_popup_template"
app:topSmallNumber="3" />
<Key
app:keyLabel="r"
app:keyWidth="9.05%p"
app:popupCharacters="ř4ŕ"
app:popupKeyboard="@xml/keyboard_popup_template"
app:topSmallNumber="4" />
<Key
app:keyLabel="t"
app:keyWidth="9.05%p"
app:popupCharacters="5ť"
app:popupKeyboard="@xml/keyboard_popup_template"
app:topSmallNumber="5" />
<Key
app:keyLabel="y"
app:keyWidth="9.05%p"
app:popupCharacters="ý6ÿ¥"
app:popupKeyboard="@xml/keyboard_popup_template"
app:topSmallNumber="6" />
<Key
app:keyLabel="u"
app:keyWidth="9.05%p"
app:popupCharacters="űúù7ûüū"
app:popupKeyboard="@xml/keyboard_popup_template"
app:topSmallNumber="7" />
<Key
app:keyLabel="i"
app:keyWidth="9.05%p"
app:popupCharacters="íì8îïī"
app:popupKeyboard="@xml/keyboard_popup_template"
app:topSmallNumber="8" />
<Key
app:keyLabel="o"
app:keyWidth="9.05%p"
app:popupCharacters="őöøóôò9õō"
app:popupKeyboard="@xml/keyboard_popup_template"
app:topSmallNumber="9" />
<Key
app:keyLabel="p"
app:keyWidth="9.05%p"
app:popupCharacters="0"
app:popupKeyboard="@xml/keyboard_popup_template"
app:topSmallNumber="0" />
<Key
app:keyEdgeFlags="right"
app:keyLabel="å"
app:keyWidth="9.05%p" />
</Row>
<Row>
<Key
app:keyEdgeFlags="left"
app:keyLabel="a"
app:keyWidth="9.05%p"
app:popupCharacters="áàâãäåāæą"
app:popupKeyboard="@xml/keyboard_popup_template" />
<Key
app:keyLabel="s"
app:keyWidth="9.05%p"
app:popupCharacters="śßš"
app:popupKeyboard="@xml/keyboard_popup_template" />
<Key
app:keyLabel="d"
app:keyWidth="9.05%p"
app:popupCharacters="ďđ"
app:popupKeyboard="@xml/keyboard_popup_template" />
<Key
app:keyLabel="f"
app:keyWidth="9.05%p"
app:popupCharacters="₣"
app:popupKeyboard="@xml/keyboard_popup_template" />
<Key
app:keyLabel="g"
app:keyWidth="9.05%p" />
<Key
app:keyLabel="h"
app:keyWidth="9.05%p" />
<Key
app:keyLabel="j"
app:keyWidth="9.05%p" />
<Key app:keyLabel="k" />
<Key
app:keyLabel="l"
app:keyWidth="9.05%p"
app:popupCharacters="ĺľł"
app:popupKeyboard="@xml/keyboard_popup_template" />
<Key
app:keyLabel="ø"
app:keyWidth="9.05%p"
app:popupCharacters="ö"
app:popupKeyboard="@xml/keyboard_popup_template" />
<Key
app:keyEdgeFlags="right"
app:keyLabel="æ"
app:keyWidth="9.05%p"
app:popupCharacters="ä"
app:popupKeyboard="@xml/keyboard_popup_template" />
</Row>
<Row>
<Key
app:code="-1"
app:keyEdgeFlags="left"
app:keyIcon="@drawable/ic_caps_outline_vector"
app:keyWidth="15%p" />
<Key
app:keyLabel="z"
app:popupCharacters="źžż"
app:popupKeyboard="@xml/keyboard_popup_template" />
<Key app:keyLabel="x" />
<Key
app:keyLabel="c"
app:popupCharacters="çčć¢"
app:popupKeyboard="@xml/keyboard_popup_template" />
<Key app:keyLabel="v" />
<Key app:keyLabel="b" />
<Key
app:keyLabel="n"
app:popupCharacters="ňńñ"
app:popupKeyboard="@xml/keyboard_popup_template" />
<Key app:keyLabel="m" />
<Key
app:code="-5"
app:isRepeatable="true"
app:keyEdgeFlags="right"
app:keyIcon="@drawable/ic_clear_vector"
app:keyWidth="15%p" />
</Row>
<Row>
<Key
app:code="-2"
app:keyEdgeFlags="left"
app:keyLabel="123"
app:keyWidth="15%p" />
<Key
app:keyLabel=","
app:keyWidth="10%p" />
<Key
app:code="-6"
app:keyEdgeFlags="left"
app:keyIcon="@drawable/ic_emoji_emotions_outline_vector"
app:keyWidth="10%p"
app:secondaryKeyIcon="@drawable/ic_language_outlined" />
<Key
app:code="32"
app:isRepeatable="true"
app:keyWidth="40%p" />
<Key
app:keyLabel="."
app:keyWidth="10%p"
app:popupCharacters=",?!;:…"
app:popupKeyboard="@xml/keyboard_popup_template" />
<Key
app:code="-4"
app:keyEdgeFlags="right"
app:keyIcon="@drawable/ic_enter_vector"
app:keyWidth="15%p" />
</Row>
</Keyboard>

View File

@ -0,0 +1,212 @@
<?xml version="1.0" encoding="utf-8"?>
<Keyboard xmlns:app="http://schemas.android.com/apk/res-auto">
<Row app:isNumbersRow="true">
<Key
app:keyEdgeFlags="left"
app:keyLabel="1"
app:topSmallNumber="1" />
<Key
app:keyLabel="2"
app:topSmallNumber="2" />
<Key
app:keyLabel="3"
app:topSmallNumber="3" />
<Key
app:keyLabel="4"
app:topSmallNumber="4" />
<Key
app:keyLabel="5"
app:topSmallNumber="5" />
<Key
app:keyLabel="6"
app:topSmallNumber="6" />
<Key
app:keyLabel="7"
app:topSmallNumber="7" />
<Key
app:keyLabel="8"
app:topSmallNumber="8" />
<Key
app:keyLabel="9"
app:topSmallNumber="9" />
<Key
app:keyEdgeFlags="right"
app:keyLabel="0"
app:topSmallNumber="0" />
</Row>
<Row>
<Key
app:keyEdgeFlags="left"
app:keyLabel="q"
app:keyWidth="9.05%p"
app:popupCharacters="1"
app:popupKeyboard="@xml/keyboard_popup_template"
app:topSmallNumber="1" />
<Key
app:keyLabel="w"
app:keyWidth="9.05%p"
app:popupCharacters="2"
app:popupKeyboard="@xml/keyboard_popup_template"
app:topSmallNumber="2" />
<Key
app:keyLabel="e"
app:keyWidth="9.05%p"
app:popupCharacters="éè3êëēę"
app:popupKeyboard="@xml/keyboard_popup_template"
app:topSmallNumber="3" />
<Key
app:keyLabel="r"
app:keyWidth="9.05%p"
app:popupCharacters="ř4ŕ"
app:popupKeyboard="@xml/keyboard_popup_template"
app:topSmallNumber="4" />
<Key
app:keyLabel="t"
app:keyWidth="9.05%p"
app:popupCharacters="5ť"
app:popupKeyboard="@xml/keyboard_popup_template"
app:topSmallNumber="5" />
<Key
app:keyLabel="y"
app:keyWidth="9.05%p"
app:popupCharacters="ý6ÿ¥"
app:popupKeyboard="@xml/keyboard_popup_template"
app:topSmallNumber="6" />
<Key
app:keyLabel="u"
app:keyWidth="9.05%p"
app:popupCharacters="űúù7ûüū"
app:popupKeyboard="@xml/keyboard_popup_template"
app:topSmallNumber="7" />
<Key
app:keyLabel="i"
app:keyWidth="9.05%p"
app:popupCharacters="íì8îïī"
app:popupKeyboard="@xml/keyboard_popup_template"
app:topSmallNumber="8" />
<Key
app:keyLabel="o"
app:keyWidth="9.05%p"
app:popupCharacters="őöøóôò9õō"
app:popupKeyboard="@xml/keyboard_popup_template"
app:topSmallNumber="9" />
<Key
app:keyLabel="p"
app:keyWidth="9.05%p"
app:popupCharacters="0"
app:popupKeyboard="@xml/keyboard_popup_template"
app:topSmallNumber="0" />
<Key
app:keyEdgeFlags="right"
app:keyLabel="å"
app:keyWidth="9.05%p" />
</Row>
<Row>
<Key
app:keyEdgeFlags="left"
app:keyLabel="a"
app:keyWidth="9.05%p"
app:popupCharacters="áàâãäåāæą"
app:popupKeyboard="@xml/keyboard_popup_template" />
<Key
app:keyLabel="s"
app:keyWidth="9.05%p"
app:popupCharacters="śßš"
app:popupKeyboard="@xml/keyboard_popup_template" />
<Key
app:keyLabel="d"
app:keyWidth="9.05%p"
app:popupCharacters="ďđ"
app:popupKeyboard="@xml/keyboard_popup_template" />
<Key
app:keyLabel="f"
app:keyWidth="9.05%p"
app:popupCharacters="₣"
app:popupKeyboard="@xml/keyboard_popup_template" />
<Key
app:keyLabel="g"
app:keyWidth="9.05%p" />
<Key
app:keyLabel="h"
app:keyWidth="9.05%p" />
<Key
app:keyLabel="j"
app:keyWidth="9.05%p" />
<Key app:keyLabel="k" />
<Key
app:keyLabel="l"
app:keyWidth="9.05%p"
app:popupCharacters="ĺľł"
app:popupKeyboard="@xml/keyboard_popup_template" />
<Key
app:keyLabel="ö"
app:keyWidth="9.05%p"
app:popupCharacters="Ͽ"
app:popupKeyboard="@xml/keyboard_popup_template" />
<Key
app:keyEdgeFlags="right"
app:keyLabel="ä"
app:keyWidth="9.05%p"
app:popupCharacters="æ"
app:popupKeyboard="@xml/keyboard_popup_template" />
</Row>
<Row>
<Key
app:code="-1"
app:keyEdgeFlags="left"
app:keyIcon="@drawable/ic_caps_outline_vector"
app:keyWidth="15%p" />
<Key
app:keyLabel="z"
app:popupCharacters="źžż"
app:popupKeyboard="@xml/keyboard_popup_template" />
<Key app:keyLabel="x" />
<Key
app:keyLabel="c"
app:popupCharacters="çčć¢"
app:popupKeyboard="@xml/keyboard_popup_template" />
<Key app:keyLabel="v" />
<Key app:keyLabel="b" />
<Key
app:keyLabel="n"
app:popupCharacters="ňńñ"
app:popupKeyboard="@xml/keyboard_popup_template" />
<Key app:keyLabel="m" />
<Key
app:code="-5"
app:isRepeatable="true"
app:keyEdgeFlags="right"
app:keyIcon="@drawable/ic_clear_vector"
app:keyWidth="15%p" />
</Row>
<Row>
<Key
app:code="-2"
app:keyEdgeFlags="left"
app:keyLabel="123"
app:keyWidth="15%p" />
<Key
app:keyLabel=","
app:keyWidth="10%p" />
<Key
app:code="-6"
app:keyEdgeFlags="left"
app:keyIcon="@drawable/ic_emoji_emotions_outline_vector"
app:keyWidth="10%p"
app:secondaryKeyIcon="@drawable/ic_language_outlined" />
<Key
app:code="32"
app:isRepeatable="true"
app:keyWidth="40%p" />
<Key
app:keyLabel="."
app:keyWidth="10%p"
app:popupCharacters=",?!;:…"
app:popupKeyboard="@xml/keyboard_popup_template" />
<Key
app:code="-4"
app:keyEdgeFlags="right"
app:keyIcon="@drawable/ic_enter_vector"
app:keyWidth="15%p" />
</Row>
</Keyboard>

View File

@ -73,12 +73,12 @@
app:topSmallNumber="7" />
<Key
app:keyLabel="ı"
app:popupCharacters="íìî8ïī"
app:popupCharacters="íì8îïī"
app:popupKeyboard="@xml/keyboard_popup_template"
app:topSmallNumber="8" />
<Key
app:keyLabel="o"
app:popupCharacters="őöóôòõ9ō"
app:popupCharacters="őöóô9òõō"
app:popupKeyboard="@xml/keyboard_popup_template"
app:topSmallNumber="9" />
<Key
@ -167,17 +167,17 @@
app:code="-6"
app:keyEdgeFlags="left"
app:keyIcon="@drawable/ic_emoji_emotions_outline_vector"
app:secondaryKeyIcon="@drawable/ic_language_outlined"
app:keyWidth="10%p" />
app:keyWidth="10%p"
app:secondaryKeyIcon="@drawable/ic_language_outlined" />
<Key
app:code="32"
app:isRepeatable="true"
app:keyWidth="40%p" />
<Key
app:keyLabel="."
app:keyWidth="10%p"
app:popupCharacters=",?!;:…"
app:popupKeyboard="@xml/keyboard_popup_template"
app:keyWidth="10%p" />
app:popupKeyboard="@xml/keyboard_popup_template" />
<Key
app:code="-4"
app:keyEdgeFlags="right"