diff options
Diffstat (limited to 'src/android/app/src/main/java/org/yuzu/yuzu_emu/activities/EmulationActivity.kt')
-rw-r--r-- | src/android/app/src/main/java/org/yuzu/yuzu_emu/activities/EmulationActivity.kt | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/activities/EmulationActivity.kt b/src/android/app/src/main/java/org/yuzu/yuzu_emu/activities/EmulationActivity.kt index 2fd0d38fa..8304c2aa5 100644 --- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/activities/EmulationActivity.kt +++ b/src/android/app/src/main/java/org/yuzu/yuzu_emu/activities/EmulationActivity.kt @@ -8,8 +8,10 @@ import android.content.DialogInterface import android.content.Intent import android.graphics.Rect import android.os.Bundle +import android.view.KeyEvent import android.view.View import android.view.WindowManager +import android.view.inputmethod.InputMethodManager import androidx.appcompat.app.AppCompatActivity import androidx.fragment.app.FragmentActivity import androidx.preference.PreferenceManager @@ -80,6 +82,29 @@ open class EmulationActivity : AppCompatActivity() { //startForegroundService(foregroundService); } + override fun onKeyDown(keyCode: Int, event: KeyEvent): Boolean { + if (event.action == android.view.KeyEvent.ACTION_DOWN) { + if (keyCode == android.view.KeyEvent.KEYCODE_ENTER) { + // Special case, we do not support multiline input, dismiss the keyboard. + val overlayView: View = + this.findViewById<View>(R.id.surface_input_overlay) + val im = + overlayView.context.getSystemService(INPUT_METHOD_SERVICE) as InputMethodManager + im.hideSoftInputFromWindow(overlayView.windowToken, 0); + } else { + val textChar = event.getUnicodeChar(); + if (textChar == 0) { + // No text, button input. + NativeLibrary.SubmitInlineKeyboardInput(keyCode); + } else { + // Text submitted. + NativeLibrary.SubmitInlineKeyboardText(textChar.toChar().toString()); + } + } + } + return super.onKeyDown(keyCode, event) + } + override fun onSaveInstanceState(outState: Bundle) { outState.putParcelable(EXTRA_SELECTED_GAME, game) super.onSaveInstanceState(outState) |