Merge "Call wifiStatusTracker.fetchInitialState first" into main
diff --git a/src/com/android/settings/wifi/repository/WifiStatusRepository.kt b/src/com/android/settings/wifi/repository/WifiStatusRepository.kt
index f97ed49..fe4ba6c 100644
--- a/src/com/android/settings/wifi/repository/WifiStatusRepository.kt
+++ b/src/com/android/settings/wifi/repository/WifiStatusRepository.kt
@@ -50,14 +50,20 @@
                 var wifiStatusTracker: WifiStatusTracker? = null
                 wifiStatusTracker = wifiStatusTrackerFactory { wifiStatusTracker?.let(::trySend) }
 
+                // Fetches initial state first, before set listening to true, otherwise could cause
+                // race condition.
+                wifiStatusTracker.fetchInitialState()
+                trySend(wifiStatusTracker)
+
                 context
                     .broadcastReceiverFlow(INTENT_FILTER)
-                    .onEach { intent -> wifiStatusTracker.handleBroadcast(intent) }
+                    .onEach { intent ->
+                        wifiStatusTracker.handleBroadcast(intent)
+                        trySend(wifiStatusTracker)
+                    }
                     .launchIn(this)
 
                 wifiStatusTracker.setListening(true)
-                wifiStatusTracker.fetchInitialState()
-                trySend(wifiStatusTracker)
 
                 awaitClose { wifiStatusTracker.setListening(false) }
             }