Merge remote-tracking branch 'origin/direct_boot_aware' into direct_boot_aware

This commit is contained in:
merkost 2023-06-15 16:23:25 +10:00
commit 471b3f25cc
57 changed files with 1055 additions and 127 deletions

View File

@ -165,17 +165,21 @@ 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)),
RadioItem(LANGUAGE_FRENCH, getKeyboardLanguageText(LANGUAGE_FRENCH)),
RadioItem(LANGUAGE_FRENCH_AZERTY, getKeyboardLanguageText(LANGUAGE_FRENCH_AZERTY)),
RadioItem(LANGUAGE_FRENCH_BEPO, getKeyboardLanguageText(LANGUAGE_FRENCH_BEPO)),
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)),
)
}
@ -184,18 +188,23 @@ 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_FRENCH_AZERTY -> "${getString(R.string.translation_french)} (AZERTY)"
LANGUAGE_FRENCH_BEPO -> "${getString(R.string.translation_french)} (BEPO)"
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

@ -0,0 +1,69 @@
package com.simplemobiletools.keyboard.helpers
import android.graphics.Rect
import android.os.Bundle
import androidx.core.view.accessibility.AccessibilityNodeInfoCompat
import androidx.customview.widget.ExploreByTouchHelper
import com.simplemobiletools.keyboard.views.MyKeyboardView
class AccessHelper(
private val keyboardView: MyKeyboardView,
private val keys: List<MyKeyboard.Key>
) : ExploreByTouchHelper(keyboardView) {
/**
* We need to populate the list with the IDs of all of the visible virtual views (the intervals in the chart).
* In our case, all keys are always visible, so well return a list of all IDs.
*/
override fun getVisibleVirtualViews(virtualViewIds: MutableList<Int>) {
val keysSize = keys.size
for (i in 0 until keysSize) {
virtualViewIds.add(i)
}
}
/**
* For this function, we need to return the ID of the virtual view thats under the x, y position,
* or ExploreByTouchHelper.HOST_ID if theres no item at those coordinates.
*/
override fun getVirtualViewAt(x: Float, y: Float): Int {
val rects = keys.map {
Rect(it.x, it.y, it.x + it.width, it.y + it.height)
}
return rects.firstOrNull { it.contains(x.toInt(), y.toInt()) }?.let { exactRect ->
rects.indexOf(exactRect)
} ?: HOST_ID
}
/**
* This is where we provide all the metadata for our virtual view.
* We need to set the content description (or text, if its presented visually) and set the bounds in parent.
*/
override fun onPopulateNodeForVirtualView(virtualViewId: Int, node: AccessibilityNodeInfoCompat) {
node.className = keyboardView::class.simpleName
val key = keys.getOrNull(virtualViewId)
node.contentDescription = key?.getContentDescription(keyboardView.context) ?: ""
val bounds = updateBoundsForInterval(virtualViewId)
node.setBoundsInParent(bounds)
}
/**
* We need to set the content description (or text, if its presented visually) and set the bounds in parent.
* The bounds in the parent should match the logic in the onDraw() function.
*/
private fun updateBoundsForInterval(index: Int): Rect {
val keys = keys
val key = keys.getOrNull(index) ?: return Rect()
return Rect().apply {
left = key.x
top = key.y
right = key.x + key.width
bottom = key.y + key.height
}
}
override fun onPerformActionForVirtualView(virtualViewId: Int, action: Int, arguments: Bundle?): Boolean {
return false
}
}

View File

@ -27,7 +27,7 @@ const val ITEM_CLIP = 1
const val LANGUAGE_ENGLISH_QWERTY = 0
const val LANGUAGE_RUSSIAN = 1
const val LANGUAGE_FRENCH = 2
const val LANGUAGE_FRENCH_AZERTY = 2
const val LANGUAGE_ENGLISH_QWERTZ = 3
const val LANGUAGE_SPANISH = 4
const val LANGUAGE_GERMAN = 5
@ -39,6 +39,10 @@ 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
const val LANGUAGE_FRENCH_BEPO = 17
// keyboard height multiplier options
const val KEYBOARD_HEIGHT_MULTIPLIER_SMALL = 1

View File

