diff options
Diffstat (limited to 'src/de/danoeh/antennapod/util/DownloadError.java')
-rw-r--r-- | src/de/danoeh/antennapod/util/DownloadError.java | 86 |
1 files changed, 39 insertions, 47 deletions
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); } |