diff --git a/core/src/cz/nic/tablexia/TablexiaStorage.java b/core/src/cz/nic/tablexia/TablexiaStorage.java index 5a56f559b1cf53e55e1be88e2a2e55fd9b1b9212..3e4ebd7e8b2d6914a4466912104cdd76fab5422f 100644 --- a/core/src/cz/nic/tablexia/TablexiaStorage.java +++ b/core/src/cz/nic/tablexia/TablexiaStorage.java @@ -62,7 +62,7 @@ public class TablexiaStorage { Log.err(TablexiaStorage.class, "Cannot create database connection!", e); } } else { - throw new IllegalStateException("Data storage already initialized!"); + Log.info(TablexiaStorage.class, "Data storage has already been initialized! Skipping initialization..."); } } diff --git a/core/src/cz/nic/tablexia/game/AbstractTablexiaGame.java b/core/src/cz/nic/tablexia/game/AbstractTablexiaGame.java index dc33a9488d17fca44fec507ca96a8a011dd5f47a..c29a90f1a6089867ae7c21c1cc515586095577a6 100644 --- a/core/src/cz/nic/tablexia/game/AbstractTablexiaGame.java +++ b/core/src/cz/nic/tablexia/game/AbstractTablexiaGame.java @@ -72,7 +72,6 @@ import cz.nic.tablexia.util.ui.button.TablexiaButton; import cz.nic.tablexia.util.ui.dialog.TablexiaComponentDialog; import cz.nic.tablexia.util.ui.dialog.TablexiaComponentDialogFactory; import cz.nic.tablexia.util.ui.dialog.components.AdaptiveSizeDialogComponent; -import cz.nic.tablexia.util.ui.dialog.components.BackButtonHideComponent; import cz.nic.tablexia.util.ui.dialog.components.CenterPositionDialogComponent; import cz.nic.tablexia.util.ui.dialog.components.DimmerDialogComponent; import cz.nic.tablexia.util.ui.dialog.components.FixedSpaceContentDialogComponent; diff --git a/core/src/cz/nic/tablexia/game/games/kidnapping/KidnappingGame.java b/core/src/cz/nic/tablexia/game/games/kidnapping/KidnappingGame.java index 92e35cb8e1b5be026e68ff71425e56419605560b..e2366676396812f32661f87dec452539a3b578b9 100644 --- a/core/src/cz/nic/tablexia/game/games/kidnapping/KidnappingGame.java +++ b/core/src/cz/nic/tablexia/game/games/kidnapping/KidnappingGame.java @@ -88,7 +88,6 @@ public class KidnappingGame extends AbstractTablexiaGame<GameState> { private Group ruleMessage; private boolean ruleMessageShown = false; private StandardTablexiaButton ruleButton; - private boolean isBackButtonAllowed; private DirectionSounds.SoundPack actualSoundPack; @@ -105,7 +104,6 @@ public class KidnappingGame extends AbstractTablexiaGame<GameState> { @Override protected void gameLoaded(final java.util.Map<String, String> gameState) { - isBackButtonAllowed = false; getStage().addActor(map = Map.MapFactory.createInstance(this, gfxLibrary, getData())); map.setMapScale(MAP_SCALE); @@ -212,11 +210,6 @@ public class KidnappingGame extends AbstractTablexiaGame<GameState> { ruleMessageShown = true; } - @Override - public void backButtonPressed() { - if(isBackButtonAllowed) super.backButtonPressed(); - } - private void playRuleSound(float delay) { Timer.schedule(new Timer.Task(){ @Override @@ -248,7 +241,6 @@ public class KidnappingGame extends AbstractTablexiaGame<GameState> { } }))); } - isBackButtonAllowed = true; } @Override diff --git a/core/src/cz/nic/tablexia/screen/AbstractTablexiaScreen.java b/core/src/cz/nic/tablexia/screen/AbstractTablexiaScreen.java index 867faca89a52ff11659699eb445f582cede1a642..87027a4d8e0f99393b51b8d09880d23c3d636ce3 100644 --- a/core/src/cz/nic/tablexia/screen/AbstractTablexiaScreen.java +++ b/core/src/cz/nic/tablexia/screen/AbstractTablexiaScreen.java @@ -198,6 +198,8 @@ public abstract class AbstractTablexiaScreen<T> extends ScreenAdapter { private boolean loadAsync; private TablexiaAbstractFileManager.AssetsStorageType storageType; + private boolean backButtonAllowed = false; + private Map<String, TablexiaMusic> notDisposedMusics; private static class TextManager extends TablexiaDataManager<I18NBundle> { @@ -583,6 +585,8 @@ public abstract class AbstractTablexiaScreen<T> extends ScreenAdapter { private final void performScreenLoaded() { Log.info(getClass(), "[ ------- Screen Loaded ------- ]"); + backButtonAllowed = false; + // reset screen state after loading screen with state TablexiaStorage.getInstance().resetScreenState(this); @@ -602,6 +606,8 @@ public abstract class AbstractTablexiaScreen<T> extends ScreenAdapter { screenVisible(screenState); performScreenResumed(); playIntroMusic(); + + backButtonAllowed = true; } private final void performScreenResized(int width, int height) { @@ -772,7 +778,7 @@ public abstract class AbstractTablexiaScreen<T> extends ScreenAdapter { public void backButtonPressed(TablexiaApplication.BackButtonPressed event) { if (event.shouldProcess(TablexiaApplication.BackButtonPressed.SCREEN_PRIORITY)) { event.setProcessWithPriority(TablexiaApplication.BackButtonPressed.SCREEN_PRIORITY); - if (loadingComplete && getClass().equals(TablexiaApplication.getActualScreenClass())) { + if (loadingComplete && backButtonAllowed && getClass().equals(TablexiaApplication.getActualScreenClass())) { backButtonPressed(); } }