Add emoji key

This commit is contained in:
Naveen 2022-07-30 21:28:01 +05:30
parent 2b052f4c7c
commit 71e6b63158
10 changed files with 90 additions and 45 deletions

View File

@ -12,7 +12,6 @@ import android.view.inputmethod.EditorInfo
import android.view.inputmethod.EditorInfo.IME_ACTION_NONE import android.view.inputmethod.EditorInfo.IME_ACTION_NONE
import androidx.annotation.XmlRes import androidx.annotation.XmlRes
import com.simplemobiletools.keyboard.R import com.simplemobiletools.keyboard.R
import java.util.*
/** /**
* Loads an XML description of a keyboard and stores the attributes of the keys. A keyboard consists of rows of keys. * Loads an XML description of a keyboard and stores the attributes of the keys. A keyboard consists of rows of keys.
@ -61,6 +60,7 @@ class MyKeyboard {
const val KEYCODE_ENTER = -4 const val KEYCODE_ENTER = -4
const val KEYCODE_DELETE = -5 const val KEYCODE_DELETE = -5
const val KEYCODE_SPACE = 32 const val KEYCODE_SPACE = 32
const val KEYCODE_EMOJI = -6
fun getDimensionOrFraction(a: TypedArray, index: Int, base: Int, defValue: Int): Int { fun getDimensionOrFraction(a: TypedArray, index: Int, base: Int, defValue: Int): Int {
val value = a.peekValue(index) ?: return defValue val value = a.peekValue(index) ?: return defValue
@ -203,7 +203,7 @@ class MyKeyboard {
topSmallNumber = a.getString(R.styleable.MyKeyboard_Key_topSmallNumber) ?: "" topSmallNumber = a.getString(R.styleable.MyKeyboard_Key_topSmallNumber) ?: ""
if (label.isNotEmpty() && code != KEYCODE_MODE_CHANGE && code != KEYCODE_SHIFT) { if (label.isNotEmpty() && code != KEYCODE_MODE_CHANGE && code != KEYCODE_SHIFT) {
code = label[0].toInt() code = label[0].code
} }
a.recycle() a.recycle()
} }
@ -281,7 +281,7 @@ class MyKeyboard {
key.x = x key.x = x
key.y = y key.y = y
key.label = character.toString() key.label = character.toString()
key.code = character.toInt() key.code = character.code
column++ column++
x += key.width + key.gap x += key.width + key.gap
mKeys!!.add(key) mKeys!!.add(key)

View File

@ -122,10 +122,15 @@
<Key <Key
app:keyLabel="q" app:keyLabel="q"
app:keyWidth="10%p" /> app:keyWidth="10%p" />
<Key
app:code="-6"
app:keyEdgeFlags="left"
app:keyIcon="@drawable/ic_emoji_emotions_outline_vector"
app:keyWidth="8%p" />
<Key <Key
app:code="32" app:code="32"
app:isRepeatable="true" app:isRepeatable="true"
app:keyWidth="50%p" /> app:keyWidth="40%p" />
<Key <Key
app:keyLabel="z" app:keyLabel="z"
app:keyWidth="10%p" app:keyWidth="10%p"

View File

@ -121,10 +121,15 @@
<Key <Key
app:keyLabel="," app:keyLabel=","
app:keyWidth="10%p" /> app:keyWidth="10%p" />
<Key
app:code="-6"
app:keyEdgeFlags="left"
app:keyIcon="@drawable/ic_emoji_emotions_outline_vector"
app:keyWidth="8%p" />
<Key <Key
app:code="32" app:code="32"
app:isRepeatable="true" app:isRepeatable="true"
app:keyWidth="50%p" /> app:keyWidth="40%p" />
<Key <Key
app:keyLabel="." app:keyLabel="."
app:keyWidth="10%p" /> app:keyWidth="10%p" />

View File

@ -121,10 +121,15 @@
<Key <Key
app:keyLabel="," app:keyLabel=","
app:keyWidth="10%p" /> app:keyWidth="10%p" />
<Key
app:code="-6"
app:keyEdgeFlags="left"
app:keyIcon="@drawable/ic_emoji_emotions_outline_vector"
app:keyWidth="8%p" />
<Key <Key
app:code="32" app:code="32"
app:isRepeatable="true" app:isRepeatable="true"
app:keyWidth="50%p" /> app:keyWidth="40%p" />
<Key <Key
app:keyLabel="." app:keyLabel="."
app:keyWidth="10%p" /> app:keyWidth="10%p" />

View File

@ -102,10 +102,15 @@
<Key <Key
app:keyLabel="," app:keyLabel=","
app:keyWidth="10%p" /> app:keyWidth="10%p" />
<Key
app:code="-6"
app:keyEdgeFlags="left"
app:keyIcon="@drawable/ic_emoji_emotions_outline_vector"
app:keyWidth="8%p" />
<Key <Key
app:code="32" app:code="32"
app:isRepeatable="true" app:isRepeatable="true"
app:keyWidth="50%p" /> app:keyWidth="40%p" />
<Key <Key
app:keyLabel="." app:keyLabel="."
app:keyWidth="10%p" /> app:keyWidth="10%p" />

View File

@ -121,10 +121,15 @@
<Key <Key
app:keyLabel="," app:keyLabel=","
app:keyWidth="10%p" /> app:keyWidth="10%p" />
<Key
app:code="-6"
app:keyEdgeFlags="left"
app:keyIcon="@drawable/ic_emoji_emotions_outline_vector"
app:keyWidth="8%p" />
<Key <Key
app:code="32" app:code="32"
app:isRepeatable="true" app:isRepeatable="true"
app:keyWidth="50%p" /> app:keyWidth="40%p" />
<Key <Key
app:keyLabel="." app:keyLabel="."
app:keyWidth="10%p" /> app:keyWidth="10%p" />

View File

@ -105,10 +105,15 @@
<Key <Key
app:keyLabel="," app:keyLabel=","
app:keyWidth="10%p" /> app:keyWidth="10%p" />
<Key
app:code="-6"
app:keyEdgeFlags="left"
app:keyIcon="@drawable/ic_emoji_emotions_outline_vector"
app:keyWidth="8%p" />
<Key <Key
app:code="32" app:code="32"
app:isRepeatable="true" app:isRepeatable="true"
app:keyWidth="50%p" /> app:keyWidth="40%p" />
<Key <Key
app:keyLabel="." app:keyLabel="."
app:keyWidth="10%p" /> app:keyWidth="10%p" />

View File

@ -155,10 +155,15 @@
<Key <Key
app:keyLabel="," app:keyLabel=","
app:keyWidth="10%p" /> app:keyWidth="10%p" />
<Key
app:code="-6"
app:keyEdgeFlags="left"
app:keyIcon="@drawable/ic_emoji_emotions_outline_vector"
app:keyWidth="8%p" />
<Key <Key
app:code="32" app:code="32"
app:isRepeatable="true" app:isRepeatable="true"
app:keyWidth="50%p" /> app:keyWidth="40%p" />
<Key <Key
app:keyLabel="." app:keyLabel="."
app:keyWidth="10%p" /> app:keyWidth="10%p" />

View File

@ -108,10 +108,15 @@
<Key <Key
app:keyLabel="," app:keyLabel=","
app:keyWidth="10%p" /> app:keyWidth="10%p" />
<Key
app:code="-6"
app:keyEdgeFlags="left"
app:keyIcon="@drawable/ic_emoji_emotions_outline_vector"
app:keyWidth="8%p" />
<Key <Key
app:code="32" app:code="32"
app:isRepeatable="true" app:isRepeatable="true"
app:keyWidth="50%p" /> app:keyWidth="40%p" />
<Key <Key
app:keyLabel="." app:keyLabel="."
app:keyWidth="10%p" /> app:keyWidth="10%p" />

View File

@ -6,130 +6,135 @@
app:keyLabel="q" app:keyLabel="q"
app:popupCharacters="1" app:popupCharacters="1"
app:popupKeyboard="@xml/keyboard_popup_template" app:popupKeyboard="@xml/keyboard_popup_template"
app:topSmallNumber="1"/> app:topSmallNumber="1" />
<Key <Key
app:keyLabel="w" app:keyLabel="w"
app:popupCharacters="2" app:popupCharacters="2"
app:popupKeyboard="@xml/keyboard_popup_template" app:popupKeyboard="@xml/keyboard_popup_template"
app:topSmallNumber="2"/> app:topSmallNumber="2" />
<Key <Key
app:keyLabel="e" app:keyLabel="e"
app:popupCharacters="êè3éëēęė" app:popupCharacters="êè3éëēęė"
app:popupKeyboard="@xml/keyboard_popup_template" app:popupKeyboard="@xml/keyboard_popup_template"
app:topSmallNumber="3"/> app:topSmallNumber="3" />
<Key <Key
app:keyLabel="r" app:keyLabel="r"
app:popupCharacters="4ř" app:popupCharacters="4ř"
app:popupKeyboard="@xml/keyboard_popup_template" app:popupKeyboard="@xml/keyboard_popup_template"
app:topSmallNumber="4"/> app:topSmallNumber="4" />
<Key <Key
app:keyLabel="t" app:keyLabel="t"
app:popupCharacters="5" app:popupCharacters="5"
app:popupKeyboard="@xml/keyboard_popup_template" app:popupKeyboard="@xml/keyboard_popup_template"
app:topSmallNumber="5"/> app:topSmallNumber="5" />
<Key <Key
app:keyLabel="y" app:keyLabel="y"
app:popupCharacters="ÿ6ý¥" app:popupCharacters="ÿ6ý¥"
app:popupKeyboard="@xml/keyboard_popup_template" app:popupKeyboard="@xml/keyboard_popup_template"
app:topSmallNumber="6"/> app:topSmallNumber="6" />
<Key <Key
app:keyLabel="u" app:keyLabel="u"
app:popupCharacters="ūûü7úùű" app:popupCharacters="ūûü7úùű"
app:popupKeyboard="@xml/keyboard_popup_template" app:popupKeyboard="@xml/keyboard_popup_template"
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
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
app:keyEdgeFlags="right" app:keyEdgeFlags="right"
app:keyLabel="p" app:keyLabel="p"
app:popupCharacters="0" app:popupCharacters="0"
app:popupKeyboard="@xml/keyboard_popup_template" app:popupKeyboard="@xml/keyboard_popup_template"
app:topSmallNumber="0"/> app:topSmallNumber="0" />
</Row> </Row>
<Row> <Row>
<Key <Key
app:keyEdgeFlags="left" app:keyEdgeFlags="left"
app:keyLabel="a" app:keyLabel="a"
app:popupCharacters="áäàâãåāæą" app:popupCharacters="áäàâãåāæą"
app:popupKeyboard="@xml/keyboard_popup_template"/> app:popupKeyboard="@xml/keyboard_popup_template" />
<Key <Key
app:keyLabel="s" app:keyLabel="s"
app:popupCharacters="śßš" app:popupCharacters="śßš"
app:popupKeyboard="@xml/keyboard_popup_template"/> app:popupKeyboard="@xml/keyboard_popup_template" />
<Key <Key
app:keyLabel="d" app:keyLabel="d"
app:popupCharacters="ďđ" app:popupCharacters="ďđ"
app:popupKeyboard="@xml/keyboard_popup_template"/> app:popupKeyboard="@xml/keyboard_popup_template" />
<Key app:keyLabel="f"/> <Key app:keyLabel="f" />
<Key app:keyLabel="g"/> <Key app:keyLabel="g" />
<Key app:keyLabel="h"/> <Key app:keyLabel="h" />
<Key app:keyLabel="j"/> <Key app:keyLabel="j" />
<Key app:keyLabel="k"/> <Key app:keyLabel="k" />
<Key <Key
app:keyLabel="l" app:keyLabel="l"
app:popupCharacters="ĺľł" app:popupCharacters="ĺľł"
app:popupKeyboard="@xml/keyboard_popup_template"/> app:popupKeyboard="@xml/keyboard_popup_template" />
<Key <Key
app:keyEdgeFlags="right" app:keyEdgeFlags="right"
app:keyLabel="ñ"/> app:keyLabel="ñ" />
</Row> </Row>
<Row> <Row>
<Key <Key
app:code="-1" app:code="-1"
app:keyEdgeFlags="left" app:keyEdgeFlags="left"
app:keyIcon="@drawable/ic_caps_outline_vector" app:keyIcon="@drawable/ic_caps_outline_vector"
app:keyWidth="15%p"/> app:keyWidth="15%p" />
<Key <Key
app:keyLabel="z" app:keyLabel="z"
app:popupCharacters="źžż" app:popupCharacters="źžż"
app:popupKeyboard="@xml/keyboard_popup_template"/> app:popupKeyboard="@xml/keyboard_popup_template" />
<Key app:keyLabel="x"/> <Key app:keyLabel="x" />
<Key <Key
app:keyLabel="c" app:keyLabel="c"
app:popupCharacters="čçć" app:popupCharacters="čçć"
app:popupKeyboard="@xml/keyboard_popup_template"/> app:popupKeyboard="@xml/keyboard_popup_template" />
<Key app:keyLabel="v"/> <Key app:keyLabel="v" />
<Key app:keyLabel="b"/> <Key app:keyLabel="b" />
<Key <Key
app:keyLabel="n" app:keyLabel="n"
app:popupCharacters="ňń" app:popupCharacters="ňń"
app:popupKeyboard="@xml/keyboard_popup_template"/> app:popupKeyboard="@xml/keyboard_popup_template" />
<Key app:keyLabel="m"/> <Key app:keyLabel="m" />
<Key <Key
app:code="-5" app:code="-5"
app:isRepeatable="true" app:isRepeatable="true"
app:keyEdgeFlags="right" app:keyEdgeFlags="right"
app:keyIcon="@drawable/ic_clear_vector" app:keyIcon="@drawable/ic_clear_vector"
app:keyWidth="15%p"/> app:keyWidth="15%p" />
</Row> </Row>
<Row> <Row>
<Key <Key
app:code="-2" app:code="-2"
app:keyEdgeFlags="left" app:keyEdgeFlags="left"
app:keyLabel="123" app:keyLabel="123"
app:keyWidth="15%p"/> app:keyWidth="15%p" />
<Key <Key
app:keyLabel="," app:keyLabel=","
app:keyWidth="10%p"/> app:keyWidth="10%p" />
<Key
app:code="-6"
app:keyEdgeFlags="left"
app:keyIcon="@drawable/ic_emoji_emotions_outline_vector"
app:keyWidth="8%p" />
<Key <Key
app:code="32" app:code="32"
app:isRepeatable="true" app:isRepeatable="true"
app:keyWidth="50%p"/> app:keyWidth="40%p" />
<Key <Key
app:keyLabel="." app:keyLabel="."
app:keyWidth="10%p"/> app:keyWidth="10%p" />
<Key <Key
app:code="-4" app:code="-4"
app:keyEdgeFlags="right" app:keyEdgeFlags="right"
app:keyIcon="@drawable/ic_enter_vector" app:keyIcon="@drawable/ic_enter_vector"
app:keyWidth="15%p"/> app:keyWidth="15%p" />
</Row> </Row>
</Keyboard> </Keyboard>