From 7e4f7162ca5f2a2c8e3f5004b402e930f9f2d258 Mon Sep 17 00:00:00 2001 From: Martin Disch Date: Sun, 27 May 2018 13:33:59 +0200 Subject: [PATCH] Implement bulk saving of playlists --- .../gramophone/util/PlaylistsUtil.java | 20 +++++++++++++++++++ app/src/main/res/values/strings.xml | 2 ++ 2 files changed, 22 insertions(+) diff --git a/app/src/main/java/com/kabouzeid/gramophone/util/PlaylistsUtil.java b/app/src/main/java/com/kabouzeid/gramophone/util/PlaylistsUtil.java index 7f900cac..4b11434b 100644 --- a/app/src/main/java/com/kabouzeid/gramophone/util/PlaylistsUtil.java +++ b/app/src/main/java/com/kabouzeid/gramophone/util/PlaylistsUtil.java @@ -14,6 +14,7 @@ import android.widget.Toast; import com.kabouzeid.gramophone.R; import com.kabouzeid.gramophone.helper.M3UWriter; +import com.kabouzeid.gramophone.loader.PlaylistLoader; import com.kabouzeid.gramophone.model.Playlist; import com.kabouzeid.gramophone.model.PlaylistSong; import com.kabouzeid.gramophone.model.Song; @@ -248,6 +249,25 @@ public class PlaylistsUtil { return M3UWriter.write(context, new File(Environment.getExternalStorageDirectory(), "Playlists"), playlist); } + public static String saveAllPlaylists(Context context) { + int successes = 0, failures = 0; + File dir = new File(Environment.getExternalStorageDirectory(), "Playlists"); + + List playlists = PlaylistLoader.getAllPlaylists(context); + for (Playlist playlist : playlists) { + try { + savePlaylist(context, playlist); + successes++; + } catch (IOException ignored) { + failures++; + } + } + + return failures == 0 + ? String.format(context.getString(R.string.saved_x_playlists_to_x), successes, dir) + : String.format(context.getString(R.string.saved_x_playlists_to_x_failed_to_save_x), successes, dir, failures); + } + private static boolean doesPlaylistExist(@NonNull Context context, @NonNull final String selection, @NonNull final String[] values) { Cursor cursor = context.getContentResolver().query(EXTERNAL_CONTENT_URI, new String[]{}, selection, values, null); diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 972e064c..d4cb2627 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -234,6 +234,8 @@ Folders Saved playlist to %s. Failed to save playlist (%s). + Saved %1$d playlists to %2$s. + Saved %1$d playlists to %2$s, failed to save %3$d. %s is not listed in the media store.]]> Some files are not listed in the media store. Nothing to scan.