@Override
 public void onUndo(View view, int position, Object o) {
   if (null != listener && !hasUndoViews()) {
     listener.canNotify(true);
   }
   stopTimer(o);
   super.onUndo(view, position, o);
 }
 @Override
 public void onUndoShown(View view, int position, Object o) {
   if (null != listener) {
     listener.canNotify(false);
   }
   startTimer(position, o);
   super.onUndoShown(view, position, o);
 }
 @Override
 public void onDismiss(ViewGroup listView, int[] reverseSortedPositions, HashSet<Object> removed) {
   if (null != listener && !hasUndoViews()) {
     listener.canNotify(true);
   }
   for (Object o : removed) {
     stopTimer(o);
   }
   super.onDismiss(listView, reverseSortedPositions, removed);
 }