Skip to content

Commit e60e2dd

Browse files
committed
refactor: unify CandidateProto object for paged and bulk candidates
1 parent 19ebfb1 commit e60e2dd

14 files changed

Lines changed: 46 additions & 75 deletions

File tree

app/src/main/java/com/osfans/trime/core/Rime.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -190,7 +190,7 @@ class Rime :
190190
override suspend fun getCandidates(
191191
startIndex: Int,
192192
limit: Int,
193-
): Array<CandidateItem> = withRimeContext {
193+
): Array<CandidateProto> = withRimeContext {
194194
getRimeCandidates(startIndex, limit)
195195
}
196196

@@ -490,7 +490,7 @@ class Rime :
490490
external fun getRimeCandidates(
491491
startIndex: Int,
492492
limit: Int,
493-
): Array<CandidateItem>
493+
): Array<CandidateProto>
494494

495495
@JvmStatic
496496
external fun getRimeBulkCandidates(): Array<Any>

app/src/main/java/com/osfans/trime/core/RimeApi.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -84,5 +84,5 @@ interface RimeApi {
8484
suspend fun getCandidates(
8585
startIndex: Int,
8686
limit: Int,
87-
): Array<CandidateItem>
87+
): Array<CandidateProto>
8888
}

app/src/main/java/com/osfans/trime/core/RimeMessage.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -106,7 +106,7 @@ sealed class RimeMessage<T>(
106106
data class Data(
107107
val total: Int = -1,
108108
val highlighted: Int = 0,
109-
val candidates: Array<CandidateItem> = arrayOf(),
109+
val candidates: Array<CandidateProto> = arrayOf(),
110110
) {
111111
override fun equals(other: Any?): Boolean {
112112
if (this === other) return true
@@ -196,7 +196,7 @@ sealed class RimeMessage<T>(
196196
CandidateListMessage.Data(
197197
params[0] as Int,
198198
params[1] as Int,
199-
params[2] as Array<CandidateItem>,
199+
params[2] as Array<CandidateProto>,
200200
),
201201
)
202202
MessageType.Key ->

app/src/main/java/com/osfans/trime/core/RimeProto.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ data class CommitProto(
1111

1212
data class CandidateProto(
1313
val text: String,
14-
val comment: String?,
14+
val comment: String,
1515
val label: String,
1616
)
1717

app/src/main/java/com/osfans/trime/core/Structs.kt renamed to app/src/main/java/com/osfans/trime/core/SchemaItem.kt

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,3 @@ data class SchemaItem(
88
val id: String,
99
val name: String = "",
1010
)
11-
12-
data class CandidateItem(
13-
val text: String,
14-
val comment: String = "",
15-
)

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ import android.graphics.Color
1111
import android.view.View
1212
import androidx.constraintlayout.widget.ConstraintLayout
1313
import androidx.core.view.isVisible
14-
import com.osfans.trime.core.CandidateItem
14+
import com.osfans.trime.core.CandidateProto
1515
import com.osfans.trime.data.theme.ColorManager
1616
import com.osfans.trime.data.theme.FontManager
1717
import com.osfans.trime.data.theme.Theme
@@ -160,7 +160,7 @@ class CandidateItemUi(
160160

161161
@SuppressLint("UseKtx")
162162
fun update(
163-
item: CandidateItem,
163+
item: CandidateProto,
164164
highlighted: Boolean,
165165
) {
166166
val tColor = if (highlighted) hlTextColor else textColor

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

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ import android.view.ViewGroup
1010
import androidx.core.view.updateLayoutParams
1111
import com.chad.library.adapter4.BaseQuickAdapter
1212
import com.google.android.flexbox.FlexboxLayoutManager
13-
import com.osfans.trime.core.CandidateItem
13+
import com.osfans.trime.core.CandidateProto
1414
import com.osfans.trime.data.theme.Theme
1515
import com.osfans.trime.ime.candidates.CandidateItemUi
1616
import com.osfans.trime.ime.candidates.CandidateViewHolder
@@ -20,7 +20,7 @@ import splitties.views.dsl.core.wrapContent
2020

2121
open class CompactCandidateViewAdapter(
2222
val theme: Theme,
23-
) : BaseQuickAdapter<CandidateItem, CandidateViewHolder>() {
23+
) : BaseQuickAdapter<CandidateProto, CandidateViewHolder>() {
2424
init {
2525
setHasStableIds(true)
2626
}
@@ -45,7 +45,7 @@ open class CompactCandidateViewAdapter(
4545
}
4646

4747
fun updateCandidates(
48-
data: Array<CandidateItem>,
48+
data: Array<CandidateProto>,
4949
total: Int,
5050
highlightedIndex: Int,
5151
) {
@@ -70,7 +70,7 @@ open class CompactCandidateViewAdapter(
7070
override fun onBindViewHolder(
7171
holder: CandidateViewHolder,
7272
position: Int,
73-
item: CandidateItem?,
73+
item: CandidateProto?,
7474
) {
7575
item ?: return
7676
val isHighlighted = position == highlightedIdx

app/src/main/java/com/osfans/trime/ime/candidates/popup/LabeledCandidateItemUi.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,7 @@ class LabeledCandidateItemUi(
6666
inSpanWith(labelFg, ctx.sp(labelSize), labelFont) { append(candidate.label) }
6767
append(" ")
6868
inSpanWith(textFg, ctx.sp(textSize), textFont) { append(candidate.text) }
69-
if (!candidate.comment.isNullOrBlank()) {
69+
if (candidate.comment.isNotBlank()) {
7070
append(" ")
7171
inSpanWith(commentFg, ctx.sp(commentSize), commentFont) { append(candidate.comment) }
7272
}

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

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,16 +7,16 @@ package com.osfans.trime.ime.candidates.unrolled
77

88
import androidx.paging.PagingSource
99
import androidx.paging.PagingState
10-
import com.osfans.trime.core.CandidateItem
10+
import com.osfans.trime.core.CandidateProto
1111
import com.osfans.trime.daemon.RimeSession
1212
import timber.log.Timber
1313

1414
class CandidatesPagingSource(
1515
val rime: RimeSession,
1616
val total: Int,
1717
val offset: Int,
18-
) : PagingSource<Int, CandidateItem>() {
19-
override suspend fun load(params: LoadParams<Int>): LoadResult<Int, CandidateItem> {
18+
) : PagingSource<Int, CandidateProto>() {
19+
override suspend fun load(params: LoadParams<Int>): LoadResult<Int, CandidateProto> {
2020
// use candidate index for key, null means load from beginning (including offset)
2121
val startIndex = params.key ?: offset
2222
val pageSize = params.loadSize
@@ -35,5 +35,5 @@ class CandidatesPagingSource(
3535
}
3636

3737
// always reload from beginning
38-
override fun getRefreshKey(state: PagingState<Int, CandidateItem>) = null
38+
override fun getRefreshKey(state: PagingState<Int, CandidateProto>) = null
3939
}

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

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -8,25 +8,25 @@ package com.osfans.trime.ime.candidates.unrolled
88
import android.view.ViewGroup
99
import androidx.paging.PagingDataAdapter
1010
import androidx.recyclerview.widget.DiffUtil
11-
import com.osfans.trime.core.CandidateItem
11+
import com.osfans.trime.core.CandidateProto
1212
import com.osfans.trime.data.theme.Theme
1313
import com.osfans.trime.ime.candidates.CandidateItemUi
1414
import com.osfans.trime.ime.candidates.CandidateViewHolder
1515

1616
open class PagingCandidateViewAdapter(
1717
val theme: Theme,
18-
) : PagingDataAdapter<CandidateItem, CandidateViewHolder>(diffCallback) {
18+
) : PagingDataAdapter<CandidateProto, CandidateViewHolder>(diffCallback) {
1919
companion object {
2020
private val diffCallback =
21-
object : DiffUtil.ItemCallback<CandidateItem>() {
21+
object : DiffUtil.ItemCallback<CandidateProto>() {
2222
override fun areItemsTheSame(
23-
oldItem: CandidateItem,
24-
newItem: CandidateItem,
23+
oldItem: CandidateProto,
24+
newItem: CandidateProto,
2525
): Boolean = oldItem === newItem
2626

2727
override fun areContentsTheSame(
28-
oldItem: CandidateItem,
29-
newItem: CandidateItem,
28+
oldItem: CandidateProto,
29+
newItem: CandidateProto,
3030
): Boolean = oldItem == newItem
3131
}
3232
}

0 commit comments

Comments
 (0)