summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Oeh <daniel@danielpc.(none)>2012-04-14 23:02:38 +0200
committerDaniel Oeh <daniel@danielpc.(none)>2012-04-14 23:05:26 +0200
commit055fda3c9112bce67cc8610bf86a4632b0b53aaf (patch)
treed459cd3525ea24836422f8f4829da72a4b950c53
parent43de4eaf586bf77bb458cc79b2b763f213feeb24 (diff)
downloadAntennaPod-055fda3c9112bce67cc8610bf86a4632b0b53aaf.zip
Added functionality to AddFeedActivity
-rw-r--r--res/layout/addfeed.xml35
-rw-r--r--res/values/strings.xml4
-rw-r--r--src/de/podfetcher/activity/AddFeedActivity.java23
-rw-r--r--src/de/podfetcher/util/URLChecker.java29
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();
+ }
+}