Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 0be6705d authored by Chaohui Wang's avatar Chaohui Wang
Browse files

Call wifiStatusTracker.fetchInitialState first

Before set listening to true, otherwise could cause race condition.

Fix: 354500692
Flag: EXEMPT bug fix
Test: manual - check wifi summary
Change-Id: I4160f89fae666ac02b816b7d9a69bac581bbd29e
parent 30b9c3c1
Loading
Loading
Loading
Loading
+9 −3
Original line number Diff line number Diff line
@@ -50,14 +50,20 @@ class WifiStatusRepository(
                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) }
            }