private boolean handlePlaybackInterrupt(InterruptedException interruption, SeekExecutor seekExecutor) { Thread.interrupted(); if (checkStopped()) { markerTracker.trigger(STOPPED); return false; } SeekResult seekResult = checkPendingSeek(seekExecutor); if (seekResult != SeekResult.NO_SEEK) { // Double-check, might have received a stop request while seeking if (checkStopped()) { markerTracker.trigger(STOPPED); return false; } else { return seekResult == SeekResult.INTERNAL_SEEK; } } else if (interruption != null) { Thread.currentThread().interrupt(); throw new FriendlyException("The track was unexpectedly terminated.", SUSPICIOUS, interruption); } else { return true; } }
boolean proceed = true; if (checkPendingSeek(seekExecutor) == SeekResult.EXTERNAL_SEEK) { return;