From 9f7852e76fd678a082d6fe63a06ad1dbda3516ce Mon Sep 17 00:00:00 2001 From: Anthony Calosa Date: Wed, 23 Jul 2025 06:29:58 +0800 Subject: [PATCH] update SettingsScene landscape checkbox --- .../forge/adventure/scene/SettingsScene.java | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/forge-gui-mobile/src/forge/adventure/scene/SettingsScene.java b/forge-gui-mobile/src/forge/adventure/scene/SettingsScene.java index 6c7496be284..1edc6717d5d 100644 --- a/forge-gui-mobile/src/forge/adventure/scene/SettingsScene.java +++ b/forge-gui-mobile/src/forge/adventure/scene/SettingsScene.java @@ -260,9 +260,19 @@ public class SettingsScene extends UIScene { if (!GuiBase.isAndroid()) { addCheckBox(Forge.getLocalizer().getMessage("lblBattlefieldTextureFiltering"), ForgePreferences.FPref.UI_LIBGDX_TEXTURE_FILTERING); addCheckBox(Forge.getLocalizer().getMessage("lblAltZoneTabs"), ForgePreferences.FPref.UI_ALT_PLAYERZONETABS); + } else { + addCheckBox(Forge.getLocalizer().getMessage("lblLandscapeMode") + " (" + + Forge.getLocalizer().getMessage("lblRestartRequired") + ")", + ForgePreferences.FPref.UI_LANDSCAPE_MODE, () -> { + boolean landscapeMode = FModel.getPreferences().getPrefBoolean(ForgePreferences.FPref.UI_LANDSCAPE_MODE); + //ensure device able to save off ini file so landscape change takes effect + Forge.getDeviceAdapter().setLandscapeMode(landscapeMode); + if (Forge.isLandscapeMode() != landscapeMode) { + restartForge(); + } + }); } - addCheckBox(Forge.getLocalizer().getMessage("lblLandscapeMode"), ForgePreferences.FPref.UI_LANDSCAPE_MODE); addCheckBox(Forge.getLocalizer().getMessage("lblAnimatedCardTapUntap"), ForgePreferences.FPref.UI_ANIMATED_CARD_TAPUNTAP); if (!GuiBase.isAndroid()) { final String[] item = {FModel.getPreferences().getPref(ForgePreferences.FPref.UI_ENABLE_BORDER_MASKING)}; @@ -320,6 +330,10 @@ public class SettingsScene extends UIScene { } private void addCheckBox(String name, ForgePreferences.FPref pref) { + addCheckBox(name, pref, null); + } + + private void addCheckBox(String name, ForgePreferences.FPref pref, Runnable runnable) { CheckBox box = Controls.newCheckBox(""); box.setChecked(FModel.getPreferences().getPrefBoolean(pref)); box.addListener(new ChangeListener() { @@ -327,6 +341,8 @@ public class SettingsScene extends UIScene { public void changed(ChangeEvent event, Actor actor) { FModel.getPreferences().setPref(pref, ((CheckBox) actor).isChecked()); FModel.getPreferences().save(); + if (runnable != null) + runnable.run(); } });