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( return arrayListOf(
RadioItem(LANGUAGE_BENGALI, getKeyboardLanguageText(LANGUAGE_BENGALI)), RadioItem(LANGUAGE_BENGALI, getKeyboardLanguageText(LANGUAGE_BENGALI)),
RadioItem(LANGUAGE_BULGARIAN, getKeyboardLanguageText(LANGUAGE_BULGARIAN)), RadioItem(LANGUAGE_BULGARIAN, getKeyboardLanguageText(LANGUAGE_BULGARIAN)),
RadioItem(LANGUAGE_DANISH, getKeyboardLanguageText(LANGUAGE_DANISH)),
RadioItem(LANGUAGE_ENGLISH_QWERTY, getKeyboardLanguageText(LANGUAGE_ENGLISH_QWERTY)), RadioItem(LANGUAGE_ENGLISH_QWERTY, getKeyboardLanguageText(LANGUAGE_ENGLISH_QWERTY)),
RadioItem(LANGUAGE_ENGLISH_QWERTZ, getKeyboardLanguageText(LANGUAGE_ENGLISH_QWERTZ)), RadioItem(LANGUAGE_ENGLISH_QWERTZ, getKeyboardLanguageText(LANGUAGE_ENGLISH_QWERTZ)),
RadioItem(LANGUAGE_ENGLISH_DVORAK, getKeyboardLanguageText(LANGUAGE_ENGLISH_DVORAK)), 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_GERMAN, getKeyboardLanguageText(LANGUAGE_GERMAN)),
RadioItem(LANGUAGE_GREEK, getKeyboardLanguageText(LANGUAGE_GREEK)), RadioItem(LANGUAGE_GREEK, getKeyboardLanguageText(LANGUAGE_GREEK)),
RadioItem(LANGUAGE_LITHUANIAN, getKeyboardLanguageText(LANGUAGE_LITHUANIAN)), RadioItem(LANGUAGE_LITHUANIAN, getKeyboardLanguageText(LANGUAGE_LITHUANIAN)),
RadioItem(LANGUAGE_NORWEGIAN, getKeyboardLanguageText(LANGUAGE_NORWEGIAN)),
RadioItem(LANGUAGE_ROMANIAN, getKeyboardLanguageText(LANGUAGE_ROMANIAN)), RadioItem(LANGUAGE_ROMANIAN, getKeyboardLanguageText(LANGUAGE_ROMANIAN)),
RadioItem(LANGUAGE_RUSSIAN, getKeyboardLanguageText(LANGUAGE_RUSSIAN)), RadioItem(LANGUAGE_RUSSIAN, getKeyboardLanguageText(LANGUAGE_RUSSIAN)),
RadioItem(LANGUAGE_SLOVENIAN, getKeyboardLanguageText(LANGUAGE_SLOVENIAN)), RadioItem(LANGUAGE_SLOVENIAN, getKeyboardLanguageText(LANGUAGE_SLOVENIAN)),
RadioItem(LANGUAGE_SPANISH, getKeyboardLanguageText(LANGUAGE_SPANISH)), RadioItem(LANGUAGE_SPANISH, getKeyboardLanguageText(LANGUAGE_SPANISH)),
RadioItem(LANGUAGE_SWEDISH, getKeyboardLanguageText(LANGUAGE_SWEDISH)),
RadioItem(LANGUAGE_TURKISH_Q, getKeyboardLanguageText(LANGUAGE_TURKISH_Q)), RadioItem(LANGUAGE_TURKISH_Q, getKeyboardLanguageText(LANGUAGE_TURKISH_Q)),
) )
} }
@ -184,18 +188,23 @@ fun Context.getKeyboardLanguageText(language: Int): String {
return when (language) { return when (language) {
LANGUAGE_BENGALI -> getString(R.string.translation_bengali) LANGUAGE_BENGALI -> getString(R.string.translation_bengali)
LANGUAGE_BULGARIAN -> getString(R.string.translation_bulgarian) 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_DVORAK -> "${getString(R.string.translation_english)} (DVORAK)"
LANGUAGE_ENGLISH_QWERTZ -> "${getString(R.string.translation_english)} (QWERTZ)" 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_GERMAN -> getString(R.string.translation_german)
LANGUAGE_GREEK -> getString(R.string.translation_greek) LANGUAGE_GREEK -> getString(R.string.translation_greek)
LANGUAGE_LITHUANIAN -> getString(R.string.translation_lithuanian) LANGUAGE_LITHUANIAN -> getString(R.string.translation_lithuanian)
LANGUAGE_NORWEGIAN -> getString(R.string.translation_norwegian)
LANGUAGE_ROMANIAN -> getString(R.string.translation_romanian) LANGUAGE_ROMANIAN -> getString(R.string.translation_romanian)
LANGUAGE_RUSSIAN -> getString(R.string.translation_russian) LANGUAGE_RUSSIAN -> getString(R.string.translation_russian)
LANGUAGE_SLOVENIAN -> getString(R.string.translation_slovenian) LANGUAGE_SLOVENIAN -> getString(R.string.translation_slovenian)
LANGUAGE_SPANISH -> getString(R.string.translation_spanish) LANGUAGE_SPANISH -> getString(R.string.translation_spanish)
LANGUAGE_SWEDISH -> getString(R.string.translation_swedish)
LANGUAGE_TURKISH_Q -> "${getString(R.string.translation_turkish)} (Q)" LANGUAGE_TURKISH_Q -> "${getString(R.string.translation_turkish)} (Q)"
else -> "${getString(R.string.translation_english)} (QWERTY)" 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_ENGLISH_QWERTY = 0
const val LANGUAGE_RUSSIAN = 1 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_ENGLISH_QWERTZ = 3
const val LANGUAGE_SPANISH = 4 const val LANGUAGE_SPANISH = 4
const val LANGUAGE_GERMAN = 5 const val LANGUAGE_GERMAN = 5
@ -39,6 +39,10 @@ const val LANGUAGE_TURKISH_Q = 10
const val LANGUAGE_LITHUANIAN = 11 const val LANGUAGE_LITHUANIAN = 11
const val LANGUAGE_BENGALI = 12 const val LANGUAGE_BENGALI = 12
const val LANGUAGE_GREEK = 13 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 // keyboard height multiplier options
const val KEYBOARD_HEIGHT_MULTIPLIER_SMALL = 1 const val KEYBOARD_HEIGHT_MULTIPLIER_SMALL = 1

View File

@ -43,7 +43,7 @@ class MyKeyboard {
var mMinWidth = 0 var mMinWidth = 0
/** List of keys in this keyboard */ /** 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 */ /** Width of the screen available to fit the keyboard */
private var mDisplayWidth = 0 private var mDisplayWidth = 0
@ -225,6 +225,21 @@ class MyKeyboard {
a.recycle() 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. */ /** Create an empty key with no attributes. */
init { init {
height = parent.defaultHeight 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.config
import com.simplemobiletools.keyboard.extensions.safeStorageContext import com.simplemobiletools.keyboard.extensions.safeStorageContext
import com.simplemobiletools.keyboard.helpers.* import com.simplemobiletools.keyboard.helpers.*
import com.simplemobiletools.keyboard.interfaces.OnKeyboardActionListener
import com.simplemobiletools.keyboard.views.MyKeyboardView import com.simplemobiletools.keyboard.views.MyKeyboardView
import kotlinx.android.synthetic.main.keyboard_view_keyboard.view.* import kotlinx.android.synthetic.main.keyboard_view_keyboard.view.*
// based on https://www.androidauthority.com/lets-build-custom-keyboard-android-832362/ // 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 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_LETTERS = 0
private val KEYBOARD_SYMBOLS = 1 private val KEYBOARD_SYMBOLS = 1
@ -283,15 +284,19 @@ class SimpleKeyboardIME : InputMethodService(), MyKeyboardView.OnKeyboardActionL
return when (baseContext.config.keyboardLanguage) { return when (baseContext.config.keyboardLanguage) {
LANGUAGE_BENGALI -> R.xml.keys_letters_bengali LANGUAGE_BENGALI -> R.xml.keys_letters_bengali
LANGUAGE_BULGARIAN -> R.xml.keys_letters_bulgarian 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_DVORAK -> R.xml.keys_letters_english_dvorak
LANGUAGE_ENGLISH_QWERTZ -> R.xml.keys_letters_english_qwertz 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_GERMAN -> R.xml.keys_letters_german
LANGUAGE_GREEK -> R.xml.keys_letters_greek LANGUAGE_GREEK -> R.xml.keys_letters_greek
LANGUAGE_LITHUANIAN -> R.xml.keys_letters_lithuanian LANGUAGE_LITHUANIAN -> R.xml.keys_letters_lithuanian
LANGUAGE_NORWEGIAN -> R.xml.keys_letters_norwegian
LANGUAGE_ROMANIAN -> R.xml.keys_letters_romanian LANGUAGE_ROMANIAN -> R.xml.keys_letters_romanian
LANGUAGE_RUSSIAN -> R.xml.keys_letters_russian LANGUAGE_RUSSIAN -> R.xml.keys_letters_russian
LANGUAGE_SLOVENIAN -> R.xml.keys_letters_slovenian LANGUAGE_SLOVENIAN -> R.xml.keys_letters_slovenian
LANGUAGE_SWEDISH -> R.xml.keys_letters_swedish
LANGUAGE_SPANISH -> R.xml.keys_letters_spanish_qwerty LANGUAGE_SPANISH -> R.xml.keys_letters_spanish_qwerty
LANGUAGE_TURKISH_Q -> R.xml.keys_letters_turkish_q LANGUAGE_TURKISH_Q -> R.xml.keys_letters_turkish_q
else -> R.xml.keys_letters_english_qwerty else -> R.xml.keys_letters_english_qwerty

View File

@ -16,14 +16,13 @@ import android.os.Message
import android.util.AttributeSet import android.util.AttributeSet
import android.util.TypedValue import android.util.TypedValue
import android.view.* import android.view.*
import android.view.accessibility.AccessibilityEvent
import android.view.accessibility.AccessibilityManager
import android.view.animation.AccelerateInterpolator import android.view.animation.AccelerateInterpolator
import android.view.inputmethod.EditorInfo import android.view.inputmethod.EditorInfo
import android.widget.PopupWindow import android.widget.PopupWindow
import android.widget.TextView import android.widget.TextView
import androidx.core.animation.doOnEnd import androidx.core.animation.doOnEnd
import androidx.core.animation.doOnStart import androidx.core.animation.doOnStart
import androidx.core.view.ViewCompat
import androidx.emoji2.text.EmojiCompat import androidx.emoji2.text.EmojiCompat
import androidx.emoji2.text.EmojiCompat.EMOJI_SUPPORTED import androidx.emoji2.text.EmojiCompat.EMOJI_SUPPORTED
import com.simplemobiletools.commons.extensions.* 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_MODE_CHANGE
import com.simplemobiletools.keyboard.helpers.MyKeyboard.Companion.KEYCODE_SHIFT import com.simplemobiletools.keyboard.helpers.MyKeyboard.Companion.KEYCODE_SHIFT
import com.simplemobiletools.keyboard.helpers.MyKeyboard.Companion.KEYCODE_SPACE 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.interfaces.RefreshClipsListener
import com.simplemobiletools.keyboard.models.Clip import com.simplemobiletools.keyboard.models.Clip
import com.simplemobiletools.keyboard.models.ClipsSectionLabel import com.simplemobiletools.keyboard.models.ClipsSectionLabel
@ -52,49 +52,18 @@ import kotlinx.android.synthetic.main.keyboard_view_keyboard.view.*
import java.util.* import java.util.*
@SuppressLint("UseCompatLoadingForDrawables", "ClickableViewAccessibility") @SuppressLint("UseCompatLoadingForDrawables", "ClickableViewAccessibility")
class MyKeyboardView @JvmOverloads constructor(context: Context, attrs: AttributeSet?, defStyleRes: Int = 0) : class MyKeyboardView @JvmOverloads constructor(context: Context, attrs: AttributeSet?, defStyleRes: Int = 0) : View(context, attrs, defStyleRes) {
View(context, attrs, defStyleRes) {
interface OnKeyboardActionListener { override fun dispatchHoverEvent(event: MotionEvent): Boolean {
/** return if (accessHelper?.dispatchHoverEvent(event) == true) {
* Called when the user presses a key. This is sent before the [.onKey] is called. For keys that repeat, this is only called once. true
* @param primaryCode the unicode of the key being pressed. If the touch is not on a valid key, the value will be zero. } else {
*/ super.dispatchHoverEvent(event)
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()
} }
private var accessHelper: AccessHelper? = null
private var mKeyboard: MyKeyboard? = null private var mKeyboard: MyKeyboard? = null
private var mCurrentKeyIndex: Int = NOT_A_KEY 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 */ /** The canvas for the above mutable keyboard bitmap */
private var mCanvas: Canvas? = null private var mCanvas: Canvas? = null
/** The accessibility manager for accessibility support */
private val mAccessibilityManager: AccessibilityManager
private var mHandler: Handler? = null private var mHandler: Handler? = null
companion object { companion object {
@ -248,7 +214,6 @@ class MyKeyboardView @JvmOverloads constructor(context: Context, attrs: Attribut
mPaint.textAlign = Align.CENTER mPaint.textAlign = Align.CENTER
mPaint.alpha = 255 mPaint.alpha = 255
mMiniKeyboardCache = HashMap() mMiniKeyboardCache = HashMap()
mAccessibilityManager = (context.getSystemService(Context.ACCESSIBILITY_SERVICE) as AccessibilityManager)
mPopupMaxMoveDistance = resources.getDimension(R.dimen.popup_max_move_distance) mPopupMaxMoveDistance = resources.getDimension(R.dimen.popup_max_move_distance)
mTopSmallNumberSize = resources.getDimension(R.dimen.small_text_size) mTopSmallNumberSize = resources.getDimension(R.dimen.small_text_size)
mTopSmallNumberMarginWidth = resources.getDimension(R.dimen.top_small_number_margin_width) mTopSmallNumberMarginWidth = resources.getDimension(R.dimen.top_small_number_margin_width)
@ -304,6 +269,10 @@ class MyKeyboardView @JvmOverloads constructor(context: Context, attrs: Attribut
invalidateAllKeys() invalidateAllKeys()
computeProximityThreshold(keyboard) computeProximityThreshold(keyboard)
mMiniKeyboardCache.clear() mMiniKeyboardCache.clear()
accessHelper = AccessHelper(this, mKeyboard?.mKeys.orEmpty())
ViewCompat.setAccessibilityDelegate(this, accessHelper)
// Not really necessary to do every time, but will free up views // 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 // 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 // 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? { private fun adjustCase(label: CharSequence): CharSequence? {
var newLabel: CharSequence? = label 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()) newLabel = newLabel.toString().uppercase(Locale.getDefault())
} }
return newLabel return newLabel
@ -651,10 +620,7 @@ class MyKeyboardView @JvmOverloads constructor(context: Context, attrs: Attribut
val secondaryIconBottom = secondaryIconTop + secondaryIconHeight val secondaryIconBottom = secondaryIconTop + secondaryIconHeight
secondaryIcon.setBounds( secondaryIcon.setBounds(
secondaryIconLeft, secondaryIconLeft, secondaryIconTop, secondaryIconRight, secondaryIconBottom
secondaryIconTop,
secondaryIconRight,
secondaryIconBottom
) )
secondaryIcon.draw(canvas) secondaryIcon.draw(canvas)
@ -840,29 +806,6 @@ class MyKeyboardView @JvmOverloads constructor(context: Context, attrs: Attribut
val oldKeyIndex = mCurrentKeyIndex val oldKeyIndex = mCurrentKeyIndex
val previewPopup = mPreviewPopup val previewPopup = mPreviewPopup
mCurrentKeyIndex = keyIndex 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) { if (!context.config.showPopupOnKeypress) {
return return
@ -873,8 +816,7 @@ class MyKeyboardView @JvmOverloads constructor(context: Context, attrs: Attribut
if (previewPopup.isShowing) { if (previewPopup.isShowing) {
if (keyIndex == NOT_A_KEY) { if (keyIndex == NOT_A_KEY) {
mHandler!!.sendMessageDelayed( mHandler!!.sendMessageDelayed(
mHandler!!.obtainMessage(MSG_REMOVE_PREVIEW), mHandler!!.obtainMessage(MSG_REMOVE_PREVIEW), DELAY_AFTER_PREVIEW.toLong()
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 * 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. * an invalidate() only draws the cached buffer.
@ -1097,8 +1023,7 @@ class MyKeyboardView @JvmOverloads constructor(context: Context, attrs: Attribut
mMiniKeyboard!!.setKeyboard(keyboard) mMiniKeyboard!!.setKeyboard(keyboard)
mPopupParent = this mPopupParent = this
mMiniKeyboardContainer!!.measure( mMiniKeyboardContainer!!.measure(
MeasureSpec.makeMeasureSpec(width, MeasureSpec.AT_MOST), MeasureSpec.makeMeasureSpec(width, MeasureSpec.AT_MOST), MeasureSpec.makeMeasureSpec(height, MeasureSpec.AT_MOST)
MeasureSpec.makeMeasureSpec(height, MeasureSpec.AT_MOST)
) )
mMiniKeyboardCache[popupKey] = mMiniKeyboardContainer mMiniKeyboardCache[popupKey] = mMiniKeyboardContainer
} else { } else {
@ -1161,8 +1086,8 @@ class MyKeyboardView @JvmOverloads constructor(context: Context, attrs: Attribut
// fix a glitch with long pressing backspace, then clicking some letter // fix a glitch with long pressing backspace, then clicking some letter
if (mRepeatKeyIndex != NOT_A_KEY) { if (mRepeatKeyIndex != NOT_A_KEY) {
val key = mKeys[mRepeatKeyIndex] val key = mKeys.getOrNull(mRepeatKeyIndex)
if (key.code == KEYCODE_DELETE) { if (key?.code == KEYCODE_DELETE) {
mHandler?.removeMessages(MSG_REPEAT) mHandler?.removeMessages(MSG_REPEAT)
mRepeatKeyIndex = NOT_A_KEY mRepeatKeyIndex = NOT_A_KEY
} }
@ -1397,12 +1322,13 @@ class MyKeyboardView @JvmOverloads constructor(context: Context, attrs: Attribut
} }
showPreview(NOT_A_KEY) showPreview(NOT_A_KEY)
Arrays.fill(mKeyIndices, 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 we're not on a repeating key (which sends on a DOWN event)
if (mRepeatKeyIndex == NOT_A_KEY && !mMiniKeyboardOnScreen && !mAbortKey) { if (mRepeatKeyIndex == NOT_A_KEY && !mMiniKeyboardOnScreen && !mAbortKey) {
detectAndSendKey(mCurrentKey, touchX, touchY, eventTime) detectAndSendKey(mCurrentKey, touchX, touchY, eventTime)
} } else if (currentKeyCode == KEYCODE_SPACE && !mIsLongPressingSpace) {
if (mKeys.getOrNull(mCurrentKey)?.code == KEYCODE_SPACE && !mIsLongPressingSpace) {
detectAndSendKey(mCurrentKey, touchX, touchY, eventTime) detectAndSendKey(mCurrentKey, touchX, touchY, eventTime)
} }

View File

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

View File

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

View File

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

View File

@ -26,6 +26,7 @@
<string name="keycode_mode_change">Промяна на типа клавиатура</string> <string name="keycode_mode_change">Промяна на типа клавиатура</string>
<string name="keycode_shift">Shift</string> <string name="keycode_shift">Shift</string>
<string name="keycode_enter">Enter</string> <string name="keycode_enter">Enter</string>
<string name="keycode_space">Spacebar</string>
<!-- Settings --> <!-- Settings -->
<string name="show_clipboard_content">Показване на клипборд съдържанието, ако е налично</string> <string name="show_clipboard_content">Показване на клипборд съдържанието, ако е налично</string>
<string name="show_popup">Показване на изскачащ прозорец при натискане на клавиш</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_mode_change">Canvia el tipus de teclat</string>
<string name="keycode_shift">Majúscules</string> <string name="keycode_shift">Majúscules</string>
<string name="keycode_enter">Retorn</string> <string name="keycode_enter">Retorn</string>
<string name="keycode_space">Spacebar</string>
<!-- Settings --> <!-- Settings -->
<string name="show_clipboard_content">Mostra el contingut del porta-retalls si està disponible</string> <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> <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="keyboard_height">Alçada del teclat</string>
<string name="show_key_borders">Mostra les vores de les tecles</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="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 --> <!-- Emojis -->
<string name="emojis">Emojis</string> <string name="emojis">Emojis</string>
<!-- <!--

View File

@ -26,6 +26,7 @@
<string name="keycode_mode_change">گۆڕینی شێواز</string> <string name="keycode_mode_change">گۆڕینی شێواز</string>
<string name="keycode_shift">شێفت</string> <string name="keycode_shift">شێفت</string>
<string name="keycode_enter">ئینتەر</string> <string name="keycode_enter">ئینتەر</string>
<string name="keycode_space">Spacebar</string>
<!-- Settings --> <!-- Settings -->
<string name="show_clipboard_content">پیشاندانی دوایین لەبەرگیراوە</string> <string name="show_clipboard_content">پیشاندانی دوایین لەبەرگیراوە</string>
<string name="show_popup">بچووککراوەی پیت</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_mode_change">Změnit typ klávesnice</string>
<string name="keycode_shift">Shift</string> <string name="keycode_shift">Shift</string>
<string name="keycode_enter">Enter</string> <string name="keycode_enter">Enter</string>
<string name="keycode_space">Spacebar</string>
<!-- Settings --> <!-- Settings -->
<string name="show_clipboard_content">Zobrazit obsah schránky, pokud je k dispozici</string> <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> <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="keyboard_height">Výška klávesnice</string>
<string name="show_key_borders">Zobrazit ohraničení kláves</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="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 --> <!-- Emojis -->
<string name="emojis">Emotikony</string> <string name="emojis">Emotikony</string>
<!-- <!--

View File

@ -26,6 +26,7 @@
<string name="keycode_mode_change">Skift tastaturtype</string> <string name="keycode_mode_change">Skift tastaturtype</string>
<string name="keycode_shift">Shift</string> <string name="keycode_shift">Shift</string>
<string name="keycode_enter">Enter</string> <string name="keycode_enter">Enter</string>
<string name="keycode_space">Spacebar</string>
<!-- Settings --> <!-- Settings -->
<string name="show_clipboard_content">Vis indhold i udklipsholder, hvis det er tilgængeligt</string> <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> <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_mode_change">Tastaturtyp ändern</string>
<string name="keycode_shift">Umschalttaste</string> <string name="keycode_shift">Umschalttaste</string>
<string name="keycode_enter">Eingabe</string> <string name="keycode_enter">Eingabe</string>
<string name="keycode_space">Spacebar</string>
<!-- Settings --> <!-- Settings -->
<string name="show_clipboard_content">Inhalt der Zwischenablage anzeigen, falls vorhanden</string> <string name="show_clipboard_content">Inhalt der Zwischenablage anzeigen, falls vorhanden</string>
<string name="show_popup">Bei Tastendruck ein Popup anzeigen</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_mode_change">Αλλαγή τύπου πληκτρολογίου</string>
<string name="keycode_shift">Shift</string> <string name="keycode_shift">Shift</string>
<string name="keycode_enter">Enter</string> <string name="keycode_enter">Enter</string>
<string name="keycode_space">Spacebar</string>
<!-- Settings --> <!-- Settings -->
<string name="show_clipboard_content">Εμφάνιση περιεχομένου πρόχειρου εάν είναι διαθέσιμο</string> <string name="show_clipboard_content">Εμφάνιση περιεχομένου πρόχειρου εάν είναι διαθέσιμο</string>
<string name="show_popup">Εμφάνιση ανάδυσης στο πάτημα πλήκτρων</string> <string name="show_popup">Εμφάνιση ανάδυσης στο πάτημα πλήκτρων</string>
@ -34,7 +35,7 @@
<string name="keyboard_height">Ύψος πληκτρολογίου</string> <string name="keyboard_height">Ύψος πληκτρολογίου</string>
<string name="show_key_borders">Εμφάνιση ορίων πλήκτρου</string> <string name="show_key_borders">Εμφάνιση ορίων πλήκτρου</string>
<string name="show_numbers_row">Εμφάνιση αριθμών σε ξεχωριστή γραμμή</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 --> <!-- Emojis -->
<string name="emojis">Emojis</string> <string name="emojis">Emojis</string>
<!-- <!--

View File

@ -26,6 +26,7 @@
<string name="keycode_mode_change">Change keyboard type</string> <string name="keycode_mode_change">Change keyboard type</string>
<string name="keycode_shift">Shift</string> <string name="keycode_shift">Shift</string>
<string name="keycode_enter">Enter</string> <string name="keycode_enter">Enter</string>
<string name="keycode_space">Spacebar</string>
<!-- Settings --> <!-- Settings -->
<string name="show_clipboard_content">Show clipboard content if available</string> <string name="show_clipboard_content">Show clipboard content if available</string>
<string name="show_popup">Show a popup on keypress</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_mode_change">Cambiar el tipo de teclado</string>
<string name="keycode_shift">Shift</string> <string name="keycode_shift">Shift</string>
<string name="keycode_enter">Enter</string> <string name="keycode_enter">Enter</string>
<string name="keycode_space">Spacebar</string>
<!-- Settings --> <!-- Settings -->
<string name="show_clipboard_content">Mostrar el contenido del portapapeles si está disponible</string> <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> <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="keyboard_height">Altura del teclado</string>
<string name="show_key_borders">Mostrar bordes de las teclas</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="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 --> <!-- Emojis -->
<string name="emojis">Emoticonos</string> <string name="emojis">Emoticonos</string>
<!-- <!--

View File

@ -26,6 +26,7 @@
<string name="keycode_mode_change">Muuda klaviatuuri tüüpi</string> <string name="keycode_mode_change">Muuda klaviatuuri tüüpi</string>
<string name="keycode_shift">Shift</string> <string name="keycode_shift">Shift</string>
<string name="keycode_enter">Sisenema</string> <string name="keycode_enter">Sisenema</string>
<string name="keycode_space">Spacebar</string>
<!-- Settings --> <!-- Settings -->
<string name="show_clipboard_content">Näita lõikelaua kirjeid</string> <string name="show_clipboard_content">Näita lõikelaua kirjeid</string>
<string name="show_popup">Klahvivajutusel näita hüpikakent</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="keyboard_height">Klaviatuuri kõrgus</string>
<string name="show_key_borders">Näita klahvide ääriseid</string> <string name="show_key_borders">Näita klahvide ääriseid</string>
<string name="show_numbers_row">Näita numbreid eraldi real</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 --> <!-- Emojis -->
<string name="emojis">Emojid</string> <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_mode_change">Vaihda näppäimistön tyyppi</string>
<string name="keycode_shift">Shift</string> <string name="keycode_shift">Shift</string>
<string name="keycode_enter">Enter</string> <string name="keycode_enter">Enter</string>
<string name="keycode_space">Spacebar</string>
<!-- Settings --> <!-- Settings -->
<string name="show_clipboard_content">Näytä leikepöydän sisältö, jos saatavilla</string> <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> <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_mode_change">Changer de type de clavier</string>
<string name="keycode_shift">Majuscule</string> <string name="keycode_shift">Majuscule</string>
<string name="keycode_enter">Entrée</string> <string name="keycode_enter">Entrée</string>
<string name="keycode_space">Spacebar</string>
<!-- Settings --> <!-- Settings -->
<string name="show_clipboard_content">Afficher le contenu du presse-papiers si disponible</string> <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> <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_mode_change">Cambialo tipo do teclado</string>
<string name="keycode_shift">Shift</string> <string name="keycode_shift">Shift</string>
<string name="keycode_enter">Enter</string> <string name="keycode_enter">Enter</string>
<string name="keycode_space">Spacebar</string>
<!-- Settings --> <!-- Settings -->
<string name="show_clipboard_content">Mostralo contido do portapapeis se atopase dispoñible</string> <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> <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_mode_change">Promijeni vrstu tipkovnice</string>
<string name="keycode_shift">Shift</string> <string name="keycode_shift">Shift</string>
<string name="keycode_enter">Enter</string> <string name="keycode_enter">Enter</string>
<string name="keycode_space">Spacebar</string>
<!-- Settings --> <!-- Settings -->
<string name="show_clipboard_content">Prikaži sadržaj međuspremnika ako postoji</string> <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> <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_mode_change">Billentyűzet típusának módosítása</string>
<string name="keycode_shift">Váltás</string> <string name="keycode_shift">Váltás</string>
<string name="keycode_enter">Enter</string> <string name="keycode_enter">Enter</string>
<string name="keycode_space">Spacebar</string>
<!-- Settings --> <!-- Settings -->
<string name="show_clipboard_content">Vágólap tartalmának megjelenítése, ha rendelkezésre áll</string> <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> <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_mode_change">Ubah tipe keyboard</string>
<string name="keycode_shift">Shift</string> <string name="keycode_shift">Shift</string>
<string name="keycode_enter">Enter</string> <string name="keycode_enter">Enter</string>
<string name="keycode_space">Spacebar</string>
<!-- Settings --> <!-- Settings -->
<string name="show_clipboard_content">Tampilkan konten papan klip jika tersedia</string> <string name="show_clipboard_content">Tampilkan konten papan klip jika tersedia</string>
<string name="show_popup">Tampilkan sebuah popup pada penekanan tombol</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_mode_change">Cambia il tipo di tastiera</string>
<string name="keycode_shift">Maiusc</string> <string name="keycode_shift">Maiusc</string>
<string name="keycode_enter">Invio</string> <string name="keycode_enter">Invio</string>
<string name="keycode_space">Spacebar</string>
<!-- Settings --> <!-- Settings -->
<string name="show_clipboard_content">Mostra il contenuto degli appunti se disponibile</string> <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> <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_mode_change">שנה את סוג המקלדת</string>
<string name="keycode_shift">Shift</string> <string name="keycode_shift">Shift</string>
<string name="keycode_enter">Enter</string> <string name="keycode_enter">Enter</string>
<string name="keycode_space">Spacebar</string>
<!-- Settings --> <!-- Settings -->
<string name="show_clipboard_content">הצג תוכן של לוח אם זמין</string> <string name="show_clipboard_content">הצג תוכן של לוח אם זמין</string>
<string name="show_popup">הצג חלון קופץ בלחיצת מקש</string> <string name="show_popup">הצג חלון קופץ בלחיצת מקש</string>

View File

@ -26,6 +26,7 @@
<string name="keycode_mode_change">キーボードの種類を変更する</string> <string name="keycode_mode_change">キーボードの種類を変更する</string>
<string name="keycode_shift">シフト</string> <string name="keycode_shift">シフト</string>
<string name="keycode_enter">エンター</string> <string name="keycode_enter">エンター</string>
<string name="keycode_space">Spacebar</string>
<!-- Settings --> <!-- Settings -->
<string name="show_clipboard_content">クリップボードの内容がある場合、それを表示する</string> <string name="show_clipboard_content">クリップボードの内容がある場合、それを表示する</string>
<string name="show_popup">キー入力時にポップアップを表示する</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_mode_change">Keisti klaviatūros tipą</string>
<string name="keycode_shift">Shift</string> <string name="keycode_shift">Shift</string>
<string name="keycode_enter">Enter</string> <string name="keycode_enter">Enter</string>
<string name="keycode_space">Spacebar</string>
<!-- Settings --> <!-- Settings -->
<string name="show_clipboard_content">Jei prieinama, rodyti iškarpinės turinį</string> <string name="show_clipboard_content">Jei prieinama, rodyti iškarpinės turinį</string>
<string name="show_popup">Show a popup on keypress</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_mode_change">കീബോർഡ് തരം മാറ്റുക</string>
<string name="keycode_shift">ഷിഫ്റ്റ്</string> <string name="keycode_shift">ഷിഫ്റ്റ്</string>
<string name="keycode_enter">നൽകുക</string> <string name="keycode_enter">നൽകുക</string>
<string name="keycode_space">Spacebar</string>
<!-- Settings --> <!-- Settings -->
<string name="show_clipboard_content">ക്ലിപ്പ്ബോർഡ് ഉള്ളടക്കം ലഭ്യമാണെങ്കിൽ കാണിക്കുക</string> <string name="show_clipboard_content">ക്ലിപ്പ്ബോർഡ് ഉള്ളടക്കം ലഭ്യമാണെങ്കിൽ കാണിക്കുക</string>
<string name="show_popup">കീപ്രസ്സിൽ ഒരു പോപ്പ്അപ്പ് കാണിക്കുക</string> <string name="show_popup">കീപ്രസ്സിൽ ഒരു പോപ്പ്അപ്പ് കാണിക്കുക</string>

View File

@ -26,6 +26,7 @@
<string name="keycode_mode_change">Change keyboard type</string> <string name="keycode_mode_change">Change keyboard type</string>
<string name="keycode_shift">Shift</string> <string name="keycode_shift">Shift</string>
<string name="keycode_enter">Enter</string> <string name="keycode_enter">Enter</string>
<string name="keycode_space">Spacebar</string>
<!-- Settings --> <!-- Settings -->
<string name="show_clipboard_content">Show clipboard content if available</string> <string name="show_clipboard_content">Show clipboard content if available</string>
<string name="show_popup">Show a popup on keypress</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_mode_change">Type toetsenbord veranderen</string>
<string name="keycode_shift">Shift</string> <string name="keycode_shift">Shift</string>
<string name="keycode_enter">Enter</string> <string name="keycode_enter">Enter</string>
<string name="keycode_space">Spacebar</string>
<!-- Settings --> <!-- Settings -->
<string name="show_clipboard_content">Klembordinhoud tonen indien beschikbaar</string> <string name="show_clipboard_content">Klembordinhoud tonen indien beschikbaar</string>
<string name="show_popup">Pop-up tonen bij toetsaanslagen</string> <string name="show_popup">Pop-up tonen bij toetsaanslagen</string>
@ -34,7 +35,7 @@
<string name="keyboard_height">Hoogte toetsenbord</string> <string name="keyboard_height">Hoogte toetsenbord</string>
<string name="show_key_borders">Toetsen omranden</string> <string name="show_key_borders">Toetsen omranden</string>
<string name="show_numbers_row">Cijfers op een aparte rij</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 --> <!-- Emojis -->
<string name="emojis">Emoji\'s</string> <string name="emojis">Emoji\'s</string>
<!-- <!--

View File

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

View File

@ -26,6 +26,7 @@
<string name="keycode_mode_change">Change keyboard type</string> <string name="keycode_mode_change">Change keyboard type</string>
<string name="keycode_shift">Shift</string> <string name="keycode_shift">Shift</string>
<string name="keycode_enter">Enter</string> <string name="keycode_enter">Enter</string>
<string name="keycode_space">Spacebar</string>
<!-- Settings --> <!-- Settings -->
<string name="show_clipboard_content">Show clipboard content if available</string> <string name="show_clipboard_content">Show clipboard content if available</string>
<string name="show_popup">Show a popup on keypress</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_mode_change">Zmień typ klawiatury</string>
<string name="keycode_shift">Shift</string> <string name="keycode_shift">Shift</string>
<string name="keycode_enter">Enter</string> <string name="keycode_enter">Enter</string>
<string name="keycode_space">Spacebar</string>
<!-- Settings --> <!-- Settings -->
<string name="show_clipboard_content">Pokazuj zawartość schowka, jeśli jest dostępna</string> <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> <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_mode_change">Mudar tipo de teclado</string>
<string name="keycode_shift">Shift</string> <string name="keycode_shift">Shift</string>
<string name="keycode_enter">Enter</string> <string name="keycode_enter">Enter</string>
<string name="keycode_space">Spacebar</string>
<!-- Settings --> <!-- Settings -->
<string name="show_clipboard_content">Mostrar conteúdo da área de transferência se houver</string> <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> <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_mode_change">Alterar tipo de teclado</string>
<string name="keycode_shift">Shift</string> <string name="keycode_shift">Shift</string>
<string name="keycode_enter">Enter</string> <string name="keycode_enter">Enter</string>
<string name="keycode_space">Spacebar</string>
<!-- Settings --> <!-- Settings -->
<string name="show_clipboard_content">Mostrar conteúdo da área de transferência, se disponível</string> <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> <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="keyboard_height">Altura do teclado</string>
<string name="show_key_borders">Mostrar contorno das teclas</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="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 --> <!-- Emojis -->
<string name="emojis">Emojis</string> <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_mode_change">Schimbați tipul de tastatură</string>
<string name="keycode_shift">Shift</string> <string name="keycode_shift">Shift</string>
<string name="keycode_enter">Enter</string> <string name="keycode_enter">Enter</string>
<string name="keycode_space">Spacebar</string>
<!-- Settings --> <!-- Settings -->
<string name="show_clipboard_content">Afișează conținutul clipboard-ului, dacă este disponibil</string> <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> <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_mode_change">Изменить тип клавиатуры</string>
<string name="keycode_shift">Shift</string> <string name="keycode_shift">Shift</string>
<string name="keycode_enter">Enter</string> <string name="keycode_enter">Enter</string>
<string name="keycode_space">Пробел</string>
<!-- Settings --> <!-- Settings -->
<string name="show_clipboard_content">Показывать содержимое буфера обмена при наличии</string> <string name="show_clipboard_content">Показывать содержимое буфера обмена при наличии</string>
<string name="show_popup">Показывать ввод по нажатию</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_mode_change">Zmeniť typ klávesnice</string>
<string name="keycode_shift">Shift</string> <string name="keycode_shift">Shift</string>
<string name="keycode_enter">Enter</string> <string name="keycode_enter">Enter</string>
<string name="keycode_space">Medzerník</string>
<!-- Settings --> <!-- Settings -->
<string name="show_clipboard_content">Zobraziť obsah schránky, ak je dostupná</string> <string name="show_clipboard_content">Zobraziť obsah schránky, ak je dostupná</string>
<string name="show_popup">Zobraziť detail znaku pri stlačení</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_mode_change">Spremeni vrsto tipkovnice</string>
<string name="keycode_shift">Shift</string> <string name="keycode_shift">Shift</string>
<string name="keycode_enter">Enter</string> <string name="keycode_enter">Enter</string>
<string name="keycode_space">Spacebar</string>
<!-- Settings --> <!-- Settings -->
<string name="show_clipboard_content">Prikaži vsebino odložišča, če je na voljo</string> <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> <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_mode_change">Промените тип тастатуре</string>
<string name="keycode_shift">Смена</string> <string name="keycode_shift">Смена</string>
<string name="keycode_enter">Унеси</string> <string name="keycode_enter">Унеси</string>
<string name="keycode_space">Spacebar</string>
<!-- Settings --> <!-- Settings -->
<string name="show_clipboard_content">Прикажи садржај међуспремника ако је доступан</string> <string name="show_clipboard_content">Прикажи садржај међуспремника ако је доступан</string>
<string name="show_popup">Прикажи искачући прозор при притиску на тастер</string> <string name="show_popup">Прикажи искачући прозор при притиску на тастер</string>

View File

@ -15,7 +15,7 @@
<string name="clipboard_current">Nuvarande</string> <string name="clipboard_current">Nuvarande</string>
<string name="clipboard_pinned">Nålad</string> <string name="clipboard_pinned">Nålad</string>
<string name="add_new_item">Lägg till ett nytt objekt</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="clip_text">Klipp text</string>
<string name="pin_text">Nåla text</string> <string name="pin_text">Nåla text</string>
<string name="text_pinned">Text har blivit nålad</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_mode_change">Ändra tangentbordstyp</string>
<string name="keycode_shift">Skift</string> <string name="keycode_shift">Skift</string>
<string name="keycode_enter">Enter</string> <string name="keycode_enter">Enter</string>
<string name="keycode_space">Spacebar</string>
<!-- Settings --> <!-- Settings -->
<string name="show_clipboard_content">Visa urklippets innehåll om tillgängligt</string> <string name="show_clipboard_content">Visa urklippets innehåll om tillgängligt</string>
<string name="show_popup">Visa en popupp vid knapptryck</string> <string name="show_popup">Visa en popupp vid knapptryck</string>
@ -34,7 +35,7 @@
<string name="keyboard_height">Tangentbordshöjd</string> <string name="keyboard_height">Tangentbordshöjd</string>
<string name="show_key_borders">Visa ramar runt tangenterna</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="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 --> <!-- Emojis -->
<string name="emojis">Emojier</string> <string name="emojis">Emojier</string>
<!-- <!--

View File

@ -26,6 +26,7 @@
<string name="keycode_mode_change">Change keyboard type</string> <string name="keycode_mode_change">Change keyboard type</string>
<string name="keycode_shift">Shift</string> <string name="keycode_shift">Shift</string>
<string name="keycode_enter">Enter</string> <string name="keycode_enter">Enter</string>
<string name="keycode_space">Spacebar</string>
<!-- Settings --> <!-- Settings -->
<string name="show_clipboard_content">Show clipboard content if available</string> <string name="show_clipboard_content">Show clipboard content if available</string>
<string name="show_popup">Show a popup on keypress</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_mode_change">Klavye türünü değiştir</string>
<string name="keycode_shift">Shift</string> <string name="keycode_shift">Shift</string>
<string name="keycode_enter">Enter</string> <string name="keycode_enter">Enter</string>
<string name="keycode_space">Spacebar</string>
<!-- Settings --> <!-- Settings -->
<string name="show_clipboard_content">Varsa pano içeriğini göster</string> <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> <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_mode_change">Змінити тип клавіатури</string>
<string name="keycode_shift">Shift</string> <string name="keycode_shift">Shift</string>
<string name="keycode_enter">Enter</string> <string name="keycode_enter">Enter</string>
<string name="keycode_space">Spacebar</string>
<!-- Settings --> <!-- Settings -->
<string name="show_clipboard_content">Показувати вміст буфера обміну, якщо він є</string> <string name="show_clipboard_content">Показувати вміст буфера обміну, якщо він є</string>
<string name="show_popup">Показувати popup при натисканні</string> <string name="show_popup">Показувати popup при натисканні</string>

View File

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

View File

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

View File

@ -26,6 +26,7 @@
<string name="keycode_mode_change">Change keyboard type</string> <string name="keycode_mode_change">Change keyboard type</string>
<string name="keycode_shift">Shift</string> <string name="keycode_shift">Shift</string>
<string name="keycode_enter">Enter</string> <string name="keycode_enter">Enter</string>
<string name="keycode_space">Spacebar</string>
<!-- Settings --> <!-- Settings -->
<string name="show_clipboard_content">Show clipboard content if available</string> <string name="show_clipboard_content">Show clipboard content if available</string>
<string name="show_popup">Show a popup on keypress</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" /> app:topSmallNumber="7" />
<Key <Key
app:keyLabel="i" app:keyLabel="i"
app:popupCharacters="íìî8įïī" app:popupCharacters="íìîį8ïī"
app:popupKeyboard="@xml/keyboard_popup_template" app:popupKeyboard="@xml/keyboard_popup_template"
app:topSmallNumber="8" /> app:topSmallNumber="8" />
<Key <Key
@ -159,17 +159,17 @@
app:code="-6" app:code="-6"
app:keyEdgeFlags="left" app:keyEdgeFlags="left"
app:keyIcon="@drawable/ic_emoji_emotions_outline_vector" 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 <Key
app:code="32" app:code="32"
app:isRepeatable="true" app:isRepeatable="true"
app:keyWidth="40%p" /> app:keyWidth="40%p" />
<Key <Key
app:keyLabel="." app:keyLabel="."
app:keyWidth="10%p"
app:popupCharacters=",?!;:…" app:popupCharacters=",?!;:…"
app:popupKeyboard="@xml/keyboard_popup_template" app:popupKeyboard="@xml/keyboard_popup_template" />
app:keyWidth="10%p" />
<Key <Key
app:code="-4" app:code="-4"
app:keyEdgeFlags="right" 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" /> app:topSmallNumber="7" />
<Key <Key
app:keyLabel="ı" app:keyLabel="ı"
app:popupCharacters="íìî8ïī" app:popupCharacters="íì8îïī"
app:popupKeyboard="@xml/keyboard_popup_template" app:popupKeyboard="@xml/keyboard_popup_template"
app:topSmallNumber="8" /> app:topSmallNumber="8" />
<Key <Key
app:keyLabel="o" app:keyLabel="o"
app:popupCharacters="őöóôòõ9ō" app:popupCharacters="őöóô9òõō"
app:popupKeyboard="@xml/keyboard_popup_template" app:popupKeyboard="@xml/keyboard_popup_template"
app:topSmallNumber="9" /> app:topSmallNumber="9" />
<Key <Key
@ -167,17 +167,17 @@
app:code="-6" app:code="-6"
app:keyEdgeFlags="left" app:keyEdgeFlags="left"
app:keyIcon="@drawable/ic_emoji_emotions_outline_vector" 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 <Key
app:code="32" app:code="32"
app:isRepeatable="true" app:isRepeatable="true"
app:keyWidth="40%p" /> app:keyWidth="40%p" />
<Key <Key
app:keyLabel="." app:keyLabel="."
app:keyWidth="10%p"
app:popupCharacters=",?!;:…" app:popupCharacters=",?!;:…"
app:popupKeyboard="@xml/keyboard_popup_template" app:popupKeyboard="@xml/keyboard_popup_template" />
app:keyWidth="10%p" />
<Key <Key
app:code="-4" app:code="-4"
app:keyEdgeFlags="right" app:keyEdgeFlags="right"