mirror of
https://github.com/yuliskov/LeanKeyboard.git
synced 2026-05-03 05:12:36 -04:00
Compare commits
22 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
2dc84de557 | ||
|
|
643301a02a | ||
|
|
ef8339e351 | ||
|
|
aa5656998c | ||
|
|
53e7a4958f | ||
|
|
f2e1a39931 | ||
|
|
375a96c8aa | ||
|
|
c061884771 | ||
|
|
7ad28440ba | ||
|
|
a90f40dc95 | ||
|
|
7cf2e00f6e | ||
|
|
aeb54d90bc | ||
|
|
67a682269e | ||
|
|
301833ff90 | ||
|
|
a57eeff2ae | ||
|
|
63b5f290e3 | ||
|
|
acc035d8ba | ||
|
|
0757a82e2b | ||
|
|
d05415fb65 | ||
|
|
b3afc8e7f2 | ||
|
|
5d94ae66ac | ||
|
|
0ed1761b8e |
35
README.md
35
README.md
@@ -3,25 +3,28 @@
|
||||
|
||||
[](https://www.mozilla.org/MPL/2.0/)
|
||||
|
||||
__LeanKeyKeyboard: An Keyboard for Android-based set-top boxes and TVs:__
|
||||
__LeanKeyKeyboard: 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.__
|
||||
|
||||
### Screenshots:
|
||||
* __[Open screenshots](#screens)__
|
||||
|
||||
### 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>)
|
||||
@@ -35,18 +38,20 @@ __Standard installation via ADB__
|
||||
### Changelog:
|
||||
* [Check releases page for changelog ..](https://github.com/yuliskov/LeanKeyKeyboard/releases)
|
||||
|
||||
### Screenshots:
|
||||
### Contributors:
|
||||
* __[aglt](https://github.com/aglt)__ (Icelandic lang)
|
||||
* __[rabin111](https://github.com/rabin111)__ (Thai lang)
|
||||
|
||||

|
||||

|
||||

|
||||
### Developer:
|
||||
* __[yuliskov](https://github.com/yuliskov)__ (design & coding)
|
||||
|
||||
### 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.
|
||||
|
||||
### Donation:
|
||||
If you want to support my developments you are welcome to buy me a cup of coffee :)
|
||||
* BTC: 1JAT5VVWarVBkpVbNDn8UA8HXNdrukuBSx
|
||||
* WMZ: Z375157140784
|
||||
* WMU: U449339012933
|
||||
|
||||
### Screens:
|
||||

|
||||

|
||||

|
||||
|
||||
@@ -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 61
|
||||
versionName "4.3.11"
|
||||
|
||||
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
|
||||
|
||||
|
||||
@@ -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() {
|
||||
|
||||
@@ -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")
|
||||
|
||||
@@ -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));
|
||||
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 2.2 KiB |
@@ -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>
|
||||
|
||||
19
leankeykeyboard/src/main/res/values/languages.xml
Normal file
19
leankeykeyboard/src/main/res/values/languages.xml
Normal 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>
|
||||
@@ -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>
|
||||
@@ -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>
|
||||
@@ -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>
|
||||
@@ -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>
|
||||
@@ -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>
|
||||
8
leankeykeyboard/src/main/res/xml/accent_is_e.xml
Normal file
8
leankeykeyboard/src/main/res/xml/accent_is_e.xml
Normal 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>
|
||||
@@ -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>
|
||||
@@ -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>
|
||||
@@ -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>
|
||||
8
leankeykeyboard/src/main/res/xml/accent_is_y.xml
Normal file
8
leankeykeyboard/src/main/res/xml/accent_is_y.xml
Normal 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>
|
||||
@@ -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>
|
||||
@@ -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>
|
||||
@@ -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>
|
||||
@@ -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>
|
||||
@@ -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>
|
||||
@@ -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>
|
||||
@@ -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>
|
||||
@@ -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>
|
||||
@@ -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>
|
||||
@@ -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>
|
||||
@@ -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>
|
||||
@@ -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>
|
||||
@@ -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>
|
||||
@@ -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>
|
||||
69
leankeykeyboard/src/main/res/xml/qwerty_is.xml
Normal file
69
leankeykeyboard/src/main/res/xml/qwerty_is.xml
Normal 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>
|
||||
@@ -28,7 +28,7 @@
|
||||
<Key android:keyEdgeFlags="right" android:keyLabel="х" />
|
||||
</Row>
|
||||
<Row>
|
||||
<Key android:popupKeyboard="@xml/accent_a" android:keyEdgeFlags="left" android:keyLabel="ф" />
|
||||
<Key android:keyEdgeFlags="left" android:keyLabel="ф" />
|
||||
<Key android:keyLabel="ы" />
|
||||
<Key android:keyLabel="в" />
|
||||
<Key android:keyLabel="а" />
|
||||
@@ -48,9 +48,9 @@
|
||||
<Key android:keyLabel="и" />
|
||||
<Key android:keyLabel="т" />
|
||||
<Key android:keyLabel="ь" />
|
||||
<Key android:keyLabel="ъ" />
|
||||
<Key android:keyLabel="б" />
|
||||
<Key android:keyLabel="ю" />
|
||||
<Key android:codes="45" android:keyLabel="-" />
|
||||
<Key android:codes="63" android:keyEdgeFlags="right" android:keyLabel="\?" />
|
||||
</Row>
|
||||
<Row android:rowEdgeFlags="bottom">
|
||||
|
||||
@@ -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" />
|
||||
|
||||
Reference in New Issue
Block a user