Merge "Call wifiStatusTracker.fetchInitialState first" into main
This commit is contained in:
@@ -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) }
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user