/** Start/stop autoupdating if needed */ private void checkAutoUpdate() { // bumping up the timestamp will stop any previous threads timestamp++; if (animationInfo.getAnimationSetInfo().usingCurrentTime()) { Misc.run( new Runnable() { public void run() { updateAnimationSet(++timestamp); } }); } }
/** * autoupdate the set of synthetic times * * @param myTimestamp used to only have on thread active */ private void updateAnimationSet(int myTimestamp) { try { while (true) { long seconds = (long) (animationInfo.getAnimationSetInfo().getPollMinutes() * 60); Misc.sleepSeconds(seconds); DisplayMaster displayMaster = getDisplayMaster(); if ((displayMaster == null) || (anime == null) || (myTimestamp != timestamp)) { break; } displayMaster.dataChange(); } } catch (Exception exc) { LogUtil.logException("Error updating animation set", exc); } }
/** * Holds the synthetic animation set info * * @return Animation set info */ public AnimationSetInfo getAnimationSetInfo() { return animationInfo.getAnimationSetInfo(); }