Bläddra i källkod

Merge remote-tracking branch 'origin/master'

Kongzue 1 år sedan
förälder
incheckning
87b865fca4

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

@@ -92,6 +92,8 @@ public class PopMenu extends BaseDialog {
     // 记录 baseView 位置
     protected DialogXViewLoc baseViewLoc = new DialogXViewLoc();
     private int selectIndex;
+    public boolean notCheckHash = false;
+    public int lastHash = -1;
 
     public PopMenu() {
         super();
@@ -554,10 +556,19 @@ public class PopMenu extends BaseDialog {
             listMenu.setOnItemClickListener(new AdapterView.OnItemClickListener() {
                 @Override
                 public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
+                    haptic(view);
                     selectIndex = position;
                     if (!closing) {
-                        if (!getOnMenuItemClickListener().onClick(me, menuList.get(position), position)) {
-                            haptic(view);
+                        lastHash = menuList.hashCode();
+                        boolean callBack = getOnMenuItemClickListener().onClick(me, menuList.get(position), position);
+                        if (!notCheckHash) {
+                            if (lastHash == menuList.hashCode()) {
+                                if (callBack) {
+                                    callBack = false;
+                                }
+                            }
+                        }
+                        if (!callBack) {
                             dismiss();
                         }
                     }

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

@@ -8,8 +8,6 @@ import android.graphics.Rect;
 import android.graphics.drawable.Drawable;
 import android.graphics.drawable.GradientDrawable;
 import android.os.Build;
-import android.os.Handler;
-import android.os.Looper;
 import android.text.TextUtils;
 import android.view.MotionEvent;
 import android.view.View;
@@ -653,6 +651,7 @@ public class PopNotification extends BaseDialog implements NoTouchInterface {
             boxBody.setOnClickListener(new View.OnClickListener() {
                 @Override
                 public void onClick(View v) {
+                    haptic(v);
                     if (onPopNotificationClickListener != null) {
                         if (!onPopNotificationClickListener.onClick(me, v)) {
                             dismiss();
@@ -666,6 +665,7 @@ public class PopNotification extends BaseDialog implements NoTouchInterface {
             txtDialogxButton.setOnClickListener(new View.OnClickListener() {
                 @Override
                 public void onClick(View v) {
+                    haptic(v);
                     if (onButtonClickListener != null) {
                         if (!onButtonClickListener.onClick(me, v)) {
                             doDismiss(v);
@@ -1463,6 +1463,11 @@ public class PopNotification extends BaseDialog implements NoTouchInterface {
         return this;
     }
 
+    public PopNotification setHapticFeedbackEnabled(boolean isHapticFeedbackEnabled) {
+        this.isHapticFeedbackEnabled = isHapticFeedbackEnabled ? 1 : 0;
+        return this;
+    }
+
     public boolean isSlideToClose() {
         return slideToClose;
     }