Skip to content

Commit eae1a38

Browse files
author
Alex
committed
fix dialog control
close dialog when lifecycle state is DESTROYED
1 parent 9c55d45 commit eae1a38

File tree

3 files changed

+13
-14
lines changed

3 files changed

+13
-14
lines changed

build.gradle

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,19 +5,19 @@ buildscript {
55
min_sdk_version = 17
66
sdk_version = 29
77

8-
kotlin_version = '1.4.0'
9-
rxjava_version = '3.0.5'
8+
kotlin_version = '1.4.10'
9+
rxjava_version = '3.0.6'
1010
rxandroid_version = '3.0.0'
1111
archx_version = '2.2.0'
1212
appcompatx_version = '1.2.0'
13-
material_version = '1.2.0'
13+
material_version = '1.2.1'
1414
}
1515
repositories {
1616
google()
1717
jcenter()
1818
}
1919
dependencies {
20-
classpath 'com.android.tools.build:gradle:4.0.1'
20+
classpath 'com.android.tools.build:gradle:4.1.0'
2121
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
2222
classpath 'com.github.dcendents:android-maven-gradle-plugin:2.1'
2323
// NOTE: Do not place your application dependencies here; they belong
Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
#Sat Aug 01 23:44:32 GMT+07:00 2020
1+
#Mon Nov 02 10:30:32 GMT+07:00 2020
22
distributionBase=GRADLE_USER_HOME
33
distributionPath=wrapper/dists
44
zipStoreBase=GRADLE_USER_HOME
55
zipStorePath=wrapper/dists
6-
distributionUrl=https\://services.gradle.org/distributions/gradle-6.1.1-all.zip
6+
distributionUrl=https\://services.gradle.org/distributions/gradle-6.5-all.zip

reactiveviewmodel/src/main/java/com/alexdeww/reactiveviewmodel/widget/DialogControl.kt

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,10 @@
11
package com.alexdeww.reactiveviewmodel.widget
22

33
import android.app.Dialog
4+
import androidx.lifecycle.Lifecycle
45
import androidx.lifecycle.MediatorLiveData
5-
import androidx.lifecycle.Observer
66
import com.alexdeww.reactiveviewmodel.core.RvmViewComponent
7-
import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers
8-
import io.reactivex.rxjava3.core.BackpressureStrategy
97
import io.reactivex.rxjava3.core.Maybe
10-
import io.reactivex.rxjava3.disposables.Disposable
118

129
sealed 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

7269
fun <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

7673
fun <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

Comments
 (0)