Skip to content

Commit

Permalink
feat: add new Suggestion State to QuickBarStateMachine
Browse files Browse the repository at this point in the history
  • Loading branch information
goofyz committed Jan 14, 2025
1 parent d0cc2e9 commit 47aca9f
Showing 1 changed file with 12 additions and 0 deletions.
12 changes: 12 additions & 0 deletions app/src/main/java/com/osfans/trime/ime/bar/QuickBarStateMachine.kt
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,10 @@
package com.osfans.trime.ime.bar

import com.osfans.trime.ime.bar.QuickBarStateMachine.BooleanKey.CandidateEmpty
import com.osfans.trime.ime.bar.QuickBarStateMachine.BooleanKey.SuggestionEmpty
import com.osfans.trime.ime.bar.QuickBarStateMachine.State.Always
import com.osfans.trime.ime.bar.QuickBarStateMachine.State.Candidate
import com.osfans.trime.ime.bar.QuickBarStateMachine.State.Suggestion
import com.osfans.trime.ime.bar.QuickBarStateMachine.State.Tab
import com.osfans.trime.util.BuildTransitionEvent
import com.osfans.trime.util.EventStateMachine
Expand All @@ -20,10 +22,12 @@ object QuickBarStateMachine {
Always,
Candidate,
Tab,
Suggestion,
}

enum class BooleanKey : EventStateMachine.BooleanStateKey {
CandidateEmpty,
SuggestionEmpty,
}

enum class TransitionEvent(
Expand All @@ -32,16 +36,23 @@ object QuickBarStateMachine {
CandidatesUpdated({
from(Always) transitTo Candidate on (CandidateEmpty to false)
from(Candidate) transitTo Always on (CandidateEmpty to true)
from(Suggestion) transitTo Candidate on (CandidateEmpty to false)
}),
BarBoardWindowAttached({
from(Always) transitTo Tab
from(Candidate) transitTo Tab
from(Suggestion) transitTo Tab
}),
WindowDetached({
// candidate state has higher priority so here it goes first
from(Tab) transitTo Candidate on (CandidateEmpty to false)
from(Tab) transitTo Suggestion on (SuggestionEmpty to false)
from(Tab) transitTo Always
}),
SuggestionUpdated({
from(Always) transitTo Suggestion on (SuggestionEmpty to false)
from(Suggestion) transitTo Always on (SuggestionEmpty to true)
}),
}

fun new(block: (State) -> Unit) =
Expand All @@ -50,6 +61,7 @@ object QuickBarStateMachine {
externalBooleanStates =
mutableMapOf(
CandidateEmpty to true,
SuggestionEmpty to true,
),
).apply {
onNewStateListener = block
Expand Down

0 comments on commit 47aca9f

Please sign in to comment.