mirror of
https://github.com/antebudimir/tempus.git
synced 2025-12-31 09:33:33 +00:00
First implementation of the progress bar activated via runnable
This commit is contained in:
parent
2dab1f7a79
commit
0be7f07b83
3 changed files with 31 additions and 3 deletions
1
.idea/misc.xml
generated
1
.idea/misc.xml
generated
|
|
@ -3,6 +3,7 @@
|
|||
<component name="DesignSurface">
|
||||
<option name="filePathToZoomLevelMap">
|
||||
<map>
|
||||
<entry key="../../../../layout/custom_preview.xml" value="0.4861111111111111" />
|
||||
<entry key="../../.gradle/caches/transforms-3/20796fa5f04d2ad22571c8f80fdd27bd/transformed/jetified-exoplayer-ui-2.12.2/res/drawable-anydpi-v21/exo_ic_skip_previous.xml" value="0.5484375" />
|
||||
<entry key="../../.gradle/caches/transforms-3/cfd4e4d299e24db95f3608b5f72af22b/transformed/jetified-exoplayer-ui-2.12.2/res/drawable-anydpi-v21/exo_ic_play_circle_filled.xml" value="0.28055555555555556" />
|
||||
<entry key="app/src/main/res/drawable-anydpi/ic_api_notification.xml" value="0.44351851851851853" />
|
||||
|
|
|
|||
|
|
@ -3,6 +3,7 @@ package com.cappielloantonio.play.ui.fragment;
|
|||
import android.annotation.SuppressLint;
|
||||
import android.content.ComponentName;
|
||||
import android.os.Bundle;
|
||||
import android.os.Handler;
|
||||
import android.util.Log;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
|
|
@ -14,7 +15,6 @@ import androidx.fragment.app.Fragment;
|
|||
import androidx.lifecycle.ViewModelProvider;
|
||||
import androidx.media3.common.MediaMetadata;
|
||||
import androidx.media3.common.Player;
|
||||
import androidx.media3.common.util.RepeatModeUtil;
|
||||
import androidx.media3.session.MediaBrowser;
|
||||
import androidx.media3.session.MediaController;
|
||||
import androidx.media3.session.SessionToken;
|
||||
|
|
@ -41,7 +41,8 @@ public class PlayerBottomSheetFragment extends Fragment {
|
|||
private PlayerBottomSheetViewModel playerBottomSheetViewModel;
|
||||
private ListenableFuture<MediaBrowser> mediaBrowserListenableFuture;
|
||||
|
||||
// TODO: Collegare la seekbar all'exo_progress
|
||||
private Handler progressBarHandler;
|
||||
private Runnable progressBarRunnable;
|
||||
|
||||
@Nullable
|
||||
@Override
|
||||
|
|
@ -110,6 +111,7 @@ public class PlayerBottomSheetFragment extends Fragment {
|
|||
|
||||
@SuppressLint("UnsafeOptInUsageError")
|
||||
private void setMediaControllerListener(MediaBrowser mediaBrowser) {
|
||||
defineProgressBarHandler(mediaBrowser);
|
||||
setMediaControllerUI(mediaBrowser);
|
||||
setMetadata(mediaBrowser.getMediaMetadata());
|
||||
setContentDuration(mediaBrowser.getContentDuration());
|
||||
|
|
@ -130,6 +132,11 @@ public class PlayerBottomSheetFragment extends Fragment {
|
|||
setPlayingState(isPlaying);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onSkipSilenceEnabledChanged(boolean skipSilenceEnabled) {
|
||||
Player.Listener.super.onSkipSilenceEnabledChanged(skipSilenceEnabled);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onEvents(Player player, Player.Events events) {
|
||||
setHeaderNextButtonState(mediaBrowser.hasNextMediaItem());
|
||||
|
|
@ -177,8 +184,13 @@ public class PlayerBottomSheetFragment extends Fragment {
|
|||
bind.playerHeaderLayout.playerHeaderSeekBar.setMax((int) (duration / 1000));
|
||||
}
|
||||
|
||||
private void setProgress(MediaBrowser mediaBrowser) {
|
||||
if (bind != null) bind.playerHeaderLayout.playerHeaderSeekBar.setProgress((int) (mediaBrowser.getCurrentPosition() / 1000), true);
|
||||
}
|
||||
|
||||
private void setPlayingState(boolean isPlaying) {
|
||||
bind.playerHeaderLayout.playerHeaderButton.setChecked(isPlaying);
|
||||
runProgressBarHandler(isPlaying);
|
||||
}
|
||||
|
||||
@SuppressLint("UnsafeOptInUsageError")
|
||||
|
|
@ -222,4 +234,20 @@ public class PlayerBottomSheetFragment extends Fragment {
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void defineProgressBarHandler(MediaBrowser mediaBrowser) {
|
||||
progressBarHandler = new Handler();
|
||||
progressBarRunnable = () -> {
|
||||
setProgress(mediaBrowser);
|
||||
progressBarHandler.postDelayed(progressBarRunnable, 1000);
|
||||
};
|
||||
}
|
||||
|
||||
private void runProgressBarHandler(boolean isPlaying) {
|
||||
if (isPlaying) {
|
||||
progressBarHandler.postDelayed(progressBarRunnable, 1000);
|
||||
} else {
|
||||
progressBarHandler.removeCallbacks(progressBarRunnable);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -90,7 +90,6 @@ public class PlayerControllerFragment extends Fragment {
|
|||
bind = null;
|
||||
}
|
||||
|
||||
|
||||
@SuppressLint("UnsafeOptInUsageError")
|
||||
private void init() {
|
||||
playerMoveDownBottomSheet = bind.getRoot().findViewById(R.id.player_move_down_bottom_sheet);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue