Skip to content

Commit ddd8a94

Browse files
committed
fix: resolve touch interception and visibility issues during player state transitions
1 parent a13df28 commit ddd8a94

3 files changed

Lines changed: 13 additions & 2 deletions

File tree

app/src/main/java/com/hhst/youtubelite/player/LitePlayer.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -379,8 +379,10 @@ public void play(String url, final long initialPositionMs) {
379379

380380
if (isMusic) {
381381
playerView.hide();
382+
playerView.resetMiniPlayerTouchTracking();
382383
} else {
383384
playerView.show();
385+
playerView.resetMiniPlayerTouchTracking();
384386
}
385387
controller.syncRotation(DeviceUtils.isRotateOn(activity), activity.getResources().getConfiguration().orientation);
386388
});
@@ -453,6 +455,7 @@ public void playLocal(@NonNull Uri uri, @Nullable String title, @Nullable List<D
453455
engine.clear();
454456
playerView.setTitle(title);
455457
playerView.show();
458+
playerView.resetMiniPlayerTouchTracking();
456459
engine.playLocal(uri, title, subtitles);
457460
controller.syncRotation(DeviceUtils.isRotateOn(activity), activity.getResources().getConfiguration().orientation);
458461
});
@@ -468,6 +471,7 @@ public void hide() {
468471
cancelCurrentExtraction();
469472
activity.runOnUiThread(() -> {
470473
playerView.hide();
474+
playerView.resetMiniPlayerTouchTracking();
471475
engine.clear();
472476
controller.clearRotation();
473477
playerView.disableAutoPiP();

app/src/main/java/com/hhst/youtubelite/player/LitePlayerView.java

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -293,6 +293,10 @@ public void exitInAppMiniPlayer() {
293293
setResizeMode(miniPlayerRestoreResizeMode);
294294
updateMiniPlayerInteractionHandlers();
295295
animateMiniTransition(startX, startY, startWidth, startHeight);
296+
post(() -> {
297+
requestLayout();
298+
invalidate();
299+
});
296300
}
297301

298302
public void closeInAppMiniPlayerWithFade(@Nullable Runnable onClosed) {
@@ -760,7 +764,7 @@ private void persistMiniPlayerLayoutState() {
760764
pxToDp(miniPlayerSavedTranslationY));
761765
}
762766

763-
private void resetMiniPlayerTouchTracking() {
767+
public void resetMiniPlayerTouchTracking() {
764768
clearMiniPlayerPendingTapTarget();
765769
miniPlayerTouchCaptured = false;
766770
miniPlayerDragging = false;
@@ -938,6 +942,9 @@ public void setResizeMode(int resizeMode) {
938942

939943
public void show() {
940944
setVisibility(View.VISIBLE);
945+
setAlpha(1.0f);
946+
setClickable(true);
947+
setFocusable(true);
941948
}
942949

943950
public void hide() {

app/src/main/java/com/hhst/youtubelite/player/controller/Controller.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -85,7 +85,7 @@ public class Controller {
8585
private static final int HINT_PADDING_DP = 8;
8686
private static final int HINT_TOP_MARGIN_DP = 24;
8787
private static final int CONTROLS_HIDE_DELAY_MS = 1500;
88-
private static final int UNDO_HIDE_DELAY_MS = 7000;
88+
private static final int UNDO_HIDE_DELAY_MS = 5000;
8989
static final float DISABLED_BUTTON_ALPHA = 0.38f;
9090

9191
@NonNull

0 commit comments

Comments
 (0)