From 44d486be631f271b02f5629e3d2aecb4ae435ccf Mon Sep 17 00:00:00 2001 From: Yuriy Liskov Date: Sat, 27 Jun 2020 03:26:57 +0300 Subject: [PATCH] rtl info --- .../leankeyboard/addons/keyboards/KeyboardBuilder.java | 1 + .../leankeyboard/addons/keyboards/KeyboardManager.java | 2 ++ .../keyboards/ApkKeyboardAddOnAndBuilder.java | 5 +++++ .../keyboards/intkeyboards/ResKeyboardFactory.java | 9 ++++++++- .../liskovsoft/leankeyboard/ime/LeanbackImeService.java | 1 + .../leankeyboard/ime/LeanbackKeyboardContainer.java | 7 ++++--- .../leankeyboard/ime/LeanbackKeyboardController.java | 5 +++++ 7 files changed, 26 insertions(+), 4 deletions(-) diff --git a/leankeykeyboard/src/main/java/com/liskovsoft/leankeyboard/addons/keyboards/KeyboardBuilder.java b/leankeykeyboard/src/main/java/com/liskovsoft/leankeyboard/addons/keyboards/KeyboardBuilder.java index 85e2bc3..70c0271 100644 --- a/leankeykeyboard/src/main/java/com/liskovsoft/leankeyboard/addons/keyboards/KeyboardBuilder.java +++ b/leankeykeyboard/src/main/java/com/liskovsoft/leankeyboard/addons/keyboards/KeyboardBuilder.java @@ -7,4 +7,5 @@ public interface KeyboardBuilder { Keyboard createAbcKeyboard(); Keyboard createSymKeyboard(); Keyboard createNumKeyboard(); + boolean isRtl(); } diff --git a/leankeykeyboard/src/main/java/com/liskovsoft/leankeyboard/addons/keyboards/KeyboardManager.java b/leankeykeyboard/src/main/java/com/liskovsoft/leankeyboard/addons/keyboards/KeyboardManager.java index c0947e9..5c3f491 100644 --- a/leankeykeyboard/src/main/java/com/liskovsoft/leankeyboard/addons/keyboards/KeyboardManager.java +++ b/leankeykeyboard/src/main/java/com/liskovsoft/leankeyboard/addons/keyboards/KeyboardManager.java @@ -19,6 +19,7 @@ public class KeyboardManager { public Keyboard abcKeyboard; public Keyboard symKeyboard; public Keyboard numKeyboard; + public boolean isRtl; } public KeyboardManager(Context ctx) { @@ -41,6 +42,7 @@ public class KeyboardManager { data.abcKeyboard = builder.createAbcKeyboard(); data.symKeyboard = builder.createSymKeyboard(); data.numKeyboard = builder.createNumKeyboard(); + data.isRtl = builder.isRtl(); keyboards.add(data); } diff --git a/leankeykeyboard/src/main/java/com/liskovsoft/leankeyboard/addons/keyboards/extkeyboards/keyboards/ApkKeyboardAddOnAndBuilder.java b/leankeykeyboard/src/main/java/com/liskovsoft/leankeyboard/addons/keyboards/extkeyboards/keyboards/ApkKeyboardAddOnAndBuilder.java index 0e92b13..fbc7ae8 100644 --- a/leankeykeyboard/src/main/java/com/liskovsoft/leankeyboard/addons/keyboards/extkeyboards/keyboards/ApkKeyboardAddOnAndBuilder.java +++ b/leankeykeyboard/src/main/java/com/liskovsoft/leankeyboard/addons/keyboards/extkeyboards/keyboards/ApkKeyboardAddOnAndBuilder.java @@ -92,4 +92,9 @@ public class ApkKeyboardAddOnAndBuilder extends AddOnImpl implements KeyboardBui public Keyboard createNumKeyboard() { return new Keyboard(getPackageContext(), R.xml.number); } + + @Override + public boolean isRtl() { + return false; + } } diff --git a/leankeykeyboard/src/main/java/com/liskovsoft/leankeyboard/addons/keyboards/intkeyboards/ResKeyboardFactory.java b/leankeykeyboard/src/main/java/com/liskovsoft/leankeyboard/addons/keyboards/intkeyboards/ResKeyboardFactory.java index a31efbf..603a897 100644 --- a/leankeykeyboard/src/main/java/com/liskovsoft/leankeyboard/addons/keyboards/intkeyboards/ResKeyboardFactory.java +++ b/leankeykeyboard/src/main/java/com/liskovsoft/leankeyboard/addons/keyboards/intkeyboards/ResKeyboardFactory.java @@ -73,10 +73,12 @@ public class ResKeyboardFactory implements KeyboardFactory { */ private KeyboardBuilder createKeyboard(final KeyboardInfo info) { return new KeyboardBuilder() { + private final String langCode = info.getLangCode(); + @Override public Keyboard createAbcKeyboard() { String prefix = info.isAzerty() ? "azerty_" : "qwerty_"; - int kbResId = mContext.getResources().getIdentifier(prefix + info.getLangCode(), "xml", mContext.getPackageName()); + int kbResId = mContext.getResources().getIdentifier(prefix + langCode, "xml", mContext.getPackageName()); Keyboard keyboard = new Keyboard(mContext, kbResId); Log.d(TAG, "Creating keyboard... " + info.getLangName()); return localizeKeys(keyboard, info); @@ -92,6 +94,11 @@ public class ResKeyboardFactory implements KeyboardFactory { public Keyboard createNumKeyboard() { return new Keyboard(mContext, R.xml.number); } + + @Override + public boolean isRtl() { + return langCode.contains("he") || langCode.contains("ar"); + } }; } diff --git a/leankeykeyboard/src/main/java/com/liskovsoft/leankeyboard/ime/LeanbackImeService.java b/leankeykeyboard/src/main/java/com/liskovsoft/leankeyboard/ime/LeanbackImeService.java index 25f5124..386254b 100644 --- a/leankeykeyboard/src/main/java/com/liskovsoft/leankeyboard/ime/LeanbackImeService.java +++ b/leankeykeyboard/src/main/java/com/liskovsoft/leankeyboard/ime/LeanbackImeService.java @@ -16,6 +16,7 @@ import android.view.View; import android.view.inputmethod.CompletionInfo; import android.view.inputmethod.EditorInfo; import android.view.inputmethod.InputConnection; +import com.liskovsoft.leankeyboard.addons.keyboards.KeyboardManager.KeyboardData; import com.liskovsoft.leankeyboard.ime.LeanbackKeyboardController.InputListener; import com.liskovsoft.leankeyboard.utils.LeanKeyPreferences; diff --git a/leankeykeyboard/src/main/java/com/liskovsoft/leankeyboard/ime/LeanbackKeyboardContainer.java b/leankeykeyboard/src/main/java/com/liskovsoft/leankeyboard/ime/LeanbackKeyboardContainer.java index f87b705..8c255b1 100644 --- a/leankeykeyboard/src/main/java/com/liskovsoft/leankeyboard/ime/LeanbackKeyboardContainer.java +++ b/leankeykeyboard/src/main/java/com/liskovsoft/leankeyboard/ime/LeanbackKeyboardContainer.java @@ -299,9 +299,6 @@ public class LeanbackKeyboardContainer { } public void initKeyboards() { - //mAbcKeyboard = new Keyboard(mContext, R.xml.qwerty_en_us); - //mSymKeyboard = new Keyboard(mContext, R.xml.sym_en_us); - //mNumKeyboard = new Keyboard(mContext, R.xml.number); updateAddonKeyboard(); } @@ -1536,4 +1533,8 @@ public class LeanbackKeyboardContainer { } } } + + public boolean isRtl() { + return mKeyboardManager.get().isRtl; + } } diff --git a/leankeykeyboard/src/main/java/com/liskovsoft/leankeyboard/ime/LeanbackKeyboardController.java b/leankeykeyboard/src/main/java/com/liskovsoft/leankeyboard/ime/LeanbackKeyboardController.java index 27813d9..38aac92 100644 --- a/leankeykeyboard/src/main/java/com/liskovsoft/leankeyboard/ime/LeanbackKeyboardController.java +++ b/leankeykeyboard/src/main/java/com/liskovsoft/leankeyboard/ime/LeanbackKeyboardController.java @@ -16,6 +16,7 @@ import android.view.inputmethod.EditorInfo; import android.widget.Button; import android.widget.RelativeLayout; import androidx.annotation.NonNull; +import com.liskovsoft.leankeyboard.addons.keyboards.KeyboardManager.KeyboardData; import com.liskovsoft.leankeyboard.ime.LeanbackKeyboardContainer.KeyFocus; import com.liskovsoft.leankeyboard.ime.pano.util.TouchNavSpaceTracker; import com.liskovsoft.leankeykeyboard.R; @@ -951,4 +952,8 @@ public class LeanbackKeyboardController implements LeanbackKeyboardContainer.Voi return handleKeyUpEvent(keyCode, event.getEventTime()); } } + + public boolean isRtl() { + return mContainer.isRtl(); + } }