From b1f8f7746b19dd7aeeedc33a09362721a8383267 Mon Sep 17 00:00:00 2001 From: Yair Morgenstern Date: Sun, 28 Apr 2024 14:41:57 +0300 Subject: [PATCH] Better UX for multiplayer game rename --- .../multiplayerscreens/MultiplayerScreen.kt | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/core/src/com/unciv/ui/screens/multiplayerscreens/MultiplayerScreen.kt b/core/src/com/unciv/ui/screens/multiplayerscreens/MultiplayerScreen.kt index 195d491e88..f1c9785185 100644 --- a/core/src/com/unciv/ui/screens/multiplayerscreens/MultiplayerScreen.kt +++ b/core/src/com/unciv/ui/screens/multiplayerscreens/MultiplayerScreen.kt @@ -8,15 +8,18 @@ import com.unciv.logic.multiplayer.OnlineMultiplayerGame import com.unciv.logic.multiplayer.storage.MultiplayerAuthException import com.unciv.models.translations.tr import com.unciv.ui.components.UncivTextField -import com.unciv.ui.screens.pickerscreens.PickerScreen -import com.unciv.ui.popups.Popup -import com.unciv.ui.popups.ToastPopup import com.unciv.ui.components.extensions.disable import com.unciv.ui.components.extensions.enable -import com.unciv.ui.components.input.onClick import com.unciv.ui.components.extensions.toTextButton +import com.unciv.ui.components.input.KeyCharAndCode +import com.unciv.ui.components.input.keyShortcuts +import com.unciv.ui.components.input.onActivation +import com.unciv.ui.components.input.onClick import com.unciv.ui.popups.AuthPopup import com.unciv.ui.popups.ConfirmPopup +import com.unciv.ui.popups.Popup +import com.unciv.ui.popups.ToastPopup +import com.unciv.ui.screens.pickerscreens.PickerScreen import com.unciv.ui.screens.savescreens.LoadGameScreen import com.unciv.utils.Concurrency import com.unciv.utils.Log @@ -190,7 +193,8 @@ class MultiplayerScreen : PickerScreen() { val textField = UncivTextField.create("Game name", selectedGame!!.name) add(textField).width(stageToShowOn.width / 2).row() val saveButton = "Save".toTextButton() - saveButton.onClick { + + val saveNewNameFunction = { val newName = textField.text.trim() game.onlineMultiplayer.changeGameName(selectedGame!!, newName) { if (it != null) reuseWith("Could not save game!", true) @@ -199,6 +203,11 @@ class MultiplayerScreen : PickerScreen() { selectGame(newName) close() } + + saveButton.onActivation(saveNewNameFunction) + saveButton.keyShortcuts.add(KeyCharAndCode.RETURN) + textField.cursorPosition = textField.text.length + this@MultiplayerScreen.stage.keyboardFocus = textField add(saveButton) open() }