Merge "Call wifiStatusTracker.fetchInitialState first" into main

This commit is contained in:
Chaohui Wang
2024-07-30 07:09:34 +00:00
committed by Android (Google) Code Review

View File

@@ -50,14 +50,20 @@ class WifiStatusRepository(
var wifiStatusTracker: WifiStatusTracker? = null var wifiStatusTracker: WifiStatusTracker? = null
wifiStatusTracker = wifiStatusTrackerFactory { wifiStatusTracker?.let(::trySend) } wifiStatusTracker = wifiStatusTrackerFactory { wifiStatusTracker?.let(::trySend) }
// Fetches initial state first, before set listening to true, otherwise could cause
// race condition.
wifiStatusTracker.fetchInitialState()
trySend(wifiStatusTracker)
context context
.broadcastReceiverFlow(INTENT_FILTER) .broadcastReceiverFlow(INTENT_FILTER)
.onEach { intent -> wifiStatusTracker.handleBroadcast(intent) } .onEach { intent ->
wifiStatusTracker.handleBroadcast(intent)
trySend(wifiStatusTracker)
}
.launchIn(this) .launchIn(this)
wifiStatusTracker.setListening(true) wifiStatusTracker.setListening(true)
wifiStatusTracker.fetchInitialState()
trySend(wifiStatusTracker)
awaitClose { wifiStatusTracker.setListening(false) } awaitClose { wifiStatusTracker.setListening(false) }
} }