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 { 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(); } } }