diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/de/podfetcher/activity/AddFeedActivity.java | 23 | ||||
-rw-r--r-- | src/de/podfetcher/util/URLChecker.java | 29 |
2 files changed, 48 insertions, 4 deletions
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(); + } +} |