Added song InstantMix

This commit is contained in:
CappielloAntonio 2021-04-18 20:23:09 +02:00
parent fc430e5811
commit 7576fbb75b
8 changed files with 169 additions and 8 deletions

View file

@ -103,7 +103,7 @@ public class HomeFragment extends Fragment {
private void initDiscoverSongSlideView() {
bind.discoverSongViewPager.setOrientation(ViewPager2.ORIENTATION_HORIZONTAL);
discoverSongAdapter = new DiscoverSongAdapter(requireContext(), homeViewModel.getDiscoverSongList());
discoverSongAdapter = new DiscoverSongAdapter(activity, requireContext(), homeViewModel.getDiscoverSongList());
bind.discoverSongViewPager.setAdapter(discoverSongAdapter);
bind.discoverSongViewPager.setOffscreenPageLimit(3);
setDiscoverSongSlideViewOffset(20, 16);

View file

@ -87,6 +87,11 @@ public class SongListPageFragment extends Fragment {
songListPageViewModel.title = Song.IS_FAVORITE;
bind.pageTitleLabel.setText("Favourite song");
}
else if(getArguments().getString(Song.RADIO) != null) {
songListPageViewModel.title = Song.IS_FAVORITE;
songListPageViewModel.year = getArguments().getInt("radio_object");
bind.pageTitleLabel.setText("Radio");
}
}
private void initSongListView() {

View file

@ -1,6 +1,7 @@
package com.cappielloantonio.play.ui.fragment.bottomsheetdialog;
import android.os.Bundle;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
@ -16,15 +17,19 @@ import com.cappielloantonio.play.App;
import com.cappielloantonio.play.R;
import com.cappielloantonio.play.glide.CustomGlideRequest;
import com.cappielloantonio.play.helper.MusicPlayerRemote;
import com.cappielloantonio.play.interfaces.MediaCallback;
import com.cappielloantonio.play.model.Album;
import com.cappielloantonio.play.model.Artist;
import com.cappielloantonio.play.model.Song;
import com.cappielloantonio.play.repository.QueueRepository;
import com.cappielloantonio.play.repository.SongRepository;
import com.cappielloantonio.play.ui.activities.MainActivity;
import com.cappielloantonio.play.util.SyncUtil;
import com.cappielloantonio.play.viewmodel.AlbumBottomSheetViewModel;
import com.cappielloantonio.play.viewmodel.PlayerBottomSheetViewModel;
import com.google.android.material.bottomsheet.BottomSheetDialogFragment;
import java.util.ArrayList;
import java.util.List;
public class AlbumBottomSheetDialog extends BottomSheetDialogFragment implements View.OnClickListener {
@ -79,7 +84,29 @@ public class AlbumBottomSheetDialog extends BottomSheetDialogFragment implements
playRadio = view.findViewById(R.id.play_radio_text_view);
playRadio.setOnClickListener(v -> {
Toast.makeText(requireContext(), "Play radio", Toast.LENGTH_SHORT).show();
SyncUtil.getInstantMix(requireContext(), new MediaCallback() {
MainActivity activity = (MainActivity) requireActivity();
@Override
public void onError(Exception exception) {
Log.e(TAG, "onError: " + exception.getMessage());
}
@Override
public void onLoadMedia(List<?> media) {
QueueRepository queueRepository = new QueueRepository(App.getInstance());
queueRepository.insertAllAndStartNew((ArrayList<Song>) media);
activity.isBottomSheetInPeek(true);
activity.setBottomSheetMusicInfo(((ArrayList<Song>) media).get(0));
PlayerBottomSheetViewModel playerBottomSheetViewModel = new ViewModelProvider(activity).get(PlayerBottomSheetViewModel.class);
playerBottomSheetViewModel.setNowPlayingSong(((ArrayList<Song>) media).get(0));
MusicPlayerRemote.openQueue((ArrayList<Song>) media, 0, true);
}
}, SyncUtil.SONG, album.getId(), 50);
dismissBottomSheet();
});

View file

@ -16,14 +16,18 @@ import com.cappielloantonio.play.App;
import com.cappielloantonio.play.R;
import com.cappielloantonio.play.glide.CustomGlideRequest;
import com.cappielloantonio.play.helper.MusicPlayerRemote;
import com.cappielloantonio.play.interfaces.MediaCallback;
import com.cappielloantonio.play.model.Artist;
import com.cappielloantonio.play.model.Song;
import com.cappielloantonio.play.repository.QueueRepository;
import com.cappielloantonio.play.repository.SongRepository;
import com.cappielloantonio.play.ui.activities.MainActivity;
import com.cappielloantonio.play.util.SyncUtil;
import com.cappielloantonio.play.viewmodel.ArtistBottomSheetViewModel;
import com.cappielloantonio.play.viewmodel.PlayerBottomSheetViewModel;
import com.google.android.material.bottomsheet.BottomSheetDialogFragment;
import java.util.ArrayList;
import java.util.List;
public class ArtistBottomSheetDialog extends BottomSheetDialogFragment implements View.OnClickListener {
@ -69,7 +73,29 @@ public class ArtistBottomSheetDialog extends BottomSheetDialogFragment implement
playRadio = view.findViewById(R.id.play_radio_text_view);
playRadio.setOnClickListener(v -> {
Toast.makeText(requireContext(), "Play radio", Toast.LENGTH_SHORT).show();
SyncUtil.getInstantMix(requireContext(), new MediaCallback() {
MainActivity activity = (MainActivity) requireActivity();
@Override
public void onError(Exception exception) {
Log.e(TAG, "onError: " + exception.getMessage());
}
@Override
public void onLoadMedia(List<?> media) {
QueueRepository queueRepository = new QueueRepository(App.getInstance());
queueRepository.insertAllAndStartNew((ArrayList<Song>) media);
activity.isBottomSheetInPeek(true);
activity.setBottomSheetMusicInfo(((ArrayList<Song>) media).get(0));
PlayerBottomSheetViewModel playerBottomSheetViewModel = new ViewModelProvider(activity).get(PlayerBottomSheetViewModel.class);
playerBottomSheetViewModel.setNowPlayingSong(((ArrayList<Song>) media).get(0));
MusicPlayerRemote.openQueue((ArrayList<Song>) media, 0, true);
}
}, SyncUtil.SONG, artist.getId(), 50);
dismissBottomSheet();
});

View file

@ -1,6 +1,7 @@
package com.cappielloantonio.play.ui.fragment.bottomsheetdialog;
import android.os.Bundle;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
@ -13,17 +14,24 @@ import androidx.annotation.Nullable;
import androidx.lifecycle.ViewModelProvider;
import androidx.navigation.fragment.NavHostFragment;
import com.cappielloantonio.play.App;
import com.cappielloantonio.play.R;
import com.cappielloantonio.play.glide.CustomGlideRequest;
import com.cappielloantonio.play.helper.MusicPlayerRemote;
import com.cappielloantonio.play.interfaces.MediaCallback;
import com.cappielloantonio.play.model.Album;
import com.cappielloantonio.play.model.Artist;
import com.cappielloantonio.play.model.PlaylistSongCross;
import com.cappielloantonio.play.model.Song;
import com.cappielloantonio.play.repository.QueueRepository;
import com.cappielloantonio.play.ui.activities.MainActivity;
import com.cappielloantonio.play.util.SyncUtil;
import com.cappielloantonio.play.viewmodel.PlayerBottomSheetViewModel;
import com.cappielloantonio.play.viewmodel.SongBottomSheetViewModel;
import com.google.android.material.bottomsheet.BottomSheetDialogFragment;
import java.util.ArrayList;
import java.util.List;
import java.util.Objects;
public class SongBottomSheetDialog extends BottomSheetDialogFragment implements View.OnClickListener {
@ -83,7 +91,29 @@ public class SongBottomSheetDialog extends BottomSheetDialogFragment implements
playRadio = view.findViewById(R.id.play_radio_text_view);
playRadio.setOnClickListener(v -> {
Toast.makeText(requireContext(), "Play radio", Toast.LENGTH_SHORT).show();
SyncUtil.getInstantMix(requireContext(), new MediaCallback() {
MainActivity activity = (MainActivity) requireActivity();
@Override
public void onError(Exception exception) {
Log.e(TAG, "onError: " + exception.getMessage());
}
@Override
public void onLoadMedia(List<?> media) {
QueueRepository queueRepository = new QueueRepository(App.getInstance());
queueRepository.insertAllAndStartNew((ArrayList<Song>) media);
activity.isBottomSheetInPeek(true);
activity.setBottomSheetMusicInfo(((ArrayList<Song>) media).get(0));
PlayerBottomSheetViewModel playerBottomSheetViewModel = new ViewModelProvider(activity).get(PlayerBottomSheetViewModel.class);
playerBottomSheetViewModel.setNowPlayingSong(((ArrayList<Song>) media).get(0));
MusicPlayerRemote.openQueue((ArrayList<Song>) media, 0, true);
}
}, SyncUtil.SONG, song.getId(), 50);
dismissBottomSheet();
});