瀏覽代碼

0.0.40.beta6

kongzue 4 年之前
父節點
當前提交
138a6126d4

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

@@ -98,17 +98,7 @@ public class BottomDialog extends BaseDialog {
     }
     
     public static BottomDialog build(OnBindView<BottomDialog> onBindView) {
-        BottomDialog bottomDialog = new BottomDialog().setCustomView(onBindView);
-        if (onBindView.isPreLoading()) {
-            onBindView.setOnViewLoadFinishListener(new OnBindView.OnViewLoadFinishListener() {
-                @Override
-                public void onFinish(View view) {
-                    bottomDialog.preShow();
-                    bottomDialog.show();
-                }
-            });
-        }
-        return bottomDialog;
+        return new BottomDialog().setCustomView(onBindView);
     }
     
     public BottomDialog(CharSequence title, CharSequence message) {
@@ -583,6 +573,7 @@ public class BottomDialog extends BaseDialog {
         @Override
         public void doDismiss(View v) {
             if (v != null) v.setEnabled(false);
+            if (getContext() == null) return;
             
             if (boxContent != null)
                 boxContent.getViewTreeObserver().removeOnGlobalLayoutListener(onContentViewLayoutChangeListener);

+ 1 - 11
DialogX/src/main/java/com/kongzue/dialogx/dialogs/BottomMenu.java

@@ -59,17 +59,7 @@ public class BottomMenu extends BottomDialog {
     }
     
     public static BottomMenu build(OnBindView<BottomDialog> onBindView) {
-        BottomMenu bottomMenu = new BottomMenu().setCustomView(onBindView);
-        if (onBindView.isPreLoading()) {
-            onBindView.setOnViewLoadFinishListener(new OnBindView.OnViewLoadFinishListener() {
-                @Override
-                public void onFinish(View view) {
-                    bottomMenu.preShow();
-                    bottomMenu.show();
-                }
-            });
-        }
-        return bottomMenu;
+        return new BottomMenu().setCustomView(onBindView);
     }
     
     protected BottomMenu() {

+ 48 - 52
DialogX/src/main/java/com/kongzue/dialogx/dialogs/CustomDialog.java

@@ -68,17 +68,7 @@ public class CustomDialog extends BaseDialog {
     }
     
     public static CustomDialog build(OnBindView<CustomDialog> onBindView) {
-        CustomDialog customDialog = new CustomDialog().setCustomView(onBindView);
-        if (onBindView.isPreLoading()) {
-            onBindView.setOnViewLoadFinishListener(new OnBindView.OnViewLoadFinishListener() {
-                @Override
-                public void onFinish(View view) {
-                    customDialog.preShow();
-                    customDialog.show();
-                }
-            });
-        }
-        return customDialog;
+        return new CustomDialog().setCustomView(onBindView);
     }
     
     public CustomDialog(OnBindView<CustomDialog> onBindView) {
@@ -102,7 +92,7 @@ public class CustomDialog extends BaseDialog {
         super.beforeShow();
         dialogView = createView(R.layout.layout_dialogx_custom);
         dialogImpl = new DialogImpl(dialogView);
-        if (dialogView!=null)dialogView.setTag(me);
+        if (dialogView != null) dialogView.setTag(me);
         show(dialogView);
     }
     
@@ -110,7 +100,7 @@ public class CustomDialog extends BaseDialog {
         super.beforeShow();
         dialogView = createView(R.layout.layout_dialogx_custom);
         dialogImpl = new DialogImpl(dialogView);
-        if (dialogView!=null)dialogView.setTag(me);
+        if (dialogView != null) dialogView.setTag(me);
         show(activity, dialogView);
     }
     
@@ -270,47 +260,53 @@ public class CustomDialog extends BaseDialog {
         public void doDismiss(View v) {
             if (v != null) v.setEnabled(false);
             
-            int exitAnimResIdTemp = R.anim.anim_dialogx_default_exit;
-            if (overrideExitAnimRes != 0) {
-                exitAnimResIdTemp = overrideExitAnimRes;
-            }
-            if (exitAnimResId != 0) {
-                exitAnimResIdTemp = exitAnimResId;
-            }
-            Animation exitAnim = AnimationUtils.loadAnimation(getContext(), exitAnimResIdTemp);
-            
-            long exitAnimDurationTemp = exitAnim.getDuration();
-            if (overrideExitDuration >= 0) {
-                exitAnimDurationTemp = overrideExitDuration;
-            }
-            if (exitAnimDuration >= 0) {
-                exitAnimDurationTemp = exitAnimDuration;
-            }
-            exitAnim.setDuration(exitAnimDurationTemp);
-            exitAnim.setAnimationListener(new Animation.AnimationListener() {
-                @Override
-                public void onAnimationStart(Animation animation) {
-                
-                }
-                
-                @Override
-                public void onAnimationEnd(Animation animation) {
-                    dismiss(dialogView);
-                }
-                
+            boxCustom.post(new Runnable() {
                 @Override
-                public void onAnimationRepeat(Animation animation) {
-                
+                public void run() {
+                    int exitAnimResIdTemp = R.anim.anim_dialogx_default_exit;
+                    if (overrideExitAnimRes != 0) {
+                        exitAnimResIdTemp = overrideExitAnimRes;
+                    }
+                    if (exitAnimResId != 0) {
+                        exitAnimResIdTemp = exitAnimResId;
+                    }
+                    
+                    Animation exitAnim = AnimationUtils.loadAnimation(getContext() == null ? boxCustom.getContext() : getContext(), exitAnimResIdTemp);
+                    
+                    long exitAnimDurationTemp = exitAnim.getDuration();
+                    if (overrideExitDuration >= 0) {
+                        exitAnimDurationTemp = overrideExitDuration;
+                    }
+                    if (exitAnimDuration >= 0) {
+                        exitAnimDurationTemp = exitAnimDuration;
+                    }
+                    exitAnim.setDuration(exitAnimDurationTemp);
+                    exitAnim.setAnimationListener(new Animation.AnimationListener() {
+                        @Override
+                        public void onAnimationStart(Animation animation) {
+                        
+                        }
+                        
+                        @Override
+                        public void onAnimationEnd(Animation animation) {
+                            dismiss(dialogView);
+                        }
+                        
+                        @Override
+                        public void onAnimationRepeat(Animation animation) {
+                        
+                        }
+                    });
+                    boxCustom.startAnimation(exitAnim);
+                    
+                    if (overrideMaskExitAnimRes != 0) {
+                        Animation maskExitAnim = AnimationUtils.loadAnimation(getContext(), overrideMaskExitAnimRes);
+                        maskExitAnim.setDuration(exitAnimDurationTemp);
+                        maskExitAnim.setInterpolator(new DecelerateInterpolator(2f));
+                        boxRoot.startAnimation(maskExitAnim);
+                    }
                 }
             });
-            boxCustom.startAnimation(exitAnim);
-            
-            if (overrideMaskExitAnimRes != 0) {
-                Animation maskExitAnim = AnimationUtils.loadAnimation(getContext(), overrideMaskExitAnimRes);
-                maskExitAnim.setDuration(exitAnimDurationTemp);
-                maskExitAnim.setInterpolator(new DecelerateInterpolator(2f));
-                boxRoot.startAnimation(maskExitAnim);
-            }
         }
     }
     
@@ -486,7 +482,7 @@ public class CustomDialog extends BaseDialog {
         enterAnimDuration = 0;
         dialogView = createView(R.layout.layout_dialogx_custom);
         dialogImpl = new DialogImpl(dialogView);
-        if (dialogView!=null)dialogView.setTag(me);
+        if (dialogView != null) dialogView.setTag(me);
         show(dialogView);
     }
 }

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

@@ -62,17 +62,7 @@ public class FullScreenDialog extends BaseDialog {
     }
     
     public static FullScreenDialog build(OnBindView<FullScreenDialog> onBindView) {
-        FullScreenDialog fullScreenDialog = new FullScreenDialog(onBindView);
-        if (onBindView.isPreLoading()) {
-            onBindView.setOnViewLoadFinishListener(new OnBindView.OnViewLoadFinishListener() {
-                @Override
-                public void onFinish(View view) {
-                    fullScreenDialog.preShow();
-                    fullScreenDialog.show();
-                }
-            });
-        }
-        return fullScreenDialog;
+        return new FullScreenDialog(onBindView);
     }
     
     public FullScreenDialog(OnBindView<FullScreenDialog> onBindView) {
@@ -239,6 +229,7 @@ public class FullScreenDialog extends BaseDialog {
         @Override
         public void doDismiss(View v) {
             if (v != null) v.setEnabled(false);
+            if (getContext() == null) return;
             
             long exitAnimDurationTemp = 300;
             if (overrideExitDuration >= 0) {

+ 1 - 11
DialogX/src/main/java/com/kongzue/dialogx/dialogs/InputDialog.java

@@ -33,17 +33,7 @@ public class InputDialog extends MessageDialog {
     }
     
     public static InputDialog build(OnBindView<MessageDialog> onBindView) {
-        InputDialog inputDialog = new InputDialog().setCustomView(onBindView);
-        if (onBindView.isPreLoading()) {
-            onBindView.setOnViewLoadFinishListener(new OnBindView.OnViewLoadFinishListener() {
-                @Override
-                public void onFinish(View view) {
-                    inputDialog.preShow();
-                    inputDialog.show();
-                }
-            });
-        }
-        return inputDialog;
+        return new InputDialog().setCustomView(onBindView);
     }
     
     public InputDialog(CharSequence title, CharSequence message, CharSequence okText) {

+ 7 - 16
DialogX/src/main/java/com/kongzue/dialogx/dialogs/MessageDialog.java

@@ -96,17 +96,7 @@ public class MessageDialog extends BaseDialog {
     }
     
     public static MessageDialog build(OnBindView<MessageDialog> onBindView) {
-        MessageDialog messageDialog = new MessageDialog().setCustomView(onBindView);
-        if (onBindView.isPreLoading()) {
-            onBindView.setOnViewLoadFinishListener(new OnBindView.OnViewLoadFinishListener() {
-                @Override
-                public void onFinish(View view) {
-                    messageDialog.preShow();
-                    messageDialog.show();
-                }
-            });
-        }
-        return messageDialog;
+        return new MessageDialog().setCustomView(onBindView);
     }
     
     public MessageDialog(CharSequence title, CharSequence message) {
@@ -218,7 +208,7 @@ public class MessageDialog extends BaseDialog {
         
         dialogView = createView(layoutId);
         dialogImpl = new DialogImpl(dialogView);
-        if (dialogView!=null)dialogView.setTag(me);
+        if (dialogView != null) dialogView.setTag(me);
         show(dialogView);
     }
     
@@ -229,7 +219,7 @@ public class MessageDialog extends BaseDialog {
         
         dialogView = createView(layoutId);
         dialogImpl = new DialogImpl(dialogView);
-        if (dialogView!=null)dialogView.setTag(me);
+        if (dialogView != null) dialogView.setTag(me);
         show(activity, dialogView);
     }
     
@@ -465,7 +455,7 @@ public class MessageDialog extends BaseDialog {
                     tintColor(btnSelectPositive, backgroundColor);
                 }
             }
-    
+            
             bkg.setMaxWidth(DialogX.dialogMaxWidth);
             if (me instanceof InputDialog) {
                 txtInput.setVisibility(View.VISIBLE);
@@ -653,6 +643,7 @@ public class MessageDialog extends BaseDialog {
         
         public void doDismiss(View v) {
             if (v != null) v.setEnabled(false);
+            if (getContext() == null) return;
             
             int exitAnimResId = style.exitAnimResId() == 0 ? R.anim.anim_dialogx_default_exit : style.exitAnimResId();
             if (overrideExitAnimRes != 0) {
@@ -680,7 +671,7 @@ public class MessageDialog extends BaseDialog {
                 public void run() {
                     dismiss(dialogView);
                 }
-            },exitAnimDuration == -1 ? exitAnim.getDuration() : exitAnimDuration);
+            }, exitAnimDuration == -1 ? exitAnim.getDuration() : exitAnimDuration);
         }
     }
     
@@ -1047,7 +1038,7 @@ public class MessageDialog extends BaseDialog {
         enterAnimDuration = 0;
         dialogView = createView(layoutId);
         dialogImpl = new DialogImpl(dialogView);
-        if (dialogView!=null)dialogView.setTag(me);
+        if (dialogView != null) dialogView.setTag(me);
         show(dialogView);
     }
 }

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

@@ -87,17 +87,7 @@ public class PopTip extends BaseDialog {
     }
     
     public static PopTip build(OnBindView<PopTip> onBindView) {
-        PopTip popTip = new PopTip().setCustomView(onBindView);
-        if (onBindView.isPreLoading()) {
-            onBindView.setOnViewLoadFinishListener(new OnBindView.OnViewLoadFinishListener() {
-                @Override
-                public void onFinish(View view) {
-                    popTip.preShow();
-                    popTip.show();
-                }
-            });
-        }
-        return popTip;
+        return new PopTip().setCustomView(onBindView);
     }
     
     public PopTip(OnBindView<PopTip> onBindView) {
@@ -472,7 +462,6 @@ public class PopTip extends BaseDialog {
             boxRoot.post(new Runnable() {
                 @Override
                 public void run() {
-                    
                     Animation enterAnim = AnimationUtils.loadAnimation(getContext(), enterAnimResId);
                     enterAnim.setInterpolator(new DecelerateInterpolator(2f));
                     if (enterAnimDuration != -1) {
@@ -556,7 +545,7 @@ public class PopTip extends BaseDialog {
                 public void run() {
                     if (v != null) v.setEnabled(false);
                     
-                    Animation exitAnim = AnimationUtils.loadAnimation(getContext(), exitAnimResId);
+                    Animation exitAnim = AnimationUtils.loadAnimation(getContext()==null?boxRoot.getContext():getContext(), exitAnimResId);
                     if (exitAnimDuration != -1) {
                         exitAnim.setDuration(exitAnimResId);
                     }

+ 1 - 0
DialogX/src/main/java/com/kongzue/dialogx/dialogs/WaitDialog.java

@@ -474,6 +474,7 @@ public class WaitDialog extends BaseDialog {
         
         public void doDismiss(final View v) {
             if (boxRoot == null) return;
+            if (getContext() == null) return;
             boxRoot.post(new Runnable() {
                 @Override
                 public void run() {

+ 1 - 46
DialogX/src/main/java/com/kongzue/dialogx/interfaces/OnBindView.java

@@ -21,7 +21,6 @@ public abstract class OnBindView<D> {
     
     int layoutResId;
     View customView;
-    OnViewLoadFinishListener onViewLoadFinishListener;
     
     public OnBindView(int layoutResId) {
         if (BaseDialog.getContext() == null) {
@@ -32,34 +31,6 @@ public abstract class OnBindView<D> {
         customView = LayoutInflater.from(BaseDialog.getContext()).inflate(layoutResId, new RelativeLayout(BaseDialog.getContext()), false);
     }
     
-    private boolean preLoading;
-    
-    public OnBindView(int layoutResId, boolean preLoading) {
-        if (BaseDialog.getContext() == null) {
-            DialogX.error(ERROR_INIT_TIPS);
-            return;
-        }
-        this.layoutResId = layoutResId;
-        this.preLoading = true;
-        if (preLoading) {
-            new Thread() {
-                @Override
-                public void run() {
-                    super.run();
-                    customView = LayoutInflater.from(BaseDialog.getContext()).inflate(layoutResId, new RelativeLayout(BaseDialog.getContext()), false);
-                    int widthSpec = View.MeasureSpec.makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED);
-                    int heightSpec = View.MeasureSpec.makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED);
-                    customView.measure(widthSpec, heightSpec);
-                    customView.invalidate();
-                    
-                    if (onViewLoadFinishListener!=null)onViewLoadFinishListener.onFinish(customView);
-                }
-            }.start();
-        }else{
-            customView = LayoutInflater.from(BaseDialog.getContext()).inflate(layoutResId, new RelativeLayout(BaseDialog.getContext()), false);
-        }
-    }
-    
     public OnBindView(View customView) {
         this.customView = customView;
     }
@@ -76,7 +47,7 @@ public abstract class OnBindView<D> {
     }
     
     public View getCustomView() {
-        if (preLoading && customView == null) {
+        if (customView == null) {
             customView = LayoutInflater.from(BaseDialog.getContext()).inflate(layoutResId, new RelativeLayout(BaseDialog.getContext()), false);
         }
         return customView;
@@ -108,10 +79,7 @@ public abstract class OnBindView<D> {
         return this;
     }
     
-    long loadStamp;
-    
     public OnBindView<D> bindParent(ViewGroup parentView, BaseDialog dialog) {
-        loadStamp = System.currentTimeMillis();
         if (getCustomView() == null) return this;
         if (getCustomView().getParent() != null) {
             if (getCustomView().getParent() == parentView) {
@@ -127,17 +95,4 @@ public abstract class OnBindView<D> {
         onBind((D) dialog, getCustomView());
         return this;
     }
-    
-    public boolean isPreLoading() {
-        return preLoading;
-    }
-    
-    public interface OnViewLoadFinishListener{
-        void onFinish(View view);
-    }
-    
-    public OnBindView<D> setOnViewLoadFinishListener(OnViewLoadFinishListener onViewLoadFinishListener) {
-        this.onViewLoadFinishListener = onViewLoadFinishListener;
-        return this;
-    }
 }

+ 1 - 1
DialogX/src/main/res/layout/layout_dialogx_fullscreen.xml

@@ -34,7 +34,7 @@
                 <RelativeLayout
                     android:id="@+id/box_custom"
                     android:layout_width="match_parent"
-                    android:layout_height="wrap_content"
+                    android:layout_height="500dp"
                     android:clickable="true"
                     android:orientation="vertical"/>
 

+ 3 - 3
app/src/main/java/com/kongzue/dialogxdemo/MainActivity.java

@@ -568,7 +568,7 @@ public class MainActivity extends BaseActivity {
         btnFullScreenDialogLogin.setOnClickListener(new View.OnClickListener() {
             @Override
             public void onClick(View v) {
-                FullScreenDialog.build(new OnBindView<FullScreenDialog>(R.layout.layout_full_login,true) {
+                FullScreenDialog.show(new OnBindView<FullScreenDialog>(R.layout.layout_full_login) {
                     @Override
                     public void onBind(FullScreenDialog dialog, View v) {
                         btnCancel = v.findViewById(R.id.btn_cancel);
@@ -577,10 +577,10 @@ public class MainActivity extends BaseActivity {
                         editUserName = v.findViewById(R.id.edit_userName);
                         boxPassword = v.findViewById(R.id.box_password);
                         editPassword = v.findViewById(R.id.edit_password);
-            
+        
                         initFullScreenLoginDemo(dialog);
                     }
-                }).show();
+                });
             }
         });
         

+ 1 - 1
gradle.properties

@@ -18,5 +18,5 @@ android.useAndroidX=true
 # Automatically convert third-party libraries to use AndroidX
 android.enableJetifier=true
 
-BUILD_VERSION=0.0.40.debug5
+BUILD_VERSION=0.0.40.beta6
 BUILD_VERSION_INT=39