Skip to content

Commit 6355ea5

Browse files
committed
fix: use unified landscape mode
Signed-off-by: unlsycn <unlsycn@unlsycn.com>
1 parent e5b7461 commit 6355ea5

File tree

12 files changed

+40
-46
lines changed

12 files changed

+40
-46
lines changed

app/src/main/java/com/osfans/trime/data/prefs/AppPrefs.kt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -85,7 +85,7 @@ class AppPrefs(
8585
const val FLOATING_WINDOW_ENABLED = "keyboard__show_window"
8686
const val POPUP_KEY_PRESS_ENABLED = "keyboard__show_key_popup"
8787
const val SWITCHES_ENABLED = "keyboard__show_switches"
88-
const val SPLIT = "keyboard__split"
88+
const val LANDSCAPE_MODE = "keyboard__landscape_mode"
8989
const val SPLIT_SPACE_PERCENT = "keyboard__split_space"
9090
const val SWITCH_ARROW_ENABLED = "keyboard__show_switch_arrow"
9191
const val FULLSCREEN_MODE = "keyboard__fullscreen_mode"
@@ -134,14 +134,14 @@ class AppPrefs(
134134
val switchesEnabled by bool(SWITCHES_ENABLED, true)
135135
val switchArrowEnabled by bool(SWITCH_ARROW_ENABLED, true)
136136

137-
enum class SplitOption {
137+
enum class LandscapeModeOption {
138138
NEVER,
139139
LANDSCAPE,
140140
AUTO,
141141
ALWAYS,
142142
}
143143

144-
val splitOption by enum(SPLIT, SplitOption.NEVER)
144+
val landscapeModeOption by enum(LANDSCAPE_MODE, LandscapeModeOption.NEVER)
145145
val splitSpacePercent by int(SPLIT_SPACE_PERCENT, 100)
146146
val candidatePageSize by string(CANDIDATE_PAGE_SIZE, "0")
147147

app/src/main/java/com/osfans/trime/ime/composition/Composition.kt

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -38,9 +38,11 @@ import com.osfans.trime.data.theme.ThemeManager
3838
import com.osfans.trime.data.theme.model.CompositionComponent
3939
import com.osfans.trime.ime.core.TrimeInputMethodService
4040
import com.osfans.trime.ime.keyboard.Event
41+
import com.osfans.trime.ime.keyboard.KeyboardPrefs.isLandscapeMode
4142
import com.osfans.trime.ime.keyboard.KeyboardSwitcher
4243
import com.osfans.trime.ime.text.Candidate
4344
import com.osfans.trime.ime.text.TextInputManager
45+
import com.osfans.trime.util.appContext
4446
import com.osfans.trime.util.sp
4547
import splitties.dimensions.dp
4648
import kotlin.math.absoluteValue
@@ -102,11 +104,8 @@ class Composition(context: Context, attrs: AttributeSet?) : TextView(context, at
102104
private var onActionMove: ((Float, Float) -> Unit)? = null
103105

104106
private val stickyLines: Int
105-
get() =
106-
when (resources.configuration.orientation) {
107-
Configuration.ORIENTATION_LANDSCAPE -> theme.generalStyle.layout.stickyLinesLand
108-
else -> theme.generalStyle.layout.stickyLines
109-
}
107+
get() = if (appContext.isLandscapeMode()) theme.generalStyle.layout.stickyLinesLand
108+
else theme.generalStyle.layout.stickyLines
110109

111110
private enum class Movable {
112111
ALWAYS,
@@ -223,6 +222,7 @@ class Composition(context: Context, attrs: AttributeSet?) : TextView(context, at
223222
}
224223
}
225224
}
225+
226226
MotionEvent.ACTION_MOVE -> {
227227
if (movable != Movable.NEVER) {
228228
if (touched in movableRange[0]..movableRange[1]) {
@@ -237,6 +237,7 @@ class Composition(context: Context, attrs: AttributeSet?) : TextView(context, at
237237
}
238238
}
239239
}
240+
240241
MotionEvent.ACTION_UP -> {
241242
if (touched in preeditRange[0]..preeditRange[1]) {
242243
val s =
@@ -419,7 +420,10 @@ class Composition(context: Context, attrs: AttributeSet?) : TextView(context, at
419420
for (component in windowComponents) {
420421
when {
421422
component.move.isNotBlank() -> buildSpannedMove(component)
422-
component.composition.isNotBlank() -> buildSpannedComposition(component, inputContext.composition)
423+
component.composition.isNotBlank() -> buildSpannedComposition(
424+
component, inputContext.composition
425+
)
426+
423427
component.click.isNotBlank() -> buildSpannedButton(component)
424428
component.candidate.isNotBlank() ->
425429
buildSpannedCandidates(

app/src/main/java/com/osfans/trime/ime/core/InputView.kt

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -32,9 +32,11 @@ import com.osfans.trime.ime.bar.QuickBar
3232
import com.osfans.trime.ime.composition.CompositionPopupWindow
3333
import com.osfans.trime.ime.dependency.InputComponent
3434
import com.osfans.trime.ime.dependency.create
35+
import com.osfans.trime.ime.keyboard.KeyboardPrefs.isLandscapeMode
3536
import com.osfans.trime.ime.keyboard.KeyboardWindow
3637
import com.osfans.trime.ime.symbol.LiquidKeyboard
3738
import com.osfans.trime.util.ColorUtils
39+
import com.osfans.trime.util.appContext
3840
import com.osfans.trime.util.styledFloat
3941
import kotlinx.coroutines.Job
4042
import kotlinx.coroutines.launch
@@ -118,20 +120,14 @@ class InputView(
118120
private val keyboardSidePaddingPx: Int
119121
get() {
120122
val value =
121-
when (resources.configuration.orientation) {
122-
Configuration.ORIENTATION_LANDSCAPE -> keyboardSidePaddingLandscape
123-
else -> keyboardSidePadding
124-
}
123+
if (appContext.isLandscapeMode()) keyboardSidePaddingLandscape else keyboardSidePadding
125124
return dp(value)
126125
}
127126

128127
private val keyboardBottomPaddingPx: Int
129128
get() {
130129
val value =
131-
when (resources.configuration.orientation) {
132-
Configuration.ORIENTATION_LANDSCAPE -> keyboardBottomPaddingLandscape
133-
else -> keyboardBottomPadding
134-
}
130+
if (appContext.isLandscapeMode()) keyboardBottomPaddingLandscape else keyboardBottomPadding
135131
return dp(value)
136132
}
137133

app/src/main/java/com/osfans/trime/ime/core/TrimeInputMethodService.kt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,7 @@ import com.osfans.trime.util.ShortcutUtils
5959
import com.osfans.trime.util.ShortcutUtils.openCategory
6060
import com.osfans.trime.util.WeakHashSet
6161
import com.osfans.trime.util.findSectionFrom
62+
import com.osfans.trime.util.isLandscape
6263
import com.osfans.trime.util.isNightMode
6364
import kotlinx.coroutines.CoroutineScope
6465
import kotlinx.coroutines.CoroutineStart
@@ -1115,7 +1116,7 @@ open class TrimeInputMethodService : LifecycleInputMethodService() {
11151116

11161117
override fun onEvaluateFullscreenMode(): Boolean {
11171118
val config = resources.configuration
1118-
if (config == null || config.orientation != Configuration.ORIENTATION_LANDSCAPE) return false
1119+
if (config == null || !resources.configuration.isLandscape()) return false
11191120
return when (prefs.keyboard.fullscreenMode) {
11201121
FullscreenMode.AUTO_SHOW -> {
11211122
Timber.d("FullScreen: Auto")

app/src/main/java/com/osfans/trime/ime/keyboard/Keyboard.kt

Lines changed: 4 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,6 @@ import com.osfans.trime.util.CollectionUtils.obtainInt
1717
import com.osfans.trime.util.CollectionUtils.obtainString
1818
import com.osfans.trime.util.appContext
1919
import com.osfans.trime.util.config.ConfigMap
20-
import com.osfans.trime.util.isLandscape
2120
import com.osfans.trime.util.sp
2221
import splitties.dimensions.dp
2322
import timber.log.Timber
@@ -426,16 +425,14 @@ class Keyboard() {
426425
val keyboardHeight = theme.generalStyle.keyboardHeight
427426
val keyboardHeightLand = theme.generalStyle.keyboardHeightLand
428427
val value =
429-
when (appContext.resources.configuration.orientation) {
430-
Configuration.ORIENTATION_LANDSCAPE -> keyboardHeightLand.takeIf { it > 0 } ?: keyboardHeight
431-
else -> keyboardHeight
432-
}
428+
if (appContext.isLandscapeMode()) keyboardHeightLand.takeIf { it > 0 } ?: keyboardHeight
429+
else keyboardHeight
433430
return appContext.dp(value)
434431
}
435432

436433
private fun getKeyboardHeightFromKeyboardConfig(keyboardConfig: Map<String, Any?>?): Int {
437434
var mkeyboardHeight = appContext.sp(obtainFloat(keyboardConfig, "keyboard_height", 0f)).toInt()
438-
if (appContext.resources.configuration.isLandscape()) {
435+
if (appContext.isLandscapeMode()) {
439436
val mkeyBoardHeightLand =
440437
appContext.sp(
441438
obtainFloat(keyboardConfig, "keyboard_height_land", 0f),
@@ -643,11 +640,7 @@ class Keyboard() {
643640

644641
val keyboardSidePaddingPx =
645642
appContext.dp(
646-
if (appContext.resources.configuration.isLandscape()) {
647-
keyboardSidePaddingLandscape
648-
} else {
649-
keyboardSidePadding
650-
},
643+
if (appContext.isLandscapeMode()) keyboardSidePaddingLandscape else keyboardSidePadding,
651644
)
652645

653646
mDisplayWidth = appContext.resources.displayMetrics.widthPixels - 2 * keyboardSidePaddingPx

app/src/main/java/com/osfans/trime/ime/keyboard/KeyboardPrefs.kt

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -14,10 +14,10 @@ object KeyboardPrefs {
1414
private const val WIDE_SCREEN_WIDTH_DP = 600
1515

1616
fun Context.isLandscapeMode(): Boolean {
17-
return when (prefs.keyboard.splitOption) {
18-
AppPrefs.Keyboard.SplitOption.AUTO -> isWideScreen()
19-
AppPrefs.Keyboard.SplitOption.LANDSCAPE -> resources.configuration.isLandscape()
20-
AppPrefs.Keyboard.SplitOption.ALWAYS -> true
17+
return when (prefs.keyboard.landscapeModeOption) {
18+
AppPrefs.Keyboard.LandscapeModeOption.AUTO -> resources.configuration.isLandscape() || isWideScreen()
19+
AppPrefs.Keyboard.LandscapeModeOption.LANDSCAPE -> resources.configuration.isLandscape()
20+
AppPrefs.Keyboard.LandscapeModeOption.ALWAYS -> true
2121
else -> false
2222
}
2323
}

app/src/main/java/com/osfans/trime/ui/fragments/KeyboardFragment.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ class KeyboardFragment :
4646
"keyboard__key_long_press_timeout",
4747
"keyboard__key_repeat_interval",
4848
"keyboard__show_key_popup",
49-
AppPrefs.Keyboard.SPLIT, AppPrefs.Keyboard.SPLIT_SPACE_PERCENT,
49+
AppPrefs.Keyboard.LANDSCAPE_MODE, AppPrefs.Keyboard.SPLIT_SPACE_PERCENT,
5050
"keyboard__show_window",
5151
"keyboard__inline_preedit", "keyboard__soft_cursor",
5252
-> {

app/src/main/res/values-zh-rCN/strings.xml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -58,10 +58,10 @@ SPDX-License-Identifier: GPL-3.0-or-later
5858
<item>输入码</item>
5959
<item>无</item>
6060
</string-array>
61-
<string-array name="keyboard__split_entries">
61+
<string-array name="keyboard__landscape_mode_entries">
6262
<item>永不</item>
6363
<item>只在横屏时</item>
64-
<item>在阔萤幕或横屏时</item>
64+
<item>在屏幕较宽或横屏时</item>
6565
<item>永远都是</item>
6666
</string-array>
6767
<string-array name="other__ui_mode_entries" >
@@ -259,7 +259,7 @@ SPDX-License-Identifier: GPL-3.0-or-later
259259
<string name="keyboard__custom_key_sound">使用自定义按键音</string>
260260

261261
<string name="pref_keyboard__landscape">横屏模式</string>
262-
<string name="keyboard__split_title">转换到横屏键盘</string>
262+
<string name="keyboard__landscape_mode_title">启用横屏模式</string>
263263
<string name="keyboard__split_space_title">自动分割键盘比例</string>
264264
<string name="setup__step_three">第 3 步</string>
265265
<string name="setup__request_permmision_hint">当前同文需要存储权限以访问配置、使得用户容易更改。</string>

app/src/main/res/values-zh-rTW/strings.xml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ SPDX-License-Identifier: GPL-3.0-or-later
6161
<item>輸入碼</item>
6262
<item>無</item>
6363
</string-array>
64-
<string-array name="keyboard__split_entries">
64+
<string-array name="keyboard__landscape_mode_entries">
6565
<item>永不</item>
6666
<item>只在橫屏時</item>
6767
<item>在闊螢幕或橫屏時</item>
@@ -260,7 +260,7 @@ SPDX-License-Identifier: GPL-3.0-or-later
260260
<string name="keyboard__custom_key_sound">使用自訂按鍵音</string>
261261

262262
<string name="pref_keyboard__landscape">橫向模式</string>
263-
<string name="keyboard__split_title">轉換到橫屏鍵盤</string>
263+
<string name="keyboard__landscape_mode_title">啟用橫屏模式</string>
264264
<string name="keyboard__split_space_title">自動分割鍵盤比例</string>
265265
<string name="setup__step_three">第 3 步</string>
266266
<string name="setup__request_permmision_hint">當前同文須要存儲權限以訪問配置檔案、使得使用者容易修改。</string>

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ SPDX-License-Identifier: GPL-3.0-or-later
1313
<item>input</item>
1414
<item>none</item>
1515
</string-array>
16-
<string-array name="keyboard__split_values">
16+
<string-array name="keyboard__landscape_mode_values">
1717
<item>NEVER</item>
1818
<item>LANDSCAPE</item>
1919
<item>AUTO</item>

0 commit comments

Comments
 (0)