Browse Source

0.0.48.beta22 ready
- BottomDialog 以及 BottomMenu 各主题全部提供 Ok、Cancel、Other 三个按钮,此前该设置受限于主题样式,仅在 Material、Material You 两个主题下提供三个按钮,在其他主题中只提供了取消按钮;
- AGT 版本升级;

⚠️ 以下非公开的内部组件或方法将在未来的版本废弃:
- BaseDialog.getContext()
- com.kongzue.dialogx.util.views.BlurView

Kongzue 2 years ago
parent
commit
7c49bf1739

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

@@ -57,7 +57,7 @@ public class BottomMenu extends BottomDialog {
     protected int selectionIndex = -1;
     protected SELECT_MODE selectMode = SELECT_MODE.NONE;
     protected ArrayList<Integer> selectionItems;
-    protected boolean showSelectedBackgroundTips = true;
+    protected boolean showSelectedBackgroundTips = false;
     protected MenuItemLayoutRefreshCallback<BottomMenu> menuMenuItemLayoutRefreshCallback;
 
     protected OnMenuItemClickListener<BottomMenu> onMenuItemClickListener;
@@ -604,29 +604,6 @@ public class BottomMenu extends BottomDialog {
             getDialogImpl().boxList.addView(listView, listViewLp);
 
             refreshUI();
-
-            //部分主题下选中项默认按下效果
-            if (showSelectedBackgroundTips) {
-                listView.post(new Runnable() {
-                    @Override
-                    public void run() {
-                        if (menuListAdapter instanceof BottomMenuArrayAdapter && showSelectedBackgroundTips) {
-                            BottomMenuArrayAdapter bottomMenuArrayAdapter = ((BottomMenuArrayAdapter) menuListAdapter);
-
-                            View selectItemView = listView.getChildAt(getSelection());
-                            if (selectItemView != null) {
-                                selectItemView.post(new Runnable() {
-                                    @Override
-                                    public void run() {
-                                        selectItemView.setPressed(true);
-                                    }
-                                });
-                            }
-                        }
-                    }
-                });
-            }
-
         }
     }
 
@@ -647,6 +624,28 @@ public class BottomMenu extends BottomDialog {
                 }
             }
         }
+
+        //部分主题下选中项默认按下效果
+        if (showSelectedBackgroundTips) {
+            listView.post(new Runnable() {
+                @Override
+                public void run() {
+                    if (menuListAdapter instanceof BottomMenuArrayAdapter && showSelectedBackgroundTips) {
+                        BottomMenuArrayAdapter bottomMenuArrayAdapter = ((BottomMenuArrayAdapter) menuListAdapter);
+
+                        View selectItemView = listView.getChildAt(getSelection());
+                        if (selectItemView != null) {
+                            selectItemView.post(new Runnable() {
+                                @Override
+                                public void run() {
+                                    selectItemView.setPressed(true);
+                                }
+                            });
+                        }
+                    }
+                }
+            });
+        }
         super.refreshUI();
     }
 
@@ -1224,6 +1223,7 @@ public class BottomMenu extends BottomDialog {
 
     public BottomMenu setShowSelectedBackgroundTips(boolean showSelectedBackgroundTips) {
         this.showSelectedBackgroundTips = showSelectedBackgroundTips;
+        refreshUI();
         return this;
     }
 

+ 10 - 2
DialogX/src/main/java/com/kongzue/dialogx/impl/ActivityLifecycleImpl.java

@@ -158,15 +158,23 @@ public class ActivityLifecycleImpl implements Application.ActivityLifecycleCallb
             BaseDialog.init(activity);
         }
     }
-    
+
     @Override
