@Override
  public void onScrollStateChanged(AbsListView view, int scrollState) {
    super.onScrollStateChanged(view, scrollState);
    if (SCROLL_STATE_TOUCH_SCROLL == scrollState) {
      showDialpad(false);
    }

    if (SCROLL_STATE_FLING == scrollState) {
      mPhotoLoader.pause();
      mNumLocationLoader.pause();
    } else {
      mPhotoLoader.resume();
      mNumLocationLoader.resume();
    }
  }
 @Override
 public void onDataEvent(PimEngine.DataEvent event, int state) {
   loge("onDataEvent   event=" + event + ", state = " + state);
   if ((PimEngine.DataEvent.LOAD_DIALPADS == event)
       && (PimEngine.DataEventListener.LOAD_DATA_DONE == state)) {
     // reloadDialpadItems();
     log("LOAD_DIALPADS");
     requestReloadingDialpads();
   } else if (PimEngine.DataEvent.CONTACTS_CHANGED == event) {
     mPhotoLoader.clear();
   }
 }
  @Override
  protected void onResume() {
    super.onResume();
    mPhotoLoader.resume();
    mNumLocationLoader.resume();
    setVolumeControlStream(AudioManager.STREAM_SYSTEM);

    PimEngine.getInstance(this).setCallLogsRead();
    CommonMethod.cancelMissedCallNotification(this);

    if (mHandler.hasMessages(RELOAD_DIALPADS)) {
      log("onResume");
      mHandler.removeMessages(RELOAD_DIALPADS);
      reloadDialpadItems();
    }
    mIsResume = true;
  }
  @Override
  protected void onDestroy() {
    // unregisterReceiver(mOutgoingCallReceiver);
    // TelephonyManager telephonyMgr = (TelephonyManager
    // )getSystemService(Context.TELEPHONY_SERVICE);
    // telephonyMgr.listen(mCallListener, PhoneStateListener.LISTEN_NONE);

    resetFilter();
    mPhotoLoader.stop();
    mNumLocationLoader.stop();
    PimEngine.getInstance(this).removeDataListenner(this);
    mActivityResultBridge = null;

    if (mPopupWin != null) {
      mPopupWin.dismiss();
      mPopupWin = null;
    }

    super.onDestroy();
  }