Browse Source

0.0.50.beta15
- 重构 WaitDialog、TipDialog 的构造逻辑;

Kongzue 9 months ago
parent
commit
dbb5eef7da

+ 2 - 2
DialogX/src/main/java/com/kongzue/dialogx/dialogs/BottomDialog.java

@@ -39,8 +39,8 @@ import com.kongzue.dialogx.interfaces.DialogXStyle;
 import com.kongzue.dialogx.interfaces.OnBackPressedListener;
 import com.kongzue.dialogx.interfaces.OnBackgroundMaskClickListener;
 import com.kongzue.dialogx.interfaces.OnBindView;
-import com.kongzue.dialogx.interfaces.OnMenuButtonClickListener;
 import com.kongzue.dialogx.interfaces.OnDialogButtonClickListener;
+import com.kongzue.dialogx.interfaces.OnMenuButtonClickListener;
 import com.kongzue.dialogx.interfaces.ScrollController;
 import com.kongzue.dialogx.util.BottomDialogTouchEventInterceptor;
 import com.kongzue.dialogx.util.TextInfo;
@@ -343,7 +343,7 @@ public class BottomDialog extends BaseDialog implements DialogXBaseBottomDialog
             if (backgroundColor == null) backgroundColor = DialogX.backgroundColor;
             if (cancelText == null) cancelText = DialogX.cancelButtonText;
 
-            txtDialogTitle.getPaint().setFakeBoldText(true);
+            if (txtDialogTitle != null)txtDialogTitle.getPaint().setFakeBoldText(true);
             if (btnSelectNegative != null) btnSelectNegative.getPaint().setFakeBoldText(true);
             if (btnSelectPositive != null) btnSelectPositive.getPaint().setFakeBoldText(true);
             if (btnSelectOther != null) btnSelectOther.getPaint().setFakeBoldText(true);

+ 82 - 91
DialogX/src/main/java/com/kongzue/dialogx/dialogs/TipDialog.java

