Run bulk export in AsyncTask

This commit is contained in:
Martin Disch 2018-05-27 13:35:53 +02:00
commit 9734b6cd21
No known key found for this signature in database
GPG key ID: DB6C1FF7E550D904
2 changed files with 29 additions and 1 deletions

View file

@ -1,9 +1,12 @@
package com.kabouzeid.gramophone.ui.fragments.mainactivity.library; package com.kabouzeid.gramophone.ui.fragments.mainactivity.library;
import android.annotation.SuppressLint;
import android.app.Activity; import android.app.Activity;
import android.content.Context;
import android.content.Intent; import android.content.Intent;
import android.content.SharedPreferences; import android.content.SharedPreferences;
import android.os.AsyncTask;
import android.os.Bundle; import android.os.Bundle;
import android.support.annotation.NonNull; import android.support.annotation.NonNull;
import android.support.annotation.Nullable; import android.support.annotation.Nullable;
@ -19,6 +22,7 @@ import android.view.MenuItem;
import android.view.SubMenu; import android.view.SubMenu;
import android.view.View; import android.view.View;
import android.view.ViewGroup; import android.view.ViewGroup;
import android.widget.Toast;
import com.afollestad.materialcab.MaterialCab; import com.afollestad.materialcab.MaterialCab;
import com.kabouzeid.appthemehelper.ThemeStore; 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.PlaylistsFragment;
import com.kabouzeid.gramophone.ui.fragments.mainactivity.library.pager.SongsFragment; import com.kabouzeid.gramophone.ui.fragments.mainactivity.library.pager.SongsFragment;
import com.kabouzeid.gramophone.util.PhonographColorUtil; import com.kabouzeid.gramophone.util.PhonographColorUtil;
import com.kabouzeid.gramophone.util.PlaylistsUtil;
import com.kabouzeid.gramophone.util.PreferenceUtil; import com.kabouzeid.gramophone.util.PreferenceUtil;
import com.kabouzeid.gramophone.util.Util; import com.kabouzeid.gramophone.util.Util;
@ -250,7 +255,29 @@ public class LibraryFragment extends AbsMainActivityFragment implements CabHolde
CreatePlaylistDialog.create().show(getChildFragmentManager(), "CREATE_PLAYLIST"); CreatePlaylistDialog.create().show(getChildFragmentManager(), "CREATE_PLAYLIST");
return true; return true;
case R.id.action_export_playlists: case R.id.action_export_playlists:
// TODO @SuppressLint("ShowToast")
final Toast toast = Toast.makeText(getActivity(), R.string.saving_playlists, Toast.LENGTH_LONG);
new AsyncTask<Context, Void, String>() {
@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; return true;
case R.id.action_search: case R.id.action_search:
startActivity(new Intent(getActivity(), SearchActivity.class)); startActivity(new Intent(getActivity(), SearchActivity.class));

View file

@ -234,6 +234,7 @@
<string name="folders">Folders</string> <string name="folders">Folders</string>
<string name="saved_playlist_to">Saved playlist to %s.</string> <string name="saved_playlist_to">Saved playlist to %s.</string>
<string name="failed_to_save_playlist">Failed to save playlist (%s).</string> <string name="failed_to_save_playlist">Failed to save playlist (%s).</string>
<string name="saving_playlists">Saving playlists…</string>
<string name="saved_x_playlists_to_x">Saved %1$d playlists to %2$s.</string> <string name="saved_x_playlists_to_x">Saved %1$d playlists to %2$s.</string>
<string name="saved_x_playlists_to_x_failed_to_save_x">Saved %1$d playlists to %2$s, failed to save %3$d.</string> <string name="saved_x_playlists_to_x_failed_to_save_x">Saved %1$d playlists to %2$s, failed to save %3$d.</string>
<string name="not_listed_in_media_store"><![CDATA[<b>%s</b> is not listed in the media store.]]></string> <string name="not_listed_in_media_store"><![CDATA[<b>%s</b> is not listed in the media store.]]></string>