Переглянути джерело

0.0.48.beta30
- PopTip 异步线程问题修复;
- BlurView 将会在后续版本被弃用,所有组件的 IOS 模糊样式将迁移到 IOSStyle 包中;
- 修复一些关于 IOS 主题情况下的问题;

Kongzue 2 роки тому
батько
коміт
be929f0c19
25 змінених файлів з 373 додано та 201 видалено
  1. 1 0
      .idea/inspectionProfiles/Project_Default.xml
  2. 17 17
      DialogX/src/main/java/com/kongzue/dialogx/dialogs/BottomDialog.java
  3. 20 19
      DialogX/src/main/java/com/kongzue/dialogx/dialogs/MessageDialog.java
  4. 45 39
      DialogX/src/main/java/com/kongzue/dialogx/dialogs/PopMenu.java
  5. 31 19
      DialogX/src/main/java/com/kongzue/dialogx/dialogs/PopNotification.java
  6. 17 0
      DialogX/src/main/java/com/kongzue/dialogx/dialogs/PopTip.java
  7. 49 41
      DialogX/src/main/java/com/kongzue/dialogx/dialogs/WaitDialog.java
  8. 31 4
      DialogX/src/main/java/com/kongzue/dialogx/interfaces/BaseDialog.java
  9. 4 2
      DialogX/src/main/java/com/kongzue/dialogx/interfaces/BlurViewType.java
  10. 10 1
      DialogX/src/main/java/com/kongzue/dialogx/util/views/MaxRelativeLayout.java
  11. 10 0
      DialogX/src/main/res/drawable/rect_dialogx_material_wait_bkg.xml
  12. 2 7
      DialogX/src/main/res/layout/layout_dialogx_wait.xml
  13. 1 1
      DialogXIOSStyle/src/main/java/com/kongzue/dialogx/style/IOSStyle.java
  14. 17 2
      DialogXIOSStyle/src/main/java/com/kongzue/dialogx/style/views/BlurLinearLayout.java
  15. 16 1
      DialogXIOSStyle/src/main/java/com/kongzue/dialogx/style/views/BlurRelativeLayout.java
  16. 2 1
      DialogXIOSStyle/src/main/java/com/kongzue/dialogx/style/views/ProgressView.java
  17. 7 7
      DialogXIOSStyle/src/main/res/layout/layout_dialogx_popmenu_ios.xml
  18. 8 7
      DialogXIOSStyle/src/main/res/layout/layout_dialogx_popmenu_ios_dark.xml
  19. 5 5
      DialogXIOSStyle/src/main/res/layout/layout_dialogx_popnotification_ios.xml
  20. 11 5
      DialogXIOSStyle/src/main/res/layout/layout_dialogx_popnotification_ios_dark.xml
  21. 5 5
      DialogXIOSStyle/src/main/res/layout/layout_dialogx_poptip_ios.xml
  22. 7 6
      DialogXIOSStyle/src/main/res/layout/layout_dialogx_poptip_ios_dark.xml
  23. 56 0
      DialogXIOSStyle/src/main/res/layout/layout_dialogx_wait_ios.xml
  24. 0 11
      app/src/main/java/com/kongzue/dialogxdemo/activity/MainActivity.java
  25. 1 1
      gradle.properties

+ 1 - 0
.idea/inspectionProfiles/Project_Default.xml

@@ -62,6 +62,7 @@
     <inspection_tool class="AlibabaUseQuietReferenceNotation" enabled="false" level="MAJOR" enabled_by_default="false" />
     <inspection_tool class="AlibabaUseRightCaseForDateFormat" enabled="false" level="CRITICAL" enabled_by_default="false" />
     <inspection_tool class="AndroidLintImpliedTouchscreenHardware" enabled="false" level="ERROR" enabled_by_default="false" />
+    <inspection_tool class="AndroidLintSpUsage" enabled="false" level="WARNING" enabled_by_default="false" />
     <inspection_tool class="JavaDoc" enabled="true" level="WARNING" enabled_by_default="true">
       <option name="TOP_LEVEL_CLASS_OPTIONS">
         <value>

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

@@ -41,9 +41,7 @@ import com.kongzue.dialogx.interfaces.OnBindView;
 import com.kongzue.dialogx.interfaces.OnDialogButtonClickListener;
 import com.kongzue.dialogx.interfaces.ScrollController;
 import com.kongzue.dialogx.util.BottomDialogTouchEventInterceptor;
-import com.kongzue.dialogx.util.ObjectRunnable;
 import com.kongzue.dialogx.util.TextInfo;
-import com.kongzue.dialogx.util.views.BlurView;
 import com.kongzue.dialogx.util.views.BottomDialogScrollView;
 import com.kongzue.dialogx.util.views.DialogXBaseRelativeLayout;
 import com.kongzue.dialogx.util.views.MaxRelativeLayout;
@@ -293,6 +291,8 @@ public class BottomDialog extends BaseDialog implements DialogXBaseBottomDialog
             splitSelectPositive = convertView.findViewWithTag("imgPositiveButtonSplit");
             splitSelectOther = convertView.findViewWithTag("imgOtherButtonSplit");
 
+            blurViews = findAllBlurView(dialogView);
+
             init();
             dialogImpl = this;
             refreshView();
@@ -449,20 +449,16 @@ public class BottomDialog extends BaseDialog implements DialogXBaseBottomDialog
                     getDialogXAnimImpl().doShowAnim(BottomDialog.this, bkg);
 
                     Integer blurFrontColor = null;
-                    if (style.messageDialogBlurSettings() != null && style.messageDialogBlurSettings().blurForwardColorRes(isLightTheme()) != 0) {
-                        blurFrontColor = getResources().getColor(style.messageDialogBlurSettings().blurForwardColorRes(isLightTheme()));
-                    }
-
-                    if (blurViews == null) {
-                        blurViews = findAllBlurView(dialogView);
+                    Float dialogXRadius = null;
+                    if (style.messageDialogBlurSettings() != null) {
+                        blurFrontColor = getColorNullable(getIntStyleAttr(style.messageDialogBlurSettings().blurForwardColorRes(isLightTheme())));
+                        dialogXRadius = getFloatStyleAttr((float) style.messageDialogBlurSettings().blurBackgroundRoundRadiusPx());
                     }
 
                     if (blurViews != null) {
                         for (View blurView : blurViews) {
-                            if (blurFrontColor != null) {
-                                ((BlurViewType) blurView).setOverlayColor(blurFrontColor);
-                            }
-                            ((BlurViewType) blurView).setRadiusPx(style.messageDialogBlurSettings().blurBackgroundRoundRadiusPx());
+                            ((BlurViewType) blurView).setOverlayColor(blurFrontColor);
+                            ((BlurViewType) blurView).setRadiusPx(dialogXRadius);
                         }
                     }
                 }
@@ -490,11 +486,9 @@ public class BottomDialog extends BaseDialog implements DialogXBaseBottomDialog
                 tintColor(btnSelectNegative, backgroundColor);
                 tintColor(btnSelectPositive, backgroundColor);
 
-                if (style.messageDialogBlurSettings() != null && style.messageDialogBlurSettings().blurBackground()) {
-                    if (blurViews != null) {
-                        for (View blurView : blurViews) {
-                            ((BlurViewType) blurView).setOverlayColor(backgroundColor);
-                        }
+                if (blurViews != null) {
+                    for (View blurView : blurViews) {
+                        ((BlurViewType) blurView).setOverlayColor(backgroundColor);
                     }
                 }
             }
@@ -551,6 +545,12 @@ public class BottomDialog extends BaseDialog implements DialogXBaseBottomDialog
                     });
                     bkg.setClipToOutline(true);
                 }
