@@ -23,8 +23,10 @@ import android.view.View
23
23
import android.view.ViewGroup
24
24
import androidx.annotation.CallSuper
25
25
import androidx.fragment.app.DialogFragment
26
+ import androidx.lifecycle.Lifecycle
26
27
import androidx.lifecycle.ViewModelProvider
27
28
import androidx.lifecycle.lifecycleScope
29
+ import androidx.lifecycle.repeatOnLifecycle
28
30
import androidx.viewbinding.ViewBinding
29
31
import com.airbnb.mvrx.MavericksView
30
32
import dagger.hilt.android.EntryPointAccessors
@@ -37,6 +39,7 @@ import im.vector.app.features.analytics.plan.MobileScreen
37
39
import im.vector.app.features.themes.ThemeUtils
38
40
import kotlinx.coroutines.flow.launchIn
39
41
import kotlinx.coroutines.flow.onEach
42
+ import kotlinx.coroutines.launch
40
43
import reactivecircus.flowbinding.android.view.clicks
41
44
import timber.log.Timber
42
45
@@ -145,11 +148,15 @@ abstract class VectorBaseDialogFragment<VB : ViewBinding> : DialogFragment(), Ma
145
148
* ========================================================================================== */
146
149
147
150
protected fun <T : VectorViewEvents > VectorViewModel <* , * , T >.observeViewEvents (observer : (T ) -> Unit ) {
148
- viewEvents
149
- .stream()
150
- .onEach {
151
- observer(it)
152
- }
153
- .launchIn(viewLifecycleOwner.lifecycleScope)
151
+ val tag = this @VectorBaseDialogFragment::class .simpleName.toString()
152
+ lifecycleScope.launch {
153
+ repeatOnLifecycle(Lifecycle .State .RESUMED ) {
154
+ viewEvents
155
+ .stream(tag)
156
+ .collect {
157
+ observer(it)
158
+ }
159
+ }
160
+ }
154
161
}
155
162
}
0 commit comments