From 52d77c68626dee6da05e3a83af18c57ab1a9bfc6 Mon Sep 17 00:00:00 2001 From: Anthony Calosa Date: Thu, 31 Oct 2024 17:28:30 +0800 Subject: [PATCH] fix NPE and update keyboard visibility --- forge-gui-mobile/src/forge/Forge.java | 9 ++++++--- forge-gui-mobile/src/forge/card/CardImageRenderer.java | 2 +- forge-gui-mobile/src/forge/toolbox/FTextField.java | 3 ++- 3 files changed, 9 insertions(+), 5 deletions(-) diff --git a/forge-gui-mobile/src/forge/Forge.java b/forge-gui-mobile/src/forge/Forge.java index 2b95a5b53d4..669008d9155 100644 --- a/forge-gui-mobile/src/forge/Forge.java +++ b/forge-gui-mobile/src/forge/Forge.java @@ -159,7 +159,6 @@ public class Forge implements ApplicationListener { public void create() { //install our error handler ExceptionHandler.registerErrorHandling(); - FThreads.invokeInEdtLater(() -> getDeviceAdapter().closeSplashScreen()); GuiBase.setIsAndroid(Gdx.app.getType() == Application.ApplicationType.Android); @@ -258,6 +257,8 @@ public class Forge implements ApplicationListener { /* call preloadExtendedArt here, if we put it above we will * * get error: No OpenGL context found in the current thread. */ preloadExtendedArt(); + // should be after create method but try to close this at a later time. + getDeviceAdapter().closeSplashScreen(); }); }; //see if app or assets need updating @@ -1092,7 +1093,7 @@ public class Forge implements ApplicationListener { System.out.println(message); } - public static void startKeyInput(KeyInputAdapter adapter, boolean numeric) { + public static void startKeyInput(KeyInputAdapter adapter) { if (keyInputAdapter == adapter) { return; } @@ -1100,7 +1101,9 @@ public class Forge implements ApplicationListener { keyInputAdapter.onInputEnd(); //make sure previous adapter is ended } keyInputAdapter = adapter; - Gdx.input.setOnscreenKeyboardVisible(true, numeric ? Input.OnscreenKeyboardType.NumberPad : Input.OnscreenKeyboardType.Default); + } + public static void setOnScreenKeyboard(boolean val, boolean numeric) { + Gdx.input.setOnscreenKeyboardVisible(val, numeric ? Input.OnscreenKeyboardType.NumberPad : Input.OnscreenKeyboardType.Default); } public static boolean endKeyInput() { diff --git a/forge-gui-mobile/src/forge/card/CardImageRenderer.java b/forge-gui-mobile/src/forge/card/CardImageRenderer.java index e0771825003..3b08d0c1349 100644 --- a/forge-gui-mobile/src/forge/card/CardImageRenderer.java +++ b/forge-gui-mobile/src/forge/card/CardImageRenderer.java @@ -676,7 +676,7 @@ public class CardImageRenderer { if (cv == null || isFaceDown) cv = card; CardStateView csv = cv.getState(true); - text = cv.getText(csv, needTranslation ? CardTranslation.getTranslationTexts(csv) : null); + text = cv.getText(csv, needTranslation && csv != null ? CardTranslation.getTranslationTexts(csv) : null); } else { text = !card.isSplitCard() ? diff --git a/forge-gui-mobile/src/forge/toolbox/FTextField.java b/forge-gui-mobile/src/forge/toolbox/FTextField.java index e9c858c65e1..37654681f63 100644 --- a/forge-gui-mobile/src/forge/toolbox/FTextField.java +++ b/forge-gui-mobile/src/forge/toolbox/FTextField.java @@ -234,6 +234,7 @@ public class FTextField extends FDisplayObject implements ITextField { public boolean startEdit() { if (readOnly) { return false; } + Forge.setOnScreenKeyboard(true, isNumeric); if (isEditing) { return true; } //do nothing if already editing selStart = 0; //select all before starting input @@ -345,7 +346,7 @@ public class FTextField extends FDisplayObject implements ITextField { public void onInputEnd() { endEdit(); } - }, isNumeric); + }); isEditing = true; return true; }