diff options
author | daniel oeh <daniel.oeh@gmail.com> | 2012-06-19 21:21:45 +0200 |
---|---|---|
committer | daniel oeh <daniel.oeh@gmail.com> | 2012-06-19 21:21:45 +0200 |
commit | 22918164c733c1bc5af5d97716527f62fad2db58 (patch) | |
tree | 63017e2c0c1c8f0039952a26e40e498c9c6c970a /src/de | |
parent | 9533323167e72dd3ed76f2cca50eb29946e785af (diff) | |
download | AntennaPod-22918164c733c1bc5af5d97716527f62fad2db58.zip |
Feeds can now be removed in the background
Diffstat (limited to 'src/de')
-rw-r--r-- | src/de/podfetcher/asynctask/FeedRemover.java | 62 | ||||
-rw-r--r-- | src/de/podfetcher/fragment/FeedlistFragment.java | 11 |
2 files changed, 71 insertions, 2 deletions
diff --git a/src/de/podfetcher/asynctask/FeedRemover.java b/src/de/podfetcher/asynctask/FeedRemover.java new file mode 100644 index 000000000..504de95c0 --- /dev/null +++ b/src/de/podfetcher/asynctask/FeedRemover.java @@ -0,0 +1,62 @@ +package de.podfetcher.asynctask; + +import de.podfetcher.feed.Feed; +import de.podfetcher.feed.FeedManager; +import android.app.ProgressDialog; +import android.content.Context; +import android.content.DialogInterface; +import android.content.DialogInterface.OnCancelListener; +import android.os.AsyncTask; + +/** Removes a feed in the background. */ +public class FeedRemover extends AsyncTask<Feed, Void, Void> { + Context context; + ProgressDialog dialog; + + public FeedRemover(Context context) { + super(); + this.context = context; + } + + @Override + protected Void doInBackground(Feed... params) { + FeedManager manager = FeedManager.getInstance(); + for (Feed feed : params) { + manager.deleteFeed(context, feed); + if (isCancelled()) { + break; + } + } + + return null; + } + + @Override + protected void onCancelled() { + dialog.dismiss(); + } + + @Override + protected void onPostExecute(Void result) { + dialog.dismiss(); + } + + @Override + protected void onPreExecute() { + dialog = new ProgressDialog(context); + dialog.setMessage("Removing Feed"); + dialog.setOnCancelListener(new OnCancelListener() { + + @Override + public void onCancel(DialogInterface dialog) { + cancel(true); + + } + + }); + dialog.show(); + } + + + +} diff --git a/src/de/podfetcher/fragment/FeedlistFragment.java b/src/de/podfetcher/fragment/FeedlistFragment.java index e76bfbe60..1dc925164 100644 --- a/src/de/podfetcher/fragment/FeedlistFragment.java +++ b/src/de/podfetcher/fragment/FeedlistFragment.java @@ -4,6 +4,7 @@ import de.podfetcher.R; import de.podfetcher.feed.*; import de.podfetcher.activity.*; import de.podfetcher.adapter.FeedlistAdapter; +import de.podfetcher.asynctask.FeedRemover; import de.podfetcher.storage.DownloadRequester; import de.podfetcher.service.DownloadService; import android.os.Bundle; @@ -148,8 +149,14 @@ public class FeedlistFragment extends SherlockListFragment { public boolean onActionItemClicked(ActionMode mode, MenuItem item) { switch (item.getItemId()) { case R.id.remove_item: - manager.deleteFeed(getSherlockActivity(), selectedFeed); - fla.notifyDataSetChanged(); + FeedRemover remover = new FeedRemover(getSherlockActivity()){ + @Override + protected void onPostExecute(Void result) { + super.onPostExecute(result); + fla.notifyDataSetChanged(); + } + }; + remover.execute(selectedFeed); break; } mode.finish(); |