Skip to content

Commit 5b311d2

Browse files
committed
fix(candidates): unroll button was still visible when candidates is few
1 parent fcc00fc commit 5b311d2

File tree

2 files changed

+8
-16
lines changed

2 files changed

+8
-16
lines changed

app/src/main/java/com/osfans/trime/ime/candidates/compact/CompactCandidateModule.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@ class CompactCandidateModule(
6060
bar.unrollButtonStateMachine.push(
6161
UnrollButtonStateMachine.TransitionEvent.UnrolledCandidatesUpdated,
6262
UnrollButtonStateMachine.BooleanKey.UnrolledCandidatesEmpty to
63-
(childCount == 0),
63+
(adapter.itemCount == childCount),
6464
)
6565
}
6666

app/src/main/java/com/osfans/trime/ime/candidates/unrolled/window/BaseUnrolledCandidateWindow.kt

Lines changed: 7 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,6 @@ import com.osfans.trime.ime.core.TrimeInputMethodService
3131
import com.osfans.trime.ime.keyboard.KeyboardWindow
3232
import com.osfans.trime.ime.window.BoardWindow
3333
import com.osfans.trime.ime.window.BoardWindowManager
34-
import kotlinx.coroutines.Dispatchers
3534
import kotlinx.coroutines.Job
3635
import kotlinx.coroutines.launch
3736
import splitties.dimensions.dp
@@ -101,7 +100,12 @@ abstract class BaseUnrolledCandidateWindow(
101100
offsetJob =
102101
lifecycleCoroutineScope.launch {
103102
compactCandidate.unrolledCandidateOffset.collect {
104-
updateCandidatesWithOffset(it)
103+
if (it <= 0) {
104+
windowManager.attachWindow(KeyboardWindow)
105+
} else {
106+
adapter.refreshWithOffset(it)
107+
candidateLayout.resetPosition()
108+
}
105109
}
106110
}
107111
candidatesSubmitJob =
@@ -124,23 +128,11 @@ abstract class BaseUnrolledCandidateWindow(
124128
}
125129
}
126130

127-
private fun updateCandidatesWithOffset(offset: Int) {
128-
val candidates = compactCandidate.adapter.items
129-
if (candidates.isEmpty()) {
130-
windowManager.attachWindow(KeyboardWindow)
131-
} else {
132-
adapter.refreshWithOffset(offset)
133-
lifecycleCoroutineScope.launch(Dispatchers.Main) {
134-
candidateLayout.resetPosition()
135-
}
136-
}
137-
}
138-
139131
override fun onDetached() {
140132
bar.unrollButtonStateMachine.push(
141133
UnrollButtonStateMachine.TransitionEvent.UnrolledCandidatesDetached,
142134
UnrollButtonStateMachine.BooleanKey.UnrolledCandidatesEmpty to
143-
(adapter.offset == 0),
135+
(compactCandidate.adapter.itemCount == adapter.offset),
144136
)
145137
offsetJob?.cancel()
146138
candidatesSubmitJob?.cancel()

0 commit comments

Comments
 (0)