11package com.alexdeww.reactiveviewmodel.widget
22
33import android.app.Dialog
4+ import androidx.lifecycle.Lifecycle
45import androidx.lifecycle.MediatorLiveData
5- import androidx.lifecycle.Observer
66import com.alexdeww.reactiveviewmodel.core.RvmViewComponent
7- import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers
8- import io.reactivex.rxjava3.core.BackpressureStrategy
97import io.reactivex.rxjava3.core.Maybe
10- import io.reactivex.rxjava3.disposables.Disposable
118
129sealed class DialogResult {
1310 object Accept : DialogResult()
@@ -50,8 +47,8 @@ class DialogControl<T, R> internal constructor() : BaseControl() {
5047
5148}
5249
53- class DialogControlResult <T , R > internal constructor(
54- private val dialogControl : DialogControl <T , R >
50+ class DialogControlResult <R > internal constructor(
51+ private val dialogControl : DialogControl <* , R >
5552) {
5653
5754 fun sendResult (result : R ) {
@@ -71,7 +68,7 @@ class DialogControlResult<T, R> internal constructor(
7168
7269fun <T , R > dialogControl (): DialogControl <T , R > = DialogControl ()
7370
74- typealias ActionCreateDialog <T , R > = (data: T , dc: DialogControlResult <T , R >) -> Dialog
71+ typealias ActionCreateDialog <T , R > = (data: T , dc: DialogControlResult <R >) -> Dialog
7572
7673fun <T , R > DialogControl <T , R >.bindTo (
7774 rvmViewComponent : RvmViewComponent ,
@@ -96,7 +93,9 @@ fun <T, R> DialogControl<T, R>.bindTo(
9693 }
9794
9895 override fun onInactive () {
99- closeDialog()
96+ if (rvmViewComponent.componentLifecycleOwner.lifecycle.currentState == Lifecycle .State .DESTROYED ) {
97+ closeDialog()
98+ }
10099 super .onInactive()
101100 }
102101
0 commit comments