-    public void onActivityResumed(@NonNull Activity activity) {
+    public void onActivityPreResumed(@NonNull Activity activity) {
+        Application.ActivityLifecycleCallbacks.super.onActivityPreResumed(activity);
         if (activity.isDestroyed() || activity.isFinishing() || activity instanceof DialogXFloatingWindowActivity) {
             return;
         }
         if (onActivityResumeCallBack != null) {
             onActivityResumeCallBack.getActivity(activity);
         }
+    }
+
+    @Override
+    public void onActivityResumed(@NonNull Activity activity) {
+        if (activity.isDestroyed() || activity.isFinishing() || activity instanceof DialogXFloatingWindowActivity) {
+            return;
+        }
         BaseDialog.onActivityResume(activity);
     }
     

+ 1 - 0
DialogX/src/main/res/values/attrs.xml

@@ -15,6 +15,7 @@
         <attr name="realtimeDownsampleFactor" format="float"/>
         <attr name="realtimeOverlayColor" format="color"/>
         <attr name="realtimeRadius" format="dimension"/>
+        <attr name="dialogxDarkMode" format="boolean"/>
     </declare-styleable>
 
     <declare-styleable name="ProgressView">

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

@@ -71,6 +71,7 @@ public class BlurLinearLayout extends LinearLayout implements BlurViewType {
     }
 
     private boolean isInit = false;
+    private boolean darkMode = false;
 
     Paint cutPaint;
     Paint overlayPaint;
@@ -78,9 +79,10 @@ public class BlurLinearLayout extends LinearLayout implements BlurViewType {
     private void init(Context context, AttributeSet attrs) {
         if (!isInit) {
             TypedArray a = context.obtainStyledAttributes(attrs, com.kongzue.dialogx.R.styleable.RealtimeBlurView);
+            darkMode = a.getBoolean(com.kongzue.dialogx.R.styleable.RealtimeBlurView_dialogxDarkMode, false);
             mBlurRadius = a.getDimension(com.kongzue.dialogx.R.styleable.RealtimeBlurView_realtimeBlurRadius, dip2px(35));
             mDownSampleFactor = a.getFloat(com.kongzue.dialogx.R.styleable.RealtimeBlurView_realtimeDownsampleFactor, 4);
-            mOverlayColor = a.getColor(com.kongzue.dialogx.R.styleable.RealtimeBlurView_realtimeOverlayColor, getResources().getColor(R.color.dialogxIOSBkgLight));
+            mOverlayColor = a.getColor(com.kongzue.dialogx.R.styleable.RealtimeBlurView_realtimeOverlayColor, getResources().getColor(darkMode ? R.color.dialogxIOSBkgDark : R.color.dialogxIOSBkgLight));
             mRadius = a.getDimension(com.kongzue.dialogx.R.styleable.RealtimeBlurView_realtimeRadius, dip2px(15));
             a.recycle();
 
@@ -88,7 +90,7 @@ public class BlurLinearLayout extends LinearLayout implements BlurViewType {
                 setOutlineProvider(new ViewOutlineProvider() {
                     @Override
                     public void getOutline(View view, Outline outline) {
-                        outline.setRoundRect(0, 0, view.getWidth(),view.getHeight(), mRadius);
+                        outline.setRoundRect(0, 0, view.getWidth(), view.getHeight(), mRadius);
                     }
                 });
                 setClipToOutline(true);
@@ -547,6 +549,7 @@ public class BlurLinearLayout extends LinearLayout implements BlurViewType {
         this.overrideOverlayColor = overrideOverlayColor;
         return this;
     }
+
     private int dip2px(float dpValue) {
         final float scale = getResources().getDisplayMetrics().density;
         return (int) (dpValue * scale + 0.5f);

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

@@ -71,6 +71,7 @@ public class BlurRelativeLayout extends RelativeLayout implements BlurViewType {
     }
 
     private boolean isInit = false;
+    private boolean darkMode = false;
 
     Paint cutPaint;
     Paint overlayPaint;
@@ -78,9 +79,10 @@ public class BlurRelativeLayout extends RelativeLayout implements BlurViewType {
     private void init(Context context, AttributeSet attrs) {
         if (!isInit) {
             TypedArray a = context.obtainStyledAttributes(attrs, com.kongzue.dialogx.R.styleable.RealtimeBlurView);
+            darkMode = a.getBoolean(com.kongzue.dialogx.R.styleable.RealtimeBlurView_dialogxDarkMode, false);
             mBlurRadius = a.getDimension(com.kongzue.dialogx.R.styleable.RealtimeBlurView_realtimeBlurRadius, dip2px(35));
             mDownSampleFactor = a.getFloat(com.kongzue.dialogx.R.styleable.RealtimeBlurView_realtimeDownsampleFactor, 4);
-            mOverlayColor = a.getColor(com.kongzue.dialogx.R.styleable.RealtimeBlurView_realtimeOverlayColor, getResources().getColor(R.color.dialogxIOSBkgLight));
+            mOverlayColor = a.getColor(com.kongzue.dialogx.R.styleable.RealtimeBlurView_realtimeOverlayColor, getResources().getColor(darkMode ? R.color.dialogxIOSBkgDark : R.color.dialogxIOSBkgLight));
             mRadius = a.getDimension(com.kongzue.dialogx.R.styleable.RealtimeBlurView_realtimeRadius, dip2px(15));
             a.recycle();
 

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

@@ -39,7 +39,8 @@
                         android:layout_width="match_parent"
                         android:layout_height="wrap_content"
                         android:clickable="true"
-                        android:orientation="vertical">
+                        android:orientation="vertical"
+                        app:dialogxDarkMode="true">
 
                         <TextView
                             android:id="@+id/txt_dialog_title"
@@ -115,7 +116,8 @@
                     android:layout_marginBottom="10dp"
                     android:divider="@drawable/rect_dialogx_ios_menu_split_divider"
                     android:orientation="vertical"
-                    android:showDividers="middle">
+                    android:showDividers="middle"
+                    app:dialogxDarkMode="true">
 
                     <TextView
                         android:id="@+id/btn_selectPositive"

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

@@ -1172,6 +1172,7 @@ public class MainActivity extends BaseActivity {
             @Override
             public void onClick(View v) {
                 BottomMenu.show(singleSelectMenuText)
+                        .setShowSelectedBackgroundTips(rdoMiui.isChecked())
                         .setMessage("这里是权限确认的文本说明,这是一个演示菜单")
                         .setTitle("获得权限标题")
                         .setOnMenuItemClickListener(new OnMenuItemSelectListener<BottomMenu>() {