Skip to content

Commit 2df3ae5

Browse files
committed
refactor: add Char.isAsciiPrintable function
1 parent 576d382 commit 2df3ae5

File tree

3 files changed

+8
-9
lines changed

3 files changed

+8
-9
lines changed

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

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ import com.osfans.trime.data.opencc.OpenCCDictManager
99
import com.osfans.trime.data.prefs.AppPrefs
1010
import com.osfans.trime.data.schema.SchemaManager
1111
import com.osfans.trime.util.appContext
12+
import com.osfans.trime.util.isAsciiPrintable
1213
import com.osfans.trime.util.isStorageAvailable
1314
import kotlinx.coroutines.channels.BufferOverflow
1415
import kotlinx.coroutines.flow.MutableSharedFlow
@@ -214,15 +215,9 @@ class Rime : RimeApi, RimeLifecycleOwner {
214215
}
215216
}
216217

217-
private fun isValidText(text: CharSequence?): Boolean {
218-
if (text.isNullOrEmpty()) return false
219-
val ch = text.toString().codePointAt(0)
220-
return ch in 0x20..0x7f
221-
}
222-
223218
@JvmStatic
224219
fun simulateKeySequence(sequence: CharSequence): Boolean {
225-
if (!isValidText(sequence)) return false
220+
if (!sequence.first().isAsciiPrintable()) return false
226221
Timber.d("simulateKeySequence: $sequence")
227222
return simulateRimeKeySequence(
228223
sequence.toString().replace("{}", "{braceleft}{braceright}"),

app/src/main/java/com/osfans/trime/ime/text/TextInputManager.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ import com.osfans.trime.ui.main.settings.ColorPickerDialog
3535
import com.osfans.trime.ui.main.settings.KeySoundEffectPickerDialog
3636
import com.osfans.trime.ui.main.settings.ThemePickerDialog
3737
import com.osfans.trime.util.ShortcutUtils
38-
import com.osfans.trime.util.startsWithAsciiChar
38+
import com.osfans.trime.util.isAsciiPrintable
3939
import kotlinx.coroutines.Job
4040
import kotlinx.coroutines.flow.launchIn
4141
import kotlinx.coroutines.flow.onEach
@@ -461,7 +461,7 @@ class TextInputManager(
461461

462462
override fun onText(text: CharSequence?) {
463463
text ?: return
464-
if (!text.startsWithAsciiChar() && Rime.isComposing) {
464+
if (!text.first().isAsciiPrintable() && Rime.isComposing) {
465465
Rime.commitComposition()
466466
trime.commitRimeText()
467467
}
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
package com.osfans.trime.util
2+
3+
@Suppress("NOTHING_TO_INLINE")
4+
inline fun Char.isAsciiPrintable(): Boolean = code in 32 until 127

0 commit comments

Comments
 (0)