From 3f0ccbd1e1b2f279bd0ac7cc96a3165e6a8cd2c4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Drahom=C3=ADr=20Karch=C5=88=C3=A1k?= <drahomir.karchnak@nic.cz> Date: Wed, 17 Aug 2016 12:47:38 +0200 Subject: [PATCH] #447 Fixed a glitch, which caused applications screen to black out after changing screen and pressing back button right after. --- core/src/cz/nic/tablexia/game/AbstractTablexiaGame.java | 1 - .../tablexia/game/games/kidnapping/KidnappingGame.java | 8 -------- .../cz/nic/tablexia/screen/AbstractTablexiaScreen.java | 8 +++++++- 3 files changed, 7 insertions(+), 10 deletions(-) diff --git a/core/src/cz/nic/tablexia/game/AbstractTablexiaGame.java b/core/src/cz/nic/tablexia/game/AbstractTablexiaGame.java index dc33a9488..c29a90f1a 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 92e35cb8e..e23666763 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 867faca89..87027a4d8 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(); } } -- GitLab