diff --git a/app/src/main/java/com/aurora/store/data/providers/NetworkProvider.kt b/app/src/main/java/com/aurora/store/data/providers/NetworkProvider.kt index 0c5c600eb..5fee1408c 100644 --- a/app/src/main/java/com/aurora/store/data/providers/NetworkProvider.kt +++ b/app/src/main/java/com/aurora/store/data/providers/NetworkProvider.kt @@ -43,8 +43,7 @@ import javax.inject.Singleton @Singleton class NetworkProvider @Inject constructor(@ApplicationContext private val context: Context) { - private val connectivityManager = - context.getSystemService() as ConnectivityManager + private val connectivityManager = context.getSystemService()!! val status: Flow get() = callbackFlow { @@ -71,9 +70,15 @@ class NetworkProvider @Inject constructor(@ApplicationContext private val contex awaitClose { connectivityManager.unregisterNetworkCallback(networkCallback) } } else { val receiver = NetworkBroadcastReceiver { isConnected -> - trySend(if (isConnected) NetworkStatus.AVAILABLE else NetworkStatus.UNAVAILABLE).isSuccess + val status = if (isConnected) { + NetworkStatus.AVAILABLE + } else { + NetworkStatus.UNAVAILABLE + } + trySend(status).isSuccess } + @Suppress("DEPRECATION") context.registerReceiver( receiver, IntentFilter(ConnectivityManager.CONNECTIVITY_ACTION) @@ -82,4 +87,4 @@ class NetworkProvider @Inject constructor(@ApplicationContext private val contex awaitClose { context.unregisterReceiver(receiver) } } }.distinctUntilChanged() -} \ No newline at end of file +} diff --git a/app/src/main/java/com/aurora/store/data/receiver/NetworkBroadcastReceiver.kt b/app/src/main/java/com/aurora/store/data/receiver/NetworkBroadcastReceiver.kt index 817000549..041c0ef2b 100644 --- a/app/src/main/java/com/aurora/store/data/receiver/NetworkBroadcastReceiver.kt +++ b/app/src/main/java/com/aurora/store/data/receiver/NetworkBroadcastReceiver.kt @@ -1,18 +1,29 @@ +/* + * SPDX-FileCopyrightText: 2025 Aurora OSS + * SPDX-FileCopyrightText: 2025 The Calyx Institute + * SPDX-License-Identifier: GPL-3.0-or-later + */ + package com.aurora.store.data.receiver import android.content.BroadcastReceiver import android.content.Context import android.content.Intent import android.net.ConnectivityManager +import androidx.core.content.getSystemService + +/** + * Broadcast receiver for network status for API 21 & 22 + * @param callback Callback when the network status changes + */ +@Suppress("DEPRECATION") +class NetworkBroadcastReceiver(private val callback: (Boolean) -> Unit) : BroadcastReceiver() { -class NetworkBroadcastReceiver( - private val callback: (Boolean) -> Unit -) : BroadcastReceiver() { override fun onReceive(context: Context?, intent: Intent?) { - val connectivityManager = context?.getSystemService(Context.CONNECTIVITY_SERVICE) as? ConnectivityManager + val connectivityManager = context?.getSystemService() val networkInfo = connectivityManager?.activeNetworkInfo val isConnected = networkInfo?.isConnectedOrConnecting == true callback(isConnected) } -} \ No newline at end of file +}