update SettingsScene

- fix preferences
This commit is contained in:
Anthony Calosa
2023-07-02 08:50:41 +08:00
parent 059a407d2f
commit 1f03836b20
2 changed files with 26 additions and 32 deletions

View File

@@ -182,6 +182,10 @@ public class Forge implements ApplicationListener {
ForgePreferences prefs = new ForgePreferences(); ForgePreferences prefs = new ForgePreferences();
if (Files.exists(Paths.get(ForgeConstants.DEFAULT_SKINS_DIR+ForgeConstants.ADV_TEXTURE_BG_FILE))) if (Files.exists(Paths.get(ForgeConstants.DEFAULT_SKINS_DIR+ForgeConstants.ADV_TEXTURE_BG_FILE)))
selector = prefs.getPref(FPref.UI_SELECTOR_MODE); selector = prefs.getPref(FPref.UI_SELECTOR_MODE);
if (prefs.getPrefBoolean(FPref.UI_LANDSCAPE_MODE) != (screenWidth > screenHeight)) {
prefs.setPref(FPref.UI_LANDSCAPE_MODE, (screenWidth > screenHeight));
prefs.save();
}
String skinName; String skinName;
if (FileUtil.doesFileExist(ForgeConstants.MAIN_PREFS_FILE)) { if (FileUtil.doesFileExist(ForgeConstants.MAIN_PREFS_FILE)) {
skinName = prefs.getPref(FPref.UI_SKIN); skinName = prefs.getPref(FPref.UI_SKIN);
@@ -379,12 +383,6 @@ public class Forge implements ApplicationListener {
//adjust height modifier //adjust height modifier
adjustHeightModifier(getScreenWidth(), getScreenHeight()); adjustHeightModifier(getScreenWidth(), getScreenHeight());
//update landscape mode preference if it doesn't match what the app loaded as
if (FModel.getPreferences().getPrefBoolean(FPref.UI_LANDSCAPE_MODE) != isLandscapeMode()) {
FModel.getPreferences().setPref(FPref.UI_LANDSCAPE_MODE, isLandscapeMode());
FModel.getPreferences().save();
}
FThreads.invokeInBackgroundThread(() -> FThreads.invokeInEdtLater(() -> { FThreads.invokeInBackgroundThread(() -> FThreads.invokeInEdtLater(() -> {
//load skin full //load skin full
FSkin.loadFull(splashScreen); FSkin.loadFull(splashScreen);

View File

@@ -30,7 +30,6 @@ import static java.nio.file.StandardCopyOption.REPLACE_EXISTING;
* Scene to handle settings of the base forge and adventure mode * Scene to handle settings of the base forge and adventure mode
*/ */
public class SettingsScene extends UIScene { public class SettingsScene extends UIScene {
static public ForgePreferences Preference;
private final Table settingGroup; private final Table settingGroup;
TextraButton backButton; TextraButton backButton;
//TextraButton newPlane; //TextraButton newPlane;
@@ -99,9 +98,6 @@ public class SettingsScene extends UIScene {
super(Forge.isLandscapeMode() ? "ui/settings.json" : "ui/settings_portrait.json"); super(Forge.isLandscapeMode() ? "ui/settings.json" : "ui/settings_portrait.json");
settingGroup = new Table(); settingGroup = new Table();
if (Preference == null) {
Preference = FModel.getPreferences();
}
//temporary disable custom world until it works correctly on each update //temporary disable custom world until it works correctly on each update
/*selectSourcePlane = Controls.newComboBox(); /*selectSourcePlane = Controls.newComboBox();
newPlaneName = Controls.newTextField(""); newPlaneName = Controls.newTextField("");
@@ -131,10 +127,10 @@ public class SettingsScene extends UIScene {
mode = "720p"; mode = "720p";
Graphics.setVideoMode(mode); Graphics.setVideoMode(mode);
//update preference for classic mode if needed //update
if (Preference.getPref(ForgePreferences.FPref.UI_VIDEO_MODE).equals(mode)) { if (!FModel.getPreferences().getPref(ForgePreferences.FPref.UI_VIDEO_MODE).equalsIgnoreCase(mode)) {
Preference.setPref(ForgePreferences.FPref.UI_VIDEO_MODE, mode); FModel.getPreferences().setPref(ForgePreferences.FPref.UI_VIDEO_MODE, mode);
Preference.save(); FModel.getPreferences().save();
} }
return null; return null;
}); });
@@ -194,10 +190,8 @@ public class SettingsScene extends UIScene {
Config.instance().getSettingData().fullScreen = value; Config.instance().getSettingData().fullScreen = value;
Config.instance().saveSettings(); Config.instance().saveSettings();
//update //update
if (Preference.getPrefBoolean(ForgePreferences.FPref.UI_FULLSCREEN_MODE) != value) { FModel.getPreferences().setPref(ForgePreferences.FPref.UI_FULLSCREEN_MODE, Config.instance().getSettingData().fullScreen);
Preference.setPref(ForgePreferences.FPref.UI_LANDSCAPE_MODE, value); FModel.getPreferences().save();
Preference.save();
}
} }
}); });
} }
@@ -237,16 +231,18 @@ public class SettingsScene extends UIScene {
addCheckBox(Forge.getLocalizer().getMessage("lblLandscapeMode"), ForgePreferences.FPref.UI_LANDSCAPE_MODE); addCheckBox(Forge.getLocalizer().getMessage("lblLandscapeMode"), ForgePreferences.FPref.UI_LANDSCAPE_MODE);
addCheckBox(Forge.getLocalizer().getMessage("lblAnimatedCardTapUntap"), ForgePreferences.FPref.UI_ANIMATED_CARD_TAPUNTAP); addCheckBox(Forge.getLocalizer().getMessage("lblAnimatedCardTapUntap"), ForgePreferences.FPref.UI_ANIMATED_CARD_TAPUNTAP);
if (!GuiBase.isAndroid()) { if (!GuiBase.isAndroid()) {
final String[] item = {Preference.getPref(ForgePreferences.FPref.UI_ENABLE_BORDER_MASKING)}; final String[] item = {FModel.getPreferences().getPref(ForgePreferences.FPref.UI_ENABLE_BORDER_MASKING)};
SelectBox<String> borderMask = Controls.newComboBox(new String[]{"Off", "Crop", "Full", "Art"}, item[0], o -> { SelectBox<String> borderMask = Controls.newComboBox(new String[]{"Off", "Crop", "Full", "Art"}, item[0], o -> {
String mode = (String) o; String mode = (String) o;
if (mode == null) if (mode == null)
mode = "Crop"; mode = "Crop";
item[0] = mode; item[0] = mode;
//update preference for classic mode if needed //update
Preference.setPref(ForgePreferences.FPref.UI_ENABLE_BORDER_MASKING, mode); if (!FModel.getPreferences().getPref(ForgePreferences.FPref.UI_ENABLE_BORDER_MASKING).equalsIgnoreCase(mode)) {
Preference.save(); FModel.getPreferences().setPref(ForgePreferences.FPref.UI_ENABLE_BORDER_MASKING, mode);
Forge.enableUIMask = Preference.getPref(ForgePreferences.FPref.UI_ENABLE_BORDER_MASKING); FModel.getPreferences().save();
Forge.enableUIMask = FModel.getPreferences().getPref(ForgePreferences.FPref.UI_ENABLE_BORDER_MASKING);
}
ImageCache.clearGeneratedCards(); ImageCache.clearGeneratedCards();
ImageCache.disposeTextures(); ImageCache.disposeTextures();
return null; return null;
@@ -277,12 +273,12 @@ public class SettingsScene extends UIScene {
private void addInputField(String name, ForgePreferences.FPref pref) { private void addInputField(String name, ForgePreferences.FPref pref) {
TextField box = Controls.newTextField(""); TextField box = Controls.newTextField("");
box.setText(Preference.getPref(pref)); box.setText(FModel.getPreferences().getPref(pref));
box.addListener(new ChangeListener() { box.addListener(new ChangeListener() {
@Override @Override
public void changed(ChangeEvent event, Actor actor) { public void changed(ChangeEvent event, Actor actor) {
Preference.setPref(pref, ((TextField) actor).getText()); FModel.getPreferences().setPref(pref, ((TextField) actor).getText());
Preference.save(); FModel.getPreferences().save();
} }
}); });
@@ -292,12 +288,12 @@ public class SettingsScene extends UIScene {
private void addCheckBox(String name, ForgePreferences.FPref pref) { private void addCheckBox(String name, ForgePreferences.FPref pref) {
CheckBox box = Controls.newCheckBox(""); CheckBox box = Controls.newCheckBox("");
box.setChecked(Preference.getPrefBoolean(pref)); box.setChecked(FModel.getPreferences().getPrefBoolean(pref));
box.addListener(new ChangeListener() { box.addListener(new ChangeListener() {
@Override @Override
public void changed(ChangeEvent event, Actor actor) { public void changed(ChangeEvent event, Actor actor) {
Preference.setPref(pref, ((CheckBox) actor).isChecked()); FModel.getPreferences().setPref(pref, ((CheckBox) actor).isChecked());
Preference.save(); FModel.getPreferences().save();
} }
}); });
@@ -307,12 +303,12 @@ public class SettingsScene extends UIScene {
private void addSettingSlider(String name, ForgePreferences.FPref pref, int min, int max) { private void addSettingSlider(String name, ForgePreferences.FPref pref, int min, int max) {
Slider slide = Controls.newSlider(min, max, 1, false); Slider slide = Controls.newSlider(min, max, 1, false);
slide.setValue(Preference.getPrefInt(pref)); slide.setValue(FModel.getPreferences().getPrefInt(pref));
slide.addListener(new ChangeListener() { slide.addListener(new ChangeListener() {
@Override @Override
public void changed(ChangeEvent event, Actor actor) { public void changed(ChangeEvent event, Actor actor) {
Preference.setPref(pref, String.valueOf((int) ((Slider) actor).getValue())); FModel.getPreferences().setPref(pref, String.valueOf((int) ((Slider) actor).getValue()));
Preference.save(); FModel.getPreferences().save();
if (ForgePreferences.FPref.UI_VOL_MUSIC.equals(pref)) if (ForgePreferences.FPref.UI_VOL_MUSIC.equals(pref))
SoundSystem.instance.refreshVolume(); SoundSystem.instance.refreshVolume();
} }