diff --git a/android/app/src/main/java/io/github/kichikuou/xsystem35/GameActivity.kt b/android/app/src/main/java/io/github/kichikuou/xsystem35/GameActivity.kt index aaa53aa..18e2656 100644 --- a/android/app/src/main/java/io/github/kichikuou/xsystem35/GameActivity.kt +++ b/android/app/src/main/java/io/github/kichikuou/xsystem35/GameActivity.kt @@ -78,7 +78,7 @@ class GameActivity : SDLActivity() { Launcher.updateGameList() } - private fun textInputDialog(msg: String, oldVal: String, result: Array) { + private fun textInputDialog(msg: String, oldVal: String, maxLen: Int, result: Array) { val input = EditText(this) input.inputType = InputType.TYPE_CLASS_TEXT input.setText(oldVal) @@ -86,7 +86,7 @@ class GameActivity : SDLActivity() { .setMessage(msg) .setView(input) .setPositiveButton(R.string.ok) {_, _ -> - result[0] = input.text.toString() + result[0] = input.text.toString().substring(0, maxLen) } .setNegativeButton(R.string.cancel) {_, _ -> } .setOnDismissListener { @@ -126,9 +126,9 @@ class GameActivity : SDLActivity() { @Suppress("unused") fun midiStop() = midi.stop() @Suppress("unused") fun midiCurrentPosition() = midi.currentPosition() - @Suppress("unused") fun inputString(msg: String, oldVal: String): String? { + @Suppress("unused") fun inputString(msg: String, oldVal: String, maxLen: Int): String? { val result = arrayOfNulls(1) - runOnUiThread { textInputDialog(msg, oldVal, result) } + runOnUiThread { textInputDialog(msg, oldVal, maxLen, result) } // Block the calling thread. synchronized(result) { try { diff --git a/src/menu_android.c b/src/menu_android.c index b5327df..8b4bca2 100644 --- a/src/menu_android.c +++ b/src/menu_android.c @@ -55,8 +55,8 @@ boolean menu_inputstring(INPUTSTRING_PARAM *p) { jobject context = SDL_AndroidGetActivity(); jmethodID mid = (*env)->GetMethodID(env, (*env)->GetObjectClass(env, context), - "inputString", "(" STRING STRING ")" STRING); - jstring newstring = (jstring)(*env)->CallObjectMethod(env, context, mid, msg, oldstring); + "inputString", "(" STRING STRING "I)" STRING); + jstring newstring = (jstring)(*env)->CallObjectMethod(env, context, mid, msg, oldstring, p->max); if (newstring) { const char *newstr_utf8 = (*env)->GetStringUTFChars(env, newstring, NULL); strcpy(buf, newstr_utf8);