@Override
 public List<TouchEvent> getTouchEvents() {
   synchronized (this) {
     int len = touchEvents.size();
     for (int i = 0; i < len; i++) {
       touchEventPool.free(touchEvents.get(i));
     }
     touchEvents.clear();
     touchEvents.addAll(touchEventsBuffer);
     touchEventsBuffer.clear();
     return touchEvents;
   }
 }