Normalized playlist menus
This commit is contained in:
parent
36d85f3003
commit
abb9518d14
7 changed files with 84 additions and 15 deletions
|
|
@ -3,8 +3,8 @@ package com.kabouzeid.gramophone.helper;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
|
|
||||||
import com.kabouzeid.gramophone.loader.PlaylistSongLoader;
|
import com.kabouzeid.gramophone.loader.PlaylistSongLoader;
|
||||||
|
import com.kabouzeid.gramophone.model.AbsCustomPlaylist;
|
||||||
import com.kabouzeid.gramophone.model.Playlist;
|
import com.kabouzeid.gramophone.model.Playlist;
|
||||||
import com.kabouzeid.gramophone.model.PlaylistSong;
|
|
||||||
import com.kabouzeid.gramophone.model.Song;
|
import com.kabouzeid.gramophone.model.Song;
|
||||||
|
|
||||||
import java.io.BufferedWriter;
|
import java.io.BufferedWriter;
|
||||||
|
|
@ -21,7 +21,12 @@ public class M3UWriter implements M3UConstants {
|
||||||
dir.mkdirs();
|
dir.mkdirs();
|
||||||
File file = new File(dir, playlist.name.concat("." + EXTENSION));
|
File file = new File(dir, playlist.name.concat("." + EXTENSION));
|
||||||
|
|
||||||
ArrayList<PlaylistSong> songs = PlaylistSongLoader.getPlaylistSongList(context, playlist.id);
|
ArrayList<? extends Song> songs;
|
||||||
|
if (playlist instanceof AbsCustomPlaylist) {
|
||||||
|
songs = ((AbsCustomPlaylist) playlist).getSongs(context);
|
||||||
|
} else {
|
||||||
|
songs = PlaylistSongLoader.getPlaylistSongList(context, playlist.id);
|
||||||
|
}
|
||||||
|
|
||||||
if (songs.size() > 0) {
|
if (songs.size() > 0) {
|
||||||
BufferedWriter bw = new BufferedWriter(new FileWriter(file));
|
BufferedWriter bw = new BufferedWriter(new FileWriter(file));
|
||||||
|
|
|
||||||
|
|
@ -10,6 +10,7 @@ import android.view.MenuItem;
|
||||||
import android.widget.Toast;
|
import android.widget.Toast;
|
||||||
|
|
||||||
import com.kabouzeid.gramophone.R;
|
import com.kabouzeid.gramophone.R;
|
||||||
|
import com.kabouzeid.gramophone.dialogs.AddToPlaylistDialog;
|
||||||
import com.kabouzeid.gramophone.dialogs.DeletePlaylistDialog;
|
import com.kabouzeid.gramophone.dialogs.DeletePlaylistDialog;
|
||||||
import com.kabouzeid.gramophone.dialogs.RenamePlaylistDialog;
|
import com.kabouzeid.gramophone.dialogs.RenamePlaylistDialog;
|
||||||
import com.kabouzeid.gramophone.helper.MusicPlayerRemote;
|
import com.kabouzeid.gramophone.helper.MusicPlayerRemote;
|
||||||
|
|
@ -33,9 +34,15 @@ public class PlaylistMenuHelper {
|
||||||
case R.id.action_play:
|
case R.id.action_play:
|
||||||
MusicPlayerRemote.openQueue(new ArrayList<>(getPlaylistSongs(activity, playlist)), 0, true);
|
MusicPlayerRemote.openQueue(new ArrayList<>(getPlaylistSongs(activity, playlist)), 0, true);
|
||||||
return true;
|
return true;
|
||||||
|
case R.id.action_play_next:
|
||||||
|
MusicPlayerRemote.playNext(new ArrayList<>(getPlaylistSongs(activity, playlist)));
|
||||||
|
return true;
|
||||||
case R.id.action_add_to_current_playing:
|
case R.id.action_add_to_current_playing:
|
||||||
MusicPlayerRemote.enqueue(new ArrayList<>(getPlaylistSongs(activity, playlist)));
|
MusicPlayerRemote.enqueue(new ArrayList<>(getPlaylistSongs(activity, playlist)));
|
||||||
return true;
|
return true;
|
||||||
|
case R.id.action_add_to_playlist:
|
||||||
|
AddToPlaylistDialog.create(new ArrayList<>(getPlaylistSongs(activity, playlist))).show(activity.getSupportFragmentManager(), "ADD_PLAYLIST");
|
||||||
|
return true;
|
||||||
case R.id.action_rename_playlist:
|
case R.id.action_rename_playlist:
|
||||||
RenamePlaylistDialog.create(playlist.id).show(activity.getSupportFragmentManager(), "RENAME_PLAYLIST");
|
RenamePlaylistDialog.create(playlist.id).show(activity.getSupportFragmentManager(), "RENAME_PLAYLIST");
|
||||||
return true;
|
return true;
|
||||||
|
|
|
||||||
|
|
@ -20,8 +20,8 @@ import com.h6ah4i.android.widget.advrecyclerview.draggable.RecyclerViewDragDropM
|
||||||
import com.h6ah4i.android.widget.advrecyclerview.utils.WrapperAdapterUtils;
|
import com.h6ah4i.android.widget.advrecyclerview.utils.WrapperAdapterUtils;
|
||||||
import com.kabouzeid.appthemehelper.ThemeStore;
|
import com.kabouzeid.appthemehelper.ThemeStore;
|
||||||
import com.kabouzeid.gramophone.R;
|
import com.kabouzeid.gramophone.R;
|
||||||
import com.kabouzeid.gramophone.adapter.song.PlaylistSongAdapter;
|
|
||||||
import com.kabouzeid.gramophone.adapter.song.OrderablePlaylistSongAdapter;
|
import com.kabouzeid.gramophone.adapter.song.OrderablePlaylistSongAdapter;
|
||||||
|
import com.kabouzeid.gramophone.adapter.song.PlaylistSongAdapter;
|
||||||
import com.kabouzeid.gramophone.adapter.song.SongAdapter;
|
import com.kabouzeid.gramophone.adapter.song.SongAdapter;
|
||||||
import com.kabouzeid.gramophone.helper.MusicPlayerRemote;
|
import com.kabouzeid.gramophone.helper.MusicPlayerRemote;
|
||||||
import com.kabouzeid.gramophone.helper.menu.PlaylistMenuHelper;
|
import com.kabouzeid.gramophone.helper.menu.PlaylistMenuHelper;
|
||||||
|
|
@ -145,7 +145,7 @@ public class PlaylistDetailActivity extends AbsSlidingMusicPanelActivity impleme
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean onCreateOptionsMenu(Menu menu) {
|
public boolean onCreateOptionsMenu(Menu menu) {
|
||||||
getMenuInflater().inflate(R.menu.menu_playlist_detail, menu);
|
getMenuInflater().inflate(playlist instanceof AbsCustomPlaylist ? R.menu.menu_smart_playlist_detail : R.menu.menu_playlist_detail, menu);
|
||||||
return super.onCreateOptionsMenu(menu);
|
return super.onCreateOptionsMenu(menu);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -188,17 +188,19 @@ public class PlaylistDetailActivity extends AbsSlidingMusicPanelActivity impleme
|
||||||
public void onMediaStoreChanged() {
|
public void onMediaStoreChanged() {
|
||||||
super.onMediaStoreChanged();
|
super.onMediaStoreChanged();
|
||||||
|
|
||||||
// Playlist deleted
|
if (!(playlist instanceof AbsCustomPlaylist)) {
|
||||||
if (!PlaylistsUtil.doesPlaylistExist(this, playlist.id)) {
|
// Playlist deleted
|
||||||
onBackPressed();
|
if (!PlaylistsUtil.doesPlaylistExist(this, playlist.id)) {
|
||||||
return;
|
finish();
|
||||||
}
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
// Playlist renamed
|
// Playlist renamed
|
||||||
final String playlistName = PlaylistsUtil.getNameForPlaylist(this, playlist.id);
|
final String playlistName = PlaylistsUtil.getNameForPlaylist(this, playlist.id);
|
||||||
if (!playlistName.equals(playlist.name)) {
|
if (!playlistName.equals(playlist.name)) {
|
||||||
playlist = PlaylistLoader.getPlaylist(this, playlist.id);
|
playlist = PlaylistLoader.getPlaylist(this, playlist.id);
|
||||||
setToolbarTitle(playlist.name);
|
setToolbarTitle(playlist.name);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
getSupportLoaderManager().restartLoader(LOADER_ID, null, this);
|
getSupportLoaderManager().restartLoader(LOADER_ID, null, this);
|
||||||
|
|
|
||||||
|
|
@ -4,9 +4,15 @@
|
||||||
<item
|
<item
|
||||||
android:id="@+id/action_play"
|
android:id="@+id/action_play"
|
||||||
android:title="@string/action_play" />
|
android:title="@string/action_play" />
|
||||||
|
<item
|
||||||
|
android:id="@+id/action_play_next"
|
||||||
|
android:title="@string/action_play_next" />
|
||||||
<item
|
<item
|
||||||
android:id="@+id/action_add_to_current_playing"
|
android:id="@+id/action_add_to_current_playing"
|
||||||
android:title="@string/action_add_to_playing_queue" />
|
android:title="@string/action_add_to_playing_queue" />
|
||||||
|
<item
|
||||||
|
android:id="@+id/action_add_to_playlist"
|
||||||
|
android:title="@string/action_add_to_playlist" />
|
||||||
<item
|
<item
|
||||||
android:id="@+id/action_rename_playlist"
|
android:id="@+id/action_rename_playlist"
|
||||||
android:title="@string/action_rename" />
|
android:title="@string/action_rename" />
|
||||||
|
|
|
||||||
|
|
@ -5,11 +5,23 @@
|
||||||
android:id="@+id/action_play"
|
android:id="@+id/action_play"
|
||||||
android:title="@string/action_play" />
|
android:title="@string/action_play" />
|
||||||
|
|
||||||
|
<item
|
||||||
|
android:id="@+id/action_play_next"
|
||||||
|
android:title="@string/action_play_next" />
|
||||||
|
|
||||||
<item
|
<item
|
||||||
android:id="@+id/action_add_to_current_playing"
|
android:id="@+id/action_add_to_current_playing"
|
||||||
android:title="@string/action_add_to_playing_queue" />
|
android:title="@string/action_add_to_playing_queue" />
|
||||||
|
|
||||||
|
<item
|
||||||
|
android:id="@+id/action_add_to_playlist"
|
||||||
|
android:title="@string/action_add_to_playlist" />
|
||||||
|
|
||||||
<item
|
<item
|
||||||
android:id="@+id/action_clear_playlist"
|
android:id="@+id/action_clear_playlist"
|
||||||
android:title="@string/action_clear_playlist" />
|
android:title="@string/action_clear_playlist" />
|
||||||
|
|
||||||
|
<item
|
||||||
|
android:id="@+id/action_save_playlist"
|
||||||
|
android:title="@string/save_playlist_title" />
|
||||||
</menu>
|
</menu>
|
||||||
|
|
@ -8,15 +8,21 @@
|
||||||
android:icon="@drawable/ic_shuffle_white_24dp"
|
android:icon="@drawable/ic_shuffle_white_24dp"
|
||||||
android:title="@string/action_shuffle_playlist"
|
android:title="@string/action_shuffle_playlist"
|
||||||
app:showAsAction="ifRoom" />
|
app:showAsAction="ifRoom" />
|
||||||
|
|
||||||
<item
|
<item
|
||||||
android:id="@+id/action_play"
|
android:id="@+id/action_play"
|
||||||
android:title="@string/action_play"
|
android:title="@string/action_play"
|
||||||
app:showAsAction="never" />
|
app:showAsAction="never" />
|
||||||
|
<item
|
||||||
|
android:id="@+id/action_play_next"
|
||||||
|
android:title="@string/action_play_next"
|
||||||
|
app:showAsAction="never" />
|
||||||
<item
|
<item
|
||||||
android:id="@+id/action_add_to_current_playing"
|
android:id="@+id/action_add_to_current_playing"
|
||||||
android:title="@string/action_add_to_playing_queue"
|
android:title="@string/action_add_to_playing_queue"
|
||||||
app:showAsAction="never" />
|
app:showAsAction="never" />
|
||||||
|
<item
|
||||||
|
android:id="@+id/action_add_to_playlist"
|
||||||
|
android:title="@string/action_add_to_playlist" />
|
||||||
<item
|
<item
|
||||||
android:id="@+id/action_rename_playlist"
|
android:id="@+id/action_rename_playlist"
|
||||||
android:title="@string/action_rename"
|
android:title="@string/action_rename"
|
||||||
|
|
|
||||||
31
app/src/main/res/menu/menu_smart_playlist_detail.xml
Normal file
31
app/src/main/res/menu/menu_smart_playlist_detail.xml
Normal file
|
|
@ -0,0 +1,31 @@
|
||||||
|
<menu xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||||
|
xmlns:tools="http://schemas.android.com/tools"
|
||||||
|
tools:context="com.kabouzeid.gramophone.ui.activities.PlaylistDetailActivity">
|
||||||
|
|
||||||
|
<item
|
||||||
|
android:id="@+id/action_shuffle_playlist"
|
||||||
|
android:icon="@drawable/ic_shuffle_white_24dp"
|
||||||
|
android:title="@string/action_shuffle_playlist"
|
||||||
|
app:showAsAction="ifRoom" />
|
||||||
|
<item
|
||||||
|
android:id="@+id/action_play"
|
||||||
|
android:title="@string/action_play"
|
||||||
|
app:showAsAction="never" />
|
||||||
|
<item
|
||||||
|
android:id="@+id/action_play_next"
|
||||||
|
android:title="@string/action_play_next"
|
||||||
|
app:showAsAction="never" />
|
||||||
|
<item
|
||||||
|
android:id="@+id/action_add_to_current_playing"
|
||||||
|
android:title="@string/action_add_to_playing_queue"
|
||||||
|
app:showAsAction="never" />
|
||||||
|
<item
|
||||||
|
android:id="@+id/action_add_to_playlist"
|
||||||
|
android:title="@string/action_add_to_playlist" />
|
||||||
|
<item
|
||||||
|
android:id="@+id/action_save_playlist"
|
||||||
|
android:title="@string/save_playlist_title"
|
||||||
|
app:showAsAction="never" />
|
||||||
|
|
||||||
|
</menu>
|
||||||
Loading…
Add table
Add a link
Reference in a new issue