Compare commits

..

18 Commits

Author SHA1 Message Date
Yuriy Liskov
53e7a4958f bump to 4.3.10 2018-05-05 00:48:08 +03:00
Yuriy Liskov
f2e1a39931 Icelandic lang: final 2018-05-05 00:45:02 +03:00
Yuriy Liskov
375a96c8aa Merge branch 'aglt-master' 2018-05-05 00:30:17 +03:00
aglt
c061884771 Merge branch 'master' into icelandic 2018-05-04 20:03:31 +00:00
aglt
7ad28440ba icelandic language support 2018-05-04 20:02:58 +00:00
Yuriy Liskov
a90f40dc95 update 2018-05-04 11:52:21 +03:00
Yuriy Liskov
7cf2e00f6e fix 2018-05-04 11:40:18 +03:00
Yuriy Liskov
aeb54d90bc wiki link 2018-05-04 11:25:19 +03:00
Yuriy Liskov
67a682269e readme fix 2018-05-04 11:10:39 +03:00
Yuriy Liskov
301833ff90 contributors 2018-05-04 11:06:34 +03:00
Yuriy Liskov
a57eeff2ae bump to 4.3.9 2018-04-27 17:40:40 +03:00
Yuriy Liskov
63b5f290e3 Merge branch 'rabin111-master' 2018-04-27 17:20:11 +03:00
rabin
acc035d8ba correct Thai keyboard layout 2018-04-26 10:58:01 +07:00
Yuriy Liskov
0757a82e2b refactor last commit 2018-04-23 02:30:59 +03:00
Yuriy Liskov
d05415fb65 fixes for previous commit 2018-04-23 00:04:11 +03:00
Yuriy Liskov
b3afc8e7f2 store up to two chars in one key label (Thai fix) 2018-04-22 15:48:25 +03:00
Yuriy Liskov
5d94ae66ac FireTV fix (update2) 2018-03-26 00:02:20 +03:00
Yuriy Liskov
0ed1761b8e FireTV fix (update1) 2018-03-25 18:28:27 +03:00
34 changed files with 273 additions and 286 deletions

View File

@@ -8,20 +8,20 @@ __LeanKeyKeyboard: An Keyboard for Android-based set-top boxes and TVs:__
Visit Google Play page:
* <a href="https://play.google.com/store/apps/details?id=org.liskovsoft.androidtv.rukeyboard" target="_blank">[APP] LeanKeyKeyboard</a>
### Features:
__NOTE: Google Play release is outdated. So I recommend to obtain new releases [here](https://github.com/yuliskov/LeanKeyKeyboard/releases).__
### Features:
* Designed for TV screens.
* Any remote controller support.
* Support dozens of languages through the language packs.
* Supports dozens of languages.
* Doesn't depend on Google Services.
* __No root required!__
__Switch to other language performed with menu key or with long press of the space bar.__
__Switch to other language performed with 'world' button, menu key or long press on the space bar.__
### Install LeanKeyKeyboard:
__Easy installation in less than 5 minutes with only the FireTV__
* <a href="https://github.com/yuliskov/SmartYouTubeTV/wiki/Install-SmartYouTubeTV-(only-FireTV-needed)">Install LeanKeyKeyboard (only FireTV needed)</a>
__Easy installation in less than 10 minutes with only FireTV__
* <a href="https://github.com/yuliskov/LeanKeyKeyboard/wiki/How-to-Install-LeanKeyKeyboard-on-FireTV">Install LeanKeyKeyboard (only FireTV needed)</a>
__Standard installation via ADB__
* If you don't know how to sideload/install apps via ADB, read a tutorial (e.g. <a href="http://kodi.wiki/view/HOW-TO:Install_Kodi_on_Fire_TV" target="_blank">this one</a>)
@@ -36,15 +36,16 @@ __Standard installation via ADB__
* [Check releases page for changelog ..](https://github.com/yuliskov/LeanKeyKeyboard/releases)
### Screenshots:
![Screenshot of LeanKeyKeyboard](img/leankeykeyboard_screenshot_01.png "Screenshot of LeanKeyKeyboard")
![Screenshot of LeanKeyKeyboard](img/leankeykeyboard_screenshot_02.png "Screenshot of LeanKeyKeyboard")
![Screenshot of LeanKeyKeyboard](img/leankeykeyboard_screenshot_03.png "Screenshot of LeanKeyKeyboard")
### Why using it:
* LeanKeyKeyboard provides possibility to enter text with any length.
* LeanKeyKeyboard provides support for the multiple remote controllers which allows you to enter text in a very convenient way.
### Contributors:
* __[rabin111](https://github.com/rabin111)__ (Thai lang)
### Developer:
* __[yuliskov](https://github.com/yuliskov)__ (design & coding)
### Donation:
If you want to support my developments you are welcome to buy me a cup of coffee :)
* BTC: 1JAT5VVWarVBkpVbNDn8UA8HXNdrukuBSx

View File

@@ -8,8 +8,8 @@ android {
applicationId "org.liskovsoft.leankeykeyboard.pro"
minSdkVersion project.properties.minSdkVersion
targetSdkVersion project.properties.targetSdkVersion
versionCode 57
versionName "4.3.7"
versionCode 60
versionName "4.3.10"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"

View File

@@ -5,6 +5,7 @@ import android.graphics.Rect;
import android.inputmethodservice.InputMethodService;
import android.inputmethodservice.Keyboard.Key;
import android.os.Handler;
import android.text.InputType;
import android.util.Log;
import android.view.KeyEvent;
import android.view.MotionEvent;
@@ -688,10 +689,12 @@ public class LeanbackKeyboardController implements LeanbackKeyboardContainer.Voi
initInputView();
}
// prevent accidental kbd pop-up on FireTV devices
// more info: https://forum.xda-developers.com/fire-tv/general/guide-change-screen-keyboard-to-leankey-t3527675/page2
int maskAction = info.imeOptions & EditorInfo.IME_MASK_ACTION;
mShowInput = maskAction != 0;
//// prevent accidental kbd pop-up on FireTV devices
//// more info: https://forum.xda-developers.com/fire-tv/general/guide-change-screen-keyboard-to-leankey-t3527675/page2
//int maskAction = info.imeOptions & EditorInfo.IME_MASK_ACTION;
//mShowInput = maskAction != 0;
mShowInput = info.inputType != InputType.TYPE_NULL;
}
public boolean showInputView() {

View File

@@ -69,6 +69,56 @@ public class LeanbackKeyboardView extends FrameLayout {
private int mRowCount;
private int mShiftState;
private final int mUnfocusStartDelay;
private final KeyConverter mConverter;
private class KeyConverter {
private static final int LOWER_CASE = 0;
private static final int UPPER_CASE = 1;
private void init(KeyHolder keyHolder) {
// store original label
// in case when two characters are stored in one label (e.g. "A|B")
if (keyHolder.key.text == null) {
keyHolder.key.text = keyHolder.key.label;
}
}
public void toLowerCase(KeyHolder keyHolder) {
extractChar(LOWER_CASE, keyHolder);
}
public void toUpperCase(KeyHolder keyHolder) {
extractChar(UPPER_CASE, keyHolder);
}
private void extractChar(int charCase, KeyHolder keyHolder) {
init(keyHolder);
CharSequence result = null;
CharSequence label = keyHolder.key.text;
String[] labels = splitLabels(label);
switch (charCase) {
case LOWER_CASE:
result = labels != null ? labels[0] : label.toString().toLowerCase();
break;
case UPPER_CASE:
result = labels != null ? labels[1] : label.toString().toUpperCase();
break;
}
keyHolder.key.label = result;
}
private String[] splitLabels(CharSequence label) {
String realLabel = label.toString();
String[] labels = realLabel.split("\\|");
return labels.length == 2 ? labels : null; // remember, we encoding two chars
}
}
public LeanbackKeyboardView(Context context, AttributeSet attrs) {
super(context, attrs);
@@ -92,29 +142,24 @@ public class LeanbackKeyboardView extends FrameLayout {
mClickAnimDur = res.getInteger(R.integer.clicked_anim_duration);
mUnfocusStartDelay = res.getInteger(R.integer.unfocused_anim_delay);
mInactiveMiniKbAlpha = res.getInteger(R.integer.inactive_mini_kb_alpha);
mConverter = new KeyConverter();
}
private CharSequence adjustCase(LeanbackKeyboardView.KeyHolder keyHolder) {
CharSequence label = keyHolder.key.label;
CharSequence result = label;
if (label != null && label.length() < 3) {
boolean flag;
if (keyHolder.isInMiniKb && keyHolder.isInvertible) {
flag = true;
} else {
flag = false;
}
private void adjustCase(LeanbackKeyboardView.KeyHolder keyHolder) {
boolean flag;
if (this.mKeyboard.isShifted() ^ flag) {
result = label.toString().toUpperCase();
} else {
result = label.toString().toLowerCase();
}
keyHolder.key.label = result;
if (keyHolder.isInMiniKb && keyHolder.isInvertible) {
flag = true;
} else {
flag = false;
}
return result;
// ^ equals to !=
if (mKeyboard.isShifted() ^ flag) {
mConverter.toUpperCase(keyHolder);
} else {
mConverter.toLowerCase(keyHolder);
}
}
@SuppressLint("NewApi")

View File

@@ -53,7 +53,7 @@ public class LeanbackImeService extends InputMethodService {
@SuppressLint("NewApi")
public LeanbackImeService() {
if (!this.enableHardwareAcceleration()) {
if (!enableHardwareAcceleration()) {
Log.w("LbImeService", "Could not enable hardware acceleration");
}
}
@@ -270,10 +270,11 @@ public class LeanbackImeService extends InputMethodService {
return isInputViewShown() && mKeyboardController.onKeyUp(keyCode, event) || super.onKeyUp(keyCode, event);
}
@Override
public boolean onShowInputRequested(int flags, boolean configChange) {
return true;
}
// FireTV fix
//@Override
//public boolean onShowInputRequested(int flags, boolean configChange) {
// return true;
//}
@Override
public int onStartCommand(final Intent intent, final int flags, final int startId) {
@@ -305,10 +306,11 @@ public class LeanbackImeService extends InputMethodService {
// FireTV: fix accidental kbd pop-ups
// more info: https://forum.xda-developers.com/fire-tv/general/guide-change-screen-keyboard-to-leankey-t3527675/page2
//if (!mKeyboardController.showInputView()) {
// onHideIme();
// return;
//}
updateInputViewShown();
if (!mKeyboardController.showInputView()) {
onHideIme();
return;
}
mKeyboardController.onStartInputView();
sendBroadcast(new Intent(IME_OPEN));

View File

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

View File

@@ -12,19 +12,4 @@
<item>1.2</item>
<item>1.4</item>
</string-array>
<string-array name="additional_languages">
<item>Russian|ru</item>
<item>Ukrainian|uk</item>
<item>Thai|th</item>
<item>Hebrew|he</item>
<item>Arabic|ar</item>
<item>Bulgarian|bg</item>
<item>Dutch|nl</item>
<item>French|fr</item>
<item>German|de</item>
<item>Greek|el</item>
<item>Italian|it</item>
<item>Persian|fa</item>
<item>Turkish|tr</item>
</string-array>
</resources>

View File

@@ -0,0 +1,19 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string-array name="additional_languages">
<item>Arabic|ar</item>
<item>Bulgarian|bg</item>
<item>Dutch|nl</item>
<item>French|fr</item>
<item>German|de</item>
<item>Greek|el</item>
<item>Hebrew|he</item>
<item>Icelandic|is</item>
<item>Italian|it</item>
<item>Persian|fa</item>
<item>Russian|ru</item>
<item>Thai|th</item>
<item>Turkish|tr</item>
<item>Ukrainian|uk</item>
</string-array>
</resources>

View File

@@ -1,9 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Keyboard android:keyWidth="@dimen/key_width" android:keyHeight="@dimen/key_height" android:horizontalGap="@dimen/keyboard_horizontal_gap" android:verticalGap="@dimen/keyboard_vertical_gap"
xmlns:android="http://schemas.android.com/apk/res/android">
<Row>
<Key android:keyLabel="ี" />
<Key android:keyLabel="๊" />
<Key android:keyLabel="ร" />
</Row>
</Keyboard>

View File

@@ -1,9 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Keyboard android:keyWidth="@dimen/key_width" android:keyHeight="@dimen/key_height" android:horizontalGap="@dimen/keyboard_horizontal_gap" android:verticalGap="@dimen/keyboard_vertical_gap"
xmlns:android="http://schemas.android.com/apk/res/android">
<Row>
<Key android:keyLabel="็" />
<Key android:keyLabel="่" />
<Key android:keyLabel="๋" />
</Row>
</Keyboard>

View File

@@ -1,9 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Keyboard android:keyWidth="@dimen/key_width" android:keyHeight="@dimen/key_height" android:horizontalGap="@dimen/keyboard_horizontal_gap" android:verticalGap="@dimen/keyboard_vertical_gap"
xmlns:android="http://schemas.android.com/apk/res/android">
<Row>
<Key android:keyLabel="๓" />
<Key android:keyLabel="๔" />
<Key android:keyLabel="ุ" />
</Row>
</Keyboard>

View File

@@ -1,9 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Keyboard android:keyWidth="@dimen/key_width" android:keyHeight="@dimen/key_height" android:horizontalGap="@dimen/keyboard_horizontal_gap" android:verticalGap="@dimen/keyboard_vertical_gap"
xmlns:android="http://schemas.android.com/apk/res/android">
<Row>
<Key android:keyLabel="๙" />
<Key android:keyLabel="ๆ" />
<Key android:keyLabel="" />
</Row>
</Keyboard>

View File

@@ -1,7 +1,8 @@
<?xml version="1.0" encoding="utf-8"?>
<Keyboard android:keyWidth="@dimen/key_width" android:keyHeight="@dimen/key_height" android:horizontalGap="@dimen/keyboard_horizontal_gap" android:verticalGap="@dimen/keyboard_vertical_gap"
xmlns:android="http://schemas.android.com/apk/res/android">
<Row>
<Key android:keyLabel="" />
</Row>
<?xml version="1.0" encoding="utf-8"?>
<Keyboard android:keyWidth="@dimen/key_width" android:keyHeight="@dimen/key_height" android:horizontalGap="@dimen/keyboard_horizontal_gap" android:verticalGap="@dimen/keyboard_vertical_gap"
xmlns:android="http://schemas.android.com/apk/res/android">
<Row>
<Key android:codes="97" android:keyLabel="a" />
<Key android:codes="225" android:keyLabel="á" />
</Row>
</Keyboard>

View File

@@ -0,0 +1,8 @@
<?xml version="1.0" encoding="utf-8"?>
<Keyboard android:keyWidth="@dimen/key_width" android:keyHeight="@dimen/key_height" android:horizontalGap="@dimen/keyboard_horizontal_gap" android:verticalGap="@dimen/keyboard_vertical_gap"
xmlns:android="http://schemas.android.com/apk/res/android">
<Row>
<Key android:codes="101" android:keyLabel="e" />
<Key android:codes="233" android:keyLabel="é" />
</Row>
</Keyboard>

View File

@@ -1,7 +1,8 @@
<?xml version="1.0" encoding="utf-8"?>
<Keyboard android:keyWidth="@dimen/key_width" android:keyHeight="@dimen/key_height" android:horizontalGap="@dimen/keyboard_horizontal_gap" android:verticalGap="@dimen/keyboard_vertical_gap"
xmlns:android="http://schemas.android.com/apk/res/android">
<Row>
<Key android:keyLabel="" />
</Row>
<?xml version="1.0" encoding="utf-8"?>
<Keyboard android:keyWidth="@dimen/key_width" android:keyHeight="@dimen/key_height" android:horizontalGap="@dimen/keyboard_horizontal_gap" android:verticalGap="@dimen/keyboard_vertical_gap"
xmlns:android="http://schemas.android.com/apk/res/android">
<Row>
<Key android:codes="105" android:keyLabel="i" />
<Key android:codes="237" android:keyLabel="í" />
</Row>
</Keyboard>

View File

@@ -1,8 +1,8 @@
<?xml version="1.0" encoding="utf-8"?>
<Keyboard android:keyWidth="@dimen/key_width" android:keyHeight="@dimen/key_height" android:horizontalGap="@dimen/keyboard_horizontal_gap" android:verticalGap="@dimen/keyboard_vertical_gap"
xmlns:android="http://schemas.android.com/apk/res/android">
<Row>
<Key android:keyLabel="" />
<Key android:keyLabel="" />
</Row>
<?xml version="1.0" encoding="utf-8"?>
<Keyboard android:keyWidth="@dimen/key_width" android:keyHeight="@dimen/key_height" android:horizontalGap="@dimen/keyboard_horizontal_gap" android:verticalGap="@dimen/keyboard_vertical_gap"
xmlns:android="http://schemas.android.com/apk/res/android">
<Row>
<Key android:codes="111" android:keyLabel="o" />
<Key android:codes="243" android:keyLabel="ó" />
</Row>
</Keyboard>

View File

@@ -1,7 +1,8 @@
<?xml version="1.0" encoding="utf-8"?>
<Keyboard android:keyWidth="@dimen/key_width" android:keyHeight="@dimen/key_height" android:horizontalGap="@dimen/keyboard_horizontal_gap" android:verticalGap="@dimen/keyboard_vertical_gap"
xmlns:android="http://schemas.android.com/apk/res/android">
<Row>
<Key android:keyLabel="" />
</Row>
<?xml version="1.0" encoding="utf-8"?>
<Keyboard android:keyWidth="@dimen/key_width" android:keyHeight="@dimen/key_height" android:horizontalGap="@dimen/keyboard_horizontal_gap" android:verticalGap="@dimen/keyboard_vertical_gap"
xmlns:android="http://schemas.android.com/apk/res/android">
<Row>
<Key android:codes="117" android:keyLabel="u" />
<Key android:codes="250" android:keyLabel="ú" />
</Row>
</Keyboard>

View File

@@ -0,0 +1,8 @@
<?xml version="1.0" encoding="utf-8"?>
<Keyboard android:keyWidth="@dimen/key_width" android:keyHeight="@dimen/key_height" android:horizontalGap="@dimen/keyboard_horizontal_gap" android:verticalGap="@dimen/keyboard_vertical_gap"
xmlns:android="http://schemas.android.com/apk/res/android">
<Row>
<Key android:codes="121" android:keyLabel="y" />
<Key android:codes="236" android:keyLabel="ý" />
</Row>
</Keyboard>

View File

@@ -1,7 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Keyboard android:keyWidth="@dimen/key_width" android:keyHeight="@dimen/key_height" android:horizontalGap="@dimen/keyboard_horizontal_gap" android:verticalGap="@dimen/keyboard_vertical_gap"
xmlns:android="http://schemas.android.com/apk/res/android">
<Row>
<Key android:keyLabel="ฃ" />
</Row>
</Keyboard>

View File

@@ -1,7 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Keyboard android:keyWidth="@dimen/key_width" android:keyHeight="@dimen/key_height" android:horizontalGap="@dimen/keyboard_horizontal_gap" android:verticalGap="@dimen/keyboard_vertical_gap"
xmlns:android="http://schemas.android.com/apk/res/android">
<Row>
<Key android:keyLabel="ฟ" />
</Row>
</Keyboard>

View File

@@ -1,9 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Keyboard android:keyWidth="@dimen/key_width" android:keyHeight="@dimen/key_height" android:horizontalGap="@dimen/keyboard_horizontal_gap" android:verticalGap="@dimen/keyboard_vertical_gap"
xmlns:android="http://schemas.android.com/apk/res/android">
<Row>
<Key android:keyLabel="ไ" />
<Key android:keyLabel="ำ" />
<Key android:keyLabel="ฎ" />
</Row>
</Keyboard>

View File

@@ -1,9 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Keyboard android:keyWidth="@dimen/key_width" android:keyHeight="@dimen/key_height" android:horizontalGap="@dimen/keyboard_horizontal_gap" android:verticalGap="@dimen/keyboard_vertical_gap"
xmlns:android="http://schemas.android.com/apk/res/android">
<Row>
<Key android:keyLabel="ธ" />
<Key android:keyLabel="ั" />
<Key android:keyLabel="ํ" />
</Row>
</Keyboard>

View File

@@ -1,9 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Keyboard android:keyWidth="@dimen/key_width" android:keyHeight="@dimen/key_height" android:horizontalGap="@dimen/keyboard_horizontal_gap" android:verticalGap="@dimen/keyboard_vertical_gap"
xmlns:android="http://schemas.android.com/apk/res/android">
<Row>
<Key android:keyLabel="พ" />
<Key android:keyLabel="ฑ" />
<Key android:keyLabel="ะ" />
</Row>
</Keyboard>

View File

@@ -1,9 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Keyboard android:keyWidth="@dimen/key_width" android:keyHeight="@dimen/key_height" android:horizontalGap="@dimen/keyboard_horizontal_gap" android:verticalGap="@dimen/keyboard_vertical_gap"
xmlns:android="http://schemas.android.com/apk/res/android">
<Row>
<Key android:keyLabel="ฝ" />
<Key android:keyLabel="ฦ" />
<Key android:keyLabel="๑" />
</Row>
</Keyboard>

View File

@@ -1,9 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Keyboard android:keyWidth="@dimen/key_width" android:keyHeight="@dimen/key_height" android:horizontalGap="@dimen/keyboard_horizontal_gap" android:verticalGap="@dimen/keyboard_vertical_gap"
xmlns:android="http://schemas.android.com/apk/res/android">
<Row>
<Key android:keyLabel="3641" />
<Key android:keyLabel="3638" />
<Key android:keyLabel="3662" />
</Row>
</Keyboard>

View File

@@ -1,9 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Keyboard android:keyWidth="@dimen/key_width" android:keyHeight="@dimen/key_height" android:horizontalGap="@dimen/keyboard_horizontal_gap" android:verticalGap="@dimen/keyboard_vertical_gap"
xmlns:android="http://schemas.android.com/apk/res/android">
<Row>
<Key android:keyLabel="ณ" />
<Key android:keyLabel="น" />
<Key android:keyLabel="ฯ" />
</Row>
</Keyboard>

View File

@@ -1,9 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Keyboard android:keyWidth="@dimen/key_width" android:keyHeight="@dimen/key_height" android:horizontalGap="@dimen/keyboard_horizontal_gap" android:verticalGap="@dimen/keyboard_vertical_gap"
xmlns:android="http://schemas.android.com/apk/res/android">
<Row>
<Key android:keyLabel="ค" />
<Key android:keyLabel="๕" />
<Key android:keyLabel="ต" />
</Row>
</Keyboard>

View File

@@ -1,9 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Keyboard android:keyWidth="@dimen/key_width" android:keyHeight="@dimen/key_height" android:horizontalGap="@dimen/keyboard_horizontal_gap" android:verticalGap="@dimen/keyboard_vertical_gap"
xmlns:android="http://schemas.android.com/apk/res/android">
<Row>
<Key android:keyLabel="ข" />
<Key android:keyLabel="๘" />
<Key android:keyLabel="ช" />
</Row>
</Keyboard>

View File

@@ -1,9 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Keyboard android:keyWidth="@dimen/key_width" android:keyHeight="@dimen/key_height" android:horizontalGap="@dimen/keyboard_horizontal_gap" android:verticalGap="@dimen/keyboard_vertical_gap"
xmlns:android="http://schemas.android.com/apk/res/android">
<Row>
<Key android:keyLabel="๒" />
<Key android:keyLabel="ภ" />
<Key android:keyLabel="๓" />
</Row>
</Keyboard>

View File

@@ -1,9 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Keyboard android:keyWidth="@dimen/key_width" android:keyHeight="@dimen/key_height" android:horizontalGap="@dimen/keyboard_horizontal_gap" android:verticalGap="@dimen/keyboard_vertical_gap"
xmlns:android="http://schemas.android.com/apk/res/android">
<Row>
<Key android:keyLabel="ด" />
<Key android:keyLabel="ฌ" />
<Key android:keyLabel="้" />
</Row>
</Keyboard>

View File

@@ -1,9 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Keyboard android:keyWidth="@dimen/key_width" android:keyHeight="@dimen/key_height" android:horizontalGap="@dimen/keyboard_horizontal_gap" android:verticalGap="@dimen/keyboard_vertical_gap"
xmlns:android="http://schemas.android.com/apk/res/android">
<Row>
<Key android:keyLabel="๖" />
<Key android:keyLabel="จ" />
<Key android:keyLabel="๗" />
</Row>
</Keyboard>

View File

@@ -1,9 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Keyboard android:keyWidth="@dimen/key_width" android:keyHeight="@dimen/key_height" android:horizontalGap="@dimen/keyboard_horizontal_gap" android:verticalGap="@dimen/keyboard_vertical_gap"
xmlns:android="http://schemas.android.com/apk/res/android">
<Row>
<Key android:keyLabel="ฆ" />
<Key android:keyLabel="ก" />
<Key android:keyLabel="ฏ" />
</Row>
</Keyboard>

View File

@@ -0,0 +1,69 @@
<?xml version="1.0" encoding="utf-8"?>
<Keyboard android:keyWidth="@dimen/key_width" android:keyHeight="@dimen/key_height" android:horizontalGap="@dimen/keyboard_horizontal_gap" android:verticalGap="@dimen/keyboard_vertical_gap"
xmlns:android="http://schemas.android.com/apk/res/android">
<!-- All letters needed for German and Danish are in the C0 Controls and Basic Latin and C1 Controls and Latin-1 Supplement blocks. (See Wikipedia's list of languages supported by those blocks.)
For Czech/Slovak, you also need Latin Extended-A.
You should also include General Punctuation, as well as any other symbols you may use (e.g. Arrows).
See http://en.wikipedia.org/wiki/Latin_characters_in_Unicode. -->
<Row android:rowEdgeFlags="top">
<Key android:codes="49" android:popupKeyboard="@xml/shift_1" android:keyEdgeFlags="left" android:keyLabel="1" />
<Key android:codes="50" android:popupKeyboard="@xml/shift_2" android:keyLabel="2" />
<Key android:codes="51" android:popupKeyboard="@xml/shift_3" android:keyLabel="3" />
<Key android:codes="52" android:popupKeyboard="@xml/shift_4" android:keyLabel="4" />
<Key android:codes="53" android:popupKeyboard="@xml/shift_5" android:keyLabel="5" />
<Key android:codes="54" android:popupKeyboard="@xml/shift_6" android:keyLabel="6" />
<Key android:codes="55" android:popupKeyboard="@xml/shift_7" android:keyLabel="7" />
<Key android:codes="56" android:popupKeyboard="@xml/shift_8" android:keyLabel="8" />
<Key android:codes="57" android:popupKeyboard="@xml/shift_9" android:keyLabel="9" />
<Key android:codes="48" android:popupKeyboard="@xml/shift_0" android:keyLabel="0" />
<Key android:codes="-5" android:keyEdgeFlags="right" android:keyLabel="@string/keyboardview_keycode_delete" android:keyIcon="@drawable/ic_ime_delete" />
</Row>
<Row>
<Key android:codes="113" android:keyLabel="q" android:keyEdgeFlags="left" />
<Key android:codes="119" android:keyLabel="w" />
<Key android:codes="101" android:keyLabel="e" android:popupKeyboard="@xml/accent_is_e" />
<Key android:codes="114" android:keyLabel="r" />
<Key android:codes="116" android:keyLabel="t" />
<Key android:codes="121" android:keyLabel="y" android:popupKeyboard="@xml/accent_is_y" />
<Key android:codes="117" android:keyLabel="u" android:popupKeyboard="@xml/accent_is_u" />
<Key android:codes="105" android:keyLabel="i" android:popupKeyboard="@xml/accent_is_i" />
<Key android:codes="111" android:keyLabel="o" android:popupKeyboard="@xml/accent_is_o" />
<Key android:codes="112" android:keyLabel="p" />
<Key android:codes="208" android:keyLabel="ð" android:keyEdgeFlags="right"/>
</Row>
<Row>
<Key android:codes="97" android:keyLabel="a" android:popupKeyboard="@xml/accent_is_a" android:keyEdgeFlags="left" />
<Key android:codes="115" android:keyLabel="s" />
<Key android:codes="100" android:keyLabel="d" />
<Key android:codes="102" android:keyLabel="f" />
<Key android:codes="103" android:keyLabel="g" />
<Key android:codes="104" android:keyLabel="h" />
<Key android:codes="106" android:keyLabel="j" />
<Key android:codes="107" android:keyLabel="k" />
<Key android:codes="108" android:keyLabel="l" />
<Key android:codes="230" android:popupKeyboard="@xml/shift_ae" android:keyLabel="æ" />
<Key android:codes="246" android:keyLabel="ö" android:keyEdgeFlags="right" />
</Row>
<Row>
<Key android:codes="-1" android:keyEdgeFlags="left" android:keyLabel="@string/keyboardview_keycode_shift" android:keyIcon="@drawable/ic_ime_shift_off" />
<Key android:codes="122" android:keyLabel="z" />
<Key android:codes="120" android:keyLabel="x" />
<Key android:codes="99" android:keyLabel="c" />
<Key android:codes="118" android:keyLabel="v" />
<Key android:codes="98" android:keyLabel="b" />
<Key android:codes="110" android:keyLabel="n" />
<Key android:codes="109" android:keyLabel="m" />
<Key android:codes="231" android:keyLabel="þ" />
<Key android:keyLabel="." />
<Key android:keyLabel="/" android:keyEdgeFlags="right" />
</Row>
<Row android:rowEdgeFlags="bottom">
<Key android:codes="-2" android:keyEdgeFlags="left" android:keyLabel="@string/keyboardview_keycode_mode_change" android:keyIcon="@drawable/ic_ime_symbols" />
<Key android:keyLabel="\@" />
<Key android:codes="-9" android:keyLabel="@string/keyboardview_keycode_lang" android:keyIcon="@drawable/ic_ime_world" />
<Key android:keyWidth="@dimen/space_key_width" android:codes="32" android:keyLabel="@string/keyboardview_keycode_space" android:keyIcon="@drawable/ic_ime_space_is" />
<Key android:codes="-3" android:keyLabel="@string/keyboardview_keycode_left" android:keyIcon="@drawable/ic_ime_left_arrow" />
<Key android:codes="-4" android:keyEdgeFlags="right" android:keyLabel="@string/keyboardview_keycode_right" android:keyIcon="@drawable/ic_ime_right_arrow" />
</Row>
</Keyboard>

View File

@@ -4,56 +4,58 @@
<!-- Thai keyboard -->
<!-- https://en.wikipedia.org/wiki/Thai_(Unicode_block) -->
<Row android:rowEdgeFlags="top">
<Key android:codes="49" android:popupKeyboard="@xml/shift_1" android:keyEdgeFlags="left" android:keyLabel="1" />
<Key android:codes="50" android:popupKeyboard="@xml/shift_2" android:keyLabel="2" />
<Key android:codes="51" android:popupKeyboard="@xml/shift_3" android:keyLabel="3" />
<Key android:codes="52" android:popupKeyboard="@xml/shift_4" android:keyLabel="4" />
<Key android:codes="53" android:popupKeyboard="@xml/shift_5" android:keyLabel="5" />
<Key android:codes="54" android:popupKeyboard="@xml/shift_6" android:keyLabel="6" />
<Key android:codes="55" android:popupKeyboard="@xml/shift_7" android:keyLabel="7" />
<Key android:codes="56" android:popupKeyboard="@xml/shift_8" android:keyLabel="8" />
<Key android:codes="57" android:popupKeyboard="@xml/shift_9" android:keyLabel="9" />
<Key android:codes="48" android:popupKeyboard="@xml/shift_0" android:keyLabel="0" />
<Key android:codes="-5" android:keyEdgeFlags="right" android:keyLabel="@string/keyboardview_keycode_delete" android:keyIcon="@drawable/ic_ime_delete" />
<Key android:keyEdgeFlags="left" android:keyLabel="ๆ|๑" />
<Key android:keyLabel="ภ|๒" />
<Key android:keyLabel="ถ|๓" />
<Key android:keyLabel="ุ|ู" />
<Key android:keyLabel="ึ|๔" />
<Key android:keyLabel="ค|๕" />
<Key android:keyLabel="ต|๖" />
<Key android:keyLabel="จ|๗" />
<Key android:keyLabel="ข|๘" />
<Key android:keyLabel="ช|๙" />
<Key android:codes="-5" android:keyEdgeFlags="right" android:keyLabel="@string/keyboardview_keycode_delete" android:keyIcon="@drawable/ic_ime_delete" />
</Row>
<Row>
<Key android:popupKeyboard="@xml/accent_q_th" android:keyLabel="ฝ" android:keyEdgeFlags="left" />
<Key android:popupKeyboard="@xml/accent_w_th" android:keyLabel="๒" />
<Key android:popupKeyboard="@xml/accent_e_th" android:keyLabel="๓" />
<Key android:popupKeyboard="@xml/accent_r_th" android:keyLabel="" />
<Key android:popupKeyboard="@xml/accent_t_th" android:keyLabel="" />
<Key android:popupKeyboard="@xml/accent_y_th" android:keyLabel="" />
<Key android:popupKeyboard="@xml/accent_u_th" android:keyLabel="" />
<Key android:popupKeyboard="@xml/accent_i_th" android:keyLabel="" />
<Key android:popupKeyboard="@xml/accent_o_th" android:keyLabel="" />
<Key android:popupKeyboard="@xml/accent_p_th" android:keyLabel="" />
<Key android:popupKeyboard="@xml/accent_p2_th" android:keyLabel="ธ" android:keyEdgeFlags="right" />
<!-- NOTE: example of adding different chars to uppercase/lowercase states -->
<!-- format is: android:keyLabel="lower_char|upper_char" e.g. android:keyLabel="ฝ|๒" -->
<Key android:keyLabel="ไ|" android:keyEdgeFlags="left" />
<Key android:keyLabel="ำ|ฎ" />
<Key android:keyLabel="พ|ฑ" />
<Key android:keyLabel="ะ|ธ" />
<Key android:keyLabel="ั|ํ" />
<Key android:keyLabel="ี|๊" />
<Key android:keyLabel="ร|ณ" />
<Key android:keyLabel="น|ฯ" />
<Key android:keyLabel="ย|ญ" />
<Key android:keyLabel="บ|ฐ" />
<Key android:keyLabel="ล|," android:keyEdgeFlags="right" />
</Row>
<Row>
<Key android:popupKeyboard="@xml/accent_a_th" android:keyLabel="" android:keyEdgeFlags="left" />
<Key android:popupKeyboard="@xml/accent_s_th" android:keyLabel="" />
<Key android:popupKeyboard="@xml/accent_d_th" android:keyLabel="" />
<Key android:popupKeyboard="@xml/accent_f_th" android:keyLabel="" />
<Key android:popupKeyboard="@xml/accent_g_th" android:keyLabel="" />
<Key android:popupKeyboard="@xml/accent_h_th" android:keyLabel="" />
<Key android:popupKeyboard="@xml/accent_j_th" android:keyLabel="" />
<Key android:keyLabel="" />
<Key android:keyLabel="" />
<Key android:keyLabel="" />
<Key android:keyLabel="ş" android:keyEdgeFlags="right" />
<Key android:keyLabel="ฟ|ฤ" android:keyEdgeFlags="left" />
<Key android:keyLabel="ห|ฆ" />
<Key android:keyLabel="ก|ฏ" />
<Key android:keyLabel="ด|โ" />
<Key android:keyLabel="เ|ฌ" />
<Key android:keyLabel="้|็" />
<Key android:keyLabel="่|๋" />
<Key android:keyLabel="า|ษ" />
<Key android:keyLabel="ส|ศ" />
<Key android:keyLabel="ว|ซ" />
<Key android:keyLabel="ง|." android:keyEdgeFlags="right" />
</Row>
<Row>
<Key android:popupKeyboard="@xml/accent_z_th" android:keyLabel="" android:keyEdgeFlags="left" />
<Key android:popupKeyboard="@xml/accent_x_th" android:keyLabel="" />
<Key android:popupKeyboard="@xml/accent_c_th" android:keyLabel="" />
<Key android:keyLabel="" />
<Key android:keyLabel="" />
<Key android:keyLabel="" />
<Key android:keyLabel="" />
<Key android:keyLabel="" />
<Key android:keyLabel="" />
<Key android:keyLabel="" />
<Key android:keyLabel="," android:keyEdgeFlags="right" />
<Key android:keyLabel="ผ|(" android:keyEdgeFlags="left" />
<Key android:keyLabel="ป|)" />
<Key android:keyLabel="แ|ฉ" />
<Key android:keyLabel="อ|ฮ" />
<Key android:keyLabel="ิ|ฺ" />
<Key android:keyLabel="ื|์" />
<Key android:keyLabel="ท|?" />
<Key android:keyLabel="ม|ฒ" />
<Key android:keyLabel="ใ|ฬ" />
<Key android:keyLabel="ฝ|ฦ" />
<Key android:keyLabel="ฃ|ฅ" android:keyEdgeFlags="right" />
</Row>
<Row android:rowEdgeFlags="bottom">
<Key android:codes="-2" android:keyEdgeFlags="left" android:keyLabel="@string/keyboardview_keycode_mode_change" android:keyIcon="@drawable/ic_ime_symbols" />