From 04347a39443839394aa3ab12ca4f50bf41f09219 Mon Sep 17 00:00:00 2001
From: Matthias Nott <mnott@mnsoft.org>
Date: Tue, 24 Mar 2026 03:25:36 +0100
Subject: [PATCH] fix: don't reset session state on resume - prevents drawer flicker

---
 lib/services/mqtt_service.dart |   10 ++++------
 1 files changed, 4 insertions(+), 6 deletions(-)

diff --git a/lib/services/mqtt_service.dart b/lib/services/mqtt_service.dart
index 41df849..1ff7a7d 100644
--- a/lib/services/mqtt_service.dart
+++ b/lib/services/mqtt_service.dart
@@ -524,12 +524,10 @@
           _setStatus(ConnectionStatus.reconnecting);
           connect();
         } else {
-          // Thinks it's connected — send a sync command to verify.
-          // If the connection is dead, the MQTT library will detect it
-          // via the next keepalive cycle and auto-reconnect will fire.
-          // Also re-request sessions to refresh the drawer.
-          _mqttLog('MQTT: appears connected, refreshing sessions...');
-          onOpen?.call();
+          // Appears connected — just let it be. The MQTT keepalive will
+          // detect dead connections and auto-reconnect will handle it.
+          // Don't call onOpen (it resets sessionReady and causes flicker).
+          _mqttLog('MQTT: appears connected on resume, keeping current state');
         }
       case AppLifecycleState.paused:
         break;

--
Gitblit v1.3.1