Skip to content

Commit 47aca9f

Browse files
committed
feat: add new Suggestion State to QuickBarStateMachine
1 parent d0cc2e9 commit 47aca9f

File tree

1 file changed

+12
-0
lines changed

1 file changed

+12
-0
lines changed

app/src/main/java/com/osfans/trime/ime/bar/QuickBarStateMachine.kt

+12
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,10 @@
88
package com.osfans.trime.ime.bar
99

1010
import com.osfans.trime.ime.bar.QuickBarStateMachine.BooleanKey.CandidateEmpty
11+
import com.osfans.trime.ime.bar.QuickBarStateMachine.BooleanKey.SuggestionEmpty
1112
import com.osfans.trime.ime.bar.QuickBarStateMachine.State.Always
1213
import com.osfans.trime.ime.bar.QuickBarStateMachine.State.Candidate
14+
import com.osfans.trime.ime.bar.QuickBarStateMachine.State.Suggestion
1315
import com.osfans.trime.ime.bar.QuickBarStateMachine.State.Tab
1416
import com.osfans.trime.util.BuildTransitionEvent
1517
import com.osfans.trime.util.EventStateMachine
@@ -20,10 +22,12 @@ object QuickBarStateMachine {
2022
Always,
2123
Candidate,
2224
Tab,
25+
Suggestion,
2326
}
2427

2528
enum class BooleanKey : EventStateMachine.BooleanStateKey {
2629
CandidateEmpty,
30+
SuggestionEmpty,
2731
}
2832

2933
enum class TransitionEvent(
@@ -32,16 +36,23 @@ object QuickBarStateMachine {
3236
CandidatesUpdated({
3337
from(Always) transitTo Candidate on (CandidateEmpty to false)
3438
from(Candidate) transitTo Always on (CandidateEmpty to true)
39+
from(Suggestion) transitTo Candidate on (CandidateEmpty to false)
3540
}),
3641
BarBoardWindowAttached({
3742
from(Always) transitTo Tab
3843
from(Candidate) transitTo Tab
44+
from(Suggestion) transitTo Tab
3945
}),
4046
WindowDetached({
4147
// candidate state has higher priority so here it goes first
4248
from(Tab) transitTo Candidate on (CandidateEmpty to false)
49+
from(Tab) transitTo Suggestion on (SuggestionEmpty to false)
4350
from(Tab) transitTo Always
4451
}),
52+
SuggestionUpdated({
53+
from(Always) transitTo Suggestion on (SuggestionEmpty to false)
54+
from(Suggestion) transitTo Always on (SuggestionEmpty to true)
55+
}),
4556
}
4657

4758
fun new(block: (State) -> Unit) =
@@ -50,6 +61,7 @@ object QuickBarStateMachine {
5061
externalBooleanStates =
5162
mutableMapOf(
5263
CandidateEmpty to true,
64+
SuggestionEmpty to true,
5365
),
5466
).apply {
5567
onNewStateListener = block

0 commit comments

Comments
 (0)