From 6a5b17cf9c9d6a34d242b0548f396679a26941d2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Maty=C3=A1=C5=A1=20Latner?= <matyas.latner@nic.cz> Date: Thu, 21 Jul 2016 13:58:58 +0200 Subject: [PATCH] #341 Small code refactor --- .../cz/nic/tablexia/TablexiaApplication.java | 99 ++++++++++--------- .../src/cz/nic/tablexia/TablexiaSettings.java | 2 +- .../menu/game/GameMenuDefinition.java | 2 - .../tablexia/menu/game/GameMenuItemGroup.java | 4 +- .../screen/AbstractTablexiaScreen.java | 2 +- 5 files changed, 56 insertions(+), 53 deletions(-) diff --git a/core/src/cz/nic/tablexia/TablexiaApplication.java b/core/src/cz/nic/tablexia/TablexiaApplication.java index d1fcc66fc..080318baf 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 688523201..890a56768 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 8e55f1590..50a6923e2 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 4797713ea..14d2dcf00 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 66d1c0f73..867faca89 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(); } } -- GitLab