summaryrefslogtreecommitdiff
path: root/src/de/podfetcher/activity/AddFeedActivity.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/de/podfetcher/activity/AddFeedActivity.java')
-rw-r--r--src/de/podfetcher/activity/AddFeedActivity.java41
1 files changed, 34 insertions, 7 deletions
diff --git a/src/de/podfetcher/activity/AddFeedActivity.java b/src/de/podfetcher/activity/AddFeedActivity.java
index 277167b71..c1e5f5f14 100644
--- a/src/de/podfetcher/activity/AddFeedActivity.java
+++ b/src/de/podfetcher/activity/AddFeedActivity.java
@@ -4,6 +4,7 @@ import android.os.Bundle;
import android.widget.Button;
import android.widget.EditText;
import android.view.View;
+import android.app.ProgressDialog;
import de.podfetcher.R;
import de.podfetcher.feed.Feed;
import de.podfetcher.storage.DownloadRequester;
@@ -12,15 +13,17 @@ import com.actionbarsherlock.app.SherlockActivity;
import com.actionbarsherlock.view.Menu;
import com.actionbarsherlock.view.MenuInflater;
import com.actionbarsherlock.view.MenuItem;
+import java.util.concurrent.Callable;
/** Activity for adding/editing a Feed */
public class AddFeedActivity extends SherlockActivity {
- private static final String TAG = "AddFeedActivity";
-
+ private static final String TAG = "AddFeedActivity";
+
private EditText etxtFeedurl;
private Button butConfirm;
private Button butCancel;
+
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
@@ -46,7 +49,7 @@ public class AddFeedActivity extends SherlockActivity {
});
-
+
}
private void addNewFeed() {
@@ -57,10 +60,34 @@ public class AddFeedActivity extends SherlockActivity {
Feed feed = new Feed(url);
DownloadRequester req = DownloadRequester.getInstance();
req.downloadFeed(this, feed);
- setResult(RESULT_OK);
- finish();
+ observeDownload(feed);
}
}
-
-
+
+ private void observeDownload(Feed feed) {
+ final ProgressDialog dialog;
+ final Callable client;
+
+ dialog = new ProgressDialog(this);
+
+ final DownloadRequester.DownloadObserver observer = new DownloadRequester.DownloadObserver(
+ feed.getDownloadId(), this);
+ client = new Callable() {
+ public Object call() {
+ if(observer.getDone()) {
+ dialog.dismiss();
+ finish();
+ }else {
+ dialog.setMessage(AddFeedActivity.this.getString(observer.getResult()));
+ }
+ return null;
+ }
+ };
+ observer.setClient(client);
+ dialog.show();
+ observer.start();
+ }
+
+
+
}