Merge branch 'master' into 'master'

[Mobile] Fix ExceptionInInitializerError forge.screens.home.NewGameMenu$NewGameScreen

See merge request core-developers/forge!4641
This commit is contained in:
Anthony Calosa
2021-05-02 01:20:52 +00:00
2 changed files with 143 additions and 135 deletions

View File

@@ -58,6 +58,14 @@ public class Localizer {
return StandardCharsets.UTF_8.name(); return StandardCharsets.UTF_8.name();
} }
public String getMessage(final String key, String defaultValue, final Object... messageArguments) {
try {
return getMessage(key, messageArguments);
} catch (Exception e) {
return defaultValue;
}
}
//FIXME: localizer should return default value from english locale or it will crash some GUI element like the NewGameMenu->NewGameScreen Popup when returned null...
public String getMessage(final String key, final Object... messageArguments) { public String getMessage(final String key, final Object... messageArguments) {
MessageFormat formatter = null; MessageFormat formatter = null;

View File

@@ -24,13 +24,13 @@ public class NewGameMenu extends FPopupMenu {
final static Localizer localizer = Localizer.getInstance(); final static Localizer localizer = Localizer.getInstance();
public enum NewGameScreen { public enum NewGameScreen {
Constructed(localizer.getMessage("lblConstructed"), FSkinImage.MENU_CONSTRUCTED, ConstructedScreen.class), Constructed(localizer.getMessage("lblConstructed", "Constructed"), FSkinImage.MENU_CONSTRUCTED, ConstructedScreen.class),
BoosterDraft(localizer.getMessage("lblBoosterDraft"), FSkinImage.MENU_DRAFT, NewDraftScreen.class), BoosterDraft(localizer.getMessage("lblBoosterDraft", "Booster Draft"), FSkinImage.MENU_DRAFT, NewDraftScreen.class),
SealedDeck(localizer.getMessage("lblSealedDeck"), FSkinImage.MENU_SEALED, NewSealedScreen.class), SealedDeck(localizer.getMessage("lblSealedDeck", "Sealed Deck"), FSkinImage.MENU_SEALED, NewSealedScreen.class),
QuestMode(localizer.getMessage("lblQuestMode"), FSkinImage.QUEST_ZEP, NewQuestScreen.class), QuestMode(localizer.getMessage("lblQuestMode", "Quest Mode"), FSkinImage.QUEST_ZEP, NewQuestScreen.class),
PuzzleMode(localizer.getMessage("lblPuzzleMode"), FSkinImage.MENU_PUZZLE, PuzzleScreen.class), PuzzleMode(localizer.getMessage("lblPuzzleMode", "Puzzle Mode"), FSkinImage.MENU_PUZZLE, PuzzleScreen.class),
PlanarConquest(localizer.getMessage("lblPlanarConquest"), FSkinImage.MENU_GALAXY, NewConquestScreen.class), PlanarConquest(localizer.getMessage("lblPlanarConquest", "Planar Conquest"), FSkinImage.MENU_GALAXY, NewConquestScreen.class),
Gauntlet(localizer.getMessage("lblGauntlet"), FSkinImage.MENU_GAUNTLET, NewGauntletScreen.class); Gauntlet(localizer.getMessage("lblGauntlet", "Gauntlet"), FSkinImage.MENU_GAUNTLET, NewGauntletScreen.class);
private final FMenuItem item; private final FMenuItem item;
private final Class<? extends FScreen> screenClass; private final Class<? extends FScreen> screenClass;
@@ -51,7 +51,7 @@ public class NewGameMenu extends FPopupMenu {
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.newInstance();
screen.setHeaderCaption(localizer.getMessage("lblNewGame") + " - " + item.getText()); screen.setHeaderCaption(localizer.getMessage("lblNewGame", "New Game") + " - " + item.getText());
} }
catch (Exception e) { catch (Exception e) {
e.printStackTrace(); e.printStackTrace();