@@ -9,6 +9,7 @@ import android.content.IntentFilter
99import android.net.ConnectivityManager
1010import android.net.Network
1111import android.net.NetworkCapabilities
12+ import android.net.NetworkInfo
1213import android.net.NetworkRequest
1314import android.net.wifi.WifiInfo
1415import android.net.wifi.WifiManager
@@ -18,6 +19,7 @@ import android.telephony.SubscriptionManager
1819import android.telephony.TelephonyManager
1920import androidx.annotation.RequiresApi
2021import androidx.core.content.ContextCompat
22+ import androidx.core.content.IntentCompat
2123import androidx.core.content.getSystemService
2224import dagger.hilt.android.qualifiers.ApplicationContext
2325import io.github.sds100.keymapper.common.utils.Constants
@@ -56,6 +58,7 @@ class AndroidNetworkAdapter @Inject constructor(
5658 private val httpClient: OkHttpClient by lazy { OkHttpClient () }
5759
5860 private val broadcastReceiver = object : BroadcastReceiver () {
61+ @Suppress(" DEPRECATION" )
5962 override fun onReceive (context : Context ? , intent : Intent ? ) {
6063 intent?.action ? : return
6164
@@ -64,10 +67,22 @@ class AndroidNetworkAdapter @Inject constructor(
6467 val state = intent.getIntExtra(WifiManager .EXTRA_WIFI_STATE , - 1 )
6568
6669 isWifiEnabled.update { state == WifiManager .WIFI_STATE_ENABLED }
70+
71+ if (state != WifiManager .WIFI_STATE_ENABLED ) {
72+ isWifiConnected.value = false
73+ connectedWifiSSIDFlow.value = null
74+ }
6775 }
6876
6977 WifiManager .NETWORK_STATE_CHANGED_ACTION -> {
78+ val networkInfo = IntentCompat .getParcelableExtra(
79+ intent,
80+ WifiManager .EXTRA_NETWORK_INFO ,
81+ NetworkInfo ::class .java,
82+ ) ? : return
83+
7084 connectedWifiSSIDFlow.update { getWifiSSID() }
85+ isWifiConnected.update { networkInfo.isConnected }
7186 }
7287 }
7388 }
0 commit comments