Problem: Network listeners are started but not clearly stopped, which can lead to duplicated callbacks or stale subscriptions (not tested yet, so is not confirmed yet). Basically, when the player goes from one screen to the next, the network listener from the previous game is still active Target files: - GameNetworkHandler.java - GameScreen.java:439 - AndroidFirebase.java Refactor: - Add stop/dispose methods in the networking layer. - Store references to every ValueEventListener/ChildEventListener in AndroidFirebase and unregister them when screen exits. - Call networkHandler.stop() from both hide and dispose. Acceptance criteria: - Re-entering a match screen does not duplicate opponent move events. - No listener callbacks arrive after leaving the match.