@Override
 public void showDialpad(boolean show) {
   if (show) {
     mDialpad.show();
   } else {
     mDialpad.hide();
   }
 }
  @Override
  public boolean onKeyDown(int keyCode, KeyEvent event) {
    hideCaidan();

    switch (keyCode) {
      case KeyEvent.KEYCODE_CALL:
        {
          if (null != mDialpad) {
            String number = mDialpad.getNumber();
            if (!TextUtils.isEmpty(number)) {
              call(number);
            } else {
              number = getLastDialedNumber();
              if (!TextUtils.isEmpty(number)) {
                mDialpad.setNumber(number);
                mDialpad.show();
              }
            }
          }

          // break;
          return true;
        }

      case KeyEvent.KEYCODE_BACK:
        {
          if (mPopupWin != null) {
            mPopupWin.dismiss();
            mPopupWin = null;
            return true;
          }
        }

      default:
        break;
    }

    return super.onKeyDown(keyCode, event);
  }
 public void setNumber(String number) {
   log("setNumber   number=" + number);
   mDialpad.setNumber(number);
   mDialpad.show();
 }