@Override
        public void handleMessage(Message msg) {
          AsyncResult ar;

          switch (msg.what) {
            case EVENT_SET_SUBSCRIPTION_DONE:
              Log.d(LOG_TAG, "EVENT_SET_SUBSCRIPTION_DONE");
              mEnablerPreference.handleSetSubDone();
              mSubscriptionManager.unRegisterForSetSubscriptionCompleted(mHandler);
              try {
                dismissDialog(DIALOG_SET_SUBSCRIPTION_IN_PROGRESS);
              } catch (Exception e) {
                e.printStackTrace();
              }
              getPreferenceScreen().setEnabled(true);
              ar = (AsyncResult) msg.obj;
              String result[] = (String[]) ar.result;
              if (result != null) {
                displayAlertDialog(resultToMsg(result[CARD1]));
                setScreenState();
              } else {
                finish();
              }

              break;
            case EVENT_ENABLE_GSM_STEP1_DONE:
              try {
                dismissDialog(DIALOG_DISABLE_CARD2_GSM_IN_PROGRESS);
              } catch (Exception e) {
                e.printStackTrace();
              }
              mSubscriptionManager.unRegisterForSetSubscriptionCompleted(mHandler);
              switchToGSMStep2();
              break;
            case EVENT_SIM_STATE_CHANGED:
              Log.d(LOG_TAG, "EVENT_SIM_STATE_CHANGED");
              break;
          }
        }