private int nextDisplayableIndex() { AnimationType animationType = animation.getPreferences().getType(); int nextIndex = nextIndex(); // Skip images set to not display for (@SuppressWarnings("unused") int index = 0; !animation.getRadarGroups().get(nextIndex).shouldDisplay(); nextIndex = nextAnimationIndex(animationType, isForwardRock, nextIndex)) ; return nextIndex; }
public void run() { isAnimating = true; animation.setAnimating(true); shouldLoop = true; AnimationPreferences preferences = animation.getPreferences(); while (shouldLoop) { if (Thread.interrupted()) { shouldLoop = false; break; } AnimationType animationType = preferences.getType(); try { long delay = preferences.getFrameDelay(); if (animation.getCurrentIndex() == animation.size() - 1 || (animationType == AnimationType.ROCK && animation.getCurrentIndex() == 0)) { delay = preferences.getLoopDelay(); if (animationType == AnimationType.STOP || preferences.getFrames() == 1) { shouldLoop = false; break; } } Thread.sleep(delay); } catch (InterruptedException exception) { shouldLoop = false; break; } animation.setCurrentIndex(nextAnimationIndex(animationType, isForwardRock)); if (animation.getCurrentIndex() == animation.size() - 1 || (animationType == AnimationType.ROCK && animation.getCurrentIndex() == 0)) { if (animationType == AnimationType.ROCK) { isForwardRock = !isForwardRock; } else { isForwardRock = true; } } } isAnimating = false; animation.setAnimating(false); }