Skip to content

Commit c131817

Browse files
committed
fix: app would crash on clipboard entry editing
1 parent afe4dcf commit c131817

File tree

3 files changed

+24
-7
lines changed

3 files changed

+24
-7
lines changed

app/src/main/java/com/osfans/trime/ime/symbol/LiquidKeyboard.kt

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,6 @@ import androidx.lifecycle.lifecycleScope
88
import androidx.recyclerview.widget.LinearLayoutManager
99
import androidx.recyclerview.widget.RecyclerView
1010
import androidx.recyclerview.widget.StaggeredGridLayoutManager
11-
import com.blankj.utilcode.util.ScreenUtils
12-
import com.blankj.utilcode.util.SizeUtils
1311
import com.google.android.flexbox.FlexDirection
1412
import com.google.android.flexbox.FlexWrap
1513
import com.google.android.flexbox.FlexboxLayoutManager
@@ -27,6 +25,7 @@ import com.osfans.trime.ime.enums.KeyCommandType
2725
import com.osfans.trime.ime.enums.SymbolKeyboardType
2826
import com.osfans.trime.ime.text.TextInputManager
2927
import com.osfans.trime.ui.main.LiquidKeyboardEditActivity
28+
import com.osfans.trime.util.ShortcutUtils
3029
import kotlinx.coroutines.launch
3130
import splitties.dimensions.dp
3231
import timber.log.Timber
@@ -40,8 +39,8 @@ class LiquidKeyboard(
4039
private val symbolHistory = SymbolHistory(180)
4140
private var adapterType: AdapterType = AdapterType.INIT
4241
private val simpleAdapter by lazy {
43-
val itemWidth = SizeUtils.dp2px(theme.liquid.getFloat("single_width"))
44-
val columnCount = ScreenUtils.getAppScreenWidth() / itemWidth
42+
val itemWidth = context.dp(theme.liquid.getInt("single_width"))
43+
val columnCount = context.resources.displayMetrics.widthPixels / itemWidth
4544
SimpleAdapter(theme, columnCount).apply {
4645
setHasStableIds(true)
4746
}
@@ -216,7 +215,7 @@ class LiquidKeyboard(
216215
}
217216

218217
override suspend fun onEdit(bean: DatabaseBean) {
219-
bean.text?.let { launchLiquidKeyboardEditText(context, type, bean.id, it) }
218+
bean.text?.let { ShortcutUtils.launchLiquidKeyboardEdit(context, type, bean.id, it) }
220219
}
221220

222221
// FIXME: 这个方法可能实现得比较粗糙,需要日后改进

app/src/main/java/com/osfans/trime/ui/main/LiquidKeyboardEditActivity.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
package com.osfans.trime.ui.main
22

3+
import android.app.Activity
34
import android.content.Intent
45
import android.os.Bundle
56
import android.view.Gravity
67
import android.widget.EditText
7-
import androidx.appcompat.app.AppCompatActivity
88
import androidx.lifecycle.lifecycleScope
99
import com.osfans.trime.data.db.ClipboardHelper
1010
import com.osfans.trime.data.db.CollectionHelper
@@ -15,7 +15,7 @@ import com.osfans.trime.ime.enums.SymbolKeyboardType
1515
import kotlinx.coroutines.launch
1616
import timber.log.Timber
1717

18-
class LiquidKeyboardEditActivity : AppCompatActivity() {
18+
class LiquidKeyboardEditActivity : Activity() {
1919
private val service: TrimeInputMethodService = TrimeInputMethodService.getService()
2020
private var id: Int? = null
2121
private lateinit var editText: EditText

app/src/main/java/com/osfans/trime/util/ShortcutUtils.kt

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,8 @@ import com.osfans.trime.core.Rime
1818
import com.osfans.trime.data.AppPrefs
1919
import com.osfans.trime.ime.core.RimeWrapper
2020
import com.osfans.trime.ime.core.TrimeInputMethodService
21+
import com.osfans.trime.ime.enums.SymbolKeyboardType
22+
import com.osfans.trime.ui.main.LiquidKeyboardEditActivity
2123
import com.osfans.trime.ui.main.LogActivity
2224
import com.osfans.trime.ui.main.PrefMainActivity
2325
import kotlinx.coroutines.CoroutineScope
@@ -182,4 +184,20 @@ object ShortcutUtils {
182184
Intent(context, LogActivity::class.java),
183185
)
184186
}
187+
188+
fun launchLiquidKeyboardEdit(
189+
context: Context,
190+
type: SymbolKeyboardType,
191+
id: Int,
192+
text: String,
193+
) {
194+
context.startActivity(
195+
Intent(context, LiquidKeyboardEditActivity::class.java).apply {
196+
addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
197+
putExtra(LiquidKeyboardEditActivity.DB_BEAN_ID, id)
198+
putExtra(LiquidKeyboardEditActivity.DB_BEAN_TEXT, text)
199+
putExtra(LiquidKeyboardEditActivity.LIQUID_KEYBOARD_TYPE, type.name)
200+
},
201+
)
202+
}
185203
}

0 commit comments

Comments
 (0)