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