Skip to content
Snippets Groups Projects
Commit 2087cf50 authored by Tadashi G. Takaoka's avatar Tadashi G. Takaoka Committed by Android (Google) Code Review
Browse files

Merge "Handle back key and outside touch correctly in more suggestions window"

parents b45e095a bfc1d732
No related branches found
No related tags found
No related merge requests found
......@@ -163,8 +163,6 @@ public class MoreSuggestionsView extends KeyboardView implements MoreKeysPanel {
- (container.getMeasuredHeight() - container.getPaddingBottom())
+ parentView.getPaddingTop() + mCoordinates[1];
window.setInputMethodMode(PopupWindow.INPUT_METHOD_NOT_NEEDED);
window.setOutsideTouchable(true);
window.setContentView(container);
window.setWidth(container.getMeasuredWidth());
window.setHeight(container.getMeasuredHeight());
......@@ -220,22 +218,6 @@ public class MoreSuggestionsView extends KeyboardView implements MoreKeysPanel {
}
};
@Override
public boolean dispatchTouchEvent(MotionEvent me) {
final int index = me.getActionIndex();
final int id = me.getPointerId(index);
final PointerTracker tracker = PointerTracker.getPointerTracker(id, this);
final int x = (int)me.getX(index);
final int y = (int)me.getY(index);
final boolean inside = (x >= 0 && x < getWidth() && y >= 0 && y < getHeight());
if (inside || tracker.isInSlidingKeyInput()) {
return super.dispatchTouchEvent(me);
} else {
dismissMoreKeysPanel();
return true;
}
}
@Override
public boolean onTouchEvent(MotionEvent me) {
final int action = me.getAction();
......
......@@ -27,6 +27,7 @@ import android.graphics.Paint.Align;
import android.graphics.Rect;
import android.graphics.Typeface;
import android.graphics.drawable.BitmapDrawable;
import android.graphics.drawable.ColorDrawable;
import android.graphics.drawable.Drawable;
import android.os.Message;
import android.os.SystemClock;
......@@ -506,10 +507,22 @@ public class SuggestionsView extends RelativeLayout implements OnClickListener,
mMoreSuggestionsView = (MoreSuggestionsView)mMoreSuggestionsContainer
.findViewById(R.id.more_suggestions_view);
mMoreSuggestionsBuilder = new MoreSuggestions.Builder(mMoreSuggestionsView);
mMoreSuggestionsWindow = new PopupWindow(context);
mMoreSuggestionsWindow.setWindowLayoutMode(
final PopupWindow moreWindow = new PopupWindow(context);
moreWindow.setWindowLayoutMode(
ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT);
mMoreSuggestionsWindow.setBackgroundDrawable(null);
moreWindow.setBackgroundDrawable(new ColorDrawable(android.R.color.transparent));
moreWindow.setInputMethodMode(PopupWindow.INPUT_METHOD_NOT_NEEDED);
moreWindow.setFocusable(true);
moreWindow.setOutsideTouchable(true);
moreWindow.setOnDismissListener(new PopupWindow.OnDismissListener() {
@Override
public void onDismiss() {
mKeyboardView.dimEntireKeyboard(false);
}
});
mMoreSuggestionsWindow = moreWindow;
final Resources res = context.getResources();
mMoreSuggestionsModalTolerance = res.getDimensionPixelOffset(
R.dimen.more_suggestions_modal_tolerance);
......@@ -517,21 +530,6 @@ public class SuggestionsView extends RelativeLayout implements OnClickListener,
context, mMoreSuggestionsSlidingListener);
}
private final View.OnTouchListener mMoreSuggestionsCanceller = new View.OnTouchListener() {
@Override
public boolean onTouch(View view, MotionEvent me) {
if (!mMoreSuggestionsWindow.isShowing()) return false;
switch (me.getAction()) {
case MotionEvent.ACTION_UP:
case MotionEvent.ACTION_POINTER_UP:
return mMoreSuggestionsView.dismissMoreKeysPanel();
default:
return true;
}
}
};
/**
* A connection back to the input method.
* @param listener
......@@ -726,8 +724,6 @@ public class SuggestionsView extends RelativeLayout implements OnClickListener,
private boolean dismissMoreSuggestions() {
if (mMoreSuggestionsWindow.isShowing()) {
mMoreSuggestionsWindow.dismiss();
mKeyboardView.dimEntireKeyboard(false);
mKeyboardView.setOnTouchListener(null);
return true;
}
return false;
......@@ -767,7 +763,6 @@ public class SuggestionsView extends RelativeLayout implements OnClickListener,
mOriginX = mLastX;
mOriginY = mLastY;
mKeyboardView.dimEntireKeyboard(true);
mKeyboardView.setOnTouchListener(mMoreSuggestionsCanceller);
for (int i = 0; i < params.mSuggestionsCountInStrip; i++) {
mWords.get(i).setPressed(false);
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment