mirror of
https://github.com/SimpleMobileTools/Simple-Keyboard.git
synced 2025-02-07 15:38:38 +01:00
Merge branch 'main' of github.com:SimpleMobileTools/Simple-Keyboard into main
This commit is contained in:
commit
d421b910fe
@ -44,6 +44,7 @@ class SettingsActivity : SimpleActivity() {
|
||||
setupKeyboardLanguage()
|
||||
setupKeyboardHeightMultiplier()
|
||||
setupShowClipboardContent()
|
||||
setupShowNumbersRow()
|
||||
|
||||
updateTextColors(settings_nested_scrollview)
|
||||
|
||||
@ -159,4 +160,11 @@ class SettingsActivity : SimpleActivity() {
|
||||
config.showClipboardContent = settings_show_clipboard_content.isChecked
|
||||
}
|
||||
}
|
||||
private fun setupShowNumbersRow() {
|
||||
settings_show_numbers_row.isChecked = config.showNumbersRow
|
||||
settings_show_numbers_row_holder.setOnClickListener {
|
||||
settings_show_numbers_row.toggle()
|
||||
config.showNumbersRow = settings_show_numbers_row.isChecked
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -37,6 +37,9 @@ class Config(context: Context) : BaseConfig(context) {
|
||||
get() = prefs.getBoolean(SHOW_CLIPBOARD_CONTENT, true)
|
||||
set(showClipboardContent) = prefs.edit().putBoolean(SHOW_CLIPBOARD_CONTENT, showClipboardContent).apply()
|
||||
|
||||
var showNumbersRow: Boolean
|
||||
get() = prefs.getBoolean(SHOW_NUMBERS_ROW, false)
|
||||
set(showNumbersRow) = prefs.edit().putBoolean(SHOW_NUMBERS_ROW, showNumbersRow).apply()
|
||||
|
||||
private fun getDefaultLanguage(): Int {
|
||||
val conf = context.resources.configuration
|
||||
|
@ -15,6 +15,7 @@ const val LAST_EXPORTED_CLIPS_FOLDER = "last_exported_clips_folder"
|
||||
const val KEYBOARD_LANGUAGE = "keyboard_language"
|
||||
const val HEIGHT_MULTIPLIER = "height_multiplier"
|
||||
const val SHOW_CLIPBOARD_CONTENT = "show_clipboard_content"
|
||||
const val SHOW_NUMBERS_ROW = "show_numbers_row"
|
||||
|
||||
// differentiate current and pinned clips at the keyboards' Clipboard section
|
||||
const val ITEM_SECTION_LABEL = 0
|
||||
|
@ -97,6 +97,8 @@ class MyKeyboard {
|
||||
|
||||
var parent: MyKeyboard
|
||||
|
||||
var isNumbersRow: Boolean = false
|
||||
|
||||
constructor(parent: MyKeyboard) {
|
||||
this.parent = parent
|
||||
}
|
||||
@ -107,6 +109,7 @@ class MyKeyboard {
|
||||
defaultWidth = getDimensionOrFraction(a, R.styleable.MyKeyboard_keyWidth, parent.mDisplayWidth, parent.mDefaultWidth)
|
||||
defaultHeight = (res.getDimension(R.dimen.key_height) * this.parent.mKeyboardHeightMultiplier).roundToInt()
|
||||
defaultHorizontalGap = getDimensionOrFraction(a, R.styleable.MyKeyboard_horizontalGap, parent.mDisplayWidth, parent.mDefaultHorizontalGap)
|
||||
isNumbersRow = a.getBoolean(R.styleable.MyKeyboard_isNumbersRow, false)
|
||||
a.recycle()
|
||||
}
|
||||
}
|
||||
@ -342,14 +345,31 @@ class MyKeyboard {
|
||||
if (event == XmlResourceParser.START_TAG) {
|
||||
when (parser.name) {
|
||||
TAG_ROW -> {
|
||||
currentRow = createRowFromXml(res, parser)
|
||||
if (currentRow.isNumbersRow && !context.config.showNumbersRow) {
|
||||
continue
|
||||
}
|
||||
inRow = true
|
||||
x = 0
|
||||
currentRow = createRowFromXml(res, parser)
|
||||
mRows.add(currentRow)
|
||||
}
|
||||
|
||||
TAG_KEY -> {
|
||||
if (currentRow?.isNumbersRow == true && !context.config.showNumbersRow) {
|
||||
continue
|
||||
}
|
||||
inKey = true
|
||||
key = createKeyFromXml(res, currentRow!!, x, y, parser)
|
||||
if (context.config.showNumbersRow) {
|
||||
// Removes numbers (i.e 0-9) from the popupCharacters if numbers row is enabled
|
||||
key.apply {
|
||||
popupCharacters = popupCharacters?.replace(Regex("\\d+"), "")
|
||||
if (popupCharacters.isNullOrEmpty()) {
|
||||
popupResId = 0
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
mKeys!!.add(key)
|
||||
if (key.code == KEYCODE_ENTER) {
|
||||
val enterResourceId = when (mEnterKeyType) {
|
||||
@ -362,6 +382,7 @@ class MyKeyboard {
|
||||
}
|
||||
currentRow.mKeys.add(key)
|
||||
}
|
||||
|
||||
TAG_KEYBOARD -> {
|
||||
parseKeyboardAttributes(res, parser)
|
||||
}
|
||||
|
@ -138,6 +138,7 @@ class MyKeyboardView @JvmOverloads constructor(context: Context, attrs: Attribut
|
||||
private var mLastKey = 0
|
||||
private var mLastCodeX = 0
|
||||
private var mLastCodeY = 0
|
||||
private var mLastKeyPressedCode = 0
|
||||
private var mCurrentKey: Int = NOT_A_KEY
|
||||
private var mLastKeyTime = 0L
|
||||
private var mCurrentKeyTime = 0L
|
||||
@ -263,6 +264,7 @@ class MyKeyboardView @JvmOverloads constructor(context: Context, attrs: Attribut
|
||||
val repeat = Message.obtain(this, MSG_REPEAT)
|
||||
sendMessageDelayed(repeat, REPEAT_INTERVAL.toLong())
|
||||
}
|
||||
|
||||
MSG_LONGPRESS -> openPopupIfRequired(msg.obj as MotionEvent)
|
||||
}
|
||||
}
|
||||
@ -591,7 +593,7 @@ class MyKeyboardView @JvmOverloads constructor(context: Context, attrs: Attribut
|
||||
label, (key.width / 2).toFloat(), key.height / 2 + (paint.textSize - paint.descent()) / 2, paint
|
||||
)
|
||||
|
||||
if (key.topSmallNumber.isNotEmpty()) {
|
||||
if (key.topSmallNumber.isNotEmpty() && !context.config.showNumbersRow) {
|
||||
canvas.drawText(key.topSmallNumber, key.width - mTopSmallNumberMarginWidth, mTopSmallNumberMarginHeight, smallLetterPaint)
|
||||
}
|
||||
|
||||
@ -1204,6 +1206,7 @@ class MyKeyboardView @JvmOverloads constructor(context: Context, attrs: Attribut
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
MotionEvent.ACTION_UP, MotionEvent.ACTION_CANCEL -> {
|
||||
mMiniKeyboard?.mKeys?.firstOrNull { it.focused }?.apply {
|
||||
mOnKeyboardActionListener!!.onKey(code)
|
||||
@ -1262,6 +1265,7 @@ class MyKeyboardView @JvmOverloads constructor(context: Context, attrs: Attribut
|
||||
invalidateKey(mCurrentKey)
|
||||
return true
|
||||
}
|
||||
|
||||
MotionEvent.ACTION_DOWN -> {
|
||||
mAbortKey = false
|
||||
mLastCodeX = touchX
|
||||
@ -1278,8 +1282,8 @@ class MyKeyboardView @JvmOverloads constructor(context: Context, attrs: Attribut
|
||||
} else {
|
||||
0
|
||||
}
|
||||
|
||||
mOnKeyboardActionListener!!.onPress(onPressKey)
|
||||
mLastKeyPressedCode = onPressKey
|
||||
|
||||
var wasHandled = false
|
||||
if (mCurrentKey >= 0 && mKeys[mCurrentKey].repeatable) {
|
||||
@ -1310,6 +1314,7 @@ class MyKeyboardView @JvmOverloads constructor(context: Context, attrs: Attribut
|
||||
showPreview(keyIndex)
|
||||
}
|
||||
}
|
||||
|
||||
MotionEvent.ACTION_MOVE -> {
|
||||
var continueLongPress = false
|
||||
if (keyIndex != NOT_A_KEY) {
|
||||
@ -1363,6 +1368,7 @@ class MyKeyboardView @JvmOverloads constructor(context: Context, attrs: Attribut
|
||||
mLastMoveTime = eventTime
|
||||
}
|
||||
}
|
||||
|
||||
MotionEvent.ACTION_UP -> {
|
||||
mLastSpaceMoveX = 0
|
||||
removeMessages()
|
||||
@ -1391,11 +1397,14 @@ class MyKeyboardView @JvmOverloads constructor(context: Context, attrs: Attribut
|
||||
detectAndSendKey(mCurrentKey, touchX, touchY, eventTime)
|
||||
}
|
||||
|
||||
invalidateKey(keyIndex)
|
||||
if (mLastKeyPressedCode != KEYCODE_MODE_CHANGE) {
|
||||
invalidateKey(keyIndex)
|
||||
}
|
||||
mRepeatKeyIndex = NOT_A_KEY
|
||||
mOnKeyboardActionListener!!.onActionUp()
|
||||
mIsLongPressingSpace = false
|
||||
}
|
||||
|
||||
MotionEvent.ACTION_CANCEL -> {
|
||||
mIsLongPressingSpace = false
|
||||
mLastSpaceMoveX = 0
|
||||
@ -1515,12 +1524,14 @@ class MyKeyboardView @JvmOverloads constructor(context: Context, attrs: Attribut
|
||||
mHandler!!.sendMessageDelayed(msg, REPEAT_START_DELAY.toLong())
|
||||
true
|
||||
}
|
||||
|
||||
MotionEvent.ACTION_UP -> {
|
||||
mHandler!!.removeMessages(MSG_REPEAT)
|
||||
mRepeatKeyIndex = NOT_A_KEY
|
||||
isPressed = false
|
||||
false
|
||||
}
|
||||
|
||||
else -> false
|
||||
}
|
||||
}
|
||||
|
@ -189,6 +189,20 @@
|
||||
android:layout_height="wrap_content"
|
||||
android:text="@string/show_clipboard_content" />
|
||||
|
||||
</RelativeLayout>
|
||||
<RelativeLayout
|
||||
android:id="@+id/settings_show_numbers_row_holder"
|
||||
style="@style/SettingsHolderCheckboxStyle"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content">
|
||||
|
||||
<com.simplemobiletools.commons.views.MyAppCompatCheckbox
|
||||
android:id="@+id/settings_show_numbers_row"
|
||||
style="@style/SettingsCheckboxStyle"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="@string/show_numbers_row" />
|
||||
|
||||
</RelativeLayout>
|
||||
|
||||
<RelativeLayout
|
||||
|
@ -11,6 +11,7 @@
|
||||
<declare-styleable name="MyKeyboard">
|
||||
<attr name="keyWidth" format="fraction" />
|
||||
<attr name="horizontalGap" format="fraction" />
|
||||
<attr name="isNumbersRow" format="boolean" />
|
||||
</declare-styleable>
|
||||
|
||||
<declare-styleable name="MyKeyboard_Key">
|
||||
|
@ -1,5 +1,39 @@
|
||||
<?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 app:keyWidth="9.091%p">
|
||||
<Key
|
||||
app:keyEdgeFlags="left"
|
||||
|
@ -1,5 +1,39 @@
|
||||
<?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 app:keyWidth="9.05%p">
|
||||
<Key
|
||||
app:keyEdgeFlags="left"
|
||||
|
@ -1,5 +1,39 @@
|
||||
<?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"
|
||||
|
@ -1,5 +1,39 @@
|
||||
<?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"
|
||||
@ -125,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"
|
||||
|
@ -1,5 +1,39 @@
|
||||
<?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"
|
||||
|
@ -1,5 +1,39 @@
|
||||
<?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"
|
||||
|
@ -1,5 +1,39 @@
|
||||
<?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"
|
||||
|
@ -1,5 +1,39 @@
|
||||
<?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"
|
||||
|
@ -1,5 +1,39 @@
|
||||
<?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"
|
||||
|
@ -1,5 +1,39 @@
|
||||
<?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"
|
||||
|
@ -1,5 +1,39 @@
|
||||
<?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"
|
||||
|
@ -1,5 +1,39 @@
|
||||
<?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"
|
||||
|
@ -1,5 +1,39 @@
|
||||
<?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"
|
||||
|
@ -1,5 +1,39 @@
|
||||
<?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 app:keyWidth="8.33%p">
|
||||
<Key
|
||||
app:keyEdgeFlags="left"
|
||||
|
Loading…
x
Reference in New Issue
Block a user