Clean ups
This commit is contained in:
parent
65c879d64e
commit
3bc0059989
22 changed files with 197 additions and 83 deletions
|
|
@ -22,10 +22,12 @@ import com.kabouzeid.gramophone.interfaces.CabHolder;
|
|||
import com.kabouzeid.gramophone.loader.PlaylistLoader;
|
||||
import com.kabouzeid.gramophone.loader.PlaylistSongLoader;
|
||||
import com.kabouzeid.gramophone.model.DataBaseChangedEvent;
|
||||
import com.kabouzeid.gramophone.model.LastAddedPlaylist;
|
||||
import com.kabouzeid.gramophone.model.Playlist;
|
||||
import com.kabouzeid.gramophone.model.SmartPlaylist;
|
||||
import com.kabouzeid.gramophone.model.Song;
|
||||
import com.kabouzeid.gramophone.model.smartplaylist.LastAddedPlaylist;
|
||||
import com.kabouzeid.gramophone.model.smartplaylist.MyTopTracksPlaylist;
|
||||
import com.kabouzeid.gramophone.model.smartplaylist.RecentlyPlayedPlaylist;
|
||||
import com.kabouzeid.gramophone.model.smartplaylist.SmartPlaylist;
|
||||
import com.kabouzeid.gramophone.ui.activities.base.AbsFabActivity;
|
||||
import com.kabouzeid.gramophone.util.NavigationUtil;
|
||||
import com.squareup.otto.Subscribe;
|
||||
|
|
@ -58,6 +60,8 @@ public class PlaylistAdapter extends AbsMultiSelectAdapter<PlaylistAdapter.ViewH
|
|||
public void loadDataSet() {
|
||||
dataSet = new ArrayList<>();
|
||||
dataSet.add(new LastAddedPlaylist(activity));
|
||||
dataSet.add(new RecentlyPlayedPlaylist(activity));
|
||||
dataSet.add(new MyTopTracksPlaylist(activity));
|
||||
dataSet.addAll(PlaylistLoader.getAllPlaylists(activity));
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -136,13 +136,9 @@ public abstract class AbsPlaylistSongAdapter<S extends Song> extends AbsMultiSel
|
|||
return MenuItemClickHelper.handleSongMenuClick(activity, dataSet.get(adapterPosition), item);
|
||||
}
|
||||
|
||||
protected void onDeleteFromPlaylist(S song) {
|
||||
protected abstract void onDeleteFromPlaylist(S song);
|
||||
|
||||
}
|
||||
|
||||
protected void onDeleteFromPlaylist(ArrayList<S> songs) {
|
||||
|
||||
}
|
||||
protected abstract void onDeleteFromPlaylist(ArrayList<S> songs);
|
||||
|
||||
protected void onAddToPlaylist(ArrayList<S> songs) {
|
||||
//noinspection unchecked
|
||||
|
|
|
|||
|
|
@ -20,13 +20,11 @@ public class PlaylistSongAdapter extends AbsPlaylistSongAdapter<PlaylistSong> {
|
|||
|
||||
@Override
|
||||
protected void onDeleteFromPlaylist(ArrayList<PlaylistSong> songs) {
|
||||
super.onDeleteFromPlaylist(songs);
|
||||
RemoveFromPlaylistDialog.create(songs).show(activity.getSupportFragmentManager(), "ADD_PLAYLIST");
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onDeleteFromPlaylist(PlaylistSong song) {
|
||||
super.onDeleteFromPlaylist(song);
|
||||
RemoveFromPlaylistDialog.create(song).show(activity.getSupportFragmentManager(), "ADD_PLAYLIST");
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,41 @@
|
|||
package com.kabouzeid.gramophone.adapter.songadapter.smartplaylist;
|
||||
|
||||
import android.support.annotation.Nullable;
|
||||
import android.support.v7.app.AppCompatActivity;
|
||||
|
||||
import com.kabouzeid.gramophone.R;
|
||||
import com.kabouzeid.gramophone.interfaces.CabHolder;
|
||||
import com.kabouzeid.gramophone.model.Song;
|
||||
import com.kabouzeid.gramophone.model.smartplaylist.SmartPlaylist;
|
||||
|
||||
import java.util.ArrayList;
|
||||
|
||||
/**
|
||||
* @author Karim Abou Zeid (kabouzeid)
|
||||
*/
|
||||
public class CannotDeleteSingleSongsSongAdapter extends SmartPlaylistSongAdapter {
|
||||
|
||||
public CannotDeleteSingleSongsSongAdapter(AppCompatActivity activity, SmartPlaylist smartPlaylist, @Nullable CabHolder cabHolder) {
|
||||
super(activity, smartPlaylist, cabHolder);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected int getMultiSelectMenuRes() {
|
||||
return R.menu.menu_cannot_delete_single_songs_playlist_songs_selection;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected int getSongMenuRes() {
|
||||
return R.menu.menu_item_cannot_delete_single_songs_playlist_song;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onDeleteFromPlaylist(Song song) {
|
||||
// you cannot delete single songs from this playlist
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onDeleteFromPlaylist(ArrayList<Song> songs) {
|
||||
// you cannot delete single songs from this playlist
|
||||
}
|
||||
}
|
||||
|
|
@ -1,28 +0,0 @@
|
|||
package com.kabouzeid.gramophone.adapter.songadapter.smartplaylist;
|
||||
|
||||
import android.support.annotation.Nullable;
|
||||
import android.support.v7.app.AppCompatActivity;
|
||||
|
||||
import com.kabouzeid.gramophone.R;
|
||||
import com.kabouzeid.gramophone.interfaces.CabHolder;
|
||||
import com.kabouzeid.gramophone.model.LastAddedPlaylist;
|
||||
|
||||
/**
|
||||
* @author Karim Abou Zeid (kabouzeid)
|
||||
*/
|
||||
public class LastAddedSongAdapter extends SmartPlaylistSongAdapter {
|
||||
|
||||
public LastAddedSongAdapter(AppCompatActivity activity, @Nullable CabHolder cabHolder) {
|
||||
super(activity, new LastAddedPlaylist(activity), cabHolder);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected int getMultiSelectMenuRes() {
|
||||
return R.menu.menu_last_added_playlist_songs_selection;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected int getSongMenuRes() {
|
||||
return R.menu.menu_item_last_added_playlist_song;
|
||||
}
|
||||
}
|
||||
|
|
@ -5,8 +5,8 @@ import android.support.v7.app.AppCompatActivity;
|
|||
|
||||
import com.kabouzeid.gramophone.adapter.songadapter.AbsPlaylistSongAdapter;
|
||||
import com.kabouzeid.gramophone.interfaces.CabHolder;
|
||||
import com.kabouzeid.gramophone.model.SmartPlaylist;
|
||||
import com.kabouzeid.gramophone.model.Song;
|
||||
import com.kabouzeid.gramophone.model.smartplaylist.SmartPlaylist;
|
||||
|
||||
/**
|
||||
* @author Karim Abou Zeid (kabouzeid)
|
||||
|
|
|
|||
|
|
@ -17,8 +17,8 @@ import com.kabouzeid.gramophone.loader.PlaylistSongLoader;
|
|||
import com.kabouzeid.gramophone.loader.SongFilePathLoader;
|
||||
import com.kabouzeid.gramophone.misc.AppKeys;
|
||||
import com.kabouzeid.gramophone.model.Playlist;
|
||||
import com.kabouzeid.gramophone.model.SmartPlaylist;
|
||||
import com.kabouzeid.gramophone.model.Song;
|
||||
import com.kabouzeid.gramophone.model.smartplaylist.SmartPlaylist;
|
||||
import com.kabouzeid.gramophone.ui.activities.base.AbsFabActivity;
|
||||
import com.kabouzeid.gramophone.ui.activities.tageditor.SongTagEditorActivity;
|
||||
import com.kabouzeid.gramophone.util.MusicUtil;
|
||||
|
|
|
|||
|
|
@ -1,23 +0,0 @@
|
|||
package com.kabouzeid.gramophone.model;
|
||||
|
||||
import android.content.Context;
|
||||
|
||||
import com.kabouzeid.gramophone.R;
|
||||
import com.kabouzeid.gramophone.loader.LastAddedLoader;
|
||||
|
||||
import java.util.ArrayList;
|
||||
|
||||
/**
|
||||
* @author Karim Abou Zeid (kabouzeid)
|
||||
*/
|
||||
public class LastAddedPlaylist extends SmartPlaylist {
|
||||
|
||||
public LastAddedPlaylist(Context context) {
|
||||
super(context.getString(R.string.last_added), R.drawable.ic_queue_white_24dp);
|
||||
}
|
||||
|
||||
@Override
|
||||
public ArrayList<Song> getSongs(Context context) {
|
||||
return LastAddedLoader.getLastAddedSongs(context);
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,39 @@
|
|||
package com.kabouzeid.gramophone.model.smartplaylist;
|
||||
|
||||
import android.content.Context;
|
||||
import android.support.annotation.Nullable;
|
||||
import android.support.v7.app.AppCompatActivity;
|
||||
|
||||
import com.kabouzeid.gramophone.R;
|
||||
import com.kabouzeid.gramophone.adapter.songadapter.smartplaylist.CannotDeleteSingleSongsSongAdapter;
|
||||
import com.kabouzeid.gramophone.adapter.songadapter.smartplaylist.SmartPlaylistSongAdapter;
|
||||
import com.kabouzeid.gramophone.interfaces.CabHolder;
|
||||
import com.kabouzeid.gramophone.loader.LastAddedLoader;
|
||||
import com.kabouzeid.gramophone.model.Song;
|
||||
|
||||
import java.util.ArrayList;
|
||||
|
||||
/**
|
||||
* @author Karim Abou Zeid (kabouzeid)
|
||||
*/
|
||||
public class LastAddedPlaylist extends SmartPlaylist {
|
||||
|
||||
public LastAddedPlaylist(Context context) {
|
||||
super(context.getString(R.string.last_added), R.drawable.ic_queue_white_24dp);
|
||||
}
|
||||
|
||||
@Override
|
||||
public ArrayList<Song> getSongs(Context context) {
|
||||
return LastAddedLoader.getLastAddedSongs(context);
|
||||
}
|
||||
|
||||
@Override
|
||||
public SmartPlaylistSongAdapter createAdapter(AppCompatActivity activity, @Nullable CabHolder cabHolder) {
|
||||
return new CannotDeleteSingleSongsSongAdapter(activity, this, cabHolder);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void clear(Context context) {
|
||||
// TODO
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,40 @@
|
|||
package com.kabouzeid.gramophone.model.smartplaylist;
|
||||
|
||||
import android.content.Context;
|
||||
import android.support.annotation.Nullable;
|
||||
import android.support.v7.app.AppCompatActivity;
|
||||
|
||||
import com.kabouzeid.gramophone.R;
|
||||
import com.kabouzeid.gramophone.adapter.songadapter.smartplaylist.CannotDeleteSingleSongsSongAdapter;
|
||||
import com.kabouzeid.gramophone.adapter.songadapter.smartplaylist.SmartPlaylistSongAdapter;
|
||||
import com.kabouzeid.gramophone.interfaces.CabHolder;
|
||||
import com.kabouzeid.gramophone.loader.LastAddedLoader;
|
||||
import com.kabouzeid.gramophone.model.Song;
|
||||
|
||||
import java.util.ArrayList;
|
||||
|
||||
/**
|
||||
* @author Karim Abou Zeid (kabouzeid)
|
||||
*/
|
||||
public class MyTopTracksPlaylist extends SmartPlaylist {
|
||||
|
||||
public MyTopTracksPlaylist(Context context) {
|
||||
super(context.getString(R.string.my_top_tracks), R.drawable.ic_trending_up_white_24dp);
|
||||
}
|
||||
|
||||
@Override
|
||||
public ArrayList<Song> getSongs(Context context) {
|
||||
// TODO replace with getSongs() for top tracks. This is just a place holder
|
||||
return LastAddedLoader.getLastAddedSongs(context);
|
||||
}
|
||||
|
||||
@Override
|
||||
public SmartPlaylistSongAdapter createAdapter(AppCompatActivity activity, @Nullable CabHolder cabHolder) {
|
||||
return new CannotDeleteSingleSongsSongAdapter(activity, this, cabHolder);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void clear(Context context) {
|
||||
// TODO
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,40 @@
|
|||
package com.kabouzeid.gramophone.model.smartplaylist;
|
||||
|
||||
import android.content.Context;
|
||||
import android.support.annotation.Nullable;
|
||||
import android.support.v7.app.AppCompatActivity;
|
||||
|
||||
import com.kabouzeid.gramophone.R;
|
||||
import com.kabouzeid.gramophone.adapter.songadapter.smartplaylist.CannotDeleteSingleSongsSongAdapter;
|
||||
import com.kabouzeid.gramophone.adapter.songadapter.smartplaylist.SmartPlaylistSongAdapter;
|
||||
import com.kabouzeid.gramophone.interfaces.CabHolder;
|
||||
import com.kabouzeid.gramophone.loader.LastAddedLoader;
|
||||
import com.kabouzeid.gramophone.model.Song;
|
||||
|
||||
import java.util.ArrayList;
|
||||
|
||||
/**
|
||||
* @author Karim Abou Zeid (kabouzeid)
|
||||
*/
|
||||
public class RecentlyPlayedPlaylist extends SmartPlaylist {
|
||||
|
||||
public RecentlyPlayedPlaylist(Context context) {
|
||||
super(context.getString(R.string.recently_played), R.drawable.ic_access_time_white_24dp);
|
||||
}
|
||||
|
||||
@Override
|
||||
public ArrayList<Song> getSongs(Context context) {
|
||||
// TODO replace with getSongs() for recently played. This is just a place holder
|
||||
return LastAddedLoader.getLastAddedSongs(context);
|
||||
}
|
||||
|
||||
@Override
|
||||
public SmartPlaylistSongAdapter createAdapter(AppCompatActivity activity, @Nullable CabHolder cabHolder) {
|
||||
return new CannotDeleteSingleSongsSongAdapter(activity, this, cabHolder);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void clear(Context context) {
|
||||
// TODO
|
||||
}
|
||||
}
|
||||
|
|
@ -1,9 +1,15 @@
|
|||
package com.kabouzeid.gramophone.model;
|
||||
package com.kabouzeid.gramophone.model.smartplaylist;
|
||||
|
||||
import android.content.Context;
|
||||
import android.support.annotation.DrawableRes;
|
||||
import android.support.annotation.Nullable;
|
||||
import android.support.v7.app.AppCompatActivity;
|
||||
|
||||
import com.kabouzeid.gramophone.R;
|
||||
import com.kabouzeid.gramophone.adapter.songadapter.smartplaylist.SmartPlaylistSongAdapter;
|
||||
import com.kabouzeid.gramophone.interfaces.CabHolder;
|
||||
import com.kabouzeid.gramophone.model.Playlist;
|
||||
import com.kabouzeid.gramophone.model.Song;
|
||||
|
||||
import java.util.ArrayList;
|
||||
|
||||
|
|
@ -28,6 +34,10 @@ public abstract class SmartPlaylist extends Playlist {
|
|||
|
||||
public abstract ArrayList<Song> getSongs(Context context);
|
||||
|
||||
public abstract SmartPlaylistSongAdapter createAdapter(AppCompatActivity activity, @Nullable CabHolder cabHolder);
|
||||
|
||||
public abstract void clear(Context context);
|
||||
|
||||
@Override
|
||||
public int hashCode() {
|
||||
final int prime = 31;
|
||||
|
|
@ -12,11 +12,10 @@ import android.widget.TextView;
|
|||
import com.afollestad.materialcab.MaterialCab;
|
||||
import com.kabouzeid.gramophone.App;
|
||||
import com.kabouzeid.gramophone.R;
|
||||
import com.kabouzeid.gramophone.adapter.songadapter.smartplaylist.LastAddedSongAdapter;
|
||||
import com.kabouzeid.gramophone.adapter.songadapter.smartplaylist.SmartPlaylistSongAdapter;
|
||||
import com.kabouzeid.gramophone.interfaces.CabHolder;
|
||||
import com.kabouzeid.gramophone.model.DataBaseChangedEvent;
|
||||
import com.kabouzeid.gramophone.model.SmartPlaylist;
|
||||
import com.kabouzeid.gramophone.model.smartplaylist.SmartPlaylist;
|
||||
import com.kabouzeid.gramophone.ui.activities.base.AbsFabActivity;
|
||||
import com.kabouzeid.gramophone.util.NavigationUtil;
|
||||
import com.kabouzeid.gramophone.util.PreferenceUtils;
|
||||
|
|
@ -62,7 +61,7 @@ public class SmartPlaylistDetailActivity extends AbsFabActivity implements CabHo
|
|||
}
|
||||
|
||||
private void setUpRecyclerView() {
|
||||
adapter = new LastAddedSongAdapter(this, this);
|
||||
adapter = playlist.createAdapter(this, this);
|
||||
|
||||
recyclerView.setLayoutManager(new GridLayoutManager(this, 1));
|
||||
recyclerView.setAdapter(adapter);
|
||||
|
|
@ -115,7 +114,7 @@ public class SmartPlaylistDetailActivity extends AbsFabActivity implements CabHo
|
|||
NavigationUtil.openPlayingQueueDialog(this);
|
||||
return true;
|
||||
case R.id.action_clear_playlist:
|
||||
//TODO
|
||||
playlist.clear(this);
|
||||
return true;
|
||||
}
|
||||
return super.onOptionsItemSelected(item);
|
||||
|
|
|
|||
|
|
@ -16,7 +16,7 @@ import com.kabouzeid.gramophone.helper.MusicPlayerRemote;
|
|||
import com.kabouzeid.gramophone.interfaces.KabViewsDisableAble;
|
||||
import com.kabouzeid.gramophone.misc.AppKeys;
|
||||
import com.kabouzeid.gramophone.model.Playlist;
|
||||
import com.kabouzeid.gramophone.model.SmartPlaylist;
|
||||
import com.kabouzeid.gramophone.model.smartplaylist.SmartPlaylist;
|
||||
import com.kabouzeid.gramophone.ui.activities.AlbumDetailActivity;
|
||||
import com.kabouzeid.gramophone.ui.activities.ArtistDetailActivity;
|
||||
import com.kabouzeid.gramophone.ui.activities.MusicControllerActivity;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue