summaryrefslogtreecommitdiffstats
path: root/src/android/jar/src/org/qtproject/qt5/android/QtInputConnection.java
diff options
context:
space:
mode:
authorBogDan Vatra <bogdan@kde.org>2014-03-22 08:08:08 +0200
committerThe Qt Project <gerrit-noreply@qt-project.org>2014-03-26 07:22:35 +0100
commitf1f07eae2d40f202a709af33ca1e8d86551c9ace (patch)
tree6ace627ce63597e3c1da381b4b6ff2ba0eb579f1 /src/android/jar/src/org/qtproject/qt5/android/QtInputConnection.java
parenta0dc3e608fe67ae1ec3f0ee92e1dc15ebaa0fe9e (diff)
Android: Fix software keyboard show/hide state
Task-number: QTBUG-34831 Change-Id: Ic38334d011ceef2dc75e4fb3fcea48f62aeea757 Reviewed-by: Paul Olav Tvete <paul.tvete@digia.com>
Diffstat (limited to 'src/android/jar/src/org/qtproject/qt5/android/QtInputConnection.java')
-rw-r--r--src/android/jar/src/org/qtproject/qt5/android/QtInputConnection.java39
1 files changed, 6 insertions, 33 deletions
diff --git a/src/android/jar/src/org/qtproject/qt5/android/QtInputConnection.java b/src/android/jar/src/org/qtproject/qt5/android/QtInputConnection.java
index 5e6e227c2b..655ab95dd8 100644
--- a/src/android/jar/src/org/qtproject/qt5/android/QtInputConnection.java
+++ b/src/android/jar/src/org/qtproject/qt5/android/QtInputConnection.java
@@ -82,18 +82,11 @@ class QtNativeInputConnection
}
class HideKeyboardRunnable implements Runnable {
- private QtInputConnection m_connection;
- HideKeyboardRunnable(QtInputConnection connection)
- {
- m_connection = connection;
- }
+ private long m_hideTimeStamp = System.nanoTime();
@Override
public void run() {
- if (m_connection.getInputState() == QtInputConnection.InputStates.Hiding) {
- QtNative.activityDelegate().setKeyboardVisibility(false);
- m_connection.reset();
- }
+ QtNative.activityDelegate().setKeyboardVisibility(false, m_hideTimeStamp);
}
}
@@ -107,34 +100,14 @@ public class QtInputConnection extends BaseInputConnection
private static final int ID_SWITCH_INPUT_METHOD = android.R.id.switchInputMethod;
private static final int ID_ADD_TO_DICTIONARY = android.R.id.addToDictionary;
-
- enum InputStates { Visible, FinishComposing, Hiding };
-
private QtEditText m_view = null;
- private InputStates m_inputState = InputStates.Visible;
-
- public void reset()
- {
- m_inputState = InputStates.Visible;
- }
-
- public InputStates getInputState()
- {
- return m_inputState;
- }
private void setClosing(boolean closing)
{
- if (closing && m_inputState == InputStates.Hiding)
- return;
-
- if (closing && m_view.getActivityDelegate().isSoftwareKeyboardVisible()) {
- m_view.postDelayed(new HideKeyboardRunnable(this), 100);
- m_inputState = InputStates.Hiding;
+ if (closing) {
+ m_view.postDelayed(new HideKeyboardRunnable(), 100);
} else {
- if (m_inputState == InputStates.Hiding)
- QtNative.activityDelegate().setKeyboardVisibility(true);
- m_inputState = closing ? InputStates.FinishComposing : InputStates.Visible;
+ QtNative.activityDelegate().setKeyboardVisibility(true, System.nanoTime());
}
}
@@ -154,7 +127,7 @@ public class QtInputConnection extends BaseInputConnection
@Override
public boolean endBatchEdit()
{
-// setClosing(false);
+ setClosing(false);
return true;
}