public void pushMode(Mode mode) {
Objects.requireNonNull(mode);
if (!modes.isEmpty()) {
- stopMode(modes.peek());
+ pauseMode(modes.peek());
}
modes.push(mode);
startMode(mode);
Mode mode = modes.pop();
stopMode(mode);
if (!modes.isEmpty()) {
- startMode(modes.peek());
+ resumeMode(modes.peek());
}
return true;
}
mode.enter(config);
}
+ private void pauseMode(Mode mode) {
+ mode.pause();
+ }
+
+ private void resumeMode(Mode mode) {
+ mode.resume();
+ }
+
private void stopMode(Mode mode) {
mode.setFrameListener(ledFrame -> {}); // To avoid any frame being sent to the controller while the thread is exiting
mode.exit();