william
04/11/2019, 12:40 PMclass ConnectivityMonitor : ConnectivityManager.NetworkCallback() {
private var networkTimeout: Disposable? = null
val connectionLost = PublishSubject.create<Unit>()
override fun onAvailable(network: Network?) {
super.onAvailable(network)
Timber.v("Network available")
networkTimeout?.dispose()
}
override fun onLosing(network: Network?, maxMsToLive: Int) {
super.onLosing(network, maxMsToLive)
Timber.v("onLosing")
}
override fun onLost(network: Network?) {
super.onLost(network)
Timber.v("onLost")
networkTimeout = Single.timer(5, TimeUnit.SECONDS)
.observeOn(AndroidSchedulers.mainThread())
.subscribe { _ ->
Timber.i("Internet connection lost.")
connectionLost.onNext(Unit)
}
}
}
i am wondering if i can avoid the use of a Subject