浏览代码

0.0.43.beta6.

kongzue 3 年之前
父节点
当前提交
fcbbb5b0ff
共有 1 个文件被更改,包括 20 次插入3 次删除
  1. 20 3
      DialogX/src/main/java/com/kongzue/dialogx/interfaces/DialogLifecycleCallback.java

+ 20 - 3
DialogX/src/main/java/com/kongzue/dialogx/interfaces/DialogLifecycleCallback.java

@@ -1,5 +1,10 @@
 package com.kongzue.dialogx.interfaces;
 
+import androidx.annotation.NonNull;
+import androidx.lifecycle.Lifecycle;
+import androidx.lifecycle.LifecycleOwner;
+import androidx.lifecycle.LifecycleRegistry;
+
 /**
  * @author: Kongzue
  * @github: https://github.com/kongzue/
@@ -7,13 +12,25 @@ package com.kongzue.dialogx.interfaces;
  * @mail: myzcxhh@live.cn
  * @createTime: 2020/9/22 14:09
  */
-public abstract class DialogLifecycleCallback<T extends BaseDialog> {
+public abstract class DialogLifecycleCallback<T extends BaseDialog> implements LifecycleOwner {
     
-    public void onShow(T dialog){
+    private LifecycleRegistry registry = new LifecycleRegistry(this);
     
+    public void onShow(T dialog) {
+        if (registry.getCurrentState()!= Lifecycle.State.CREATED){
+            registry.setCurrentState(Lifecycle.State.CREATED);
+        }
     }
     
-    public void onDismiss(T dialog){
+    public void onDismiss(T dialog) {
+        if (registry.getCurrentState()!= Lifecycle.State.DESTROYED){
+            registry.setCurrentState(Lifecycle.State.DESTROYED);
+        }
+    }
     
+    @NonNull
+    @Override
+    public Lifecycle getLifecycle() {
+        return registry;
     }
 }