From da72455d358bffa481caf75ead21846506644128 Mon Sep 17 00:00:00 2001 From: jaguillo Date: Wed, 28 Oct 2015 20:56:28 +0100 Subject: Improve preview popup --- srcs/juloo.keyboard2/Keyboard2View.java | 23 ++++++++++++++++++----- 1 file changed, 18 insertions(+), 5 deletions(-) (limited to 'srcs/juloo.keyboard2/Keyboard2View.java') diff --git a/srcs/juloo.keyboard2/Keyboard2View.java b/srcs/juloo.keyboard2/Keyboard2View.java index 6cc8642..1158c80 100644 --- a/srcs/juloo.keyboard2/Keyboard2View.java +++ b/srcs/juloo.keyboard2/Keyboard2View.java @@ -43,7 +43,11 @@ public class Keyboard2View extends View ** TODO: move config values in a Config object ** TODO: settings: preview_enabled ** TODO: settings: preview_text_size + ** TODO: settings: preview_timeout + ** TODO: disable preview in password fields */ + private long _previewDismissTimeout = 150; // especialy this one + private float _marginTop; private float _keyWidth; private float _keyPadding; @@ -77,7 +81,7 @@ public class Keyboard2View extends View super(context, attrs); _vibratorService = (Vibrator)context.getSystemService(Context.VIBRATOR_SERVICE); _handler = new Handler(this); - _previewPopup = new KeyPreviewPopup(this); + _previewPopup = new KeyPreviewPopup(this, _previewDismissTimeout); _horizontalMargin = getResources().getDimension(R.dimen.horizontal_margin); _marginTop = getResources().getDimension(R.dimen.margin_top); _marginBottom = getResources().getDimension(R.dimen.margin_bottom); @@ -311,13 +315,22 @@ public class Keyboard2View extends View { if (key.value != null && (key.flags & (KeyValue.FLAG_LOCKED | KeyValue.FLAG_NOCHAR)) == 0) ((Keyboard2)getContext()).handleKeyUp(key.value, _flags); - _previewPopup.setPreview(null); // TODO: preview next down key + // previewNextKeyDown + for (KeyDown k : _downKeys) + if ((k.value.getFlags() & (KeyValue.FLAG_KEY_FONT | KeyValue.FLAG_NOREPEAT | KeyValue.FLAG_NOCHAR)) == 0) + { + _previewPopup.setPreview(k.value, _flags); + return ; + } + _previewPopup.setPreview(null, 0); } private void handleKeyDown(KeyValue key) { - if (key != null) - _previewPopup.setPreview(key.getSymbol(_flags)); + if (key == null) + return ; + if ((key.getFlags() & (KeyValue.FLAG_KEY_FONT | KeyValue.FLAG_NOREPEAT | KeyValue.FLAG_NOCHAR)) == 0) + _previewPopup.setPreview(key, _flags); vibrate(); } @@ -422,7 +435,7 @@ public class Keyboard2View extends View public void onDetachedFromWindow() { super.onDetachedFromWindow(); - _previewPopup.setPreview(null); + _previewPopup.forceDismiss(); } private void drawLabel(Canvas canvas, KeyValue k, float x, float y, boolean locked) -- cgit v1.2.3