1
0
kongzue 4 жил өмнө
parent
commit
ae95fb0304

+ 21 - 1
DialogX/src/main/java/com/kongzue/dialogx/dialogs/CustomDialog.java

@@ -50,7 +50,9 @@ public class CustomDialog extends BaseDialog {
     public enum ALIGN {
         CENTER,
         TOP,
-        BOTTOM
+        BOTTOM,
+        LEFT,
+        RIGHT
     }
     
     protected CustomDialog() {
@@ -158,6 +160,16 @@ public class CustomDialog extends BaseDialog {
                     rlp.removeRule(RelativeLayout.ALIGN_PARENT_BOTTOM);
                     rlp.addRule(RelativeLayout.CENTER_IN_PARENT);
                     break;
+                case LEFT:
+                    rlp.removeRule(RelativeLayout.CENTER_IN_PARENT);
+                    rlp.addRule(RelativeLayout.ALIGN_PARENT_TOP);
+                    rlp.addRule(RelativeLayout.ALIGN_PARENT_LEFT);
+                    break;
+                case RIGHT:
+                    rlp.removeRule(RelativeLayout.CENTER_IN_PARENT);
+                    rlp.addRule(RelativeLayout.ALIGN_PARENT_TOP);
+                    rlp.addRule(RelativeLayout.ALIGN_PARENT_RIGHT);
+                    break;
             }
             boxCustom.setLayoutParams(rlp);
             
@@ -180,6 +192,14 @@ public class CustomDialog extends BaseDialog {
                                 enterAnimResId = R.anim.anim_dialogx_bottom_enter;
                                 exitAnimResId = R.anim.anim_dialogx_bottom_exit;
                                 break;
+                            case LEFT:
+                                enterAnimResId = R.anim.anim_dialogx_left_enter;
+                                exitAnimResId = R.anim.anim_dialogx_left_exit;
+                                break;
+                            case RIGHT:
+                                enterAnimResId = R.anim.anim_dialogx_right_enter;
+                                exitAnimResId = R.anim.anim_dialogx_right_exit;
+                                break;
                         }
                     }
                     Animation enterAnim;

+ 7 - 4
DialogX/src/main/java/com/kongzue/dialogx/dialogs/PopTip.java

@@ -353,10 +353,6 @@ public class PopTip extends BaseDialog {
             if (buttonTextInfo == null) buttonTextInfo = DialogX.buttonTextInfo;
             if (backgroundColor == -1) backgroundColor = DialogX.backgroundColor;
             
-            boxRoot.setFocusable(false);
-            boxRoot.setFocusableInTouchMode(false);
-            boxRoot.setAutoUnsafePlacePadding(false);
-            
             if (autoDismissTimer == null) {
                 showShort();
             }
@@ -411,6 +407,13 @@ public class PopTip extends BaseDialog {
                     }
                 }
             });
