code: protected void playSlide(int currentPosition, int previousPosition) {
          final SlideStatus slideStatus = adapter.getSlideStatus(currentPosition);
          final PlayList pl = getPlaylist();
  
          // Don't play anything if we have reached the end
          if (currentPosition < 0) {
              stop();
              return;
          }
  
          // Stop anything planned
          slideHandler.removeCallbacksAndMessages(null);
  
          // If the slide is ready, then we can display it straight away
          switch (slideStatus) {
              case READY:
                  notAvailableSlidesSkipped = 0;
  
                  // We are playing the slide show!
                  status = Status.PLAYING;
  
                  // Schedule next slide
                  if (pl.isAutoAdvanceEnabled()) {
                      slideHandler.postDelayed(moveToNextSlide, pl.getSlideDuration(currentPosition));
                  }
  
                  // Display the slide
                  displaySlide(currentPosition, previousPosition);
  
                  break;
  
              case NOT_AVAILABLE:
                  Log.w("SlideShowView", "Slide is not available: " + currentPosition);
  
                  // Stop if we have already skipped all slides
                  ++notAvailableSlidesSkipped;
                  if (notAvailableSlidesSkipped < adapter.getCount()) {
                      prepareSlide(pl.getNextSlide());
                      next();
                  } else {
                      Log.w("SlideShowView", "Skipped too many slides in a row. Stopping playback.");
                      stop();
                  }
                  break;
  
              case LOADING:
                  Log.d("SlideShowView", "Slide is not yet ready, waiting for it: " + currentPosition);
  
                  // Show an indicator to the user
                  showProgressIndicator();
  
                  // Start waiting for the slide to be available
                  waitForCurrentSlide.startWaiting(currentPosition, previousPosition);
  
                  break;
          }
      }
docs: Play the current slide in the playlist if it is ready. If that slide is not available, we
  move to the next one. If that slide is loading, we wait until it is ready and then we play
  it.