diff --git a/LimeStudio/app/build.gradle b/LimeStudio/app/build.gradle index f95b748..7d7e4f1 100644 --- a/LimeStudio/app/build.gradle +++ b/LimeStudio/app/build.gradle @@ -34,8 +34,8 @@ android { minSdkVersion 23 targetSdkVersion 30 - versionCode 642 - versionName '6.4.2' + versionCode 650 + versionName '6.5.0' } buildTypes { release { diff --git a/LimeStudio/app/src/main/java/net/toload/main/hd/LIMEService.java b/LimeStudio/app/src/main/java/net/toload/main/hd/LIMEService.java index e3b1b52..73fd00c 100644 --- a/LimeStudio/app/src/main/java/net/toload/main/hd/LIMEService.java +++ b/LimeStudio/app/src/main/java/net/toload/main/hd/LIMEService.java @@ -1527,23 +1527,23 @@ private void commitTyped(InputConnection ic) { * Candidate Hint Handlings -- Start */ private static final int HINT_COUNT = 5; - private static final int HIDE_HINT_INTERVAL = 1000 * 3; + private static final int HIDE_HINT_INTERVAL = 1000 * 5; private Timer timer = null; + private String hint = ""; private void candidateHintAddWord(String word) { candidateHintView.setVisibility(View.VISIBLE); - if (mCandidateView != null) { - candidateHintView.setTextColor(mCandidateView.mColorNormalText); - } - String newHint = (candidateHintView.getText() + word); + String newHint = hint + word; if (newHint.length() > HINT_COUNT) { candidateHintView.setText(newHint.substring(newHint.length()-HINT_COUNT)); } else { candidateHintView.setText(newHint); } + hint = candidateHintView.getText().toString(); if (timer != null) { timer.cancel(); + timer = null; } timer = new Timer(); timer.schedule(new TimerTask() { @@ -1556,12 +1556,30 @@ public void run() { }, HIDE_HINT_INTERVAL); } - private void clearCandidateHint(){ - candidateHintView.post(new Runnable() { - @Override - public void run() { - candidateHintView.setText(""); + private void candidateHintAddComposing(String composingText) { + candidateHintView.post(() -> { + candidateHintView.setVisibility(View.VISIBLE); + candidateHintView.setText(hint + composingText); + if (timer != null) { + timer.cancel(); + timer = null; } + timer = new Timer(); + timer.schedule(new TimerTask() { + @Override + public void run() { + clearCandidateHint(); + timer = null; + } + + }, HIDE_HINT_INTERVAL); + }); + } + + private void clearCandidateHint(){ + candidateHintView.post(() -> { + candidateHintView.setText(""); + hint = ""; }); } @@ -2342,6 +2360,9 @@ public void run() { // Show composing window if keyToKeyname got different string. Revised by Jeremy '11,6,4 if (SearchSrv.getTablename() != null) { String keynameString = SearchSrv.keyToKeyname(finalKeyString); //.toLowerCase(Locale.US)); moved to LimeDB + if (mLIMEPref.shouldShowTypedWord()) { + candidateHintAddComposing(keynameString); + } if (mCandidateView != null && !keynameString.toUpperCase(Locale.US).equals(finalKeyString.toUpperCase(Locale.US)) && !keynameString.trim().equals("") @@ -2957,6 +2978,9 @@ private void initialViewAndSwitcher(boolean forceRecreate) { mCandidateViewInInputView.setService(this); candidateHintView = mCandidateInInputView.findViewById(R.id.candidate_hint); + if (mCandidateView != null) { + candidateHintView.setTextColor(mCandidateView.mColorNormalText); + } } if (mCandidateView != mCandidateViewInInputView) mCandidateView = mCandidateViewInInputView; diff --git a/LimeStudio/app/src/main/java/net/toload/main/hd/keyboard/LIMEBaseKeyboard.java b/LimeStudio/app/src/main/java/net/toload/main/hd/keyboard/LIMEBaseKeyboard.java index d28eb42..c0454cc 100644 --- a/LimeStudio/app/src/main/java/net/toload/main/hd/keyboard/LIMEBaseKeyboard.java +++ b/LimeStudio/app/src/main/java/net/toload/main/hd/keyboard/LIMEBaseKeyboard.java @@ -224,12 +224,12 @@ public class LIMEBaseKeyboard { /** * Reserved space in the middle in unit of columns for separated keyboard in landscape mode. */ - protected static int mReservedColumnsForSplitedKeyboard = 3; + protected static int mReservedColumnsForSplitedKeyboard = 2; /** * Key width reduction scale for separated keyboard in landscape mode. */ - protected static float mSplitedKeyWidthScale = 0.8f; + protected static float mSplitedKeyWidthScale = 1.2f; /** * Key width for separated keyboard in landscape mode. diff --git a/LimeStudio/app/src/main/res/values-land/config.xml b/LimeStudio/app/src/main/res/values-land/config.xml index a8aec84..0fb4561 100644 --- a/LimeStudio/app/src/main/res/values-land/config.xml +++ b/LimeStudio/app/src/main/res/values-land/config.xml @@ -24,5 +24,5 @@ --> - 3 + 2 diff --git a/LimeStudio/app/src/main/res/values-zh-rCN/strings_settings.xml b/LimeStudio/app/src/main/res/values-zh-rCN/strings_settings.xml index 45bf91e..9c4c4e8 100644 --- a/LimeStudio/app/src/main/res/values-zh-rCN/strings_settings.xml +++ b/LimeStudio/app/src/main/res/values-zh-rCN/strings_settings.xml @@ -784,11 +784,11 @@ 2 + 5 + 10 + 15 20 - 30 40 - 50 - 60 \ No newline at end of file diff --git a/LimeStudio/app/src/main/res/values/strings_settings.xml b/LimeStudio/app/src/main/res/values/strings_settings.xml index dfeab9f..f7d3804 100644 --- a/LimeStudio/app/src/main/res/values/strings_settings.xml +++ b/LimeStudio/app/src/main/res/values/strings_settings.xml @@ -788,11 +788,11 @@ 2 - 20 - 30 - 40 - 50 - 60 + 1 + 3 + 5 + 10 + 15 \ No newline at end of file