diff options
author | Daniel Oeh <daniel@danielpc.(none)> | 2012-04-14 23:02:38 +0200 |
---|---|---|
committer | Daniel Oeh <daniel@danielpc.(none)> | 2012-04-14 23:05:26 +0200 |
commit | 055fda3c9112bce67cc8610bf86a4632b0b53aaf (patch) | |
tree | d459cd3525ea24836422f8f4829da72a4b950c53 | |
parent | 43de4eaf586bf77bb458cc79b2b763f213feeb24 (diff) | |
download | AntennaPod-055fda3c9112bce67cc8610bf86a4632b0b53aaf.zip |
Added functionality to AddFeedActivity
-rw-r--r-- | res/layout/addfeed.xml | 35 | ||||
-rw-r--r-- | res/values/strings.xml | 4 | ||||
-rw-r--r-- | src/de/podfetcher/activity/AddFeedActivity.java | 23 | ||||
-rw-r--r-- | src/de/podfetcher/util/URLChecker.java | 29 |
4 files changed, 77 insertions, 14 deletions
diff --git a/res/layout/addfeed.xml b/res/layout/addfeed.xml index 605dcac7b..b084f2eee 100644 --- a/res/layout/addfeed.xml +++ b/res/layout/addfeed.xml @@ -1,15 +1,30 @@ <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" + android:layout_width="fill_parent" + android:layout_height="fill_parent" + android:orientation="vertical" > + <TextView + android:id="@+id/txtvFeedurl" + android:text="@string/feedurl_label" android:layout_width="fill_parent" - android:layout_height="fill_parent" - android:orientation="vertical" > + android:layout_height="wrap_content" + /> <EditText android:id="@+id/etxtFeedurl" - android:layout_width="fill_parent" - android:layout_height="wrap_content" - /> - <Button android:id="@+id/butConfirm" - android:text="@string/confirm_label" - android:layout_width="wrap_content" - android:layout_height="wrap_content" - /> + android:layout_width="fill_parent" + android:layout_height="wrap_content"/> + <LinearLayout + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:orientation="horizontal"> + <Button android:id="@+id/butConfirm" + android:text="@string/confirm_label" + android:layout_width="0px" + android:layout_height="wrap_content" + android:layout_weight="1"/> + <Button android:id="@+id/butCancel" + android:layout_width="0px" + android:layout_height="wrap_content" + android:layout_weight="1" + android:text="@string/cancel_label"/> + </LinearLayout> </LinearLayout> diff --git a/res/values/strings.xml b/res/values/strings.xml index ac12da982..a098e6e0b 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -9,6 +9,10 @@ <!-- --> <string name="confirm_label">Confirm</string> + <string name="cancel_label">Cancel</string> + + <!-- AddFeed Activity labels --> + <string name="feedurl_label">Feed URL</string> <!-- Feeditemview labels--> <string name="download_label">Download</string> diff --git a/src/de/podfetcher/activity/AddFeedActivity.java b/src/de/podfetcher/activity/AddFeedActivity.java index 6c9cf0f18..277167b71 100644 --- a/src/de/podfetcher/activity/AddFeedActivity.java +++ b/src/de/podfetcher/activity/AddFeedActivity.java @@ -7,6 +7,7 @@ import android.view.View; import de.podfetcher.R; import de.podfetcher.feed.Feed; import de.podfetcher.storage.DownloadRequester; +import de.podfetcher.util.URLChecker; import com.actionbarsherlock.app.SherlockActivity; import com.actionbarsherlock.view.Menu; import com.actionbarsherlock.view.MenuInflater; @@ -18,6 +19,7 @@ public class AddFeedActivity extends SherlockActivity { private EditText etxtFeedurl; private Button butConfirm; + private Button butCancel; @Override protected void onCreate(Bundle savedInstanceState) { @@ -26,25 +28,38 @@ public class AddFeedActivity extends SherlockActivity { etxtFeedurl = (EditText) findViewById(R.id.etxtFeedurl); butConfirm = (Button) findViewById(R.id.butConfirm); + butCancel = (Button) findViewById(R.id.butCancel); butConfirm.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { addNewFeed(); + } + }); + + butCancel.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + setResult(RESULT_CANCELED); finish(); } }); + } private void addNewFeed() { String url = etxtFeedurl.getText().toString(); - Feed feed = new Feed(url); - DownloadRequester req = DownloadRequester.getInstance(); - req.downloadFeed(this, feed); - + url = URLChecker.prepareURL(url); + if(url != null) { + Feed feed = new Feed(url); + DownloadRequester req = DownloadRequester.getInstance(); + req.downloadFeed(this, feed); + setResult(RESULT_OK); + finish(); + } } diff --git a/src/de/podfetcher/util/URLChecker.java b/src/de/podfetcher/util/URLChecker.java new file mode 100644 index 000000000..e8916f06a --- /dev/null +++ b/src/de/podfetcher/util/URLChecker.java @@ -0,0 +1,29 @@ +package de.podfetcher.util; + +import android.webkit.URLUtil; +import android.util.Log; + +/** Provides methods for checking and editing a URL */ +public class URLChecker { + + private static final String TAG = "URLChecker"; + private static final String FEEDBURNER_URL = "feeds.feedburner.com"; + private static final String FEEDBURNER_PREFIX = "?format=xml"; + + /** Checks if URL is valid and modifies it if necessary */ + public static String prepareURL(String url) { + StringBuilder builder = new StringBuilder(); + + if(!url.startsWith("http")) { + builder.append("http://"); + Log.d(TAG, "Missing http; appending"); + } + builder.append(url); + + if(url.contains(FEEDBURNER_URL)) { + Log.d(TAG, "URL seems to be Feedburner URL; appending prefix"); + builder.append(FEEDBURNER_PREFIX); + } + return builder.toString(); + } +} |