Show a message when the network connection is lost

This commit is contained in:
davidoskky 2022-08-17 21:17:50 +02:00
parent 492e7e4aed
commit f56861a3c2
2 changed files with 20 additions and 0 deletions

View File

@ -17,6 +17,7 @@ import androidx.appcompat.app.AppCompatActivity
import androidx.appcompat.widget.SearchView
import androidx.core.view.doOnNextLayout
import androidx.drawerlayout.widget.DrawerLayout
import androidx.lifecycle.lifecycleScope
import androidx.recyclerview.widget.*
import androidx.room.Room
import androidx.work.Constraints
@ -178,6 +179,12 @@ class HomeActivity : AppCompatActivity(), SearchView.OnQueryTextListener, DIAwar
dataBase = AndroidDeviceDatabase(applicationContext)
lifecycleScope.launch {
repository.toastMessageState.collect {
Toast.makeText(baseContext, it, Toast.LENGTH_SHORT).show()
}
}
handleBottomBar()
handleDrawer()

View File

@ -10,6 +10,9 @@ import com.russhwolf.settings.Settings
import io.github.aakira.napier.Napier
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.flow.MutableSharedFlow
import kotlinx.coroutines.flow.asSharedFlow
import kotlinx.coroutines.flow.asStateFlow
import kotlinx.coroutines.launch
class Repository(private val api: SelfossApi, private val apiDetails: ApiDetailsService, connectivityStatus: ConnectivityStatus) {
@ -18,6 +21,9 @@ class Repository(private val api: SelfossApi, private val apiDetails: ApiDetails
var items = ArrayList<SelfossModel.Item>()
private val isConnectionAvailable = connectivityStatus.isNetworkConnected
private val _toastMessageState = MutableSharedFlow<String>(0)
val toastMessageState = _toastMessageState.asSharedFlow()
var baseUrl = apiDetails.getBaseUrl()
lateinit var dateUtils: DateUtils
@ -45,6 +51,13 @@ class Repository(private val api: SelfossApi, private val apiDetails: ApiDetails
updateApiVersion()
dateUtils = DateUtils(apiMajorVersion)
reloadBadges()
isConnectionAvailable.asStateFlow().collect { connectionAvailable ->
if (!connectionAvailable) {
// TODO: Localize this string
_toastMessageState.emit("Network connection lost")
}
}
}
}