Browse Source

Merge branch 'compdfkit_demo_android_alpha' into compdfkit_demo_android

# Conflicts:
#	ComPDFKit_Tools/build.gradle
#	ComPDFKit_Tools/src/main/assets/tools_default_configuration.json
#	ComPDFKit_Tools/src/main/java/com/compdfkit/tools/common/pdf/CPDFDocumentFragment.java
#	compdfkit-tools-mavencentral.gradle
liuxiaolong 9 months ago
parent
commit
294bfaf2e2
100 changed files with 618 additions and 426 deletions
  1. 0 1
      ComPDFKit_Tools/build.gradle
  2. 5 4
      ComPDFKit_Tools/src/main/AndroidManifest.xml
  3. 4 0
      ComPDFKit_Tools/src/main/assets/tools_default_configuration.json
  4. 1 1
      ComPDFKit_Tools/src/main/java/com/compdfkit/tools/annotation/pdfannotationbar/CAnnotationToolbar.java
  5. 14 4
      ComPDFKit_Tools/src/main/java/com/compdfkit/tools/annotation/pdfannotationbar/adapter/CPDFAnnotationToolListAdapter.java
  6. 19 0
      ComPDFKit_Tools/src/main/java/com/compdfkit/tools/annotation/pdfannotationbar/bean/CAnnotToolBean.java
  7. 10 5
      ComPDFKit_Tools/src/main/java/com/compdfkit/tools/annotation/pdfannotationbar/data/CAnnotationToolDatas.java
  8. 35 6
      ComPDFKit_Tools/src/main/java/com/compdfkit/tools/annotation/pdfannotationlist/adapter/CPDFAnnotListAdapter.java
  9. 3 1
      ComPDFKit_Tools/src/main/java/com/compdfkit/tools/annotation/pdfproperties/pdfshape/adapter/CLineTypeListAdapter.java
  10. 6 4
      ComPDFKit_Tools/src/main/java/com/compdfkit/tools/annotation/pdfproperties/pdfsignature/CAddSignatureActivity.java
  11. 2 0
      ComPDFKit_Tools/src/main/java/com/compdfkit/tools/annotation/pdfproperties/pdfsignature/CSignatureStyleFragment.java
  12. 5 3
      ComPDFKit_Tools/src/main/java/com/compdfkit/tools/annotation/pdfproperties/pdfstamp/CAddCustomStampActivity.java
  13. 2 1
      ComPDFKit_Tools/src/main/java/com/compdfkit/tools/annotation/pdfproperties/pdfstamp/CAddStampSwichDialogFragment.java
  14. 2 0
      ComPDFKit_Tools/src/main/java/com/compdfkit/tools/annotation/pdfproperties/pdfstamp/CStampStyleFragment.java
  15. 5 2
      ComPDFKit_Tools/src/main/java/com/compdfkit/tools/common/basic/fragment/CBasicBottomSheetDialogFragment.java
  16. 0 40
      ComPDFKit_Tools/src/main/java/com/compdfkit/tools/common/basic/fragment/CBasicPDFFragment.java
  17. 1 0
      ComPDFKit_Tools/src/main/java/com/compdfkit/tools/common/contextmenu/impl/CCheckBoxContextMenuView.java
  18. 1 0
      ComPDFKit_Tools/src/main/java/com/compdfkit/tools/common/contextmenu/impl/CListBoxContextMenuView.java
  19. 1 0
      ComPDFKit_Tools/src/main/java/com/compdfkit/tools/common/contextmenu/impl/CPushButtonContextMenuView.java
  20. 1 0
      ComPDFKit_Tools/src/main/java/com/compdfkit/tools/common/contextmenu/impl/CRadioButtonContextMenuView.java
  21. 1 0
      ComPDFKit_Tools/src/main/java/com/compdfkit/tools/common/contextmenu/impl/CTextFieldContextMenuView.java
  22. 1 0
      ComPDFKit_Tools/src/main/java/com/compdfkit/tools/common/contextmenu/impl/ComboBoxContextMenuView.java
  23. 77 4
      ComPDFKit_Tools/src/main/java/com/compdfkit/tools/common/pdf/CPDFApplyConfigUtil.java
  24. 11 0
      ComPDFKit_Tools/src/main/java/com/compdfkit/tools/common/pdf/CPDFConfigurationUtils.java
  25. 12 6
      ComPDFKit_Tools/src/main/java/com/compdfkit/tools/common/pdf/CPDFDocumentActivity.java
  26. 27 20
      ComPDFKit_Tools/src/main/java/com/compdfkit/tools/common/pdf/CPDFDocumentFragment.java
  27. 2 0
      ComPDFKit_Tools/src/main/java/com/compdfkit/tools/common/pdf/config/CPDFConfiguration.java
  28. 29 0
      ComPDFKit_Tools/src/main/java/com/compdfkit/tools/common/pdf/config/GlobalConfig.java
  29. 2 1
      ComPDFKit_Tools/src/main/java/com/compdfkit/tools/common/pdf/config/ModeConfig.java
  30. 2 0
      ComPDFKit_Tools/src/main/java/com/compdfkit/tools/common/utils/annotation/CPDFAnnotationManager.java
  31. 9 3
      ComPDFKit_Tools/src/main/java/com/compdfkit/tools/common/utils/dialog/CAlertDialog.java
  32. 8 6
      ComPDFKit_Tools/src/main/java/com/compdfkit/tools/common/utils/dialog/CEditDialog.java
  33. 5 1
      ComPDFKit_Tools/src/main/java/com/compdfkit/tools/common/utils/dialog/CGotoPageDialog.java
  34. 15 1
      ComPDFKit_Tools/src/main/java/com/compdfkit/tools/common/utils/dialog/CLoadingDialog.java
  35. 10 1
      ComPDFKit_Tools/src/main/java/com/compdfkit/tools/common/utils/image/CImageUtil.java
  36. 0 4
      ComPDFKit_Tools/src/main/java/com/compdfkit/tools/common/utils/view/colorpicker/widget/ColorAlphaSliderView.java
  37. 0 1
      ComPDFKit_Tools/src/main/java/com/compdfkit/tools/common/utils/view/colorpicker/widget/ColorRectSelector.java
  38. 47 2
      ComPDFKit_Tools/src/main/java/com/compdfkit/tools/common/utils/viewutils/CViewUtils.java
  39. 1 14
      ComPDFKit_Tools/src/main/java/com/compdfkit/tools/common/utils/window/CBasePopupWindow.java
  40. 8 1
      ComPDFKit_Tools/src/main/java/com/compdfkit/tools/common/utils/window/CModeSwitchDialogFragment.java
  41. 5 0
      ComPDFKit_Tools/src/main/java/com/compdfkit/tools/common/views/CVerifyPasswordDialogFragment.java
  42. 0 5
      ComPDFKit_Tools/src/main/java/com/compdfkit/tools/common/views/pdfbota/CPDFBotaDialogFragment.java
  43. 2 2
      ComPDFKit_Tools/src/main/java/com/compdfkit/tools/common/views/pdfproperties/CPropertiesSwitchView.java
  44. 3 1
      ComPDFKit_Tools/src/main/java/com/compdfkit/tools/common/views/pdfproperties/colorlist/ColorListAdapter.java
  45. 1 1
      ComPDFKit_Tools/src/main/java/com/compdfkit/tools/common/views/pdfproperties/font/CFontSpinnerAdapter.java
  46. 1 1
      ComPDFKit_Tools/src/main/java/com/compdfkit/tools/common/views/pdfproperties/pdfstyle/CStyleDialogFragment.java
  47. 17 4
      ComPDFKit_Tools/src/main/java/com/compdfkit/tools/common/views/pdfproperties/pdfstyle/CStyleUIParams.java
  48. 14 14
      ComPDFKit_Tools/src/main/java/com/compdfkit/tools/common/views/pdfproperties/pdfstyle/manager/provider/CGlobalStyleProvider.java
  49. 0 3
      ComPDFKit_Tools/src/main/java/com/compdfkit/tools/common/views/pdfproperties/pdfstyle/manager/provider/CStyleProvider.java
  50. 2 1
      ComPDFKit_Tools/src/main/java/com/compdfkit/tools/common/views/pdfproperties/preview/CAnnotLineTypePreviewView.java
  51. 6 1
      ComPDFKit_Tools/src/main/java/com/compdfkit/tools/common/views/pdfview/CPDFSlideBar.java
  52. 9 9
      ComPDFKit_Tools/src/main/java/com/compdfkit/tools/docseditor/pdfpageedit/CPDFPageEditDialogFragment.java
  53. 6 10
      ComPDFKit_Tools/src/main/java/com/compdfkit/tools/docseditor/pdfpageeditinsert/CInsertBlankPageDialogFragment.java
  54. 9 13
      ComPDFKit_Tools/src/main/java/com/compdfkit/tools/docseditor/pdfpageeditinsert/CInsertPdfPageDialogFragment.java
  55. 10 3
      ComPDFKit_Tools/src/main/java/com/compdfkit/tools/forms/pdfformbar/adapter/CPDFFormToolListAdapter.java
  56. 1 1
      ComPDFKit_Tools/src/main/java/com/compdfkit/tools/forms/pdfproperties/option/select/CFormOptionSelectDialogFragment.java
  57. 1 1
      ComPDFKit_Tools/src/main/java/com/compdfkit/tools/forms/pdfproperties/pdfsign/CustomSignatureWidgetImpl.java
  58. 1 1
      ComPDFKit_Tools/src/main/java/com/compdfkit/tools/forms/pdfproperties/pdfsign/SignatureWidgetImpl.java
  59. 14 7
      ComPDFKit_Tools/src/main/java/com/compdfkit/tools/security/encryption/CDocumentEncryptionDialog.java
  60. 2 4
      ComPDFKit_Tools/src/main/java/com/compdfkit/tools/security/encryption/CInputOwnerPwdDialog.java
  61. 8 5
      ComPDFKit_Tools/src/main/java/com/compdfkit/tools/security/watermark/CWatermarkEditDialog.java
  62. 2 2
      ComPDFKit_Tools/src/main/java/com/compdfkit/tools/security/watermark/pdfproperties/CWatermarkImageStyleFragment.java
  63. 2 2
      ComPDFKit_Tools/src/main/java/com/compdfkit/tools/security/watermark/pdfproperties/CWatermarkTextStyleFragment.java
  64. 2 0
      ComPDFKit_Tools/src/main/java/com/compdfkit/tools/security/watermark/view/CWatermarkView.java
  65. 1 1
      ComPDFKit_Tools/src/main/java/com/compdfkit/tools/signature/importcert/create/CImportCertificateDigitalDialog.java
  66. 7 3
      ComPDFKit_Tools/src/main/java/com/compdfkit/tools/signature/importcert/create/CPDFSelectDigitalSignatureDialog.java
  67. 5 3
      ComPDFKit_Tools/src/main/java/com/compdfkit/tools/signature/importcert/create/CSelectSignTypeDialog.java
  68. 2 1
      ComPDFKit_Tools/src/main/java/com/compdfkit/tools/signature/importcert/create/CreateCertificateDigitalDialog.java
  69. 1 1
      ComPDFKit_Tools/src/main/java/com/compdfkit/tools/signature/info/CertDetailsDialog.java
  70. 5 1
      ComPDFKit_Tools/src/main/java/com/compdfkit/tools/signature/info/CertDetailsListAdapter.java
  71. 0 5
      ComPDFKit_Tools/src/main/java/com/compdfkit/tools/signature/info/CertDigitalSignAttributesDialog.java
  72. 2 1
      ComPDFKit_Tools/src/main/java/com/compdfkit/tools/signature/info/CertDigitalSignInfoDialog.java
  73. 0 5
      ComPDFKit_Tools/src/main/java/com/compdfkit/tools/signature/info/signlist/CPDFCertDigitalSignListDialog.java
  74. 13 7
      ComPDFKit_Tools/src/main/java/com/compdfkit/tools/signature/pdfproperties/pdfsign/CDigitalSignStylePreviewView.java
  75. 22 22
      ComPDFKit_Tools/src/main/java/com/compdfkit/tools/signature/preview/CDigitalSignStylePreviewDialog.java
  76. 23 4
      ComPDFKit_Tools/src/main/java/com/compdfkit/tools/viewer/pdfdisplaysettings/CPDFDisplaySettingDialogFragment.java
  77. 6 0
      ComPDFKit_Tools/src/main/java/com/compdfkit/tools/viewer/pdfinfo/CPDFDocumentInfoDialogFragment.java
  78. 3 2
      ComPDFKit_Tools/src/main/java/com/compdfkit/tools/viewer/pdfoutline/adapter/COutlineListAdapter.java
  79. 6 2
      ComPDFKit_Tools/src/main/java/com/compdfkit/tools/viewer/pdfsearch/CSearchReplaceResultDailogFragment.java
  80. 1 1
      ComPDFKit_Tools/src/main/java/com/compdfkit/tools/viewer/pdfsearch/CSearchReplaceToolbar.java
  81. 2 1
      ComPDFKit_Tools/src/main/java/com/compdfkit/tools/viewer/pdfsearch/CSearchSettingsDialog.java
  82. 4 4
      ComPDFKit_Tools/src/main/java/com/compdfkit/tools/viewer/pdfthumbnail/CPDFEditThumbnailFragment.java
  83. 0 5
      ComPDFKit_Tools/src/main/res/color/tools_annotation_format_align_color.xml
  84. 3 4
      ComPDFKit_Tools/src/main/res/color/tools_annotation_iv_status_color.xml
  85. 2 2
      ComPDFKit_Tools/src/main/res/color/tools_font_style_iv_color.xml
  86. 2 2
      ComPDFKit_Tools/src/main/res/color/tools_icon_status_color.xml
  87. 3 3
      ComPDFKit_Tools/src/main/res/color/tools_normal_btn_text_color.xml
  88. 1 1
      ComPDFKit_Tools/src/main/res/color/tools_radio_btn_text_status_color.xml
  89. 2 2
      ComPDFKit_Tools/src/main/res/color/tools_signature_iv_status_color.xml
  90. 0 5
      ComPDFKit_Tools/src/main/res/color/tools_tab_text_color.xml
  91. 0 10
      ComPDFKit_Tools/src/main/res/drawable-night/tools_annotation.xml
  92. 0 10
      ComPDFKit_Tools/src/main/res/drawable-night/tools_edit.xml
  93. 0 19
      ComPDFKit_Tools/src/main/res/drawable-night/tools_form.xml
  94. 0 15
      ComPDFKit_Tools/src/main/res/drawable-night/tools_ic_annotation_highlight_default_bg.xml
  95. 0 9
      ComPDFKit_Tools/src/main/res/drawable-night/tools_ic_back.xml
  96. 0 10
      ComPDFKit_Tools/src/main/res/drawable-night/tools_ic_close.xml
  97. 0 10
      ComPDFKit_Tools/src/main/res/drawable-night/tools_ic_digital_signature.xml
  98. 0 11
      ComPDFKit_Tools/src/main/res/drawable-night/tools_ic_pageedit_arrow_right.xml
  99. 0 16
      ComPDFKit_Tools/src/main/res/drawable-night/tools_ic_preview_settings.xml
  100. 0 0
      ComPDFKit_Tools/src/main/res/drawable-night/tools_ic_search.xml

+ 0 - 1
ComPDFKit_Tools/build.gradle

