summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/de/danoeh/antennapod/activity/AddFeedActivity.java6
-rw-r--r--src/de/danoeh/antennapod/activity/OnlineFeedViewActivity.java11
-rw-r--r--src/de/danoeh/antennapod/adapter/DownloadLogAdapter.java3
-rw-r--r--src/de/danoeh/antennapod/asynctask/DownloadStatus.java13
-rw-r--r--src/de/danoeh/antennapod/feed/FeedManager.java3
-rw-r--r--src/de/danoeh/antennapod/service/download/DownloadService.java4
-rw-r--r--src/de/danoeh/antennapod/service/download/HttpDownloader.java2
-rw-r--r--src/de/danoeh/antennapod/storage/PodDBAdapter.java2
-rw-r--r--src/de/danoeh/antennapod/util/ConnectionTester.java6
-rw-r--r--src/de/danoeh/antennapod/util/DownloadError.java86
10 files changed, 64 insertions, 72 deletions
diff --git a/src/de/danoeh/antennapod/activity/AddFeedActivity.java b/src/de/danoeh/antennapod/activity/AddFeedActivity.java
index 7e702f28b..545b53494 100644
--- a/src/de/danoeh/antennapod/activity/AddFeedActivity.java
+++ b/src/de/danoeh/antennapod/activity/AddFeedActivity.java
@@ -161,7 +161,7 @@ public class AddFeedActivity extends SherlockActivity {
}
@Override
- public void onConnectionFailure(int reason) {
+ public void onConnectionFailure(DownloadError reason) {
handleDownloadError(reason);
}
});
@@ -177,11 +177,11 @@ public class AddFeedActivity extends SherlockActivity {
progDialog.setMessage(getString(R.string.loading_label));
}
- private void handleDownloadError(int reason) {
+ private void handleDownloadError(DownloadError reason) {
final AlertDialog errorDialog = new AlertDialog.Builder(this).create();
errorDialog.setTitle(R.string.error_label);
errorDialog.setMessage(getString(R.string.error_msg_prefix) + " "
- + DownloadError.getErrorString(this, reason));
+ + reason.getErrorString(this));
errorDialog.setButton(getString(android.R.string.ok),
new DialogInterface.OnClickListener() {
@Override
diff --git a/src/de/danoeh/antennapod/activity/OnlineFeedViewActivity.java b/src/de/danoeh/antennapod/activity/OnlineFeedViewActivity.java
index d6ff537a3..612c45e64 100644
--- a/src/de/danoeh/antennapod/activity/OnlineFeedViewActivity.java
+++ b/src/de/danoeh/antennapod/activity/OnlineFeedViewActivity.java
@@ -88,9 +88,8 @@ public abstract class OnlineFeedViewActivity extends SherlockFragmentActivity {
if (status.isSuccessful()) {
parseFeed();
} else {
- String errorMsg = DownloadError.getErrorString(
- OnlineFeedViewActivity.this,
- status.getReason());
+ String errorMsg = status.getReason().getErrorString(
+ OnlineFeedViewActivity.this);
if (errorMsg != null
&& status.getReasonDetailed() != null) {
errorMsg += " ("
@@ -187,9 +186,9 @@ public abstract class OnlineFeedViewActivity extends SherlockFragmentActivity {
}
});
} else {
- final String errorMsg = DownloadError.getErrorString(
- OnlineFeedViewActivity.this,
- DownloadError.ERROR_PARSER_EXCEPTION)
+ final String errorMsg =
+ DownloadError.ERROR_PARSER_EXCEPTION.getErrorString(
+ OnlineFeedViewActivity.this)
+ " (" + reasonDetailed + ")";
runOnUiThread(new Runnable() {
diff --git a/src/de/danoeh/antennapod/adapter/DownloadLogAdapter.java b/src/de/danoeh/antennapod/adapter/DownloadLogAdapter.java
index f97210cf3..99a30401e 100644
--- a/src/de/danoeh/antennapod/adapter/DownloadLogAdapter.java
+++ b/src/de/danoeh/antennapod/adapter/DownloadLogAdapter.java
@@ -70,8 +70,7 @@ public class DownloadLogAdapter extends BaseAdapter {
holder.successful.setTextColor(convertView.getResources().getColor(
R.color.download_failed_red));
holder.successful.setText(R.string.download_failed);
- String reasonText = DownloadError.getErrorString(context,
- status.getReason());
+ String reasonText = status.getReason().getErrorString(context);
if (status.getReasonDetailed() != null) {
reasonText += ": " + status.getReasonDetailed();
}
diff --git a/src/de/danoeh/antennapod/asynctask/DownloadStatus.java b/src/de/danoeh/antennapod/asynctask/DownloadStatus.java
index e9225d33b..86bcb6814 100644
--- a/src/de/danoeh/antennapod/asynctask/DownloadStatus.java
+++ b/src/de/danoeh/antennapod/asynctask/DownloadStatus.java
@@ -3,6 +3,7 @@ package de.danoeh.antennapod.asynctask;
import java.util.Date;
import de.danoeh.antennapod.feed.FeedFile;
+import de.danoeh.antennapod.util.DownloadError;
/** Contains status attributes for one download */
public class DownloadStatus {
@@ -25,7 +26,7 @@ public class DownloadStatus {
* URL if the download has no other title.
*/
protected String title;
- protected int reason;
+ protected DownloadError reason;
/**
* A message which can be presented to the user to give more information.
* Should be null if Download was successful.
@@ -59,7 +60,7 @@ public class DownloadStatus {
/** Constructor for restoring Download status entries from DB. */
public DownloadStatus(long id, String title, FeedFile feedfile,
- int feedfileType, boolean successful, int reason,
+ int feedfileType, boolean successful, DownloadError reason,
Date completionDate, String reasonDetailed) {
progressPercent = 100;
soFar = 0;
@@ -77,7 +78,7 @@ public class DownloadStatus {
}
/** Constructor for creating new completed downloads. */
- public DownloadStatus(FeedFile feedfile, String title, int reason,
+ public DownloadStatus(FeedFile feedfile, String title, DownloadError reason,
boolean successful, String reasonDetailed) {
this(0, title, feedfile, feedfile.getTypeAsInt(), successful, reason,
new Date(), reasonDetailed);
@@ -115,7 +116,7 @@ public class DownloadStatus {
return statusMsg;
}
- public int getReason() {
+ public DownloadError getReason() {
return reason;
}
@@ -151,7 +152,7 @@ public class DownloadStatus {
this.statusMsg = statusMsg;
}
- public void setReason(int reason) {
+ public void setReason(DownloadError reason) {
this.reason = reason;
}
@@ -195,4 +196,4 @@ public class DownloadStatus {
this.cancelled = cancelled;
}
-} \ No newline at end of file
+}
diff --git a/src/de/danoeh/antennapod/feed/FeedManager.java b/src/de/danoeh/antennapod/feed/FeedManager.java
index a1a8c6c32..5adca403b 100644
--- a/src/de/danoeh/antennapod/feed/FeedManager.java
+++ b/src/de/danoeh/antennapod/feed/FeedManager.java
@@ -1637,7 +1637,8 @@ public class FeedManager {
}
boolean successful = logCursor
.getInt(PodDBAdapter.KEY_SUCCESSFUL_INDEX) > 0;
- int reason = logCursor.getInt(PodDBAdapter.KEY_REASON_INDEX);
+ DownloadError reason = DownloadError.fromCode(
+ logCursor.getInt(PodDBAdapter.KEY_REASON_INDEX));
String reasonDetailed = logCursor
.getString(PodDBAdapter.KEY_REASON_DETAILED_INDEX);
String title = logCursor
diff --git a/src/de/danoeh/antennapod/service/download/DownloadService.java b/src/de/danoeh/antennapod/service/download/DownloadService.java
index e1230e170..d6701c129 100644
--- a/src/de/danoeh/antennapod/service/download/DownloadService.java
+++ b/src/de/danoeh/antennapod/service/download/DownloadService.java
@@ -612,7 +612,7 @@ public class DownloadService extends Service {
private Feed feed;
private DownloadStatus status;
- private int reason;
+ private DownloadError reason;
private boolean successful;
public FeedSyncThread(DownloadStatus status) {
@@ -622,7 +622,7 @@ public class DownloadService extends Service {
public void run() {
Feed savedFeed = null;
- reason = 0;
+ reason = DownloadError.SUCCESS;
String reasonDetailed = null;
successful = true;
final FeedManager manager = FeedManager.getInstance();
diff --git a/src/de/danoeh/antennapod/service/download/HttpDownloader.java b/src/de/danoeh/antennapod/service/download/HttpDownloader.java
index f8f26f6fd..6b081a96d 100644
--- a/src/de/danoeh/antennapod/service/download/HttpDownloader.java
+++ b/src/de/danoeh/antennapod/service/download/HttpDownloader.java
@@ -162,7 +162,7 @@ public class HttpDownloader extends Downloader {
status.setDone(true);
}
- private void onFail(int reason, String reasonDetailed) {
+ private void onFail(DownloadError reason, String reasonDetailed) {
if (AppConfig.DEBUG) {
Log.d(TAG, "Download failed");
}
diff --git a/src/de/danoeh/antennapod/storage/PodDBAdapter.java b/src/de/danoeh/antennapod/storage/PodDBAdapter.java
index 420264840..3d3d23de1 100644
--- a/src/de/danoeh/antennapod/storage/PodDBAdapter.java
+++ b/src/de/danoeh/antennapod/storage/PodDBAdapter.java
@@ -424,7 +424,7 @@ public class PodDBAdapter {
values.put(KEY_FEEDFILETYPE, FeedMedia.FEEDFILETYPE_FEEDMEDIA);
}
}
- values.put(KEY_REASON, status.getReason());
+ values.put(KEY_REASON, status.getReason().getCode());
values.put(KEY_SUCCESSFUL, status.isSuccessful());
values.put(KEY_COMPLETION_DATE, status.getCompletionDate().getTime());
values.put(KEY_REASON_DETAILED, status.getReasonDetailed());
diff --git a/src/de/danoeh/antennapod/util/ConnectionTester.java b/src/de/danoeh/antennapod/util/ConnectionTester.java
index 2fd22d356..5d940d9e1 100644
--- a/src/de/danoeh/antennapod/util/ConnectionTester.java
+++ b/src/de/danoeh/antennapod/util/ConnectionTester.java
@@ -14,7 +14,7 @@ public class ConnectionTester implements Runnable {
private static final String TAG = "ConnectionTester";
private String strUrl;
private Callback callback;
- private int reason;
+ private DownloadError reason;
private Handler handler;
@@ -68,10 +68,10 @@ public class ConnectionTester implements Runnable {
public static abstract class Callback {
public abstract void onConnectionSuccessful();
- public abstract void onConnectionFailure(int reason);
+ public abstract void onConnectionFailure(DownloadError reason);
}
- public int getReason() {
+ public DownloadError getReason() {
return reason;
}
diff --git a/src/de/danoeh/antennapod/util/DownloadError.java b/src/de/danoeh/antennapod/util/DownloadError.java
index 4723a521c..c37a14584 100644
--- a/src/de/danoeh/antennapod/util/DownloadError.java
+++ b/src/de/danoeh/antennapod/util/DownloadError.java
@@ -4,54 +4,46 @@ import android.content.Context;
import de.danoeh.antennapod.R;
/** Utility class for Download Errors. */
-public class DownloadError {
- public static final int ERROR_PARSER_EXCEPTION = 1;
- public static final int ERROR_UNSUPPORTED_TYPE = 2;
- public static final int ERROR_CONNECTION_ERROR = 3;
- public static final int ERROR_MALFORMED_URL = 4;
- public static final int ERROR_IO_ERROR = 5;
- public static final int ERROR_FILE_EXISTS = 6;
- public static final int ERROR_DOWNLOAD_CANCELLED = 7;
- public static final int ERROR_DEVICE_NOT_FOUND = 8;
- public static final int ERROR_HTTP_DATA_ERROR = 9;
- public static final int ERROR_NOT_ENOUGH_SPACE = 10;
- public static final int ERROR_UNKNOWN_HOST = 11;
- public static final int ERROR_REQUEST_ERROR = 12;
-
- /** Get a human-readable string for a specific error code. */
- public static String getErrorString(Context context, int code) {
- int resId;
- switch(code) {
- case ERROR_NOT_ENOUGH_SPACE:
- resId = R.string.download_error_insufficient_space;
- break;
- case ERROR_DEVICE_NOT_FOUND:
- resId = R.string.download_error_device_not_found;
- break;
- case ERROR_IO_ERROR:
- resId = R.string.download_error_io_error;
- break;
- case ERROR_HTTP_DATA_ERROR:
- resId = R.string.download_error_http_data_error;
- break;
- case ERROR_PARSER_EXCEPTION:
- resId = R.string.download_error_parser_exception;
- break;
- case ERROR_UNSUPPORTED_TYPE:
- resId = R.string.download_error_unsupported_type;
- break;
- case ERROR_CONNECTION_ERROR:
- resId = R.string.download_error_connection_error;
- break;
- case ERROR_UNKNOWN_HOST:
- resId = R.string.download_error_unknown_host;
- break;
- case ERROR_REQUEST_ERROR:
- resId = R.string.download_error_request_error;
- break;
- default:
- resId = R.string.download_error_error_unknown;
+public enum DownloadError {
+ SUCCESS(0, R.string.download_successful),
+ ERROR_PARSER_EXCEPTION(1, R.string.download_error_parser_exception),
+ ERROR_UNSUPPORTED_TYPE(2, R.string.download_error_unsupported_type),
+ ERROR_CONNECTION_ERROR(3, R.string.download_error_connection_error),
+ ERROR_MALFORMED_URL(4, R.string.download_error_error_unknown),
+ ERROR_IO_ERROR(5, R.string.download_error_io_error),
+ ERROR_FILE_EXISTS(6, R.string.download_error_error_unknown),
+ ERROR_DOWNLOAD_CANCELLED(7, R.string.download_error_error_unknown),
+ ERROR_DEVICE_NOT_FOUND(8, R.string.download_error_device_not_found),
+ ERROR_HTTP_DATA_ERROR(9, R.string.download_error_http_data_error),
+ ERROR_NOT_ENOUGH_SPACE(10, R.string.download_error_insufficient_space),
+ ERROR_UNKNOWN_HOST(11, R.string.download_error_unknown_host),
+ ERROR_REQUEST_ERROR(12, R.string.download_error_request_error);
+
+ private final int code;
+ private final int resId;
+
+ private DownloadError(int code, int resId) {
+ this.code = code;
+ this.resId = resId;
+ }
+
+ /** Return DownloadError from its associated code. */
+ public static DownloadError fromCode(int code) {
+ for (DownloadError reason : values()) {
+ if (reason.getCode() == code) {
+ return reason;
+ }
}
+ throw new IllegalArgumentException("unknown code: " + code);
+ }
+
+ /** Get machine-readable code. */
+ public int getCode() {
+ return code;
+ }
+
+ /** Get a human-readable string. */
+ public String getErrorString(Context context) {
return context.getString(resId);
}