diff --git a/app/src/main/java/com/vitorpamplona/amethyst/service/connectivitystatus/ConnectivityStatus.kt b/app/src/main/java/com/vitorpamplona/amethyst/service/connectivitystatus/ConnectivityStatus.kt new file mode 100644 index 000000000..c119001bb --- /dev/null +++ b/app/src/main/java/com/vitorpamplona/amethyst/service/connectivitystatus/ConnectivityStatus.kt @@ -0,0 +1,17 @@ +package com.vitorpamplona.amethyst.service.connectivitystatus + +import androidx.compose.runtime.MutableState +import androidx.compose.runtime.mutableStateOf + +object ConnectivityStatus { + private val onMobileData = mutableStateOf(false) + val isOnMobileData: MutableState = onMobileData + + private val onWifi = mutableStateOf(false) + val isOnWifi: MutableState = onWifi + + fun updateConnectivityStatus(isOnMobileData: Boolean, isOnWifi: Boolean) { + onMobileData.value = isOnMobileData + onWifi.value = isOnWifi + } +} diff --git a/app/src/main/java/com/vitorpamplona/amethyst/ui/MainActivity.kt b/app/src/main/java/com/vitorpamplona/amethyst/ui/MainActivity.kt index 52c21b937..6f299b350 100644 --- a/app/src/main/java/com/vitorpamplona/amethyst/ui/MainActivity.kt +++ b/app/src/main/java/com/vitorpamplona/amethyst/ui/MainActivity.kt @@ -19,6 +19,7 @@ import androidx.lifecycle.viewmodel.compose.viewModel import com.vitorpamplona.amethyst.BuildConfig import com.vitorpamplona.amethyst.LocalPreferences import com.vitorpamplona.amethyst.ServiceManager +import com.vitorpamplona.amethyst.service.connectivitystatus.ConnectivityStatus import com.vitorpamplona.amethyst.service.model.ChannelCreateEvent import com.vitorpamplona.amethyst.service.model.ChannelMessageEvent import com.vitorpamplona.amethyst.service.model.ChannelMetadataEvent @@ -41,7 +42,6 @@ import java.net.URLEncoder import java.nio.charset.StandardCharsets class MainActivity : FragmentActivity() { - override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) @@ -130,6 +130,14 @@ class MainActivity : FragmentActivity() { networkCapabilities: NetworkCapabilities ) { super.onCapabilitiesChanged(network, networkCapabilities) + val hasMobileData = networkCapabilities.hasTransport(NetworkCapabilities.TRANSPORT_CELLULAR) + val hasWifi = networkCapabilities.hasTransport(NetworkCapabilities.TRANSPORT_WIFI) + Log.d("NETWORKCALLBACK", "onCapabilitiesChanged: hasMobileData $hasMobileData") + Log.d("NETWORKCALLBACK", "onCapabilitiesChanged: hasWifi $hasWifi") + ConnectivityStatus.updateConnectivityStatus( + networkCapabilities.hasTransport(NetworkCapabilities.TRANSPORT_CELLULAR), + networkCapabilities.hasTransport(NetworkCapabilities.TRANSPORT_WIFI) + ) } // lost network connection diff --git a/app/src/main/java/com/vitorpamplona/amethyst/ui/components/ZoomableContentView.kt b/app/src/main/java/com/vitorpamplona/amethyst/ui/components/ZoomableContentView.kt index 0d5d3a21b..7a259c1be 100644 --- a/app/src/main/java/com/vitorpamplona/amethyst/ui/components/ZoomableContentView.kt +++ b/app/src/main/java/com/vitorpamplona/amethyst/ui/components/ZoomableContentView.kt @@ -72,6 +72,7 @@ import coil.imageLoader import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.model.toHexKey import com.vitorpamplona.amethyst.service.BlurHashRequester +import com.vitorpamplona.amethyst.service.connectivitystatus.ConnectivityStatus import com.vitorpamplona.amethyst.ui.actions.CloseButton import com.vitorpamplona.amethyst.ui.actions.LoadingAnimation import com.vitorpamplona.amethyst.ui.actions.SaveToGallery @@ -177,8 +178,10 @@ fun ZoomableContentView(content: ZoomableContent, images: ImmutableList