@@ -32,110 +32,119 @@ public class TipDialog extends WaitDialog {
     }
 
     public static WaitDialog show(int messageResId) {
-        boolean noInstance = noInstance();
-        if (noInstance) instanceBuild();
-        me().setTip(messageResId, TYPE.WARNING);
-        showWithInstance(noInstance);
-        return me();
+        return show((Activity) null, messageResId);
     }
 
     public static WaitDialog show(Activity activity, int messageResId) {
-        boolean noInstance = noInstance(activity);
-        if (noInstance) instanceBuild();
-        WaitDialog instance = getInstanceNotNull(activity);
-        instance.setTip(messageResId, TYPE.WARNING);
-        showWithInstance(noInstance, activity);
-        return instance;
+        WaitDialog dialog = getInstance(activity);
+        if (dialog != null) {
+            dialog.setTip(messageResId, TYPE.WARNING);
+            if (dialog.getDialogImpl() == null) {
+                dialog.show();
+            } else {
+                dialog.cancelDelayDismissTimer();
+            }
+            return dialog;
+        } else {
+            return instanceBuild();
+        }
     }
 
     public static WaitDialog show(CharSequence message) {
-        boolean noInstance = noInstance();
-        if (noInstance) instanceBuild();
-        me().setTip(message, TYPE.WARNING);
-        showWithInstance(noInstance);
-        return me();
+        return show(null, message);
     }
 
     public static WaitDialog show(Activity activity, CharSequence message) {
-        boolean noInstance = noInstance(activity);
-        if (noInstance) instanceBuild();
-        WaitDialog instance = getInstanceNotNull(activity);
-        instance.setTip(message, TYPE.WARNING);
-        if (noInstance) showWithInstance(noInstance, activity);
-        return instance;
+        WaitDialog dialog = getInstance(activity);
+        if (dialog != null) {
+            dialog.setTip(message, TYPE.WARNING);
+            if (dialog.getDialogImpl() == null) {
+                dialog.show();
+            } else {
+                dialog.cancelDelayDismissTimer();
+            }
+            return dialog;
+        } else {
+            return instanceBuild();
+        }
     }
 
     public static WaitDialog show(int messageResId, TYPE tip) {
-        boolean noInstance = noInstance();
-        if (noInstance) instanceBuild();
-        me().setTip(messageResId, tip);
-        showWithInstance(noInstance);
-        return me();
+        return show(null, messageResId, tip);
     }
 
     public static WaitDialog show(Activity activity, int messageResId, TYPE tip) {
-        boolean noInstance = noInstance(activity);
-        if (noInstance) instanceBuild();
-        WaitDialog instance = getInstanceNotNull(activity);
-        instance.setTip(messageResId, tip);
-        if (noInstance) showWithInstance(noInstance, activity);
-        return instance;
+        WaitDialog dialog = getInstance(activity);
+        if (dialog != null) {
+            dialog.setTip(messageResId, tip);
+            if (dialog.getDialogImpl() == null) {
+                dialog.show();
+            } else {
+                dialog.cancelDelayDismissTimer();
+            }
+            return dialog;
+        } else {
+            return instanceBuild();
+        }
     }
 
     public static WaitDialog show(CharSequence message, TYPE tip) {
-        boolean noInstance = noInstance();
-        log("noInstance:" + noInstance);
-        if (noInstance) instanceBuild();
-        me().setTip(message, tip);
-        showWithInstance(noInstance);
-        return me();
+        return show(null, message, tip);
     }
 
     public static WaitDialog show(Activity activity, CharSequence message, TYPE tip) {
-        boolean noInstance = noInstance(activity);
-        if (noInstance) instanceBuild();
-        WaitDialog instance = getInstanceNotNull(activity);
-        instance.setTip(message, tip);
-        if (noInstance) showWithInstance(noInstance, activity);
-        return instance;
+        WaitDialog dialog = getInstance(activity);
+        if (dialog != null) {
+            dialog.setTip(message, tip);
+            if (dialog.getDialogImpl() == null) {
+                dialog.show();
+            } else {
+                dialog.cancelDelayDismissTimer();
+            }
+            return dialog;
+        } else {
+            return instanceBuild();
+        }
     }
 
     public static WaitDialog show(int messageResId, TYPE tip, long duration) {
-        boolean noInstance = noInstance();
-        if (noInstance) instanceBuild();
-        me().setTip(messageResId, tip);
-        me().setTipShowDuration(duration);
-        showWithInstance(noInstance);
-        return me();
+        return show(null, messageResId, tip, duration);
     }
 
     public static WaitDialog show(Activity activity, int messageResId, TYPE tip, long duration) {
-        boolean noInstance = noInstance(activity);
-        if (noInstance) instanceBuild();
-        WaitDialog instance = getInstanceNotNull(activity);
-        instance.setTip(messageResId, tip);
-        instance.setTipShowDuration(duration);
-        if (noInstance) showWithInstance(noInstance, activity);
-        return instance;
+        WaitDialog dialog = getInstance(activity);
+        if (dialog != null) {
+            dialog.setTip(messageResId, tip);
+            dialog.setTipShowDuration(duration);
+            if (dialog.getDialogImpl() == null) {
+                dialog.show();
+            } else {
+                dialog.cancelDelayDismissTimer();
+            }
+            return dialog;
+        } else {
+            return instanceBuild();
+        }
     }
 
     public static WaitDialog show(CharSequence message, TYPE tip, long duration) {
-        boolean noInstance = noInstance();
-        if (noInstance) instanceBuild();
-        me().setTip(message, tip);
-        me().setTipShowDuration(duration);
-        showWithInstance(noInstance);
-        return me();
+        return show(null, message, tip, duration);
     }
 
     public static WaitDialog show(Activity activity, CharSequence message, TYPE tip, long duration) {
-        boolean noInstance = noInstance(activity);
-        if (noInstance) instanceBuild();
-        WaitDialog instance = getInstanceNotNull(activity);
-        instance.setTip(message, tip);
-        instance.setTipShowDuration(duration);
-        if (noInstance) showWithInstance(noInstance, activity);
-        return instance;
+        WaitDialog dialog = getInstance(activity);
+        if (dialog != null) {
+            dialog.setTip(message, tip);
+            dialog.setTipShowDuration(duration);
+            if (dialog.getDialogImpl() == null) {
+                dialog.show();
+            } else {
+                dialog.cancelDelayDismissTimer();
+            }
+            return dialog;
+        } else {
+            return instanceBuild();
+        }
     }
 
     @Override
