mirror of
https://github.com/antebudimir/tempus.git
synced 2025-12-31 17:43:32 +00:00
Fixed the behavior of the viewpager in the player and (name) refactor
This commit is contained in:
parent
2f5e81fdef
commit
b60c5448b2
14 changed files with 82 additions and 38 deletions
|
|
@ -102,7 +102,7 @@ public class DiscoverSongAdapter extends RecyclerView.Adapter<DiscoverSongAdapte
|
|||
QueueRepository queueRepository = new QueueRepository(App.getInstance());
|
||||
queueRepository.insertAllAndStartNew(opener);
|
||||
|
||||
activity.isBottomSheetInPeek(true);
|
||||
activity.setBottomSheetInPeek(true);
|
||||
activity.setBottomSheetMusicInfo(songs.get(getBindingAdapterPosition()));
|
||||
|
||||
SongRepository songRepository = new SongRepository(App.getInstance());
|
||||
|
|
|
|||
|
|
@ -97,7 +97,7 @@ public class SimilarTrackAdapter extends RecyclerView.Adapter<SimilarTrackAdapte
|
|||
QueueRepository queueRepository = new QueueRepository(App.getInstance());
|
||||
queueRepository.insertAllAndStartNew(opener);
|
||||
|
||||
mainActivity.isBottomSheetInPeek(true);
|
||||
mainActivity.setBottomSheetInPeek(true);
|
||||
mainActivity.setBottomSheetMusicInfo(songs.get(getBindingAdapterPosition()));
|
||||
|
||||
SongRepository songRepository = new SongRepository(App.getInstance());
|
||||
|
|
|
|||
|
|
@ -124,7 +124,7 @@ public class SongHorizontalAdapter extends RecyclerView.Adapter<SongHorizontalAd
|
|||
QueueRepository queueRepository = new QueueRepository(App.getInstance());
|
||||
queueRepository.insertAllAndStartNew(songs);
|
||||
|
||||
mainActivity.isBottomSheetInPeek(true);
|
||||
mainActivity.setBottomSheetInPeek(true);
|
||||
mainActivity.setBottomSheetMusicInfo(songs.get(getBindingAdapterPosition()));
|
||||
|
||||
MusicPlayerRemote.openQueue(songs, getBindingAdapterPosition(), true);
|
||||
|
|
|
|||
|
|
@ -96,7 +96,7 @@ public class TrackAdapter extends RecyclerView.Adapter<TrackAdapter.ViewHolder>
|
|||
QueueRepository queueRepository = new QueueRepository(App.getInstance());
|
||||
queueRepository.insertAllAndStartNew(songs);
|
||||
|
||||
mainActivity.isBottomSheetInPeek(true);
|
||||
mainActivity.setBottomSheetInPeek(true);
|
||||
mainActivity.setBottomSheetMusicInfo(songs.get(getBindingAdapterPosition()));
|
||||
|
||||
MusicPlayerRemote.openQueue(songs, getBindingAdapterPosition(), true);
|
||||
|
|
|
|||
|
|
@ -12,6 +12,7 @@ import androidx.lifecycle.ViewModelProvider;
|
|||
import androidx.navigation.NavController;
|
||||
import androidx.navigation.fragment.NavHostFragment;
|
||||
import androidx.navigation.ui.NavigationUI;
|
||||
import androidx.viewpager2.widget.ViewPager2;
|
||||
|
||||
import com.cappielloantonio.play.App;
|
||||
import com.cappielloantonio.play.R;
|
||||
|
|
@ -97,10 +98,10 @@ public class MainActivity extends BaseActivity {
|
|||
/*
|
||||
* All'apertura mostro il bottom sheet solo se in coda c'è qualcosa
|
||||
*/
|
||||
isBottomSheetInPeek(mainViewModel.isQueueLoaded());
|
||||
setBottomSheetInPeek(mainViewModel.isQueueLoaded());
|
||||
}
|
||||
|
||||
public void isBottomSheetInPeek(Boolean isVisible) {
|
||||
public void setBottomSheetInPeek(Boolean isVisible) {
|
||||
if (isVisible) {
|
||||
bottomSheetBehavior.setState(BottomSheetBehavior.STATE_COLLAPSED);
|
||||
} else {
|
||||
|
|
@ -108,6 +109,10 @@ public class MainActivity extends BaseActivity {
|
|||
}
|
||||
}
|
||||
|
||||
public void setBottomSheetDraggableState(Boolean isDraggable) {
|
||||
bottomSheetBehavior.setDraggable(isDraggable);
|
||||
}
|
||||
|
||||
private void initNavigation() {
|
||||
bottomNavigationView = findViewById(R.id.bottom_navigation);
|
||||
navHostFragment = (NavHostFragment) fragmentManager.findFragmentById(R.id.nav_host_fragment);
|
||||
|
|
@ -150,20 +155,26 @@ public class MainActivity extends BaseActivity {
|
|||
new BottomSheetBehavior.BottomSheetCallback() {
|
||||
@Override
|
||||
public void onStateChanged(@NonNull View view, int state) {
|
||||
PlayerBottomSheetFragment playerBottomSheetFragment = (PlayerBottomSheetFragment) getSupportFragmentManager().findFragmentByTag("PlayerBottomSheet");
|
||||
|
||||
switch (state) {
|
||||
case BottomSheetBehavior.STATE_HIDDEN:
|
||||
MusicPlayerRemote.quitPlaying();
|
||||
break;
|
||||
case BottomSheetBehavior.STATE_COLLAPSED:
|
||||
if (playerBottomSheetFragment != null) {
|
||||
playerBottomSheetFragment.goBackToFirstPage();
|
||||
}
|
||||
case BottomSheetBehavior.STATE_SETTLING:
|
||||
PlayerBottomSheetFragment playerBottomSheetFragment = (PlayerBottomSheetFragment) getSupportFragmentManager().findFragmentByTag("PlayerBottomSheet");
|
||||
if (playerBottomSheetFragment != null) {
|
||||
playerBottomSheetFragment.scrollOnTop();
|
||||
// playerBottomSheetFragment.setPlayerCommandViewVisibility(false);
|
||||
}
|
||||
break;
|
||||
case BottomSheetBehavior.STATE_DRAGGING:
|
||||
case BottomSheetBehavior.STATE_EXPANDED:
|
||||
if (playerBottomSheetFragment != null) {
|
||||
setBottomSheetDraggableState(playerBottomSheetFragment.isViewPagerInFirstPage());
|
||||
}
|
||||
case BottomSheetBehavior.STATE_DRAGGING:
|
||||
case BottomSheetBehavior.STATE_HALF_EXPANDED:
|
||||
break;
|
||||
}
|
||||
|
|
@ -219,7 +230,7 @@ public class MainActivity extends BaseActivity {
|
|||
}
|
||||
|
||||
public void goFromLogin() {
|
||||
isBottomSheetInPeek(mainViewModel.isQueueLoaded());
|
||||
setBottomSheetInPeek(mainViewModel.isQueueLoaded());
|
||||
goToHome();
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -138,7 +138,7 @@ public class AlbumPageFragment extends Fragment {
|
|||
QueueRepository queueRepository = new QueueRepository(App.getInstance());
|
||||
queueRepository.insertAllAndStartNew(songs);
|
||||
|
||||
activity.isBottomSheetInPeek(true);
|
||||
activity.setBottomSheetInPeek(true);
|
||||
activity.setBottomSheetMusicInfo(songs.get(0));
|
||||
|
||||
MusicPlayerRemote.openQueue(songs, 0, true);
|
||||
|
|
@ -150,7 +150,7 @@ public class AlbumPageFragment extends Fragment {
|
|||
QueueRepository queueRepository = new QueueRepository(App.getInstance());
|
||||
queueRepository.insertAllAndStartNew(songs);
|
||||
|
||||
activity.isBottomSheetInPeek(true);
|
||||
activity.setBottomSheetInPeek(true);
|
||||
activity.setBottomSheetMusicInfo(songs.get(0));
|
||||
|
||||
MusicPlayerRemote.openQueue(songs, 0, true);
|
||||
|
|
|
|||
|
|
@ -149,7 +149,7 @@ public class ArtistPageFragment extends Fragment {
|
|||
queueRepository.insertAllAndStartNew(songs);
|
||||
|
||||
MusicPlayerRemote.openQueue(songs, 0, true);
|
||||
activity.isBottomSheetInPeek(true);
|
||||
activity.setBottomSheetInPeek(true);
|
||||
} else {
|
||||
Toast.makeText(requireContext(), getString(R.string.artist_error_retrieving_tracks), Toast.LENGTH_SHORT).show();
|
||||
}
|
||||
|
|
@ -170,7 +170,7 @@ public class ArtistPageFragment extends Fragment {
|
|||
QueueRepository queueRepository = new QueueRepository(App.getInstance());
|
||||
queueRepository.insertAllAndStartNew((ArrayList<Song>) media);
|
||||
|
||||
activity.isBottomSheetInPeek(true);
|
||||
activity.setBottomSheetInPeek(true);
|
||||
activity.setBottomSheetMusicInfo((Song) media.get(0));
|
||||
|
||||
MusicPlayerRemote.openQueue((List<Song>) media, 0, true);
|
||||
|
|
|
|||
|
|
@ -126,6 +126,19 @@ public class PlayerBottomSheetFragment extends Fragment implements MusicServiceE
|
|||
private void initCoverLyricsSlideView() {
|
||||
bodyBind.playerSongCoverViewPager.setOrientation(ViewPager2.ORIENTATION_HORIZONTAL);
|
||||
bodyBind.playerSongCoverViewPager.setAdapter(new PlayerNowPlayingSongAdapter(this));
|
||||
|
||||
bodyBind.playerSongCoverViewPager.registerOnPageChangeCallback(new ViewPager2.OnPageChangeCallback() {
|
||||
@Override
|
||||
public void onPageSelected(int position) {
|
||||
super.onPageSelected(position);
|
||||
|
||||
if (position == 0) {
|
||||
activity.setBottomSheetDraggableState(true);
|
||||
} else if (position == 1) {
|
||||
activity.setBottomSheetDraggableState(false);
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
private void initQueueRecyclerView() {
|
||||
|
|
@ -213,7 +226,13 @@ public class PlayerBottomSheetFragment extends Fragment implements MusicServiceE
|
|||
}
|
||||
|
||||
private void initMusicCommandUnfoldButton() {
|
||||
bodyBind.playerCommandUnfoldButton.setOnClickListener(view -> setPlayerCommandViewVisibility(bodyBind.playerCommandCardview.getVisibility() == View.INVISIBLE || bodyBind.playerCommandCardview.getVisibility() == View.GONE));
|
||||
bodyBind.playerCommandUnfoldButton.setOnClickListener(view -> {
|
||||
if (bodyBind.playerCommandCardview.getVisibility() == View.INVISIBLE || bodyBind.playerCommandCardview.getVisibility() == View.GONE) {
|
||||
bodyBind.playerCommandCardview.setVisibility(View.VISIBLE);
|
||||
} else {
|
||||
bodyBind.playerCommandCardview.setVisibility(View.GONE);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
private void initMusicCommandButton() {
|
||||
|
|
@ -290,14 +309,6 @@ public class PlayerBottomSheetFragment extends Fragment implements MusicServiceE
|
|||
bodyBind.buttonFavorite.setChecked(song.isFavorite());
|
||||
}
|
||||
|
||||
public void setPlayerCommandViewVisibility(boolean isVisible) {
|
||||
if (isVisible) {
|
||||
bodyBind.playerCommandCardview.setVisibility(View.VISIBLE);
|
||||
} else {
|
||||
bodyBind.playerCommandCardview.setVisibility(View.GONE);
|
||||
}
|
||||
}
|
||||
|
||||
protected void updatePlayPauseState() {
|
||||
headerBind.playerHeaderButton.setChecked(!MusicPlayerRemote.isPlaying());
|
||||
bodyBind.playerBigPlayPauseButton.setChecked(!MusicPlayerRemote.isPlaying());
|
||||
|
|
@ -315,6 +326,14 @@ public class PlayerBottomSheetFragment extends Fragment implements MusicServiceE
|
|||
bind.playerNestedScrollView.fullScroll(ScrollView.FOCUS_UP);
|
||||
}
|
||||
|
||||
public void goBackToFirstPage() {
|
||||
bodyBind.playerSongCoverViewPager.setCurrentItem(0);
|
||||
}
|
||||
|
||||
public boolean isViewPagerInFirstPage() {
|
||||
return bodyBind.playerSongCoverViewPager.getCurrentItem() == 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onServiceConnected() {
|
||||
setSongInfo(Objects.requireNonNull(MusicPlayerRemote.getCurrentSong()));
|
||||
|
|
|
|||
|
|
@ -143,7 +143,7 @@ public class PlaylistPageFragment extends Fragment {
|
|||
QueueRepository queueRepository = new QueueRepository(App.getInstance());
|
||||
queueRepository.insertAllAndStartNew(songs);
|
||||
|
||||
activity.isBottomSheetInPeek(true);
|
||||
activity.setBottomSheetInPeek(true);
|
||||
activity.setBottomSheetMusicInfo(songs.get(0));
|
||||
|
||||
MusicPlayerRemote.openQueue(songs, 0, true);
|
||||
|
|
@ -155,7 +155,7 @@ public class PlaylistPageFragment extends Fragment {
|
|||
QueueRepository queueRepository = new QueueRepository(App.getInstance());
|
||||
queueRepository.insertAllAndStartNew(songs);
|
||||
|
||||
activity.isBottomSheetInPeek(true);
|
||||
activity.setBottomSheetInPeek(true);
|
||||
activity.setBottomSheetMusicInfo(songs.get(0));
|
||||
|
||||
MusicPlayerRemote.openQueue(songs, 0, true);
|
||||
|
|
|
|||
|
|
@ -138,7 +138,7 @@ public class SongListPageFragment extends Fragment {
|
|||
QueueRepository queueRepository = new QueueRepository(App.getInstance());
|
||||
queueRepository.insertAllAndStartNew(songs);
|
||||
|
||||
activity.isBottomSheetInPeek(true);
|
||||
activity.setBottomSheetInPeek(true);
|
||||
activity.setBottomSheetMusicInfo(songs.get(0));
|
||||
|
||||
MusicPlayerRemote.openQueue(songs, 0, true);
|
||||
|
|
|
|||
|
|
@ -94,7 +94,7 @@ public class AlbumBottomSheetDialog extends BottomSheetDialogFragment implements
|
|||
QueueRepository queueRepository = new QueueRepository(App.getInstance());
|
||||
queueRepository.insertAllAndStartNew((ArrayList<Song>) media);
|
||||
|
||||
((MainActivity) requireActivity()).isBottomSheetInPeek(true);
|
||||
((MainActivity) requireActivity()).setBottomSheetInPeek(true);
|
||||
((MainActivity) requireActivity()).setBottomSheetMusicInfo((Song) media.get(0));
|
||||
|
||||
MusicPlayerRemote.openQueue((List<Song>) media, 0, true);
|
||||
|
|
@ -117,7 +117,7 @@ public class AlbumBottomSheetDialog extends BottomSheetDialogFragment implements
|
|||
queueRepository.insertAllAndStartNew(songs);
|
||||
|
||||
MusicPlayerRemote.openQueue(songs, 0, true);
|
||||
((MainActivity) requireActivity()).isBottomSheetInPeek(true);
|
||||
((MainActivity) requireActivity()).setBottomSheetInPeek(true);
|
||||
|
||||
dismissBottomSheet();
|
||||
});
|
||||
|
|
@ -126,7 +126,7 @@ public class AlbumBottomSheetDialog extends BottomSheetDialogFragment implements
|
|||
TextView playNext = view.findViewById(R.id.play_next_text_view);
|
||||
playNext.setOnClickListener(v -> albumBottomSheetViewModel.getAlbumTracks().observe(requireActivity(), songs -> {
|
||||
MusicPlayerRemote.playNext(songs);
|
||||
((MainActivity) requireActivity()).isBottomSheetInPeek(true);
|
||||
((MainActivity) requireActivity()).setBottomSheetInPeek(true);
|
||||
dismissBottomSheet();
|
||||
}));
|
||||
|
||||
|
|
|
|||
|
|
@ -88,7 +88,7 @@ public class ArtistBottomSheetDialog extends BottomSheetDialogFragment implement
|
|||
QueueRepository queueRepository = new QueueRepository(App.getInstance());
|
||||
queueRepository.insertAllAndStartNew((ArrayList<Song>) media);
|
||||
|
||||
((MainActivity) requireActivity()).isBottomSheetInPeek(true);
|
||||
((MainActivity) requireActivity()).setBottomSheetInPeek(true);
|
||||
((MainActivity) requireActivity()).setBottomSheetMusicInfo((Song) media.get(0));
|
||||
|
||||
MusicPlayerRemote.openQueue((List<Song>) media, 0, true);
|
||||
|
|
@ -110,7 +110,7 @@ public class ArtistBottomSheetDialog extends BottomSheetDialogFragment implement
|
|||
queueRepository.insertAllAndStartNew(songs);
|
||||
|
||||
MusicPlayerRemote.openQueue(songs, 0, true);
|
||||
((MainActivity) requireActivity()).isBottomSheetInPeek(true);
|
||||
((MainActivity) requireActivity()).setBottomSheetInPeek(true);
|
||||
} else {
|
||||
Toast.makeText(requireContext(), getString(R.string.artist_error_retrieving_tracks), Toast.LENGTH_SHORT).show();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -99,7 +99,7 @@ public class SongBottomSheetDialog extends BottomSheetDialogFragment implements
|
|||
QueueRepository queueRepository = new QueueRepository(App.getInstance());
|
||||
queueRepository.insertAllAndStartNew(opener);
|
||||
|
||||
((MainActivity) requireActivity()).isBottomSheetInPeek(true);
|
||||
((MainActivity) requireActivity()).setBottomSheetInPeek(true);
|
||||
((MainActivity) requireActivity()).setBottomSheetMusicInfo(song);
|
||||
|
||||
SongRepository songRepository = new SongRepository(App.getInstance());
|
||||
|
|
@ -121,14 +121,14 @@ public class SongBottomSheetDialog extends BottomSheetDialogFragment implements
|
|||
TextView playNext = view.findViewById(R.id.play_next_text_view);
|
||||
playNext.setOnClickListener(v -> {
|
||||
MusicPlayerRemote.playNext(song);
|
||||
((MainActivity) requireActivity()).isBottomSheetInPeek(true);
|
||||
((MainActivity) requireActivity()).setBottomSheetInPeek(true);
|
||||
dismissBottomSheet();
|
||||
});
|
||||
|
||||
TextView addToQueue = view.findViewById(R.id.add_to_queue_text_view);
|
||||
addToQueue.setOnClickListener(v -> {
|
||||
MusicPlayerRemote.enqueue(song);
|
||||
((MainActivity) requireActivity()).isBottomSheetInPeek(true);
|
||||
((MainActivity) requireActivity()).setBottomSheetInPeek(true);
|
||||
dismissBottomSheet();
|
||||
});
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue