updated keyboard formatting

This commit is contained in:
amwatson 2024-02-09 20:36:13 -06:00
parent 412e1b9ac0
commit 09a1c55ce0
8 changed files with 41 additions and 22 deletions

View file

@ -13,6 +13,7 @@ import org.citra.citra_emu.R
import org.citra.citra_emu.fragments.KeyboardDialogFragment
import org.citra.citra_emu.utils.Log
import org.citra.citra_emu.vr.VrActivity
import org.citra.citra_emu.vr.ui.VrKeyboardView
import org.citra.citra_emu.vr.utils.VrMessageQueue
import java.io.Serializable
import java.security.Key
@ -22,7 +23,6 @@ import java.security.Key
object SoftwareKeyboard {
lateinit var data: KeyboardData
val finishLock = Object()
var sConfig : KeyboardConfig = KeyboardConfig()
private fun ExecuteImpl(config: KeyboardConfig) {
val emulationActivity = NativeLibrary.sEmulationActivity.get()
@ -68,7 +68,7 @@ object SoftwareKeyboard {
if (emulationActivity is VrActivity) {
NativeLibrary.sEmulationActivity.get()!!.runOnUiThread {
// Show keyboard
sConfig = config
VrKeyboardView.sVrKeyboardView.get()!!.setConfig(config)
VrMessageQueue.post(VrMessageQueue.MessageType.SHOW_KEYBOARD, 1)
}
} else {
@ -173,7 +173,7 @@ object SoftwareKeyboard {
}
}
fun onFinishVrKeyboardPositive(text: String?, config: KeyboardConfig?) {
Log.info("amwatson [SoftwareKeyboard] button positive: \"$text\"")
Log.debug("[SoftwareKeyboard] button positive: \"$text\" config button: ${config!!.buttonConfig}")
data = KeyboardData(config!!.buttonConfig, text!!)
val error = ValidateInput(data.text)
if (error != ValidationError.None) {

View file

@ -11,8 +11,10 @@ import android.widget.Button
import android.widget.EditText
import android.widget.LinearLayout
import org.citra.citra_emu.R
import org.citra.citra_emu.activities.EmulationActivity
import org.citra.citra_emu.applets.SoftwareKeyboard
import org.citra.citra_emu.utils.Log
import java.lang.ref.WeakReference
import java.util.Locale
class VrKeyboardView : LinearLayout {
@ -40,22 +42,20 @@ class VrKeyboardView : LinearLayout {
private fun init(attrs: AttributeSet?, defStyle: Int) {
mLayoutInflator = context.getSystemService(Context.LAYOUT_INFLATER_SERVICE) as LayoutInflater
sVrKeyboardView = WeakReference(this)
}
override fun onFinishInflate() {
super.onFinishInflate()
mEditText = findViewById(R.id.vrKeyboardText)
setConfig(SoftwareKeyboard.sConfig)
showKeyboardType(KeyboardType.Abc)
clearKeyboardState()
}
// Call from UI thread
fun setConfig(config: SoftwareKeyboard.KeyboardConfig) {
val editText: EditText = findViewById(R.id.vrKeyboardText)
assert(editText != null)
/* editText!!.apply {
assert(mEditText != null)
clearKeyboardState()
mEditText!!.apply {
setHint(config!!.hintText)
setSingleLine(!config.multilineMode)
setFilters(
@ -64,11 +64,18 @@ class VrKeyboardView : LinearLayout {
InputFilter.LengthFilter(config.maxTextLength)
)
)
}*/
}
setupResultButtons(config)
mConfig = config
}
private fun clearKeyboardState() {
assert(mEditText != null)
mEditText!!.setText("")
mIsShifted = false // gets used in showKeyboardType
showKeyboardType(KeyboardType.Abc)
}
private fun setupResultButtons(config: SoftwareKeyboard.KeyboardConfig?) {
// Configure the result buttons
findViewById<View>(R.id.keyPositive).setOnTouchListener { _, event ->
@ -248,6 +255,8 @@ class VrKeyboardView : LinearLayout {
}
companion object {
var sVrKeyboardView = WeakReference<VrKeyboardView?>(null)
private fun setKeyCaseForViewGroup(viewGroup: ViewGroup, isShifted: Boolean) {
for (i in 0 until viewGroup.childCount) {
val child = viewGroup.getChildAt(i)

View file

@ -0,0 +1,4 @@
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true" android:color="@color/citra_onSecondaryContainer" /> <!-- Pressed color -->
<item android:color="@color/citra_onSecondary" /> <!-- Default color -->
</selector>

View file

@ -2,14 +2,14 @@
<!-- Pressed state -->
<item android:state_pressed="true">
<shape android:shape="rectangle">
<solid android:color="#707B7C"/> <!-- Pressed color -->
<solid android:color="@color/citra_secondaryContainer"/> <!-- Pressed color -->
<corners android:radius="4dp"/>
</shape>
</item>
<!-- Default state -->
<item>
<shape android:shape="rectangle">
<solid android:color="#A9B2B1"/> <!-- Default color -->
<solid android:color="@color/citra_secondary"/> <!-- Default color -->
<corners android:radius="4dp"/>
</shape>
</item>

View file

@ -2,7 +2,7 @@
<!-- Pressed state -->
<item android:state_pressed="true">
<shape android:shape="rectangle">
<solid android:color="#DFA900"/> <!-- Pressed color -->
<solid android:color="@color/citra_primaryContainer"/> <!-- Pressed color -->
<corners android:radius="4dp"/>
</shape>
</item>

View file

@ -1,4 +1,4 @@
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<solid android:color="#1C1C1B"/>
<corners android:radius="4dp" />
<solid android:color="@color/citra_surface"/>
<corners android:radius="20dp" />
</shape>

View file

@ -15,28 +15,33 @@ app's packagename and returns information for the wrong window.-->
android:id="@+id/vr_keyboard"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@color/citra_surface"
android:background="@drawable/vr_menu_background"
android:layout_gravity="center"
android:layout_marginHorizontal="30dp"
android:gravity="center"
android:orientation="vertical"
android:paddingTop="40dp"
android:theme="@style/ThemeOverlay.Citra.Dark">
<LinearLayout
android:layout_width="700dp"
android:layout_height="30dp"
android:orientation="horizontal"/>
<EditText
android:id="@+id/vrKeyboardText"
style="@style/VrKeyboardEditText"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textColor="@color/citra_onSurface"
android:ems="10"
android:layout_marginHorizontal="16dp"
android:focusable="true"
android:focusableInTouchMode="true"
android:inputType="text" />
<LinearLayout
android:id="@+id/vr_keyboard_keyboard"
android:layout_width="700dp"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
@ -47,6 +52,7 @@ app's packagename and returns information for the wrong window.-->
android:layout_height="wrap_content"
android:layout_gravity="center"
android:gravity="center"
android:layout_marginBottom="20dp"
android:orientation="horizontal">
<Button
@ -56,7 +62,7 @@ app's packagename and returns information for the wrong window.-->
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="@android:string/ok"
android:visibility="gone" />
android:visibility="invisible" />
<Button
android:id="@+id/keyNeutral"

View file

@ -18,7 +18,7 @@
<style name="VrKeyboardButtonStyle" parent="Widget.Material3.Button">
<item name="android:background">@drawable/vr_keyboard_key_background</item>
<item name="android:textSize">18sp</item>
<item name="android:textColor">@android:color/white</item>
<item name="android:textColor">@color/vr_keyboard_key_text_color</item>
<item name="android:padding">10dp</item>
<item name="android:layout_margin">2dp</item>
<item name="android:textAllCaps">false</item>
@ -26,10 +26,10 @@
<style name="VrKeyboardButtonStyleModifier" parent="@style/VrKeyboardButtonStyle">
<item name="android:background">@drawable/vr_keyboard_modifier_key_background</item>
<item name="android:textColor">@color/citra_onPrimary</item>
</style>
<style name="VrKeyboardEditText" parent="Widget.AppCompat.EditText">
<item name="android:textColor">@android:color/white</item>
<item name="android:textSize">16sp</item>
<item name="android:padding">12dp</item>
<item name="colorControlActivated">@color/citra_primary</item>