@@ -143,24 +152,6 @@ public class TipDialog extends WaitDialog {
         return getClass().getSimpleName() + "(" + Integer.toHexString(hashCode()) + ")";
     }
 
-    protected static void showWithInstance(boolean noInstance) {
-        if (noInstance) {
-            me().show();
-        } else {
-            me().refreshUI();
-            me().showTip(me().readyTipType);
-        }
-    }
-
-    protected static void showWithInstance(boolean noInstance, Activity activity) {
-        if (noInstance) {
-            me().show(activity);
-        } else {
-            me().refreshUI();
-            me().showTip(me().readyTipType);
-        }
-    }
-
     public TipDialog setMaxWidth(int maxWidth) {
         this.maxWidth = maxWidth;
         refreshUI();
@@ -266,7 +257,7 @@ public class TipDialog extends WaitDialog {
         return this;
     }
 
-    public TipDialog appendMessage(CharSequence message){
+    public TipDialog appendMessage(CharSequence message) {
         this.message = TextUtils.concat(this.message, message);
         refreshUI();
         return this;
@@ -278,7 +269,7 @@ public class TipDialog extends WaitDialog {
             if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
                 getDialogView().setTranslationZ(orderIndex);
             } else {
-                error("DialogX: " + dialogKey() + " 执行 .setThisOrderIndex("+orderIndex+") 失败:系统不支持此方法,SDK-API 版本必须大于 21(LOLLIPOP)");
+                error("DialogX: " + dialogKey() + " 执行 .setThisOrderIndex(" + orderIndex + ") 失败:系统不支持此方法,SDK-API 版本必须大于 21(LOLLIPOP)");
             }
         }
         return this;

+ 172 - 141
DialogX/src/main/java/com/kongzue/dialogx/dialogs/WaitDialog.java

@@ -1,15 +1,11 @@
 package com.kongzue.dialogx.dialogs;
 
 import android.animation.ValueAnimator;
-import android.annotation.SuppressLint;
 import android.app.Activity;
 import android.content.Context;
-import android.graphics.Color;
 import android.graphics.Outline;
 import android.graphics.drawable.GradientDrawable;
 import android.os.Build;
-import android.os.Handler;
-import android.os.Looper;
 import android.text.TextUtils;
 import android.view.View;
 import android.view.ViewGroup;
@@ -83,7 +79,6 @@ public class WaitDialog extends BaseDialog {
         @Deprecated NONE, SUCCESS, WARNING, ERROR, @Deprecated PROGRESSING
     }
 
-    protected static WeakReference<WaitDialog> me;
     protected CharSequence message;
     protected long tipShowDuration = 1500;
     protected float waitProgress = -1;
@@ -97,12 +92,12 @@ public class WaitDialog extends BaseDialog {
 
     protected WaitDialog() {
         super();
+        ownActivity = new WeakReference<>(getTopActivity());
         cancelable = DialogX.cancelableTipDialog;
     }
 
     protected static WaitDialog instanceBuild() {
-        me = new WeakReference<>(new WaitDialog());
-        return me.get();
+        return new WaitDialog();
     }
 
     public static WaitDialog build() {
@@ -110,94 +105,159 @@ public class WaitDialog extends BaseDialog {
     }
 
     public static WaitDialog show(CharSequence message) {
-        boolean noInstance = noInstance();
-        if (noInstance) instanceBuild();
-        me().setTip(message, TYPE.NONE);
-        showWithInstance(noInstance);
-        return me();
+        WaitDialog dialog = getInstance();
+        if (dialog != null) {
+            dialog.setTip(message, TYPE.NONE);
+            if (dialog.getDialogImpl() == null) {
+                dialog.show();
+            } else {
+                dialog.cancelDelayDismissTimer();
+            }
+            return dialog;
+        } else {
+            return instanceBuild();
+        }
     }
 
     public static WaitDialog show(Activity activity, CharSequence message) {
-        boolean noInstance = noInstance(activity);
-        if (noInstance) instanceBuild();
-        WaitDialog instance = getInstanceNotNull(activity);
-        instance.setTip(message, TYPE.NONE);
-        if (noInstance) showWithInstance(instance, activity);
-        return instance;
+        WaitDialog dialog = getInstance(activity);
+        if (dialog != null) {
+            dialog.setTip(message, TYPE.NONE);
+            if (dialog.getDialogImpl() == null) {
+                dialog.show();
+            } else {
+                dialog.cancelDelayDismissTimer();
+            }
+            return dialog;
+        } else {
+            return instanceBuild();
+        }
     }
 
     public static WaitDialog show(int messageResId) {
-        boolean noInstance = noInstance();
-        if (noInstance) instanceBuild();
-        me().setTip(messageResId, TYPE.NONE);
-        showWithInstance(noInstance);
-        return me();
+        WaitDialog dialog = getInstance();
+        if (dialog != null) {
+            dialog.setTip(messageResId, TYPE.NONE);
+            if (dialog.getDialogImpl() == null) {
+                dialog.show();
+            } else {
+                dialog.cancelDelayDismissTimer();
+            }
+            return dialog;
+        } else {
+            return instanceBuild();
+        }
     }
 
     public static WaitDialog show(Activity activity, int messageResId) {
-        boolean noInstance = noInstance(activity);
-        if (noInstance) instanceBuild();
-        WaitDialog instance = getInstanceNotNull(activity);
-        instance.setTip(messageResId, TYPE.PROGRESSING);
-        if (noInstance) showWithInstance(instance, activity);
-        return instance;
+        WaitDialog dialog = getInstance(activity);
+        if (dialog != null) {
+            dialog.setTip(messageResId, TYPE.NONE);
+            if (dialog.getDialogImpl() == null) {
+                dialog.show();
+            } else {
+                dialog.cancelDelayDismissTimer();
+            }
+            return dialog;
+        } else {
+            return instanceBuild();
+        }
     }
 
     public static WaitDialog show(CharSequence message, float progress) {
-        boolean noInstance = noInstance();
-        if (noInstance) instanceBuild();
-        me().setTip(message, TYPE.PROGRESSING);
-        me().setProgress(progress);
-        showWithInstance(noInstance);
-        return me();
+        WaitDialog dialog = getInstance();
+        if (dialog != null) {
+            dialog.setTip(message, TYPE.PROGRESSING);
+            dialog.setProgress(progress);
+            if (dialog.getDialogImpl() == null) {
+                dialog.show();
+            } else {
+                dialog.cancelDelayDismissTimer();
+            }
+            return dialog;
+        } else {
+            return instanceBuild();
+        }
     }
 
     public static WaitDialog show(Activity activity, CharSequence message, float progress) {
-        boolean noInstance = noInstance(activity);
-        if (noInstance) instanceBuild();
-        WaitDialog instance = getInstanceNotNull(activity);
-        instance.setTip(message, TYPE.PROGRESSING);
-        instance.setProgress(progress);
-        if (noInstance) showWithInstance(instance, activity);
-        return instance;
+        WaitDialog dialog = getInstance(activity);
+        if (dialog != null) {
+            dialog.setTip(message, TYPE.PROGRESSING);
+            dialog.setProgress(progress);
+            if (dialog.getDialogImpl() == null) {
+                dialog.show();
+            } else {
+                dialog.cancelDelayDismissTimer();
+            }
+            return dialog;
+        } else {
+            return instanceBuild();
+        }
     }
 
     public static WaitDialog show(int messageResId, float progress) {
-        boolean noInstance = noInstance();
-        if (noInstance) instanceBuild();
-        me().setTip(messageResId, TYPE.PROGRESSING);
-        me().setProgress(progress);
-        showWithInstance(noInstance);
-        return me();
+        WaitDialog dialog = getInstance();
+        if (dialog != null) {
+            dialog.setTip(messageResId, TYPE.PROGRESSING);
+            dialog.setProgress(progress);
+            if (dialog.getDialogImpl() == null) {
+                dialog.show();
+            } else {
+                dialog.cancelDelayDismissTimer();
+            }
+            return dialog;
+        } else {
+            return instanceBuild();
+        }
     }
 
     public static WaitDialog show(Activity activity, int messageResId, float progress) {
-        boolean noInstance = noInstance(activity);
-        if (noInstance) instanceBuild();
-        WaitDialog instance = getInstanceNotNull(activity);
-        instance.setTip(messageResId, TYPE.PROGRESSING);
-        instance.setProgress(progress);
-        if (noInstance) showWithInstance(instance, activity);
-        return instance;
+        WaitDialog dialog = getInstance(activity);
+        if (dialog != null) {
+            dialog.setTip(messageResId, TYPE.PROGRESSING);
+            dialog.setProgress(progress);
+            if (dialog.getDialogImpl() == null) {
+                dialog.show();
+            } else {
+                dialog.cancelDelayDismissTimer();
+            }
+            return dialog;
+        } else {
+            return instanceBuild();
+        }
     }
 
     public static WaitDialog show(Activity activity, float progress) {
-        boolean noInstance = noInstance(activity);
-        if (noInstance) instanceBuild();
-        WaitDialog instance = getInstanceNotNull(activity);
-        instance.setTip(TYPE.PROGRESSING);
-        instance.setProgress(progress);
-        if (noInstance) showWithInstance(instance, activity);
-        return instance;
+        WaitDialog dialog = getInstance(activity);
+        if (dialog != null) {
+            dialog.setTip(TYPE.PROGRESSING);
+            dialog.setProgress(progress);
+            if (dialog.getDialogImpl() == null) {
+                dialog.show();
+            } else {
+                dialog.cancelDelayDismissTimer();
+            }
+            return dialog;
+        } else {
+            return instanceBuild();
+        }
     }
 
     public static WaitDialog show(float progress) {
-        boolean noInstance = noInstance();
-        if (noInstance) instanceBuild();
-        me().setTip(TYPE.PROGRESSING);
-        me().setProgress(progress);
-        showWithInstance(noInstance);
-        return me();
+        WaitDialog dialog = getInstance();
+        if (dialog != null) {
+            dialog.setTip(TYPE.PROGRESSING);
+            dialog.setProgress(progress);
+            if (dialog.getDialogImpl() == null) {
+                dialog.show();
+            } else {
+                dialog.cancelDelayDismissTimer();
+            }
+            return dialog;
+        } else {
+            return instanceBuild();
+        }
     }
 
     public float getProgress() {
@@ -356,7 +416,7 @@ public class WaitDialog extends BaseDialog {
             }
             boxRoot.setClickable(true);
 
-            boxRoot.setParentDialog(me());
+            boxRoot.setParentDialog(WaitDialog.this);
             boxRoot.setOnLifecycleCallBack(new DialogXBaseRelativeLayout.OnLifecycleCallBack() {
                 @Override
                 public void onShow() {
@@ -698,8 +758,7 @@ public class WaitDialog extends BaseDialog {
         if (dialogView != null) dialogView.clear();
         dialogView = null;
         dialogLifecycleCallback = null;
-        if (me != null) me.clear();
-        me = null;
+        if (ownActivity != null) ownActivity.clear();
         setLifecycleState(Lifecycle.State.DESTROYED);
         System.gc();
     }
@@ -745,7 +804,10 @@ public class WaitDialog extends BaseDialog {
     }
 
     public static void dismiss() {
-        me().doDismiss();
+        WaitDialog instance = getInstance();
+        if (instance != null) {
+            instance.doDismiss();
+        }
     }
 
     public static void dismiss(Activity activity) {
@@ -753,33 +815,35 @@ public class WaitDialog extends BaseDialog {
         if (instance != null) instance.doDismiss();
     }
 
-    protected static Timer delayDismissTimer;
+    protected Timer delayDismissTimer;
 
-    public static void dismiss(long delayTime) {
+    protected void cancelDelayDismissTimer() {
         if (delayDismissTimer != null) {
             delayDismissTimer.cancel();
         }
+    }
+
+    public static void dismiss(long delayTime) {
+        WaitDialog instance = getInstance();
+        if (instance != null) {
+            instance.doDismiss(delayTime);
+        }
+    }
+
+    public void doDismiss(long delayTime) {
+        cancelDelayDismissTimer();
         delayDismissTimer = new Timer();
         delayDismissTimer.schedule(new TimerTask() {
             @Override
             public void run() {
-                dismiss();
+                doDismiss();
             }
         }, delayTime);
     }
 
     protected static WaitDialog me() {
-        for (BaseDialog baseDialog : getRunningDialogList()) {
-            if (baseDialog instanceof WaitDialog) {
-                if (baseDialog.isShow() && baseDialog.getOwnActivity() == getTopActivity()) {
-                    return (WaitDialog) baseDialog;
-                }
-            }
-        }
-        if (me == null || me.get() == null) {
-            return instanceBuild();
-        }
-        return me.get();
+        WaitDialog instance = getInstance();
+        return instance == null ? instanceBuild() : instance;
     }
 
     protected TYPE readyTipType;
@@ -849,15 +913,23 @@ public class WaitDialog extends BaseDialog {
     }
 
     public static WaitDialog setMessage(CharSequence message) {
-        me().preMessage(message);
-        me().refreshUI();
-        return me();
+        WaitDialog instance = getInstance();
+        if (instance != null) {
+            instance.preMessage(message);
+            instance.refreshUI();
+            return instance;
+        }
+        return instanceBuild();
     }
 
     public static WaitDialog setMessage(int messageResId) {
-        me().preMessage(messageResId);
-        me().refreshUI();
-        return me();
+        WaitDialog instance = getInstance();
+        if (instance != null) {
+            instance.preMessage(messageResId);
+            instance.refreshUI();
+            return instance;
+        }
+        return instanceBuild();
     }
 
     public boolean isCancelable() {
@@ -977,10 +1049,6 @@ public class WaitDialog extends BaseDialog {
         refreshUI();
     }
 
-    public static WaitDialog getInstance() {
-        return me();
-    }
-
     /**
      * 获取当前 WaitDialog 显示状态
      * <p>
@@ -1013,32 +1081,17 @@ public class WaitDialog extends BaseDialog {
         return this;
     }
 
-    protected static boolean noInstance() {
-        if (getTopActivity() != null && getInstance((Activity) getTopActivity()) != null) {
-            return false;
-        }
-        return me == null || me.get() == null || me.get().getOwnActivity() == null || me.get().getOwnActivity() != getTopActivity() || !me.get().isShow;
+    public static WaitDialog getInstance() {
+        return getInstance(null);
     }
 
-    protected static boolean noInstance(Activity activity) {
-        if (getTopActivity() != null && getInstance(activity) != null) {
-            return false;
+    public static WaitDialog getInstance(Activity activity) {
+        if (activity == null) {
+            activity = getTopActivity();
         }
-        return me == null || me.get() == null || me.get().getOwnActivity() == null || me.get().getOwnActivity() != activity || !me.get().isShow;
-    }
-
-    public static WaitDialog getInstanceNotNull(Activity activity) {
-        for (BaseDialog baseDialog : getRunningDialogList()) {
-            if (baseDialog instanceof WaitDialog) {
-                if (baseDialog.isShow() && baseDialog.getOwnActivity() == activity) {
-                    return (WaitDialog) baseDialog;
-                }
-            }
+        if (isActivityDestroyed(activity)) {
+            return null;
         }
-        return instanceBuild();
-    }
-
-    public static WaitDialog getInstance(Activity activity) {
         for (BaseDialog baseDialog : getRunningDialogList()) {
             if (baseDialog instanceof WaitDialog) {
                 if (baseDialog.isShow() && baseDialog.getOwnActivity() == activity) {
@@ -1046,29 +1099,7 @@ public class WaitDialog extends BaseDialog {
                 }
             }
         }
-        return null;
-    }
-
-    protected static void showWithInstance(boolean noInstance) {
-        if (delayDismissTimer != null) {
-            delayDismissTimer.cancel();
-        }
-        if (noInstance) {
-            me().show();
-        } else {
-            me().refreshUI();
-        }
-    }
-
-    protected static void showWithInstance(WaitDialog instance, Activity activity) {
-        if (delayDismissTimer != null) {
-            delayDismissTimer.cancel();
-        }
-        if (activity == null) {
-            instance.show();
-        } else {
-            instance.show(activity);
-        }
+        return new WaitDialog();
     }
 
     @Override

+ 7 - 0
DialogX/src/main/java/com/kongzue/dialogx/interfaces/BaseDialog.java

@@ -1095,4 +1095,11 @@ public abstract class BaseDialog implements LifecycleOwner {
         }
         return runningDialogList == null ? 1 : runningDialogList.size();
     }
+
+    protected static boolean isActivityDestroyed(Activity activity) {
+        return activity == null
+                || activity.isFinishing()
+                || (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT && activity.isDestroyed())
+                || (activity instanceof LifecycleOwner && ((LifecycleOwner) activity).getLifecycle().getCurrentState() == Lifecycle.State.DESTROYED);
+    }
 }

+ 1 - 1
app/release/output-metadata.json

@@ -12,7 +12,7 @@
       "filters": [],
       "attributes": [],
       "versionCode": 49,
-      "versionName": "0.0.50.beta8",
+      "versionName": "0.0.50.beta14",
       "outputFile": "app-release.apk"
     }
   ],

+ 9 - 7
app/src/main/java/com/kongzue/dialogxdemo/activity/AppCompatActivityTest.java

@@ -1,17 +1,13 @@
 package com.kongzue.dialogxdemo.activity;
 
-import androidx.appcompat.app.AppCompatActivity;
-
-import android.os.Build;
 import android.os.Bundle;
 import android.os.Handler;
 import android.os.Looper;
 import android.view.View;
-import android.view.Window;
-import android.view.WindowManager;
+
+import androidx.appcompat.app.AppCompatActivity;
 
 import com.kongzue.dialogx.dialogs.BottomDialog;
-import com.kongzue.dialogx.dialogs.PopTip;
 import com.kongzue.dialogx.dialogs.WaitDialog;
 import com.kongzue.dialogx.interfaces.OnBindView;
 import com.kongzue.dialogxdemo.R;
@@ -36,7 +32,13 @@ public class AppCompatActivityTest extends AppCompatActivity {
                         v.setOnClickListener(new View.OnClickListener() {
                             @Override
                             public void onClick(View v) {
-                                PopTip.show("TESTA!!");
+                                WaitDialog.show("please wait...");
+                                new Handler(Looper.getMainLooper()).postDelayed(new Runnable() {
+                                    @Override
+                                    public void run() {
+                                        AppCompatActivityTest.this.finish();
+                                    }
+                                },2000);
                             }
                         });
                     }

File diff suppressed because it is too large
+ 379 - 389
app/src/main/java/com/kongzue/dialogxdemo/activity/MainActivity.java


+ 1 - 1
gradle.properties

@@ -19,7 +19,7 @@ android.useAndroidX=true
 # Automatically convert third-party libraries to use AndroidX
 android.enableJetifier=true
 
-BUILD_VERSION=0.0.50.beta14
+BUILD_VERSION=0.0.50.beta15
 BUILD_VERSION_INT=49
 DIALOGX_STYLE_VERSION=5
 android.nonTransitiveRClass=true

Some files were not shown because too many files changed in this diff