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

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

@@ -243,6 +243,7 @@ public class BottomDialog extends BaseDialog {
             btnSelectPositive = convertView.findViewById(R.id.btn_selectPositive);
             
             init();
+            dialogImpl = this;
             refreshView();
         }
         

+ 64 - 58
DialogX/src/main/java/com/kongzue/dialogx/dialogs/BottomMenu.java

@@ -1,6 +1,5 @@
 package com.kongzue.dialogx.dialogs;
 
-import android.content.res.Configuration;
 import android.view.MotionEvent;
 import android.view.View;
 import android.view.ViewGroup;
@@ -465,6 +464,9 @@ public class BottomMenu extends BottomDialog {
     
     private float touchDownY;
     
+    public static final int ITEM_CLICK_DELAY = 100;
+    private long lastClickTime = 0;
+    
     @Override
     protected void onDialogInit(final DialogImpl dialog) {
         if (dialog != null) {
@@ -502,38 +504,15 @@ public class BottomMenu extends BottomDialog {
             listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
                 @Override
                 public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
-                    float deltaY = Math.abs(touchDownY - dialog.bkg.getY());
-                    if (deltaY > dip2px(15)) {
-                        return;
-                    }
-                    switch (selectMode) {
-                        case NONE:
-                            if (onMenuItemClickListener != null) {
-                                if (!onMenuItemClickListener.onClick(me, menuList.get(position), position)) {
-                                    dismiss();
-                                }
-                            } else {
-                                dismiss();
-                            }
-                            break;
-                        case SINGLE:
-                            if (onMenuItemClickListener instanceof OnMenuItemSelectListener) {
-                                OnMenuItemSelectListener<BottomMenu> onMenuItemSelectListener = (OnMenuItemSelectListener<BottomMenu>) onMenuItemClickListener;
-                                if (!onMenuItemSelectListener.onClick(me, menuList.get(position), position)) {
-                                    dismiss();
-                                } else {
-                                    boolean select = false;
-                                    if (selectionIndex == position) {
-                                        selectionIndex = -1;
-                                    } else {
-                                        selectionIndex = position;
-                                        select = true;
-                                    }
-                                    menuListAdapter.notifyDataSetInvalidated();
-                                    menuListAdapter.notifyDataSetChanged();
-                                    onMenuItemSelectListener.onOneItemSelect(me, menuList.get(position), position, select);
-                                }
-                            } else {
+                    long currentTime = System.currentTimeMillis();
+                    if (currentTime - lastClickTime > ITEM_CLICK_DELAY) {
+                        lastClickTime = currentTime;
+                        float deltaY = Math.abs(touchDownY - dialog.bkg.getY());
+                        if (deltaY > dip2px(15)) {
+                            return;
+                        }
+                        switch (selectMode) {
+                            case NONE:
                                 if (onMenuItemClickListener != null) {
                                     if (!onMenuItemClickListener.onClick(me, menuList.get(position), position)) {
                                         dismiss();
@@ -541,39 +520,66 @@ public class BottomMenu extends BottomDialog {
                                 } else {
                                     dismiss();
                                 }
-                            }
-                            break;
-                        case MULTIPLE:
-                            if (onMenuItemClickListener instanceof OnMenuItemSelectListener) {
-                                OnMenuItemSelectListener<BottomMenu> onMenuItemSelectListener = (OnMenuItemSelectListener<BottomMenu>) onMenuItemClickListener;
-                                if (!onMenuItemSelectListener.onClick(me, menuList.get(position), position)) {
-                                    dismiss();
-                                } else {
-                                    if (selectionItems.contains(position)) {
-                                        selectionItems.remove(new Integer(position));
+                                break;
+                            case SINGLE:
+                                if (onMenuItemClickListener instanceof OnMenuItemSelectListener) {
+                                    OnMenuItemSelectListener<BottomMenu> onMenuItemSelectListener = (OnMenuItemSelectListener<BottomMenu>) onMenuItemClickListener;
+                                    if (!onMenuItemSelectListener.onClick(me, menuList.get(position), position)) {
+                                        dismiss();
                                     } else {
-                                        selectionItems.add(position);
+                                        boolean select = false;
+                                        if (selectionIndex == position) {
+                                            selectionIndex = -1;
+                                        } else {
+                                            selectionIndex = position;
+                                            select = true;
+                                        }
+                                        menuListAdapter.notifyDataSetInvalidated();
+                                        menuListAdapter.notifyDataSetChanged();
+                                        onMenuItemSelectListener.onOneItemSelect(me, menuList.get(position), position, select);
                                     }
-                                    menuListAdapter.notifyDataSetInvalidated();
-                                    menuListAdapter.notifyDataSetChanged();
-                                    int[] resultArray = new int[selectionItems.size()];
-                                    CharSequence[] selectTextArray = new CharSequence[selectionItems.size()];
-                                    for (int i = 0; i < selectionItems.size(); i++) {
-                                        resultArray[i] = selectionItems.get(i);
-                                        selectTextArray[i] = menuList.get(resultArray[i]);
+                                } else {
+                                    if (onMenuItemClickListener != null) {
+                                        if (!onMenuItemClickListener.onClick(me, menuList.get(position), position)) {
+                                            dismiss();
+                                        }
+                                    } else {
+                                        dismiss();
                                     }
-                                    onMenuItemSelectListener.onMultiItemSelect(me, selectTextArray, resultArray);
                                 }
-                            } else {
-                                if (onMenuItemClickListener != null) {
-                                    if (!onMenuItemClickListener.onClick(me, menuList.get(position), position)) {
+                                break;
+                            case MULTIPLE:
+                                if (onMenuItemClickListener instanceof OnMenuItemSelectListener) {
+                                    OnMenuItemSelectListener<BottomMenu> onMenuItemSelectListener = (OnMenuItemSelectListener<BottomMenu>) onMenuItemClickListener;
+                                    if (!onMenuItemSelectListener.onClick(me, menuList.get(position), position)) {
                                         dismiss();
+                                    } else {
+                                        if (selectionItems.contains(position)) {
+                                            selectionItems.remove(new Integer(position));
+                                        } else {
+                                            selectionItems.add(position);
+                                        }
+                                        menuListAdapter.notifyDataSetInvalidated();
+                                        menuListAdapter.notifyDataSetChanged();
+                                        int[] resultArray = new int[selectionItems.size()];
+                                        CharSequence[] selectTextArray = new CharSequence[selectionItems.size()];
+                                        for (int i = 0; i < selectionItems.size(); i++) {
+                                            resultArray[i] = selectionItems.get(i);
+                                            selectTextArray[i] = menuList.get(resultArray[i]);
+                                        }
+                                        onMenuItemSelectListener.onMultiItemSelect(me, selectTextArray, resultArray);
                                     }
                                 } else {
-                                    dismiss();
+                                    if (onMenuItemClickListener != null) {
+                                        if (!onMenuItemClickListener.onClick(me, menuList.get(position), position)) {
+                                            dismiss();
+                                        }
+                                    } else {
+                                        dismiss();
+                                    }
                                 }
-                            }
-                            break;
+                                break;
+                        }
                     }
                 }
             });

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

@@ -110,6 +110,7 @@ public class CustomDialog extends BaseDialog {
             boxCustom = convertView.findViewById(R.id.box_custom);
             
             init();
+            dialogImpl = this;
             refreshView();
         }
         

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

@@ -104,6 +104,7 @@ public class FullScreenDialog extends BaseDialog {
             bkg = convertView.findViewById(R.id.bkg);
             boxCustom = convertView.findViewById(R.id.box_custom);
             init();
+            dialogImpl = this;
             refreshView();
         }
         

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

@@ -256,6 +256,7 @@ public class MessageDialog extends BaseDialog {
             btnSelectNegative = convertView.findViewById(R.id.btn_selectNegative);
             btnSelectPositive = convertView.findViewById(R.id.btn_selectPositive);
             init();
+            dialogImpl = this;
             refreshView();
         }
         

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

@@ -375,6 +375,7 @@ public class PopTip extends BaseDialog {
             txtDialogxButton = convertView.findViewById(R.id.txt_dialogx_button);
             
             init();
+            dialogImpl = this;
             refreshView();
         }
         

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

@@ -306,6 +306,7 @@ public class WaitDialog extends BaseDialog {
             boxCustomView = convertView.findViewById(R.id.box_customView);
             txtInfo = convertView.findViewById(R.id.txt_info);
             init();
+            dialogImpl = this;
             refreshView();
         }
         

+ 1 - 2
DialogXIOSStyle/src/main/res/layout/layout_dialogx_bottom_ios_dark.xml

@@ -48,9 +48,8 @@
                             android:layout_gravity="center_horizontal"
                             android:gravity="center"
                             android:paddingLeft="20dp"
-                            android:paddingTop="7dp"
+                            android:paddingTop="13dp"
                             android:paddingRight="20dp"
-                            android:paddingBottom="7dp"
                             android:text="Title"
                             android:textColor="@color/dialogxIOSTipTextDark"
                             android:textSize="12dp"

+ 2 - 1
DialogXMIUIStyle/src/main/res/layout/item_dialogx_miui_bottom_menu_center_dark.xml

@@ -26,11 +26,12 @@
             android:layout_width="match_parent"
             android:layout_height="wrap_content"
             android:layout_centerInParent="true"
+            android:layout_weight="1"
             android:singleLine="true"
             android:text="MenuText"
             android:textColor="@color/black"
             android:textSize="16dp"
-            android:textStyle="bold" />
+            android:textStyle="bold" /9
 
         <ImageView
             android:id="@+id/img_dialogx_menu_selection"

+ 3 - 6
app/build.gradle

@@ -31,14 +31,11 @@ dependencies {
     implementation 'androidx.appcompat:appcompat:1.2.0'
     implementation 'com.kongzue.baseframeworkx:baseframework:6.7.9'
 
-    implementation 'com.kongzue.dialogx.style.ios:DialogXIOSStyle:0.0.37'
-    implementation 'com.kongzue.dialogx.style.kongzue:DialogXKongzueStyle:0.0.37'
-    implementation 'com.kongzue.dialogx.style.miui:DialogXMIUIStyle:0.0.37'
+    implementation 'com.github.kongzue.dialogx:DialogXIOSStyle:0.0.37.beta1'
+    implementation 'com.github.kongzue.dialogx:DialogXKongzueStyle:0.0.37.beta1'
+    implementation 'com.github.kongzue.dialogx:DialogXMIUIStyle:0.0.37.beta1'
 
     implementation 'com.github.kongzue:DialogXStyle-Snackbar:1.0.6'
     //implementation 'com.github.kongzue.dialogx:DialogX:0.0.37'
     implementation project(path: ':DialogX')
-//    implementation project(path: ':DialogXIOSStyle')
-//    implementation project(path: ':DialogXKongzueStyle')
-//    implementation project(path: ':DialogXMIUIStyle')
 }

BIN
app/release/app-release.apk → app/release/KongzueDialogXPreview0.0.37.beta1.apk


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

@@ -10,8 +10,8 @@
     {
       "type": "SINGLE",
       "filters": [],
-      "versionCode": 33,
-      "versionName": "0.0.33",
+      "versionCode": 37,
+      "versionName": "0.0.37.beta1",
       "outputFile": "app-release.apk"
     }
   ]

+ 1 - 1
app/src/main/AndroidManifest.xml

@@ -14,7 +14,7 @@
         android:theme="@style/AppTheme">
         <activity
             android:name=".MainActivity"
-            android:configChanges="orientation|keyboardHidden|screenSize|uiMode">
+            android:configChanges="orientation|keyboardHidden|screenSize|uiMode|screenLayout|smallestScreenSize|layoutDirection">
             <intent-filter>
                 <action android:name="android.intent.action.MAIN" />
 

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

@@ -216,8 +216,9 @@ public class MainActivity extends BaseActivity {
     private WebView webView;
     
     private String[] singleSelectMenuText = new String[]{"拒绝", "询问", "始终允许", "仅在使用中允许"};
-    private String[] multiSelectMenuText = new String[]{"上海", "北京", "广州", "深圳"};
     private int selectMenuIndex;
+    
+    private String[] multiSelectMenuText = new String[]{"上海", "北京", "广州", "深圳"};
     private int[] selectMenuIndexArray;
     private String multiSelectMenuResultCache;
     
@@ -692,7 +693,7 @@ public class MainActivity extends BaseActivity {
                                 selectMenuIndex = index;
                             }
                         })
-                        .setOkButton("确定", new OnDialogButtonClickListener<BottomDialog>() {
+                        .setCancelButton("确定", new OnDialogButtonClickListener<BottomDialog>() {
                             @Override
                             public boolean onClick(BottomDialog baseDialog, View v) {
                                 PopTip.show("已选择:" + singleSelectMenuText[selectMenuIndex]);
@@ -719,7 +720,7 @@ public class MainActivity extends BaseActivity {
                                 selectMenuIndexArray = index;
                             }
                         })
-                        .setOkButton("确定", new OnDialogButtonClickListener<BottomDialog>() {
+                        .setCancelButton("确定", new OnDialogButtonClickListener<BottomDialog>() {
                             @Override
                             public boolean onClick(BottomDialog baseDialog, View v) {
                                 PopTip.show("已选择:" + multiSelectMenuResultCache);

+ 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.37.beta1
+BUILD_VERSION=0.0.37.beta2
 BUILD_VERSION_INT=37