У меня есть код ниже
enum class State {
EMPTY, LOADING, DATA, ERROR
}
private var currentState = State.EMPTY
private var timer: Timer? = null
fun startTimer() {
if (timer == null) {
timer = fixedRateTimer(period = 1000, action = {
mainvView.showView(currentState)
currentState = when (currentState) {
State.EMPTY -> State.LOADING
State.LOADING -> State.DATA
State.DATA -> State.ERROR
State.ERROR -> State.EMPTY
}
})
}
}
Где он перебирает перечисление через фиксированный интервал 1 с.
Мне эта штука не особо нравится
currentState = when (currentState) {
State.EMPTY -> State.LOADING
State.LOADING -> State.DATA
State.DATA -> State.ERROR
State.ERROR -> State.EMPTY
}
Поскольку я надеялся больше на что-то ниже, так что мне не нужно явно записывать все переходы между состояниями
if (currentState == State.ERROR) {
currentState = State.EMPTY
} else {
currentState++
}
Очевидно, currentState++
невозможно. Есть ли другой способ сделать это?