From 7f1b7a4ae3ef060606d2bb5290299b716e39e034 Mon Sep 17 00:00:00 2001 From: CappielloAntonio Date: Fri, 30 Apr 2021 08:50:01 +0200 Subject: [PATCH] Added shuffle and play button in song's list page --- .../ui/fragment/SongListPageFragment.java | 36 +++++++++++++++++++ .../res/layout/fragment_song_list_page.xml | 30 ++++++++++++++-- 2 files changed, 64 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/com/cappielloantonio/play/ui/fragment/SongListPageFragment.java b/app/src/main/java/com/cappielloantonio/play/ui/fragment/SongListPageFragment.java index 19d2141f..d52b5026 100644 --- a/app/src/main/java/com/cappielloantonio/play/ui/fragment/SongListPageFragment.java +++ b/app/src/main/java/com/cappielloantonio/play/ui/fragment/SongListPageFragment.java @@ -4,18 +4,25 @@ import android.os.Bundle; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; +import android.widget.Toast; import androidx.core.view.ViewCompat; import androidx.fragment.app.Fragment; import androidx.lifecycle.ViewModelProvider; import androidx.recyclerview.widget.LinearLayoutManager; +import com.cappielloantonio.play.App; import com.cappielloantonio.play.adapter.SongResultSearchAdapter; import com.cappielloantonio.play.databinding.FragmentSongListPageBinding; import com.cappielloantonio.play.model.Song; +import com.cappielloantonio.play.repository.QueueRepository; +import com.cappielloantonio.play.service.MusicPlayerRemote; import com.cappielloantonio.play.ui.activity.MainActivity; import com.cappielloantonio.play.viewmodel.SongListPageViewModel; +import java.util.Collections; +import java.util.List; + public class SongListPageFragment extends Fragment { private FragmentSongListPageBinding bind; @@ -34,6 +41,7 @@ public class SongListPageFragment extends Fragment { init(); initAppBar(); + initButtons(); initSongListView(); return view; @@ -121,6 +129,34 @@ public class SongListPageFragment extends Fragment { }); } + private void initButtons() { + songListPageViewModel.getSongList().observe(requireActivity(), songs -> { + if(bind != null) { + bind.songListPlayImageView.setOnClickListener(v -> { + QueueRepository queueRepository = new QueueRepository(App.getInstance()); + queueRepository.insertAllAndStartNew(songs); + + activity.isBottomSheetInPeek(true); + activity.setBottomSheetMusicInfo(songs.get(0)); + + MusicPlayerRemote.openQueue(songs, 0, true); + }); + + bind.songListShuffleImageView.setOnClickListener(v -> { + Collections.shuffle(songs); + + QueueRepository queueRepository = new QueueRepository(App.getInstance()); + queueRepository.insertAllAndStartNew(songs); + + activity.isBottomSheetInPeek(true); + activity.setBottomSheetMusicInfo(songs.get(0)); + + MusicPlayerRemote.openQueue(songs, 0, true); + }); + } + }); + } + private void initSongListView() { bind.songListRecyclerView.setLayoutManager(new LinearLayoutManager(requireContext())); bind.songListRecyclerView.setHasFixedSize(true); diff --git a/app/src/main/res/layout/fragment_song_list_page.xml b/app/src/main/res/layout/fragment_song_list_page.xml index 011a07fa..83005be8 100644 --- a/app/src/main/res/layout/fragment_song_list_page.xml +++ b/app/src/main/res/layout/fragment_song_list_page.xml @@ -33,7 +33,7 @@ + + + app:layout_constraintBottom_toBottomOf="parent" /> + +