From 325380253ee7c650db9857aec69183b36160e8bc Mon Sep 17 00:00:00 2001 From: Haidar <16521522@mahasiswa.itb.ac.id> Date: Fri, 5 Apr 2024 08:27:39 +0700 Subject: [PATCH] feat: add jwt service response and network sensing --- .../tubes/exe_android/data/TokenResponse.kt | 5 +++ .../ui/NetworkSensing/NetworkLiveData.kt | 42 +++++++++++++++++++ 2 files changed, 47 insertions(+) create mode 100644 app/src/main/java/pbd/tubes/exe_android/data/TokenResponse.kt create mode 100644 app/src/main/java/pbd/tubes/exe_android/ui/NetworkSensing/NetworkLiveData.kt 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 0000000..3bfada4 --- /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 0000000..6ea0da0 --- /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 -- GitLab