avoid updating player bottom sheet when not visible

This commit is contained in:
pca006132 2025-11-03 16:16:06 +08:00
parent ba94d7e5cc
commit 1dca1ef68d

View file

@ -3,6 +3,7 @@ package com.cappielloantonio.tempo.ui.fragment;
import android.content.ComponentName; import android.content.ComponentName;
import android.os.Bundle; import android.os.Bundle;
import android.os.Handler; import android.os.Handler;
import android.util.Log;
import android.view.LayoutInflater; import android.view.LayoutInflater;
import android.view.View; import android.view.View;
import android.view.ViewGroup; import android.view.ViewGroup;
@ -47,7 +48,7 @@ public class PlayerBottomSheetFragment extends Fragment {
private PlayerBottomSheetViewModel playerBottomSheetViewModel; private PlayerBottomSheetViewModel playerBottomSheetViewModel;
private ListenableFuture<MediaBrowser> mediaBrowserListenableFuture; private ListenableFuture<MediaBrowser> mediaBrowserListenableFuture;
private Handler progressBarHandler; private Handler progressBarHandler = null;
private Runnable progressBarRunnable; private Runnable progressBarRunnable;
@Nullable @Nullable
@ -66,6 +67,14 @@ public class PlayerBottomSheetFragment extends Fragment {
return view; return view;
} }
@Override
public void onResume() {
super.onResume();
if (progressBarHandler != null)
progressBarHandler.post(progressBarRunnable);
Log.d("Player", "resumed");
}
@Override @Override
public void onStart() { public void onStart() {
super.onStart(); super.onStart();
@ -281,6 +290,10 @@ public class PlayerBottomSheetFragment extends Fragment {
private void defineProgressBarHandler(MediaBrowser mediaBrowser) { private void defineProgressBarHandler(MediaBrowser mediaBrowser) {
progressBarHandler = new Handler(); progressBarHandler = new Handler();
progressBarRunnable = () -> { progressBarRunnable = () -> {
if (!isResumed()) {
Log.d("Player", "not resumed");
return;
}
setProgress(mediaBrowser); setProgress(mediaBrowser);
progressBarHandler.postDelayed(progressBarRunnable, 1000); progressBarHandler.postDelayed(progressBarRunnable, 1000);
}; };