forked from Louvorg/ReaderForSelfoss-multiplatform
Include a local copy of the connectivity-status library to solve a bug
This commit is contained in:
@ -208,5 +208,7 @@ dependencies {
|
||||
|
||||
// Network information
|
||||
// TODO: When updating this library, check if the todo in RepositoryImpl.startNetwork can be resolved
|
||||
implementation("com.github.ln-12:multiplatform-connectivity-status:1.1.0")
|
||||
// TODO: Include this library once this is merged https://github.com/ln-12/multiplatform-connectivity-status/pull/4
|
||||
// implementation("com.github.ln-12:multiplatform-connectivity-status:1.1.0")
|
||||
implementation(project(":connectionstatus"))
|
||||
}
|
@ -20,7 +20,7 @@ import bou.amine.apps.readerforselfossv2.repository.Repository
|
||||
import com.bumptech.glide.Glide
|
||||
import com.bumptech.glide.request.RequestOptions
|
||||
import com.ftinc.scoop.Scoop
|
||||
import com.github.`ln-12`.library.ConnectivityStatus
|
||||
import com.github.ln12.library.ConnectivityStatus
|
||||
import com.mikepenz.materialdrawer.util.AbstractDrawerImageLoader
|
||||
import com.mikepenz.materialdrawer.util.DrawerImageLoader
|
||||
import com.russhwolf.settings.Settings
|
||||
@ -33,7 +33,7 @@ class MyApp : MultiDexApplication(), DIAware {
|
||||
override val di by DI.lazy {
|
||||
import(networkModule)
|
||||
bind<Repository>() with singleton { Repository(instance(), instance(), ConnectivityStatus(applicationContext)) }
|
||||
bindProvider { AppViewModel(repository = instance()) }
|
||||
bind<AppViewModel>() with singleton { AppViewModel(repository = instance()) }
|
||||
}
|
||||
|
||||
private val repository: Repository by instance()
|
||||
|
@ -10,14 +10,17 @@ import kotlinx.coroutines.launch
|
||||
class AppViewModel(private val repository: Repository) : ViewModel() {
|
||||
private val _toastMessageProvider = MutableSharedFlow<String>()
|
||||
val toastMessageProvider = _toastMessageProvider.asSharedFlow()
|
||||
private var wasConnected = true
|
||||
|
||||
init {
|
||||
viewModelScope.launch {
|
||||
repository.isConnectionAvailable.collect { isConnected ->
|
||||
if (isConnected && repository.connectionMonitored) {
|
||||
if (isConnected && !wasConnected && repository.connectionMonitored) {
|
||||
_toastMessageProvider.emit("Network connection is now available")
|
||||
} else if (repository.connectionMonitored){
|
||||
wasConnected = true
|
||||
} else if (!isConnected && wasConnected && repository.connectionMonitored){
|
||||
_toastMessageProvider.emit("Network connection lost")
|
||||
wasConnected = false
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user