summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJorge Ruesga <jorge@ruesga.com>2015-08-14 23:47:10 +0200
committerLorDClockaN <davor@losinj.com>2015-08-15 22:37:44 +0200
commit9c4caac759c00c76207dbcdaf960e877255a1f51 (patch)
tree492228c7049c6c5e9637ccdcb5d892afa541cc21
parentbbd654f9b68ff57590a1e9fcfbc99af256aebec0 (diff)
Mms: fix keyboard hiding
Hide the keyboard only if we are in a recent touch state. This avoid to perform scrolling detection in cases where the user even doesn't touch the listview Change-Id: Ia201482928fd690fcccdd9113bbd909f140de99a JIRA: NIGHTLIES-1673 Signed-off-by: Jorge Ruesga <jorge@ruesga.com>
-rw-r--r--src/com/android/mms/ui/ComposeMessageActivity.java15
1 files changed, 14 insertions, 1 deletions
diff --git a/src/com/android/mms/ui/ComposeMessageActivity.java b/src/com/android/mms/ui/ComposeMessageActivity.java
index dd517ea8..501f0b7f 100644
--- a/src/com/android/mms/ui/ComposeMessageActivity.java
+++ b/src/com/android/mms/ui/ComposeMessageActivity.java
@@ -122,9 +122,11 @@ import android.view.KeyEvent;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
+import android.view.MotionEvent;
import android.view.View;
import android.view.View.OnCreateContextMenuListener;
import android.view.View.OnKeyListener;
+import android.view.View.OnTouchListener;
import android.view.ViewStub;
import android.view.WindowManager;
import android.view.inputmethod.InputMethodManager;
@@ -375,6 +377,8 @@ public class ComposeMessageActivity extends Activity
private MessageListView mMsgListView; // ListView for messages in this conversation
public MessageListAdapter mMsgListAdapter; // and its corresponding ListAdapter
+ private long mLastMessageListTouched;
+ private static final long MINIMUM_TOUCH_DELTA_TIME_TO_HIDE_KB = 200L;
private RecipientsEditor mRecipientsEditor; // UI control for editing recipients
private View mRecipientsSelector; // UI control for recipients selector
@@ -4457,12 +4461,21 @@ public class ComposeMessageActivity extends Activity
}
}
});
+ mMsgListView.setOnTouchListener(new OnTouchListener() {
+ @Override
+ public boolean onTouch(View v, MotionEvent event) {
+ mLastMessageListTouched = System.currentTimeMillis();
+ return false;
+ }
+ });
mMsgListView.setOnScrollListener(new AbsListView.OnScrollListener() {
private boolean scrolling = false;
@Override
public void onScroll(AbsListView view, int firstVisibleItem,
int visibleItemCount, int totalItemCount) {
- if (mIsKeyboardOpen && scrolling) {
+ boolean inTouchState = (System.currentTimeMillis() - mLastMessageListTouched)
+ < MINIMUM_TOUCH_DELTA_TIME_TO_HIDE_KB;
+ if (mIsKeyboardOpen && scrolling && inTouchState) {
final int first = mMsgListView.getFirstVisiblePosition();
final int last = mMsgListView.getLastVisiblePosition();
final int count = mMsgListAdapter.getCount();