public void handleMessage(Message msg) {
          scroller.computeScrollOffset();
          int currPosition = getCurrentScrollerPosition();
          int delta = lastScrollPosition - currPosition;
          lastScrollPosition = currPosition;
          if (delta != 0) {
            listener.onScroll(delta);
          }

          // scrolling is not finished when it comes to final Y
          // so, finish it manually
          if (Math.abs(currPosition - getFinalScrollerPosition()) < MIN_DELTA_FOR_SCROLLING) {
            // currPosition = getFinalScrollerPosition();
            scroller.forceFinished(true);
          }
          if (!scroller.isFinished()) {
            animationHandler.sendEmptyMessage(msg.what);
          } else if (msg.what == MESSAGE_SCROLL) {
            justify();
          } else {
            finishScrolling();
          }
        }