add Delete in Now Playing menu (closes #103)
This commit is contained in:
parent
c0fc289d36
commit
0832a0175d
@ -47,6 +47,8 @@ import android.widget.TableLayout;
|
|||||||
import android.widget.TableRow;
|
import android.widget.TableRow;
|
||||||
import android.widget.TextView;
|
import android.widget.TextView;
|
||||||
import android.widget.Toast;
|
import android.widget.Toast;
|
||||||
|
import android.app.AlertDialog;
|
||||||
|
import android.content.DialogInterface;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The primary playback screen with playback controls and large cover display.
|
* The primary playback screen with playback controls and large cover display.
|
||||||
@ -362,6 +364,7 @@ public class FullPlaybackActivity extends PlaybackActivity
|
|||||||
menu.add(0, MENU_ENQUEUE_ARTIST, 0, R.string.enqueue_current_artist).setIcon(R.drawable.ic_menu_add);
|
menu.add(0, MENU_ENQUEUE_ARTIST, 0, R.string.enqueue_current_artist).setIcon(R.drawable.ic_menu_add);
|
||||||
menu.add(0, MENU_ENQUEUE_GENRE, 0, R.string.enqueue_current_genre).setIcon(R.drawable.ic_menu_add);
|
menu.add(0, MENU_ENQUEUE_GENRE, 0, R.string.enqueue_current_genre).setIcon(R.drawable.ic_menu_add);
|
||||||
menu.add(0, MENU_SONG_FAVORITE, 0, R.string.add_to_favorites);
|
menu.add(0, MENU_SONG_FAVORITE, 0, R.string.add_to_favorites);
|
||||||
|
menu.add(0, MENU_DELETE, 0, R.string.delete);
|
||||||
menu.add(0, MENU_SHOW_QUEUE, 0, R.string.show_queue);
|
menu.add(0, MENU_SHOW_QUEUE, 0, R.string.show_queue);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
@ -395,6 +398,29 @@ public class FullPlaybackActivity extends PlaybackActivity
|
|||||||
mHandler.sendMessage(mHandler.obtainMessage(MSG_ADD_TO_PLAYLIST, playlistTask));
|
mHandler.sendMessage(mHandler.obtainMessage(MSG_ADD_TO_PLAYLIST, playlistTask));
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
case MENU_DELETE:
|
||||||
|
final PlaybackService playbackService = PlaybackService.get(this);
|
||||||
|
final Song sng = playbackService.getSong(0);
|
||||||
|
final PlaybackActivity activity = this;
|
||||||
|
String delete_message = getString(R.string.delete_item, sng.title);
|
||||||
|
AlertDialog.Builder dialog = new AlertDialog.Builder(this);
|
||||||
|
dialog.setTitle(R.string.delete);
|
||||||
|
dialog
|
||||||
|
.setMessage(delete_message)
|
||||||
|
.setPositiveButton(R.string.delete, new DialogInterface.OnClickListener() {
|
||||||
|
public void onClick(DialogInterface dialog, int id) {
|
||||||
|
shiftCurrentSong(SongTimeline.SHIFT_NEXT_SONG);
|
||||||
|
int count = playbackService.deleteMedia(MediaUtils.TYPE_SONG, sng.id);
|
||||||
|
String msg = getResources().getQuantityString(R.plurals.deleted, count, count);
|
||||||
|
Toast.makeText(activity, msg, Toast.LENGTH_SHORT).show();
|
||||||
|
}
|
||||||
|
})
|
||||||
|
.setNegativeButton(R.string.cancel, new DialogInterface.OnClickListener() {
|
||||||
|
public void onClick(DialogInterface dialog, int id) {
|
||||||
|
}
|
||||||
|
});
|
||||||
|
dialog.create().show();
|
||||||
|
break;
|
||||||
case MENU_SHOW_QUEUE:
|
case MENU_SHOW_QUEUE:
|
||||||
startActivity(new Intent(this, ShowQueueActivity.class));
|
startActivity(new Intent(this, ShowQueueActivity.class));
|
||||||
break;
|
break;
|
||||||
@ -526,17 +552,17 @@ public class FullPlaybackActivity extends PlaybackActivity
|
|||||||
mComposer = null;
|
mComposer = null;
|
||||||
mFormat = null;
|
mFormat = null;
|
||||||
mReplayGain = null;
|
mReplayGain = null;
|
||||||
|
|
||||||
if(song != null) {
|
if(song != null) {
|
||||||
|
|
||||||
MediaMetadataRetriever data = new MediaMetadataRetriever();
|
MediaMetadataRetriever data = new MediaMetadataRetriever();
|
||||||
|
|
||||||
try {
|
try {
|
||||||
data.setDataSource(song.path);
|
data.setDataSource(song.path);
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
Log.w("VanillaMusic", "Failed to extract metadata from " + song.path);
|
Log.w("VanillaMusic", "Failed to extract metadata from " + song.path);
|
||||||
}
|
}
|
||||||
|
|
||||||
mGenre = data.extractMetadata(MediaMetadataRetriever.METADATA_KEY_GENRE);
|
mGenre = data.extractMetadata(MediaMetadataRetriever.METADATA_KEY_GENRE);
|
||||||
mTrack = data.extractMetadata(MediaMetadataRetriever.METADATA_KEY_CD_TRACK_NUMBER);
|
mTrack = data.extractMetadata(MediaMetadataRetriever.METADATA_KEY_CD_TRACK_NUMBER);
|
||||||
String composer = data.extractMetadata(MediaMetadataRetriever.METADATA_KEY_COMPOSER);
|
String composer = data.extractMetadata(MediaMetadataRetriever.METADATA_KEY_COMPOSER);
|
||||||
@ -563,12 +589,12 @@ public class FullPlaybackActivity extends PlaybackActivity
|
|||||||
sb.append("kbps");
|
sb.append("kbps");
|
||||||
}
|
}
|
||||||
mFormat = sb.toString();
|
mFormat = sb.toString();
|
||||||
|
|
||||||
if(song.path != null) { /* ICS bug? */
|
if(song.path != null) { /* ICS bug? */
|
||||||
float[] rg = PlaybackService.get(this).getReplayGainValues(song.path);
|
float[] rg = PlaybackService.get(this).getReplayGainValues(song.path);
|
||||||
mReplayGain = "track="+rg[0]+"dB, album="+rg[1]+"dB";
|
mReplayGain = "track="+rg[0]+"dB, album="+rg[1]+"dB";
|
||||||
}
|
}
|
||||||
|
|
||||||
data.release();
|
data.release();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (C) 2010, 2011 Christopher Eby <kreed@kreed.org>
|
* Copyright (C) 2010, 2011 Christopher Eby <kreed@kreed.org>
|
||||||
* Copyright (C) 2014 Adrian Ulrich <adrian@blinkenlights.ch>
|
* Copyright (C) 2014 Adrian Ulrich <adrian@blinkenlights.ch>
|
||||||
*
|
*
|
||||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
* of this software and associated documentation files (the "Software"), to deal
|
* of this software and associated documentation files (the "Software"), to deal
|
||||||
* in the Software without restriction, including without limitation the rights
|
* in the Software without restriction, including without limitation the rights
|
||||||
@ -283,7 +283,7 @@ public abstract class PlaybackActivity extends Activity
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Called by FileSystem adapter to get the start folder
|
* Called by FileSystem adapter to get the start folder
|
||||||
* for browsing directories
|
* for browsing directories
|
||||||
@ -294,7 +294,7 @@ public abstract class PlaybackActivity extends Activity
|
|||||||
File fs_start = new File( folder.equals("") ? Environment.getExternalStorageDirectory().getAbsolutePath() : folder );
|
File fs_start = new File( folder.equals("") ? Environment.getExternalStorageDirectory().getAbsolutePath() : folder );
|
||||||
return fs_start;
|
return fs_start;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Called by PlaybackService to update the current song.
|
* Called by PlaybackService to update the current song.
|
||||||
*/
|
*/
|
||||||
@ -347,6 +347,7 @@ public abstract class PlaybackActivity extends Activity
|
|||||||
static final int MENU_SONG_FAVORITE = 12;
|
static final int MENU_SONG_FAVORITE = 12;
|
||||||
static final int MENU_SHOW_QUEUE = 13;
|
static final int MENU_SHOW_QUEUE = 13;
|
||||||
static final int MENU_SAVE_AS_PLAYLIST = 14;
|
static final int MENU_SAVE_AS_PLAYLIST = 14;
|
||||||
|
static final int MENU_DELETE = 15;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean onCreateOptionsMenu(Menu menu)
|
public boolean onCreateOptionsMenu(Menu menu)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user