docs: public <T extends AbsListView> boolean scrollList(T absListView, int direction, boolean allTheWay) {
  
  		if(absListView == null){
  			return false;
  		}
  
  		if (direction == DOWN) {
  
  			int listCount = absListView.getCount();
  			int lastVisiblePosition = absListView.getLastVisiblePosition();
  
  			if (allTheWay) {
  				scrollListToLine(absListView, listCount-1);
  				return false;
  			}
  
  			if (lastVisiblePosition >= listCount - 1) {
  				if(lastVisiblePosition > 0){
  					scrollListToLine(absListView, lastVisiblePosition);
  				}
  				return false;
  			}
  
  			int firstVisiblePosition = absListView.getFirstVisiblePosition();
  
  
  			if(firstVisiblePosition != lastVisiblePosition)
  				scrollListToLine(absListView, lastVisiblePosition);
  
  			else
  				scrollListToLine(absListView, firstVisiblePosition + 1);
  
  		} else if (direction == UP) {
  			int firstVisiblePosition = absListView.getFirstVisiblePosition();
  
  			if (allTheWay || firstVisiblePosition < 2) {
  				scrollListToLine(absListView, 0);
  				return false;
  			}
  			int lastVisiblePosition = absListView.getLastVisiblePosition();
  
  			final int lines = lastVisiblePosition - firstVisiblePosition;
  
  			int lineToScrollTo = firstVisiblePosition - lines;
  
  			if(lineToScrollTo == lastVisiblePosition)
  				lineToScrollTo--;
  
  			if(lineToScrollTo < 0)
  				lineToScrollTo = 0;
  
  			scrollListToLine(absListView, lineToScrollTo);
  		}
  		sleeper.sleep();
  		return true;
  	}