/** * Copyright 2010 Eric Taix * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. * */ package com.bigpupdev.synodroid.data; import java.util.ArrayList; import java.util.List; import com.bigpupdev.synodroid.R; import android.content.Context; /** * Here are defined all torrent'status * * @author Eric Taix (eric.taix at gmail.com) */ public enum TaskStatus { TASK_UNKNOWN, TASK_WAITING, TASK_DOWNLOADING, TASK_SEEDING, TASK_PAUSED, TASK_FINISHED, TASK_HASH_CHECKING, TASK_ERROR, TASK_ERROR_BROKEN_LINK, TASK_ERROR_DISK_FULL, TASK_PRE_SEEDING, TASK_FINISHING, TASK_ERROR_DEST_NO_EXIST, TASK_ERROR_DEST_DENY, TASK_ERROR_QUOTA_REACHED, TASK_ERROR_TIMEOUT, TASK_ERROR_EXCEED_MAX_FS_SIZE, TASK_ERROR_EXCEED_MAX_TEMP_FS_SIZE, TASK_ERROR_EXCEED_MAX_DEST_FS_SIZE, TASK_ERROR_TORRENT_DUPLICATE, TASK_ERROR_TORRENT_INVALID, TASK_FILEHOSTING_WAITING, TASK_EXTRACTING, TASK_ERROR_NAME_TOO_LONG_ENCRYPTION, TASK_ERROR_NAME_TOO_LONG, TASK_ERROR_FILE_NO_EXIST, TASK_ERROR_REQUIRED_PREMIUM, TASK_ERROR_NOT_SUPPORT_TYPE, TASK_ERROR_FTP_ENCRYPTION_NOT_SUPPORT_TYPE, TASK_ERROR_EXTRACT_FAIL, TASK_ERROR_EXTRACT_WRONG_PASSWORD, TASK_ERROR_EXTRACT_INVALID_ARCHIVE, TASK_ERROR_EXTRACT_QUOTA_REACHED, TASK_ERROR_EXTRACT_DISK_FULL, TASK_ERROR_REQUIRED_ACCOUNT; public static List<String> getOnGoingTasks(){ List<String> onGoingTasks = new ArrayList<String>(); onGoingTasks.add("TASK_WAITING"); onGoingTasks.add("TASK_DOWNLOADING"); onGoingTasks.add("TASK_PAUSED"); onGoingTasks.add("TASK_HASH_CHECKING"); onGoingTasks.add("TASK_PRE_SEEDING"); onGoingTasks.add("TASK_FILEHOSTING_WAITING"); onGoingTasks.add("TASK_EXTRACTING"); return onGoingTasks; } public static boolean isStateDownloading(String state){ return state.equals("TASK_DOWNLOADING"); } public static boolean isStateCompleted(String state){ return state.equals("TASK_FINISHED"); } public static boolean isStateActive(String state){ return state.endsWith("ING"); } public static boolean isStateInactive(String state){ return !isStateActive(state); } public static boolean isStateStopped(String state){ return state.equals("TASK_PAUSED"); } /** * Return a localized status label * * @param ctxP * @param statusP * @return */ public static String getLabel(Context ctxP, String statusP) { try{ TaskStatus status = TaskStatus.valueOf(statusP); switch (status) { case TASK_FILEHOSTING_WAITING: case TASK_WAITING: return ctxP.getString(R.string.detail_status_waiting); case TASK_DOWNLOADING: return ctxP.getString(R.string.detail_status_downloading); case TASK_PRE_SEEDING: case TASK_SEEDING: return ctxP.getString(R.string.detail_status_seeding); case TASK_PAUSED: return ctxP.getString(R.string.detail_status_paused); case TASK_FINISHING: case TASK_FINISHED: return ctxP.getString(R.string.detail_status_finished); case TASK_HASH_CHECKING: return ctxP.getString(R.string.detail_status_hash_checking); case TASK_UNKNOWN: return ctxP.getString(R.string.detail_unknown); case TASK_ERROR_DEST_NO_EXIST: return ctxP.getString(R.string.detail_status_error_no_exist); case TASK_ERROR_DEST_DENY: return ctxP.getString(R.string.detail_status_error_denied); case TASK_ERROR_EXTRACT_QUOTA_REACHED: case TASK_ERROR_QUOTA_REACHED: return ctxP.getString(R.string.detail_status_error_quota); case TASK_ERROR_TIMEOUT: return ctxP.getString(R.string.detail_status_error_timeout); case TASK_ERROR_EXCEED_MAX_FS_SIZE: return ctxP.getString(R.string.detail_status_error_max_fs_size); case TASK_ERROR_BROKEN_LINK: return ctxP.getString(R.string.detail_status_error_broken); case TASK_ERROR_EXTRACT_DISK_FULL: case TASK_ERROR_DISK_FULL: return ctxP.getString(R.string.detail_status_error_full); case TASK_ERROR_EXCEED_MAX_TEMP_FS_SIZE: return ctxP.getString(R.string.detail_status_error_max_temp_file); case TASK_ERROR_EXCEED_MAX_DEST_FS_SIZE: return ctxP.getString(R.string.detail_status_error_max_dest_file); case TASK_ERROR_TORRENT_DUPLICATE: return ctxP.getString(R.string.detail_status_error_duplicate); case TASK_ERROR_TORRENT_INVALID: return ctxP.getString(R.string.detail_status_error_invalid); case TASK_EXTRACTING: return ctxP.getString(R.string.detail_status_extracting); case TASK_ERROR_NAME_TOO_LONG_ENCRYPTION: case TASK_ERROR_NAME_TOO_LONG: return ctxP.getString(R.string.detail_status_error_name_too_long); case TASK_ERROR_FILE_NO_EXIST: return ctxP.getString(R.string.detail_status_error_not_exist); case TASK_ERROR_REQUIRED_PREMIUM: return ctxP.getString(R.string.detail_status_error_premium); case TASK_ERROR_NOT_SUPPORT_TYPE: case TASK_ERROR_FTP_ENCRYPTION_NOT_SUPPORT_TYPE: return ctxP.getString(R.string.detail_status_error_not_supported); case TASK_ERROR_EXTRACT_FAIL: return ctxP.getString(R.string.detail_status_error_extract_failed); case TASK_ERROR_EXTRACT_WRONG_PASSWORD: return ctxP.getString(R.string.detail_status_error_extract_wrong_password); case TASK_ERROR_EXTRACT_INVALID_ARCHIVE: return ctxP.getString(R.string.detail_status_error_invalid_archive); case TASK_ERROR_REQUIRED_ACCOUNT: return ctxP.getString(R.string.detail_status_error_account); case TASK_ERROR: default: return ctxP.getString(R.string.detail_status_error); } } catch (IllegalArgumentException e){ if (statusP.startsWith("TASK_EXTRACTING")){ return ctxP.getString(R.string.detail_status_extracting); } return statusP; } } }