mirror of
https://github.com/antebudimir/tempus.git
synced 2026-01-01 18:03:33 +00:00
Generalized the song and podcastEpisode field to Media
This commit is contained in:
parent
ae941ad769
commit
bf09a581b9
13 changed files with 154 additions and 136 deletions
|
|
@ -133,18 +133,19 @@ public class PlayerBottomSheetFragment extends Fragment {
|
|||
});
|
||||
}
|
||||
|
||||
@SuppressLint("UnsafeOptInUsageError")
|
||||
private void setMetadata(MediaMetadata mediaMetadata) {
|
||||
if (mediaMetadata.extras != null) playerBottomSheetViewModel.setLiveSong(requireActivity(), mediaMetadata.extras.getString("id"));
|
||||
if (mediaMetadata.extras != null) playerBottomSheetViewModel.setLiveArtist(requireActivity(), mediaMetadata.extras.getString("artistId"));
|
||||
if (mediaMetadata.extras != null) playerBottomSheetViewModel.setLiveMedia(requireActivity(), mediaMetadata.extras.getString("mediaType"), mediaMetadata.extras.getString("id"));
|
||||
if (mediaMetadata.extras != null) playerBottomSheetViewModel.setLiveArtist(requireActivity(), mediaMetadata.extras.getString("mediaType"), mediaMetadata.extras.getString("artistId"));
|
||||
|
||||
bind.playerHeaderLayout.playerHeaderSongTitleLabel.setText(MusicUtil.getReadableString(String.valueOf(mediaMetadata.title)));
|
||||
bind.playerHeaderLayout.playerHeaderSongArtistLabel.setText(MusicUtil.getReadableString(String.valueOf(mediaMetadata.artist)));
|
||||
bind.playerHeaderLayout.playerHeaderMediaTitleLabel.setText(MusicUtil.getReadableString(String.valueOf(mediaMetadata.title)));
|
||||
bind.playerHeaderLayout.playerHeaderMediaArtistLabel.setText(MusicUtil.getReadableString(String.valueOf(mediaMetadata.artist)));
|
||||
|
||||
if (mediaMetadata.extras != null) CustomGlideRequest.Builder
|
||||
.from(requireContext(), mediaMetadata.extras.getString("id"), CustomGlideRequest.SONG_PIC, null)
|
||||
.build()
|
||||
.transform(new RoundedCorners(CustomGlideRequest.CORNER_RADIUS))
|
||||
.into(bind.playerHeaderLayout.playerHeaderSongCoverImage);
|
||||
.into(bind.playerHeaderLayout.playerHeaderMediaCoverImage);
|
||||
}
|
||||
|
||||
private void setContentDuration(long duration) {
|
||||
|
|
@ -165,12 +166,12 @@ public class PlayerBottomSheetFragment extends Fragment {
|
|||
}
|
||||
});
|
||||
|
||||
bind.playerHeaderLayout.playerHeaderNextSongButton.setOnClickListener(view -> bind.getRoot().findViewById(R.id.exo_next).performClick());
|
||||
bind.playerHeaderLayout.playerHeaderNextMediaButton.setOnClickListener(view -> bind.getRoot().findViewById(R.id.exo_next).performClick());
|
||||
}
|
||||
|
||||
private void setHeaderNextButtonState(boolean isEnabled) {
|
||||
bind.playerHeaderLayout.playerHeaderNextSongButton.setEnabled(isEnabled);
|
||||
bind.playerHeaderLayout.playerHeaderNextSongButton.setAlpha(isEnabled ? (float) 1.0 : (float) 0.3);
|
||||
bind.playerHeaderLayout.playerHeaderNextMediaButton.setEnabled(isEnabled);
|
||||
bind.playerHeaderLayout.playerHeaderNextMediaButton.setAlpha(isEnabled ? (float) 1.0 : (float) 0.3);
|
||||
}
|
||||
|
||||
public View getPlayerHeader() {
|
||||
|
|
|
|||
|
|
@ -7,7 +7,6 @@ import android.util.Log;
|
|||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.ImageButton;
|
||||
import android.widget.ImageView;
|
||||
import android.widget.TextView;
|
||||
import android.widget.ToggleButton;
|
||||
|
|
@ -38,9 +37,9 @@ public class PlayerControllerFragment extends Fragment {
|
|||
|
||||
private InnerFragmentPlayerControllerBinding bind;
|
||||
private ImageView playerMoveDownBottomSheet;
|
||||
private ViewPager2 playerSongCoverViewPager;
|
||||
private ViewPager2 playerMediaCoverViewPager;
|
||||
private ToggleButton buttonFavorite;
|
||||
private TextView playerSongTitleLabel;
|
||||
private TextView playerMediaTitleLabel;
|
||||
private TextView playerArtistNameLabel;
|
||||
|
||||
private MainActivity activity;
|
||||
|
|
@ -87,9 +86,9 @@ public class PlayerControllerFragment extends Fragment {
|
|||
@SuppressLint("UnsafeOptInUsageError")
|
||||
private void init() {
|
||||
playerMoveDownBottomSheet = bind.getRoot().findViewById(R.id.player_move_down_bottom_sheet);
|
||||
playerSongCoverViewPager = bind.getRoot().findViewById(R.id.player_song_cover_view_pager);
|
||||
playerMediaCoverViewPager = bind.getRoot().findViewById(R.id.player_media_cover_view_pager);
|
||||
buttonFavorite = bind.getRoot().findViewById(R.id.button_favorite);
|
||||
playerSongTitleLabel = bind.getRoot().findViewById(R.id.player_song_title_label);
|
||||
playerMediaTitleLabel = bind.getRoot().findViewById(R.id.player_media_title_label);
|
||||
playerArtistNameLabel = bind.getRoot().findViewById(R.id.player_artist_name_label);
|
||||
|
||||
playerMoveDownBottomSheet.setOnClickListener(view -> activity.collapseBottomSheet());
|
||||
|
|
@ -110,7 +109,7 @@ public class PlayerControllerFragment extends Fragment {
|
|||
try {
|
||||
MediaBrowser mediaBrowser = mediaBrowserListenableFuture.get();
|
||||
|
||||
bind.nowPlayingSongControllerView.setPlayer(mediaBrowser);
|
||||
bind.nowPlayingMediaControllerView.setPlayer(mediaBrowser);
|
||||
|
||||
setMediaControllerListener(mediaBrowser);
|
||||
} catch (Exception e) {
|
||||
|
|
@ -131,19 +130,20 @@ public class PlayerControllerFragment extends Fragment {
|
|||
});
|
||||
}
|
||||
|
||||
@SuppressLint("UnsafeOptInUsageError")
|
||||
private void setMetadata(MediaMetadata mediaMetadata) {
|
||||
playerSongTitleLabel.setText(MusicUtil.getReadableString(String.valueOf(mediaMetadata.title)));
|
||||
playerMediaTitleLabel.setText(MusicUtil.getReadableString(String.valueOf(mediaMetadata.title)));
|
||||
playerArtistNameLabel.setText(MusicUtil.getReadableString(String.valueOf(mediaMetadata.artist)));
|
||||
|
||||
playerSongTitleLabel.setSelected(true);
|
||||
playerMediaTitleLabel.setSelected(true);
|
||||
playerArtistNameLabel.setSelected(true);
|
||||
}
|
||||
|
||||
private void initCoverLyricsSlideView() {
|
||||
playerSongCoverViewPager.setOrientation(ViewPager2.ORIENTATION_HORIZONTAL);
|
||||
playerSongCoverViewPager.setAdapter(new PlayerControllerHorizontalPager(this));
|
||||
playerMediaCoverViewPager.setOrientation(ViewPager2.ORIENTATION_HORIZONTAL);
|
||||
playerMediaCoverViewPager.setAdapter(new PlayerControllerHorizontalPager(this));
|
||||
|
||||
playerSongCoverViewPager.registerOnPageChangeCallback(new ViewPager2.OnPageChangeCallback() {
|
||||
playerMediaCoverViewPager.registerOnPageChangeCallback(new ViewPager2.OnPageChangeCallback() {
|
||||
@Override
|
||||
public void onPageSelected(int position) {
|
||||
super.onPageSelected(position);
|
||||
|
|
@ -158,15 +158,15 @@ public class PlayerControllerFragment extends Fragment {
|
|||
}
|
||||
|
||||
private void initMediaListenable() {
|
||||
playerBottomSheetViewModel.getLiveSong().observe(requireActivity(), song -> {
|
||||
if (song != null) {
|
||||
buttonFavorite.setChecked(song.isFavorite());
|
||||
playerBottomSheetViewModel.getLiveMedia().observe(requireActivity(), media -> {
|
||||
if (media != null) {
|
||||
buttonFavorite.setChecked(media.isStarred());
|
||||
|
||||
buttonFavorite.setOnClickListener(v -> playerBottomSheetViewModel.setFavorite(requireContext(), song));
|
||||
buttonFavorite.setOnClickListener(v -> playerBottomSheetViewModel.setFavorite(requireContext(), media));
|
||||
|
||||
buttonFavorite.setOnLongClickListener(v -> {
|
||||
Bundle bundle = new Bundle();
|
||||
bundle.putParcelable("song_object", song);
|
||||
bundle.putParcelable("song_object", media);
|
||||
|
||||
RatingDialog dialog = new RatingDialog();
|
||||
dialog.setArguments(bundle);
|
||||
|
|
@ -176,7 +176,7 @@ public class PlayerControllerFragment extends Fragment {
|
|||
});
|
||||
|
||||
if (getActivity() != null) {
|
||||
playerBottomSheetViewModel.refreshSongInfo(requireActivity(), song);
|
||||
playerBottomSheetViewModel.refreshMediaInfo(requireActivity(), media);
|
||||
}
|
||||
}
|
||||
});
|
||||
|
|
@ -196,10 +196,10 @@ public class PlayerControllerFragment extends Fragment {
|
|||
}
|
||||
|
||||
public void goToControllerPage() {
|
||||
playerSongCoverViewPager.setCurrentItem(0, false);
|
||||
playerMediaCoverViewPager.setCurrentItem(0, false);
|
||||
}
|
||||
|
||||
public void goToLyricsPage() {
|
||||
playerSongCoverViewPager.setCurrentItem(1, true);
|
||||
playerMediaCoverViewPager.setCurrentItem(1, true);
|
||||
}
|
||||
}
|
||||
|
|
@ -92,7 +92,7 @@ public class PlayerCoverFragment extends Fragment {
|
|||
}
|
||||
|
||||
private void initInnerButton() {
|
||||
playerBottomSheetViewModel.getLiveSong().observe(requireActivity(), song -> {
|
||||
playerBottomSheetViewModel.getLiveMedia().observe(requireActivity(), song -> {
|
||||
if (song != null && bind != null) {
|
||||
bind.innerButtonTopLeft.setOnClickListener(view -> {
|
||||
DownloadUtil.getDownloadTracker(requireContext()).download(
|
||||
|
|
@ -172,6 +172,7 @@ public class PlayerCoverFragment extends Fragment {
|
|||
});
|
||||
}
|
||||
|
||||
@SuppressLint("UnsafeOptInUsageError")
|
||||
private void setCover(MediaMetadata mediaMetadata) {
|
||||
CustomGlideRequest.Builder
|
||||
.from(requireContext(), mediaMetadata.extras != null ? mediaMetadata.extras.getString("id") : null, CustomGlideRequest.SONG_PIC, null)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue