|
|
|
|
@ -43,22 +43,18 @@ public class CustomKeyDownLive extends GestureDetector.SimpleOnGestureListener { |
|
|
|
|
return detector.onTouchEvent(e); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
public void onKeyDown(int keyCode) { |
|
|
|
|
if (text.length() >= 4) return; |
|
|
|
|
text.append(getNumber(keyCode)); |
|
|
|
|
listener.onShow(text.toString()); |
|
|
|
|
App.post(runnable, 1000); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
public boolean onKeyDown(KeyEvent event) { |
|
|
|
|
public void onKeyDown(KeyEvent event) { |
|
|
|
|
if (!listener.dispatch(true)) return; |
|
|
|
|
if (event.getAction() == KeyEvent.ACTION_DOWN && Utils.isLeftKey(event)) { |
|
|
|
|
listener.onSeeking(subTime()); |
|
|
|
|
} else if (event.getAction() == KeyEvent.ACTION_DOWN && Utils.isRightKey(event)) { |
|
|
|
|
listener.onSeeking(addTime()); |
|
|
|
|
} else if (event.getAction() == KeyEvent.ACTION_DOWN && Utils.isUpKey(event)) { |
|
|
|
|
if (Prefers.isInvert()) listener.onKeyDown(); else listener.onKeyUp(); |
|
|
|
|
if (Prefers.isInvert()) listener.onKeyDown(); |
|
|
|
|
else listener.onKeyUp(); |
|
|
|
|
} else if (event.getAction() == KeyEvent.ACTION_DOWN && Utils.isDownKey(event)) { |
|
|
|
|
if (Prefers.isInvert()) listener.onKeyUp(); else listener.onKeyDown(); |
|
|
|
|
if (Prefers.isInvert()) listener.onKeyUp(); |
|
|
|
|
else listener.onKeyDown(); |
|
|
|
|
} else if (event.getAction() == KeyEvent.ACTION_UP && Utils.isLeftKey(event)) { |
|
|
|
|
listener.onKeyLeft(holdTime); |
|
|
|
|
} else if (event.getAction() == KeyEvent.ACTION_UP && Utils.isRightKey(event)) { |
|
|
|
|
@ -67,37 +63,43 @@ public class CustomKeyDownLive extends GestureDetector.SimpleOnGestureListener { |
|
|
|
|
onKeyDown(event.getKeyCode()); |
|
|
|
|
} else if (event.getAction() == KeyEvent.ACTION_UP && Utils.isEnterKey(event)) { |
|
|
|
|
listener.onKeyCenter(); |
|
|
|
|
} else if (event.isLongPress() && Utils.isEnterKey(event)) { |
|
|
|
|
listener.onLongPress(); |
|
|
|
|
} else if (Utils.isMenuKey(event) || event.isLongPress() && Utils.isEnterKey(event)) { |
|
|
|
|
listener.onMenu(); |
|
|
|
|
} |
|
|
|
|
return true; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
private void onKeyDown(int keyCode) { |
|
|
|
|
if (text.length() >= 4) return; |
|
|
|
|
text.append(getNumber(keyCode)); |
|
|
|
|
listener.onShow(text.toString()); |
|
|
|
|
App.post(runnable, 1000); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
|
public boolean onDoubleTap(@NonNull MotionEvent e) { |
|
|
|
|
listener.onDoubleTap(); |
|
|
|
|
if (listener.dispatch(false)) listener.onDoubleTap(); |
|
|
|
|
return true; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
|
public boolean onSingleTapConfirmed(@NonNull MotionEvent e) { |
|
|
|
|
listener.onSingleTap(); |
|
|
|
|
if (listener.dispatch(false)) listener.onSingleTap(); |
|
|
|
|
return true; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
|
public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) { |
|
|
|
|
if (e1.getX() - e2.getX() > DISTANCE && Math.abs(velocityX) > VELOCITY) { |
|
|
|
|
listener.onKeyLeft(30 * 1000); |
|
|
|
|
if (listener.dispatch(true)) listener.onKeyLeft(30 * 1000); |
|
|
|
|
return true; |
|
|
|
|
} else if (e2.getX() - e1.getX() > DISTANCE && Math.abs(velocityX) > VELOCITY) { |
|
|
|
|
listener.onKeyRight(30 * 1000); |
|
|
|
|
if (listener.dispatch(true)) listener.onKeyRight(30 * 1000); |
|
|
|
|
return true; |
|
|
|
|
} else if (e1.getY() - e2.getY() > DISTANCE && Math.abs(velocityY) > VELOCITY) { |
|
|
|
|
listener.onKeyUp(); |
|
|
|
|
if (listener.dispatch(true)) listener.onKeyUp(); |
|
|
|
|
return true; |
|
|
|
|
} else if (e2.getY() - e1.getY() > DISTANCE && Math.abs(velocityY) > VELOCITY) { |
|
|
|
|
listener.onKeyDown(); |
|
|
|
|
if (listener.dispatch(true)) listener.onKeyDown(); |
|
|
|
|
return true; |
|
|
|
|
} else { |
|
|
|
|
return false; |
|
|
|
|
@ -105,7 +107,7 @@ public class CustomKeyDownLive extends GestureDetector.SimpleOnGestureListener { |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
public boolean hasEvent(KeyEvent event) { |
|
|
|
|
return Utils.isEnterKey(event) || Utils.isUpKey(event) || Utils.isDownKey(event) || Utils.isLeftKey(event) || Utils.isRightKey(event) || Utils.isDigitKey(event) || event.isLongPress(); |
|
|
|
|
return Utils.isEnterKey(event) || Utils.isUpKey(event) || Utils.isDownKey(event) || Utils.isLeftKey(event) || Utils.isRightKey(event) || Utils.isDigitKey(event) || Utils.isMenuKey(event) || event.isLongPress(); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
private int getNumber(int keyCode) { |
|
|
|
|
@ -126,6 +128,8 @@ public class CustomKeyDownLive extends GestureDetector.SimpleOnGestureListener { |
|
|
|
|
|
|
|
|
|
public interface Listener { |
|
|
|
|
|
|
|
|
|
boolean dispatch(boolean check); |
|
|
|
|
|
|
|
|
|
void onShow(String number); |
|
|
|
|
|
|
|
|
|
void onFind(String number); |
|
|
|
|
@ -142,7 +146,7 @@ public class CustomKeyDownLive extends GestureDetector.SimpleOnGestureListener { |
|
|
|
|
|
|
|
|
|
void onKeyCenter(); |
|
|
|
|
|
|
|
|
|
boolean onLongPress(); |
|
|
|
|
void onMenu(); |
|
|
|
|
|
|
|
|
|
void onSingleTap(); |
|
|
|
|
|
|
|
|
|
|