mirror of
https://github.com/antebudimir/tempus.git
synced 2025-12-31 17:43:32 +00:00
Removed cardview overlay where possible
This commit is contained in:
parent
277a07ef92
commit
c190e8777e
21 changed files with 312 additions and 363 deletions
|
|
@ -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);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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();
|
||||
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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() {
|
||||
|
|
|
|||
|
|
@ -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());
|
||||
|
|
|
|||
|
|
@ -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 -> {
|
||||
|
|
|
|||
|
|
@ -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());
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue