Fix LoginScene popping
This commit is contained in:
		| @@ -124,8 +124,12 @@ public final class SceneContext { | ||||
| 	 * @since Envoy Client v0.1-beta | ||||
| 	 */ | ||||
| 	public void pop() { | ||||
| 		if (!sceneStack.isEmpty()) sceneStack.pop(); | ||||
| 		if (!controllerStack.isEmpty()) controllerStack.pop(); | ||||
|  | ||||
| 		// Pop scene and controller | ||||
| 		sceneStack.pop(); | ||||
| 		controllerStack.pop(); | ||||
|  | ||||
| 		// Apply new scene if present | ||||
| 		if (!sceneStack.isEmpty()) { | ||||
| 			final var newScene = sceneStack.peek(); | ||||
| 			stage.setScene(newScene); | ||||
| @@ -160,4 +164,10 @@ public final class SceneContext { | ||||
| 	 * @since Envoy Client v0.1-beta | ||||
| 	 */ | ||||
| 	public Stage getStage() { return stage; } | ||||
|  | ||||
| 	/** | ||||
| 	 * @return whether the scene stack is empty | ||||
| 	 * @since Envoy Client v0.2-beta | ||||
| 	 */ | ||||
| 	public boolean isEmpty() { return sceneStack.isEmpty(); } | ||||
| } | ||||
|   | ||||
| @@ -172,7 +172,6 @@ public final class Startup extends Application { | ||||
| 		try { | ||||
| 			localDB.initializeUserStorage(); | ||||
| 			localDB.loadUserData(); | ||||
| 			context.initWriteProxy(); | ||||
| 		} catch (final FileNotFoundException e) { | ||||
| 			// The local database file has not yet been created, probably first login | ||||
| 		} catch (final Exception e) { | ||||
| @@ -180,6 +179,7 @@ public final class Startup extends Application { | ||||
| 			logger.log(Level.WARNING, "Could not load local database: ", e); | ||||
| 		} | ||||
|  | ||||
| 		context.initWriteProxy(); | ||||
| 		localDB.synchronize(); | ||||
|  | ||||
| 		if (client.isOnline()) context.getWriteProxy().flushCache(); | ||||
| @@ -193,8 +193,11 @@ public final class Startup extends Application { | ||||
| 				.forEach(u -> u.setStatus(UserStatus.OFFLINE)); | ||||
|  | ||||
| 		final var stage = context.getStage(); | ||||
|  | ||||
| 		// Pop LoginScene if present | ||||
| 		if (!context.getSceneContext().isEmpty()) context.getSceneContext().pop(); | ||||
|  | ||||
| 		// Load ChatScene | ||||
| 		context.getSceneContext().pop(); | ||||
| 		stage.setMinHeight(400); | ||||
| 		stage.setMinWidth(843); | ||||
| 		context.getSceneContext().load(SceneContext.SceneInfo.CHAT_SCENE); | ||||
|   | ||||
		Reference in New Issue
	
	Block a user