+
+                if (blurViews != null) {
+                    for (View blurView : blurViews) {
+                        ((BlurViewType) blurView).setRadiusPx(backgroundRadius);
+                    }
+                }
             }
 
             if (maskColor != -1) {

+ 20 - 19
DialogX/src/main/java/com/kongzue/dialogx/dialogs/MessageDialog.java

@@ -51,8 +51,6 @@ import com.kongzue.dialogx.interfaces.OnBindView;
 import com.kongzue.dialogx.interfaces.OnDialogButtonClickListener;
 import com.kongzue.dialogx.interfaces.OnInputDialogButtonClickListener;
 import com.kongzue.dialogx.style.MaterialStyle;
-import com.kongzue.dialogx.util.ObjectRunnable;
-import com.kongzue.dialogx.util.views.BlurView;
 import com.kongzue.dialogx.util.views.DialogXBaseRelativeLayout;
 import com.kongzue.dialogx.util.InputInfo;
 import com.kongzue.dialogx.util.views.MaxRelativeLayout;
@@ -310,6 +308,9 @@ public class MessageDialog extends BaseDialog {
             splitHorizontal = convertView.findViewWithTag("split");
             btnSelectNegative = convertView.findViewById(R.id.btn_selectNegative);
             btnSelectPositive = convertView.findViewById(R.id.btn_selectPositive);
+
+            blurViews = findAllBlurView(dialogView);
+
             init();
 
             dialogImpl = this;
@@ -355,20 +356,16 @@ public class MessageDialog extends BaseDialog {
                             @Override
                             public void run() {
                                 Integer blurFrontColor = null;
-                                if (style.messageDialogBlurSettings() != null && style.messageDialogBlurSettings().blurForwardColorRes(isLightTheme()) != 0) {
-                                    blurFrontColor = getResources().getColor(style.messageDialogBlurSettings().blurForwardColorRes(isLightTheme()));
-                                }
-
-                                if (blurViews == null) {
-                                    blurViews = findAllBlurView(dialogView);
+                                Float dialogXRadius = null;
+                                if (style.messageDialogBlurSettings() != null) {
+                                    blurFrontColor = getColorNullable(getIntStyleAttr(style.messageDialogBlurSettings().blurForwardColorRes(isLightTheme())));
+                                    dialogXRadius = getFloatStyleAttr((float) style.messageDialogBlurSettings().blurBackgroundRoundRadiusPx());
                                 }
 
                                 if (blurViews != null) {
                                     for (View blurView : blurViews) {
-                                        if (blurFrontColor != null) {
-                                            ((BlurViewType) blurView).setOverlayColor(blurFrontColor);
-                                        }
-                                        ((BlurViewType) blurView).setRadiusPx(style.messageDialogBlurSettings().blurBackgroundRoundRadiusPx());
+                                        ((BlurViewType) blurView).setOverlayColor(blurFrontColor);
+                                        ((BlurViewType) blurView).setRadiusPx(dialogXRadius);
                                     }
                                 }
 
@@ -566,11 +563,9 @@ public class MessageDialog extends BaseDialog {
                     tintColor(btnSelectPositive, backgroundColor);
                 }
 
-                if (style.messageDialogBlurSettings() != null && style.messageDialogBlurSettings().blurBackground()) {
-                   if (blurViews != null) {
-                        for (View blurView : blurViews) {
-                            ((BlurViewType) blurView).setOverlayColor(backgroundColor);
-                        }
+                if (blurViews != null) {
+                    for (View blurView : blurViews) {
+                        ((BlurViewType) blurView).setOverlayColor(backgroundColor);
                     }
                 }
             }
@@ -598,8 +593,8 @@ public class MessageDialog extends BaseDialog {
                 boxRoot.setBackgroundColor(maskColor);
             }
             if (backgroundRadius > -1) {
-                GradientDrawable gradientDrawable = (GradientDrawable) bkg.getBackground();
-                if (gradientDrawable != null) gradientDrawable.setCornerRadius(backgroundRadius);
+                //GradientDrawable gradientDrawable = (GradientDrawable) bkg.getBackground();
+                //if (gradientDrawable != null) gradientDrawable.setCornerRadius(backgroundRadius);
                 if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
                     bkg.setOutlineProvider(new ViewOutlineProvider() {
                         @Override
@@ -609,6 +604,12 @@ public class MessageDialog extends BaseDialog {
                     });
                     bkg.setClipToOutline(true);
                 }
+
+                if (blurViews != null) {
+                    for (View blurView : blurViews) {
+                        ((BlurViewType) blurView).setRadiusPx(backgroundRadius);
+                    }
+                }
             }
 
             showText(txtDialogTitle, title);

+ 45 - 39
DialogX/src/main/java/com/kongzue/dialogx/dialogs/PopMenu.java

@@ -29,6 +29,7 @@ import androidx.lifecycle.Lifecycle;
 import com.kongzue.dialogx.DialogX;
 import com.kongzue.dialogx.R;
 import com.kongzue.dialogx.interfaces.BaseDialog;
+import com.kongzue.dialogx.interfaces.BlurViewType;
 import com.kongzue.dialogx.interfaces.DialogConvertViewInterface;
 import com.kongzue.dialogx.interfaces.DialogLifecycleCallback;
 import com.kongzue.dialogx.interfaces.DialogXAnimInterface;
@@ -40,10 +41,8 @@ import com.kongzue.dialogx.interfaces.OnBindView;
 import com.kongzue.dialogx.interfaces.OnIconChangeCallBack;
 import com.kongzue.dialogx.interfaces.OnMenuItemClickListener;
 import com.kongzue.dialogx.util.DialogXViewLoc;
-import com.kongzue.dialogx.util.ObjectRunnable;
 import com.kongzue.dialogx.util.PopMenuArrayAdapter;
 import com.kongzue.dialogx.util.TextInfo;
-import com.kongzue.dialogx.util.views.BlurView;
 import com.kongzue.dialogx.util.views.DialogXBaseRelativeLayout;
 import com.kongzue.dialogx.util.views.MaxRelativeLayout;
 import com.kongzue.dialogx.util.views.PopMenuListView;
@@ -423,11 +422,12 @@ public class PopMenu extends BaseDialog {
 
     public class DialogImpl implements DialogConvertViewInterface {
 
+        private List<View> blurViews;
+
         public DialogXBaseRelativeLayout boxRoot;
         public MaxRelativeLayout boxBody;
         public RelativeLayout boxCustom;
         public PopMenuListView listMenu;
-        public BlurView blurView;
 
         public DialogImpl(View convertView) {
             boxRoot = convertView.findViewById(R.id.box_root);
@@ -435,6 +435,9 @@ public class PopMenu extends BaseDialog {
             boxCustom = convertView.findViewById(R.id.box_custom);
             listMenu = convertView.findViewById(R.id.listMenu);
             boxBody.setVisibility(View.INVISIBLE);
+
+            blurViews = findAllBlurView(dialogView);
+
             //先设置为 -1 表示未初始化位置
             boxBody.setX(-1);
             boxBody.setY(-1);
@@ -499,6 +502,20 @@ public class PopMenu extends BaseDialog {
                 public void run() {
                     getDialogXAnimImpl().doShowAnim(me, boxBody);
                     setLifecycleState(Lifecycle.State.RESUMED);
+
+                    Integer blurFrontColor = null;
+                    Float dialogXRadius = null;
+                    if (style.popMenuSettings() != null && style.popMenuSettings().blurBackgroundSettings() != null) {
+                        blurFrontColor = getColorNullable(getIntStyleAttr(style.popMenuSettings().blurBackgroundSettings().blurForwardColorRes(isLightTheme())));
+                        dialogXRadius = getFloatStyleAttr((float) style.popMenuSettings().blurBackgroundSettings().blurBackgroundRoundRadiusPx());
+                    }
+
+                    if (blurViews != null) {
+                        for (View blurView : blurViews) {
+                            ((BlurViewType) blurView).setOverlayColor(blurFrontColor);
+                            ((BlurViewType) blurView).setRadiusPx(dialogXRadius);
+                        }
+                    }
                 }
             });
 
@@ -577,6 +594,12 @@ public class PopMenu extends BaseDialog {
                     });
                     boxBody.setClipToOutline(true);
                 }
+
+                if (blurViews != null) {
+                    for (View blurView : blurViews) {
+                        ((BlurViewType) blurView).setRadiusPx(backgroundRadius);
+                    }
+                }
             }
 
             if (onBindView != null && onBindView.getCustomView() != null) {
@@ -596,6 +619,16 @@ public class PopMenu extends BaseDialog {
                 boxBody.setMinimumHeight(height);
             }
 
+            if (backgroundColor != -1) {
+                tintColor(boxBody, backgroundColor);
+
+                if (blurViews != null) {
+                    for (View blurView : blurViews) {
+                        ((BlurViewType) blurView).setOverlayColor(backgroundColor);
+                    }
+                }
+            }
+
             onDialogRefreshUI();
         }
 
@@ -715,26 +748,15 @@ public class PopMenu extends BaseDialog {
                                     if (boxBody.getVisibility() != VISIBLE) {
                                         boxBody.setVisibility(View.VISIBLE);
                                     }
+
+                                    if (isUseBlurBackground()) {
+                                        boxRoot.setBkgAlpha((Float) animation.getAnimatedValue());
+                                    }
                                 }
                             });
                             enterAnim.setInterpolator(new DecelerateInterpolator(2f));
                             enterAnim.setDuration(enterAnimDurationTemp);
                             enterAnim.start();
-
-                            //模糊背景
-                            if (getStyle().popMenuSettings() != null &&
-                                    getStyle().popMenuSettings().blurBackgroundSettings() != null &&
-                                    getStyle().popMenuSettings().blurBackgroundSettings().blurBackground()
-                            ) {
-                                int blurFrontColor = getResources().getColor(getStyle().popMenuSettings().blurBackgroundSettings().blurForwardColorRes(isLightTheme()));
-                                blurView = new BlurView(getOwnActivity(), null);
-                                RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(boxBody.getWidth(), targetHeight);
-                                blurView.setOverlayColor(backgroundColor == -1 ? blurFrontColor : backgroundColor);
-                                blurView.setOverrideOverlayColor(backgroundColor != -1);
-                                blurView.setTag("blurView");
-                                blurView.setRadiusPx(getStyle().popMenuSettings().blurBackgroundSettings().blurBackgroundRoundRadiusPx());
-                                boxBody.addView(blurView, 0, params);
-                            }
                         } else {
                             //无绑定按钮的情况下
                             RelativeLayout.LayoutParams rLp = (RelativeLayout.LayoutParams) boxBody.getLayoutParams();
@@ -744,30 +766,11 @@ public class PopMenu extends BaseDialog {
                             rLp.rightMargin = dip2px(50);
                             boxBody.setLayoutParams(rLp);
                             boxBody.setAlpha(0f);
-                            if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
+                            if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP && !isUseBlurBackground()) {
                                 boxBody.setElevation(dip2px(20));
                             }
                             boxBody.setVisibility(View.VISIBLE);
                             boxBody.animate().alpha(1f).setDuration(enterAnimDurationTemp);
-                            boxBody.post(new Runnable() {
-                                @Override
-                                public void run() {
-                                    //模糊背景
-                                    if (getStyle().popMenuSettings() != null &&
-                                            getStyle().popMenuSettings().blurBackgroundSettings() != null &&
-                                            getStyle().popMenuSettings().blurBackgroundSettings().blurBackground()
-                                    ) {
-                                        int blurFrontColor = getResources().getColor(getStyle().popMenuSettings().blurBackgroundSettings().blurForwardColorRes(isLightTheme()));
-                                        blurView = new BlurView(getOwnActivity(), null);
-                                        RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(boxBody.getWidth(), boxBody.getHeight());
-                                        blurView.setOverlayColor(backgroundColor == -1 ? blurFrontColor : backgroundColor);
-                                        blurView.setOverrideOverlayColor(backgroundColor != -1);
-                                        blurView.setTag("blurView");
-                                        blurView.setRadiusPx(getStyle().popMenuSettings().blurBackgroundSettings().blurBackgroundRoundRadiusPx());
-                                        boxBody.addView(blurView, 0, params);
-                                    }
-                                }
-                            });
 
                             ValueAnimator bkgAlpha = ValueAnimator.ofFloat(0f, 1f);
                             bkgAlpha.setDuration(enterAnimDurationTemp);
@@ -775,7 +778,6 @@ public class PopMenu extends BaseDialog {
                                 @Override
                                 public void onAnimationUpdate(ValueAnimator animation) {
                                     boxRoot.setBkgAlpha((Float) animation.getAnimatedValue());
-                                    ;
                                 }
                             });
                             bkgAlpha.start();
@@ -811,6 +813,10 @@ public class PopMenu extends BaseDialog {
             return dialogXAnimImpl;
         }
 
+        private boolean isUseBlurBackground() {
+            return style.popMenuSettings() != null && style.popMenuSettings().blurBackgroundSettings() != null && style.popMenuSettings().blurBackgroundSettings().blurBackground();
+        }
+
         public long getExitAnimationDuration(@Nullable Animation defaultExitAnim) {
             if (defaultExitAnim == null && boxBody.getAnimation() != null) {
                 defaultExitAnim = boxBody.getAnimation();

+ 31 - 19
DialogX/src/main/java/com/kongzue/dialogx/dialogs/PopNotification.java

@@ -30,21 +30,18 @@ import androidx.lifecycle.Lifecycle;
 import com.kongzue.dialogx.DialogX;
 import com.kongzue.dialogx.R;
 import com.kongzue.dialogx.interfaces.BaseDialog;
+import com.kongzue.dialogx.interfaces.BlurViewType;
 import com.kongzue.dialogx.interfaces.DialogConvertViewInterface;
 import com.kongzue.dialogx.interfaces.DialogLifecycleCallback;
 import com.kongzue.dialogx.interfaces.DialogXAnimInterface;
 import com.kongzue.dialogx.interfaces.DialogXStyle;
 import com.kongzue.dialogx.interfaces.NoTouchInterface;
-import com.kongzue.dialogx.interfaces.OnBackPressedListener;
 import com.kongzue.dialogx.interfaces.OnBindView;
 import com.kongzue.dialogx.interfaces.OnDialogButtonClickListener;
 import com.kongzue.dialogx.interfaces.OnSafeInsetsChangeListener;
-import com.kongzue.dialogx.util.ObjectRunnable;
 import com.kongzue.dialogx.util.PopValueAnimator;
 import com.kongzue.dialogx.util.TextInfo;
-import com.kongzue.dialogx.util.views.BlurView;
 import com.kongzue.dialogx.util.views.DialogXBaseRelativeLayout;
-import com.kongzue.dialogx.util.views.MaxRelativeLayout;
 
 import java.util.ArrayList;
 import java.util.List;
@@ -505,7 +502,7 @@ public class PopNotification extends BaseDialog implements NoTouchInterface {
         public TextView txtDialogxButton;
         public RelativeLayout boxCustom;
 
-        public BlurView blurView;
+        private List<View> blurViews;
 
         public DialogImpl(View convertView) {
             if (convertView == null) return;
@@ -517,6 +514,8 @@ public class PopNotification extends BaseDialog implements NoTouchInterface {
             txtDialogxButton = convertView.findViewById(R.id.txt_dialogx_button);
             boxCustom = convertView.findViewById(R.id.box_custom);
 
+            blurViews = findAllBlurView(dialogView);
+
             init();
             dialogImpl = this;
             refreshView();
@@ -624,20 +623,21 @@ public class PopNotification extends BaseDialog implements NoTouchInterface {
                         }
                     }
 
-                    if (getStyle().popNotificationSettings() != null &&
-                            getStyle().popNotificationSettings().blurBackgroundSettings() != null &&
-                            getStyle().popNotificationSettings().blurBackgroundSettings().blurBackground()
-                    ) {
-                        MaxRelativeLayout blurBody = boxRoot.findViewWithTag("blurBody");
-                        int blurFrontColor = getResources().getColor(getStyle().popNotificationSettings().blurBackgroundSettings().blurForwardColorRes(isLightTheme()));
-                        blurView = new BlurView(getOwnActivity(), null);
-                        RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(boxBody.getWidth(), boxBody.getHeight());
-                        blurView.setOverlayColor(backgroundColor == -1 ? blurFrontColor : backgroundColor);
-                        blurView.setOverrideOverlayColor(backgroundColor != -1);
-                        blurView.setTag("blurView");
-                        blurView.setRadiusPx(getStyle().popNotificationSettings().blurBackgroundSettings().blurBackgroundRoundRadiusPx());
-                        blurBody.setContentView(boxBody);
-                        blurBody.addView(blurView, 0, params);
+                    Integer blurFrontColor = null;
+                    Float popNotificationRadius = null;
+                    if (getStyle().popNotificationSettings() != null && getStyle().popNotificationSettings().blurBackgroundSettings() != null &&
+                            getStyle().popNotificationSettings().blurBackgroundSettings().blurBackground()) {
+                        blurFrontColor = backgroundColor == -1 ?
+                                getColorNullable(getIntStyleAttr(getStyle().popNotificationSettings().blurBackgroundSettings().blurForwardColorRes(isLightTheme()))) :
+                                backgroundColor;
+                        popNotificationRadius = getFloatStyleAttr((float) getStyle().popNotificationSettings().blurBackgroundSettings().blurBackgroundRoundRadiusPx());
+                    }
+
+                    if (blurViews != null) {
+                        for (View blurView : blurViews) {
+                            ((BlurViewType) blurView).setOverlayColor(blurFrontColor);
+                            ((BlurViewType) blurView).setRadiusPx(popNotificationRadius);
+                        }
                     }
                     setLifecycleState(Lifecycle.State.RESUMED);
                 }
@@ -679,6 +679,12 @@ public class PopNotification extends BaseDialog implements NoTouchInterface {
             boxRoot.setRootPadding(screenPaddings[0], screenPaddings[1], screenPaddings[2], screenPaddings[3]);
             if (backgroundColor != -1) {
                 tintColor(boxBody, backgroundColor);
+
+                if (blurViews != null) {
+                    for (View blurView : blurViews) {
+                        ((BlurViewType) blurView).setOverlayColor(backgroundColor);
+                    }
+                }
             }
 
             if (onBindView != null && onBindView.getCustomView() != null) {
@@ -700,6 +706,12 @@ public class PopNotification extends BaseDialog implements NoTouchInterface {
                     });
                     boxBody.setClipToOutline(true);
                 }
+
+                if (blurViews != null) {
+                    for (View blurView : blurViews) {
+                        ((BlurViewType) blurView).setRadiusPx(backgroundRadius);
+                    }
+                }
             }
 
             showText(txtDialogxPopTitle, title);

+ 17 - 0
DialogX/src/main/java/com/kongzue/dialogx/dialogs/PopTip.java

@@ -28,6 +28,7 @@ import androidx.lifecycle.Lifecycle;
 import com.kongzue.dialogx.DialogX;
 import com.kongzue.dialogx.R;
 import com.kongzue.dialogx.interfaces.BaseDialog;
+import com.kongzue.dialogx.interfaces.BlurViewType;
 import com.kongzue.dialogx.interfaces.DialogConvertViewInterface;
 import com.kongzue.dialogx.interfaces.DialogLifecycleCallback;
 import com.kongzue.dialogx.interfaces.DialogXAnimInterface;
@@ -475,6 +476,8 @@ public class PopTip extends BaseDialog implements NoTouchInterface {
         public RelativeLayout boxCustom;
         public TextView txtDialogxButton;
 
+        private List<View> blurViews;
+
         public DialogImpl(View convertView) {
             if (convertView == null) return;
             boxRoot = convertView.findViewById(R.id.box_root);
@@ -484,6 +487,8 @@ public class PopTip extends BaseDialog implements NoTouchInterface {
             boxCustom = convertView.findViewById(R.id.box_custom);
             txtDialogxButton = convertView.findViewById(R.id.txt_dialogx_button);
 
+            blurViews = findAllBlurView(dialogView);
+
             init();
             dialogImpl = this;
             refreshView();
@@ -601,6 +606,12 @@ public class PopTip extends BaseDialog implements NoTouchInterface {
             boxRoot.setRootPadding(screenPaddings[0], screenPaddings[1], screenPaddings[2], screenPaddings[3]);
             if (backgroundColor != -1) {
                 tintColor(boxBody, backgroundColor);
+
+                if (blurViews != null) {
+                    for (View blurView : blurViews) {
+                        ((BlurViewType) blurView).setOverlayColor(backgroundColor);
+                    }
+                }
             }
 
             if (onBindView != null && onBindView.getCustomView() != null) {
@@ -642,6 +653,12 @@ public class PopTip extends BaseDialog implements NoTouchInterface {
                     });
                     boxBody.setClipToOutline(true);
                 }
+
+                if (blurViews != null) {
+                    for (View blurView : blurViews) {
+                        ((BlurViewType) blurView).setRadiusPx(backgroundRadius);
+                    }
+                }
             }
 
             if (onPopTipClickListener != null) {

+ 49 - 41
DialogX/src/main/java/com/kongzue/dialogx/dialogs/WaitDialog.java

@@ -1,6 +1,7 @@
 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;
@@ -26,6 +27,7 @@ import androidx.lifecycle.Lifecycle;
 import com.kongzue.dialogx.DialogX;
 import com.kongzue.dialogx.R;
 import com.kongzue.dialogx.interfaces.BaseDialog;
+import com.kongzue.dialogx.interfaces.BlurViewType;
 import com.kongzue.dialogx.interfaces.DialogConvertViewInterface;
 import com.kongzue.dialogx.interfaces.DialogLifecycleCallback;
 import com.kongzue.dialogx.interfaces.DialogXAnimInterface;
@@ -34,14 +36,13 @@ import com.kongzue.dialogx.interfaces.OnBackPressedListener;
 import com.kongzue.dialogx.interfaces.OnBackgroundMaskClickListener;
 import com.kongzue.dialogx.interfaces.OnBindView;
 import com.kongzue.dialogx.interfaces.ProgressViewInterface;
-import com.kongzue.dialogx.util.ObjectRunnable;
 import com.kongzue.dialogx.util.TextInfo;
-import com.kongzue.dialogx.util.views.BlurView;
 import com.kongzue.dialogx.util.views.DialogXBaseRelativeLayout;
 import com.kongzue.dialogx.util.views.MaxRelativeLayout;
 import com.kongzue.dialogx.util.views.ProgressView;
 
 import java.lang.ref.WeakReference;
+import java.util.List;
 import java.util.Timer;
 import java.util.TimerTask;
 
@@ -269,9 +270,11 @@ public class WaitDialog extends BaseDialog {
     protected WeakReference<DialogImpl> dialogImpl;
 
     public class DialogImpl implements DialogConvertViewInterface {
+
+        private List<View> blurViews;
+
         public DialogXBaseRelativeLayout boxRoot;
         public MaxRelativeLayout bkg;
-        public BlurView blurView;
         public RelativeLayout boxProgress;
         public ProgressViewInterface progressView;
         public RelativeLayout boxCustomView;
@@ -289,7 +292,6 @@ public class WaitDialog extends BaseDialog {
             setWaitDialogView(dialogView);
             boxRoot = dialogView.findViewById(R.id.box_root);
             bkg = dialogView.findViewById(R.id.bkg);
-            blurView = dialogView.findViewById(R.id.blurView);
             boxProgress = dialogView.findViewById(R.id.box_progress);
             View progressViewCache = (View) style.overrideWaitTipRes().overrideWaitView(getOwnActivity(), isLightTheme());
             if (progressViewCache == null) {
@@ -299,6 +301,9 @@ public class WaitDialog extends BaseDialog {
             boxProgress.addView(progressViewCache, new RelativeLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT));
             boxCustomView = dialogView.findViewById(R.id.box_customView);
             txtInfo = dialogView.findViewById(R.id.txt_info);
+
+            blurViews = findAllBlurView(dialogView);
+
             init();
             setDialogImpl(this);
             refreshView();
@@ -308,7 +313,6 @@ public class WaitDialog extends BaseDialog {
             if (convertView == null) return;
             boxRoot = convertView.findViewById(R.id.box_root);
             bkg = convertView.findViewById(R.id.bkg);
-            blurView = convertView.findViewById(R.id.blurView);
             boxProgress = convertView.findViewById(R.id.box_progress);
             View progressViewCache = (View) style.overrideWaitTipRes().overrideWaitView(getOwnActivity(), isLightTheme());
             if (progressViewCache == null) {
@@ -327,10 +331,29 @@ public class WaitDialog extends BaseDialog {
             if (messageTextInfo == null) messageTextInfo = DialogX.tipTextInfo;
             if (backgroundColor == -1) backgroundColor = DialogX.tipBackgroundColor;
 
-            if (style.overrideWaitTipRes() == null) {
-                blurView.setRadiusPx(dip2px(15));
+            blurViews = findAllBlurView(dialogView.get());
+            if (blurViews != null) {
+                for (View b : blurViews) {
+                    log(b);
+                }
+            }
+
+            Integer blurFrontColor = getColor(isLightTheme() ? R.color.dialogxWaitBkgDark : R.color.dialogxWaitBkgLight);
+            Float dialogXRadius = (float) dip2px(15);
+            if (style.overrideWaitTipRes() != null) {
+                dialogXRadius = getFloatStyleAttr((float) style.overrideWaitTipRes().overrideRadiusPx(), dialogXRadius);
+                blurFrontColor = getColorNullable(getIntStyleAttr(style.overrideWaitTipRes().overrideBackgroundColorRes(isLightTheme()), isLightTheme() ? R.color.dialogxWaitBkgDark : R.color.dialogxWaitBkgLight), blurFrontColor);
+            }
+            if (blurViews != null) {
+                for (View blurView : blurViews) {
+                    ((BlurViewType) blurView).setOverlayColor(blurFrontColor);
+                    ((BlurViewType) blurView).setRadiusPx(dialogXRadius);
+                }
             } else {
-                blurView.setRadiusPx(style.overrideWaitTipRes().overrideRadiusPx() < 0 ? dip2px(15) : style.overrideWaitTipRes().overrideRadiusPx());
+                GradientDrawable gradientDrawable = (GradientDrawable) getResources().getDrawable(R.drawable.rect_dialogx_material_wait_bkg);
+                gradientDrawable.setColor(blurFrontColor);
+                gradientDrawable.setGradientRadius(dialogXRadius);
+                bkg.setBackground(gradientDrawable);
             }
             boxRoot.setClickable(true);
 
@@ -413,41 +436,24 @@ public class WaitDialog extends BaseDialog {
 
             bkg.setMaxWidth(getMaxWidth());
             bkg.setMaxHeight(getMaxHeight());
-            bkg.setMinimumWidth(getMinWidth());
-            bkg.setMinimumHeight(getMinHeight());
+            bkg.setMinWidth(getMinWidth());
+            bkg.setMinHeight(getMinHeight());
 
-            if (style.overrideWaitTipRes() != null) {
-                int overrideBackgroundColorRes = style.overrideWaitTipRes().overrideBackgroundColorRes(isLightTheme());
-                if (overrideBackgroundColorRes == 0) {
-                    overrideBackgroundColorRes = isLightTheme() ? R.color.dialogxWaitBkgDark : R.color.dialogxWaitBkgLight;
-                }
-                if (blurView != null) {
-                    blurView.setOverlayColor(backgroundColor == -1 ? getResources().getColor(overrideBackgroundColorRes) : backgroundColor);
-                    blurView.setOverrideOverlayColor(backgroundColor != -1);
-                    blurView.setUseBlur(style.overrideWaitTipRes().blurBackground());
-                }
-                int overrideTextColorRes = style.overrideWaitTipRes().overrideTextColorRes(isLightTheme());
-                if (overrideTextColorRes == 0) {
-                    overrideTextColorRes = isLightTheme() ? R.color.white : R.color.black;
+            if (backgroundColor != -1) {
+                if (blurViews != null) {
+                    for (View blurView : blurViews) {
+                        ((BlurViewType) blurView).setOverlayColor(getResources().getColor(backgroundColor));
+                    }
                 }
+            }
+            if (style.overrideWaitTipRes() != null) {
+                int overrideTextColorRes = getIntStyleAttr(style.overrideWaitTipRes().overrideTextColorRes(isLightTheme()), isLightTheme() ? R.color.white : R.color.black);
                 txtInfo.setTextColor(getResources().getColor(overrideTextColorRes));
                 progressView.setColor(getResources().getColor(overrideTextColorRes));
             } else {
-                if (isLightTheme()) {
-                    if (blurView != null) {
-                        blurView.setOverlayColor(backgroundColor == -1 ? getResources().getColor(R.color.dialogxWaitBkgDark) : backgroundColor);
-                        blurView.setOverrideOverlayColor(backgroundColor != -1);
-                    }
-                    progressView.setColor(Color.WHITE);
-                    txtInfo.setTextColor(Color.WHITE);
-                } else {
-                    if (blurView != null) {
-                        blurView.setOverlayColor(backgroundColor == -1 ? getResources().getColor(R.color.dialogxWaitBkgLight) : backgroundColor);
-                        blurView.setOverrideOverlayColor(backgroundColor != -1);
-                    }
-                    progressView.setColor(Color.BLACK);
-                    txtInfo.setTextColor(Color.BLACK);
-                }
+                int overrideTextColorRes = isLightTheme() ? R.color.white : R.color.black;
+                txtInfo.setTextColor(getResources().getColor(overrideTextColorRes));
+                progressView.setColor(getResources().getColor(overrideTextColorRes));
             }
             if (DialogX.tipProgressColor != -1) progressView.setColor(DialogX.tipProgressColor);
 
@@ -456,9 +462,6 @@ public class WaitDialog extends BaseDialog {
                 oldProgress = waitProgress;
             }
             if (backgroundRadius > -1) {
-                if (blurView != null) {
-                    blurView.setRadiusPx(backgroundRadius);
-                }
                 if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.LOLLIPOP) {
                     bkg.setOutlineProvider(new ViewOutlineProvider() {
                         @Override
@@ -468,6 +471,11 @@ public class WaitDialog extends BaseDialog {
                     });
                     bkg.setClipToOutline(true);
                 }
+                if (blurViews != null) {
+                    for (View blurView : blurViews) {
+                        ((BlurViewType) blurView).setRadiusPx(backgroundRadius);
+                    }
+                }
             }
 
             showText(txtInfo, message);

+ 31 - 4
DialogX/src/main/java/com/kongzue/dialogx/interfaces/BaseDialog.java

@@ -456,9 +456,8 @@ public abstract class BaseDialog implements LifecycleOwner {
     }
 
     /**
+     * @return 获取上下文
      * @Deprecated 已废弃,将在未来版本删除此方法,建议使用 {@link #getOwnActivity()} 替代此方法
-     *
-     * @return  获取上下文
      */
     @Deprecated
     public static Context getContext() {
@@ -719,6 +718,14 @@ public abstract class BaseDialog implements LifecycleOwner {
         return getResources().getColor(backgroundRes);
     }
 
+    protected Integer getColorNullable(Integer res){
+        return res == null ?null:getColor(res);
+    }
+
+    protected Integer getColorNullable(Integer res,Integer defaultResId){
+        return res == null ?defaultResId:getColor(res);
+    }
+
     public enum BOOLEAN {
         TRUE, FALSE
     }
@@ -978,9 +985,29 @@ public abstract class BaseDialog implements LifecycleOwner {
         if (v instanceof ViewGroup) {
             ViewGroup group = (ViewGroup) v;
             for (int i = 0; i < group.getChildCount(); i++) {
-                result.addAll(findAllBlurView(group.getChildAt(i)));
+                List<View> child = findAllBlurView(group.getChildAt(i));
+                if (child != null) result.addAll(child);
             }
         }
-        return result;
+        if (!result.isEmpty()) {
+            return result;
+        }
+        return null;
+    }
+
+    protected Integer getIntStyleAttr(Integer styleValue) {
+        return styleValue <= 0 ? null : styleValue;
+    }
+
+    protected Integer getIntStyleAttr(Integer styleValue, Integer defaultValue) {
+        return styleValue <= 0 ? defaultValue : styleValue;
+    }
+
+    protected Float getFloatStyleAttr(Float styleValue) {
+        return styleValue <= 0 ? null : styleValue;
+    }
+
+    protected Float getFloatStyleAttr(Float styleValue,Float defaultValue) {
+        return styleValue <= 0 ? defaultValue : styleValue;
     }
 }

+ 4 - 2
DialogX/src/main/java/com/kongzue/dialogx/interfaces/BlurViewType.java

@@ -1,6 +1,8 @@
 package com.kongzue.dialogx.interfaces;
 
+import androidx.annotation.Nullable;
+
 public interface BlurViewType {
-    void setOverlayColor(int color);
-    void setRadiusPx(float r);
+    void setOverlayColor(@Nullable Integer color);
+    void setRadiusPx(@Nullable Float r);
 }

+ 10 - 1
DialogX/src/main/java/com/kongzue/dialogx/util/views/MaxRelativeLayout.java

@@ -93,7 +93,16 @@ public class MaxRelativeLayout extends RelativeLayout {
         if (maxWidth > 0) this.maxWidth = maxWidth;
         return this;
     }
-    
+
+    public void setMinHeight(int minHeight) {
+        if (minHeight > 0) this.minHeight = minHeight;
+
+    }
+
+    public void setMinWidth(int minWidth) {
+        if (minWidth > 0) this.minWidth = minWidth;
+    }
+
     private int preWidth = -1;
     
     @Override

+ 10 - 0
DialogX/src/main/res/drawable/rect_dialogx_material_wait_bkg.xml

@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="utf-8"?>
+<shape xmlns:android="http://schemas.android.com/apk/res/android"
+    android:shape="rectangle">
+    <!--left to right-->
+    <solid
+        android:color="@color/dialogxWaitBkgDark"/>
+
+    <corners
+        android:radius="15dp"/>
+</shape>

+ 2 - 7
DialogX/src/main/res/layout/layout_dialogx_wait.xml

@@ -1,6 +1,7 @@
 <?xml version="1.0" encoding="utf-8"?>
 <com.kongzue.dialogx.util.views.DialogXBaseRelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:app="http://schemas.android.com/apk/res-auto"
+    xmlns:tools="http://schemas.android.com/tools"
     android:id="@+id/box_root"
     android:layout_width="match_parent"
     android:layout_height="match_parent"
@@ -15,12 +16,6 @@
         android:minWidth="125dp"
         android:minHeight="125dp">
 
-        <com.kongzue.dialogx.util.views.BlurView
-            android:id="@+id/blurView"
-            android:layout_width="wrap_content"
-            android:layout_height="wrap_content"
-            android:tag="blurView" />
-
         <LinearLayout
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"
@@ -51,7 +46,7 @@
                 android:maxLines="3"
                 android:text="Please Wait"
                 android:textColor="@color/white"
-                android:textSize="14dp" />
+                android:textSize="14dp"/>
 
         </LinearLayout>
 

+ 1 - 1
DialogXIOSStyle/src/main/java/com/kongzue/dialogx/style/IOSStyle.java

@@ -140,7 +140,7 @@ public class IOSStyle extends DialogXStyle {
     public class DefaultWaitTipRes extends WaitTipRes {
         @Override
         public int overrideWaitLayout(boolean light) {
-            return 0;
+            return R.layout.layout_dialogx_wait_ios;
         }
 
         @Override

+ 17 - 2
DialogXIOSStyle/src/main/java/com/kongzue/dialogx/style/views/BlurLinearLayout.java

@@ -30,8 +30,9 @@ import com.kongzue.dialogx.DialogX;
 import com.kongzue.dialogx.interfaces.BaseDialog;
 import com.kongzue.dialogx.interfaces.BlurViewType;
 import com.kongzue.dialogx.iostheme.R;
+import com.kongzue.dialogx.util.views.MaxLinearLayout;
 
-public class BlurLinearLayout extends LinearLayout implements BlurViewType {
+public class BlurLinearLayout extends MaxLinearLayout implements BlurViewType {
 
     private float mDownSampleFactor = 4;
     private int mOverlayColor = Color.WHITE;
@@ -141,6 +142,13 @@ public class BlurLinearLayout extends LinearLayout implements BlurViewType {
         }
     }
 
+    @Override
+    public void setRadiusPx(Float r) {
+        if (r != null) {
+            setRadiusPx((float) r);
+        }
+    }
+
     public void setDownsampleFactor(float factor) {
         if (factor <= 0) {
             throw new IllegalArgumentException("Downsample factor must be greater than 0.");
@@ -161,6 +169,13 @@ public class BlurLinearLayout extends LinearLayout implements BlurViewType {
         }
     }
 
+    @Override
+    public void setOverlayColor(Integer color) {
+        if (color != null) {
+            setOverlayColor((int) color);
+        }
+    }
+
     private void releaseBitmap() {
         if (mBlurInput != null) {
             mBlurInput.destroy();
@@ -556,7 +571,7 @@ public class BlurLinearLayout extends LinearLayout implements BlurViewType {
         return (int) (dpValue * scale + 0.5f);
     }
 
-    private int getOverlayColor(){
+    private int getOverlayColor() {
         return needRemoveAlphaColor() ? removeAlphaColor(mOverlayColor) : mOverlayColor;
     }
 }

+ 16 - 1
DialogXIOSStyle/src/main/java/com/kongzue/dialogx/style/views/BlurRelativeLayout.java

@@ -30,8 +30,9 @@ import com.kongzue.dialogx.DialogX;
 import com.kongzue.dialogx.interfaces.BaseDialog;
 import com.kongzue.dialogx.interfaces.BlurViewType;
 import com.kongzue.dialogx.iostheme.R;
+import com.kongzue.dialogx.util.views.MaxRelativeLayout;
 
-public class BlurRelativeLayout extends RelativeLayout implements BlurViewType {
+public class BlurRelativeLayout extends MaxRelativeLayout implements BlurViewType {
 
     private float mDownSampleFactor = 4;
     private int mOverlayColor = Color.WHITE;
@@ -141,6 +142,13 @@ public class BlurRelativeLayout extends RelativeLayout implements BlurViewType {
         }
     }
 
+    @Override
+    public void setRadiusPx(Float r) {
+        if (r != null) {
+            setRadiusPx((float) r);
+        }
+    }
+
     public void setDownsampleFactor(float factor) {
         if (factor <= 0) {
             throw new IllegalArgumentException("Downsample factor must be greater than 0.");
@@ -161,6 +169,13 @@ public class BlurRelativeLayout extends RelativeLayout implements BlurViewType {
         }
     }
 
+    @Override
+    public void setOverlayColor(Integer color) {
+        if (color != null) {
+            setOverlayColor((int) color);
+        }
+    }
+
     private void releaseBitmap() {
         if (mBlurInput != null) {
             mBlurInput.destroy();

+ 2 - 1
DialogXIOSStyle/src/main/java/com/kongzue/dialogx/style/views/ProgressView.java

@@ -14,6 +14,7 @@ import android.graphics.Paint;
 import android.graphics.Rect;
 import android.graphics.RectF;
 import android.util.AttributeSet;
+import android.util.Log;
 import android.view.HapticFeedbackConstants;
 import android.view.View;
 import android.view.animation.AccelerateDecelerateInterpolator;
@@ -198,7 +199,7 @@ public class ProgressView extends View implements ProgressViewInterface {
     }
     
     private Bitmap getLoadingBitmap() {
-        Bitmap origin = BitmapFactory.decodeResource(getResources(), isLightMode ? R.mipmap.img_progress_ios_light : R.mipmap.img_progress_ios_dark);
+        Bitmap origin = BitmapFactory.decodeResource(getResources(), isLightMode ? R.mipmap.img_progress_ios_dark : R.mipmap.img_progress_ios_light);
         Matrix matrix = new Matrix();
         matrix.setRotate(45 * ((int) currentRotateDegrees));
         Bitmap rotatedBitmap = Bitmap.createBitmap(origin, 0, 0, origin.getWidth(), origin.getHeight(), matrix, false);

+ 7 - 7
DialogXIOSStyle/src/main/res/layout/layout_dialogx_popmenu_ios.xml

@@ -9,7 +9,7 @@
     app:autoSafeArea="false"
     app:baseFocusable="true">
 
-    <com.kongzue.dialogx.util.views.MaxRelativeLayout
+    <com.kongzue.dialogx.style.views.BlurRelativeLayout
         android:id="@+id/box_body"
         android:layout_width="200dp"
         android:layout_height="wrap_content"
@@ -20,16 +20,16 @@
         <RelativeLayout
             android:id="@+id/box_custom"
             android:layout_width="match_parent"
-            android:visibility="gone"
-            android:layout_height="wrap_content" />
+            android:layout_height="wrap_content"
+            android:visibility="gone" />
 
         <com.kongzue.dialogx.util.views.PopMenuListView
             android:id="@+id/listMenu"
-            android:listSelector="@color/empty"
-            android:layout_below="@+id/box_custom"
             android:layout_width="match_parent"
-            android:layout_height="wrap_content" />
+            android:layout_height="wrap_content"
+            android:layout_below="@+id/box_custom"
+            android:listSelector="@color/empty" />
 
-    </com.kongzue.dialogx.util.views.MaxRelativeLayout>
+    </com.kongzue.dialogx.style.views.BlurRelativeLayout>
 
 </com.kongzue.dialogx.util.views.DialogXBaseRelativeLayout>

+ 8 - 7
DialogXIOSStyle/src/main/res/layout/layout_dialogx_popmenu_ios_dark.xml

@@ -9,13 +9,14 @@
     app:autoSafeArea="false"
     app:baseFocusable="true">
 
-    <com.kongzue.dialogx.util.views.MaxRelativeLayout
+    <com.kongzue.dialogx.style.views.BlurRelativeLayout
         android:id="@+id/box_body"
         android:layout_width="200dp"
         android:layout_height="wrap_content"
         android:clickable="true"
         android:gravity="center_vertical"
-        android:orientation="vertical">
+        android:orientation="vertical"
+        app:dialogxDarkMode="true">
 
         <RelativeLayout
             android:id="@+id/box_custom"
@@ -25,12 +26,12 @@
 
         <com.kongzue.dialogx.util.views.PopMenuListView
             android:id="@+id/listMenu"
-            android:listSelector="@color/empty"
-            android:layout_below="@+id/box_custom"
-            android:theme="@style/DialogXCompatThemeDark"
             android:layout_width="match_parent"
-            android:layout_height="wrap_content" />
+            android:layout_height="wrap_content"
+            android:layout_below="@+id/box_custom"
+            android:listSelector="@color/empty"
+            android:theme="@style/DialogXCompatThemeDark" />
 
-    </com.kongzue.dialogx.util.views.MaxRelativeLayout>
+    </com.kongzue.dialogx.style.views.BlurRelativeLayout>
 
 </com.kongzue.dialogx.util.views.DialogXBaseRelativeLayout>

+ 5 - 5
DialogXIOSStyle/src/main/res/layout/layout_dialogx_popnotification_ios.xml

@@ -18,14 +18,14 @@
         android:layout_height="wrap_content"
         android:layout_marginLeft="15dp"
         android:layout_marginRight="15dp"
-        android:clickable="true"
-        android:tag="blurBody">
+        android:clickable="true">
 
-        <RelativeLayout
+        <com.kongzue.dialogx.style.views.BlurRelativeLayout
             android:layout_width="match_parent"
             android:layout_height="wrap_content"
             android:paddingTop="15dp"
-            android:paddingBottom="15dp">
+            android:paddingBottom="15dp"
+            app:realtimeRadius="25dp">
 
             <ImageView
                 android:id="@+id/img_dialogx_pop_icon"
@@ -97,7 +97,7 @@
                 android:textColor="@color/dialogxColorBlue"
                 android:textSize="14dp"
                 android:visibility="gone" />
-        </RelativeLayout>
+        </com.kongzue.dialogx.style.views.BlurRelativeLayout>
 
     </com.kongzue.dialogx.util.views.MaxRelativeLayout>
 

+ 11 - 5
DialogXIOSStyle/src/main/res/layout/layout_dialogx_popnotification_ios_dark.xml

@@ -7,20 +7,26 @@
     android:orientation="vertical"
     app:baseFocusable="false">
 
+    <ImageView
+        android:layout_width="match_parent"
+        android:layout_height="match_parent"
+        android:background="@drawable/rect_dialogx_ios_popnotification_bkg" />
+
     <com.kongzue.dialogx.util.views.MaxRelativeLayout
         android:id="@+id/box_body"
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
         android:layout_marginLeft="15dp"
         android:layout_marginRight="15dp"
-        android:clickable="true"
-        android:tag="blurBody">
+        android:clickable="true">
 
-        <RelativeLayout
+        <com.kongzue.dialogx.style.views.BlurRelativeLayout
             android:layout_width="match_parent"
             android:layout_height="wrap_content"
             android:paddingTop="15dp"
-            android:paddingBottom="15dp">
+            android:paddingBottom="15dp"
+            app:dialogxDarkMode="true"
+            app:realtimeRadius="25dp">
 
             <ImageView
                 android:id="@+id/img_dialogx_pop_icon"
@@ -92,7 +98,7 @@
                 android:textColor="@color/dialogxPopButtonBlueDark"
                 android:textSize="14dp"
                 android:visibility="gone" />
-        </RelativeLayout>
+        </com.kongzue.dialogx.style.views.BlurRelativeLayout>
 
     </com.kongzue.dialogx.util.views.MaxRelativeLayout>
 

+ 5 - 5
DialogXIOSStyle/src/main/res/layout/layout_dialogx_poptip_ios.xml

@@ -11,7 +11,7 @@
         android:layout_width="match_parent"
         android:layout_height="match_parent">
 
-        <LinearLayout
+        <com.kongzue.dialogx.style.views.BlurLinearLayout
             android:id="@+id/box_body"
             android:layout_width="wrap_content"
             android:layout_height="50dp"
@@ -20,12 +20,12 @@
             android:layout_marginTop="10dp"
             android:layout_marginRight="35dp"
             android:layout_marginBottom="100dp"
-            android:background="@drawable/rect_dialogx_ios_poptip_bkg"
             android:elevation="200dp"
             android:gravity="center_vertical"
+            android:orientation="horizontal"
             android:paddingLeft="10dp"
             android:paddingRight="10dp"
-            android:orientation="horizontal">
+            app:realtimeRadius="99dp">
 
             <ImageView
                 android:id="@+id/img_dialogx_pop_icon"
@@ -41,8 +41,8 @@
                 android:layout_height="wrap_content"
                 android:layout_marginLeft="15dp"
                 android:layout_marginRight="15dp"
-                android:gravity="left|center_vertical"
                 android:layout_weight="1"
+                android:gravity="left|center_vertical"
                 android:singleLine="true"
                 android:text="Sure?"
                 android:textColor="@color/black"
@@ -71,7 +71,7 @@
                 android:textSize="14dp"
                 android:visibility="gone" />
 
-        </LinearLayout>
+        </com.kongzue.dialogx.style.views.BlurLinearLayout>
 
     </RelativeLayout>
 

+ 7 - 6
DialogXIOSStyle/src/main/res/layout/layout_dialogx_poptip_ios_dark.xml

@@ -11,7 +11,7 @@
         android:layout_width="match_parent"
         android:layout_height="match_parent">
 
-        <LinearLayout
+        <com.kongzue.dialogx.style.views.BlurLinearLayout
             android:id="@+id/box_body"
             android:layout_width="wrap_content"
             android:layout_height="50dp"
@@ -19,12 +19,13 @@
             android:layout_marginLeft="35dp"
             android:layout_marginTop="10dp"
             android:layout_marginRight="35dp"
-            android:background="@drawable/rect_dialogx_ios_poptip_bkg_night"
-            android:elevation="100dp"
+            android:elevation="200dp"
             android:gravity="center_vertical"
+            android:orientation="horizontal"
             android:paddingLeft="10dp"
             android:paddingRight="10dp"
-            android:orientation="horizontal">
+            app:dialogxDarkMode="true"
+            app:realtimeRadius="99dp">
 
             <ImageView
                 android:id="@+id/img_dialogx_pop_icon"
@@ -40,8 +41,8 @@
                 android:layout_height="wrap_content"
                 android:layout_marginLeft="15dp"
                 android:layout_marginRight="15dp"
-                android:gravity="left|center_vertical"
                 android:layout_weight="1"
+                android:gravity="left|center_vertical"
                 android:singleLine="true"
                 android:text="Sure?"
                 android:textColor="@color/white"
@@ -70,7 +71,7 @@
                 android:textSize="14dp"
                 android:visibility="gone" />
 
-        </LinearLayout>
+        </com.kongzue.dialogx.style.views.BlurLinearLayout>
 
     </RelativeLayout>
 

+ 56 - 0
DialogXIOSStyle/src/main/res/layout/layout_dialogx_wait_ios.xml

@@ -0,0 +1,56 @@
+<?xml version="1.0" encoding="utf-8"?>
+<com.kongzue.dialogx.util.views.DialogXBaseRelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto"
+    xmlns:tools="http://schemas.android.com/tools"
+    android:id="@+id/box_root"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    android:background="@color/black40"
+    android:orientation="vertical">
+
+    <com.kongzue.dialogx.util.views.MaxRelativeLayout
+        android:id="@+id/bkg"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_centerInParent="true">
+
+        <com.kongzue.dialogx.style.views.BlurLinearLayout
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_centerInParent="true"
+            android:gravity="center"
+            android:minWidth="125dp"
+            android:minHeight="125dp"
+            android:orientation="vertical"
+            android:paddingTop="1.5dp"
+            app:realtimeRadius="15dp">
+
+            <RelativeLayout
+                android:id="@+id/box_progress"
+                android:layout_width="65dp"
+                android:layout_height="65dp" />
+
+            <RelativeLayout
+                android:id="@+id/box_customView"
+                android:layout_width="65dp"
+                android:layout_height="65dp"
+                android:visibility="gone" />
+
+            <TextView
+                android:id="@+id/txt_info"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:layout_marginLeft="15dp"
+                android:layout_marginTop="10dp"
+                android:layout_marginRight="15dp"
+                android:gravity="center"
+                android:maxLines="3"
+                android:text="Please Wait"
+                android:textColor="@color/white"
+                android:textSize="14dp" />
+
+        </com.kongzue.dialogx.style.views.BlurLinearLayout>
+
+    </com.kongzue.dialogx.util.views.MaxRelativeLayout>
+
+</com.kongzue.dialogx.util.views.DialogXBaseRelativeLayout>

+ 0 - 11
app/src/main/java/com/kongzue/dialogxdemo/activity/MainActivity.java

@@ -531,10 +531,6 @@ public class MainActivity extends BaseActivity {
             public void onClick(View view) {
                 new InputDialog("标题", "正文内容", "确定", "取消", "正在输入的文字")
                         .setInputText("Hello World")
-                        .setInputInfo(new InputInfo()
-                                .setCursorColor(getResources().getColor(R.color.colorAccent))       //修改输入框光标颜色
-                                .setBottomLineColor(DialogX.globalStyle instanceof MaterialStyle ? getResources().getColor(R.color.colorAccent) : 0)   //修改输入框下提示线颜色
-                        )
                         .setOkButton(new OnInputDialogButtonClickListener<InputDialog>() {
                             @Override
                             public boolean onClick(InputDialog baseDialog, View v, String inputStr) {
@@ -1308,13 +1304,6 @@ public class MainActivity extends BaseActivity {
                             }
                         })
                         .showLong();
-
-                runDelayed(new Runnable() {
-                    @Override
-                    public void run() {
-                        finish();
-                    }
-                }, 500);
             }
         });
 

+ 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.48.beta29
+BUILD_VERSION=0.0.48.beta30
 BUILD_VERSION_INT=47
 DIALOGX_STYLE_VERSION=5
 android.nonTransitiveRClass=true