public CatCmdMessage(Parcel in) {
   mCmdDet = in.readParcelable(null);
   mTextMsg = in.readParcelable(null);
   mMenu = in.readParcelable(null);
   mInput = in.readParcelable(null);
   mLoadIconFailed = (in.readByte() == 1);
   switch (getCmdType()) {
     case LAUNCH_BROWSER:
       mBrowserSettings = new BrowserSettings();
       mBrowserSettings.url = in.readString();
       mBrowserSettings.mode = LaunchBrowserMode.values()[in.readInt()];
       break;
     case PLAY_TONE:
       mToneSettings = in.readParcelable(null);
       break;
     case SET_UP_CALL:
       mCallSettings = new CallSettings();
       mCallSettings.confirmMsg = in.readParcelable(null);
       mCallSettings.callMsg = in.readParcelable(null);
       break;
     case SET_UP_EVENT_LIST:
       mSetupEventListSettings = new SetupEventListSettings();
       int length = in.readInt();
       mSetupEventListSettings.eventList = new int[length];
       for (int i = 0; i < length; i++) {
         mSetupEventListSettings.eventList[i] = in.readInt();
       }
       break;
     default:
       break;
   }
 }
 CatCmdMessage(CommandParams cmdParams) {
   mCmdDet = cmdParams.mCmdDet;
   mLoadIconFailed = cmdParams.mLoadIconFailed;
   switch (getCmdType()) {
     case SET_UP_MENU:
     case SELECT_ITEM:
       mMenu = ((SelectItemParams) cmdParams).mMenu;
       break;
     case DISPLAY_TEXT:
     case SET_UP_IDLE_MODE_TEXT:
     case SEND_DTMF:
     case SEND_SMS:
     case REFRESH:
     case SEND_SS:
     case SEND_USSD:
       mTextMsg = ((DisplayTextParams) cmdParams).mTextMsg;
       break;
     case GET_INPUT:
     case GET_INKEY:
       mInput = ((GetInputParams) cmdParams).mInput;
       break;
     case LAUNCH_BROWSER:
       mTextMsg = ((LaunchBrowserParams) cmdParams).mConfirmMsg;
       mBrowserSettings = new BrowserSettings();
       mBrowserSettings.url = ((LaunchBrowserParams) cmdParams).mUrl;
       mBrowserSettings.mode = ((LaunchBrowserParams) cmdParams).mMode;
       break;
     case PLAY_TONE:
       PlayToneParams params = (PlayToneParams) cmdParams;
       mToneSettings = params.mSettings;
       mTextMsg = params.mTextMsg;
       break;
     case GET_CHANNEL_STATUS:
       mTextMsg = ((CallSetupParams) cmdParams).mConfirmMsg;
       break;
     case SET_UP_CALL:
       mCallSettings = new CallSettings();
       mCallSettings.confirmMsg = ((CallSetupParams) cmdParams).mConfirmMsg;
       mCallSettings.callMsg = ((CallSetupParams) cmdParams).mCallMsg;
       break;
     case OPEN_CHANNEL:
     case CLOSE_CHANNEL:
     case RECEIVE_DATA:
     case SEND_DATA:
       BIPClientParams param = (BIPClientParams) cmdParams;
       mTextMsg = param.mTextMsg;
       break;
     case SET_UP_EVENT_LIST:
       mSetupEventListSettings = new SetupEventListSettings();
       mSetupEventListSettings.eventList = ((SetEventListParams) cmdParams).mEventInfo;
       break;
     case ACTIVATE:
     case PROVIDE_LOCAL_INFORMATION:
     default:
       break;
   }
 }