package de.danoeh.antennapod.core.asynctask; import android.annotation.SuppressLint; import android.app.ProgressDialog; import android.content.Context; import android.content.Intent; import android.os.AsyncTask; import java.util.concurrent.ExecutionException; import de.danoeh.antennapod.core.R; import de.danoeh.antennapod.core.feed.Feed; import de.danoeh.antennapod.core.service.playback.PlaybackService; import de.danoeh.antennapod.core.storage.DBWriter; /** Removes a feed in the background. */ public class FeedRemover extends AsyncTask<Void, Void, Void> { Context context; ProgressDialog dialog; Feed feed; public boolean skipOnCompletion = false; public FeedRemover(Context context, Feed feed) { super(); this.context = context; this.feed = feed; } @Override protected Void doInBackground(Void... params) { try { DBWriter.deleteFeed(context, feed.getId()).get(); } catch (InterruptedException | ExecutionException e) { e.printStackTrace(); } return null; } @Override protected void onPostExecute(Void result) { dialog.dismiss(); if(skipOnCompletion) { context.sendBroadcast(new Intent( PlaybackService.ACTION_SKIP_CURRENT_EPISODE)); } } @Override protected void onPreExecute() { dialog = new ProgressDialog(context); dialog.setMessage(context.getString(R.string.feed_remover_msg)); dialog.setIndeterminate(true); dialog.setCancelable(false); dialog.show(); } @SuppressLint("NewApi") public void executeAsync() { if (android.os.Build.VERSION.SDK_INT > android.os.Build.VERSION_CODES.GINGERBREAD_MR1) { executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR); } else { execute(); } } }