Minor cleanup

This commit is contained in:
arkon 2022-06-14 22:31:39 -04:00
parent 6bc484617e
commit d2f4c43526
3 changed files with 2 additions and 26 deletions

View File

@ -104,6 +104,7 @@ class SourceManager(private val context: Context) {
} }
return StubSource(SourceData(id, "", "")) return StubSource(SourceData(id, "", ""))
} }
@Suppress("OverridingDeprecatedMember") @Suppress("OverridingDeprecatedMember")
open inner class StubSource(val sourceData: SourceData) : Source { open inner class StubSource(val sourceData: SourceData) : Source {

View File

@ -7,7 +7,6 @@ import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.MainScope import kotlinx.coroutines.MainScope
import kotlinx.coroutines.cancel import kotlinx.coroutines.cancel
import nucleus.presenter.RxPresenter import nucleus.presenter.RxPresenter
import nucleus.presenter.delivery.Delivery
import rx.Observable import rx.Observable
open class BasePresenter<V> : RxPresenter<V>() { open class BasePresenter<V> : RxPresenter<V>() {
@ -67,28 +66,4 @@ open class BasePresenter<V> : RxPresenter<V>() {
* @param onError function to execute when the observable throws an error. * @param onError function to execute when the observable throws an error.
*/ */
fun <T> Observable<T>.subscribeReplay(onNext: (V, T) -> Unit, onError: ((V, Throwable) -> Unit) = { _, _ -> }) = compose(deliverReplay<T>()).subscribe(split(onNext, onError)).apply { add(this) } fun <T> Observable<T>.subscribeReplay(onNext: (V, T) -> Unit, onError: ((V, Throwable) -> Unit) = { _, _ -> }) = compose(deliverReplay<T>()).subscribe(split(onNext, onError)).apply { add(this) }
/**
* Subscribes an observable with [DeliverWithView] and adds it to the presenter's lifecycle
* subscription list.
*
* @param onNext function to execute when the observable emits an item.
* @param onError function to execute when the observable throws an error.
*/
fun <T> Observable<T>.subscribeWithView(onNext: (V, T) -> Unit, onError: ((V, Throwable) -> Unit) = { _, _ -> }) = compose(DeliverWithView<V, T>(view())).subscribe(split(onNext, onError)).apply { add(this) }
/**
* A deliverable that only emits to the view if attached, otherwise the event is ignored.
*/
class DeliverWithView<View, T>(private val view: Observable<View>) : Observable.Transformer<T, Delivery<View, T>> {
override fun call(observable: Observable<T>): Observable<Delivery<View, T>> {
return observable
.materialize()
.filter { notification -> !notification.isOnCompleted }
.flatMap { notification ->
view.take(1).filter { it != null }.map { Delivery(it, notification) }
}
}
}
} }

View File

@ -368,7 +368,7 @@ class MainActivity : BaseActivity() {
try { try {
ExtensionGithubApi().checkForUpdates( ExtensionGithubApi().checkForUpdates(
this@MainActivity, this@MainActivity,
fromAvailableExtensionList = true fromAvailableExtensionList = true,
)?.let { pendingUpdates -> )?.let { pendingUpdates ->
preferences.extensionUpdatesCount().set(pendingUpdates.size) preferences.extensionUpdatesCount().set(pendingUpdates.size)
} }