/**   
* @Title:         ErrorMap.java
* @Package        com.wasu.tvplayersdk.ui
* @author         duhuanbiao
* @date           2014年9月22日 下午4:56:47 
* @Description:   
*/
package cn.com.wasu.main;

import android.content.Context;
import android.text.TextUtils;
import android.util.SparseIntArray;

import com.wasu.common.WError;

/**
 * 
 */
public class ErrorMap {
	private static SparseIntArray sErrorMap = new SparseIntArray();
	static{
		//通用错误
		sErrorMap.append(1, 	R.string.error_system_12_module_common_detail_unknow);
		sErrorMap.append(2, 	R.string.error_system_12_module_common_detail_2);
		sErrorMap.append(3, 	R.string.error_system_12_module_common_detail_3);
		sErrorMap.append(4, 	R.string.error_system_12_module_common_detail_4);
		sErrorMap.append(5, 	R.string.error_system_12_module_common_detail_5);
		sErrorMap.append(6, 	R.string.error_system_12_module_common_detail_6);
		sErrorMap.append(7, 	R.string.error_system_12_module_common_detail_7);
		sErrorMap.append(8, 	R.string.error_system_12_module_common_detail_8);
		sErrorMap.append(9, 	R.string.error_system_12_module_common_detail_9);
		sErrorMap.append(10, 	R.string.error_system_12_module_common_detail_10);
		sErrorMap.append(11, 	R.string.error_system_12_module_common_detail_11);
		sErrorMap.append(12, 	R.string.error_system_12_module_common_detail_12);
		sErrorMap.append(13, 	R.string.error_system_12_module_common_detail_13);
		sErrorMap.append(14, 	R.string.error_system_12_module_common_detail_14);
		
		//播放器错误
		sErrorMap.append(101, 	R.string.error_system_12_module_common_detail_101);
		sErrorMap.append(102, 	R.string.error_system_12_module_common_detail_102);
		sErrorMap.append(103, 	R.string.error_system_12_module_common_detail_103);
		sErrorMap.append(104, 	R.string.error_system_12_module_common_detail_104);
		sErrorMap.append(105, 	R.string.error_system_12_module_common_detail_105);
		sErrorMap.append(106, 	R.string.error_system_12_module_common_detail_106);
		sErrorMap.append(107, 	R.string.error_system_12_module_common_detail_107);
		
		//HTTP请求错误码
		sErrorMap.append(400, 	R.string.error_system_12_module_common_detail_400);
		sErrorMap.append(401, 	R.string.error_system_12_module_common_detail_401);
		sErrorMap.append(403, 	R.string.error_system_12_module_common_detail_403);
		sErrorMap.append(404, 	R.string.error_system_12_module_common_detail_404);
		sErrorMap.append(408, 	R.string.error_system_12_module_common_detail_408);
		sErrorMap.append(450, 	R.string.error_system_12_module_common_detail_450);
		sErrorMap.append(451, 	R.string.error_system_12_module_common_detail_451);
		sErrorMap.append(452, 	R.string.error_system_12_module_common_detail_452);
		sErrorMap.append(453, 	R.string.error_system_12_module_common_detail_453);
		sErrorMap.append(470, 	R.string.error_system_12_module_common_detail_470);
		sErrorMap.append(471, 	R.string.error_system_12_module_common_detail_471);
		sErrorMap.append(500, 	R.string.error_system_12_module_common_detail_500);
		sErrorMap.append(503, 	R.string.error_system_12_module_common_detail_503);
		
		//UPM错误
		sErrorMap.append(601, 	R.string.error_system_12_module_common_detail_601);
		sErrorMap.append(602, 	R.string.error_system_12_module_common_detail_602);
		sErrorMap.append(603, 	R.string.error_system_12_module_common_detail_603);
		sErrorMap.append(604, 	R.string.error_system_12_module_common_detail_604);
		sErrorMap.append(605, 	R.string.error_system_12_module_common_detail_605);
	};
	
	private static String msgDetail(Context context ,int codeOrigin){
		int code = WError.getError(codeOrigin);
		int ResId = sErrorMap.get(code);
		if (context == null) {
			return "错误无法识别，请稍后重试";
		}
		//Add by Frewen ErrorMap中查不到对应错误返回0，进入通用错误提示。
		if (ResId == 0) {
			if (code > 0 && code < 100) {
				ResId = R.string.error_system_12_module_common_detail_unknow;
			} else if (code > 100 && code < 200) {
				ResId = R.string.error_system_12_module_common_detail_100;
			} else if (code > 400 && code < 600) {
				ResId = R.string.error_system_12_module_common_detail_105;
			} else if (code > 600) {
				ResId = R.string.error_system_12_module_common_detail_604;
			} else {
				ResId = R.string.error_system_12_module_common_detail_unknow;
			}
		}
		
		return "错误码：" + codeOrigin + "," + context.getString(ResId);
	}
	
	
	public static String mapError(Context context, int code, String msg) {
		if (!TextUtils.isEmpty(msg)) {
			return msg;
		}
		
		return msgDetail(context, code);
	}
}
