Skip to content

Commit ad31556

Browse files
committed
editable symbol key border
1 parent efac87c commit ad31556

File tree

4 files changed

+29
-13
lines changed

4 files changed

+29
-13
lines changed

app/src/main/java/org/fcitx/fcitx5/android/data/theme/ThemePrefs.kt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,8 @@ class ThemePrefs(sharedPreferences: SharedPreferences) :
3232

3333
val keyBorder = switch(R.string.key_border, "key_border", false)
3434

35+
val keySymbolBorder = switch(R.string.key_symbol_border, "key_symbol_border", false)
36+
3537
val keyRippleEffect = switch(R.string.key_ripple_effect, "key_ripple_effect", false)
3638

3739
val keyHorizontalMargin: ManagedPreference.PInt

app/src/main/java/org/fcitx/fcitx5/android/input/picker/PickerPageUi.kt

Lines changed: 24 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ import org.fcitx.fcitx5.android.core.FcitxKeyMapping
1111
import org.fcitx.fcitx5.android.core.KeySym
1212
import org.fcitx.fcitx5.android.data.prefs.AppPrefs
1313
import org.fcitx.fcitx5.android.data.theme.Theme
14+
import org.fcitx.fcitx5.android.data.theme.ThemeManager
1415
import org.fcitx.fcitx5.android.input.AutoScaleTextView
1516
import org.fcitx.fcitx5.android.input.keyboard.CustomGestureView
1617
import org.fcitx.fcitx5.android.input.keyboard.CustomGestureView.OnGestureListener
@@ -28,6 +29,7 @@ import org.fcitx.fcitx5.android.input.keyboard.KeyView
2829
import org.fcitx.fcitx5.android.input.keyboard.TextKeyView
2930
import org.fcitx.fcitx5.android.input.popup.PopupAction
3031
import org.fcitx.fcitx5.android.input.popup.PopupActionListener
32+
import splitties.views.backgroundColor
3133
import splitties.views.dsl.constraintlayout.below
3234
import splitties.views.dsl.constraintlayout.bottomOfParent
3335
import splitties.views.dsl.constraintlayout.bottomToTopOf
@@ -43,7 +45,15 @@ import splitties.views.dsl.core.Ui
4345
import splitties.views.dsl.core.add
4446
import splitties.views.dsl.core.matchParent
4547

46-
class PickerPageUi(override val ctx: Context, val theme: Theme, private val density: Density) : Ui {
48+
class PickerPageUi(
49+
override val ctx: Context,
50+
val theme: Theme,
51+
private val density: Density,
52+
recentlyUsedFileName: String = ""
53+
) : Ui {
54+
private val keyBorder by ThemeManager.prefs.keyBorder
55+
private val symbolBorder =
56+
ThemeManager.prefs.keySymbolBorder.getValue() && recentlyUsedFileName == PickerWindow.Key.Symbol.name
4757

4858
enum class Density(
4959
val pageSize: Int,
@@ -63,26 +73,25 @@ class PickerPageUi(override val ctx: Context, val theme: Theme, private val dens
6373
}
6474

6575
companion object {
66-
val BackspaceAppearance = Appearance.Image(
67-
src = R.drawable.ic_baseline_backspace_24,
68-
variant = Variant.Alternative,
69-
border = Border.Off,
70-
viewId = R.id.button_backspace
71-
)
72-
7376
val BackspaceAction = SymAction(KeySym(FcitxKeyMapping.FcitxKey_BackSpace))
74-
7577
private var popupOnKeyPress by AppPrefs.getInstance().keyboard.popupOnKeyPress
7678
}
7779

7880
var keyActionListener: KeyActionListener? = null
7981
var popupActionListener: PopupActionListener? = null
8082

83+
private val backspaceAppearance = Appearance.Image(
84+
src = R.drawable.ic_baseline_backspace_24,
85+
variant = Variant.Alternative,
86+
border = if (symbolBorder) Border.On else Border.Off,
87+
viewId = R.id.button_backspace
88+
)
89+
8190
private val keyAppearance = Appearance.Text(
8291
displayText = "",
8392
textSize = density.textSize,
8493
variant = Variant.Normal,
85-
border = Border.Off
94+
border = if (symbolBorder) Border.On else Border.Off
8695
)
8796

8897
private val keyViews = Array(density.pageSize) {
@@ -96,7 +105,7 @@ class PickerPageUi(override val ctx: Context, val theme: Theme, private val dens
96105
}
97106
}
98107

99-
private val backspaceKey = ImageKeyView(ctx, theme, BackspaceAppearance).apply {
108+
private val backspaceKey = ImageKeyView(ctx, theme, backspaceAppearance).apply {
100109
setOnClickListener { onBackspaceClick() }
101110
repeatEnabled = true
102111
onRepeatListener = { onBackspaceClick() }
@@ -107,6 +116,10 @@ class PickerPageUi(override val ctx: Context, val theme: Theme, private val dens
107116
}
108117

109118
override val root = constraintLayout {
119+
if (!keyBorder && symbolBorder) {
120+
backgroundColor = theme.barColor
121+
}
122+
110123
val columnCount = density.columnCount
111124
val rowCount = density.rowCount
112125
val keyWidth = 1f / columnCount

app/src/main/java/org/fcitx/fcitx5/android/input/picker/PickerPagesAdapter.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ class PickerPagesAdapter(
1717
private val popupActionListener: PopupActionListener,
1818
data: List<Pair<PickerData.Category, Array<String>>>,
1919
val density: PickerPageUi.Density,
20-
recentlyUsedFileName: String
20+
private val recentlyUsedFileName: String
2121
) : RecyclerView.Adapter<PickerPagesAdapter.ViewHolder>() {
2222

2323
class ViewHolder(val ui: PickerPageUi) : RecyclerView.ViewHolder(ui.root)
@@ -110,7 +110,7 @@ class PickerPagesAdapter(
110110
override fun getItemCount() = pages.size
111111

112112
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewHolder {
113-
return ViewHolder(PickerPageUi(parent.context, theme, density))
113+
return ViewHolder(PickerPageUi(parent.context, theme, density, recentlyUsedFileName))
114114
}
115115

116116
override fun onBindViewHolder(holder: ViewHolder, position: Int) {

app/src/main/res/values/strings.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -104,6 +104,7 @@
104104
<string name="theme">Theme</string>
105105
<string name="key_ripple_effect">Enable key ripple effect</string>
106106
<string name="key_border">Enable key border</string>
107+
<string name="key_symbol_border">Enable symbol key border</string>
107108
<string name="brightness">Brightness</string>
108109
<string name="key_radius">Key radius</string>
109110
<string name="key_text_editing_style">Text editing key style</string>

0 commit comments

Comments
 (0)