Show a message when the network connection is lost
This commit is contained in:
parent
c361819664
commit
9712f2846f
@ -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()
|
||||
|
||||
|
@ -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")
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user