diff options
Diffstat (limited to 'src/de/danoeh/antennapod/asynctask/OpmlFeedQueuer.java')
-rw-r--r-- | src/de/danoeh/antennapod/asynctask/OpmlFeedQueuer.java | 70 |
1 files changed, 70 insertions, 0 deletions
diff --git a/src/de/danoeh/antennapod/asynctask/OpmlFeedQueuer.java b/src/de/danoeh/antennapod/asynctask/OpmlFeedQueuer.java new file mode 100644 index 000000000..3d44e429c --- /dev/null +++ b/src/de/danoeh/antennapod/asynctask/OpmlFeedQueuer.java @@ -0,0 +1,70 @@ +package de.danoeh.antennapod.asynctask; + +import java.util.Date; + +import de.danoeh.antennapod.R; +import de.danoeh.antennapod.activity.OpmlImportActivity; +import de.danoeh.antennapod.feed.Feed; +import de.danoeh.antennapod.opml.OpmlElement; +import de.danoeh.antennapod.storage.DownloadRequester; +import android.annotation.SuppressLint; +import android.app.ProgressDialog; +import android.content.Context; +import android.os.AsyncTask; + +/** Queues items for download in the background. */ +public class OpmlFeedQueuer extends AsyncTask<Void, Void, Void> { + private Context context; + private ProgressDialog progDialog; + private int[] selection; + + + + public OpmlFeedQueuer(Context context, int[] selection) { + super(); + this.context = context; + this.selection = selection; + } + + + + @Override + protected void onPostExecute(Void result) { + progDialog.dismiss(); + } + + + + @Override + protected void onPreExecute() { + progDialog = new ProgressDialog(context); + progDialog.setMessage(context.getString(R.string.processing_label)); + progDialog.setCancelable(false); + progDialog.setIndeterminate(true); + progDialog.show(); + } + + + + @Override + protected Void doInBackground(Void... params) { + DownloadRequester requester = DownloadRequester.getInstance(); + for (int idx = 0; idx < selection.length; idx++) { + OpmlElement element = OpmlImportActivity.getReadElements().get(selection[idx]); + Feed feed = new Feed(element.getXmlUrl(), new Date()); + feed.setTitle(element.getText()); + requester.downloadFeed(context.getApplicationContext(), feed); + } + return null; + } + + @SuppressLint("NewApi") + public void executeAsync() { + if (android.os.Build.VERSION.SDK_INT > android.os.Build.VERSION_CODES.GINGERBREAD_MR1) { + executeOnExecutor(THREAD_POOL_EXECUTOR); + } else { + execute(); + } + } + +} |