Merge branch 'master' into 'master'

[Mobile] Crash Fix on Loading New Game

Closes #2046

See merge request core-developers/forge!6043
This commit is contained in:
Anthony Calosa
2022-01-14 05:59:23 +00:00
2 changed files with 11 additions and 8 deletions

View File

@@ -44,7 +44,7 @@ public class LoadGameMenu extends FPopupMenu {
private void initializeScreen() { private void initializeScreen() {
if (screen == null) { //don't initialize screen until it's opened the first time if (screen == null) { //don't initialize screen until it's opened the first time
try { try {
screen = screenClass.newInstance(); screen = screenClass.getConstructor().newInstance();
screen.setHeaderCaption(Localizer.getInstance().getMessage("lblLoadGame") + " - " + item.getText()); screen.setHeaderCaption(Localizer.getInstance().getMessage("lblLoadGame") + " - " + item.getText());
} }
catch (Exception e) { catch (Exception e) {
@@ -59,6 +59,7 @@ public class LoadGameMenu extends FPopupMenu {
} }
private void open(boolean replaceBackScreen) { private void open(boolean replaceBackScreen) {
initializeScreen(); initializeScreen();
if (screen != null)
Forge.openScreen(screen, replaceBackScreen); Forge.openScreen(screen, replaceBackScreen);
} }

View File

@@ -50,7 +50,7 @@ public class NewGameMenu extends FPopupMenu {
private void initializeScreen() { private void initializeScreen() {
if (screen == null) { //don't initialize screen until it's opened the first time if (screen == null) { //don't initialize screen until it's opened the first time
try { try {
screen = screenClass.newInstance(); screen = screenClass.getConstructor().newInstance();
screen.setHeaderCaption(localizer.getMessageorUseDefault("lblNewGame", "New Game") + " - " + item.getText()); screen.setHeaderCaption(localizer.getMessageorUseDefault("lblNewGame", "New Game") + " - " + item.getText());
} }
catch (Exception e) { catch (Exception e) {
@@ -65,6 +65,7 @@ public class NewGameMenu extends FPopupMenu {
} }
private void open(boolean replaceBackScreen) { private void open(boolean replaceBackScreen) {
initializeScreen(); initializeScreen();
if (screen != null)
Forge.openScreen(screen, replaceBackScreen); Forge.openScreen(screen, replaceBackScreen);
} }
@@ -83,12 +84,13 @@ public class NewGameMenu extends FPopupMenu {
preferredScreen = NewGameScreen.valueOf(prefs.getPref(FPref.NEW_GAME_SCREEN)); preferredScreen = NewGameScreen.valueOf(prefs.getPref(FPref.NEW_GAME_SCREEN));
} }
catch (Exception ex) { catch (Exception ex) {
ex.printStackTrace(); if (NewGameScreen.Constructed != null) { //if this is null it means newgamescreen is not initialized
preferredScreen = NewGameScreen.Constructed; preferredScreen = NewGameScreen.Constructed;
prefs.setPref(FPref.NEW_GAME_SCREEN, preferredScreen.name()); prefs.setPref(FPref.NEW_GAME_SCREEN, preferredScreen.name());
prefs.save(); prefs.save();
} }
} }
}
public static NewGameScreen getPreferredScreen() { public static NewGameScreen getPreferredScreen() {
return preferredScreen; return preferredScreen;