@ -43,7 +43,7 @@ class MyKeyboard {
var mMinWidth = 0
/** List of keys in this keyboard */
var mKeys: MutableList<Key?>? = null
var mKeys: MutableList<Key>? = null
/** Width of the screen available to fit the keyboard */
private var mDisplayWidth = 0
@ -225,6 +225,21 @@ class MyKeyboard {
a.recycle()
}
/**
* Content description for talkback functional
*/
fun getContentDescription(context: Context): CharSequence {
return when (code) {
KEYCODE_SHIFT -> context.getString(R.string.keycode_shift)
KEYCODE_MODE_CHANGE -> context.getString(R.string.keycode_mode_change)
KEYCODE_ENTER -> context.getString(R.string.keycode_enter)
KEYCODE_DELETE -> context.getString(R.string.keycode_delete)
KEYCODE_SPACE -> context.getString(R.string.keycode_space)
KEYCODE_EMOJI -> context.getString(R.string.emojis)
else -> label
}
}
/** Create an empty key with no attributes. */
init {
height = parent.defaultHeight

View File

@ -0,0 +1,41 @@
package com.simplemobiletools.keyboard.interfaces
interface OnKeyboardActionListener {
/**
* Called when the user presses a key. This is sent before the [.onKey] is called. For keys that repeat, this is only called once.
* @param primaryCode the unicode of the key being pressed. If the touch is not on a valid key, the value will be zero.
*/
fun onPress(primaryCode: Int)
/**
* Send a key press to the listener.
* @param code this is the key that was pressed
*/
fun onKey(code: Int)
/**
* Called when the finger has been lifted after pressing a key
*/
fun onActionUp()
/**
* Called when the user long presses Space and moves to the left
*/
fun moveCursorLeft()
/**
* Called when the user long presses Space and moves to the right
*/
fun moveCursorRight()
/**
* Sends a sequence of characters to the listener.
* @param text the string to be displayed.
*/
fun onText(text: String)
/**
* Called to force the KeyboardView to reload the keyboard
*/
fun reloadKeyboard()
}

View File

@ -16,11 +16,12 @@ import com.simplemobiletools.keyboard.R
import com.simplemobiletools.keyboard.extensions.config
import com.simplemobiletools.keyboard.extensions.safeStorageContext
import com.simplemobiletools.keyboard.helpers.*
import com.simplemobiletools.keyboard.interfaces.OnKeyboardActionListener
import com.simplemobiletools.keyboard.views.MyKeyboardView
import kotlinx.android.synthetic.main.keyboard_view_keyboard.view.*
// based on https://www.androidauthority.com/lets-build-custom-keyboard-android-832362/
class SimpleKeyboardIME : InputMethodService(), MyKeyboardView.OnKeyboardActionListener, SharedPreferences.OnSharedPreferenceChangeListener {
class SimpleKeyboardIME : InputMethodService(), OnKeyboardActionListener, SharedPreferences.OnSharedPreferenceChangeListener {
private var SHIFT_PERM_TOGGLE_SPEED = 500 // how quickly do we have to doubletap shift to enable permanent caps lock
private val KEYBOARD_LETTERS = 0
private val KEYBOARD_SYMBOLS = 1
@ -283,15 +284,19 @@ class SimpleKeyboardIME : InputMethodService(), MyKeyboardView.OnKeyboardActionL
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_FRENCH_AZERTY -> R.xml.keys_letters_french_azerty
LANGUAGE_FRENCH_BEPO -> R.xml.keys_letters_french_bepo
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

@ -16,14 +16,13 @@ import android.os.Message
import android.util.AttributeSet
import android.util.TypedValue
import android.view.*
import android.view.accessibility.AccessibilityEvent
import android.view.accessibility.AccessibilityManager
import android.view.animation.AccelerateInterpolator
import android.view.inputmethod.EditorInfo
import android.widget.PopupWindow
import android.widget.TextView
import androidx.core.animation.doOnEnd
import androidx.core.animation.doOnStart
import androidx.core.view.ViewCompat
import androidx.emoji2.text.EmojiCompat
import androidx.emoji2.text.EmojiCompat.EMOJI_SUPPORTED
import com.simplemobiletools.commons.extensions.*
@ -43,6 +42,7 @@ import com.simplemobiletools.keyboard.helpers.MyKeyboard.Companion.KEYCODE_ENTER
import com.simplemobiletools.keyboard.helpers.MyKeyboard.Companion.KEYCODE_MODE_CHANGE
import com.simplemobiletools.keyboard.helpers.MyKeyboard.Companion.KEYCODE_SHIFT
import com.simplemobiletools.keyboard.helpers.MyKeyboard.Companion.KEYCODE_SPACE
import com.simplemobiletools.keyboard.interfaces.OnKeyboardActionListener
import com.simplemobiletools.keyboard.interfaces.RefreshClipsListener
import com.simplemobiletools.keyboard.models.Clip
import com.simplemobiletools.keyboard.models.ClipsSectionLabel
@ -52,49 +52,18 @@ import kotlinx.android.synthetic.main.keyboard_view_keyboard.view.*
import java.util.*
@SuppressLint("UseCompatLoadingForDrawables", "ClickableViewAccessibility")
class MyKeyboardView @JvmOverloads constructor(context: Context, attrs: AttributeSet?, defStyleRes: Int = 0) :
View(context, attrs, defStyleRes) {
class MyKeyboardView @JvmOverloads constructor(context: Context, attrs: AttributeSet?, defStyleRes: Int = 0) : View(context, attrs, defStyleRes) {
interface OnKeyboardActionListener {
/**
* Called when the user presses a key. This is sent before the [.onKey] is called. For keys that repeat, this is only called once.
* @param primaryCode the unicode of the key being pressed. If the touch is not on a valid key, the value will be zero.
*/
fun onPress(primaryCode: Int)
/**
* Send a key press to the listener.
* @param code this is the key that was pressed
*/
fun onKey(code: Int)
/**
* Called when the finger has been lifted after pressing a key
*/
fun onActionUp()
/**
* Called when the user long presses Space and moves to the left
*/
fun moveCursorLeft()
/**
* Called when the user long presses Space and moves to the right
*/
fun moveCursorRight()
/**
* Sends a sequence of characters to the listener.
* @param text the string to be displayed.
*/
fun onText(text: String)
/**
* Called to force the KeyboardView to reload the keyboard
*/
fun reloadKeyboard()
override fun dispatchHoverEvent(event: MotionEvent): Boolean {
return if (accessHelper?.dispatchHoverEvent(event) == true) {
true
} else {
super.dispatchHoverEvent(event)
}
}
private var accessHelper: AccessHelper? = null
private var mKeyboard: MyKeyboard? = null
private var mCurrentKeyIndex: Int = NOT_A_KEY
@ -184,9 +153,6 @@ class MyKeyboardView @JvmOverloads constructor(context: Context, attrs: Attribut
/** The canvas for the above mutable keyboard bitmap */
private var mCanvas: Canvas? = null
/** The accessibility manager for accessibility support */
private val mAccessibilityManager: AccessibilityManager
private var mHandler: Handler? = null
companion object {
@ -248,7 +214,6 @@ class MyKeyboardView @JvmOverloads constructor(context: Context, attrs: Attribut
mPaint.textAlign = Align.CENTER
mPaint.alpha = 255
mMiniKeyboardCache = HashMap()
mAccessibilityManager = (context.getSystemService(Context.ACCESSIBILITY_SERVICE) as AccessibilityManager)
mPopupMaxMoveDistance = resources.getDimension(R.dimen.popup_max_move_distance)
mTopSmallNumberSize = resources.getDimension(R.dimen.small_text_size)
mTopSmallNumberMarginWidth = resources.getDimension(R.dimen.top_small_number_margin_width)
@ -304,6 +269,10 @@ class MyKeyboardView @JvmOverloads constructor(context: Context, attrs: Attribut
invalidateAllKeys()
computeProximityThreshold(keyboard)
mMiniKeyboardCache.clear()
accessHelper = AccessHelper(this, mKeyboard?.mKeys.orEmpty())
ViewCompat.setAccessibilityDelegate(this, accessHelper)
// Not really necessary to do every time, but will free up views
// Switching to a different keyboard should abort any pending keys so that the key up
// doesn't get delivered to the old or new keyboard
@ -486,7 +455,7 @@ class MyKeyboardView @JvmOverloads constructor(context: Context, attrs: Attribut
private fun adjustCase(label: CharSequence): CharSequence? {
var newLabel: CharSequence? = label
if (newLabel != null && newLabel.isNotEmpty() && mKeyboard!!.mShiftState != ShiftState.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
@ -651,10 +620,7 @@ class MyKeyboardView @JvmOverloads constructor(context: Context, attrs: Attribut
val secondaryIconBottom = secondaryIconTop + secondaryIconHeight
secondaryIcon.setBounds(
secondaryIconLeft,
secondaryIconTop,
secondaryIconRight,
secondaryIconBottom
secondaryIconLeft, secondaryIconTop, secondaryIconRight, secondaryIconBottom
)
secondaryIcon.draw(canvas)
@ -840,29 +806,6 @@ class MyKeyboardView @JvmOverloads constructor(context: Context, attrs: Attribut
val oldKeyIndex = mCurrentKeyIndex
val previewPopup = mPreviewPopup
mCurrentKeyIndex = keyIndex
// Release the old key and press the new key
val keys = mKeys
if (oldKeyIndex != mCurrentKeyIndex) {
if (oldKeyIndex != NOT_A_KEY && keys.size > oldKeyIndex) {
val oldKey = keys[oldKeyIndex]
oldKey.pressed = false
invalidateKey(oldKeyIndex)
val keyCode = oldKey.code
sendAccessibilityEventForUnicodeCharacter(AccessibilityEvent.TYPE_VIEW_ACCESSIBILITY_FOCUS_CLEARED, keyCode)
}
if (mCurrentKeyIndex != NOT_A_KEY && keys.size > mCurrentKeyIndex) {
val newKey = keys[mCurrentKeyIndex]
val code = newKey.code
if (context.config.showKeyBorders || (code == KEYCODE_SHIFT || code == KEYCODE_MODE_CHANGE || code == KEYCODE_DELETE || code == KEYCODE_ENTER || code == KEYCODE_SPACE)) {
newKey.pressed = true
}
invalidateKey(mCurrentKeyIndex)
sendAccessibilityEventForUnicodeCharacter(AccessibilityEvent.TYPE_VIEW_ACCESSIBILITY_FOCUSED, code)
}
}
if (!context.config.showPopupOnKeypress) {
return
@ -873,8 +816,7 @@ class MyKeyboardView @JvmOverloads constructor(context: Context, attrs: Attribut
if (previewPopup.isShowing) {
if (keyIndex == NOT_A_KEY) {
mHandler!!.sendMessageDelayed(
mHandler!!.obtainMessage(MSG_REMOVE_PREVIEW),
DELAY_AFTER_PREVIEW.toLong()
mHandler!!.obtainMessage(MSG_REMOVE_PREVIEW), DELAY_AFTER_PREVIEW.toLong()
)
}
}
@ -967,22 +909,6 @@ class MyKeyboardView @JvmOverloads constructor(context: Context, attrs: Attribut
}
}
private fun sendAccessibilityEventForUnicodeCharacter(eventType: Int, code: Int) {
if (mAccessibilityManager.isEnabled) {
val event = AccessibilityEvent.obtain(eventType)
onInitializeAccessibilityEvent(event)
val text: String = when (code) {
KEYCODE_DELETE -> context.getString(R.string.keycode_delete)
KEYCODE_ENTER -> context.getString(R.string.keycode_enter)
KEYCODE_MODE_CHANGE -> context.getString(R.string.keycode_mode_change)
KEYCODE_SHIFT -> context.getString(R.string.keycode_shift)
else -> code.toChar().toString()
}
event.text.add(text)
mAccessibilityManager.sendAccessibilityEvent(event)
}
}
/**
* Requests a redraw of the entire keyboard. Calling [.invalidate] is not sufficient because the keyboard renders the keys to an off-screen buffer and
* an invalidate() only draws the cached buffer.
@ -1097,8 +1023,7 @@ class MyKeyboardView @JvmOverloads constructor(context: Context, attrs: Attribut
mMiniKeyboard!!.setKeyboard(keyboard)
mPopupParent = this
mMiniKeyboardContainer!!.measure(
MeasureSpec.makeMeasureSpec(width, MeasureSpec.AT_MOST),
MeasureSpec.makeMeasureSpec(height, MeasureSpec.AT_MOST)
MeasureSpec.makeMeasureSpec(width, MeasureSpec.AT_MOST), MeasureSpec.makeMeasureSpec(height, MeasureSpec.AT_MOST)
)
mMiniKeyboardCache[popupKey] = mMiniKeyboardContainer
} else {
@ -1161,8 +1086,8 @@ class MyKeyboardView @JvmOverloads constructor(context: Context, attrs: Attribut
// fix a glitch with long pressing backspace, then clicking some letter
if (mRepeatKeyIndex != NOT_A_KEY) {
val key = mKeys[mRepeatKeyIndex]
if (key.code == KEYCODE_DELETE) {
val key = mKeys.getOrNull(mRepeatKeyIndex)
if (key?.code == KEYCODE_DELETE) {
mHandler?.removeMessages(MSG_REPEAT)
mRepeatKeyIndex = NOT_A_KEY
}
@ -1397,12 +1322,13 @@ class MyKeyboardView @JvmOverloads constructor(context: Context, attrs: Attribut
}
showPreview(NOT_A_KEY)
Arrays.fill(mKeyIndices, NOT_A_KEY)
val currentKeyCode = mKeys.getOrNull(mCurrentKey)?.code
// If we're not on a repeating key (which sends on a DOWN event)
if (mRepeatKeyIndex == NOT_A_KEY && !mMiniKeyboardOnScreen && !mAbortKey) {
detectAndSendKey(mCurrentKey, touchX, touchY, eventTime)
}
if (mKeys.getOrNull(mCurrentKey)?.code == KEYCODE_SPACE && !mIsLongPressingSpace) {
} else if (currentKeyCode == KEYCODE_SPACE && !mIsLongPressingSpace) {
detectAndSendKey(mCurrentKey, touchX, touchY, eventTime)
}

View File

@ -63,7 +63,7 @@
android:layout_height="@dimen/toolbar_icon_height"
android:layout_marginEnd="@dimen/medium_margin"
android:background="?android:attr/selectableItemBackgroundBorderless"
android:contentDescription="@string/settings"
android:contentDescription="@string/clipboard_pinned"
android:padding="@dimen/small_margin"
android:src="@drawable/ic_clipboard_vector"
app:layout_constraintBottom_toBottomOf="parent"

View File

@ -26,6 +26,7 @@
<string name="keycode_mode_change">تغيير نوع لوحة المفاتيح</string>
<string name="keycode_shift">Shift</string>
<string name="keycode_enter">Enter</string>
<string name="keycode_space">Spacebar</string>
<!-- Settings -->
<string name="show_clipboard_content">إظهار محتوى الحافظة إذا كان متوفرا</string>
<string name="show_popup">إظهار نافذة منبثقة عند الضغط على المفاتيح</string>
@ -34,7 +35,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>
<string name="start_sentences_capitalized">بدء الجمل بحرف كبير</string>
<!-- Emojis -->
<string name="emojis">الرموز التعبيرية</string>
<!--

View File

@ -26,6 +26,7 @@
<string name="keycode_mode_change">Змяніць тып клавіятуры</string>
<string name="keycode_shift">Зрух</string>
<string name="keycode_enter">Увайдзіце</string>
<string name="keycode_space">Spacebar</string>
<!-- Settings -->
<string name="show_clipboard_content">Паказаць змесціва буфера абмену, калі яно даступна</string>
<string name="show_popup">Паказваць усплывальнае акно пры націску клавішы</string>

View File

@ -26,6 +26,7 @@
<string name="keycode_mode_change">Промяна на типа клавиатура</string>
<string name="keycode_shift">Shift</string>
<string name="keycode_enter">Enter</string>
<string name="keycode_space">Spacebar</string>
<!-- Settings -->
<string name="show_clipboard_content">Показване на клипборд съдържанието, ако е налично</string>
<string name="show_popup">Показване на изскачащ прозорец при натискане на клавиш</string>

View File

@ -26,6 +26,7 @@
<string name="keycode_mode_change">Canvia el tipus de teclat</string>
<string name="keycode_shift">Majúscules</string>
<string name="keycode_enter">Retorn</string>
<string name="keycode_space">Spacebar</string>
<!-- Settings -->
<string name="show_clipboard_content">Mostra el contingut del porta-retalls si està disponible</string>
<string name="show_popup">Mostra una finestra emergent en prémer les tecles</string>
@ -34,7 +35,7 @@
<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">Start sentences with a capital letter</string>
<string name="start_sentences_capitalized">Comença les frases amb una lletra majúscula</string>
<!-- Emojis -->
<string name="emojis">Emojis</string>
<!--

View File

@ -26,6 +26,7 @@
<string name="keycode_mode_change">گۆڕینی شێواز</string>
<string name="keycode_shift">شێفت</string>
<string name="keycode_enter">ئینتەر</string>
<string name="keycode_space">Spacebar</string>
<!-- Settings -->
<string name="show_clipboard_content">پیشاندانی دوایین لەبەرگیراوە</string>
<string name="show_popup">بچووککراوەی پیت</string>

View File

@ -26,6 +26,7 @@
<string name="keycode_mode_change">Změnit typ klávesnice</string>
<string name="keycode_shift">Shift</string>
<string name="keycode_enter">Enter</string>
<string name="keycode_space">Spacebar</string>
<!-- Settings -->
<string name="show_clipboard_content">Zobrazit obsah schránky, pokud je k dispozici</string>
<string name="show_popup">Zobrazit vyskakovací okno při stisknutí klávesy</string>
@ -34,7 +35,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">Start sentences with a capital letter</string>
<string name="start_sentences_capitalized">Začínat věty velkým písmenem</string>
<!-- Emojis -->
<string name="emojis">Emotikony</string>
<!--

View File

@ -26,6 +26,7 @@
<string name="keycode_mode_change">Skift tastaturtype</string>
<string name="keycode_shift">Shift</string>
<string name="keycode_enter">Enter</string>
<string name="keycode_space">Spacebar</string>
<!-- Settings -->
<string name="show_clipboard_content">Vis indhold i udklipsholder, hvis det er tilgængeligt</string>
<string name="show_popup">Vis en popup ved tastetryk</string>

View File

@ -26,6 +26,7 @@
<string name="keycode_mode_change">Tastaturtyp ändern</string>
<string name="keycode_shift">Umschalttaste</string>
<string name="keycode_enter">Eingabe</string>
<string name="keycode_space">Spacebar</string>
<!-- Settings -->
<string name="show_clipboard_content">Inhalt der Zwischenablage anzeigen, falls vorhanden</string>
<string name="show_popup">Bei Tastendruck ein Popup anzeigen</string>

View File

@ -26,6 +26,7 @@
<string name="keycode_mode_change">Αλλαγή τύπου πληκτρολογίου</string>
<string name="keycode_shift">Shift</string>
<string name="keycode_enter">Enter</string>
<string name="keycode_space">Spacebar</string>
<!-- Settings -->
<string name="show_clipboard_content">Εμφάνιση περιεχομένου πρόχειρου εάν είναι διαθέσιμο</string>
<string name="show_popup">Εμφάνιση ανάδυσης στο πάτημα πλήκτρων</string>
@ -34,7 +35,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>
<string name="start_sentences_capitalized">Αρχίστε τις προτάσεις με κεφαλαίο γράμμα</string>
<!-- Emojis -->
<string name="emojis">Emojis</string>
<!--

View File

@ -26,6 +26,7 @@
<string name="keycode_mode_change">Change keyboard type</string>
<string name="keycode_shift">Shift</string>
<string name="keycode_enter">Enter</string>
<string name="keycode_space">Spacebar</string>
<!-- Settings -->
<string name="show_clipboard_content">Show clipboard content if available</string>
<string name="show_popup">Show a popup on keypress</string>

View File

@ -26,6 +26,7 @@
<string name="keycode_mode_change">Cambiar el tipo de teclado</string>
<string name="keycode_shift">Shift</string>
<string name="keycode_enter">Enter</string>
<string name="keycode_space">Spacebar</string>
<!-- Settings -->
<string name="show_clipboard_content">Mostrar el contenido del portapapeles si está disponible</string>
<string name="show_popup">Mostrar una ventana emergente al pulsar una tecla</string>
@ -34,7 +35,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">Start sentences with a capital letter</string>
<string name="start_sentences_capitalized">Empezar las frases con mayúsculas</string>
<!-- Emojis -->
<string name="emojis">Emoticonos</string>
<!--

View File

@ -26,6 +26,7 @@
<string name="keycode_mode_change">Muuda klaviatuuri tüüpi</string>
<string name="keycode_shift">Shift</string>
<string name="keycode_enter">Sisenema</string>
<string name="keycode_space">Spacebar</string>
<!-- Settings -->
<string name="show_clipboard_content">Näita lõikelaua kirjeid</string>
<string name="show_popup">Klahvivajutusel näita hüpikakent</string>
@ -34,7 +35,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">Start sentences with a capital letter</string>
<string name="start_sentences_capitalized">Alusta lauseid suurtähega</string>
<!-- Emojis -->
<string name="emojis">Emojid</string>
<!--

View File

@ -26,6 +26,7 @@
<string name="keycode_mode_change">Vaihda näppäimistön tyyppi</string>
<string name="keycode_shift">Shift</string>
<string name="keycode_enter">Enter</string>
<string name="keycode_space">Spacebar</string>
<!-- Settings -->
<string name="show_clipboard_content">Näytä leikepöydän sisältö, jos saatavilla</string>
<string name="show_popup">Näytä ponnahdus näppäinten painalluksesta</string>

View File

@ -26,6 +26,7 @@
<string name="keycode_mode_change">Changer de type de clavier</string>
<string name="keycode_shift">Majuscule</string>
<string name="keycode_enter">Entrée</string>
<string name="keycode_space">Spacebar</string>
<!-- Settings -->
<string name="show_clipboard_content">Afficher le contenu du presse-papiers si disponible</string>
<string name="show_popup">Afficher une fenêtre contextuelle en cas de pression sur une touche</string>

View File

@ -26,6 +26,7 @@
<string name="keycode_mode_change">Cambialo tipo do teclado</string>
<string name="keycode_shift">Shift</string>
<string name="keycode_enter">Enter</string>
<string name="keycode_space">Spacebar</string>
<!-- Settings -->
<string name="show_clipboard_content">Mostralo contido do portapapeis se atopase dispoñible</string>
<string name="show_popup">Mostra unha ventá emerxente ao premer nunha tecla</string>

View File

@ -26,6 +26,7 @@
<string name="keycode_mode_change">Promijeni vrstu tipkovnice</string>
<string name="keycode_shift">Shift</string>
<string name="keycode_enter">Enter</string>
<string name="keycode_space">Spacebar</string>
<!-- Settings -->
<string name="show_clipboard_content">Prikaži sadržaj međuspremnika ako postoji</string>
<string name="show_popup">Prikaži skočni prozor prilikom pritiskanja tipke</string>

View File

@ -26,6 +26,7 @@
<string name="keycode_mode_change">Billentyűzet típusának módosítása</string>
<string name="keycode_shift">Váltás</string>
<string name="keycode_enter">Enter</string>
<string name="keycode_space">Spacebar</string>
<!-- Settings -->
<string name="show_clipboard_content">Vágólap tartalmának megjelenítése, ha rendelkezésre áll</string>
<string name="show_popup">Felugró ablak megjelenítése billentyűleütéskor</string>

View File

@ -26,6 +26,7 @@
<string name="keycode_mode_change">Ubah tipe keyboard</string>
<string name="keycode_shift">Shift</string>
<string name="keycode_enter">Enter</string>
<string name="keycode_space">Spacebar</string>
<!-- Settings -->
<string name="show_clipboard_content">Tampilkan konten papan klip jika tersedia</string>
<string name="show_popup">Tampilkan sebuah popup pada penekanan tombol</string>

View File

@ -26,6 +26,7 @@
<string name="keycode_mode_change">Cambia il tipo di tastiera</string>
<string name="keycode_shift">Maiusc</string>
<string name="keycode_enter">Invio</string>
<string name="keycode_space">Spacebar</string>
<!-- Settings -->
<string name="show_clipboard_content">Mostra il contenuto degli appunti se disponibile</string>
<string name="show_popup">Mostra un popup alla pressione di un tasto</string>

View File

@ -26,6 +26,7 @@
<string name="keycode_mode_change">שנה את סוג המקלדת</string>
<string name="keycode_shift">Shift</string>
<string name="keycode_enter">Enter</string>
<string name="keycode_space">Spacebar</string>
<!-- Settings -->
<string name="show_clipboard_content">הצג תוכן של לוח אם זמין</string>
<string name="show_popup">הצג חלון קופץ בלחיצת מקש</string>

View File

@ -26,6 +26,7 @@
<string name="keycode_mode_change">キーボードの種類を変更する</string>
<string name="keycode_shift">シフト</string>
<string name="keycode_enter">エンター</string>
<string name="keycode_space">Spacebar</string>
<!-- Settings -->
<string name="show_clipboard_content">クリップボードの内容がある場合、それを表示する</string>
<string name="show_popup">キー入力時にポップアップを表示する</string>

View File

@ -26,6 +26,7 @@
<string name="keycode_mode_change">Keisti klaviatūros tipą</string>
<string name="keycode_shift">Shift</string>
<string name="keycode_enter">Enter</string>
<string name="keycode_space">Spacebar</string>
<!-- Settings -->
<string name="show_clipboard_content">Jei prieinama, rodyti iškarpinės turinį</string>
<string name="show_popup">Show a popup on keypress</string>

View File

@ -26,6 +26,7 @@
<string name="keycode_mode_change">കീബോർഡ് തരം മാറ്റുക</string>
<string name="keycode_shift">ഷിഫ്റ്റ്</string>
<string name="keycode_enter">നൽകുക</string>
<string name="keycode_space">Spacebar</string>
<!-- Settings -->
<string name="show_clipboard_content">ക്ലിപ്പ്ബോർഡ് ഉള്ളടക്കം ലഭ്യമാണെങ്കിൽ കാണിക്കുക</string>
<string name="show_popup">കീപ്രസ്സിൽ ഒരു പോപ്പ്അപ്പ് കാണിക്കുക</string>

View File

@ -26,6 +26,7 @@
<string name="keycode_mode_change">Change keyboard type</string>
<string name="keycode_shift">Shift</string>
<string name="keycode_enter">Enter</string>
<string name="keycode_space">Spacebar</string>
<!-- Settings -->
<string name="show_clipboard_content">Show clipboard content if available</string>
<string name="show_popup">Show a popup on keypress</string>

View File

@ -26,6 +26,7 @@
<string name="keycode_mode_change">Type toetsenbord veranderen</string>
<string name="keycode_shift">Shift</string>
<string name="keycode_enter">Enter</string>
<string name="keycode_space">Spacebar</string>
<!-- Settings -->
<string name="show_clipboard_content">Klembordinhoud tonen indien beschikbaar</string>
<string name="show_popup">Pop-up tonen bij toetsaanslagen</string>
@ -34,7 +35,7 @@
<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">Start sentences with a capital letter</string>
<string name="start_sentences_capitalized">Zinnen met een hoofdletter beginnen</string>
<!-- Emojis -->
<string name="emojis">Emoji\'s</string>
<!--

View File

@ -26,6 +26,7 @@
<string name="keycode_mode_change">کیبورڈ دی قسم بدلو</string>
<string name="keycode_shift">Shift</string>
<string name="keycode_enter">Enter</string>
<string name="keycode_space">Spacebar</string>
<!-- Settings -->
<string name="show_clipboard_content">جے اُپلبدھ ہووے تاں کاپی کیتی لکھت ویکھو</string>
<string name="show_popup">جدوں کنجی دباؤݨ کنجی تے وڈا اکھر ویکھو</string>

View File

@ -26,6 +26,7 @@
<string name="keycode_mode_change">Change keyboard type</string>
<string name="keycode_shift">Shift</string>
<string name="keycode_enter">Enter</string>
<string name="keycode_space">Spacebar</string>
<!-- Settings -->
<string name="show_clipboard_content">Show clipboard content if available</string>
<string name="show_popup">Show a popup on keypress</string>

View File

@ -26,6 +26,7 @@
<string name="keycode_mode_change">Zmień typ klawiatury</string>
<string name="keycode_shift">Shift</string>
<string name="keycode_enter">Enter</string>
<string name="keycode_space">Spacebar</string>
<!-- Settings -->
<string name="show_clipboard_content">Pokazuj zawartość schowka, jeśli jest dostępna</string>
<string name="show_popup">Pokazuj wyskakujące okienko przy naciśnięciu klawisza</string>

View File

@ -26,6 +26,7 @@
<string name="keycode_mode_change">Mudar tipo de teclado</string>
<string name="keycode_shift">Shift</string>
<string name="keycode_enter">Enter</string>
<string name="keycode_space">Spacebar</string>
<!-- Settings -->
<string name="show_clipboard_content">Mostrar conteúdo da área de transferência se houver</string>
<string name="show_popup">Mostrar pop-up ao digitar</string>

View File

@ -26,6 +26,7 @@
<string name="keycode_mode_change">Alterar tipo de teclado</string>
<string name="keycode_shift">Shift</string>
<string name="keycode_enter">Enter</string>
<string name="keycode_space">Spacebar</string>
<!-- Settings -->
<string name="show_clipboard_content">Mostrar conteúdo da área de transferência, se disponível</string>
<string name="show_popup">Mostrar pop-up ao premir as teclas</string>
@ -34,7 +35,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">Start sentences with a capital letter</string>
<string name="start_sentences_capitalized">Iniciar frases com letra maiúscula</string>
<!-- Emojis -->
<string name="emojis">Emojis</string>
<!--

View File

@ -26,6 +26,7 @@
<string name="keycode_mode_change">Schimbați tipul de tastatură</string>
<string name="keycode_shift">Shift</string>
<string name="keycode_enter">Enter</string>
<string name="keycode_space">Spacebar</string>
<!-- Settings -->
<string name="show_clipboard_content">Afișează conținutul clipboard-ului, dacă este disponibil</string>
<string name="show_popup">Afișați o fereastră pop-up la apăsarea unei taste</string>

View File

@ -26,6 +26,7 @@
<string name="keycode_mode_change">Изменить тип клавиатуры</string>
<string name="keycode_shift">Shift</string>
<string name="keycode_enter">Enter</string>
<string name="keycode_space">Пробел</string>
<!-- Settings -->
<string name="show_clipboard_content">Показывать содержимое буфера обмена при наличии</string>
<string name="show_popup">Показывать ввод по нажатию</string>

View File

@ -26,6 +26,7 @@
<string name="keycode_mode_change">Zmeniť typ klávesnice</string>
<string name="keycode_shift">Shift</string>
<string name="keycode_enter">Enter</string>
<string name="keycode_space">Medzerník</string>
<!-- Settings -->
<string name="show_clipboard_content">Zobraziť obsah schránky, ak je dostupná</string>
<string name="show_popup">Zobraziť detail znaku pri stlačení</string>

View File

@ -26,6 +26,7 @@
<string name="keycode_mode_change">Spremeni vrsto tipkovnice</string>
<string name="keycode_shift">Shift</string>
<string name="keycode_enter">Enter</string>
<string name="keycode_space">Spacebar</string>
<!-- Settings -->
<string name="show_clipboard_content">Prikaži vsebino odložišča, če je na voljo</string>
<string name="show_popup">Prikaži pojavno okno ob pritisku tipke</string>

View File

@ -26,6 +26,7 @@
<string name="keycode_mode_change">Промените тип тастатуре</string>
<string name="keycode_shift">Смена</string>
<string name="keycode_enter">Унеси</string>
<string name="keycode_space">Spacebar</string>
<!-- Settings -->
<string name="show_clipboard_content">Прикажи садржај међуспремника ако је доступан</string>
<string name="show_popup">Прикажи искачући прозор при притиску на тастер</string>

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>
@ -26,6 +26,7 @@
<string name="keycode_mode_change">Ändra tangentbordstyp</string>
<string name="keycode_shift">Skift</string>
<string name="keycode_enter">Enter</string>
<string name="keycode_space">Spacebar</string>
<!-- Settings -->
<string name="show_clipboard_content">Visa urklippets innehåll om tillgängligt</string>
<string name="show_popup">Visa en popupp vid knapptryck</string>
@ -34,7 +35,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">Start sentences with a capital letter</string>
<string name="start_sentences_capitalized">Börja meningar med stor bokstav</string>
<!-- Emojis -->
<string name="emojis">Emojier</string>
<!--

View File

@ -26,6 +26,7 @@
<string name="keycode_mode_change">Change keyboard type</string>
<string name="keycode_shift">Shift</string>
<string name="keycode_enter">Enter</string>
<string name="keycode_space">Spacebar</string>
<!-- Settings -->
<string name="show_clipboard_content">Show clipboard content if available</string>
<string name="show_popup">Show a popup on keypress</string>

View File

@ -26,6 +26,7 @@
<string name="keycode_mode_change">Klavye türünü değiştir</string>
<string name="keycode_shift">Shift</string>
<string name="keycode_enter">Enter</string>
<string name="keycode_space">Spacebar</string>
<!-- Settings -->
<string name="show_clipboard_content">Varsa pano içeriğini göster</string>
<string name="show_popup">Tuşa basıldığında bir açılır menü göster</string>

View File

@ -26,6 +26,7 @@
<string name="keycode_mode_change">Змінити тип клавіатури</string>
<string name="keycode_shift">Shift</string>
<string name="keycode_enter">Enter</string>
<string name="keycode_space">Spacebar</string>
<!-- Settings -->
<string name="show_clipboard_content">Показувати вміст буфера обміну, якщо він є</string>
<string name="show_popup">Показувати popup при натисканні</string>

View File

@ -26,6 +26,7 @@
<string name="keycode_mode_change">更改键盘类型</string>
<string name="keycode_shift">上档</string>
<string name="keycode_enter">输入</string>
<string name="keycode_space">Spacebar</string>
<!-- Settings -->
<string name="show_clipboard_content">如可用显示剪贴板内容</string>
<string name="show_popup">按键时显示弹框</string>

View File

@ -27,6 +27,7 @@
<string name="keycode_mode_change">變更鍵盤類型</string>
<string name="keycode_shift">Shift</string>
<string name="keycode_enter">Enter</string>
<string name="keycode_space">Spacebar</string>
<!-- Settings -->
<string name="show_clipboard_content">可以的話顯示剪貼簿內容</string>
<string name="show_popup">按下按鍵時顯示彈出效果</string>

View File

@ -26,6 +26,7 @@
<string name="keycode_mode_change">Change keyboard type</string>
<string name="keycode_shift">Shift</string>
<string name="keycode_enter">Enter</string>
<string name="keycode_space">Spacebar</string>
<!-- Settings -->
<string name="show_clipboard_content">Show clipboard content if available</string>
<string name="show_popup">Show a popup on keypress</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

@ -0,0 +1,179 @@
<?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="b"
app:popupCharacters="1|¦"
app:popupKeyboard="@xml/keyboard_popup_template"
app:topSmallNumber="1" />
<Key
app:keyLabel="é"
app:popupCharacters="e2éèê"
app:popupKeyboard="@xml/keyboard_popup_template"
app:topSmallNumber="2" />
<Key
app:keyLabel="p"
app:popupCharacters="&amp;3§"
app:popupKeyboard="@xml/keyboard_popup_template"
app:topSmallNumber="3" />
<Key
app:keyLabel="o"
app:popupCharacters="ôœö4òóøõō"
app:popupKeyboard="@xml/keyboard_popup_template"
app:topSmallNumber="4" />
<Key
app:keyLabel="w"
app:popupCharacters="5"
app:popupKeyboard="@xml/keyboard_popup_template"
app:topSmallNumber="5" />
<Key
app:keyLabel="v"
app:popupCharacters="6"
app:popupKeyboard="@xml/keyboard_popup_template"
app:topSmallNumber="6" />
<Key
app:keyLabel="d"
app:popupCharacters="ď7đ"
app:popupKeyboard="@xml/keyboard_popup_template"
app:topSmallNumber="7" />
<Key
app:keyLabel="l"
app:popupCharacters="8"
app:popupKeyboard="@xml/keyboard_popup_template"
app:topSmallNumber="8" />
<Key
app:keyLabel="j"
app:popupCharacters="9"
app:popupKeyboard="@xml/keyboard_popup_template"
app:topSmallNumber="9" />
<Key
app:keyEdgeFlags="right"
app:keyLabel="z"
app:popupCharacters="źžż0"
app:popupKeyboard="@xml/keyboard_popup_template"
app:topSmallNumber="0" />
</Row>
<Row>
<Key
app:keyEdgeFlags="left"
app:keyLabel="a"
app:popupCharacters="áàâãäåāæą"
app:popupKeyboard="@xml/keyboard_popup_template" />
<Key
app:keyLabel="u"
app:popupCharacters="űúùûüū"
app:popupKeyboard="@xml/keyboard_popup_template" />
<Key
app:keyLabel="i"
app:popupCharacters="íìîïī"
app:popupKeyboard="@xml/keyboard_popup_template" />
<Key
app:keyLabel="e"
app:popupCharacters="éèêëēę"
app:popupKeyboard="@xml/keyboard_popup_template" />
<Key
app:keyLabel="c"
app:popupCharacters="ćçç"
app:popupKeyboard="@xml/keyboard_popup_template" />
<Key
app:keyLabel="t"
app:popupCharacters="ť"
app:popupKeyboard="@xml/keyboard_popup_template" />
<Key app:keyLabel="s" />
<Key app:keyLabel="r" />
<Key
app:keyLabel="n"
app:popupCharacters="ňńñ"
app:popupKeyboard="@xml/keyboard_popup_template" />
<Key
app:keyEdgeFlags="right"
app:keyLabel="m" />
</Row>
<Row>
<Key
app:code="-1"
app:keyEdgeFlags="left"
app:keyIcon="@drawable/ic_caps_outline_vector" />
<Key app:keyLabel="y" />
<Key app:keyLabel="x" />
<Key
app:keyLabel="k"/>
<Key app:keyLabel="-"
app:popupCharacters="—_"
app:popupKeyboard="@xml/keyboard_popup_template" />
<Key app:keyLabel="q" />
<Key app:keyLabel="g" />
<Key app:keyLabel="h" />
<Key app:keyLabel="f" />
<Key
app:code="-5"
app:isRepeatable="true"
app:keyEdgeFlags="right"
app:keyIcon="@drawable/ic_clear_vector" />
</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:secondaryKeyIcon="@drawable/ic_language_outlined"
app:keyWidth="10%p" />
<Key
app:code="32"
app:isRepeatable="true"
app:keyWidth="40%p" />
<Key
app:keyLabel="."
app:popupCharacters=",?!;:…"
app:popupKeyboard="@xml/keyboard_popup_template"
app:keyWidth="10%p" />
<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"