+    
+            boxRoot.setOnBackPressedListener(new OnBackPressedListener() {
+                @Override
+                public boolean onBackPressed() {
+                    return false;
+                }
+            });
             
             boxRoot.post(new Runnable() {
                 @Override

+ 70 - 0
DialogX/src/main/java/com/kongzue/dialogx/dialogs/TipDialog.java

@@ -1,5 +1,7 @@
 package com.kongzue.dialogx.dialogs;
 
+import android.app.Activity;
+
 import com.kongzue.dialogx.interfaces.DialogLifecycleCallback;
 
 import java.lang.ref.WeakReference;
@@ -28,6 +30,17 @@ public class TipDialog extends WaitDialog {
         return me();
     }
     
+    public static WaitDialog show(Activity activity, int messageResId) {
+        DialogImpl dialogImpl = me().dialogImpl;
+        me().preMessage(messageResId);
+        if (dialogImpl != null && dialogImpl.bkg.getContext() == activity) {
+            dialogImpl.showTip(TYPE.WARNING);
+        } else {
+            me().showTip(activity, messageResId, TYPE.WARNING);
+        }
+        return me();
+    }
+    
     public static WaitDialog show(CharSequence message) {
         DialogImpl dialogImpl = me().dialogImpl;
         me().preMessage(message);
@@ -39,6 +52,17 @@ public class TipDialog extends WaitDialog {
         return me();
     }
     
+    public static WaitDialog show(Activity activity, CharSequence message) {
+        DialogImpl dialogImpl = me().dialogImpl;
+        me().preMessage(message);
+        if (dialogImpl != null && dialogImpl.bkg.getContext() == activity) {
+            dialogImpl.showTip(TYPE.WARNING);
+        } else {
+            me().showTip(activity, message, TYPE.WARNING);
+        }
+        return me();
+    }
+    
     public static WaitDialog show(int messageResId, TYPE tip) {
         DialogImpl dialogImpl = me().dialogImpl;
         me().preMessage(messageResId);
@@ -50,6 +74,17 @@ public class TipDialog extends WaitDialog {
         return me();
     }
     
+    public static WaitDialog show(Activity activity, int messageResId, TYPE tip) {
+        DialogImpl dialogImpl = me().dialogImpl;
+        me().preMessage(messageResId);
+        if (dialogImpl != null && dialogImpl.bkg.getContext() == activity) {
+            dialogImpl.showTip(tip);
+        } else {
+            me().showTip(activity, messageResId, tip);
+        }
+        return me();
+    }
+    
     public static WaitDialog show(CharSequence message, TYPE tip) {
         DialogImpl dialogImpl = me().dialogImpl;
         me().preMessage(message);
@@ -61,6 +96,17 @@ public class TipDialog extends WaitDialog {
         return me();
     }
     
+    public static WaitDialog show(Activity activity, CharSequence message, TYPE tip) {
+        DialogImpl dialogImpl = me().dialogImpl;
+        me().preMessage(message);
+        if (dialogImpl != null && dialogImpl.bkg.getContext() == activity) {
+            dialogImpl.showTip(tip);
+        } else {
+            me().showTip(activity, message, tip);
+        }
+        return me();
+    }
+    
     public static WaitDialog show(int messageResId, TYPE tip, long duration) {
         DialogImpl dialogImpl = me().dialogImpl;
         me().preMessage(messageResId);
@@ -73,6 +119,18 @@ public class TipDialog extends WaitDialog {
         return me();
     }
     
+    public static WaitDialog show(Activity activity, int messageResId, TYPE tip, long duration) {
+        DialogImpl dialogImpl = me().dialogImpl;
+        me().preMessage(messageResId);
+        me().tipShowDuration = duration;
+        if (dialogImpl != null && dialogImpl.bkg.getContext() == activity) {
+            dialogImpl.showTip(tip);
+        } else {
+            me().showTip(activity, messageResId, tip);
+        }
+        return me();
+    }
+    
     public static WaitDialog show(CharSequence message, TYPE tip, long duration) {
         DialogImpl dialogImpl = me().dialogImpl;
         me().preMessage(message);
@@ -84,4 +142,16 @@ public class TipDialog extends WaitDialog {
         }
         return me();
     }
+    
+    public static WaitDialog show(Activity activity, CharSequence message, TYPE tip, long duration) {
+        DialogImpl dialogImpl = me().dialogImpl;
+        me().preMessage(message);
+        me().tipShowDuration = duration;
+        if (dialogImpl != null && dialogImpl.bkg.getContext() == activity) {
+            dialogImpl.showTip(tip);
+        } else {
+            me().showTip(activity, message, tip);
+        }
+        return me();
+    }
 }

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

@@ -86,6 +86,22 @@ public class WaitDialog extends BaseDialog {
         }
     }
     
+    public static WaitDialog show(Activity activity, CharSequence message) {
+        DialogImpl dialogImpl = me().dialogImpl;
+        me().message = message;
+        me().showType = -1;
+        if (dialogImpl != null && dialogImpl.bkg.getContext() == activity) {
+            dialogImpl.progressView.loading();
+            setMessage(message);
+            return me();
+        } else {
+            WaitDialog waitDialog = new WaitDialog();
+            waitDialog.message = message;
+            waitDialog.show(activity);
+            return waitDialog;
+        }
+    }
+    
     public static WaitDialog show(int messageResId) {
         DialogImpl dialogImpl = me().dialogImpl;
         me().preMessage(messageResId);
@@ -102,6 +118,22 @@ public class WaitDialog extends BaseDialog {
         }
     }
     
+    public static WaitDialog show(Activity activity, int messageResId) {
+        DialogImpl dialogImpl = me().dialogImpl;
+        me().preMessage(messageResId);
+        me().showType = -1;
+        if (dialogImpl != null && dialogImpl.bkg.getContext() == activity) {
+            dialogImpl.progressView.loading();
+            setMessage(messageResId);
+            return me();
+        } else {
+            WaitDialog waitDialog = new WaitDialog();
+            waitDialog.preMessage(messageResId);
+            waitDialog.show(activity);
+            return waitDialog;
+        }
+    }
+    
     public static WaitDialog show(CharSequence message, float progress) {
         DialogImpl dialogImpl = me().dialogImpl;
         me().showType = -1;
@@ -119,6 +151,23 @@ public class WaitDialog extends BaseDialog {
         }
     }
     
+    public static WaitDialog show(Activity activity, CharSequence message, float progress) {
+        DialogImpl dialogImpl = me().dialogImpl;
+        me().showType = -1;
+        me().preMessage(message);
+        if (dialogImpl != null && dialogImpl.bkg.getContext() == activity) {
+            setMessage(message);
+            me().setProgress(progress);
+            return me();
+        } else {
+            WaitDialog waitDialog = new WaitDialog();
+            waitDialog.preMessage(message);
+            waitDialog.show(activity);
+            waitDialog.setProgress(progress);
+            return waitDialog;
+        }
+    }
+    
     public static WaitDialog show(int messageResId, float progress) {
         DialogImpl dialogImpl = me().dialogImpl;
         me().showType = -1;
@@ -136,6 +185,37 @@ public class WaitDialog extends BaseDialog {
         }
     }
     
+    public static WaitDialog show(Activity activity, int messageResId, float progress) {
+        DialogImpl dialogImpl = me().dialogImpl;
+        me().showType = -1;
+        me().preMessage(messageResId);
+        if (dialogImpl != null && dialogImpl.bkg.getContext() == activity) {
+            setMessage(messageResId);
+            me().setProgress(progress);
+            return me();
+        } else {
+            WaitDialog waitDialog = new WaitDialog();
+            waitDialog.preMessage(messageResId);
+            waitDialog.show(activity);
+            waitDialog.setProgress(progress);
+            return waitDialog;
+        }
+    }
+    
+    public static WaitDialog show(Activity activity, float progress) {
+        DialogImpl dialogImpl = me().dialogImpl;
+        me().showType = -1;
+        if (dialogImpl != null && dialogImpl.bkg.getContext() == activity) {
+            me().setProgress(progress);
+            return me();
+        } else {
+            WaitDialog waitDialog = new WaitDialog();
+            waitDialog.show(activity);
+            waitDialog.setProgress(progress);
+            return waitDialog;
+        }
+    }
+    
     public static WaitDialog show(float progress) {
         DialogImpl dialogImpl = me().dialogImpl;
         me().showType = -1;
@@ -182,7 +262,7 @@ public class WaitDialog extends BaseDialog {
     
     protected DialogImpl dialogImpl;
     
-    public class DialogImpl implements DialogConvertViewInterface  {
+    public class DialogImpl implements DialogConvertViewInterface {
         public DialogXBaseRelativeLayout boxRoot;
         public MaxRelativeLayout bkg;
         public BlurView blurView;
@@ -214,7 +294,7 @@ public class WaitDialog extends BaseDialog {
             
             blurView.setRadiusPx(dip2px(15));
             boxRoot.setClickable(true);
-    
+            
             boxRoot.setParentDialog(me.get());
             boxRoot.setOnLifecycleCallBack(new DialogXBaseRelativeLayout.OnLifecycleCallBack() {
                 @Override
@@ -440,6 +520,13 @@ public class WaitDialog extends BaseDialog {
         show();
     }
     
+    protected void showTip(Activity activity, CharSequence message, TYPE type) {
+        showType = type.ordinal();
+        this.message = message;
+        readyTipType = type;
+        show(activity);
+    }
+    
     protected void showTip(int messageResId, TYPE type) {
         showType = type.ordinal();
         this.message = getString(messageResId);
@@ -448,6 +535,14 @@ public class WaitDialog extends BaseDialog {
         show();
     }
     
+    protected void showTip(Activity activity, int messageResId, TYPE type) {
+        showType = type.ordinal();
+        this.message = getString(messageResId);
+        readyTipType = type;
+        setDialogLifecycleCallback(tipDialogLifecycleCallback);
+        show(activity);
+    }
+    
     public static CharSequence getMessage() {
         return me().message;
     }

+ 11 - 0
DialogX/src/main/res/anim/anim_dialogx_left_enter.xml

@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="utf-8"?>
+<set xmlns:android="http://schemas.android.com/apk/res/android">
+    <translate
+        android:duration="300"
+        android:fromXDelta="-100%p"
+        android:toXDelta="0" />
+    <alpha
+        android:duration="300"
+        android:fromAlpha="0.0"
+        android:toAlpha="1.0" />
+</set>

+ 11 - 0
DialogX/src/main/res/anim/anim_dialogx_left_exit.xml

@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="utf-8"?>
+<set xmlns:android="http://schemas.android.com/apk/res/android">
+    <translate
+        android:duration="300"
+        android:fromXDelta="0"
+        android:toXDelta="-100%p"/>
+    <alpha
+        android:duration="300"
+        android:fromAlpha="1.0"
+        android:toAlpha="0.0"/>
+</set>

+ 11 - 0
DialogX/src/main/res/anim/anim_dialogx_right_enter.xml

@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="utf-8"?>
+<set xmlns:android="http://schemas.android.com/apk/res/android">
+    <translate
+        android:duration="300"
+        android:fromXDelta="100%p"
+        android:toXDelta="0" />
+    <alpha
+        android:duration="300"
+        android:fromAlpha="0.0"
+        android:toAlpha="1.0" />
+</set>

+ 11 - 0
DialogX/src/main/res/anim/anim_dialogx_right_exit.xml

@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="utf-8"?>
+<set xmlns:android="http://schemas.android.com/apk/res/android">
+    <translate
+        android:duration="300"
+        android:fromXDelta="0"
+        android:toXDelta="100%p"/>
+    <alpha
+        android:duration="300"
+        android:fromAlpha="1.0"
+        android:toAlpha="0.0"/>
+</set>