diff --git a/core/src/cz/nic/tablexia/TablexiaApplication.java b/core/src/cz/nic/tablexia/TablexiaApplication.java index d1fcc66fc92c72d096315dab19addd3a8d265bbc..080318baf09769f0d3f23837183f81578b154ed4 100644 --- a/core/src/cz/nic/tablexia/TablexiaApplication.java +++ b/core/src/cz/nic/tablexia/TablexiaApplication.java @@ -334,21 +334,7 @@ public abstract class TablexiaApplication implements ApplicationListener { } -//////////////////////////// SCREEN QUIT DIALOG - - private void showQuitConfirmDialog(final Runnable newScreenAction) { - TablexiaComponentDialogFactory.getInstance().createWarningYesNoDialog( - ApplicationTextManager.getInstance().getText(screen.prepareQuitConfirmDialogText()), - new ClickListener() { - @Override - public void clicked(InputEvent event, float x, float y) { - super.clicked(event, x, y); - newScreenAction.run(); - } - }, true).show(TablexiaComponentDialogFactory.WARNING_DIALOG_WIDTH, TablexiaComponentDialogFactory.WARNING_DIALOG_HEIGHT); - ApplicationBus.getInstance().post(new MenuControlEvent(MainMenu.class, AbstractMenu.MenuAction.OPEN, true)).asynchronously(); - } - +//////////////////////////// SCREEN LOADER private void prepareScreenLoaderMouse() { screenLoaderMouse = new AnimatedImage( @@ -578,7 +564,7 @@ public abstract class TablexiaApplication implements ApplicationListener { */ public void setScreenIfIsDifferent(AbstractTablexiaScreen<?> newScreen, ScreenTransaction screenTransaction) { if (newScreen != null) { - if (getScreen() == null || getScreen().getClass() != newScreen.getClass()) { + if (getActualScreen() == null || getActualScreen().getClass() != newScreen.getClass()) { setScreen(newScreen, screenTransaction); } } @@ -656,40 +642,29 @@ public abstract class TablexiaApplication implements ApplicationListener { } private void performNewScreenAction(final AbstractTablexiaScreen<?> newScreen, final Runnable newScreenAction) { - if(newScreen.isSoundMandatory() && TablexiaSettings.getInstance().isSoundMuted()) { - showSoundMutedDialog(newScreen, newScreenAction); - } - else if(screen.hasQuitConfirmDialog()){ - showQuitConfirmDialog(newScreenAction); - } - else { - newScreenAction.run(); - } - } - - private void showSoundMutedDialog(final AbstractTablexiaScreen<?> newScreen, final Runnable newScreenAction) { - TablexiaComponentDialogFactory.getInstance().createWarningYesNoDialog( - ApplicationTextManager.getInstance().getText(newScreen.prepareSoundMutedQuestion()), - new ClickListener() { - @Override - public void clicked(InputEvent event, float x, float y) { - TablexiaSettings.getInstance().toggleSoundMute(); + final Runnable soundConfirmationCheck = new Runnable() { + @Override + public void run() { + if(newScreen.isSoundMandatory() && TablexiaSettings.getInstance().isSoundMuted()) { + showSoundMutedDialog(newScreen.prepareSoundMutedQuestion(), newScreenAction); + } else { + newScreenAction.run(); + } + } + }; - if(screen.hasQuitConfirmDialog()) showQuitConfirmDialog(newScreenAction); - else newScreenAction.run(); + Runnable quitConfirmationCheck = new Runnable() { + @Override + public void run() { + if(screen.hasQuitConfirmDialog()){ + showQuitConfirmDialog(screen.prepareQuitConfirmDialogText(), soundConfirmationCheck); + } else { + soundConfirmationCheck.run(); } - }, - true - ).show(TablexiaComponentDialogFactory.WARNING_DIALOG_WIDTH, TablexiaComponentDialogFactory.WARNING_DIALOG_HEIGHT); - } + } + }; - /** - * Return current screen - * - * @return current screen - */ - public AbstractTablexiaScreen<?> getScreen() { - return screen; + quitConfirmationCheck.run(); } @SuppressWarnings("unchecked") @@ -763,6 +738,36 @@ public abstract class TablexiaApplication implements ApplicationListener { } +//////////////////////////// SCREEN SWITCH DIALOGS + + private void showSoundMutedDialog(final String dialogText, final Runnable newScreenAction) { + TablexiaComponentDialogFactory.getInstance().createWarningYesNoDialog( + ApplicationTextManager.getInstance().getText(dialogText), + new ClickListener() { + @Override + public void clicked(InputEvent event, float x, float y) { + TablexiaSettings.getInstance().toggleSoundMute(); + newScreenAction.run(); + } + }, + true + ).show(TablexiaComponentDialogFactory.WARNING_DIALOG_WIDTH, TablexiaComponentDialogFactory.WARNING_DIALOG_HEIGHT); + } + + private void showQuitConfirmDialog(final String dialogText, final Runnable nextAction) { + TablexiaComponentDialogFactory.getInstance().createWarningYesNoDialog( + ApplicationTextManager.getInstance().getText(dialogText), + new ClickListener() { + @Override + public void clicked(InputEvent event, float x, float y) { + super.clicked(event, x, y); + nextAction.run(); + } + }, true).show(TablexiaComponentDialogFactory.WARNING_DIALOG_WIDTH, TablexiaComponentDialogFactory.WARNING_DIALOG_HEIGHT); + ApplicationBus.getInstance().post(new MenuControlEvent(MainMenu.class, AbstractMenu.MenuAction.OPEN, true)).asynchronously(); + } + + //////////////////////////// SCREEN TRANSACTIONS public enum ScreenTransaction { diff --git a/core/src/cz/nic/tablexia/TablexiaSettings.java b/core/src/cz/nic/tablexia/TablexiaSettings.java index 688523201fff23560b8c831e316cfdf70e69ecc1..890a56768e0165c4fe9ca88a2d49ca34e4422e30 100644 --- a/core/src/cz/nic/tablexia/TablexiaSettings.java +++ b/core/src/cz/nic/tablexia/TablexiaSettings.java @@ -255,7 +255,7 @@ public class TablexiaSettings { public boolean isSoundMuted() { return soundMuted; } public void toggleSoundMute() { - this.soundMuted = !soundMuted; + this.soundMuted = !this.soundMuted; ApplicationBus.getInstance().publishAsync(new SoundMuteEvent(soundMuted)); } diff --git a/core/src/cz/nic/tablexia/menu/game/GameMenuDefinition.java b/core/src/cz/nic/tablexia/menu/game/GameMenuDefinition.java index 8e55f1590350e8e7762b0c77258978ea9014b2bd..50a6923e2953d1e60d5775f3f993568ec6a452ee 100644 --- a/core/src/cz/nic/tablexia/menu/game/GameMenuDefinition.java +++ b/core/src/cz/nic/tablexia/menu/game/GameMenuDefinition.java @@ -82,8 +82,6 @@ public enum GameMenuDefinition implements ApplicationBus.ApplicationEvent, IMenu } } - - public static GameMenuDefinition getGameMenuDefinitionForGameDefinition(GameDefinition gameDefinition) { for (GameMenuDefinition gameMenuDefinition : GameMenuDefinition.values()) { if (gameDefinition == gameMenuDefinition.gameDefinition) { diff --git a/core/src/cz/nic/tablexia/menu/game/GameMenuItemGroup.java b/core/src/cz/nic/tablexia/menu/game/GameMenuItemGroup.java index 4797713ea091ea1ace9523e31df53ca10c88dfc1..14d2dcf00bcdaafab0b5ec0e27aff7653944b4a2 100644 --- a/core/src/cz/nic/tablexia/menu/game/GameMenuItemGroup.java +++ b/core/src/cz/nic/tablexia/menu/game/GameMenuItemGroup.java @@ -57,8 +57,8 @@ public class GameMenuItemGroup extends Container<Table> { private Class<? extends AbstractTablexiaGame> abstractTablexiaGameClass; private GameMenuScreen.GameMenuPageDefinition gameMenuPageDefinition; - public GameMenuItemGroup(final IMenuItem menuItem, float width) { - this.abstractTablexiaGameClass = ((GameMenuDefinition)menuItem).getGameDefinition().getScreenClass(); + public GameMenuItemGroup(IMenuItem menuItem, float width) { + this.abstractTablexiaGameClass = ((GameMenuDefinition) menuItem).getGameDefinition().getScreenClass(); this.gameMenuPageDefinition = GameMenuScreen.GameMenuPageDefinition.getGameMenuPageForGameDefinition(GameDefinition.getGameDefinitionForClass(abstractTablexiaGameClass)); padLeft(LEFT_PADDING); diff --git a/core/src/cz/nic/tablexia/screen/AbstractTablexiaScreen.java b/core/src/cz/nic/tablexia/screen/AbstractTablexiaScreen.java index 66d1c0f73f65381c7e6a11564840754ff661b763..867faca89a52ff11659699eb445f582cede1a642 100644 --- a/core/src/cz/nic/tablexia/screen/AbstractTablexiaScreen.java +++ b/core/src/cz/nic/tablexia/screen/AbstractTablexiaScreen.java @@ -158,7 +158,7 @@ public abstract class AbstractTablexiaScreen<T> extends ScreenAdapter { @Handler public void handleSoundMuteEvent(TablexiaSettings.SoundMuteEvent soundMuteEvent) { - if(isPlaying()) updateVolume(); + updateVolume(); } }