Add settings to pin and unpin playlist in toolbar menu

This commit is contained in:
CappielloAntonio 2021-11-25 22:48:21 +01:00
parent afe0e0751c
commit e29b96d905
11 changed files with 170 additions and 5 deletions

View file

@ -478,4 +478,8 @@ public class HomeFragment extends Fragment {
bind.homeLinearLayoutContainer.addView(bind.homeRecentlyPlayedAlbumsSector);
}
}
public void addPinnedPlaylistsView() {
}
}

View file

@ -20,7 +20,6 @@ import com.cappielloantonio.play.R;
import com.cappielloantonio.play.adapter.SongHorizontalAdapter;
import com.cappielloantonio.play.databinding.FragmentPlaylistPageBinding;
import com.cappielloantonio.play.glide.CustomGlideRequest;
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;
@ -29,7 +28,6 @@ import com.cappielloantonio.play.util.MusicUtil;
import com.cappielloantonio.play.viewmodel.PlaylistPageViewModel;
import java.util.Collections;
import java.util.List;
import java.util.Objects;
public class PlaylistPageFragment extends Fragment {
@ -50,6 +48,7 @@ public class PlaylistPageFragment extends Fragment {
public void onCreateOptionsMenu(@NonNull Menu menu, @NonNull MenuInflater inflater) {
super.onCreateOptionsMenu(menu, inflater);
inflater.inflate(R.menu.playlist_page_menu, menu);
initMenuOption(menu);
}
@Override
@ -90,6 +89,12 @@ public class PlaylistPageFragment extends Fragment {
}
});
return true;
} else if (item.getItemId() == R.id.action_pin_playlist) {
playlistPageViewModel.setPinned(true);
return true;
} else if (item.getItemId() == R.id.action_unpin_playlist) {
playlistPageViewModel.setPinned(false);
return true;
}
return false;
@ -100,6 +105,13 @@ public class PlaylistPageFragment extends Fragment {
playlistPageViewModel.setOffline(requireArguments().getBoolean("is_offline"));
}
private void initMenuOption(Menu menu) {
playlistPageViewModel.isPinned(requireActivity()).observe(requireActivity(), isPinned -> {
menu.findItem(R.id.action_unpin_playlist).setVisible(isPinned);
menu.findItem(R.id.action_pin_playlist).setVisible(!isPinned);
});
}
private void initAppBar() {
activity.setSupportActionBar(bind.animToolbar);