Fix initial event not triggering onTouchEvent.

Fixes #13351
This commit is contained in:
Ahmed El herz 2024-05-24 00:12:43 +01:00 committed by Cody Henthorne
parent fa27531c00
commit 5e490376f4

View file

@ -41,6 +41,9 @@ public class StickerRolloverTouchListener implements RecyclerView.OnItemTouchLis
@Override
public boolean onInterceptTouchEvent(@NonNull RecyclerView recyclerView, @NonNull MotionEvent motionEvent) {
if (hoverMode && motionEvent.getAction() == MotionEvent.ACTION_UP)
exitHoverMode();
return hoverMode;
}
@ -49,10 +52,7 @@ public class StickerRolloverTouchListener implements RecyclerView.OnItemTouchLis
switch (motionEvent.getAction()) {
case MotionEvent.ACTION_UP:
case MotionEvent.ACTION_CANCEL:
hoverMode = false;
popup.dismiss();
eventListener.onStickerPopupEnded();
currentView.clear();
exitHoverMode();
break;
default:
for (int i = 0, len = recyclerView.getChildCount(); i < len; i++) {
@ -84,6 +84,13 @@ public class StickerRolloverTouchListener implements RecyclerView.OnItemTouchLis
showSticker(recyclerView, sticker.getUri(), sticker.getStickerRecord().getEmoji());
}
private void exitHoverMode() {
hoverMode = false;
popup.dismiss();
eventListener.onStickerPopupEnded();
currentView.clear();
}
private void showStickerForView(@NonNull RecyclerView recyclerView, @NonNull View view) {
Pair<Object, String> stickerData = stickerRetriever.getStickerDataFromView(view);