Last added playlist half working. More to come tomorrow.

This commit is contained in:
Karim Abou Zeid 2015-06-21 01:23:27 +02:00
commit 65c879d64e
47 changed files with 1000 additions and 317 deletions

View file

@ -15,10 +15,13 @@ import com.kabouzeid.gramophone.dialogs.PlayingQueueDialog;
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.ui.activities.AlbumDetailActivity;
import com.kabouzeid.gramophone.ui.activities.ArtistDetailActivity;
import com.kabouzeid.gramophone.ui.activities.MusicControllerActivity;
import com.kabouzeid.gramophone.ui.activities.PlaylistDetailActivity;
import com.kabouzeid.gramophone.ui.activities.SmartPlaylistDetailActivity;
/**
* @author Karim Abou Zeid (kabouzeid)
@ -63,12 +66,19 @@ public class NavigationUtil {
}
}
public static void goToPlaylist(final Activity activity, final int playlistId, final Pair[] sharedViews) {
public static void goToPlaylist(final Activity activity, final Playlist playlist, final Pair[] sharedViews) {
if ((activity instanceof KabViewsDisableAble && ((KabViewsDisableAble) activity).areViewsEnabled()) || !(activity instanceof KabViewsDisableAble)) {
if (activity instanceof KabViewsDisableAble)
((KabViewsDisableAble) activity).disableViews();
final Intent intent = new Intent(activity, PlaylistDetailActivity.class);
intent.putExtra(AppKeys.E_PLAYLIST, playlistId);
final Intent intent;
if (playlist instanceof SmartPlaylist) {
intent = new Intent(activity, SmartPlaylistDetailActivity.class);
} else {
intent = new Intent(activity, PlaylistDetailActivity.class);
}
intent.putExtra(PlaylistDetailActivity.EXTRA_PLAYLIST, playlist);
if (sharedViews != null) {
@SuppressWarnings("unchecked") ActivityOptionsCompat optionsCompat = ActivityOptionsCompat.makeSceneTransitionAnimation(activity,
sharedViews

View file

@ -24,9 +24,6 @@ import java.util.List;
*/
public class PlaylistsUtil {
// public static final String MUSIC_ONLY_SELECTION = MediaStore.Audio.AudioColumns.IS_MUSIC + "=1"
// + " AND " + MediaStore.Audio.AudioColumns.TITLE + " != ''"; //$NON-NLS-2$
public static int createPlaylist(final Context context, final String name) {
if (name != null && name.length() > 0) {
final ContentResolver resolver = context.getContentResolver();
@ -61,13 +58,13 @@ public class PlaylistsUtil {
// context.getContentResolver().delete(uri, null, null);
// }
public static void deletePlaylists(final Context context, final long playlistId) {
final Uri uri = MediaStore.Audio.Playlists.EXTERNAL_CONTENT_URI;
String where = MediaStore.Audio.Playlists._ID + "=?";
String[] whereVal = {String.valueOf(playlistId)};
context.getContentResolver().delete(uri, where, whereVal);
App.bus.post(new DataBaseChangedEvent(DataBaseChangedEvent.PLAYLISTS_CHANGED));
}
// public static void deletePlaylists(final Context context, final long playlistId) {
// final Uri uri = MediaStore.Audio.Playlists.EXTERNAL_CONTENT_URI;
// String where = MediaStore.Audio.Playlists._ID + "=?";
// String[] whereVal = {String.valueOf(playlistId)};
// context.getContentResolver().delete(uri, where, whereVal);
// App.bus.post(new DataBaseChangedEvent(DataBaseChangedEvent.PLAYLISTS_CHANGED));
// }
public static void deletePlaylists(final Context context, final ArrayList<Playlist> playlists) {
final Uri uri = MediaStore.Audio.Playlists.EXTERNAL_CONTENT_URI;
@ -136,19 +133,20 @@ public class PlaylistsUtil {
return contentValues;
}
public static void removeFromPlaylist(final Context context, final PlaylistSong song) {
Uri uri = MediaStore.Audio.Playlists.Members.getContentUri(
"external", song.playlistId);
String selection = MediaStore.Audio.Playlists.Members._ID + " =?";
String[] selectionArgs = new String[]{String.valueOf(song.idInPlayList)};
context.getContentResolver().delete(uri, selection, selectionArgs);
App.bus.post(new DataBaseChangedEvent(DataBaseChangedEvent.PLAYLISTS_CHANGED));
}
// public static void removeFromPlaylist(final Context context, final PlaylistSong song) {
// Uri uri = MediaStore.Audio.Playlists.Members.getContentUri(
// "external", song.playlistId);
// String selection = MediaStore.Audio.Playlists.Members._ID + " =?";
// String[] selectionArgs = new String[]{String.valueOf(song.idInPlayList)};
//
// context.getContentResolver().delete(uri, selection, selectionArgs);
// App.bus.post(new DataBaseChangedEvent(DataBaseChangedEvent.PLAYLISTS_CHANGED));
// }
public static void removeFromPlaylist(final Context context, final List<PlaylistSong> songs) {
final int playlistId = songs.get(0).playlistId;
Uri uri = MediaStore.Audio.Playlists.Members.getContentUri(
"external", songs.get(0).playlistId);
"external", playlistId);
String selectionArgs[] = new String[songs.size()];
for (int i = 0; i < selectionArgs.length; i++) {
selectionArgs[i] = String.valueOf(songs.get(i).idInPlayList);

View file

@ -43,6 +43,7 @@ public final class PreferenceUtils {
public static final String FADE_PLAY_PAUSE = "fade_play_pause";
public static final String COLORED_NOTIFICATION = "colored_notification";
public static final String GAPLESS_PLAYBACK = "gapless_playback";
public static final String LAST_ADDED_CUTOFF_TIMESTAMP = "last_added_cutoff_timestamp";
private static PreferenceUtils sInstance;
@ -283,4 +284,15 @@ public final class PreferenceUtils {
public final int getAlbumGridColumnsLand() {
return mPreferences.getInt(ALBUM_GRID_COLUMNS_LAND, 3);
}
public long getLastAddedCutOff() {
return mPreferences.getLong(LAST_ADDED_CUTOFF_TIMESTAMP, 0L);
}
@SuppressLint("CommitPrefEdits")
public void setLastAddedCutoffTimestamp(final long timestamp) {
final SharedPreferences.Editor editor = mPreferences.edit();
editor.putLong(LAST_ADDED_CUTOFF_TIMESTAMP, timestamp);
editor.commit();
}
}