diff --git a/app/src/main/java/pbd/tubes/exe_android/data/TokenResponse.kt b/app/src/main/java/pbd/tubes/exe_android/data/TokenResponse.kt new file mode 100644 index 0000000000000000000000000000000000000000..3bfada40dc81274885f010b0d44321593a11b125 --- /dev/null +++ b/app/src/main/java/pbd/tubes/exe_android/data/TokenResponse.kt @@ -0,0 +1,5 @@ +package pbd.tubes.exe_android.data + +data class TokenResponse ( + val exp: Long +) diff --git a/app/src/main/java/pbd/tubes/exe_android/ui/NetworkSensing/NetworkLiveData.kt b/app/src/main/java/pbd/tubes/exe_android/ui/NetworkSensing/NetworkLiveData.kt new file mode 100644 index 0000000000000000000000000000000000000000..6ea0da0a580b52a76896493a604ca8fe4bc4697e --- /dev/null +++ b/app/src/main/java/pbd/tubes/exe_android/ui/NetworkSensing/NetworkLiveData.kt @@ -0,0 +1,42 @@ +package pbd.tubes.exe_android.ui.NetworkSensing + +import android.content.Context +import android.net.ConnectivityManager +import android.net.Network +import android.net.NetworkRequest +import androidx.lifecycle.LiveData + +class NetworkLiveData(private val context: Context) : LiveData<Boolean>() { + + private val connectivityManager = + context.getSystemService(Context.CONNECTIVITY_SERVICE) as ConnectivityManager + + private val networkCallback = object : ConnectivityManager.NetworkCallback() { + override fun onAvailable(network: Network) { + postValue(true) + } + + override fun onLost(network: Network) { + postValue(false) + } + } + + override fun onActive() { + super.onActive() + registerNetworkCallback() + } + + override fun onInactive() { + super.onInactive() + unregisterNetworkCallback() + } + + private fun registerNetworkCallback() { + val builder = NetworkRequest.Builder() + connectivityManager.registerNetworkCallback(builder.build(), networkCallback) + } + + private fun unregisterNetworkCallback() { + connectivityManager.unregisterNetworkCallback(networkCallback) + } +} \ No newline at end of file