Enter symbol only after ACTION_UP; set pressed state after touch

This commit is contained in:
alex 2018-02-21 14:29:41 +02:00
parent f1fa303c44
commit d97b723422

View file

@ -953,20 +953,25 @@ public class CoordinateInputDialogFragment extends DialogFragment implements Osm
|| position == MINUS_BUTTON_POSITION || position == MINUS_BUTTON_POSITION
|| position == BACKSPACE_BUTTON_POSITION || position == BACKSPACE_BUTTON_POSITION
|| position == SWITCH_TO_NEXT_INPUT_BUTTON_POSITION; || position == SWITCH_TO_NEXT_INPUT_BUTTON_POSITION;
setNormalBackground(convertView, controlButton); setupNormalState(convertView, controlButton);
convertView.setOnTouchListener(new View.OnTouchListener() { convertView.setOnTouchListener(new View.OnTouchListener() {
@Override @Override
public boolean onTouch(View v, MotionEvent event) { public boolean onTouch(View v, MotionEvent event) {
int action = event.getAction(); switch (event.getAction()) {
if (action == MotionEvent.ACTION_DOWN) { case MotionEvent.ACTION_DOWN:
v.setBackgroundColor(getResolvedColor(R.color.keyboard_item_bg_pressed)); v.setBackgroundColor(getResolvedColor(R.color.keyboard_item_bg_pressed));
v.invalidate(); v.setPressed(true);
return true; v.invalidate();
} else if (action == MotionEvent.ACTION_UP || action == MotionEvent.ACTION_CANCEL) { return true;
setNormalBackground(v, controlButton); case MotionEvent.ACTION_UP:
if (listener != null) { setupNormalState(v, controlButton);
listener.onClick(v); if (listener != null) {
} listener.onClick(v);
}
return false;
case MotionEvent.ACTION_CANCEL:
setupNormalState(v, controlButton);
return false;
} }
return false; return false;
} }
@ -1016,12 +1021,14 @@ public class CoordinateInputDialogFragment extends DialogFragment implements Osm
return convertView; return convertView;
} }
private void setNormalBackground(View view, boolean controlButton) { private void setupNormalState(View view, boolean controlButton) {
view.setBackgroundColor( view.setBackgroundColor(
controlButton controlButton
? getResolvedColor(lightTheme ? R.color.keyboard_item_control_light_bg : R.color.keyboard_item_control_dark_bg) ? getResolvedColor(lightTheme ? R.color.keyboard_item_control_light_bg : R.color.keyboard_item_control_dark_bg)
: getResolvedColor(lightTheme ? R.color.keyboard_item_light_bg : R.color.keyboard_item_dark_bg) : getResolvedColor(lightTheme ? R.color.keyboard_item_light_bg : R.color.keyboard_item_dark_bg)
); );
view.setPressed(false);
view.invalidate();
} }
} }