From 9734b6cd2172f5264cab99edf29e7551b1e50a1a Mon Sep 17 00:00:00 2001 From: Martin Disch Date: Sun, 27 May 2018 13:35:53 +0200 Subject: [PATCH] Run bulk export in AsyncTask --- .../mainactivity/library/LibraryFragment.java | 29 ++++++++++++++++++- app/src/main/res/values/strings.xml | 1 + 2 files changed, 29 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/com/kabouzeid/gramophone/ui/fragments/mainactivity/library/LibraryFragment.java b/app/src/main/java/com/kabouzeid/gramophone/ui/fragments/mainactivity/library/LibraryFragment.java index 50704c79..8c2eec46 100644 --- a/app/src/main/java/com/kabouzeid/gramophone/ui/fragments/mainactivity/library/LibraryFragment.java +++ b/app/src/main/java/com/kabouzeid/gramophone/ui/fragments/mainactivity/library/LibraryFragment.java @@ -1,9 +1,12 @@ package com.kabouzeid.gramophone.ui.fragments.mainactivity.library; +import android.annotation.SuppressLint; import android.app.Activity; +import android.content.Context; import android.content.Intent; import android.content.SharedPreferences; +import android.os.AsyncTask; import android.os.Bundle; import android.support.annotation.NonNull; import android.support.annotation.Nullable; @@ -19,6 +22,7 @@ import android.view.MenuItem; import android.view.SubMenu; import android.view.View; import android.view.ViewGroup; +import android.widget.Toast; import com.afollestad.materialcab.MaterialCab; import com.kabouzeid.appthemehelper.ThemeStore; @@ -41,6 +45,7 @@ import com.kabouzeid.gramophone.ui.fragments.mainactivity.library.pager.ArtistsF import com.kabouzeid.gramophone.ui.fragments.mainactivity.library.pager.PlaylistsFragment; import com.kabouzeid.gramophone.ui.fragments.mainactivity.library.pager.SongsFragment; import com.kabouzeid.gramophone.util.PhonographColorUtil; +import com.kabouzeid.gramophone.util.PlaylistsUtil; import com.kabouzeid.gramophone.util.PreferenceUtil; import com.kabouzeid.gramophone.util.Util; @@ -250,7 +255,29 @@ public class LibraryFragment extends AbsMainActivityFragment implements CabHolde CreatePlaylistDialog.create().show(getChildFragmentManager(), "CREATE_PLAYLIST"); return true; case R.id.action_export_playlists: - // TODO + @SuppressLint("ShowToast") + final Toast toast = Toast.makeText(getActivity(), R.string.saving_playlists, Toast.LENGTH_LONG); + new AsyncTask() { + @Override + protected void onPreExecute() { + super.onPreExecute(); + toast.show(); + } + + @Override + protected String doInBackground(Context... params) { + return PlaylistsUtil.saveAllPlaylists(params[0]); + } + + @Override + protected void onPostExecute(String string) { + super.onPostExecute(string); + if (toast != null) { + toast.setText(string); + toast.show(); + } + } + }.execute(getActivity().getApplicationContext()); return true; case R.id.action_search: startActivity(new Intent(getActivity(), SearchActivity.class)); diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index d4cb2627..3b4a60ff 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -234,6 +234,7 @@ Folders Saved playlist to %s. Failed to save playlist (%s). + Saving playlists… 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.]]>