docs: public View waitForView(View view, int timeout, boolean scroll, boolean checkIsShown){
  		long endTime = SystemClock.uptimeMillis() + timeout;
  		int retry = 0;
  		
  		if(view == null)
  			return null;
  
  		while (SystemClock.uptimeMillis() < endTime) {
  
  			final boolean foundAnyMatchingView = searcher.searchFor(view);
  
  			if(checkIsShown && foundAnyMatchingView && !view.isShown()){
  				sleeper.sleepMini();
  				retry++;
  			
  				View identicalView = viewFetcher.getIdenticalView(view);
  				if(identicalView != null && !view.equals(identicalView)){
  					view = identicalView;
  				}
  	
  				if(retry > 5){
  					return view;
  				}
  				continue;
  			}
  
  			if (foundAnyMatchingView){
  				return view;
  			}
  
  			if(scroll) {
  				scroller.scrollDown();
  			}
  
  			sleeper.sleep();
  
  		}
  		return view;
  	}