@@ -3,11 +3,16 @@ package com.osfans.trime.ime.core
3
3
import android.annotation.SuppressLint
4
4
import android.app.Dialog
5
5
import android.content.res.Configuration
6
+ import android.graphics.Color
7
+ import android.os.Build
6
8
import android.view.View
9
+ import android.view.View.OnClickListener
7
10
import android.view.WindowManager
8
11
import android.view.inputmethod.EditorInfo
9
12
import androidx.constraintlayout.widget.ConstraintLayout
10
13
import androidx.core.view.ViewCompat
14
+ import androidx.core.view.WindowCompat
15
+ import androidx.core.view.WindowInsetsCompat
11
16
import androidx.core.view.updateLayoutParams
12
17
import androidx.lifecycle.lifecycleScope
13
18
import com.osfans.trime.core.Rime
@@ -16,6 +21,7 @@ import com.osfans.trime.data.theme.Theme
16
21
import com.osfans.trime.ime.bar.QuickBar
17
22
import com.osfans.trime.ime.keyboard.KeyboardWindow
18
23
import com.osfans.trime.ime.symbol.LiquidKeyboard
24
+ import com.osfans.trime.util.ColorUtils
19
25
import com.osfans.trime.util.styledFloat
20
26
import kotlinx.coroutines.Job
21
27
import kotlinx.coroutines.launch
@@ -122,6 +128,24 @@ class InputView(
122
128
}
123
129
}
124
130
131
+ service.window.window!! .also { it ->
132
+ // allow draw behind navigation bar
133
+ WindowCompat .setDecorFitsSystemWindows(it, false )
134
+ it.navigationBarColor = Color .TRANSPARENT
135
+ if (Build .VERSION .SDK_INT >= Build .VERSION_CODES .Q ) {
136
+ // don't apply scrim to transparent navigation bar
137
+ it.isNavigationBarContrastEnforced = false
138
+ }
139
+ ViewCompat .setOnApplyWindowInsetsListener(this ) { _, insets ->
140
+ insets.getInsets(WindowInsetsCompat .Type .navigationBars()).let {
141
+ bottomPaddingSpace.updateLayoutParams<LayoutParams > {
142
+ bottomMargin = it.bottom
143
+ }
144
+ }
145
+ WindowInsetsCompat .CONSUMED
146
+ }
147
+ }
148
+
125
149
liquidKeyboard.setKeyboardView(keyboardWindow.oldSymbolInputView.liquidKeyboardView)
126
150
127
151
keyboardView =
@@ -214,7 +238,17 @@ class InputView(
214
238
quickBar.view.setPadding(sidePadding, 0 , sidePadding, 0 )
215
239
}
216
240
217
- fun startInput (info : EditorInfo ) {
241
+ fun startInput (
242
+ info : EditorInfo ,
243
+ restarting : Boolean = false,
244
+ ) {
245
+ if (! restarting) {
246
+ service.window.window!! .also {
247
+ WindowCompat .getInsetsController(it, it.decorView)
248
+ .isAppearanceLightNavigationBars =
249
+ ColorUtils .isDark(theme.colors.getColor(" key_text_color" )!! )
250
+ }
251
+ }
218
252
keyboardWindow.oldMainInputView.mainKeyboardView.updateEnterLabelOnEditorInfo(info)
219
253
}
220
254
0 commit comments