Removed cardview overlay where possible

This commit is contained in:
CappielloAntonio 2021-04-16 10:08:31 +02:00
parent 277a07ef92
commit c190e8777e
21 changed files with 312 additions and 363 deletions

View file

@ -91,6 +91,10 @@ public class PlayerSongQueueAdapter extends RecyclerView.Adapter<PlayerSongQueue
notifyDataSetChanged();
}
public List<Song> getItems() {
return this.songs;
}
public Song getItem(int id) {
return songs.get(id);
}

View file

@ -41,6 +41,9 @@ public interface QueueDao {
@Delete
void delete(Queue songQueueObject);
@Query("DELETE FROM queue WHERE queue.rowid = :position")
void deleteByPosition(int position);
@Query("DELETE FROM queue")
void deleteAll();

View file

@ -108,6 +108,12 @@ public class QueueRepository {
thread.start();
}
public void deleteByPosition(int position) {
DeleteByPositionThreadSafe delete = new DeleteByPositionThreadSafe(queueDao, position);
Thread thread = new Thread(delete);
thread.start();
}
public void deleteAll() {
DeleteAllThreadSafe delete = new DeleteAllThreadSafe(queueDao);
Thread thread = new Thread(delete);
@ -189,6 +195,21 @@ public class QueueRepository {
}
}
private static class DeleteByPositionThreadSafe implements Runnable {
private QueueDao queueDao;
private int position;
public DeleteByPositionThreadSafe(QueueDao queueDao,int position) {
this.queueDao = queueDao;
this.position = position;
}
@Override
public void run() {
queueDao.deleteByPosition(position);
}
}
private static class CountThreadSafe implements Runnable {
private QueueDao queueDao;
private int count = 0;

View file

@ -14,7 +14,9 @@ import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.fragment.app.Fragment;
import androidx.lifecycle.ViewModelProvider;
import androidx.recyclerview.widget.ItemTouchHelper;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import androidx.viewpager2.widget.ViewPager2;
import com.cappielloantonio.play.R;
@ -31,6 +33,8 @@ import com.cappielloantonio.play.util.MusicUtil;
import com.cappielloantonio.play.util.PreferenceUtil;
import com.cappielloantonio.play.viewmodel.PlayerBottomSheetViewModel;
import java.util.Collections;
public class PlayerBottomSheetFragment extends Fragment implements MusicServiceEventListener, MusicProgressViewUpdateHelper.Callback {
private static final String TAG = "PlayerBottomSheetFragment";
@ -139,6 +143,34 @@ public class PlayerBottomSheetFragment extends Fragment implements MusicServiceE
playerSongQueueAdapter = new PlayerSongQueueAdapter(requireContext(), this);
bind.playerBodyLayout.playerQueueRecyclerView.setAdapter(playerSongQueueAdapter);
playerBottomSheetViewModel.getQueueSong().observe(requireActivity(), songs -> playerSongQueueAdapter.setItems(songs));
new ItemTouchHelper(new ItemTouchHelper.SimpleCallback(ItemTouchHelper.UP | ItemTouchHelper.DOWN, ItemTouchHelper.LEFT) {
@Override
public boolean onMove(RecyclerView recyclerView, RecyclerView.ViewHolder viewHolder, RecyclerView.ViewHolder target) {
int fromPosition = viewHolder.getBindingAdapterPosition();
int toPosition = target.getBindingAdapterPosition();
Collections.swap(playerSongQueueAdapter.getItems(), fromPosition, toPosition);
bind.playerBodyLayout.playerQueueRecyclerView.getAdapter().notifyItemMoved(fromPosition, toPosition);
// bind.playerBodyLayout.playerSongCoverViewPager.getAdapter().notifyItemMoved(fromPosition, toPosition);
// bind.playerBodyLayout.playerQueueRecyclerView.getAdapter().notifyDataSetChanged();
// bind.playerBodyLayout.playerSongCoverViewPager.getAdapter().notifyDataSetChanged();
// MusicPlayerRemote.moveSong(fromPosition, toPosition);
return false;
}
@Override
public void onSwiped(RecyclerView.ViewHolder viewHolder, int direction) {
Log.i(TAG, "onSwiped: " + viewHolder.getBindingAdapterPosition());
Log.i(TAG, "onSwiped: " + MusicPlayerRemote.getPlayingQueue().get(viewHolder.getBindingAdapterPosition()).getTitle());
playerBottomSheetViewModel.removeSong(viewHolder.getBindingAdapterPosition());
}
}
).attachToRecyclerView(bind.playerBodyLayout.playerQueueRecyclerView);
}
private void initFavoriteButtonClick() {

View file

@ -61,6 +61,7 @@ public class AlbumBottomSheetDialog extends BottomSheetDialogFragment implements
titleAlbum = view.findViewById(R.id.album_title_text_view);
titleAlbum.setText(albumBottomSheetViewModel.getAlbum().getTitle());
titleAlbum.setSelected(true);
artistAlbum = view.findViewById(R.id.album_artist_text_view);
artistAlbum.setText(albumBottomSheetViewModel.getAlbum().getArtistName());

View file

@ -53,6 +53,7 @@ public class ArtistBottomSheetDialog extends BottomSheetDialogFragment implement
nameArtist = view.findViewById(R.id.song_title_text_view);
nameArtist.setText(artistBottomSheetViewModel.getArtist().getName());
nameArtist.setSelected(true);
playRadio = view.findViewById(R.id.play_radio_text_view);
playRadio.setOnClickListener(v -> {

View file

@ -64,6 +64,7 @@ public class SongBottomSheetDialog extends BottomSheetDialogFragment implements
titleSong = view.findViewById(R.id.song_title_text_view);
titleSong.setText(songBottomSheetViewModel.getSong().getTitle());
titleSong.setSelected(true);
artistSong = view.findViewById(R.id.song_artist_text_view);
artistSong.setText(songBottomSheetViewModel.getSong().getArtistName());

View file

@ -49,4 +49,8 @@ public class PlayerBottomSheetViewModel extends AndroidViewModel {
public void setSong(Song song) {
this.song = song;
}
public void removeSong(int position) {
queueRepository.deleteByPosition(position);
}
}