diff --git a/app/src/main/java/io/github/sspanak/tt9/ui/main/keys/SoftKeyAddWord.java b/app/src/main/java/io/github/sspanak/tt9/ui/main/keys/SoftKeyAddWord.java index cbf1b58c..c11921ad 100644 --- a/app/src/main/java/io/github/sspanak/tt9/ui/main/keys/SoftKeyAddWord.java +++ b/app/src/main/java/io/github/sspanak/tt9/ui/main/keys/SoftKeyAddWord.java @@ -10,25 +10,34 @@ public class SoftKeyAddWord extends BaseSoftKeyWithIcons { public SoftKeyAddWord(Context context, AttributeSet attrs) { super(context, attrs); } public SoftKeyAddWord(Context context, AttributeSet attrs, int defStyleAttr) { super(context, attrs, defStyleAttr); } - @Override - protected int getCentralIcon() { - return R.drawable.ic_fn_add_word; - } + @Override protected String getTitle() { return hasLettersOnAllKeys() ? "␣" : ""; } + @Override protected int getCentralIcon() { return hasLettersOnAllKeys() ? 0 : R.drawable.ic_fn_add_word; } + @Override protected float getTitleScale() { return hasLettersOnAllKeys() ? 1.3f * Math.min(1, getTT9Height()) * getScreenScaleY() : super.getTitleScale(); } @Override protected boolean handleRelease() { - if (validateTT9Handler()) { + if (!validateTT9Handler()) { + return false; + } + + if (hasLettersOnAllKeys()) { + return tt9.onKeySpaceKorean(false); + } else { tt9.addWord(); return true; } - - return false; } @Override public void render() { if (tt9 != null) { - setEnabled(!tt9.isVoiceInputActive() && tt9.isAddingWordsSupported() && !tt9.isTextEditingActive()); + setEnabled( + ( + (tt9.isAddingWordsSupported() && !tt9.isTextEditingActive()) + || hasLettersOnAllKeys() + ) + && !tt9.isVoiceInputActive() + ); } super.render(); } diff --git a/app/src/main/java/io/github/sspanak/tt9/ui/main/keys/SoftKeyFilter.java b/app/src/main/java/io/github/sspanak/tt9/ui/main/keys/SoftKeyFilter.java index 4fd7e435..de2340c5 100644 --- a/app/src/main/java/io/github/sspanak/tt9/ui/main/keys/SoftKeyFilter.java +++ b/app/src/main/java/io/github/sspanak/tt9/ui/main/keys/SoftKeyFilter.java @@ -13,11 +13,6 @@ public class SoftKeyFilter extends BaseSoftKeyWithIcons { @Override protected void handleHold() { - if (hasLettersOnAllKeys()) { - handleRelease(); - return; - } - preventRepeat(); if (validateTT9Handler() && tt9.onKeyFilterClear(false)) { vibrate(Vibration.getHoldVibration()); @@ -25,38 +20,25 @@ public class SoftKeyFilter extends BaseSoftKeyWithIcons { } } - @Override protected boolean handleRelease() { - if (!validateTT9Handler()) { - return false; - } - - if (hasLettersOnAllKeys()) { - return tt9.onKeySpaceKorean(false); - } else { - return tt9.onKeyFilterSuggestions(false, getLastPressedKey() == getId()); - } + return + validateTT9Handler() + && tt9.onKeyFilterSuggestions(false, getLastPressedKey() == getId()); } - - @Override protected String getTitle() { return hasLettersOnAllKeys() ? "␣" : ""; } - @Override protected int getCentralIcon() { return hasLettersOnAllKeys() ? 0 : R.drawable.ic_fn_filter; } - @Override protected int getHoldIcon() { return hasLettersOnAllKeys() ? 0 : R.drawable.ic_fn_filter_off; } - - @Override protected float getTitleScale() { return hasLettersOnAllKeys() ? 1.3f * Math.min(1, getTT9Height()) * getScreenScaleY() : super.getTitleScale(); } + @Override protected int getCentralIcon() { return R.drawable.ic_fn_filter; } + @Override protected int getHoldIcon() { return R.drawable.ic_fn_filter_off; } @Override public void render() { if (tt9 != null) { setEnabled( - !tt9.isInputModeNumeric() + tt9.isFilteringSupported() + && !tt9.isInputModeABC() + && !tt9.isInputModeNumeric() && !tt9.isVoiceInputActive() - && (!tt9.isInputModeABC() || hasLettersOnAllKeys()) - && ( - hasLettersOnAllKeys() - || (tt9.isFilteringSupported() && !tt9.isTextEditingActive()) - ) + && !tt9.isTextEditingActive() ); }