fix 'add to playlist' for library headers
This commit is contained in:
parent
d1a2bab400
commit
7c7fd78499
@ -348,7 +348,7 @@ public class FullPlaybackActivity extends SlidingPlaybackActivity
|
||||
Intent intent = new Intent();
|
||||
intent.putExtra("type", MediaUtils.TYPE_SONG);
|
||||
intent.putExtra("id", song.id);
|
||||
PlaylistDialog dialog = new PlaylistDialog(this, intent);
|
||||
PlaylistDialog dialog = new PlaylistDialog(this, intent, null);
|
||||
dialog.show(getFragmentManager(), "PlaylistDialog");
|
||||
}
|
||||
break;
|
||||
|
@ -718,6 +718,11 @@ public class LibraryActivity
|
||||
setLimiter(MediaUtils.TYPE_ALBUM, "_id=" + intent.getLongExtra(LibraryAdapter.DATA_ID, LibraryAdapter.INVALID_ID));
|
||||
updateLimiterViews();
|
||||
break;
|
||||
case CTX_MENU_ADD_TO_PLAYLIST:
|
||||
long id = intent.getLongExtra("id", LibraryAdapter.INVALID_ID);
|
||||
PlaylistDialog plDialog = new PlaylistDialog(this, intent, (id == LibraryAdapter.HEADER_ID ? (MediaAdapter)mCurrentAdapter : null));
|
||||
plDialog.show(getFragmentManager(), "PlaylistDialog");
|
||||
break;
|
||||
default:
|
||||
return super.onContextItemSelected(item);
|
||||
}
|
||||
|
@ -43,6 +43,10 @@ public class PlaylistDialog extends DialogFragment
|
||||
* The intent to act on
|
||||
*/
|
||||
private Intent mIntent;
|
||||
/**
|
||||
* The media adapter to pass on which will be used to query all songs
|
||||
*/
|
||||
private MediaAdapter mAllSrc;
|
||||
/**
|
||||
* Array of all found playlist names
|
||||
*/
|
||||
@ -60,14 +64,15 @@ public class PlaylistDialog extends DialogFragment
|
||||
* Our callback interface
|
||||
*/
|
||||
public interface Callback {
|
||||
void appendToPlaylistFromIntent(Intent intent);
|
||||
void createNewPlaylistFromIntent(Intent intent);
|
||||
void appendToPlaylistFromIntent(Intent intent, MediaAdapter allSource);
|
||||
void createNewPlaylistFromIntent(Intent intent, MediaAdapter allSource);
|
||||
}
|
||||
|
||||
|
||||
PlaylistDialog(Callback callback, Intent intent) {
|
||||
PlaylistDialog(Callback callback, Intent intent, MediaAdapter allSource) {
|
||||
mCallback = callback;
|
||||
mIntent = intent;
|
||||
mAllSrc = allSource;
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -100,12 +105,12 @@ public class PlaylistDialog extends DialogFragment
|
||||
@Override
|
||||
public void onClick(DialogInterface dialog, int which) {
|
||||
if (mItemValue[which] == VALUE_CREATE_PLAYLIST) {
|
||||
mCallback.createNewPlaylistFromIntent(mIntent);
|
||||
mCallback.createNewPlaylistFromIntent(mIntent, mAllSrc);
|
||||
} else {
|
||||
Intent copy = new Intent(mIntent);
|
||||
copy.putExtra("playlist", mItemValue[which]);
|
||||
copy.putExtra("playlistName", mItemName[which]);
|
||||
mCallback.appendToPlaylistFromIntent(copy);
|
||||
mCallback.appendToPlaylistFromIntent(copy, mAllSrc);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -156,7 +156,7 @@ public class SlidingPlaybackActivity extends PlaybackActivity
|
||||
final Intent intent = item.getIntent();
|
||||
switch (item.getItemId()) {
|
||||
case CTX_MENU_ADD_TO_PLAYLIST: {
|
||||
PlaylistDialog dialog = new PlaylistDialog(this, intent);
|
||||
PlaylistDialog dialog = new PlaylistDialog(this, intent, null);
|
||||
dialog.show(getFragmentManager(), "PlaylistDialog");
|
||||
break;
|
||||
}
|
||||
@ -172,9 +172,9 @@ public class SlidingPlaybackActivity extends PlaybackActivity
|
||||
*
|
||||
* @param intent The intent holding the selected data
|
||||
*/
|
||||
public void createNewPlaylistFromIntent(Intent intent) {
|
||||
public void createNewPlaylistFromIntent(Intent intent, MediaAdapter allSource) {
|
||||
PlaylistTask playlistTask = new PlaylistTask(-1, null);
|
||||
playlistTask.query = buildQueryFromIntent(intent, true, null);
|
||||
playlistTask.query = buildQueryFromIntent(intent, true, allSource);
|
||||
NewPlaylistDialog dialog = new NewPlaylistDialog(this, null, R.string.create, playlistTask);
|
||||
dialog.setDismissMessage(mHandler.obtainMessage(MSG_NEW_PLAYLIST, dialog));
|
||||
dialog.show();
|
||||
@ -186,11 +186,11 @@ public class SlidingPlaybackActivity extends PlaybackActivity
|
||||
*
|
||||
* @param intent The intent holding the selected data
|
||||
*/
|
||||
public void appendToPlaylistFromIntent(Intent intent) {
|
||||
public void appendToPlaylistFromIntent(Intent intent, MediaAdapter allSource) {
|
||||
long playlistId = intent.getLongExtra("playlist", -1);
|
||||
String playlistName = intent.getStringExtra("playlistName");
|
||||
PlaylistTask playlistTask = new PlaylistTask(playlistId, playlistName);
|
||||
playlistTask.query = buildQueryFromIntent(intent, true, null);
|
||||
playlistTask.query = buildQueryFromIntent(intent, true, allSource);
|
||||
mHandler.sendMessage(mHandler.obtainMessage(MSG_ADD_TO_PLAYLIST, playlistTask));
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user