/*
* ErrorCode.java
*
* Version info
*
* Create time
*
* Last modify time
*
* Copyright (c) 2010 FOXCONN Technology Group All rights reserved
*/
package com.easyview.ebook.reader.engine.core;
import java.util.HashMap;
import com.easyview.ebook.reader.engine.util.Logger;
import android.os.Handler;
import android.os.Message;
/**
* 代碼類: 該類包含所有Engine處理時產生的异常或錯誤代碼.同時用來處理相關錯誤代碼.
* <p>
* 代碼類型包含EngineMsgCode、AdobeMsgCode、FbreaderMsgCode
* <p>
* 錯誤處理: 錯誤處理需要實現IErrorCall接口回調,當相應錯誤發生時,Engine將自動處理這些回調.
* <p>
* Example: <code>
* <p>
* <p> IErrorCall inputPdfPassword = new IErrorCall() {
* <p> @Override
* <p> public void handleError() {
* <p> showPdfInputDialog();
* <p> }
* <p> };
* <p>
* <p> mIEREngine.setErrorHandler(AdobeMsgCode.STATE_ERROR_PDF_T3_NEED_PASSWORD, inputPdfPassword);
* </code>
*/
public class EngineCode {
/** The Constant TAG. */
static private final String TAG = "EngineCode";
/**
* Engine相關的信息代碼,包含錯誤和异常碼
*/
public interface EngineMsgCode {
/** 無錯誤. */
public static final int NO_ERROR = 0;
/** 保存批注失敗. */
public static final int ENGINE_ERROR_COMMENT_SAVE_FAILED = -9980;
/** 讀取批注失敗. */
public static final int ENGINE_ERROR_COMMENT_LOAD_FAILED = -9981;
/** 刪除批注失敗. */
public static final int ENGINE_ERROR_COMMENT_DELETE_FAILED = -9982;
/** 初始化批注模塊失敗. */
public static final int ENGINE_ERROR_COMMENT_INIT_FAILED = -9983;
/** 批注模塊尚未初始化. */
public static final int ENGINE_ERROR_COMMENT_NOT_INIT = -9984;
/** 任務管理器尚未運行. */
public static final int ENGINE_ERROR_TASK_SERVER_NOT_RUNNING = -9985;
/** 任務管理器崩潰. */
public static final int ENGINE_ERROR_TASK_SERVER_CRASH = -9986;
/** 任務列表已清除. */
public static final int ENGINE_NORMAL_TASK_CLEAR = -9987;
/** 章節跳轉失敗. */
public static final int ENGINE_WARN_CHAPTER_JUMP_FAILED = -9988;
/** 跳轉到上一章節失敗. */
public static final int ENGINE_WARN_CHAPTER_UP_FAILED = -9989;
/** 跳轉到下一章節失敗. */
public static final int ENGINE_WARN_CHAPTER_DOWN_FAILED = -9990;
/** 錯誤的章節序號. */
public static final int ENGINE_WARN_CHAPTER_INDEX_FAILED = -9991;
/** 關閉書籍失敗. */
public static final int ENGINE_ERROR_BOOK_CLOSE_FAILED = -9992;
/** 書籍不存在. */
public static final int ENGINE_ERROR_BOOK_NOT_EXISTS = -9993;
/** 頁碼錯誤. */
public static final int ENGINE_ERROR_PAGE_NUMBER_INVALID = -9994;
/** 渲染失敗. */
public static final int ENGINE_ERROR_RENDER_FAILED = -9995;
/** Engine錯誤. */
public static final int ENGINE_ERROR_ENGINE_ERROR = -9996;
/** 書籍不存在或格式不正確. */
public static final int ENGINE_ERROR_BOOK_INVALID = -9997;
/** 讀取數據記錄失敗. */
public static final int ENGINE_ERROR_RECORDER_LOAD_FAILED = -9998;
/** 保存數據記錄失敗. */
public static final int ENGINE_ERROR_RECORDER_SAVE_FAILED = -9999;
/** 超出內存範圍. */
public static final int ENGINE_FATAL_OUTOF_MEMORY = -10000;
/** 代碼錯誤. */
public static final int ENGINE_ERROR_CODE_ERROR = -10001;
/** 已到達最小字體. */
public static final int ENGINE_WARN_MIN_FONT = -10002;
/** 已到達最大字體. */
public static final int ENGINE_WARN_MAX_FONT = -10003;
/** 搜索結果為空. */
public static final int ENGINE_WARN_SEARCH_RESULT_NULL = -10004;
/** 搜索關鍵字為空. */
public static final int ENGINE_WARN_SEARCH_KEY_NULL = -10005;
/** 搜索下一條結果失敗. */
public static final int ENGINE_ERROR_SEARCH_GO_NEXT_FAILED = -10006;
/** 搜索上一條結果失敗. */
public static final int ENGINE_ERROR_SEARCH_GO_PREVIOUS_FAILED = -10007;
/** 添加書簽失敗. */
public static final int ENGINE_ERROR_BOOKMARK_ADD_FAILED = -10008;
/** 刪除書簽失敗. */
public static final int ENGINE_ERROR_BOOKMARK_DEL_FAILED = -10009;
/** 跳轉書簽失敗. */
public static final int ENGINE_ERROR_BOOKMARK_GOTO_FAILED = -10010;
/** 關閉之前打開的書失敗. */
public static final int ENGINE_ERROR_BOOK_CLOSE_PREVIOUS_FAILED = -10011;
/** 旋屏失敗. */
public static final int ENGINE_ERROR_BOOK_ROTATE_SCREEN_FAILED = -10012;
/** 添加高亮選擇失敗. */
public static final int ENGINE_ERROR_BOOK_ADD_HIGHLIGHT_FAILED = -10013;
/** 刪除高亮選擇失敗. */
public static final int ENGINE_ERROR_BOOK_DEL_HIGHLIGHT_FAILED = -10014;
/** 放大字體失敗. */
public static final int STATE_ERROR_ZOOM_IN_FAILED = -10015;
/** 縮小字體失敗. */
public static final int STATE_ERROR_ZOOM_OUT_FAILED = -10016;
/** 向上翻頁失敗. */
public static final int STATE_ERROR_PAGE_UP_FAILED = -10017;
/** 向下翻頁失敗. */
public static final int STATE_ERROR_PAGE_DOWN_FAILED = -10018;
/** 獲取總頁碼失敗. */
public static final int STATE_ERROR_GET_TOTAL_PAGE_NUM_FAILED = -10019;
/** 獲取當前頁碼失敗. */
public static final int STATE_ERROR_GET_CURRENT_PAGE_NUM_FAILED = -10020;
/** 獲取Bitmap對象失敗. */
public static final int STATE_ERROR_GET_BITMAP_FAILED = -10021;
/** 跳轉頁碼失敗. */
public static final int STATE_ERROR_GOTO_PAGE_FAILED = -10022;
/** 跳轉位置失敗. */
public static final int STATE_ERROR_GOTO_POSITION_FAILED = -10023;
/** 保存書籍信息至數據庫失敗. */
public static final int STATE_ERROR_DB_SAVE_BOOK_FAILED = -10024;
/** 從數據庫讀取書籍信息失敗. */
public static final int STATE_ERROR_DB_LOAD_BOOK_FAILED = -10025;
/** 添加書簽至數據庫失敗或數據庫中已存在重復數據. */
public static final int STATE_ERROR_DB_ADD_BOOKMARK_FAILED = -10026;
/** 從數據庫刪除書簽失敗. */
public static final int STATE_ERROR_DB_DEL_BOOKMARK_FAILED = -10027;
/** 清空數據庫的書簽信息失敗. */
public static final int STATE_ERROR_DB_CLEAN_BOOKMARK_FAILED = -10028;
/** 添加高亮選擇至數據庫失敗或數據庫中已存在重復數據. */
public static final int STATE_ERROR_DB_ADD_EMPHASIS_FAILED = -10029;
/** 從數據庫刪除高亮選擇信息失敗. */
public static final int STATE_ERROR_DB_DEL_EMPHASIS_FAILED = -10030;
/** 清空數據庫的高亮選擇信息失敗. */
public static final int STATE_ERROR_DB_CLEAN_EMPHASIS_FAILED = -10031;
/** 跳转搜索结果页失败. */
public static final int STATE_ERROR_SEARCH_GOTO_RESULT_FAILED = -10032;
/** 縮放字體失敗. */
public static final int STATE_ERROR_ZOOM_LEVEL_FAILED = -10033;
}
/**
* Adobe相關的信息碼.
*/
public interface AdobeMsgCode {
/** 未知FATAL. */
public static final int STATE_FATAL_UNKNOWN = -1;
/** 未知ERROR. */
public static final int STATE_ERROR_UNKNOWN = -2;
/** The Constant STATE_WARN_UNKNOWN. */
// public static final int STATE_WARN_UNKNOWN = -3;
/** 系統初始化錯誤. */
public static final int STATE_FATAL_SYS_INIT_FAIL = -102;
/** 前一本書沒有關閉. */
public static final int STATE_FATAL_PREVIOUS_FILE_NOT_CLOSED = -103;
/** 文件不存在. */
public static final int STATE_FATAL_FILE_NOT_EXIST = -110;
/** The Constant STATE_ERROR_PKG_RESOURCE_TOO_LONG. */
public static final int STATE_ERROR_PKG_RESOURCE_TOO_LONG = -140;
/** The Constant STATE_ERROR_PKG_COMPRESSED_SIZE_TOO_BIG. */
public static final int STATE_ERROR_PKG_COMPRESSED_SIZE_TOO_BIG = -150;
/** The Constant STATE_ERROR_PKG_ARTIFICIAL_PAGE_BREAKS. */
public static final int STATE_ERROR_PKG_ARTIFICIAL_PAGE_BREAKS = -160;
/** PASSHASH沒找到. */
public static final int STATE_ERROR_PASSHASH_NOT_FOUND = -400;
/** PDF書需要打開密碼. */
public static final int STATE_ERROR_PDF_T3_NEED_PASSWORD = -410;
/** The Constant STATE_ERROR_USER_NOT_ACTIVATED. */
public static final int STATE_ERROR_USER_NOT_ACTIVATED = -440;
/** PDF書密碼為空. */
public static final int STATE_ERROR_PDF_EMPTY_PASSWORD = -420;
/** 錯誤的PASSHASH. */
public static final int STATE_ERROR_NULL_PASSHASH = -113;
/** The Constant STATE_ERROR_PASSHASH_NO_URL. */
public static final int STATE_ERROR_PASSHASH_NO_URL = -405;
/** The Constant STATE_ERROR_PASSHASH_OP_FAIL. */
public static final int STATE_ERROR_PASSHASH_OP_FAIL = -406;
/** The Constant STATE_FATAL_SYS_NOT_INIT. */
public static final int STATE_FATAL_SYS_NOT_INIT = -101;
/** The Constant STATE_FATAL_PDF_T3_DOC_EXCEPTION. */
public static final int STATE_FATAL_PDF_T3_DOC_EXCEPTION = -200;
/** The Constant STATE_ERROR_PDF_T3_DOC_EXCEPTION. */
public static final int STATE_ERROR_PDF_T3_DOC_EXCEPTION = -210;
/** The Constant STATE_FATAL_PKG_XML_PARSE_ERROR. */
public static final int STATE_FATAL_PKG_XML_PARSE_ERROR = -300;
/** The Constant STATE_ERROR_PKG_XML_PARSE_ERROR. */
public static final int STATE_ERROR_PKG_XML_PARSE_ERROR = -310;
/** The Constant STATE_ERROR_NULL_BOOKMARK. */
public static final int STATE_ERROR_NULL_BOOKMARK = -111;
/** The Constant STATE_WARN_NEGATIVE_POSITION. */
public static final int STATE_WARN_NEGATIVE_POSITION = -112;
/** The Constant STATE_WARN_DEVICE_ALREADY_ACTIVATED. */
public static final int STATE_WARN_DEVICE_ALREADY_ACTIVATED = -121;
/** The Constant STATE_WARN_DEVICE_NOT_ACTIVATE. */
public static final int STATE_WARN_DEVICE_NOT_ACTIVATE = -120;
/** The Constant STATE_ERROR_NO_VALID_LICENSE. */
public static final int STATE_ERROR_NO_VALID_LICENSE = -450;
/** The Constant STATE_WARN_DEVICE_ACTIVE_130. */
public static final int STATE_WARN_DEVICE_ACTIVE_130 = -130;
/** The Constant STATE_ERROR_CORE_EXPIRED. */
public static final int STATE_ERROR_CORE_EXPIRED = -451;
/** The Constant STATE_ERROR_CORE_LOAN_NOT_ON_RECORD. */
public static final int STATE_ERROR_CORE_LOAN_NOT_ON_RECORD = -452;
/** The Constant STATE_NORMAL_GET_MORE_SEARCH_RESULT. */
public static final int STATE_NORMAL_GET_MORE_SEARCH_RESULT = -453;
}
/**
* FBReader相關的信息碼.
*/
public interface FbreaderMsgCode {
/** 打開書失敗. */
public static final int STATE_ERROR_OPEN_FILE_FAILED = -7000;
/** 段落序號錯誤. */
public static final int STATE_ERROR_PH_INDEX_ERROR = -7001;
/** FBReader引擎初始化失敗. */
public static final int STATE_ERROR_APP_INIT_ERROR = -7002;
/** 到達段落末尾. */
public static final int STATE_NORMAL_END_OF_PH = -7003;
/** 到達段落開頭. */
public static final int STATE_NORMAL_BEGIN_OF_PH = -7004;
/** 書籍裝載完成. */
public static final int STATE_NORMAL_LOAD_BOOK_FINISHED = -7005;
}
/** The m last error. */
private int mLastError = EngineMsgCode.NO_ERROR;
/** The m engine error. */
static private EngineCode mEngineError = null;
/** The m handler. */
static private ErrroHandler mHandler = null;
/** The m error map. */
static private HashMap<String, IErrorCall> mErrorMap;
/** The m code family. */
static private int[] mCodeFamily = {
EngineMsgCode.ENGINE_ERROR_COMMENT_SAVE_FAILED,
EngineMsgCode.ENGINE_ERROR_COMMENT_LOAD_FAILED,
EngineMsgCode.ENGINE_ERROR_COMMENT_DELETE_FAILED,
EngineMsgCode.ENGINE_ERROR_COMMENT_INIT_FAILED,
EngineMsgCode.ENGINE_ERROR_COMMENT_NOT_INIT,
EngineMsgCode.ENGINE_ERROR_TASK_SERVER_NOT_RUNNING,
EngineMsgCode.ENGINE_ERROR_TASK_SERVER_CRASH,
EngineMsgCode.ENGINE_NORMAL_TASK_CLEAR,
EngineMsgCode.ENGINE_WARN_CHAPTER_JUMP_FAILED,
EngineMsgCode.ENGINE_WARN_CHAPTER_UP_FAILED,
EngineMsgCode.ENGINE_WARN_CHAPTER_DOWN_FAILED,
EngineMsgCode.ENGINE_WARN_CHAPTER_INDEX_FAILED,
EngineMsgCode.ENGINE_ERROR_BOOK_CLOSE_FAILED,
EngineMsgCode.ENGINE_ERROR_BOOK_NOT_EXISTS,
EngineMsgCode.ENGINE_ERROR_PAGE_NUMBER_INVALID,
EngineMsgCode.ENGINE_ERROR_RENDER_FAILED,
EngineMsgCode.ENGINE_ERROR_ENGINE_ERROR,
EngineMsgCode.ENGINE_ERROR_BOOK_INVALID,
EngineMsgCode.ENGINE_ERROR_RECORDER_LOAD_FAILED,
EngineMsgCode.ENGINE_ERROR_RECORDER_SAVE_FAILED,
EngineMsgCode.ENGINE_FATAL_OUTOF_MEMORY,
EngineMsgCode.ENGINE_ERROR_CODE_ERROR,
EngineMsgCode.ENGINE_WARN_MIN_FONT,
EngineMsgCode.ENGINE_WARN_MAX_FONT,
EngineMsgCode.ENGINE_WARN_SEARCH_RESULT_NULL,
EngineMsgCode.ENGINE_WARN_SEARCH_KEY_NULL,
EngineMsgCode.ENGINE_ERROR_SEARCH_GO_NEXT_FAILED,
EngineMsgCode.ENGINE_ERROR_SEARCH_GO_PREVIOUS_FAILED,
EngineMsgCode.ENGINE_ERROR_BOOKMARK_ADD_FAILED,
EngineMsgCode.ENGINE_ERROR_BOOKMARK_DEL_FAILED,
EngineMsgCode.ENGINE_ERROR_BOOKMARK_GOTO_FAILED,
EngineMsgCode.ENGINE_ERROR_BOOK_CLOSE_PREVIOUS_FAILED,
EngineMsgCode.ENGINE_ERROR_BOOK_ROTATE_SCREEN_FAILED,
EngineMsgCode.ENGINE_ERROR_BOOK_ADD_HIGHLIGHT_FAILED,
EngineMsgCode.ENGINE_ERROR_BOOK_DEL_HIGHLIGHT_FAILED,
EngineMsgCode.STATE_ERROR_ZOOM_IN_FAILED,
EngineMsgCode.STATE_ERROR_ZOOM_OUT_FAILED,
EngineMsgCode.STATE_ERROR_PAGE_DOWN_FAILED,
EngineMsgCode.STATE_ERROR_PAGE_UP_FAILED,
EngineMsgCode.STATE_ERROR_GET_TOTAL_PAGE_NUM_FAILED,
EngineMsgCode.STATE_ERROR_GET_CURRENT_PAGE_NUM_FAILED,
EngineMsgCode.STATE_ERROR_GET_BITMAP_FAILED,
EngineMsgCode.STATE_ERROR_GOTO_PAGE_FAILED,
EngineMsgCode.STATE_ERROR_GOTO_POSITION_FAILED,
EngineMsgCode.STATE_ERROR_DB_SAVE_BOOK_FAILED,
EngineMsgCode.STATE_ERROR_DB_LOAD_BOOK_FAILED,
EngineMsgCode.STATE_ERROR_DB_ADD_BOOKMARK_FAILED,
EngineMsgCode.STATE_ERROR_DB_DEL_BOOKMARK_FAILED,
EngineMsgCode.STATE_ERROR_DB_CLEAN_BOOKMARK_FAILED,
EngineMsgCode.STATE_ERROR_DB_ADD_EMPHASIS_FAILED,
EngineMsgCode.STATE_ERROR_DB_DEL_EMPHASIS_FAILED,
EngineMsgCode.STATE_ERROR_DB_CLEAN_EMPHASIS_FAILED,
EngineMsgCode.STATE_ERROR_SEARCH_GOTO_RESULT_FAILED,
EngineMsgCode.STATE_ERROR_ZOOM_LEVEL_FAILED,
AdobeMsgCode.STATE_FATAL_UNKNOWN, AdobeMsgCode.STATE_ERROR_UNKNOWN,
AdobeMsgCode.STATE_FATAL_SYS_INIT_FAIL,
AdobeMsgCode.STATE_FATAL_PREVIOUS_FILE_NOT_CLOSED,
AdobeMsgCode.STATE_FATAL_FILE_NOT_EXIST,
AdobeMsgCode.STATE_ERROR_PKG_RESOURCE_TOO_LONG,
AdobeMsgCode.STATE_ERROR_PKG_COMPRESSED_SIZE_TOO_BIG,
AdobeMsgCode.STATE_ERROR_PKG_ARTIFICIAL_PAGE_BREAKS,
AdobeMsgCode.STATE_ERROR_PASSHASH_NOT_FOUND,
AdobeMsgCode.STATE_ERROR_PDF_T3_NEED_PASSWORD,
AdobeMsgCode.STATE_ERROR_USER_NOT_ACTIVATED,
AdobeMsgCode.STATE_ERROR_PDF_EMPTY_PASSWORD,
AdobeMsgCode.STATE_ERROR_NULL_PASSHASH,
AdobeMsgCode.STATE_ERROR_PASSHASH_NO_URL,
AdobeMsgCode.STATE_ERROR_PASSHASH_OP_FAIL,
AdobeMsgCode.STATE_FATAL_SYS_NOT_INIT,
AdobeMsgCode.STATE_FATAL_PDF_T3_DOC_EXCEPTION,
AdobeMsgCode.STATE_ERROR_PDF_T3_DOC_EXCEPTION,
AdobeMsgCode.STATE_FATAL_PKG_XML_PARSE_ERROR,
AdobeMsgCode.STATE_ERROR_PKG_XML_PARSE_ERROR,
AdobeMsgCode.STATE_ERROR_NULL_BOOKMARK,
AdobeMsgCode.STATE_WARN_NEGATIVE_POSITION,
AdobeMsgCode.STATE_WARN_DEVICE_ALREADY_ACTIVATED,
AdobeMsgCode.STATE_WARN_DEVICE_NOT_ACTIVATE,
AdobeMsgCode.STATE_ERROR_NO_VALID_LICENSE,
AdobeMsgCode.STATE_WARN_DEVICE_ACTIVE_130,
AdobeMsgCode.STATE_ERROR_CORE_EXPIRED,
AdobeMsgCode.STATE_ERROR_CORE_LOAN_NOT_ON_RECORD,
AdobeMsgCode.STATE_NORMAL_GET_MORE_SEARCH_RESULT,
FbreaderMsgCode.STATE_ERROR_OPEN_FILE_FAILED,
FbreaderMsgCode.STATE_NORMAL_LOAD_BOOK_FINISHED,
FbreaderMsgCode.STATE_NORMAL_BEGIN_OF_PH,
FbreaderMsgCode.STATE_NORMAL_END_OF_PH,
FbreaderMsgCode.STATE_ERROR_PH_INDEX_ERROR,
FbreaderMsgCode.STATE_ERROR_APP_INIT_ERROR };
// This is IErrorCall demo code, you can define special call for handling
// error.
// static private IErrorCall mDefaultCall = new IErrorCall() {
// @Override
// public void handleError() {
// Logger.dLog(TAG, "Default error called");
// }
// };
/**
* Instantiates a new engine code.
*/
private EngineCode() {
}
/**
* 獲取EngineCode單例對象.
*
* @return single instance of EngineCode
*/
static public EngineCode getInstance() {
if (null == mEngineError) {
mEngineError = new EngineCode();
mHandler = new ErrroHandler(mEngineError);
initErrorMap();
}
return mEngineError;
}
/**
* Inits the error map.
*/
static private void initErrorMap() {
if (null == mErrorMap) {
mErrorMap = new HashMap<String, IErrorCall>();
for (int code : mCodeFamily) {
mErrorMap.put(String.valueOf(code), null);
}
}
}
/**
* Sets the error handler.
*
* @param code
* the code
* @param handler
* the handler
*/
protected void setErrorHandler(int code, IErrorCall handler) {
String key = String.valueOf(code);
if (mErrorMap != null) {
mErrorMap.put(key, handler);
}
}
/**
* Execute handler.
*
* @param code
* the code
*/
protected void executeHandler(int code) {
String key = String.valueOf(code);
IErrorCall call;
if (mErrorMap != null) {
call = mErrorMap.get(key);
if (call != null) {
call.handleError();
// setLastError(EngineErrorCode.NO_ERROR);
} else {
Logger.dLog(TAG, "ErrorCode " + key + " not set handler");
}
}
}
/**
* Gets the message handler.
*
* @return the message handler
*/
protected ErrroHandler getMessageHandler() {
return mHandler;
}
/**
* 釋放資源.
*/
public void free() {
if (mEngineError != null) {
mEngineError = null;
}
if (mErrorMap != null) {
mErrorMap.clear();
mErrorMap = null;
}
}
/**
* 後去最後信息碼.
*
* @return the last code
*/
public int getLastCode() {
return mLastError;
}
/**
* 設置最後信息碼.
*
* @param error
* the new last code
*/
public void setLastCode(int error) {
Logger.vLog(TAG, "LastError = " + error + " PreviousError = "
+ mLastError);
mLastError = error;
}
/**
* 判斷信息碼是否為錯誤信息.
*
* @param code
* 信息碼
* @return true, 不是錯誤信息碼. false, 是錯誤信息碼
*/
public boolean noError(int code) {
int len = mCodeFamily.length;
for (int i = 0; i < len; i++) {
if (mCodeFamily[i] == code) {
return false;
}
}
return true;
}
/**
* The Class ErrroHandler.
*/
static protected class ErrroHandler extends Handler {
/** The m error code. */
private EngineCode mErrorCode = null;
/** The Constant EXECUTE_HANDLER. */
static protected final int EXECUTE_HANDLER = 0;
/**
* Instantiates a new errro handler.
*
* @param error
* the error
*/
public ErrroHandler(EngineCode error) {
mErrorCode = error;
}
/*
* (non-Javadoc)
*
* @see android.os.Handler#handleMessage(android.os.Message)
*/
@Override
public void handleMessage(Message msg) {
int code = 0;
switch (msg.what) {
case EXECUTE_HANDLER:
code = msg.arg1;
mErrorCode.executeHandler(code);
break;
default:
break;
}
super.handleMessage(msg);
}
}
}