@@ -24,7 +24,6 @@ android {
 
         consumerProguardFiles "proguard-rules.pro"
         setProperty("archivesBaseName", "ComPDFKit_Tools")
-
     }
 
     buildTypes {

+ 5 - 4
ComPDFKit_Tools/src/main/AndroidManifest.xml

@@ -1,5 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
-<manifest xmlns:android="http://schemas.android.com/apk/res/android">
+<manifest xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:tools="http://schemas.android.com/tools">
 
     <uses-permission android:name="android.permission.RECORD_AUDIO" />
     <uses-permission android:name="android.permission.CAMERA" />
@@ -19,12 +20,12 @@
         <activity
             android:name=".annotation.pdfproperties.pdfsignature.CAddSignatureActivity"
             android:exported="false"
-            android:theme="@style/Tools_Base_Theme" />
+            android:theme="@style/ComPDFKit.Theme.Dark" />
 
         <activity
             android:name=".annotation.pdfproperties.pdfstamp.CAddCustomStampActivity"
             android:exported="false"
-            android:theme="@style/Tools_Base_Theme" />
+            android:theme="@style/ComPDFKit.Theme.Dark" />
 
         <service
             android:name=".common.utils.voice.CMediaPlayService"
@@ -35,7 +36,7 @@
             android:name=".common.pdf.CPDFDocumentActivity"
             android:configChanges="keyboardHidden|orientation|screenSize"
             android:exported="true"
-            android:theme="@style/Tools_Base_Theme"
+            android:theme="@style/LaunchTheme"
             android:windowSoftInputMode="adjustPan">
 <!--            <intent-filter tools:ignore="AppLinkUrlError"-->
 <!--                android:scheme="http">-->

+ 4 - 0
ComPDFKit_Tools/src/main/assets/tools_default_configuration.json

@@ -1,6 +1,7 @@
 {
   "modeConfig": {
     "initialViewMode": "viewer",
+    "readerOnly": false,
     "availableViewModes": [
       "viewer",
       "annotations",
@@ -254,5 +255,8 @@
     "pageSpacing": 10,
     "pageScale": 1.0,
     "pageSameWidth": true
+  },
+  "global" : {
+    "themeMode" : "system"
   }
 }

+ 1 - 1
ComPDFKit_Tools/src/main/java/com/compdfkit/tools/annotation/pdfannotationbar/CAnnotationToolbar.java

@@ -129,7 +129,7 @@ public class CAnnotationToolbar extends FrameLayout {
         CStyleManager styleManager = new CStyleManager(pdfView);
         CStyleType styleType = toolListAdapter.getCurrentAnnotType().getStyleType();
         CAnnotStyle style = styleManager.getStyle(styleType);
-        CStyleUIParams styleUiParams = CStyleUIParams.defaultStyle(styleType);
+        CStyleUIParams styleUiParams = CStyleUIParams.defaultStyle(getContext(), styleType);
         CStyleDialogFragment dialogFragment = CStyleDialogFragment.newInstance(style);
         dialogFragment.setStyleUiConfig(styleUiParams);
         styleManager.setAnnotStyleFragmentListener(dialogFragment);

+ 14 - 4
ComPDFKit_Tools/src/main/java/com/compdfkit/tools/annotation/pdfannotationbar/adapter/CPDFAnnotationToolListAdapter.java

@@ -23,7 +23,9 @@ import com.compdfkit.tools.R;
 import com.compdfkit.tools.annotation.pdfannotationbar.bean.CAnnotToolBean;
 import com.compdfkit.tools.common.utils.adapter.CBaseQuickAdapter;
 import com.compdfkit.tools.common.utils.adapter.CBaseQuickViewHolder;
+import com.compdfkit.tools.common.utils.viewutils.CViewUtils;
 import com.compdfkit.tools.common.views.pdfproperties.CAnnotationType;
+import com.google.android.material.color.MaterialColors;
 
 import java.util.List;
 
@@ -39,9 +41,14 @@ public class CPDFAnnotationToolListAdapter extends CBaseQuickAdapter<CAnnotToolB
 
     @Override
     protected void onBindViewHolder(CBaseQuickViewHolder holder, int position, CAnnotToolBean item) {
-        holder.setImageResource(R.id.iv_annot_type, item.getIconResId());
+        int isLightTheme = CViewUtils.getThemeAttrData(holder.itemView.getContext().getTheme(), R.attr.isLightTheme);
+        boolean isDarkTheme = isLightTheme == 0;
+        holder.setImageResource(R.id.iv_annot_type, isDarkTheme && item.getIconDarkResId() != 0 ? item.getIconDarkResId() : item.getIconResId());
         CardView cardView = holder.getView(R.id.card_view);
-        cardView.setCardBackgroundColor(ContextCompat.getColor(holder.itemView.getContext(), item.isSelect() ? R.color.tools_annot_list_item_select_bg_color : R.color.tools_color_primary));
+        int selectColor = ContextCompat.getColor(holder.itemView.getContext(), R.color.tools_annot_list_item_select_bg_color);
+        int normalColor = MaterialColors.getColor(holder.itemView.getContext(), android.R.attr.colorPrimary,
+                ContextCompat.getColor(holder.itemView.getContext(), R.color.tools_color_primary));
+        cardView.setCardBackgroundColor(item.isSelect() ? selectColor : normalColor);
         refreshAnnotColor(holder, item);
         holder.setItemHorizontalMargin(list, 16, 0, 16);
     }
@@ -54,7 +61,10 @@ public class CPDFAnnotationToolListAdapter extends CBaseQuickAdapter<CAnnotToolB
             for (Object payload : payloads) {
                 if (payload == REFRESH_ITEM) {
                     CardView cardView = holder.getView(R.id.card_view);
-                    cardView.setCardBackgroundColor(ContextCompat.getColor(holder.itemView.getContext(), item.isSelect() ? R.color.tools_annot_list_item_select_bg_color : R.color.tools_color_primary));
+                    int selectColor = ContextCompat.getColor(holder.itemView.getContext(), R.color.tools_annot_list_item_select_bg_color);
+                    int normalColor = MaterialColors.getColor(holder.itemView.getContext(), android.R.attr.colorPrimary,
+                            ContextCompat.getColor(holder.itemView.getContext(), R.color.tools_color_primary));
+                    cardView.setCardBackgroundColor(item.isSelect() ? selectColor : normalColor);
                     refreshAnnotColor(holder, item);
                 }
             }
@@ -88,7 +98,7 @@ public class CPDFAnnotationToolListAdapter extends CBaseQuickAdapter<CAnnotToolB
                 if (item.isSelect()) {
                     holder.setImageTintList(R.id.iv_annot_type, ColorStateList.valueOf(ContextCompat.getColor(context, R.color.tools_annot_icon_select_color)));
                 } else {
-                    holder.setImageTintList(R.id.iv_annot_type, ColorStateList.valueOf(ContextCompat.getColor(context, R.color.tools_text_color_primary)));
+                    holder.setImageTintList(R.id.iv_annot_type, ColorStateList.valueOf(MaterialColors.getColor(context, R.attr.colorOnPrimary, ContextCompat.getColor(context, R.color.tools_text_color_primary))));
                 }
                 break;
         }

+ 19 - 0
ComPDFKit_Tools/src/main/java/com/compdfkit/tools/annotation/pdfannotationbar/bean/CAnnotToolBean.java

@@ -23,6 +23,9 @@ public class CAnnotToolBean {
     @DrawableRes
     private int iconResId;
 
+    @DrawableRes
+    private int iconDarkResId;
+
     private boolean select;
 
     private int bgColor = Color.TRANSPARENT;
@@ -41,6 +44,14 @@ public class CAnnotToolBean {
         this.colorOpacity = colorOpacity;
     }
 
+    public CAnnotToolBean(CAnnotationType type, @DrawableRes int iconResId,@DrawableRes int iconDarkResId, int bgColor, int colorOpacity){
+        this.type = type;
+        this.iconResId = iconResId;
+        this.bgColor = bgColor;
+        this.colorOpacity = colorOpacity;
+        this.iconDarkResId = iconDarkResId;
+    }
+
     public CAnnotationType getType() {
         return type;
     }
@@ -53,6 +64,14 @@ public class CAnnotToolBean {
         return iconResId;
     }
 
+    public void setIconDarkResId(int iconDarkResId) {
+        this.iconDarkResId = iconDarkResId;
+    }
+
+    public int getIconDarkResId() {
+        return iconDarkResId;
+    }
+
     public void setIconResId(int iconResId) {
         this.iconResId = iconResId;
     }

+ 10 - 5
ComPDFKit_Tools/src/main/java/com/compdfkit/tools/annotation/pdfannotationbar/data/CAnnotationToolDatas.java

@@ -22,19 +22,24 @@ public class CAnnotationToolDatas {
         list.add(new CAnnotToolBean(CAnnotationType.TEXT, R.drawable.tools_ic_annotation_note, noteStyle.getColor(), noteStyle.getOpacity()));
 
         CAnnotStyle highStyle = styleManager.getStyle(CStyleType.ANNOT_HIGHLIGHT);
-        list.add(new CAnnotToolBean(CAnnotationType.HIGHLIGHT, R.drawable.tools_ic_annotation_highlight, highStyle.getColor(), highStyle.getOpacity()));
+        list.add(new CAnnotToolBean(CAnnotationType.HIGHLIGHT, R.drawable.tools_ic_annotation_highlight,
+                R.drawable.tools_ic_annotation_highlight_dark, highStyle.getColor(), highStyle.getOpacity()));
 
         CAnnotStyle underLineStyle = styleManager.getStyle(CStyleType.ANNOT_UNDERLINE);
-        list.add(new CAnnotToolBean(CAnnotationType.UNDERLINE, R.drawable.tools_ic_annotation_underline, underLineStyle.getColor(), underLineStyle.getOpacity()));
+        list.add(new CAnnotToolBean(CAnnotationType.UNDERLINE, R.drawable.tools_ic_annotation_underline,
+                R.drawable.tools_ic_annotation_underline_dark,  underLineStyle.getColor(), underLineStyle.getOpacity()));
 
         CAnnotStyle strikeoutStyle = styleManager.getStyle(CStyleType.ANNOT_STRIKEOUT);
-        list.add(new CAnnotToolBean(CAnnotationType.STRIKEOUT, R.drawable.tools_ic_annotation_strikeout, strikeoutStyle.getColor(), strikeoutStyle.getOpacity()));
+        list.add(new CAnnotToolBean(CAnnotationType.STRIKEOUT, R.drawable.tools_ic_annotation_strikeout,
+                R.drawable.tools_ic_annotation_strikeout_dark, strikeoutStyle.getColor(), strikeoutStyle.getOpacity()));
 
         CAnnotStyle squigglyStyle = styleManager.getStyle(CStyleType.ANNOT_SQUIGGLY);
-        list.add(new CAnnotToolBean(CAnnotationType.SQUIGGLY, R.drawable.tools_ic_annotation_squiggly, squigglyStyle.getColor(), squigglyStyle.getOpacity()));
+        list.add(new CAnnotToolBean(CAnnotationType.SQUIGGLY, R.drawable.tools_ic_annotation_squiggly,
+                R.drawable.tools_ic_annotation_squiggly_dark, squigglyStyle.getColor(), squigglyStyle.getOpacity()));
 
         CAnnotStyle inkStyle = styleManager.getStyle(CStyleType.ANNOT_INK);
-        list.add(new CAnnotToolBean(CAnnotationType.INK, R.drawable.tools_ic_annotation_ink, inkStyle.getColor(), inkStyle.getOpacity()));
+        list.add(new CAnnotToolBean(CAnnotationType.INK, R.drawable.tools_ic_annotation_ink,
+                R.drawable.tools_ic_annotation_ink_dark, inkStyle.getColor(), inkStyle.getOpacity()));
 
         list.add(new CAnnotToolBean(CAnnotationType.CIRCLE, R.drawable.tools_ic_annotation_shape_circular));
         list.add(new CAnnotToolBean(CAnnotationType.SQUARE, R.drawable.tools_ic_annotation_shape_rectangle));

+ 35 - 6
ComPDFKit_Tools/src/main/java/com/compdfkit/tools/annotation/pdfannotationlist/adapter/CPDFAnnotListAdapter.java

@@ -22,6 +22,8 @@ import com.compdfkit.tools.R;
 import com.compdfkit.tools.annotation.pdfannotationlist.bean.CPDFAnnotListItem;
 import com.compdfkit.tools.common.utils.adapter.CBaseQuickAdapter;
 import com.compdfkit.tools.common.utils.adapter.CBaseQuickViewHolder;
+import com.compdfkit.tools.common.utils.viewutils.CViewUtils;
+import com.google.android.material.color.MaterialColors;
 
 import java.util.HashMap;
 
@@ -33,21 +35,37 @@ public class CPDFAnnotListAdapter  extends CBaseQuickAdapter<CPDFAnnotListItem,
     private static final int ITEM_CONTENT = 2;
 
     private static final HashMap<CPDFAnnotation.Type, Integer> ICON_RES_IDS = new HashMap<>();
+    private static final HashMap<CPDFAnnotation.Type, Integer> ICON_RES_IDS_DARK = new HashMap<>();
 
     static {
         ICON_RES_IDS.put(CPDFAnnotation.Type.TEXT, R.drawable.tools_ic_annotation_note);
-        ICON_RES_IDS.put(CPDFAnnotation.Type.HIGHLIGHT, R.drawable.tools_ic_annotation_highlight_default_bg);
-        ICON_RES_IDS.put(CPDFAnnotation.Type.UNDERLINE, R.drawable.tools_ic_annotation_underline_default_bg);
-        ICON_RES_IDS.put(CPDFAnnotation.Type.SQUIGGLY, R.drawable.tools_ic_annotation_squiggly_default_bg);
-        ICON_RES_IDS.put(CPDFAnnotation.Type.STRIKEOUT, R.drawable.tools_ic_annotation_strikeout_default_bg);
+        ICON_RES_IDS.put(CPDFAnnotation.Type.HIGHLIGHT, R.drawable.tools_ic_annotation_highlight_normal);
+        ICON_RES_IDS.put(CPDFAnnotation.Type.UNDERLINE, R.drawable.tools_ic_annotation_underline_normal);
+        ICON_RES_IDS.put(CPDFAnnotation.Type.SQUIGGLY, R.drawable.tools_ic_annotation_squiggly_normal);
+        ICON_RES_IDS.put(CPDFAnnotation.Type.STRIKEOUT, R.drawable.tools_ic_annotation_strikeout_normal);
         ICON_RES_IDS.put(CPDFAnnotation.Type.FREETEXT, R.drawable.tools_ic_annotation_freetext);
-        ICON_RES_IDS.put(CPDFAnnotation.Type.INK, R.drawable.tools_ic_annotation_ink_default_bg);
+        ICON_RES_IDS.put(CPDFAnnotation.Type.INK, R.drawable.tools_ic_annotation_ink_normal);
         ICON_RES_IDS.put(CPDFAnnotation.Type.LINE, R.drawable.tools_ic_annotation_shape_line);
         ICON_RES_IDS.put(CPDFAnnotation.Type.SQUARE, R.drawable.tools_ic_annotation_shape_rectangle);
         ICON_RES_IDS.put(CPDFAnnotation.Type.CIRCLE, R.drawable.tools_ic_annotation_shape_circular);
         ICON_RES_IDS.put(CPDFAnnotation.Type.STAMP, R.drawable.tools_ic_annotation_stamp);
         ICON_RES_IDS.put(CPDFAnnotation.Type.LINK, R.drawable.tools_ic_annotation_link);
         ICON_RES_IDS.put(CPDFAnnotation.Type.SOUND, R.drawable.tools_ic_annotation_sound);
+
+
+        ICON_RES_IDS_DARK.put(CPDFAnnotation.Type.TEXT, R.drawable.tools_ic_annotation_note);
+        ICON_RES_IDS_DARK.put(CPDFAnnotation.Type.HIGHLIGHT, R.drawable.tools_ic_annotation_highlight_normal_dark_1);
+        ICON_RES_IDS_DARK.put(CPDFAnnotation.Type.UNDERLINE, R.drawable.tools_ic_annotation_underline_normal_dark_1);
+        ICON_RES_IDS_DARK.put(CPDFAnnotation.Type.SQUIGGLY, R.drawable.tools_ic_annotation_squiggly_normal_dark_1);
+        ICON_RES_IDS_DARK.put(CPDFAnnotation.Type.STRIKEOUT, R.drawable.tools_ic_annotation_strikeout_normal_dark_1);
+        ICON_RES_IDS_DARK.put(CPDFAnnotation.Type.FREETEXT, R.drawable.tools_ic_annotation_freetext);
+        ICON_RES_IDS_DARK.put(CPDFAnnotation.Type.INK, R.drawable.tools_ic_annotation_ink_normal_dark_1);
+        ICON_RES_IDS_DARK.put(CPDFAnnotation.Type.LINE, R.drawable.tools_ic_annotation_shape_line);
+        ICON_RES_IDS_DARK.put(CPDFAnnotation.Type.SQUARE, R.drawable.tools_ic_annotation_shape_rectangle);
+        ICON_RES_IDS_DARK.put(CPDFAnnotation.Type.CIRCLE, R.drawable.tools_ic_annotation_shape_circular);
+        ICON_RES_IDS_DARK.put(CPDFAnnotation.Type.STAMP, R.drawable.tools_ic_annotation_stamp);
+        ICON_RES_IDS_DARK.put(CPDFAnnotation.Type.LINK, R.drawable.tools_ic_annotation_link);
+        ICON_RES_IDS_DARK.put(CPDFAnnotation.Type.SOUND, R.drawable.tools_ic_annotation_sound);
     }
 
 
@@ -66,7 +84,12 @@ public class CPDFAnnotListAdapter  extends CBaseQuickAdapter<CPDFAnnotListItem,
             holder.setText(R.id.id_item_annot_head_page, String.valueOf(item.getPage() + 1));
             holder.setText(R.id.id_item_annot_count, String.valueOf(item.getAnnotationCount()));
         }else {
+            int isLightThemeValue = CViewUtils.getThemeAttrData(holder.itemView.getContext().getTheme(), R.attr.isLightTheme);
+            boolean isDarkTheme = isLightThemeValue == 0;
             Integer annotIcon = ICON_RES_IDS.get(item.getAnnotType());
+            if (isDarkTheme){
+                annotIcon = ICON_RES_IDS_DARK.get(item.getAnnotType());
+            }
             if (annotIcon != null) {
                 if (item.getAnnotType() == CPDFAnnotation.Type.LINE){
                     if (item.isArrowLine()){
@@ -97,8 +120,14 @@ public class CPDFAnnotListAdapter  extends CBaseQuickAdapter<CPDFAnnotListItem,
                 case FREETEXT:
                 case STAMP:
                 case SOUND:
+                    Context context = holder.itemView.getContext();
                     holder.setBackgroundColor(R.id.view_icon_bg, 0);
-                    holder.setImageTintList(R.id.iv_annot_icon, ColorStateList.valueOf(ContextCompat.getColor(holder.itemView.getContext(), R.color.tools_text_color_primary)));
+                    holder.setImageTintList(R.id.iv_annot_icon,
+                            ColorStateList.valueOf(MaterialColors.getColor(
+                                    context, android.R.attr.textColorPrimary,
+                                    ContextCompat.getColor(
+                                            context, R.color.tools_text_color_primary
+                                    ))));
                     break;
                 default:
                     holder.setBackgroundColor(R.id.view_icon_bg, 0);

+ 3 - 1
ComPDFKit_Tools/src/main/java/com/compdfkit/tools/annotation/pdfproperties/pdfshape/adapter/CLineTypeListAdapter.java

@@ -21,6 +21,7 @@ import com.compdfkit.tools.R;
 import com.compdfkit.tools.common.utils.adapter.CBaseQuickAdapter;
 import com.compdfkit.tools.common.utils.adapter.CBaseQuickViewHolder;
 import com.compdfkit.tools.common.views.pdfproperties.preview.CAnnotLineTypePreviewView;
+import com.google.android.material.color.MaterialColors;
 
 import java.util.ArrayList;
 
@@ -61,7 +62,8 @@ public class CLineTypeListAdapter extends CBaseQuickAdapter<CPDFLineAnnotation.L
         if (item == selectLineType){
             previewView.setBorderColor(ContextCompat.getColor(holder.itemView.getContext(), R.color.tools_annot_icon_select_color));
         }else {
-            previewView.setBorderColor(ContextCompat.getColor(holder.itemView.getContext(), R.color.tools_text_color_primary));
+            previewView.setBorderColor(MaterialColors.getColor(holder.itemView.getContext(), R.attr.colorOnPrimary,
+                    ContextCompat.getColor(holder.itemView.getContext(), R.color.tools_on_primary)));
         }
     }
 

+ 6 - 4
ComPDFKit_Tools/src/main/java/com/compdfkit/tools/annotation/pdfproperties/pdfsignature/CAddSignatureActivity.java

@@ -34,6 +34,7 @@ import com.compdfkit.tools.R;
 import com.compdfkit.tools.annotation.pdfproperties.pdfsignature.data.CSignatureDatas;
 import com.compdfkit.tools.common.utils.dialog.CImportImageDialogFragment;
 import com.compdfkit.tools.common.utils.image.CBitmapUtil;
+import com.compdfkit.tools.common.utils.image.CImageUtil;
 import com.compdfkit.tools.common.utils.threadpools.CThreadPoolUtils;
 import com.compdfkit.tools.common.utils.view.colorpicker.ColorPickerDialogFragment;
 import com.compdfkit.tools.common.utils.viewutils.CViewUtils;
@@ -54,6 +55,8 @@ public class CAddSignatureActivity extends AppCompatActivity implements View.OnC
 
     public static final String EXTRA_HIDE_TYPEFACE = "extra_hide_typeface";
 
+    public static final String EXTRA_THEME_ID = "extra_theme_id";
+
     public static final String RESULT_NONE = "result_none";
 
     private AppCompatImageView ivAddDrawSignature;
@@ -95,6 +98,8 @@ public class CAddSignatureActivity extends AppCompatActivity implements View.OnC
     @Override
     protected void onCreate(@Nullable Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
+        int themeId = getIntent().getIntExtra(EXTRA_THEME_ID, R.style.ComPDFKit_Theme_Light);
+        setTheme(themeId);
         int screenOrientation = getIntent().getIntExtra(EXTRA_SCREEN_ORIENTATION, ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
         setRequestedOrientation(screenOrientation);
         setContentView(R.layout.tools_properties_signature_style_add_activity);
@@ -299,10 +304,7 @@ public class CAddSignatureActivity extends AppCompatActivity implements View.OnC
                 savePath = CSignatureDatas.saveSignatureBitmap(this, resultBitmap);
             } else if (ivAddTextSignature.isSelected()) {
                 if (editText.getText() != null && editText.getText().length() > 0) {
-                    editText.setDrawingCacheQuality(View.DRAWING_CACHE_QUALITY_HIGH);
-                    editText.buildDrawingCache();
-                    Bitmap bitmap = Bitmap.createBitmap(editText.getDrawingCache());
-                    Bitmap resultBitmap = CBitmapUtil.cropTransparent(bitmap);
+                    Bitmap resultBitmap = CImageUtil.getViewBitmap(editText);
                     savePath = CSignatureDatas.saveSignatureBitmap(this, resultBitmap);
                 } else {
                     savePath = null;

+ 2 - 0
ComPDFKit_Tools/src/main/java/com/compdfkit/tools/annotation/pdfproperties/pdfsignature/CSignatureStyleFragment.java

@@ -28,6 +28,7 @@ import androidx.recyclerview.widget.RecyclerView;
 import com.compdfkit.tools.R;
 import com.compdfkit.tools.annotation.pdfproperties.pdfsignature.adapter.CSignatureListAdapter;
 import com.compdfkit.tools.annotation.pdfproperties.pdfsignature.data.CSignatureDatas;
+import com.compdfkit.tools.common.pdf.CPDFApplyConfigUtil;
 import com.compdfkit.tools.common.utils.dialog.CAlertDialog;
 import com.compdfkit.tools.common.utils.viewutils.CViewUtils;
 import com.compdfkit.tools.common.views.pdfproperties.basic.CBasicPropertiesFragment;
@@ -67,6 +68,7 @@ public class CSignatureStyleFragment extends CBasicPropertiesFragment {
         fabAddSignature.setOnClickListener(v -> {
             Intent intent = new Intent(getContext(), CAddSignatureActivity.class);
             intent.putExtra(CAddSignatureActivity.EXTRA_SCREEN_ORIENTATION, CViewUtils.isLandScape(getContext())?ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE : ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
+            intent.putExtra(CAddSignatureActivity.EXTRA_THEME_ID, CPDFApplyConfigUtil.getInstance().getThemeId());
             addSignatureLauncher.launch(intent);
         });
         signatureListAdapter = new CSignatureListAdapter();

+ 5 - 3
ComPDFKit_Tools/src/main/java/com/compdfkit/tools/annotation/pdfproperties/pdfstamp/CAddCustomStampActivity.java

@@ -17,6 +17,7 @@ import android.text.Editable;
 import android.text.TextUtils;
 import android.text.TextWatcher;
 import android.view.View;
+import android.widget.Switch;
 
 import androidx.annotation.NonNull;
 import androidx.annotation.Nullable;
@@ -24,12 +25,12 @@ import androidx.appcompat.app.AppCompatActivity;
 import androidx.appcompat.widget.AppCompatButton;
 import androidx.appcompat.widget.AppCompatEditText;
 import androidx.appcompat.widget.AppCompatImageView;
-import androidx.appcompat.widget.SwitchCompat;
 
 import com.compdfkit.core.annotation.CPDFStampAnnotation;
 import com.compdfkit.tools.R;
 import com.compdfkit.tools.annotation.pdfproperties.pdfstamp.bean.CTextStampBean;
 import com.compdfkit.tools.annotation.pdfproperties.pdfstamp.data.CStampDatas;
+import com.compdfkit.tools.common.pdf.CPDFApplyConfigUtil;
 import com.compdfkit.tools.common.views.CToolBar;
 import com.compdfkit.tools.common.views.pdfproperties.colorlist.ColorListView;
 import com.compdfkit.tools.common.views.pdfproperties.stamp.CPDFStampTextView;
@@ -57,9 +58,9 @@ public class CAddCustomStampActivity extends AppCompatActivity implements View.O
 
     private ColorListView colorListView;
 
-    private SwitchCompat swDate;
+    private Switch swDate;
 
-    private SwitchCompat swTime;
+    private Switch swTime;
 
     private AppCompatButton btnSave;
 
@@ -68,6 +69,7 @@ public class CAddCustomStampActivity extends AppCompatActivity implements View.O
     @Override
     protected void onCreate(@Nullable Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
+        setTheme(CPDFApplyConfigUtil.getInstance().getThemeId());
         setContentView(R.layout.tools_properties_stamp_style_add_custom_activity);
         cToolBar = findViewById(R.id.tool_bar);
         stampTextView = findViewById(R.id.stamp_text_view);

+ 2 - 1
ComPDFKit_Tools/src/main/java/com/compdfkit/tools/annotation/pdfproperties/pdfstamp/CAddStampSwichDialogFragment.java

@@ -20,6 +20,7 @@ import androidx.interpolator.view.animation.LinearOutSlowInInterpolator;
 
 import com.compdfkit.tools.R;
 import com.compdfkit.tools.common.basic.fragment.CBasicBottomSheetDialogFragment;
+import com.compdfkit.tools.common.utils.viewutils.CViewUtils;
 import com.google.android.material.bottomsheet.BottomSheetBehavior;
 import com.google.android.material.floatingactionbutton.FloatingActionButton;
 
@@ -41,7 +42,7 @@ public class CAddStampSwichDialogFragment  extends CBasicBottomSheetDialogFragme
 
     @Override
     protected int getStyle() {
-        return R.style.Tools_Base_Theme_BasicBottomSheetDialogStyle_TopCorners;
+        return CViewUtils.getThemeAttrResourceId(getContext().getTheme(), R.attr.compdfkit_BottomSheetDialog_Transparent_Theme);
     }
 
     @Override

+ 2 - 0
ComPDFKit_Tools/src/main/java/com/compdfkit/tools/annotation/pdfproperties/pdfstamp/CStampStyleFragment.java

@@ -34,12 +34,14 @@ public class CStampStyleFragment extends CBasicPropertiesFragment {
     @Nullable
     @Override
     public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
+
         View rootView = inflater.inflate(R.layout.tools_properties_stamp_style_fragment, container, false);
         tabLayout = rootView.findViewById(R.id.tab_layout);
         viewPager2 = rootView.findViewById(R.id.view_pager);
         return rootView;
     }
 
+
     @Override
     public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
         super.onViewCreated(view, savedInstanceState);

+ 5 - 2
ComPDFKit_Tools/src/main/java/com/compdfkit/tools/common/basic/fragment/CBasicBottomSheetDialogFragment.java

@@ -31,7 +31,10 @@ public abstract class CBasicBottomSheetDialogFragment extends BottomSheetDialogF
     @Override
     public void onCreate(@Nullable Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
-        setStyle(STYLE_NORMAL, getStyle());
+        int styleId = getStyle();
+        if (styleId != 0){
+            setStyle(STYLE_NORMAL, getStyle());
+        }
     }
 
     @Override
@@ -66,7 +69,7 @@ public abstract class CBasicBottomSheetDialogFragment extends BottomSheetDialogF
     protected abstract @LayoutRes int layoutId();
 
     protected int getStyle(){
-        return R.style.Tools_Base_Theme_BasicBottomSheetDialogStyle;
+        return CViewUtils.getThemeAttrResourceId(getContext().getTheme(), R.attr.compdfkit_BottomSheetDialog_Theme);
     }
 
     protected boolean fullScreen(){

+ 0 - 40
ComPDFKit_Tools/src/main/java/com/compdfkit/tools/common/basic/fragment/CBasicPDFFragment.java

@@ -10,20 +10,15 @@
 package com.compdfkit.tools.common.basic.fragment;
 
 
-import android.graphics.Color;
 import android.net.Uri;
 
-import androidx.core.content.ContextCompat;
 import androidx.fragment.app.FragmentActivity;
 
-import com.compdfkit.core.annotation.CPDFBorderStyle;
-import com.compdfkit.core.annotation.CPDFLineAnnotation;
 import com.compdfkit.core.annotation.CPDFLinkAnnotation;
 import com.compdfkit.core.annotation.CPDFTextAnnotation;
 import com.compdfkit.core.annotation.form.CPDFComboboxWidget;
 import com.compdfkit.core.annotation.form.CPDFListboxWidget;
 import com.compdfkit.core.annotation.form.CPDFSignatureWidget;
-import com.compdfkit.core.annotation.form.CPDFWidget;
 import com.compdfkit.core.edit.CPDFEditPage;
 import com.compdfkit.tools.R;
 import com.compdfkit.tools.annotation.pdfproperties.pdflink.CLinkAnnotAttachHelper;
@@ -36,8 +31,6 @@ import com.compdfkit.tools.common.contextmenu.impl.CSearchReplaceContextMenuView
 import com.compdfkit.tools.common.contextmenu.impl.CSignatureContextMenuView;
 import com.compdfkit.tools.common.utils.CFileUtils;
 import com.compdfkit.tools.common.utils.dialog.CLoadingDialog;
-import com.compdfkit.tools.common.views.pdfproperties.pdfstyle.CStyleType;
-import com.compdfkit.tools.common.views.pdfproperties.pdfstyle.manager.CStyleManager;
 import com.compdfkit.tools.common.views.pdfview.CPDFViewCtrl;
 import com.compdfkit.tools.common.views.pdfview.CPreviewMode;
 import com.compdfkit.tools.docseditor.pdfpageedit.CPDFPageEditDialogFragment;
@@ -58,7 +51,6 @@ public class CBasicPDFFragment extends CPermissionFragment {
 
     protected String documentPath;
 
-
     protected void resetContextMenu(CPDFViewCtrl pdfView, CPreviewMode mode) {
         switch (mode) {
             case Viewer:
@@ -97,38 +89,6 @@ public class CBasicPDFFragment extends CPermissionFragment {
         }
     }
 
-    protected void initAnnotationAttr(CPDFViewCtrl pdfView) {
-        int defaultColor = ContextCompat.getColor(getContext(), R.color.tools_annotation_markup_default_color);
-        new CStyleManager.Builder()
-                .setNote(defaultColor, 255)
-                .setMarkup(CStyleType.ANNOT_HIGHLIGHT, defaultColor, 255)
-                .setMarkup(CStyleType.ANNOT_UNDERLINE, defaultColor, 255)
-                .setMarkup(CStyleType.ANNOT_SQUIGGLY, defaultColor, 255)
-                .setMarkup(CStyleType.ANNOT_STRIKEOUT, defaultColor, 255)
-                .setShape(CStyleType.ANNOT_SQUARE, defaultColor, 255, Color.TRANSPARENT, 0, 10, null)
-                .setShape(CStyleType.ANNOT_CIRCLE, defaultColor, 255, Color.TRANSPARENT, 0, 5, null)
-                .setShape(CStyleType.ANNOT_LINE, defaultColor, 255, defaultColor, 255, 5, null)
-                .setShapeArrow(defaultColor, 255, defaultColor, 255, 5,
-                        CPDFLineAnnotation.LineType.LINETYPE_NONE, CPDFLineAnnotation.LineType.LINETYPE_ARROW,
-                        new CPDFBorderStyle(CPDFBorderStyle.Style.Border_Solid, 5, new float[]{8.0F, 0F}))
-                .setInkAttribute(defaultColor, 255, 10, 10)
-                .setFreeText(defaultColor, 255, 50)
-                .init(pdfView, true);
-    }
-
-    protected void initFormAttr(CPDFViewCtrl pdfView) {
-        int bgColor = ContextCompat.getColor(getContext(), R.color.tools_form_default_bg_color);
-        new CStyleManager.Builder()
-                .setTextField(Color.TRANSPARENT, bgColor, Color.BLACK, 25, 2, false)
-                .setCheckBox(Color.BLACK, bgColor, Color.BLACK, 2, CPDFWidget.CheckStyle.CK_Check, false)
-                .setRadioButton(Color.BLACK, bgColor, Color.BLACK, 2, CPDFWidget.CheckStyle.CK_Circle, false)
-                .setListBox(Color.TRANSPARENT, bgColor, Color.BLACK, 20, 2)
-                .setComboBox(Color.TRANSPARENT, bgColor, Color.BLACK, 20, 2)
-                .setPushButton(Color.BLACK, Color.WHITE, Color.BLACK, 20, 2, "Push Button")
-                .setFormSignature(Color.TRANSPARENT, bgColor, 0)
-                .init(pdfView, true);
-    }
-
     protected void registerAnnotHelper(CPDFViewCtrl pdfView) {
         pdfView.getCPdfReaderView().getAnnotImplRegistry().registAttachHelper(CPDFTextAnnotation.class, CPDFtextAnnotAttachHelper.class);
         pdfView.getCPdfReaderView().getAnnotImplRegistry().registImpl(CPDFTextAnnotation.class, CPDFtextAnnotImpl.class);

+ 1 - 0
ComPDFKit_Tools/src/main/java/com/compdfkit/tools/common/contextmenu/impl/CCheckBoxContextMenuView.java

@@ -33,6 +33,7 @@ public class CCheckBoxContextMenuView implements ContextMenuCheckBoxProvider {
             CAnnotStyle style = styleManager.getStyle(CStyleType.FORM_CHECK_BOX);
             CStyleDialogFragment styleDialogFragment = CStyleDialogFragment.newInstance(style);
             styleManager.setAnnotStyleFragmentListener(styleDialogFragment);
+            styleManager.setDialogHeightCallback(styleDialogFragment, helper.getReaderView());
             styleDialogFragment.show(helper.getReaderView().getContext());
             helper.dismissContextMenu();
         });

+ 1 - 0
ComPDFKit_Tools/src/main/java/com/compdfkit/tools/common/contextmenu/impl/CListBoxContextMenuView.java

@@ -48,6 +48,7 @@ public class CListBoxContextMenuView implements ContextMenuListBoxProvider {
             CAnnotStyle style = styleManager.getStyle(CStyleType.FORM_LIST_BOX);
             CStyleDialogFragment styleDialogFragment = CStyleDialogFragment.newInstance(style);
             styleManager.setAnnotStyleFragmentListener(styleDialogFragment);
+            styleManager.setDialogHeightCallback(styleDialogFragment, helper.getReaderView());
             styleDialogFragment.show(helper.getReaderView().getContext());
             helper.dismissContextMenu();
         });

+ 1 - 0
ComPDFKit_Tools/src/main/java/com/compdfkit/tools/common/contextmenu/impl/CPushButtonContextMenuView.java

@@ -45,6 +45,7 @@ public class CPushButtonContextMenuView implements ContextMenuPushButtonProvider
             CAnnotStyle style = styleManager.getStyle(CStyleType.FORM_PUSH_BUTTON);
             CStyleDialogFragment styleDialogFragment = CStyleDialogFragment.newInstance(style);
             styleManager.setAnnotStyleFragmentListener(styleDialogFragment);
+            styleManager.setDialogHeightCallback(styleDialogFragment, helper.getReaderView());
             styleDialogFragment.show(helper.getReaderView().getContext());
             helper.dismissContextMenu();
         });

+ 1 - 0
ComPDFKit_Tools/src/main/java/com/compdfkit/tools/common/contextmenu/impl/CRadioButtonContextMenuView.java

@@ -33,6 +33,7 @@ public class CRadioButtonContextMenuView implements ContextMenuRadioButtonProvid
             CAnnotStyle style = styleManager.getStyle(CStyleType.FORM_RADIO_BUTTON);
             CStyleDialogFragment styleDialogFragment = CStyleDialogFragment.newInstance(style);
             styleManager.setAnnotStyleFragmentListener(styleDialogFragment);
+            styleManager.setDialogHeightCallback(styleDialogFragment, helper.getReaderView());
             styleDialogFragment.show(helper.getReaderView().getContext());
             helper.dismissContextMenu();
         });

+ 1 - 0
ComPDFKit_Tools/src/main/java/com/compdfkit/tools/common/contextmenu/impl/CTextFieldContextMenuView.java

@@ -32,6 +32,7 @@ public class CTextFieldContextMenuView implements ContextMenuTextFieldProvider {
             CAnnotStyle style = styleManager.getStyle(CStyleType.FORM_TEXT_FIELD);
             CStyleDialogFragment styleDialogFragment = CStyleDialogFragment.newInstance(style);
             styleManager.setAnnotStyleFragmentListener(styleDialogFragment);
+            styleManager.setDialogHeightCallback(styleDialogFragment, helper.getReaderView());
             styleDialogFragment.show(helper.getReaderView().getContext());
             helper.dismissContextMenu();
         });

+ 1 - 0
ComPDFKit_Tools/src/main/java/com/compdfkit/tools/common/contextmenu/impl/ComboBoxContextMenuView.java

@@ -49,6 +49,7 @@ public class ComboBoxContextMenuView implements ContextMenuComboBoxProvider {
             CAnnotStyle style = styleManager.getStyle(CStyleType.FORM_COMBO_BOX);
             CStyleDialogFragment styleDialogFragment = CStyleDialogFragment.newInstance(style);
             styleManager.setAnnotStyleFragmentListener(styleDialogFragment);
+            styleManager.setDialogHeightCallback(styleDialogFragment, helper.getReaderView());
             styleDialogFragment.show(helper.getReaderView().getContext());
             helper.dismissContextMenu();
         });

+ 77 - 4
ComPDFKit_Tools/src/main/java/com/compdfkit/tools/common/pdf/CPDFApplyConfigUtil.java

@@ -10,6 +10,9 @@
 package com.compdfkit.tools.common.pdf;
 
 
+import android.content.Context;
+import android.view.View;
+
 import androidx.core.content.ContextCompat;
 
 import com.compdfkit.core.annotation.CPDFBorderStyle;
@@ -35,6 +38,8 @@ import com.compdfkit.tools.common.pdf.config.forms.FormsListBoxAttr;
 import com.compdfkit.tools.common.pdf.config.forms.FormsPushButtonAttr;
 import com.compdfkit.tools.common.pdf.config.forms.FormsRadioButtonAttr;
 import com.compdfkit.tools.common.pdf.config.forms.FormsTextFieldAttr;
+import com.compdfkit.tools.common.utils.CLog;
+import com.compdfkit.tools.common.utils.viewutils.CViewUtils;
 import com.compdfkit.tools.common.views.pdfproperties.CAnnotationType;
 import com.compdfkit.tools.common.views.pdfproperties.pdfstyle.CAnnotStyle;
 import com.compdfkit.tools.common.views.pdfproperties.pdfstyle.CStyleType;
@@ -46,6 +51,8 @@ public class CPDFApplyConfigUtil {
 
     private CPDFConfiguration configuration;
 
+    private int themeId;
+
     private static CPDFApplyConfigUtil instance;
 
     public static CPDFApplyConfigUtil getInstance() {
@@ -59,6 +66,14 @@ public class CPDFApplyConfigUtil {
         return configuration;
     }
 
+    public int getThemeId() {
+        if (themeId == 0){
+            CLog.e("主题", "getThemeId() - themeId=0 使用默认Light主题");
+            themeId = R.style.ComPDFKit_Theme_Light;
+        }
+        return themeId;
+    }
+
     public void applyConfiguration(CPDFDocumentFragment fragment, CPDFConfiguration configuration) {
         this.configuration = configuration;
         applyReaderViewConfig(fragment, configuration);
@@ -87,6 +102,8 @@ public class CPDFApplyConfigUtil {
                     readerView.setDoublePageMode(true);
                     readerView.setCoverPageMode(true);
                     break;
+                default:
+                    break;
             }
             readerView.setContinueMode(readerViewConfig.continueMode);
             readerView.setVerticalMode(readerViewConfig.verticalMode);
@@ -94,22 +111,29 @@ public class CPDFApplyConfigUtil {
             readerView.setPageSameWidth(readerViewConfig.pageSameWidth);
             switch (readerViewConfig.themes) {
                 case Dark:
-                    readerView.setReadBackgroundColor(ContextCompat.getColor(fragment.getContext(), R.color.tools_themes_dark));
+                    int darkColor = ContextCompat.getColor(fragment.getContext(), R.color.tools_themes_dark);
+                    readerView.setReadBackgroundColor(darkColor);
+                    fragment.pdfView.setBackgroundColor(CViewUtils.getColor(darkColor, 190));
                     break;
                 case Sepia:
-                    readerView.setReadBackgroundColor(ContextCompat.getColor(fragment.getContext(), R.color.tools_themes_sepia));
+                    int sepiaColor = ContextCompat.getColor(fragment.getContext(), R.color.tools_themes_sepia);
+                    readerView.setReadBackgroundColor(sepiaColor);
+                    fragment.pdfView.setBackgroundColor(CViewUtils.getColor(sepiaColor, 190));
                     break;
                 case Reseda:
-                    readerView.setReadBackgroundColor(ContextCompat.getColor(fragment.getContext(), R.color.tools_themes_reseda));
+                    int resedaColor = ContextCompat.getColor(fragment.getContext(), R.color.tools_themes_reseda);
+                    readerView.setReadBackgroundColor(resedaColor);
+                    fragment.pdfView.setBackgroundColor(CViewUtils.getColor(resedaColor, 190));
                     break;
                 default:
                     readerView.setReadBackgroundColor(ContextCompat.getColor(fragment.getContext(), R.color.tools_themes_light));
+                    fragment.pdfView.setBackgroundColor(ContextCompat.getColor(fragment.getContext(), R.color.tools_pdf_view_ctrl_background_color));
                     break;
             }
             readerView.setPageSpacing(readerViewConfig.pageSpacing);
             readerView.setScale(readerViewConfig.pageScale);
             CPDFDocument document = fragment.pdfView.getCPdfReaderView().getPDFDocument();
-            if (document != null){
+            if (document != null) {
                 fragment.pdfView.enableSliderBar(readerViewConfig.enableSliderBar);
                 fragment.pdfView.enablePageIndicator(readerViewConfig.enablePageIndicator);
             }
@@ -141,6 +165,10 @@ public class CPDFApplyConfigUtil {
                     }
                 });
             }
+            if (modeConfig.readerOnly) {
+                fragment.flTool.setVisibility(View.GONE);
+                fragment.flBottomToolBar.setVisibility(View.GONE);
+            }
         }
     }
 
@@ -311,4 +339,49 @@ public class CPDFApplyConfigUtil {
 
         builder.init(fragment.pdfView, true);
     }
+
+    private void applyGlobalConfig(Context context, CPDFConfiguration configuration) {
+        switch (configuration.globalConfig.themeMode) {
+            case Light:
+                themeId = R.style.ComPDFKit_Theme_Light;
+                break;
+            case Dark:
+                themeId = R.style.ComPDFKit_Theme_Dark;
+                break;
+            default:
+                if (CViewUtils.isDarkMode(context)) {
+                    themeId = R.style.ComPDFKit_Theme_Dark;
+                } else {
+                    themeId = R.style.ComPDFKit_Theme_Light;
+                }
+                break;
+        }
+    }
+
+    public int getThemeId(Context context, CPDFConfiguration configuration){
+        switch (configuration.globalConfig.themeMode) {
+            case Light:
+                themeId = R.style.ComPDFKit_Theme_Light;
+                CLog.e("主题", "getThemeId(Context context, CPDFConfiguration configuration) - 使用Light主题");
+
+                break;
+            case Dark:
+                themeId = R.style.ComPDFKit_Theme_Dark;
+                CLog.e("主题", "getThemeId(Context context, CPDFConfiguration configuration) - 使用Dark主题");
+
+                break;
+            default:
+                if (CViewUtils.isDarkMode(context)) {
+                    themeId = R.style.ComPDFKit_Theme_Dark;
+                    CLog.e("主题", "getThemeId(Context context, CPDFConfiguration configuration) - 跟随系统,使用Dark主题");
+
+                } else {
+                    themeId = R.style.ComPDFKit_Theme_Light;
+                    CLog.e("主题", "getThemeId(Context context, CPDFConfiguration configuration) - 跟随系统,使用Dark主题");
+
+                }
+                break;
+        }
+        return themeId;
+    }
 }

+ 11 - 0
ComPDFKit_Tools/src/main/java/com/compdfkit/tools/common/pdf/CPDFConfigurationUtils.java

@@ -22,6 +22,7 @@ import com.compdfkit.tools.common.pdf.config.AnnotationsConfig;
 import com.compdfkit.tools.common.pdf.config.CPDFConfiguration;
 import com.compdfkit.tools.common.pdf.config.ContentEditorConfig;
 import com.compdfkit.tools.common.pdf.config.FormsConfig;
+import com.compdfkit.tools.common.pdf.config.GlobalConfig;
 import com.compdfkit.tools.common.pdf.config.ModeConfig;
 import com.compdfkit.tools.common.pdf.config.ReaderViewConfig;
 import com.compdfkit.tools.common.pdf.config.ToolbarConfig;
@@ -69,6 +70,7 @@ public class CPDFConfigurationUtils {
             configuration.contentEditorConfig = parseContentEditorConfig(rootJsonObject.optJSONObject("contentEditorConfig"));
             configuration.formsConfig = parseFormsConfig(rootJsonObject.optJSONObject("formsConfig"));
             configuration.readerViewConfig = parseReaderViewConfig(rootJsonObject.optJSONObject("readerViewConfig"));
+            configuration.globalConfig = parseGlobalConfig(rootJsonObject.optJSONObject("global"));
             return configuration;
         } catch (Exception e) {
             return null;
@@ -80,6 +82,7 @@ public class CPDFConfigurationUtils {
             return ModeConfig.normal();
         }
         ModeConfig modeConfig = ModeConfig.normal();
+        modeConfig.readerOnly = jsonObject.optBoolean("readerOnly", false);
         CPreviewMode mode = CPreviewMode.fromAlias(jsonObject.optString("initialViewMode"));
         modeConfig.initialViewMode = mode != null ? mode : CPreviewMode.Viewer;
         JSONArray availableViewModes = jsonObject.optJSONArray("availableViewModes");
@@ -163,6 +166,7 @@ public class CPDFConfigurationUtils {
             case "reseda":
                 readerViewConfig.themes = ReaderViewConfig.Themes.Reseda;
                 break;
+            default:break;
         }
         readerViewConfig.enableSliderBar = jsonObject.optBoolean("enableSliderBar", true);
         readerViewConfig.enablePageIndicator = jsonObject.optBoolean("enablePageIndicator", true);
@@ -670,6 +674,7 @@ public class CPDFConfigurationUtils {
                 String psName1 = "Times-"+styleName1;
                 CLog.e("CPDFConfig", "psName:" + psName1);
                 return psName1;
+            default:break;
         }
         return "Helvetica";
     }
@@ -693,4 +698,10 @@ public class CPDFConfigurationUtils {
                 return CPDFWidget.CheckStyle.CK_Check;
         }
     }
+
+    private static GlobalConfig parseGlobalConfig(@Nullable JSONObject jsonObject) {
+        GlobalConfig globalConfig = new GlobalConfig();
+        globalConfig.themeMode = GlobalConfig.CThemeMode.fromString(jsonObject.optString("themeMode", "light"));
+        return globalConfig;
+    }
 }

+ 12 - 6
ComPDFKit_Tools/src/main/java/com/compdfkit/tools/common/pdf/CPDFDocumentActivity.java

@@ -46,15 +46,21 @@ public class CPDFDocumentActivity extends CBasicPDFActivity {
     @Override
     protected void onCreate(@Nullable Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
+        CPDFConfiguration configuration;
+        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) {
+            configuration = getIntent().getSerializableExtra(CPDFDocumentFragment.EXTRA_CONFIGURATION, CPDFConfiguration.class);
+        } else {
+            configuration = (CPDFConfiguration) getIntent().getSerializableExtra(CPDFDocumentFragment.EXTRA_CONFIGURATION);
+        }
+        if (configuration == null) {
+            configuration = CPDFConfigurationUtils.normalConfig(this, "tools_default_configuration.json");
+        }
+        int themeId = CPDFApplyConfigUtil.getInstance().getThemeId(this, configuration);
+        setTheme(themeId);
         setContentView(R.layout.tools_pdf_document_activity);
         if (getIntent() != null) {
             String password = getIntent().getStringExtra(CPDFDocumentFragment.EXTRA_FILE_PASSWORD);
-            CPDFConfiguration configuration;
-            if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) {
-                configuration = getIntent().getSerializableExtra(CPDFDocumentFragment.EXTRA_CONFIGURATION, CPDFConfiguration.class);
-            } else {
-                configuration = (CPDFConfiguration) getIntent().getSerializableExtra(CPDFDocumentFragment.EXTRA_CONFIGURATION);
-            }
+
             CPDFDocumentFragment documentFragment;
             if (!TextUtils.isEmpty(getIntent().getStringExtra(CPDFDocumentFragment.EXTRA_FILE_PATH))){
                 documentFragment = CPDFDocumentFragment.newInstance(

+ 27 - 20
ComPDFKit_Tools/src/main/java/com/compdfkit/tools/common/pdf/CPDFDocumentFragment.java

@@ -24,6 +24,7 @@ import android.os.Build;
 import android.os.Bundle;
 import android.os.Environment;
 import android.text.TextUtils;
+import android.util.Log;
 import android.view.LayoutInflater;
 import android.view.View;
 import android.view.ViewGroup;
@@ -56,6 +57,7 @@ import com.compdfkit.tools.common.utils.activitycontracts.CSelectPDFDocumentResu
 import com.compdfkit.tools.common.utils.annotation.CPDFAnnotationManager;
 import com.compdfkit.tools.common.utils.dialog.CAlertDialog;
 import com.compdfkit.tools.common.utils.threadpools.CThreadPoolUtils;
+import com.compdfkit.tools.common.utils.viewutils.CViewUtils;
 import com.compdfkit.tools.common.utils.window.CPopupMenuWindow;
 import com.compdfkit.tools.common.views.CPDFToolBar;
 import com.compdfkit.tools.common.views.directory.CFileDirectoryDialog;
@@ -133,6 +135,7 @@ public class CPDFDocumentFragment extends CBasicPDFFragment {
     private View blockView;
 
     private OnBackPressedCallback onBackPressedCallback;
+    private CPopupMenuWindow menuWindow;
 
     public static CPDFDocumentFragment newInstance(String filePath, String password, CPDFConfiguration configuration) {
         Bundle args = new Bundle();
@@ -201,6 +204,9 @@ public class CPDFDocumentFragment extends CBasicPDFFragment {
     @Nullable
     @Override
     public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
+        //Extract PDF files from the Android assets folder
+        parseConfiguration();
+        getContext().getTheme().applyStyle(CPDFApplyConfigUtil.getInstance().getThemeId(getContext(), cpdfConfiguration), true);
         View rootView = inflater.inflate(R.layout.tools_pdf_document_fragment, container, false);
         clRoot = rootView.findViewById(R.id.cl_root);
         pdfView = rootView.findViewById(R.id.pdf_view);
@@ -221,12 +227,8 @@ public class CPDFDocumentFragment extends CBasicPDFFragment {
     @Override
     public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
         super.onViewCreated(view, savedInstanceState);
-        if (getContext() != null) {
-            getContext().setTheme(R.style.Tools_Base_Theme);
-        }
         screenManager.bind(this);
-        //Extract PDF files from the Android assets folder
-        parseConfiguration();
+
         initDocument(() -> {
             initPDFView();
             initToolBarView();
@@ -276,8 +278,10 @@ public class CPDFDocumentFragment extends CBasicPDFFragment {
                 pdfSearchToolBarView.showSearchReplaceContextMenu();
                 return;
             }
-            //Use the CFillScreenManager.class to manage fullscreen switching.
-            screenManager.fillScreenChange();
+            if (!cpdfConfiguration.modeConfig.readerOnly){
+                //Use the CFillScreenManager.class to manage fullscreen switching.
+                screenManager.fillScreenChange();
+            }
         });
         pdfView.getCPdfReaderView().setPdfAddAnnotCallback((cpdfPageView, cpdfBaseAnnot) -> {
             // Annotation creation completed listener, you can use cpdfBaseAnnot.getAnnotType() to determine the type of the added annotation
@@ -529,7 +533,7 @@ public class CPDFDocumentFragment extends CBasicPDFFragment {
 
     private void showToolbarMenuDialog(View anchorView) {
         //Show the PDF settings dialog fragment
-        CPopupMenuWindow menuWindow = new CPopupMenuWindow(getContext());
+        menuWindow = new CPopupMenuWindow(getContext());
         if (cpdfConfiguration != null && cpdfConfiguration.toolbarConfig != null) {
             List<ToolbarConfig.MenuAction> menuActions = cpdfConfiguration.toolbarConfig.availableMenus;
             if (menuActions == null || menuActions.size() == 0) {
@@ -578,6 +582,7 @@ public class CPDFDocumentFragment extends CBasicPDFFragment {
                             watermarkEditDialog.setDocument(pdfView.getCPdfReaderView().getPDFDocument());
                             watermarkEditDialog.setPageIndex(pdfView.currentPageIndex);
                             watermarkEditDialog.setCompleteListener((pdfFile) -> {
+                                pdfView.getCPdfReaderView().reloadPages();
                                 watermarkEditDialog.dismiss();
                                 if (TextUtils.isEmpty(pdfFile)) {
                                     CToastUtil.showLongToast(getContext(), R.string.tools_watermark_add_failed);
@@ -657,17 +662,12 @@ public class CPDFDocumentFragment extends CBasicPDFFragment {
                         boolean saveResult = document.saveAs(finalFile.getAbsolutePath(), false);
                         CThreadPoolUtils.getInstance().executeMain(() -> {
                             dismissLoadingDialog();
+                            if (document.shouleReloadDocument()) {
+                                document.reload();
+                            }
                             if (saveResult) {
                                 CToastUtil.showLongToast(getContext(), R.string.tools_save_success);
-                                Intent intent = new Intent(getContext(), CPDFDocumentActivity.class);
-                                intent.putExtra(CPDFDocumentFragment.EXTRA_FILE_PATH, finalFile.getAbsolutePath());
-                                intent.putExtra(CPDFDocumentFragment.EXTRA_FILE_PASSWORD, document.getPassword());
-                                intent.putExtra(CPDFDocumentFragment.EXTRA_CONFIGURATION, cpdfConfiguration);
-                                intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
-                                getContext().startActivity(intent);
-                                if (getActivity() != null) {
-                                    getActivity().finish();
-                                }
+                                pdfView.openPDF(finalFile.getAbsolutePath());
                             }
                         });
                     } catch (Exception e) {
@@ -747,6 +747,7 @@ public class CPDFDocumentFragment extends CBasicPDFFragment {
         CDocumentEncryptionDialog documentEncryptionDialog = CDocumentEncryptionDialog.newInstance();
         documentEncryptionDialog.setDocument(pdfView.getCPdfReaderView().getPDFDocument());
         documentEncryptionDialog.setEncryptionResultListener((isRemoveSecurity, result, filePath, passowrd) -> {
+            pdfView.getCPdfReaderView().reloadPages();
             pdfView.openPDF(filePath);
             documentEncryptionDialog.dismiss();
             int msgResId;
@@ -797,19 +798,25 @@ public class CPDFDocumentFragment extends CBasicPDFFragment {
     }
 
     protected interface CRequestPermissionListener {
+
         void request();
     }
 
     @Override
-    public void onDestroyView() {
-        super.onDestroyView();
+    public void onDestroy() {
         try {
+            CViewUtils.hideKeyboard(getActivity().getWindow().getDecorView());
+            Log.e("ComPDFKit", "CPDFDocumentFragment:onDestroy() document close()");
             if (pdfView.getCPdfReaderView().getPDFDocument() != null) {
                 pdfView.getCPdfReaderView().getPDFDocument().close();
             }
+            pdfView.getCPdfReaderView().getContextMenuShowListener().dismissContextMenu();
+            if (menuWindow != null) {
+                menuWindow.dismiss();
+            }
         }catch (Exception e){
 
         }
-
+        super.onDestroy();
     }
 }

+ 2 - 0
ComPDFKit_Tools/src/main/java/com/compdfkit/tools/common/pdf/config/CPDFConfiguration.java

@@ -28,6 +28,8 @@ public class CPDFConfiguration implements Serializable {
 
     public ReaderViewConfig readerViewConfig = new ReaderViewConfig();
 
+    public GlobalConfig globalConfig = new GlobalConfig();
+
     @NonNull
     @Override
     public String toString() {

+ 29 - 0
ComPDFKit_Tools/src/main/java/com/compdfkit/tools/common/pdf/config/GlobalConfig.java

@@ -0,0 +1,29 @@
+package com.compdfkit.tools.common.pdf.config;
+
+import java.io.Serializable;
+
+
+public class GlobalConfig  implements Serializable {
+
+    public enum CThemeMode{
+        Light,
+
+        Dark,
+
+        System;
+
+
+        public static CThemeMode fromString(String str) {
+            try {
+                String firstLetter = str.substring(0, 1).toUpperCase();
+                String result = firstLetter + str.substring(1);
+                return CThemeMode.valueOf(result);
+            } catch (Exception e) {
+                return null;
+            }
+        }
+    }
+
+    public CThemeMode themeMode  = CThemeMode.Light;
+
+}

+ 2 - 1
ComPDFKit_Tools/src/main/java/com/compdfkit/tools/common/pdf/config/ModeConfig.java

@@ -55,7 +55,8 @@ public class ModeConfig implements Serializable {
     @Override
     public String toString() {
         String stringBuilder = "[modeConfig: " + "initialViewMode:" + initialViewMode.name() +
-                ", availableViewModes: " + availableViewModes.toString() + "]";
+                ", availableViewModes: " + availableViewModes.toString() +
+                ", readerOnly: " + readerOnly + "]";
         return stringBuilder;
     }
 }

+ 2 - 0
ComPDFKit_Tools/src/main/java/com/compdfkit/tools/common/utils/annotation/CPDFAnnotationManager.java

@@ -165,6 +165,8 @@ public class CPDFAnnotationManager {
                 case ExifInterface.ORIENTATION_ROTATE_270:
                     rotate = 270;
                     break;
+                default:
+                    break;
             }
         } catch (Exception e) {
 

+ 9 - 3
ComPDFKit_Tools/src/main/java/com/compdfkit/tools/common/utils/dialog/CAlertDialog.java

@@ -18,10 +18,12 @@ import android.widget.Button;
 
 import androidx.annotation.NonNull;
 import androidx.annotation.Nullable;
+import androidx.appcompat.widget.AppCompatButton;
 import androidx.appcompat.widget.AppCompatTextView;
 import androidx.fragment.app.DialogFragment;
 
 import com.compdfkit.tools.R;
+import com.compdfkit.tools.common.utils.viewutils.CViewUtils;
 
 
 public class CAlertDialog extends DialogFragment {
@@ -36,9 +38,9 @@ public class CAlertDialog extends DialogFragment {
 
     private AppCompatTextView tvMessage;
 
-    private Button btnCancel;
+    private AppCompatButton btnCancel;
 
-    private Button btnConfirm;
+    private AppCompatButton btnConfirm;
 
     private View.OnClickListener cancelListener;
 
@@ -62,7 +64,11 @@ public class CAlertDialog extends DialogFragment {
     @Override
     public void onCreate(@Nullable Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
-        setStyle(STYLE_NO_TITLE, R.style.tools_dialog_theme);
+        int themeId = CViewUtils.getThemeAttrResourceId(getContext().getTheme(), R.attr.dialogTheme);
+        if (themeId == 0){
+            themeId = R.style.ComPDFKit_Theme_Dialog;
+        }
+        setStyle(STYLE_NO_TITLE, themeId);
     }
 
     @Nullable

+ 8 - 6
ComPDFKit_Tools/src/main/java/com/compdfkit/tools/common/utils/dialog/CEditDialog.java

@@ -21,6 +21,7 @@ import android.widget.Button;
 
 import androidx.annotation.NonNull;
 import androidx.annotation.Nullable;
+import androidx.appcompat.widget.AppCompatButton;
 import androidx.appcompat.widget.AppCompatEditText;
 import androidx.appcompat.widget.AppCompatTextView;
 import androidx.fragment.app.DialogFragment;
@@ -39,9 +40,9 @@ public class CEditDialog extends DialogFragment {
 
     private AppCompatEditText editText;
 
-    private Button btnCancel;
+    private AppCompatButton btnCancel;
 
-    private Button btnAdd;
+    private AppCompatButton btnAdd;
 
     private OnEditBookmarkListener editListener;
 
@@ -59,7 +60,11 @@ public class CEditDialog extends DialogFragment {
     @Override
     public void onCreate(@Nullable Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
-        setStyle(STYLE_NO_TITLE, R.style.tools_dialog_theme);
+        int themeId = CViewUtils.getThemeAttrResourceId(getContext().getTheme(), R.attr.dialogTheme);
+        if (themeId == 0){
+            themeId = R.style.ComPDFKit_Theme_Dialog;
+        }
+        setStyle(STYLE_NO_TITLE, themeId);
     }
 
     @Override
@@ -70,9 +75,6 @@ public class CEditDialog extends DialogFragment {
     @Nullable
     @Override
     public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
-        if (getDialog() != null && getDialog().getWindow() != null) {
-            getDialog().getWindow().setBackgroundDrawableResource(R.drawable.tools_dialog_background);
-        }
         View rootView = inflater.inflate(R.layout.tools_bota_bookmark_input_dialog, container, false);
         editText = rootView.findViewById(R.id.tv_message);
         tvTitle = rootView.findViewById(R.id.tv_title);

+ 5 - 1
ComPDFKit_Tools/src/main/java/com/compdfkit/tools/common/utils/dialog/CGotoPageDialog.java

@@ -62,7 +62,11 @@ public class CGotoPageDialog extends DialogFragment {
     @Override
     public void onCreate(@Nullable Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
-        setStyle(STYLE_NO_TITLE, R.style.tools_dialog_theme);
+        int themeId = CViewUtils.getThemeAttrResourceId(getContext().getTheme(), R.attr.dialogTheme);
+        if (themeId == 0){
+            themeId = R.style.ComPDFKit_Theme_Dialog;
+        }
+        setStyle(STYLE_NO_TITLE,themeId);
     }
 
     @Override

+ 15 - 1
ComPDFKit_Tools/src/main/java/com/compdfkit/tools/common/utils/dialog/CLoadingDialog.java

@@ -19,6 +19,7 @@ import androidx.annotation.Nullable;
 import androidx.fragment.app.DialogFragment;
 
 import com.compdfkit.tools.R;
+import com.compdfkit.tools.common.utils.viewutils.CViewUtils;
 
 
 public class CLoadingDialog extends DialogFragment {
@@ -32,6 +33,16 @@ public class CLoadingDialog extends DialogFragment {
         return fragment;
     }
 
+    @Override
+    public void onCreate(@Nullable Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+        int themeId = CViewUtils.getThemeAttrResourceId(getContext().getTheme(), R.attr.dialogTheme);
+        if (themeId == 0){
+            themeId = R.style.ComPDFKit_Theme_Dialog;
+        }
+        setStyle(STYLE_NO_TITLE, themeId);
+    }
+
     @Override
     public void onStart() {
         super.onStart();
@@ -39,12 +50,15 @@ public class CLoadingDialog extends DialogFragment {
         if (getDialog() != null) {
             getDialog().setCanceledOnTouchOutside(false);
         }
-        setStyle(STYLE_NO_TITLE, R.style.tools_dialog_theme);
+
     }
 
     @Nullable
     @Override
     public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
+        if (getDialog() != null && getDialog().getWindow() != null) {
+            getDialog().getWindow().setBackgroundDrawableResource(R.drawable.tools_dialog_background);
+        }
         View rootView = inflater.inflate(R.layout.tools_loading_dialog_fragment, container, false);
         return rootView;
     }

+ 10 - 1
ComPDFKit_Tools/src/main/java/com/compdfkit/tools/common/utils/image/CImageUtil.java

@@ -9,11 +9,20 @@
 
 package com.compdfkit.tools.common.utils.image;
 
+import android.graphics.Bitmap;
+import android.graphics.Canvas;
+import android.view.View;
+
 public class CImageUtil {
 
 
     
-
+    public static Bitmap getViewBitmap(View view) {
+        Bitmap bitmap = Bitmap.createBitmap(view.getWidth(), view.getHeight(), Bitmap.Config.ARGB_8888);
+        Canvas canvas = new Canvas(bitmap);
+        view.draw(canvas);
+        return CBitmapUtil.cropTransparent(bitmap);
+    }
 
 
 }

+ 0 - 4
ComPDFKit_Tools/src/main/java/com/compdfkit/tools/common/utils/view/colorpicker/widget/ColorAlphaSliderView.java

@@ -84,10 +84,6 @@ public class ColorAlphaSliderView extends View implements CMotionEventUpdatable
         selectorPaint.setStyle(Paint.Style.STROKE);
         selectorPaint.setStrokeWidth(circleWidth);
 
-//        outPaint.setColor(0x29000000);
-//        outPaint.setStyle(Paint.Style.STROKE);
-//        outPaint.setStrokeWidth(CDimensUtils.px2dp(context, 2));
-
         alphaBitmap = BitmapFactory.decodeResource(context.getResources(), R.drawable.tools_color_picker_bg_color_alpha);
     }
 

+ 0 - 1
ComPDFKit_Tools/src/main/java/com/compdfkit/tools/common/utils/view/colorpicker/widget/ColorRectSelector.java

@@ -69,7 +69,6 @@ class ColorRectSelector extends View {
 
     @Override
     protected void onDraw(Canvas canvas) {
-//        canvas.drawCircle(currentPoint.x, currentPoint.y, RADIUS + (levelTwoWidth - levelOneWidth), levelTwoPaint);
         canvas.drawCircle(currentPoint.x, currentPoint.y, RADIUS, levelOnePaint);
     }
 

+ 47 - 2
ComPDFKit_Tools/src/main/java/com/compdfkit/tools/common/utils/viewutils/CViewUtils.java

@@ -11,24 +11,27 @@ package com.compdfkit.tools.common.utils.viewutils;
 
 
 import android.app.Dialog;
+import android.app.UiModeManager;
 import android.content.Context;
 import android.content.res.ColorStateList;
 import android.content.res.Configuration;
+import android.content.res.Resources;
 import android.content.res.TypedArray;
 import android.graphics.Color;
 import android.graphics.drawable.ColorDrawable;
 import android.graphics.drawable.Drawable;
+import android.os.Build;
 import android.util.TypedValue;
 import android.view.View;
 import android.view.inputmethod.InputMethodManager;
 import android.widget.EditText;
 
+import androidx.annotation.IntRange;
 import androidx.annotation.Nullable;
 import androidx.appcompat.content.res.AppCompatResources;
 import androidx.core.content.ContextCompat;
 import androidx.core.view.ViewCompat;
 
-import com.compdfkit.tools.R;
 import com.google.android.material.shape.MaterialShapeDrawable;
 
 public class CViewUtils {
@@ -82,7 +85,8 @@ public class CViewUtils {
     }
 
     public static void applyViewBackground(View view) {
-        applyViewBackground(view, ContextCompat.getColor(view.getContext(), R.color.tools_color_primary));
+
+        applyViewBackground(view, getThemeAttrData(view.getContext().getTheme(), android.R.attr.colorPrimary));
     }
 
     public static void showKeyboard(View view) {
@@ -119,4 +123,45 @@ public class CViewUtils {
                 & Configuration.SCREENLAYOUT_SIZE_MASK)
                 >= Configuration.SCREENLAYOUT_SIZE_LARGE;
     }
+
+    public static int getThemeAttrResourceId(Resources.Theme theme, int resId){
+        try {
+            TypedValue typedValue = new TypedValue();
+            boolean result = theme.resolveAttribute(resId, typedValue, true );
+            if (result){
+                return typedValue.resourceId;
+            }else {
+                return 0;
+            }
+        }catch (Exception e){
+            return 0;
+        }
+    }
+    public static int getThemeAttrData(Resources.Theme theme, int resId){
+        try {
+            TypedValue typedValue = new TypedValue();
+            boolean result = theme.resolveAttribute(resId, typedValue, true);
+            int data = typedValue.data;
+            if (result){
+                return data;
+            }else {
+                return 0;
+            }
+        }catch (Exception e){
+            return 0;
+        }
+    }
+
+    public static boolean isDarkMode(Context context){
+        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q){
+            UiModeManager uiModeManager = (UiModeManager) context.getSystemService(Context.UI_MODE_SERVICE);
+            return uiModeManager.getNightMode() == UiModeManager.MODE_NIGHT_YES;
+        }else {
+            return false;
+        }
+    }
+
+    public static int getColor(int color,@IntRange(from = 0, to = 255) int alpha){
+        return Color.argb(alpha,Color.red(color),Color.green(color),Color.blue(color));
+    }
 }

+ 1 - 14
ComPDFKit_Tools/src/main/java/com/compdfkit/tools/common/utils/window/CBasePopupWindow.java

@@ -32,14 +32,11 @@ public abstract class CBasePopupWindow extends PopupWindow implements View.OnCli
         setContentView(mContentView);
         setWidth(WindowManager.LayoutParams.WRAP_CONTENT);
         setHeight(WindowManager.LayoutParams.WRAP_CONTENT);
-        //setBackgroundDrawable(new ColorDrawable(Color.parseColor("#ddffffff")));
-//        setBackgroundDrawable(null);
         setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));
         setSoftInputMode(PopupWindow.INPUT_METHOD_NEEDED);
-        setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE);
+//        setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE);
         setFocusable(false);
         setOutsideTouchable(true);
-//        setTouchable(true);
         setTouchInterceptor((v, event) -> {
             if (event.getAction() == MotionEvent.ACTION_OUTSIDE) {
                 dismiss();
@@ -94,14 +91,4 @@ public abstract class CBasePopupWindow extends PopupWindow implements View.OnCli
         }
         activity.getWindow().setAttributes(lp);
     }
-
-    protected void showOrHintSoftKeyboard(View view, boolean show) {
-        if (show) {
-            view.requestFocus();
-            imm.toggleSoftInput(0, InputMethodManager.HIDE_NOT_ALWAYS);
-        } else {
-            view.clearFocus();
-            imm.hideSoftInputFromWindow(view.getWindowToken(), 0);
-        }
-    }
 }

+ 8 - 1
ComPDFKit_Tools/src/main/java/com/compdfkit/tools/common/utils/window/CModeSwitchDialogFragment.java

@@ -1,6 +1,8 @@
 package com.compdfkit.tools.common.utils.window;
 
 
+import android.graphics.Color;
+import android.graphics.PorterDuff;
 import android.graphics.drawable.Drawable;
 import android.os.Bundle;
 import android.view.LayoutInflater;
@@ -16,12 +18,15 @@ import androidx.appcompat.widget.AppCompatImageView;
 import androidx.appcompat.widget.AppCompatRadioButton;
 import androidx.appcompat.widget.AppCompatTextView;
 import androidx.core.content.ContextCompat;
+import androidx.core.graphics.drawable.DrawableCompat;
 
 import com.compdfkit.tools.R;
 import com.compdfkit.tools.common.basic.fragment.CBasicBottomSheetDialogFragment;
 import com.compdfkit.tools.common.utils.viewutils.CDimensUtils;
+import com.compdfkit.tools.common.utils.viewutils.CViewUtils;
 import com.compdfkit.tools.common.views.pdfview.CPreviewMode;
 import com.google.android.material.bottomsheet.BottomSheetBehavior;
+import com.google.android.material.color.MaterialColors;
 
 import java.util.LinkedHashSet;
 
@@ -80,7 +85,7 @@ public class CModeSwitchDialogFragment extends CBasicBottomSheetDialogFragment
 
     @Override
     protected int getStyle() {
-        return R.style.Tools_Base_Theme_BasicBottomSheetDialogStyle_TopCorners;
+        return CViewUtils.getThemeAttrResourceId(getContext().getTheme(), R.attr.compdfkit_BottomSheetDialog_Transparent_Theme);
     }
 
     @Override
@@ -218,6 +223,8 @@ public class CModeSwitchDialogFragment extends CBasicBottomSheetDialogFragment
     private void setRadioButtonInfo(AppCompatRadioButton item, @StringRes int titleResId, @DrawableRes int startDrawableResId){
         item.setText(titleResId);
         Drawable startDrawable = ContextCompat.getDrawable(getContext(), startDrawableResId);
+        DrawableCompat.setTint(startDrawable, MaterialColors.getColor(getContext(), R.attr.colorOnPrimary, Color.BLACK));
+        DrawableCompat.setTintMode(startDrawable, PorterDuff.Mode.SRC_ATOP);
         Drawable endDrawable = ContextCompat.getDrawable(getContext(), R.drawable.tools_reader_settings_page_mode_radio_button);
         item.setCompoundDrawablesWithIntrinsicBounds(startDrawable, null,endDrawable,null);
     }

+ 5 - 0
ComPDFKit_Tools/src/main/java/com/compdfkit/tools/common/views/CVerifyPasswordDialogFragment.java

@@ -103,6 +103,11 @@ public class CVerifyPasswordDialogFragment extends CBasicBottomSheetDialogFragme
         return false;
     }
 
+    @Override
+    protected int getStyle() {
+        return CViewUtils.getThemeAttrResourceId(getContext().getTheme(), R.attr.compdfkit_BottomSheetDialog_Theme);
+    }
+
     @Override
     protected int layoutId() {
         return R.layout.tools_verify_password_dialog_fragment;

+ 0 - 5
ComPDFKit_Tools/src/main/java/com/compdfkit/tools/common/views/pdfbota/CPDFBotaDialogFragment.java

@@ -64,11 +64,6 @@ public class CPDFBotaDialogFragment extends CBasicBottomSheetDialogFragment {
         this.tabs.add(tab);
     }
 
-    @Override
-    protected int getStyle() {
-        return R.style.Tools_Base_Theme_BasicBottomSheetDialogStyle;
-    }
-
     @Override
     protected float dimAmount() {
         return CViewUtils.isLandScape(getContext()) ? 0.2F : 0F;

+ 2 - 2
ComPDFKit_Tools/src/main/java/com/compdfkit/tools/common/views/pdfproperties/CPropertiesSwitchView.java

@@ -17,18 +17,18 @@ import android.util.AttributeSet;
 import android.view.LayoutInflater;
 import android.widget.CompoundButton;
 import android.widget.FrameLayout;
+import android.widget.Switch;
 
 import androidx.annotation.NonNull;
 import androidx.annotation.Nullable;
 import androidx.appcompat.widget.AppCompatTextView;
-import androidx.appcompat.widget.SwitchCompat;
 
 import com.compdfkit.tools.R;
 
 
 public class CPropertiesSwitchView extends FrameLayout {
 
-    private SwitchCompat switchCompat;
+    private Switch switchCompat;
 
     private AppCompatTextView title;
 

+ 3 - 1
ComPDFKit_Tools/src/main/java/com/compdfkit/tools/common/views/pdfproperties/colorlist/ColorListAdapter.java

@@ -23,6 +23,7 @@ import com.compdfkit.tools.R;
 import com.compdfkit.tools.common.utils.adapter.CBaseQuickAdapter;
 import com.compdfkit.tools.common.utils.adapter.CBaseQuickViewHolder;
 import com.compdfkit.tools.common.utils.viewutils.CDimensUtils;
+import com.google.android.material.color.MaterialColors;
 
 import java.util.List;
 
@@ -49,7 +50,8 @@ class ColorListAdapter extends CBaseQuickAdapter<CColorItemBean, CBaseQuickViewH
                 drawable.setColor(item.getColor());
                 if (item.getColor() == Color.WHITE){
                     drawable.setStroke(CDimensUtils.dp2px(holder.itemView.getContext(), 1),
-                            ContextCompat.getColor(holder.itemView.getContext(), R.color.tools_control_line_color));
+                            MaterialColors.getColor(holder.itemView.getContext(), R.attr.dividerColor,
+                                    ContextCompat.getColor(holder.itemView.getContext(), R.color.tools_divider_color)));
                 }else {
                     drawable.setStroke(CDimensUtils.dp2px(holder.itemView.getContext(), 2),
                             Color.TRANSPARENT);

+ 1 - 1
ComPDFKit_Tools/src/main/java/com/compdfkit/tools/common/views/pdfproperties/font/CFontSpinnerAdapter.java

@@ -86,7 +86,7 @@ public class CFontSpinnerAdapter extends BaseAdapter {
         List<CFontStyleItemBean> styleItemBeans = new ArrayList<>();
         for (String styleName : cpdfFontName.getStyleName()) {
             String psName = CPDFTextAttribute.FontNameHelper.obtainFontName(cpdfFontName.getFamilyName(), styleName);
-            if (styleName.equals("Regular")) {
+            if ("Regular".equals(styleName)) {
                 styleItemBeans.add(0, new CFontStyleItemBean(styleName, psName));
             } else {
                 styleItemBeans.add(new CFontStyleItemBean(styleName, psName));

+ 1 - 1
ComPDFKit_Tools/src/main/java/com/compdfkit/tools/common/views/pdfproperties/pdfstyle/CStyleDialogFragment.java

@@ -96,7 +96,7 @@ public class CStyleDialogFragment extends BottomSheetDialogFragment implements C
             return;
         }
         if (styleUIParams == null){
-            styleUIParams = CStyleUIParams.defaultStyle(annotStyle.getType());
+            styleUIParams = CStyleUIParams.defaultStyle(getContext(), annotStyle.getType());
         }
         viewModel = new ViewModelProvider(getActivity()).get(CStyleViewModel.class);
         setStyle(STYLE_NORMAL, styleUIParams.theme);

+ 17 - 4
ComPDFKit_Tools/src/main/java/com/compdfkit/tools/common/views/pdfproperties/pdfstyle/CStyleUIParams.java

@@ -10,9 +10,12 @@
 package com.compdfkit.tools.common.views.pdfproperties.pdfstyle;
 
 
+import android.content.Context;
+
 import androidx.annotation.DrawableRes;
 
 import com.compdfkit.tools.R;
+import com.compdfkit.tools.common.utils.viewutils.CViewUtils;
 
 import java.io.Serializable;
 
@@ -30,28 +33,38 @@ public class CStyleUIParams implements Serializable {
 
     public boolean fillScreenHeight;
 
-    public int theme = R.style.Tools_Base_Theme_BasicBottomSheetDialogStyle_TopCorners;
+    public int theme = R.style.ComPDFKit_Theme_BottomSheetDialog_Light_Transparent;
 
     public float dimAmount = 0.2F;
 
     public @DrawableRes  int backgroundDrawable;
 
-    public static CStyleUIParams defaultStyle(CStyleType styleType){
+    public static CStyleUIParams defaultStyle(Context context, CStyleType styleType){
         CStyleUIParams params = new CStyleUIParams();
         params.showToolbar = true;
         params.dimAmount = 0.2F;
         params.backgroundDrawable = R.drawable.tools_annot_style_dialog_window_bg;
         params.dialogStyleType = DialogStyleType.Dialog;
+        params.theme = params.getStyleTheme(context, R.attr.compdfkit_BottomSheetDialog_Transparent_Theme, R.style.ComPDFKit_Theme_BottomSheetDialog_Light_Transparent);
         if (styleType == CStyleType.ANNOT_STAMP || styleType == CStyleType.ANNOT_SIGNATURE || styleType == CStyleType.FORM_SIGNATURE_FIELDS){
             params.fillScreenHeight = true;
-            params.theme = R.style.Tools_Base_Theme_BasicBottomSheetDialogStyle;
+            params.theme = params.getStyleTheme(context, R.attr.compdfkit_BottomSheetDialog_Theme, R.style.ComPDFKit_Theme_BottomSheetDialog_Light);
             params.dialogStyleType = CStyleUIParams.DialogStyleType.Activity;
             params.dimAmount = 0F;
         }
         if (styleType == CStyleType.ANNOT_PIC){
             params.showToolbar = false;
-            params.theme = R.style.Tools_Base_Theme_BasicBottomSheetDialogStyle;
+            params.theme = params.getStyleTheme(context, R.attr.compdfkit_BottomSheetDialog_Theme, R.style.ComPDFKit_Theme_BottomSheetDialog_Light);
         }
         return params;
     }
+
+    private int getStyleTheme(Context context, int resId, int defaultResId){
+        int themeId = CViewUtils.getThemeAttrResourceId(context.getTheme(), resId);
+        if (themeId != 0){
+            return themeId;
+        }else {
+            return defaultResId;
+        }
+    }
 }

+ 14 - 14
ComPDFKit_Tools/src/main/java/com/compdfkit/tools/common/views/pdfproperties/pdfstyle/manager/provider/CGlobalStyleProvider.java

@@ -173,14 +173,14 @@ public class CGlobalStyleProvider extends CBasicOnStyleChangeListener implements
                     if (params.getBorderStyle() != null) {
                         dataFether1.setIntValue("custom_line_attr", "custom_line_bs_id", params.getBorderStyle().getStyle().id);
                         dataFether1.setFloatValue("custom_line_attr", "custom_line_bs_borderWidth", params.getBorderStyle().getBorderWidth());
-                        float dashs[] = params.getBorderStyle().getDashArr();
+                        float[] dashes = params.getBorderStyle().getDashArr();
                         StringBuilder stringBuilder = new StringBuilder();
-                        int len = dashs.length;
+                        int len = dashes.length;
                         for (int i = 0; i < len; i++) {
                             if (i != 0) {
                                 stringBuilder.append(",");
                             }
-                            stringBuilder.append(dashs[i]);
+                            stringBuilder.append(dashes[i]);
                         }
                         dataFether1.setString("custom_line_attr", "custom_line_bs_dash", stringBuilder.toString());
                     }
@@ -208,14 +208,14 @@ public class CGlobalStyleProvider extends CBasicOnStyleChangeListener implements
                     if (params.getBorderStyle() != null) {
                         dataFether.setIntValue("custom_arrow_attr", "custom_arrow_bs_id", params.getBorderStyle().getStyle().id);
                         dataFether.setFloatValue("custom_arrow_attr", "custom_arrow_bs_borderWidth", params.getBorderStyle().getBorderWidth());
-                        float dashs[] = params.getBorderStyle().getDashArr();
+                        float[] dashes = params.getBorderStyle().getDashArr();
                         StringBuilder stringBuilder = new StringBuilder();
-                        int len = dashs.length;
+                        int len = dashes.length;
                         for (int i = 0; i < len; i++) {
                             if (i != 0) {
                                 stringBuilder.append(",");
                             }
-                            stringBuilder.append(dashs[i]);
+                            stringBuilder.append(dashes[i]);
                         }
                         dataFether.setString("custom_arrow_attr", "custom_arrow_bs_dash", stringBuilder.toString());
                     }
@@ -432,11 +432,11 @@ public class CGlobalStyleProvider extends CBasicOnStyleChangeListener implements
                 String bs_dash_str1 = dataFether1.getString("custom_line_attr", "custom_line_bs_dash", "12,12");
                 try {
                     if (!TextUtils.isEmpty(bs_dash_str1)) {
-                        String dash_strs[] = bs_dash_str1.split(",");
-                        int len = dash_strs.length;
-                        float dash[] = new float[len];
+                        String[] dashStrs = bs_dash_str1.split(",");
+                        int len = dashStrs.length;
+                        float[] dash = new float[len];
                         for (int i = 0; i < len; i++) {
-                            dash[i] = Float.valueOf(dash_strs[i]);
+                            dash[i] = Float.valueOf(dashStrs[i]);
                         }
                         borderStyle1.setDashArr(dash);
                         style.setBorderStyle(borderStyle1);
@@ -469,11 +469,11 @@ public class CGlobalStyleProvider extends CBasicOnStyleChangeListener implements
                 String bs_dash_str = dataFether.getString("custom_arrow_attr", "custom_arrow_bs_dash", "12,12");
                 try {
                     if (!TextUtils.isEmpty(bs_dash_str)) {
-                        String dash_strs[] = bs_dash_str.split(",");
-                        int len = dash_strs.length;
-                        float dash[] = new float[len];
+                        String[] dashStrs = bs_dash_str.split(",");
+                        int len = dashStrs.length;
+                        float[] dash = new float[len];
                         for (int i = 0; i < len; i++) {
-                            dash[i] = Float.valueOf(dash_strs[i]);
+                            dash[i] = Float.valueOf(dashStrs[i]);
                         }
                         borderStyle.setDashArr(dash);
                         style.setBorderStyle(borderStyle);

+ 0 - 3
ComPDFKit_Tools/src/main/java/com/compdfkit/tools/common/views/pdfproperties/pdfstyle/manager/provider/CStyleProvider.java

@@ -24,9 +24,6 @@ public interface CStyleProvider {
 
     public CAnnotStyle getStyle(CStyleType type);
 
-
-
-
     default public String getAnnotStyleFontName(CAnnotStyle annotStyle){
         CLog.e("字体", "类型:" + annotStyle.getType().name() +"更新字体:" + annotStyle.getExternFontName());
         return annotStyle.getExternFontName();

+ 2 - 1
ComPDFKit_Tools/src/main/java/com/compdfkit/tools/common/views/pdfproperties/preview/CAnnotLineTypePreviewView.java

@@ -20,6 +20,7 @@ import androidx.core.content.ContextCompat;
 
 import com.compdfkit.core.annotation.CPDFLineAnnotation;
 import com.compdfkit.tools.R;
+import com.google.android.material.color.MaterialColors;
 
 import java.util.ArrayList;
 import java.util.Arrays;
@@ -130,7 +131,7 @@ public class CAnnotLineTypePreviewView extends CBasicAnnotPreviewView {
         }
 
         private void init(Context context) {
-            color = ContextCompat.getColor(context, R.color.tools_on_primary);
+            color = MaterialColors.getColor(context, R.attr.colorOnPrimary, ContextCompat.getColor(context, R.color.tools_on_primary));
             linePaint.setColor(color);
             linePaint.setStyle(Paint.Style.FILL);
             linePaint.setStrokeWidth(lineWidth);

+ 6 - 1
ComPDFKit_Tools/src/main/java/com/compdfkit/tools/common/views/pdfview/CPDFSlideBar.java

@@ -223,6 +223,7 @@ public class CPDFSlideBar extends View {
                 currentSlideBarPosition.right = slideBarWidth;
                 currentSlideBarPosition.bottom = currentSlideBarPosition.top + slideBarHeight;
                 break;
+            default:break;
         }
         postInvalidate();
     }
@@ -265,6 +266,7 @@ public class CPDFSlideBar extends View {
                     currentSlideBarPosition.left = pageIndex * perPageDistance;
                     currentSlideBarPosition.right = currentSlideBarPosition.left + slideBarWidth;
                     break;
+                default:break;
             }
             changeThumbnailPosition();
         }
@@ -355,6 +357,7 @@ public class CPDFSlideBar extends View {
                     thumbnailPosition.right = parentWidth;
                 }
                 break;
+            default:break;
         }
     }
 
@@ -387,6 +390,7 @@ public class CPDFSlideBar extends View {
                 currentSlideBarPosition.top = thumbnailHeight + gapBetweenThumbnailAndSlideBar;
                 currentSlideBarPosition.bottom = thumbnailHeight + slideBarHeight + gapBetweenThumbnailAndSlideBar;
                 break;
+            default:break;
         }
     }
 
@@ -452,7 +456,7 @@ public class CPDFSlideBar extends View {
                 lastX = 0;
                 lastY = 0;
                 break;
-
+            default:break;
         }
         return super.onTouchEvent(event);
     }
@@ -548,6 +552,7 @@ public class CPDFSlideBar extends View {
             case BOTTOM:
                 super.layout(0, parentHeight - slideBarHeight - thumbnailHeight - gapBetweenThumbnailAndSlideBar, parentWidth, parentHeight);
                 break;
+            default:break;
         }
     }
 

+ 9 - 9
ComPDFKit_Tools/src/main/java/com/compdfkit/tools/docseditor/pdfpageedit/CPDFPageEditDialogFragment.java

@@ -124,7 +124,7 @@ public class CPDFPageEditDialogFragment extends CBasicBottomSheetDialogFragment
 
     @Override
     protected int getStyle() {
-        return R.style.Tools_Base_Theme_BasicBottomSheetDialogStyle;
+        return CViewUtils.getThemeAttrResourceId(getContext().getTheme(), R.attr.compdfkit_BottomSheetDialog_Theme);
     }
 
     @Override
@@ -508,7 +508,7 @@ public class CPDFPageEditDialogFragment extends CBasicBottomSheetDialogFragment
             }
             hasEdit = true;
         }
-        editThumbnailFragment.updatePagesArr(pageNum, CPDFEditThumbnailFragment.updateTypeRotate);
+        editThumbnailFragment.updatePagesArr(pageNum, CPDFEditThumbnailFragment.UPDATE_TYPE_ROTATE);
         return true;
     }
 
@@ -528,7 +528,7 @@ public class CPDFPageEditDialogFragment extends CBasicBottomSheetDialogFragment
         }
         boolean res = document.removePages(pageNum);
         editThumbnailFragment.setSelectAll(false);
-        editThumbnailFragment.updatePagesArr(pageNum, CPDFEditThumbnailFragment.updateTypeDelete);
+        editThumbnailFragment.updatePagesArr(pageNum, CPDFEditThumbnailFragment.UPDATE_TYPE_DELETE);
         hasEdit = true;
         return res;
     }
@@ -546,17 +546,17 @@ public class CPDFPageEditDialogFragment extends CBasicBottomSheetDialogFragment
     private String getNewFileName(int[] exportPages) {
         CPDFDocument document = pdfView.getCPdfReaderView().getPDFDocument();
         String fileName = document.getFileName();
-        String newName = fileName.substring(0, fileName.indexOf(".pdf"));
-        newName = newName + "_Page";
+        StringBuilder newName = new StringBuilder(fileName.substring(0, fileName.indexOf(".pdf")));
+        newName.append("_Page");
         for (int i = 0; i < exportPages.length; i++) {
             if (i != 0) {
-                newName = newName + "," + (exportPages[i] + 1);
+                newName.append(",").append(exportPages[i] + 1);
             } else {
-                newName = newName + (exportPages[i] + 1);
+                newName.append(exportPages[i] + 1);
             }
         }
-        newName = newName + ".pdf";
-        return newName;
+        newName.append(".pdf");
+        return newName.toString();
     }
 
     @Override

+ 6 - 10
ComPDFKit_Tools/src/main/java/com/compdfkit/tools/docseditor/pdfpageeditinsert/CInsertBlankPageDialogFragment.java

@@ -13,6 +13,7 @@ import android.widget.RadioGroup;
 
 import androidx.appcompat.widget.AppCompatEditText;
 import androidx.appcompat.widget.AppCompatImageView;
+import androidx.appcompat.widget.AppCompatRadioButton;
 import androidx.appcompat.widget.AppCompatTextView;
 import androidx.constraintlayout.widget.ConstraintLayout;
 
@@ -42,10 +43,10 @@ public class CInsertBlankPageDialogFragment extends CBasicBottomSheetDialogFragm
     private AppCompatImageView ivDirectionV;
     private AppCompatImageView ivDirectionH;
     private AppCompatImageView ivRightArrow;
-    private RadioButton rbHomePage;
-    private RadioButton rbLastPage;
-    private RadioButton rbToPageLocationBefore;
-    private RadioButton rbToPageLocationAfter;
+    private AppCompatRadioButton rbHomePage;
+    private AppCompatRadioButton rbLastPage;
+    private AppCompatRadioButton rbToPageLocationBefore;
+    private AppCompatRadioButton rbToPageLocationAfter;
     private AppCompatEditText etInputPageIndex;
 
     private ConstraintLayout clInsertLocation;
@@ -64,11 +65,6 @@ public class CInsertBlankPageDialogFragment extends CBasicBottomSheetDialogFragm
         this.document = document;
     }
 
-    @Override
-    protected int getStyle() {
-        return R.style.Tools_Base_Theme_BasicBottomSheetDialogStyle;
-    }
-
     @Override
     protected float dimAmount() {
         return CViewUtils.isLandScape(getContext()) ? 0.2F : 0F;
@@ -259,7 +255,7 @@ public class CInsertBlankPageDialogFragment extends CBasicBottomSheetDialogFragm
             return;
         }
         for (int i = 0; i < sizeArr.length; i++) {
-            RadioButton radio = (RadioButton) LayoutInflater.from(getContext()).inflate(R.layout.tools_pageedit_pagesize_item, null);
+            AppCompatRadioButton radio = (AppCompatRadioButton) LayoutInflater.from(getContext()).inflate(R.layout.tools_pageedit_pagesize_item, null);
             RadioGroup.LayoutParams layoutParams =
                     new RadioGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, CDimensUtils.dp2px(getContext(), 50));
             radio.setLayoutParams(layoutParams);

+ 9 - 13
ComPDFKit_Tools/src/main/java/com/compdfkit/tools/docseditor/pdfpageeditinsert/CInsertPdfPageDialogFragment.java

@@ -18,6 +18,7 @@ import androidx.activity.result.ActivityResultLauncher;
 import androidx.activity.result.contract.ActivityResultContracts;
 import androidx.appcompat.widget.AppCompatEditText;
 import androidx.appcompat.widget.AppCompatImageView;
+import androidx.appcompat.widget.AppCompatRadioButton;
 import androidx.appcompat.widget.AppCompatTextView;
 
 import com.compdfkit.core.document.CPDFDocument;
@@ -41,16 +42,16 @@ public class CInsertPdfPageDialogFragment extends CBasicBottomSheetDialogFragmen
     private CPDFViewCtrl pdfView;
     private AppCompatTextView tvFilename;
 
-    private RadioButton rbFromPageLocationAll;
-    private RadioButton rbFromPageLocationOdd;
-    private RadioButton rbFromPageLocationEven;
-    private RadioButton rbFromPageLocationSpecify;
+    private AppCompatRadioButton rbFromPageLocationAll;
+    private AppCompatRadioButton rbFromPageLocationOdd;
+    private AppCompatRadioButton rbFromPageLocationEven;
+    private AppCompatRadioButton rbFromPageLocationSpecify;
     private AppCompatEditText etFromInputPageIndex;
 
-    private RadioButton rbToPageLocationHome;
-    private RadioButton rbToPageLocationLast;
-    private RadioButton rbToPageLocationBefore;
-    private RadioButton rbToPageLocationAfter;
+    private AppCompatRadioButton rbToPageLocationHome;
+    private AppCompatRadioButton rbToPageLocationLast;
+    private AppCompatRadioButton rbToPageLocationBefore;
+    private AppCompatRadioButton rbToPageLocationAfter;
 
     private AppCompatEditText etToInputPageIndex;
 
@@ -98,11 +99,6 @@ public class CInsertPdfPageDialogFragment extends CBasicBottomSheetDialogFragmen
         this.pdfView = pdfView;
     }
 
-    @Override
-    protected int getStyle() {
-        return R.style.Tools_Base_Theme_BasicBottomSheetDialogStyle;
-    }
-
     @Override
     protected float dimAmount() {
         return CViewUtils.isLandScape(getContext()) ? 0.2F : 0F;

+ 10 - 3
ComPDFKit_Tools/src/main/java/com/compdfkit/tools/forms/pdfformbar/adapter/CPDFFormToolListAdapter.java

@@ -24,6 +24,7 @@ import com.compdfkit.tools.R;
 import com.compdfkit.tools.common.utils.adapter.CBaseQuickAdapter;
 import com.compdfkit.tools.common.utils.adapter.CBaseQuickViewHolder;
 import com.compdfkit.tools.forms.pdfformbar.bean.CFormToolBean;
+import com.google.android.material.color.MaterialColors;
 
 import java.util.List;
 
@@ -41,7 +42,10 @@ public class CPDFFormToolListAdapter extends CBaseQuickAdapter<CFormToolBean, CB
     protected void onBindViewHolder(CBaseQuickViewHolder holder, int position, CFormToolBean item) {
         holder.setImageResource(R.id.iv_annot_type, item.getIconResId());
         CardView cardView = holder.getView(R.id.card_view);
-        cardView.setCardBackgroundColor(ContextCompat.getColor(holder.itemView.getContext(), item.isSelect() ? R.color.tools_annot_list_item_select_bg_color : R.color.tools_color_primary));
+        int selectColor = ContextCompat.getColor(holder.itemView.getContext(), R.color.tools_annot_list_item_select_bg_color);
+        int normalColor = MaterialColors.getColor(holder.itemView.getContext(), android.R.attr.colorPrimary,
+                ContextCompat.getColor(holder.itemView.getContext(), R.color.tools_color_primary));
+        cardView.setCardBackgroundColor(item.isSelect() ? selectColor : normalColor);
         refreshAnnotColor(holder, item);
         holder.setItemHorizontalMargin(list, 16, 0, 16);
     }
@@ -54,7 +58,10 @@ public class CPDFFormToolListAdapter extends CBaseQuickAdapter<CFormToolBean, CB
             for (Object payload : payloads) {
                 if (payload == REFRESH_ITEM) {
                     CardView cardView = holder.getView(R.id.card_view);
-                    cardView.setCardBackgroundColor(ContextCompat.getColor(holder.itemView.getContext(), item.isSelect() ? R.color.tools_annot_list_item_select_bg_color : R.color.tools_color_primary));
+                    int selectColor = ContextCompat.getColor(holder.itemView.getContext(), R.color.tools_annot_list_item_select_bg_color);
+                    int normalColor = MaterialColors.getColor(holder.itemView.getContext(), android.R.attr.colorPrimary,
+                            ContextCompat.getColor(holder.itemView.getContext(), R.color.tools_color_primary));
+                    cardView.setCardBackgroundColor(item.isSelect() ? selectColor : normalColor);
                     refreshAnnotColor(holder, item);
                 }
             }
@@ -67,7 +74,7 @@ public class CPDFFormToolListAdapter extends CBaseQuickAdapter<CFormToolBean, CB
         if (item.isSelect()) {
             holder.setImageTintList(R.id.iv_annot_type, ColorStateList.valueOf(ContextCompat.getColor(context, R.color.tools_annot_icon_select_color)));
         } else {
-            holder.setImageTintList(R.id.iv_annot_type, ColorStateList.valueOf(ContextCompat.getColor(context, R.color.tools_text_color_primary)));
+            holder.setImageTintList(R.id.iv_annot_type, ColorStateList.valueOf(MaterialColors.getColor(context, R.attr.colorOnPrimary, ContextCompat.getColor(context, R.color.tools_text_color_primary))));
         }
     }
 

+ 1 - 1
ComPDFKit_Tools/src/main/java/com/compdfkit/tools/forms/pdfproperties/option/select/CFormOptionSelectDialogFragment.java

@@ -56,7 +56,7 @@ public class CFormOptionSelectDialogFragment extends CBasicBottomSheetDialogFrag
 
     @Override
     protected int getStyle() {
-        return R.style.Tools_Base_Theme_BasicBottomSheetDialogStyle_TopCorners;
+        return CViewUtils.getThemeAttrResourceId(getContext().getTheme(), R.attr.compdfkit_BottomSheetDialog_Transparent_Theme);
     }
 
 

+ 1 - 1
ComPDFKit_Tools/src/main/java/com/compdfkit/tools/forms/pdfproperties/pdfsign/CustomSignatureWidgetImpl.java

@@ -33,7 +33,7 @@ public class CustomSignatureWidgetImpl extends CPDFSignatureWidgetImpl {
     public void onSignatureWidgetFocused(CPDFSignatureWidget cpdfSignatureWidget) {
         CStyleManager styleManager = new CStyleManager(this, pageView);
         CStyleDialogFragment styleDialogFragment = CStyleDialogFragment.newInstance(styleManager.getStyle(CStyleType.FORM_SIGNATURE_FIELDS));
-        CStyleUIParams styleUiParams = CStyleUIParams.defaultStyle(CStyleType.FORM_SIGNATURE_FIELDS);
+        CStyleUIParams styleUiParams = CStyleUIParams.defaultStyle(pageView.getContext(), CStyleType.FORM_SIGNATURE_FIELDS);
         styleDialogFragment.setStyleUiConfig(styleUiParams);
         styleDialogFragment.setStyleDialogDismissListener(() -> {
             CAnnotStyle annotStyle = styleDialogFragment.getAnnotStyle();

+ 1 - 1
ComPDFKit_Tools/src/main/java/com/compdfkit/tools/forms/pdfproperties/pdfsign/SignatureWidgetImpl.java

@@ -114,7 +114,7 @@ public class SignatureWidgetImpl extends CPDFSignatureWidgetImpl {
     private void fillElectronicSignature(){
         CStyleManager styleManager = new CStyleManager(this, pageView);
         CStyleDialogFragment styleDialogFragment = CStyleDialogFragment.newInstance(styleManager.getStyle(CStyleType.FORM_SIGNATURE_FIELDS));
-        CStyleUIParams styleUiParams = CStyleUIParams.defaultStyle(CStyleType.FORM_SIGNATURE_FIELDS);
+        CStyleUIParams styleUiParams = CStyleUIParams.defaultStyle(pageView.getContext(), CStyleType.FORM_SIGNATURE_FIELDS);
         styleDialogFragment.setStyleUiConfig(styleUiParams);
         styleDialogFragment.setStyleDialogDismissListener(() -> {
             CAnnotStyle annotStyle = styleDialogFragment.getAnnotStyle();

+ 14 - 7
ComPDFKit_Tools/src/main/java/com/compdfkit/tools/security/encryption/CDocumentEncryptionDialog.java

@@ -36,6 +36,7 @@ import com.compdfkit.core.document.CPDFDocumentPermissionInfo;
 import com.compdfkit.tools.R;
 import com.compdfkit.tools.common.basic.fragment.CBasicBottomSheetDialogFragment;
 import com.compdfkit.tools.common.utils.CFileUtils;
+import com.compdfkit.tools.common.utils.CLog;
 import com.compdfkit.tools.common.utils.CPermissionUtil;
 import com.compdfkit.tools.common.utils.CToastUtil;
 import com.compdfkit.tools.common.utils.activitycontracts.CMultiplePermissionResultLauncher;
@@ -43,6 +44,7 @@ import com.compdfkit.tools.common.utils.threadpools.CThreadPoolUtils;
 import com.compdfkit.tools.common.utils.viewutils.CViewUtils;
 import com.compdfkit.tools.common.views.CToolBar;
 import com.compdfkit.tools.common.views.directory.CFileDirectoryDialog;
+import com.google.android.material.color.MaterialColors;
 
 import java.io.File;
 
@@ -113,11 +115,6 @@ public class CDocumentEncryptionDialog extends CBasicBottomSheetDialogFragment i
     }
 
 
-    @Override
-    protected int getStyle() {
-        return R.style.Tools_Base_Theme_BasicBottomSheetDialogStyle_FillScreen;
-    }
-
     @Override
     protected boolean fullScreen() {
         return true;
@@ -308,7 +305,12 @@ public class CDocumentEncryptionDialog extends CBasicBottomSheetDialogFragment i
     }
 
     private void setTextViewEnable(TextView textView, boolean enable) {
-        textView.setTextColor(ContextCompat.getColor(getContext(), enable ? R.color.tools_text_color_primary : R.color.tools_text_color_disable));
+        if (enable){
+            textView.setTextColor(MaterialColors.getColor(getContext(), android.R.attr.textColorPrimary,
+                    ContextCompat.getColor(getContext(), R.color.tools_text_color_primary)));
+        }else {
+            textView.setTextColor(ContextCompat.getColor(getContext(), R.color.tools_text_color_disable));
+        }
         textView.setEnabled(enable);
     }
 
@@ -396,7 +398,12 @@ public class CDocumentEncryptionDialog extends CBasicBottomSheetDialogFragment i
                     // Save to specified directory
                     result = document.saveAs(filePath, false);
                 }
-                document.close();
+                boolean shouleReloadDocument = document.shouleReloadDocument();
+                CLog.e("ComPDFKit", "是否需要重新加载文档:" + shouleReloadDocument);
+                if (shouleReloadDocument) {
+                    CLog.e("ComPDFKit", "重新加载文档---");
+                    document.reload();
+                }
                 if (getActivity() != null) {
                     getActivity().runOnUiThread(() -> {
                         if (encryptionResultListener != null) {

+ 2 - 4
ComPDFKit_Tools/src/main/java/com/compdfkit/tools/security/encryption/CInputOwnerPwdDialog.java

@@ -28,6 +28,7 @@ import androidx.fragment.app.DialogFragment;
 
 import com.compdfkit.core.document.CPDFDocument;
 import com.compdfkit.tools.R;
+import com.compdfkit.tools.common.utils.viewutils.CViewUtils;
 
 
 public class CInputOwnerPwdDialog extends DialogFragment {
@@ -72,15 +73,12 @@ public class CInputOwnerPwdDialog extends DialogFragment {
     @Override
     public void onCreate(@Nullable Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
-        setStyle(STYLE_NO_TITLE, R.style.tools_dialog_theme);
+        setStyle(STYLE_NO_TITLE, CViewUtils.getThemeAttrResourceId(getContext().getTheme(), R.attr.dialogTheme));
     }
 
     @Nullable
     @Override
     public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
-        if (getDialog() != null && getDialog().getWindow() != null) {
-            getDialog().getWindow().setBackgroundDrawableResource(R.drawable.tools_dialog_background);
-        }
         View rootView = inflater.inflate(R.layout.tools_cpdf_security_input_owner_pwd_dialog, container, false);
         etPassword = rootView.findViewById(R.id.et_password);
         btnCancel = rootView.findViewById(R.id.btn_cancel);

+ 8 - 5
ComPDFKit_Tools/src/main/java/com/compdfkit/tools/security/watermark/CWatermarkEditDialog.java

@@ -115,7 +115,11 @@ public class CWatermarkEditDialog extends CBasicBottomSheetDialogFragment implem
 
     @Override
     protected int getStyle() {
-        return R.style.Tools_Base_Theme_BasicBottomSheetDialogStyle_FillScreen;
+        int themeId = CViewUtils.getThemeAttrResourceId(getContext().getTheme(), R.attr.compdfkit_BottomSheetDialog_Theme);
+        if (themeId == 0){
+            themeId  = R.style.ComPDFKit_Theme_BottomSheetDialog_Light;
+        }
+        return themeId;
     }
 
     @Override
@@ -231,15 +235,11 @@ public class CWatermarkEditDialog extends CBasicBottomSheetDialogFragment implem
                     @Override
                     protected String onRun() {
                         try {
-                            long time = System.currentTimeMillis();
                             boolean success = ((CWatermarkPageFragment) fragment).applyWatermark();
-                            CLog.e("水印", "生成水印耗时:" +(System.currentTimeMillis() - time));
-                            long time2 =System.currentTimeMillis();
                             if (!success) {
                                 return null;
                             }
                             boolean result = document.saveAs(pdfFile.getAbsolutePath(), false);
-                            CLog.e("水印", "水印文件保存耗时:" +(System.currentTimeMillis() - time2));
                             return result ? pdfFile.getAbsolutePath() : null;
                         } catch (Exception e) {
 
@@ -249,6 +249,9 @@ public class CWatermarkEditDialog extends CBasicBottomSheetDialogFragment implem
 
                     @Override
                     protected void onSuccess(String result) {
+                        if (document.shouleReloadDocument()) {
+                            document.reload();
+                        }
                         if (completeListener != null) {
                             completeListener.complete(result);
                         }

+ 2 - 2
ComPDFKit_Tools/src/main/java/com/compdfkit/tools/security/watermark/pdfproperties/CWatermarkImageStyleFragment.java

@@ -17,12 +17,12 @@ import android.view.View;
 import android.view.ViewGroup;
 import android.widget.AdapterView;
 import android.widget.Spinner;
+import android.widget.Switch;
 
 import androidx.activity.result.ActivityResultLauncher;
 import androidx.annotation.NonNull;
 import androidx.annotation.Nullable;
 import androidx.appcompat.widget.AppCompatImageView;
-import androidx.appcompat.widget.SwitchCompat;
 
 import com.compdfkit.tools.R;
 import com.compdfkit.tools.common.utils.CFileUtils;
@@ -51,7 +51,7 @@ public class CWatermarkImageStyleFragment extends CBasicPropertiesFragment imple
 
     private Spinner pageRangeSpinner;
 
-    private SwitchCompat swTile;
+    private Switch swTile;
 
     private AppCompatImageView ivLocationTop;
 

+ 2 - 2
ComPDFKit_Tools/src/main/java/com/compdfkit/tools/security/watermark/pdfproperties/CWatermarkTextStyleFragment.java

@@ -16,11 +16,11 @@ import android.view.View;
 import android.view.ViewGroup;
 import android.widget.AdapterView;
 import android.widget.Spinner;
+import android.widget.Switch;
 
 import androidx.annotation.NonNull;
 import androidx.annotation.Nullable;
 import androidx.appcompat.widget.AppCompatImageView;
-import androidx.appcompat.widget.SwitchCompat;
 
 import com.compdfkit.tools.R;
 import com.compdfkit.tools.common.utils.view.colorpicker.CColorPickerFragment;
@@ -49,7 +49,7 @@ public class CWatermarkTextStyleFragment extends CBasicPropertiesFragment implem
 
     private Spinner pageRangeSpinner;
 
-    private SwitchCompat swTile;
+    private Switch swTile;
 
     private AppCompatImageView ivLocationTop;
 

+ 2 - 0
ComPDFKit_Tools/src/main/java/com/compdfkit/tools/security/watermark/view/CWatermarkView.java

@@ -872,6 +872,7 @@ public class CWatermarkView extends View {
                     clickEventActionListener.callback(event, mScale, mCenterPoint);
                 }
                 break;
+            default:break;
         }
         return true;
     }
@@ -1057,6 +1058,7 @@ public class CWatermarkView extends View {
                 return mRBPoint;
             case LEFT_BOTTOM:
                 return mLBPoint;
+            default:break;
         }
         return mLTPoint;
     }

+ 1 - 1
ComPDFKit_Tools/src/main/java/com/compdfkit/tools/signature/importcert/create/CImportCertificateDigitalDialog.java

@@ -115,7 +115,7 @@ public class CImportCertificateDigitalDialog extends CBasicBottomSheetDialogFrag
 
     @Override
     protected int getStyle() {
-        return R.style.Tools_Base_Theme_BasicBottomSheetDialogStyle_TopCorners;
+        return CViewUtils.getThemeAttrResourceId(getContext().getTheme(), R.attr.compdfkit_BottomSheetDialog_Transparent_Theme);
     }
 
     @Override

+ 7 - 3
ComPDFKit_Tools/src/main/java/com/compdfkit/tools/signature/importcert/create/CPDFSelectDigitalSignatureDialog.java

@@ -26,12 +26,15 @@ import androidx.activity.result.ActivityResultLauncher;
 import androidx.activity.result.contract.ActivityResultContracts;
 import androidx.annotation.NonNull;
 import androidx.annotation.Nullable;
+import androidx.appcompat.widget.AppCompatButton;
 import androidx.fragment.app.DialogFragment;
 import androidx.fragment.app.Fragment;
 
 import com.compdfkit.tools.R;
 import com.compdfkit.tools.annotation.pdfproperties.pdfsignature.CAddSignatureActivity;
+import com.compdfkit.tools.common.pdf.CPDFApplyConfigUtil;
 import com.compdfkit.tools.common.utils.CFileUtils;
+import com.compdfkit.tools.common.utils.viewutils.CViewUtils;
 import com.compdfkit.tools.signature.interfaces.COnSelectCertFileListener;
 
 public class CPDFSelectDigitalSignatureDialog extends DialogFragment implements View.OnClickListener {
@@ -77,6 +80,7 @@ public class CPDFSelectDigitalSignatureDialog extends DialogFragment implements
         intent.putExtra(CAddSignatureActivity.EXTRA_TITLE, getString(R.string.tools_customize_the_signature_appearance));
         intent.putExtra(CAddSignatureActivity.EXTRA_SCREEN_ORIENTATION, ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
         intent.putExtra(CAddSignatureActivity.EXTRA_HIDE_TYPEFACE, true);
+        intent.putExtra(CAddSignatureActivity.EXTRA_THEME_ID, CPDFApplyConfigUtil.getInstance().getThemeId());
         addSignatureLauncher.launch(intent);
     }
 
@@ -99,7 +103,7 @@ public class CPDFSelectDigitalSignatureDialog extends DialogFragment implements
     @Override
     public void onCreate(@Nullable Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
-        setStyle(STYLE_NO_TITLE, R.style.tools_dialog_theme);
+        setStyle(STYLE_NO_TITLE, CViewUtils.getThemeAttrResourceId(getContext().getTheme(), R.attr.dialogTheme));
     }
 
     @Nullable
@@ -110,8 +114,8 @@ public class CPDFSelectDigitalSignatureDialog extends DialogFragment implements
         }
         View view = inflater.inflate(R.layout.tools_sign_digital_sign_select_dialog, container, false);
         rgType = view.findViewById(R.id.rg_type);
-        Button btnCancel = view.findViewById(R.id.btn_cancel);
-        Button btnDone = view.findViewById(R.id.btn_confirm);
+        AppCompatButton btnCancel = view.findViewById(R.id.btn_cancel);
+        AppCompatButton btnDone = view.findViewById(R.id.btn_confirm);
         btnCancel.setOnClickListener(this);
         btnDone.setOnClickListener(this);
         return view;

+ 5 - 3
ComPDFKit_Tools/src/main/java/com/compdfkit/tools/signature/importcert/create/CSelectSignTypeDialog.java

@@ -19,9 +19,11 @@ import android.widget.RadioGroup;
 
 import androidx.annotation.NonNull;
 import androidx.annotation.Nullable;
+import androidx.appcompat.widget.AppCompatButton;
 import androidx.fragment.app.DialogFragment;
 
 import com.compdfkit.tools.R;
+import com.compdfkit.tools.common.utils.viewutils.CViewUtils;
 
 public class CSelectSignTypeDialog extends DialogFragment implements View.OnClickListener {
 
@@ -46,7 +48,7 @@ public class CSelectSignTypeDialog extends DialogFragment implements View.OnClic
     @Override
     public void onCreate(@Nullable Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
-        setStyle(STYLE_NO_TITLE, R.style.tools_dialog_theme);
+        setStyle(STYLE_NO_TITLE, CViewUtils.getThemeAttrResourceId(getContext().getTheme(), R.attr.dialogTheme));
     }
 
     @Nullable
@@ -57,8 +59,8 @@ public class CSelectSignTypeDialog extends DialogFragment implements View.OnClic
         }
         View view = inflater.inflate(R.layout.tools_sign_select_sign_type_dialog, container, false);
         rgType = view.findViewById(R.id.rg_type);
-        Button btnCancel = view.findViewById(R.id.btn_cancel);
-        Button btnDone = view.findViewById(R.id.btn_confirm);
+        AppCompatButton btnCancel = view.findViewById(R.id.btn_cancel);
+        AppCompatButton btnDone = view.findViewById(R.id.btn_confirm);
         btnCancel.setOnClickListener(this);
         btnDone.setOnClickListener(this);
         return view;

+ 2 - 1
ComPDFKit_Tools/src/main/java/com/compdfkit/tools/signature/importcert/create/CreateCertificateDigitalDialog.java

@@ -40,6 +40,7 @@ import com.compdfkit.tools.common.utils.CToastUtil;
 import com.compdfkit.tools.common.utils.activitycontracts.CMultiplePermissionResultLauncher;
 import com.compdfkit.tools.common.utils.threadpools.CThreadPoolUtils;
 import com.compdfkit.tools.common.utils.view.CEditText;
+import com.compdfkit.tools.common.utils.viewutils.CViewUtils;
 import com.compdfkit.tools.common.views.directory.CFileDirectoryDialog;
 import com.compdfkit.tools.signature.CertificateDigitalDatas;
 import com.compdfkit.tools.signature.importcert.create.adapter.CountryReginSpinnerAdapter;
@@ -110,7 +111,7 @@ public class CreateCertificateDigitalDialog extends CBasicBottomSheetDialogFragm
 
     @Override
     protected int getStyle() {
-        return R.style.Tools_Base_Theme_BasicBottomSheetDialogStyle_TopCorners;
+        return CViewUtils.getThemeAttrResourceId(getContext().getTheme(), R.attr.compdfkit_BottomSheetDialog_Transparent_Theme);
     }
 
     @NonNull

+ 1 - 1
ComPDFKit_Tools/src/main/java/com/compdfkit/tools/signature/info/CertDetailsDialog.java

@@ -58,7 +58,7 @@ public class CertDetailsDialog extends CBasicBottomSheetDialogFragment {
 
     @Override
     protected int getStyle() {
-        return  R.style.Tools_Base_Theme_BasicBottomSheetDialogStyle;
+        return  CViewUtils.getThemeAttrResourceId(getContext().getTheme(), R.attr.compdfkit_BottomSheetDialog_Theme);
     }
 
     @Override

+ 5 - 1
ComPDFKit_Tools/src/main/java/com/compdfkit/tools/signature/info/CertDetailsListAdapter.java

@@ -25,6 +25,7 @@ import com.compdfkit.tools.common.utils.adapter.CBaseQuickAdapter;
 import com.compdfkit.tools.common.utils.adapter.CBaseQuickViewHolder;
 import com.compdfkit.tools.common.utils.viewutils.CDimensUtils;
 import com.compdfkit.tools.signature.bean.CPDFOwnerItemData;
+import com.google.android.material.color.MaterialColors;
 
 import java.util.ArrayList;
 import java.util.List;
@@ -52,7 +53,10 @@ public class CertDetailsListAdapter extends CBaseQuickAdapter<CPDFOwnerItemData,
         holder.setText(R.id.tv_item_title, item.getContent());
         ConstraintLayout.LayoutParams layoutParams = (ConstraintLayout.LayoutParams) holder.getView(R.id.iv_item_arrow).getLayoutParams();
         layoutParams.setMarginStart(getLevelMargin(holder.itemView.getContext(), position +1));
-        holder.setBackgroundColor(R.id.cl_root, ContextCompat.getColor(holder.itemView.getContext(), position == 0 ? R.color.tools_reader_setting_head_bg_color : R.color.tools_color_background));
+        holder.setBackgroundColor(R.id.cl_root, MaterialColors.getColor(holder.itemView.getContext(), position == 0 ?
+                R.attr.compdfkit_HeadItem_BackgroundColor : android.R.attr.colorBackground,
+                ContextCompat.getColor(holder.itemView.getContext(), R.color.tools_color_background)));
+
         AppCompatTextView title = holder.getView(R.id.tv_item_title);
         title.setTypeface(position == 0 ? Typeface.DEFAULT_BOLD : Typeface.DEFAULT);
         holder.setImageResource(R.id.iv_item_arrow, item.isExpanded() ? R.drawable.tools_ic_arrow_down : R.drawable.tools_ic_right);

+ 0 - 5
ComPDFKit_Tools/src/main/java/com/compdfkit/tools/signature/info/CertDigitalSignAttributesDialog.java

@@ -64,11 +64,6 @@ public class CertDigitalSignAttributesDialog extends CBasicBottomSheetDialogFrag
         this.signature = signature;
     }
 
-    @Override
-    protected int getStyle() {
-        return R.style.Tools_Base_Theme_BasicBottomSheetDialogStyle;
-    }
-
     @Override
     protected boolean fullScreen() {
         return true;

+ 2 - 1
ComPDFKit_Tools/src/main/java/com/compdfkit/tools/signature/info/CertDigitalSignInfoDialog.java

@@ -29,6 +29,7 @@ import com.compdfkit.tools.common.basic.fragment.CBasicBottomSheetDialogFragment
 import com.compdfkit.tools.common.interfaces.COnDialogDismissListener;
 import com.compdfkit.tools.common.utils.date.CDateUtil;
 import com.compdfkit.tools.common.utils.threadpools.CThreadPoolUtils;
+import com.compdfkit.tools.common.utils.viewutils.CViewUtils;
 import com.compdfkit.tools.signature.CertificateDigitalDatas;
 import com.compdfkit.tools.signature.bean.CPDFSignatureStatusInfo;
 
@@ -71,7 +72,7 @@ public class CertDigitalSignInfoDialog extends CBasicBottomSheetDialogFragment i
 
     @Override
     protected int getStyle() {
-        return R.style.Tools_Base_Theme_BasicBottomSheetDialogStyle_TopCorners;
+        return CViewUtils.getThemeAttrResourceId(getContext().getTheme(), R.attr.compdfkit_BottomSheetDialog_Transparent_Theme);
     }
 
     @Override

+ 0 - 5
ComPDFKit_Tools/src/main/java/com/compdfkit/tools/signature/info/signlist/CPDFCertDigitalSignListDialog.java

@@ -54,11 +54,6 @@ public class CPDFCertDigitalSignListDialog extends CBasicBottomSheetDialogFragme
         return fragment;
     }
 
-    @Override
-    protected int getStyle() {
-        return R.style.Tools_Base_Theme_BasicBottomSheetDialogStyle;
-    }
-
     @Override
     protected boolean fullScreen() {
         return true;

+ 13 - 7
ComPDFKit_Tools/src/main/java/com/compdfkit/tools/signature/pdfproperties/pdfsign/CDigitalSignStylePreviewView.java

@@ -4,6 +4,7 @@ package com.compdfkit.tools.signature.pdfproperties.pdfsign;
 import android.content.Context;
 import android.graphics.Bitmap;
 import android.graphics.BitmapFactory;
+import android.graphics.Canvas;
 import android.text.TextUtils;
 import android.util.AttributeSet;
 import android.view.Gravity;
@@ -25,6 +26,7 @@ import com.compdfkit.tools.common.utils.CFileUtils;
 import com.compdfkit.tools.common.utils.date.CDateUtil;
 import com.compdfkit.tools.common.utils.glide.GlideApp;
 import com.compdfkit.tools.common.utils.image.CBitmapUtil;
+import com.compdfkit.tools.common.utils.image.CImageUtil;
 
 import java.io.File;
 import java.util.ArrayList;
@@ -64,7 +66,7 @@ public class CDigitalSignStylePreviewView extends FrameLayout {
 
     private boolean showDistinguishableName;
 
-    private boolean showSDKVersion;
+    private boolean showSdkVersion;
 
     private boolean showTab;
 
@@ -122,8 +124,8 @@ public class CDigitalSignStylePreviewView extends FrameLayout {
         update();
     }
 
-    public void setShowSDKVersion(boolean show) {
-        this.showSDKVersion = show;
+    public void setShowSdkVersion(boolean show) {
+        this.showSdkVersion = show;
         update();
     }
 
@@ -242,7 +244,7 @@ public class CDigitalSignStylePreviewView extends FrameLayout {
         if (showDistinguishableName) {
             appendData(list, R.string.tools_dn, distinguishableName);
         }
-        if (showSDKVersion) {
+        if (showSdkVersion) {
             appendData(list, R.string.tools_compdfkit_versions, CPDFSdk.getSDKVersion());
         }
         if (showLocation) {
@@ -271,13 +273,17 @@ public class CDigitalSignStylePreviewView extends FrameLayout {
     }
 
     public Bitmap getBitmap() {
-        buildDrawingCache();
-        Bitmap bitmap = Bitmap.createBitmap(getDrawingCache());
-        return CBitmapUtil.cropTransparent(bitmap);
+        return CImageUtil.getViewBitmap(this);
     }
 
     public enum Alignment {
+        /**
+         * content align left
+         */
         left,
+        /**
+         * content align right
+         */
         right
     }
 

+ 22 - 22
ComPDFKit_Tools/src/main/java/com/compdfkit/tools/signature/preview/CDigitalSignStylePreviewDialog.java

@@ -123,7 +123,7 @@ public class CDigitalSignStylePreviewDialog extends CBasicBottomSheetDialogFragm
 
     @Override
     protected int getStyle() {
-        return  R.style.Tools_Base_Theme_BasicBottomSheetDialogStyle;
+        return CViewUtils.getThemeAttrResourceId(getContext().getTheme(), R.attr.compdfkit_BottomSheetDialog_Theme);
     }
 
     @Override
@@ -176,7 +176,7 @@ public class CDigitalSignStylePreviewDialog extends CBasicBottomSheetDialogFragm
         initData();
     }
 
-    private void initListener(){
+    private void initListener() {
         clPosition.setOnClickListener(this);
         clReason.setOnClickListener(this);
         toolBar.setBackBtnClickListener(this);
@@ -184,22 +184,22 @@ public class CDigitalSignStylePreviewDialog extends CBasicBottomSheetDialogFragm
         ivAlignmentLeft.setOnClickListener(this);
         ivAlignmentRight.setOnClickListener(this);
         positionView.setCheckedChangeListener((buttonView, isChecked) -> {
-            if (isChecked){
+            if (isChecked) {
                 tvPositionDesc.setText(positionView.getPosition());
-            }else {
+            } else {
                 previewView.setLocation("");
                 tvPositionDesc.setText(R.string.tools_close);
             }
             previewView.setShowLocation(isChecked);
         });
         positionView.setTextChangedListener((s, start, before, count) -> {
-            if (positionView.isEnablePosition()){
+            if (positionView.isEnablePosition()) {
                 tvPositionDesc.setText(s);
-                previewView.setLocation(TextUtils.isEmpty(s) ?"" : s.toString());
+                previewView.setLocation(TextUtils.isEmpty(s) ? "" : s.toString());
             }
         });
         reasonView.setOnCheckedChangeListener((buttonView, isChecked) -> {
-            if (isChecked){
+            if (isChecked) {
                 tvReasonDesc.setText(reasonView.getReason());
             } else {
                 tvReasonDesc.setText(R.string.tools_close);
@@ -208,7 +208,7 @@ public class CDigitalSignStylePreviewDialog extends CBasicBottomSheetDialogFragm
             previewView.setReason(reasonView.getReason());
         });
         reasonView.setSelectReasonListener(reason -> {
-            if (reasonView.isEnableReason()){
+            if (reasonView.isEnableReason()) {
                 tvReasonDesc.setText(reason);
                 previewView.setReason(reason);
             }
@@ -217,21 +217,21 @@ public class CDigitalSignStylePreviewDialog extends CBasicBottomSheetDialogFragm
         cbName.setOnCheckedChangeListener((buttonView, isChecked) -> previewView.setShowName(isChecked));
         cbDate.setOnCheckedChangeListener((buttonView, isChecked) -> previewView.setShowDate(isChecked));
         cbDistinguishableName.setOnCheckedChangeListener((buttonView, isChecked) -> previewView.setShowDistinguishableName(isChecked));
-        cbSDKVersion.setOnCheckedChangeListener((buttonView, isChecked) -> previewView.setShowSDKVersion(isChecked));
+        cbSDKVersion.setOnCheckedChangeListener((buttonView, isChecked) -> previewView.setShowSdkVersion(isChecked));
         cbLogo.setOnCheckedChangeListener((buttonView, isChecked) -> previewView.setShowLogo(isChecked));
     }
 
-    private void initData(){
+    private void initData() {
         if (getArguments() != null) {
             String signImagePath = getArguments().getString(EXTRA_SIGN_IMAGE_PATH, "");
             tvAlignment.setVisibility(TextUtils.isEmpty(signImagePath) ? View.GONE : View.VISIBLE);
             llAlignment.setVisibility(TextUtils.isEmpty(signImagePath) ? View.GONE : View.VISIBLE);
             previewView.setSignImage(signImagePath);
-            if (!TextUtils.isEmpty(getArguments().getString(EXTRA_COMMON_NAME))){
+            if (!TextUtils.isEmpty(getArguments().getString(EXTRA_COMMON_NAME))) {
                 String commonName = getArguments().getString(EXTRA_COMMON_NAME);
                 previewView.setCommonName(commonName);
             }
-            if (!TextUtils.isEmpty(getArguments().getString(EXTRA_DIGTINGUISHABLE_NAME))){
+            if (!TextUtils.isEmpty(getArguments().getString(EXTRA_DIGTINGUISHABLE_NAME))) {
                 previewView.setDistinguishableName(getArguments().getString(EXTRA_DIGTINGUISHABLE_NAME));
             }
         }
@@ -239,7 +239,7 @@ public class CDigitalSignStylePreviewDialog extends CBasicBottomSheetDialogFragm
         previewView.setShowDate(cbDate.isChecked());
         previewView.setShowLogo(cbLogo.isChecked());
         previewView.setShowDistinguishableName(cbDistinguishableName.isChecked());
-        previewView.setShowSDKVersion(cbSDKVersion.isChecked());
+        previewView.setShowSdkVersion(cbSDKVersion.isChecked());
         previewView.setShowTab(cbTab.isChecked());
         ivAlignmentLeft.setSelected(true);
     }
@@ -254,16 +254,16 @@ public class CDigitalSignStylePreviewDialog extends CBasicBottomSheetDialogFragm
             reasonView.setVisibility(View.VISIBLE);
             btnSave.setVisibility(View.GONE);
             slMain.setVisibility(View.GONE);
-        } else if (v.getId() == toolBar.getIvToolBarBackBtn().getId()){
+        } else if (v.getId() == toolBar.getIvToolBarBackBtn().getId()) {
             CViewUtils.hideKeyboard(getDialog());
-            if (positionView.getVisibility() == View.VISIBLE){
+            if (positionView.getVisibility() == View.VISIBLE) {
                 positionView.setVisibility(View.GONE);
                 slMain.setVisibility(View.VISIBLE);
                 btnSave.setVisibility(View.VISIBLE);
                 positionView.hideKeyboard();
                 return;
             }
-            if (reasonView.getVisibility() == View.VISIBLE){
+            if (reasonView.getVisibility() == View.VISIBLE) {
                 reasonView.setVisibility(View.GONE);
                 slMain.setVisibility(View.VISIBLE);
                 btnSave.setVisibility(View.VISIBLE);
@@ -278,7 +278,7 @@ public class CDigitalSignStylePreviewDialog extends CBasicBottomSheetDialogFragm
             ivAlignmentLeft.setSelected(false);
             ivAlignmentRight.setSelected(true);
             previewView.setContentAlignLeft(true);
-        } else if (v.getId() == R.id.btn_save){
+        } else if (v.getId() == R.id.btn_save) {
             CViewUtils.hideKeyboard(getDialog());
             if (Build.VERSION.SDK_INT < CPermissionUtil.VERSION_R) {
                 multiplePermissionResultLauncher.launch(CPermissionUtil.STORAGE_PERMISSIONS, result -> {
@@ -290,20 +290,20 @@ public class CDigitalSignStylePreviewDialog extends CBasicBottomSheetDialogFragm
                         }
                     }
                 });
-            }else {
+            } else {
                 save();
             }
 
         }
     }
 
-    private void save(){
-        if (positionView.getVisibility() == View.VISIBLE){
+    private void save() {
+        if (positionView.getVisibility() == View.VISIBLE) {
             positionView.setVisibility(View.GONE);
             slMain.setVisibility(View.VISIBLE);
             return;
         }
-        if (reasonView.getVisibility() == View.VISIBLE){
+        if (reasonView.getVisibility() == View.VISIBLE) {
             reasonView.setVisibility(View.GONE);
             slMain.setVisibility(View.VISIBLE);
             return;
@@ -320,7 +320,7 @@ public class CDigitalSignStylePreviewDialog extends CBasicBottomSheetDialogFragm
         this.resultDigitalSignListener = resultDigitalSignListener;
     }
 
-    public interface COnResultDigitalSignListener{
+    public interface COnResultDigitalSignListener {
         void sign(String signPreviewImagePath, CPDFDigitalSigConfig config, String location, String reason);
     }
 }

+ 23 - 4
ComPDFKit_Tools/src/main/java/com/compdfkit/tools/viewer/pdfdisplaysettings/CPDFDisplaySettingDialogFragment.java

@@ -10,6 +10,8 @@
 package com.compdfkit.tools.viewer.pdfdisplaysettings;
 
 
+import android.graphics.drawable.ColorDrawable;
+import android.graphics.drawable.Drawable;
 import android.os.Bundle;
 import android.view.LayoutInflater;
 import android.view.View;
@@ -23,7 +25,9 @@ import androidx.annotation.Nullable;
 import androidx.appcompat.widget.AppCompatRadioButton;
 import androidx.core.content.ContextCompat;
 
+import com.compdfkit.core.utils.ColorUtils;
 import com.compdfkit.tools.R;
+import com.compdfkit.tools.common.utils.CLog;
 import com.compdfkit.tools.common.utils.dialog.CDialogFragmentUtil;
 import com.compdfkit.tools.common.utils.viewutils.CViewUtils;
 import com.compdfkit.tools.common.views.CToolBar;
@@ -31,6 +35,7 @@ import com.compdfkit.tools.common.views.pdfview.CPDFViewCtrl;
 import com.compdfkit.ui.reader.CPDFReaderView;
 import com.google.android.material.bottomsheet.BottomSheetBehavior;
 import com.google.android.material.bottomsheet.BottomSheetDialogFragment;
+import com.google.android.material.shape.MaterialShapeDrawable;
 
 public class CPDFDisplaySettingDialogFragment extends BottomSheetDialogFragment
         implements RadioGroup.OnCheckedChangeListener, CompoundButton.OnCheckedChangeListener {
@@ -78,9 +83,16 @@ public class CPDFDisplaySettingDialogFragment extends BottomSheetDialogFragment
     @Override
     public void onCreate(@Nullable Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
-        setStyle(STYLE_NORMAL, R.style.Tools_Base_Theme_BasicBottomSheetDialogStyle);
+        int themeId = R.style.ComPDFKit_Theme_BottomSheetDialog_Light_SettingsDialog;
+        int isLightThemeValue = CViewUtils.getThemeAttrData(getContext().getTheme(), R.attr.isLightTheme);
+        boolean isDarkTheme = isLightThemeValue == 0;
+        if (isDarkTheme){
+            themeId = R.style.ComPDFKit_Theme_BottomSheetDialog_Dark_SettingsDialog;
+        }
+        setStyle(STYLE_NORMAL, themeId);
     }
 
+
     @Override
     public void onStart() {
         super.onStart();
@@ -154,12 +166,19 @@ public class CPDFDisplaySettingDialogFragment extends BottomSheetDialogFragment
         }
         if (checkedId == R.id.r_btn_light_mode) {
             setReaderBackgroundColor(ContextCompat.getColor(getContext(), R.color.tools_themes_light));
+            pdfView.setBackgroundColor(ContextCompat.getColor(getContext(), R.color.tools_pdf_view_ctrl_background_color));
         } else if (checkedId == R.id.r_btn_dark_mode) {
-            setReaderBackgroundColor(ContextCompat.getColor(getContext(), R.color.tools_themes_dark));
+            int color = ContextCompat.getColor(getContext(), R.color.tools_themes_dark);
+            setReaderBackgroundColor(color);
+            pdfView.setBackgroundColor(CViewUtils.getColor(color, 190));
         } else if (checkedId == R.id.r_btn_sepia_mode) {
-            setReaderBackgroundColor(ContextCompat.getColor(getContext(), R.color.tools_themes_sepia));
+            int color = ContextCompat.getColor(getContext(), R.color.tools_themes_sepia);
+            setReaderBackgroundColor(color);
+            pdfView.setBackgroundColor(CViewUtils.getColor(color, 190));
         } else if (checkedId == R.id.r_btn_reseda_mode) {
-            setReaderBackgroundColor(ContextCompat.getColor(getContext(), R.color.tools_themes_reseda));
+            int color = ContextCompat.getColor(getContext(), R.color.tools_themes_reseda);
+            setReaderBackgroundColor(color);
+            pdfView.setBackgroundColor(CViewUtils.getColor(color, 190));
         } else if (checkedId == R.id.r_btn_single_page) {
             if (pdfView != null) {
                 pdfView.getCPdfReaderView().setDoublePageMode(false);

+ 6 - 0
ComPDFKit_Tools/src/main/java/com/compdfkit/tools/viewer/pdfinfo/CPDFDocumentInfoDialogFragment.java

@@ -73,6 +73,12 @@ public class CPDFDocumentInfoDialogFragment extends BottomSheetDialogFragment {
         this.pdfView = pdfView;
     }
 
+    @Override
+    public void onCreate(@Nullable Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+        setStyle(STYLE_NORMAL, CViewUtils.getThemeAttrResourceId(getContext().getTheme(), R.attr.compdfkit_BottomSheetDialog_Theme));
+    }
+
     @Override
     public void onStart() {
         super.onStart();

+ 3 - 2
ComPDFKit_Tools/src/main/java/com/compdfkit/tools/viewer/pdfoutline/adapter/COutlineListAdapter.java

@@ -14,12 +14,12 @@ import android.view.View;
 import android.view.ViewGroup;
 
 import androidx.constraintlayout.widget.ConstraintLayout;
-import androidx.core.content.ContextCompat;
 
 import com.compdfkit.tools.R;
 import com.compdfkit.tools.common.interfaces.COnSetPDFDisplayPageIndexListener;
 import com.compdfkit.tools.common.utils.adapter.CBaseQuickAdapter;
 import com.compdfkit.tools.common.utils.adapter.CBaseQuickViewHolder;
+import com.compdfkit.tools.common.utils.viewutils.CViewUtils;
 import com.compdfkit.tools.common.views.pdfview.CPDFViewCtrl;
 import com.compdfkit.tools.viewer.pdfoutline.bean.COutlineData;
 import com.compdfkit.tools.viewer.pdfoutline.data.COutlineDatas;
@@ -67,7 +67,8 @@ public class COutlineListAdapter extends CBaseQuickAdapter<COutlineData, CBaseQu
         holder.getView(R.id.iv_outline_item_arrow).setLayoutParams(layoutParams);
         holder.getView(R.id.iv_outline_item_arrow).setVisibility( item.childOutlineIsEmpty() ? View.INVISIBLE : View.VISIBLE);
         holder.setImageResource(R.id.iv_outline_item_arrow, item.isExpand() ? R.drawable.tools_ic_arrow_down : R.drawable.tools_ic_right);
-        holder.setBackgroundColor(R.id.cl_root, ContextCompat.getColor(holder.itemView.getContext(), item.getLevel() == 1 ? R.color.tools_reader_setting_head_bg_color : R.color.tools_color_background));
+        holder.setBackgroundColor(R.id.cl_root, CViewUtils.getThemeAttrData(holder.itemView.getContext().getTheme(),
+                item.getLevel() == 1 ? R.attr.compdfkit_HeadItem_BackgroundColor : android.R.attr.colorBackground));
         holder.itemView.setOnClickListener(v -> {
             // Check if the child outline of the item is empty
             // If the child outline is empty and an outlineClickListener is set, display the page

+ 6 - 2
ComPDFKit_Tools/src/main/java/com/compdfkit/tools/viewer/pdfsearch/CSearchReplaceResultDailogFragment.java

@@ -117,13 +117,17 @@ public class CSearchReplaceResultDailogFragment extends CBasicBottomSheetDialogF
     }
 
     ArrayList<CSearchReplaceInfo> getEditSearchReplaceInfo() {
-        if (results == null) return null;
+        if (results == null) {
+            return null;
+        }
         ArrayList<CSearchReplaceInfo> infoList = new ArrayList<>();
         for (int i = 0; i < readerView.getPageCount();i++) {
             ArrayList<CSearchReplaceInfo> selectionList = results.get(i);
 
             CPDFPage page = tpdfDocument.pageAtIndex(i);
-            if (page == null) continue;
+            if (page == null) {
+                continue;
+            }
             CPDFTextPage textPage = page.getTextPage();
 
             if (selectionList != null && selectionList.size() > 0) {

+ 1 - 1
ComPDFKit_Tools/src/main/java/com/compdfkit/tools/viewer/pdfsearch/CSearchReplaceToolbar.java

@@ -475,9 +475,9 @@ public class CSearchReplaceToolbar extends LinearLayout implements View.OnClickL
             searchResultDialog.show(fragmentManager, "searchResultDialogFragment");
             searchResultDialog.setSearchTextInfos(list);
             searchResultDialog.setOnClickSearchItemListener(clickItem -> {
+                searchResultDialog.dismiss();
                 pdfView.getCPdfReaderView().setDisplayPageIndex(clickItem.page);
                 cpdfSearch.select(clickItem.page, clickItem.textRangeIndex);
-                searchResultDialog.dismiss();
             });
         }
     }

+ 2 - 1
ComPDFKit_Tools/src/main/java/com/compdfkit/tools/viewer/pdfsearch/CSearchSettingsDialog.java

@@ -21,6 +21,7 @@ import androidx.appcompat.widget.AppCompatTextView;
 import com.compdfkit.tools.R;
 import com.compdfkit.tools.common.basic.fragment.CBasicBottomSheetDialogFragment;
 import com.compdfkit.tools.common.interfaces.COnDialogDismissListener;
+import com.compdfkit.tools.common.utils.viewutils.CViewUtils;
 import com.compdfkit.tools.common.views.pdfproperties.CPropertiesSwitchView;
 import com.google.android.material.bottomsheet.BottomSheetBehavior;
 
@@ -49,7 +50,7 @@ public class CSearchSettingsDialog extends CBasicBottomSheetDialogFragment {
 
     @Override
     protected int getStyle() {
-        return R.style.Tools_Base_Theme_BasicBottomSheetDialogStyle_TopCorners;
+        return CViewUtils.getThemeAttrResourceId(getContext().getTheme(), R.attr.compdfkit_BottomSheetDialog_Transparent_Theme);
     }
 
     @Override

+ 4 - 4
ComPDFKit_Tools/src/main/java/com/compdfkit/tools/viewer/pdfthumbnail/CPDFEditThumbnailFragment.java

@@ -42,9 +42,9 @@ public class CPDFEditThumbnailFragment extends Fragment {
 
     private CPDFPageEditDialogFragment pageEditDialogFragment = null;
 
-    public static final int updateTypeRotate = 1;
+    public static final int UPDATE_TYPE_ROTATE = 1;
 
-    public static final int updateTypeDelete = 2;
+    public static final int UPDATE_TYPE_DELETE = 2;
 
     /**
      * Creates a new instance of CPDFThumbnailFragment.
@@ -167,11 +167,11 @@ public class CPDFEditThumbnailFragment extends Fragment {
         if (getActivity() != null) {
             getActivity().runOnUiThread(()->{
                 if (thumbnailListAdapter != null && pages != null) {
-                    if (updateType == updateTypeRotate) {
+                    if (updateType == UPDATE_TYPE_ROTATE) {
                         for (int page : pages) {
                             thumbnailListAdapter.notifyItemChanged(page);
                         }
-                    } else if (updateType == updateTypeDelete) {
+                    } else if (updateType == UPDATE_TYPE_DELETE) {
                         for (int length = pages.length - 1; length >= 0; length--) {
                             thumbnailListAdapter.notifyItemRemoved(pages[length]);
                         }

+ 0 - 5
ComPDFKit_Tools/src/main/res/color/tools_annotation_format_align_color.xml

@@ -1,5 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<selector xmlns:android="http://schemas.android.com/apk/res/android">
-    <item android:color="?android:attr/colorAccent" android:state_checked="true"/>
-    <item android:color="?android:attr/colorControlHighlight"/>
-</selector>

+ 3 - 4
ComPDFKit_Tools/src/main/res/color/tools_annotation_iv_status_color.xml

@@ -1,8 +1,7 @@
 <?xml version="1.0" encoding="utf-8"?>
 <selector xmlns:android="http://schemas.android.com/apk/res/android">
-    <item android:color="@color/tools_icon_enable_color" android:state_enabled="false"/>
-    <item android:color="@color/tools_text_color_primary" android:state_enabled="true"/>
-    <item android:color="@color/tools_text_color_primary" android:state_checked="true"/>
+    <item android:color="?attr/compdfkit_textColorPrimaryNoEnable" android:state_enabled="false"/>
+    <item android:color="?android:attr/textColorPrimary" android:state_checked="true"/>
     <item android:color="@color/tools_text_color_primary" android:state_selected="true"/>
-    <item android:color="@color/tools_text_color_primary"/>
+    <item android:color="?android:attr/textColorPrimary"/>
 </selector>

+ 2 - 2
ComPDFKit_Tools/src/main/res/color/tools_font_style_iv_color.xml

@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
 <selector xmlns:android="http://schemas.android.com/apk/res/android">
-    <item android:color="#4982E6" android:state_selected="true"/>
-    <item android:color="@color/tools_text_color_primary"/>
+    <item android:color="@color/tools_directory_item_title_color" android:state_selected="true"/>
+    <item android:color="?android:attr/textColorPrimary"/>
 </selector>

+ 2 - 2
ComPDFKit_Tools/src/main/res/color/tools_icon_status_color.xml

@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
 <selector xmlns:android="http://schemas.android.com/apk/res/android">
-    <item android:color="@color/tools_color_accent" android:state_selected="true"/>
-    <item android:color="@color/tools_on_primary"/>
+    <item android:color="?attr/colorAccent" android:state_selected="true"/>
+    <item android:color="?attr/colorOnPrimary"/>
 </selector>

+ 3 - 3
ComPDFKit_Tools/src/main/res/color/tools_normal_btn_text_color.xml

@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <selector xmlns:android="http://schemas.android.com/apk/res/android">
-    <item android:color="@color/tools_text_color_disable" android:state_enabled="false"/>
-    <item android:color="@color/tools_color_accent" android:state_enabled="true"/>
-    <item android:color="@color/tools_color_accent"/>
+    <item android:color="?attr/compdfkit_textColorPrimaryNoEnable" android:state_enabled="false"/>
+    <item android:color="?attr/colorAccent" android:state_enabled="true"/>
+    <item android:color="?attr/colorAccent"/>
 </selector>

+ 1 - 1
ComPDFKit_Tools/src/main/res/color/tools_radio_btn_text_status_color.xml

@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
 <selector xmlns:android="http://schemas.android.com/apk/res/android">
-    <item android:color="@color/tools_text_color_primary" android:state_checked="true"/>
+    <item android:color="?android:attr/textColorPrimary" android:state_checked="true"/>
     <item android:color="@color/tools_text_color_hint"/>
 </selector>

+ 2 - 2
ComPDFKit_Tools/src/main/res/color/tools_signature_iv_status_color.xml

@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
 <selector xmlns:android="http://schemas.android.com/apk/res/android">
-    <item android:color="@color/tools_color_primary" android:state_selected="true"/>
-    <item android:color="@color/tools_color_accent"/>
+    <item android:color="@color/tools_text_color_primary" android:state_selected="true"/>
+    <item android:color="?android:attr/textColorPrimary"/>
 </selector>

+ 0 - 5
ComPDFKit_Tools/src/main/res/color/tools_tab_text_color.xml

@@ -1,5 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<selector xmlns:android="http://schemas.android.com/apk/res/android">
-    <item android:color="@color/tools_color_accent" android:state_selected="true"/>
-    <item android:color="@color/tools_text_color_primary"/>
-</selector>

+ 0 - 10
ComPDFKit_Tools/src/main/res/drawable-night/tools_annotation.xml

@@ -1,10 +0,0 @@
-<vector xmlns:android="http://schemas.android.com/apk/res/android"
-    android:width="24dp"
-    android:height="24dp"
-    android:viewportWidth="24"
-    android:viewportHeight="24">
-  <path
-      android:pathData="M6.25,2H7H17H17.75V2.75V5.75H21.5H23V7.25V20.25V21.75H21.5H2.5H1V20.25V7.25V5.75H2.5H6.25V2.75V2ZM16.25,3.5V5.75H7.75V3.5H16.25ZM2.5,7.25H21.5V10.741H2.5V7.25ZM2.5,12.241V20.25H21.5V12.241H14V14.75H10V12.241H2.5Z"
-      android:fillColor="#FFFFFF"
-      android:fillType="evenOdd"/>
-</vector>

+ 0 - 10
ComPDFKit_Tools/src/main/res/drawable-night/tools_edit.xml

@@ -1,10 +0,0 @@
-<vector xmlns:android="http://schemas.android.com/apk/res/android"
-    android:width="24dp"
-    android:height="24dp"
-    android:viewportWidth="24"
-    android:viewportHeight="24">
-  <path
-      android:pathData="M8.341,11.016L8.149,11.208L8.124,11.478L7.771,15.367L7.689,16.263L8.586,16.182L12.475,15.828L12.745,15.804L12.937,15.612L21.423,7.127L21.953,6.596L21.423,6.066L17.887,2.53L17.357,2L16.826,2.53L8.341,11.016ZM9.346,14.607L9.594,11.884L17.357,4.121L19.831,6.596L12.068,14.359L9.346,14.607ZM3.75,4.311H3V5.061V21.061V21.811H3.75H19.75H20.5V21.061V13.061H19V20.311H4.5V5.811H11.75V4.311H3.75Z"
-      android:fillColor="#FFFFFF"
-      android:fillType="evenOdd"/>
-</vector>

+ 0 - 19
ComPDFKit_Tools/src/main/res/drawable-night/tools_form.xml

@@ -1,19 +0,0 @@
-<vector xmlns:android="http://schemas.android.com/apk/res/android"
-    android:width="20dp"
-    android:height="20dp"
-    android:viewportWidth="20"
-    android:viewportHeight="20">
-  <path
-      android:pathData="M1.428,2.5h17.143v6.429h-17.143z"
-      android:strokeWidth="1.5"
-      android:fillColor="#00000000"
-      android:strokeColor="#FFFFFF"/>
-  <path
-      android:pathData="M1.428,8.929h8.571v8.571h-8.571z"
-      android:strokeWidth="1.5"
-      android:fillColor="#00000000"
-      android:strokeColor="#FFFFFF"/>
-  <path
-      android:pathData="M16.429,4.647L14.82,6.786L13.214,4.643L16.429,4.647Z"
-      android:fillColor="#FFFFFF"/>
-</vector>

+ 0 - 15
ComPDFKit_Tools/src/main/res/drawable-night/tools_ic_annotation_highlight_default_bg.xml

@@ -1,15 +0,0 @@
-<vector xmlns:android="http://schemas.android.com/apk/res/android"
-    android:width="24dp"
-    android:height="24dp"
-    android:viewportWidth="24"
-    android:viewportHeight="24">
-
-    <path
-        android:pathData="M24,0H0V24H24V0ZM22,4H4L2,20H20L22,4Z"
-        android:fillColor="#414347"
-        android:fillType="evenOdd"/>
-    <path
-        android:pathData="M17.6078,17.5L12.6964,5.2215H11.3036L6.3922,17.5H5V18.5H9V17.5H8.0078L9.1077,14.75H14.8923L15.9922,17.5H15V18.5H19V17.5H17.6078ZM14.4923,13.75L12,7.519L9.5077,13.75H14.4923Z"
-        android:fillColor="#FFFFFF"
-        android:fillType="evenOdd"/>
-</vector>

+ 0 - 9
ComPDFKit_Tools/src/main/res/drawable-night/tools_ic_back.xml

@@ -1,9 +0,0 @@
-<vector xmlns:android="http://schemas.android.com/apk/res/android"
-    android:width="24dp"
-    android:height="24dp"
-    android:viewportWidth="24"
-    android:viewportHeight="24">
-  <path
-      android:pathData="M20,11H7.83L13.42,5.41L12,4L4,12L12,20L13.41,18.59L7.83,13H20V11Z"
-      android:fillColor="#FFFFFF"/>
-</vector>

+ 0 - 10
ComPDFKit_Tools/src/main/res/drawable-night/tools_ic_close.xml

@@ -1,10 +0,0 @@
-<vector xmlns:android="http://schemas.android.com/apk/res/android"
-    android:width="24dp"
-    android:height="24dp"
-    android:viewportWidth="24"
-    android:viewportHeight="24">
-  <path
-      android:pathData="M17.786,18.847L18.316,19.377L19.377,18.316L18.847,17.786L13.437,12.377L18.847,6.967L19.377,6.437L18.316,5.376L17.786,5.906L12.377,11.316L6.967,5.906L6.437,5.376L5.376,6.437L5.907,6.967L11.316,12.377L5.907,17.786L5.376,18.316L6.437,19.377L6.967,18.847L12.377,13.437L17.786,18.847Z"
-      android:fillColor="#FFFFFF"
-      android:fillType="evenOdd"/>
-</vector>

File diff suppressed because it is too large
+ 0 - 10
ComPDFKit_Tools/src/main/res/drawable-night/tools_ic_digital_signature.xml


+ 0 - 11
ComPDFKit_Tools/src/main/res/drawable-night/tools_ic_pageedit_arrow_right.xml

@@ -1,11 +0,0 @@
-<vector xmlns:android="http://schemas.android.com/apk/res/android"
-    android:width="24dp"
-    android:height="24dp"
-    android:viewportWidth="24"
-    android:viewportHeight="24">
-  <path
-      android:pathData="M9.778,4L17.556,11.778L9.778,19.556"
-      android:strokeWidth="1.5"
-      android:fillColor="#00000000"
-      android:strokeColor="#FFFFFF"/>
-</vector>

+ 0 - 16
ComPDFKit_Tools/src/main/res/drawable-night/tools_ic_preview_settings.xml

@@ -1,16 +0,0 @@
-<vector xmlns:android="http://schemas.android.com/apk/res/android"
-    android:width="24dp"
-    android:height="24dp"
-    android:viewportWidth="24"
-    android:viewportHeight="24">
-  <path
-      android:pathData="M21.999,12C21.999,12 17.522,19.5 11.999,19.5C6.476,19.5 1.999,12 1.999,12C1.999,12 6.476,4.5 11.999,4.5C17.522,4.5 21.999,12 21.999,12Z"
-      android:strokeWidth="1.5"
-      android:fillColor="#00000000"
-      android:strokeColor="#FFFFFF"/>
-  <path
-      android:pathData="M12,12m-2.4,0a2.4,2.4 0,1 1,4.8 0a2.4,2.4 0,1 1,-4.8 0"
-      android:strokeWidth="1.5"
-      android:fillColor="#00000000"
-      android:strokeColor="#FFFFFF"/>
-</vector>

+ 0 - 0
ComPDFKit_Tools/src/main/res/drawable-night/tools_ic_search.xml


Some files were not shown because too many files changed in this diff