Browse Source

PDFTool(Android) - 1.统一弹窗基类

liuxiaolong 1 year ago
parent
commit
8655ce458e
41 changed files with 289 additions and 467 deletions
  1. 0 3
      Annotations/src/main/java/com/compdfkit/annotations/PDFAnnotationSampleActivity.java
  2. 0 2
      ComPDFKit_Tools/src/main/java/com/compdfkit/tools/annotation/pdfproperties/pdfsignature/CAddSignatureActivity.java
  3. 5 1
      ComPDFKit_Tools/src/main/java/com/compdfkit/tools/annotation/pdfproperties/pdfsignature/CSignatureStyleFragment.java
  4. 21 16
      ComPDFKit_Tools/src/main/java/com/compdfkit/tools/annotation/pdfproperties/pdfstamp/CAddStampSwichDialogFragment.java
  5. 0 1
      ComPDFKit_Tools/src/main/java/com/compdfkit/tools/common/basic/fragment/CBasicBottomSheetDialogFragment.java
  6. 10 16
      ComPDFKit_Tools/src/main/java/com/compdfkit/tools/common/utils/dialog/CImportImageDialogFragment.java
  7. 15 14
      ComPDFKit_Tools/src/main/java/com/compdfkit/tools/common/utils/view/colorpicker/ColorPickerDialogFragment.java
  8. 16 13
      ComPDFKit_Tools/src/main/java/com/compdfkit/tools/common/utils/window/CModeSwitchDialogFragment.java
  9. 21 22
      ComPDFKit_Tools/src/main/java/com/compdfkit/tools/common/views/CVerifyPasswordDialogFragment.java
  10. 22 20
      ComPDFKit_Tools/src/main/java/com/compdfkit/tools/common/views/pdfbota/CPDFBotaDialogFragment.java
  11. 24 16
      ComPDFKit_Tools/src/main/java/com/compdfkit/tools/common/views/pdfproperties/action/CActionEditDialogFragment.java
  12. 0 1
      ComPDFKit_Tools/src/main/java/com/compdfkit/tools/contenteditor/pdfproperties/CEditImagePropertiesFragment.java
  13. 26 25
      ComPDFKit_Tools/src/main/java/com/compdfkit/tools/docseditor/pdfpageedit/CPDFPageEditDialogFragment.java
  14. 23 27
      ComPDFKit_Tools/src/main/java/com/compdfkit/tools/docseditor/pdfpageeditinsert/CInsertBlankPageDialogFragment.java
  15. 28 39
      ComPDFKit_Tools/src/main/java/com/compdfkit/tools/docseditor/pdfpageeditinsert/CInsertPdfPageDialogFragment.java
  16. 10 15
      ComPDFKit_Tools/src/main/java/com/compdfkit/tools/docseditor/pdfpageeditinsert/CSelectInsertPageTypeDialogFragment.java
  17. 13 29
      ComPDFKit_Tools/src/main/java/com/compdfkit/tools/forms/pdfproperties/option/edit/CFormOptionEditFragment.java
  18. 20 27
      ComPDFKit_Tools/src/main/java/com/compdfkit/tools/forms/pdfproperties/option/select/CFormOptionSelectDialogFragment.java
  19. 0 4
      ComPDFKit_Tools/src/main/java/com/compdfkit/tools/signature/CSignatureToolBar.java
  20. 3 49
      ComPDFKit_Tools/src/main/java/com/compdfkit/tools/signature/CertificateDigitalDatas.java
  21. 10 16
      ComPDFKit_Tools/src/main/java/com/compdfkit/tools/signature/bean/CPDFSignatureStatusInfo.java
  22. 3 13
      ComPDFKit_Tools/src/main/java/com/compdfkit/tools/signature/importcert/create/CImportCertificateDigitalDialog.java
  23. 0 5
      ComPDFKit_Tools/src/main/java/com/compdfkit/tools/signature/importcert/create/CreateCertificateDigitalDialog.java
  24. 0 2
      ComPDFKit_Tools/src/main/java/com/compdfkit/tools/signature/info/CertAttrListAdapter.java
  25. 0 12
      ComPDFKit_Tools/src/main/java/com/compdfkit/tools/signature/info/CertDetailsDialog.java
  26. 0 8
      ComPDFKit_Tools/src/main/java/com/compdfkit/tools/signature/info/CertDigitalSignAttributesDialog.java
  27. 0 1
      ComPDFKit_Tools/src/main/java/com/compdfkit/tools/signature/info/signlist/CPDFCertDigitalSignListDialog.java
  28. 0 1
      ComPDFKit_Tools/src/main/java/com/compdfkit/tools/signature/info/signlist/adapter/CertDigitalSignListAdapter.java
  29. 0 3
      ComPDFKit_Tools/src/main/java/com/compdfkit/tools/signature/pdfproperties/pdfsign/CDigitalSignatureWidgetImpl.java
  30. 0 6
      ComPDFKit_Tools/src/main/java/com/compdfkit/tools/signature/preview/CDigitalSignStylePreviewDialog.java
  31. 1 1
      ComPDFKit_Tools/src/main/java/com/compdfkit/tools/signature/verify/view/CVerifySignStatusView.java
  32. 15 33
      ComPDFKit_Tools/src/main/java/com/compdfkit/tools/viewer/pdfsearch/CSearchResultDialogFragment.java
  33. 1 2
      ComPDFKit_Tools/src/main/res/layout/tools_sign_certificate_attributes_list_head_item.xml
  34. 1 1
      ComPDFKit_Tools/src/main/res/layout/tools_sign_create_cert_digital_id_info_layout.xml
  35. 0 3
      ContentEditor/src/main/java/com/compdfkit/contenteditor/PDFEditSampleActivity.java
  36. 0 8
      DigitalSignature/src/main/java/com/compdfkit/digitalsignature/PDFSignaturesSampleActivity.java
  37. 1 1
      DigitalSignature/src/main/res/layout/signatures_pdf_sample_activity.xml
  38. 0 3
      DocsEditor/src/main/java/com/compdfkit/docseditor/MainActivity.java
  39. 0 3
      Forms/src/main/java/com/compdfkit/forms/PDFFormSampleActivity.java
  40. 0 2
      PDFViewer/src/main/java/com/compdfkit/pdfviewer/MainActivity.java
  41. 0 3
      Viewer/src/main/java/com/compdfkit/viewer/PDFViewerSampleActivity.java

+ 0 - 3
Annotations/src/main/java/com/compdfkit/annotations/PDFAnnotationSampleActivity.java

@@ -1,14 +1,11 @@
 package com.compdfkit.annotations;
 
 import android.Manifest;
-import android.content.Intent;
-import android.net.Uri;
 import android.os.Build;
 import android.os.Bundle;
 import android.view.View;
 
 import androidx.activity.result.ActivityResultLauncher;
-import androidx.activity.result.contract.ActivityResultContracts;
 
 import com.compdfkit.annotations.databinding.AnnotationPdfSampleActivityBinding;
 import com.compdfkit.core.annotation.CPDFAnnotation;

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

@@ -16,7 +16,6 @@ import android.graphics.Bitmap;
 import android.graphics.Color;
 import android.net.Uri;
 import android.os.Bundle;
-import android.os.Handler;
 import android.text.TextUtils;
 import android.view.View;
 import android.widget.SeekBar;
@@ -38,7 +37,6 @@ import com.compdfkit.tools.common.utils.activitycontracts.CImageResultContracts;
 import com.compdfkit.tools.common.utils.dialog.CImportImageDialogFragment;
 import com.compdfkit.tools.common.utils.image.CBitmapUtil;
 import com.compdfkit.tools.common.utils.threadpools.CThreadPoolUtils;
-import com.compdfkit.tools.common.utils.threadpools.SimpleBackgroundTask;
 import com.compdfkit.tools.common.utils.view.colorpicker.ColorPickerDialogFragment;
 import com.compdfkit.tools.common.utils.viewutils.CViewUtils;
 import com.compdfkit.tools.common.views.CToolBar;

+ 5 - 1
ComPDFKit_Tools/src/main/java/com/compdfkit/tools/annotation/pdfproperties/pdfsignature/CSignatureStyleFragment.java

@@ -10,6 +10,7 @@
 package com.compdfkit.tools.annotation.pdfproperties.pdfsignature;
 
 import android.content.Intent;
+import android.content.pm.ActivityInfo;
 import android.content.res.Configuration;
 import android.os.Bundle;
 import android.view.LayoutInflater;
@@ -28,6 +29,7 @@ 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.utils.dialog.CAlertDialog;
+import com.compdfkit.tools.common.utils.viewutils.CViewUtils;
 import com.compdfkit.tools.common.views.pdfproperties.basic.CBasicPropertiesFragment;
 import com.google.android.material.floatingactionbutton.FloatingActionButton;
 
@@ -63,7 +65,9 @@ public class CSignatureStyleFragment extends CBasicPropertiesFragment {
     public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
         super.onViewCreated(view, savedInstanceState);
         fabAddSignature.setOnClickListener(v -> {
-            addSignatureLauncher.launch(new Intent(getContext(), CAddSignatureActivity.class));
+            Intent intent = new Intent(getContext(), CAddSignatureActivity.class);
+            intent.putExtra(CAddSignatureActivity.EXTRA_SCREEN_ORIENTATION, CViewUtils.isLandScape(getContext())?ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE : ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
+            addSignatureLauncher.launch(intent);
         });
         signatureListAdapter = new CSignatureListAdapter();
         signatureListAdapter.setOnItemClickListener((adapter, view1, position) -> {

+ 21 - 16
ComPDFKit_Tools/src/main/java/com/compdfkit/tools/annotation/pdfproperties/pdfstamp/CAddStampSwichDialogFragment.java

@@ -13,23 +13,18 @@ import android.animation.ObjectAnimator;
 import android.graphics.Color;
 import android.graphics.drawable.ColorDrawable;
 import android.os.Bundle;
-import android.view.LayoutInflater;
 import android.view.View;
-import android.view.ViewGroup;
 
-import androidx.annotation.NonNull;
-import androidx.annotation.Nullable;
 import androidx.appcompat.widget.AppCompatImageView;
 import androidx.interpolator.view.animation.LinearOutSlowInInterpolator;
 
 import com.compdfkit.tools.R;
-import com.compdfkit.tools.common.utils.dialog.CDialogFragmentUtil;
+import com.compdfkit.tools.common.basic.fragment.CBasicBottomSheetDialogFragment;
 import com.google.android.material.bottomsheet.BottomSheetBehavior;
-import com.google.android.material.bottomsheet.BottomSheetDialogFragment;
 import com.google.android.material.floatingactionbutton.FloatingActionButton;
 
 
-public class CAddStampSwichDialogFragment  extends BottomSheetDialogFragment {
+public class CAddStampSwichDialogFragment  extends CBasicBottomSheetDialogFragment {
 
     private View.OnClickListener addImageStampClickListener;
 
@@ -45,27 +40,33 @@ public class CAddStampSwichDialogFragment  extends BottomSheetDialogFragment {
     }
 
     @Override
-    public void onCreate(@Nullable Bundle savedInstanceState) {
-        super.onCreate(savedInstanceState);
-        setStyle(STYLE_NORMAL, R.style.Tools_Base_Theme_BasicBottomSheetDialogStyle_TopCorners);
+    protected int getStyle() {
+        return R.style.Tools_Base_Theme_BasicBottomSheetDialogStyle_TopCorners;
+    }
+
+    @Override
+    protected boolean fullScreen() {
+        return true;
     }
 
     @Override
     public void onStart() {
         super.onStart();
         BottomSheetBehavior<View> behavior = BottomSheetBehavior.from((View) getView().getParent());
-        CDialogFragmentUtil.setBottomSheetDialogFragmentFullScreen(getDialog(), behavior);
         if (getDialog() != null) {
             getDialog().getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));
             getDialog().getWindow().setWindowAnimations(R.style.tools_fade_anim_dialog_style);
         }
     }
 
-    @Nullable
+
     @Override
-    public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
-        setStyle(STYLE_NORMAL, R.style.Tools_Base_Theme_BasicBottomSheetDialogStyle_TopCorners);
-        View rootView =  inflater.inflate(R.layout.tools_properties_stamp_add_stamp_dialog_fragment, container,false);
+    protected int layoutId() {
+        return R.layout.tools_properties_stamp_add_stamp_dialog_fragment;
+    }
+
+    @Override
+    protected void onCreateView(View rootView) {
         AppCompatImageView ivAddImageStamp = rootView.findViewById(R.id.iv_add_image_stamp);
         AppCompatImageView ivAddTextStamp = rootView.findViewById(R.id.iv_add_text_stamp);
         fab = rootView.findViewById(R.id.fab_add_custom_stamp);
@@ -76,7 +77,11 @@ public class CAddStampSwichDialogFragment  extends BottomSheetDialogFragment {
         ivAddImageStamp.setOnClickListener(addImageStampClickListener);
         rootView.findViewById(R.id.cl_rootView).setOnClickListener(v -> dismiss());
         fabAnim(true);
-        return rootView;
+    }
+
+    @Override
+    protected void onViewCreate() {
+
     }
 
     private void fabAnim(boolean enter){

+ 0 - 1
ComPDFKit_Tools/src/main/java/com/compdfkit/tools/common/basic/fragment/CBasicBottomSheetDialogFragment.java

@@ -22,7 +22,6 @@ import androidx.annotation.Nullable;
 
 import com.compdfkit.tools.R;
 import com.compdfkit.tools.common.utils.dialog.CDialogFragmentUtil;
-import com.compdfkit.tools.common.utils.viewutils.CViewUtils;
 import com.google.android.material.bottomsheet.BottomSheetBehavior;
 import com.google.android.material.bottomsheet.BottomSheetDialogFragment;
 

+ 10 - 16
ComPDFKit_Tools/src/main/java/com/compdfkit/tools/common/utils/dialog/CImportImageDialogFragment.java

@@ -9,21 +9,16 @@
 
 package com.compdfkit.tools.common.utils.dialog;
 
-import android.os.Bundle;
-import android.view.LayoutInflater;
 import android.view.View;
-import android.view.ViewGroup;
 
-import androidx.annotation.NonNull;
-import androidx.annotation.Nullable;
 import androidx.constraintlayout.widget.ConstraintLayout;
 
 import com.compdfkit.tools.R;
+import com.compdfkit.tools.common.basic.fragment.CBasicBottomSheetDialogFragment;
 import com.google.android.material.bottomsheet.BottomSheetBehavior;
-import com.google.android.material.bottomsheet.BottomSheetDialogFragment;
 
 
-public class CImportImageDialogFragment extends BottomSheetDialogFragment {
+public class CImportImageDialogFragment extends CBasicBottomSheetDialogFragment {
 
     private View.OnClickListener photoAlbumClickListener;
 
@@ -39,23 +34,24 @@ public class CImportImageDialogFragment extends BottomSheetDialogFragment {
         BottomSheetBehavior<View> behavior = BottomSheetBehavior.from((View) getView().getParent());
         behavior.setState(BottomSheetBehavior.STATE_EXPANDED);
         behavior.setSkipCollapsed(true);
-        CDialogFragmentUtil.setDimAmount(getDialog(), 0.2F);
     }
 
-    @Nullable
     @Override
-    public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
-        View rootView = inflater.inflate(R.layout.tools_import_image_dialog_fragment, container, false);
+    protected int layoutId() {
+        return R.layout.tools_import_image_dialog_fragment;
+    }
+
+    @Override
+    protected void onCreateView(View rootView) {
         ConstraintLayout clFromAlbum = rootView.findViewById(R.id.cl_from_album);
         ConstraintLayout clFromCamera = rootView.findViewById(R.id.cl_from_camera);
         clFromAlbum.setOnClickListener(photoAlbumClickListener);
         clFromCamera.setOnClickListener(cameraClickListener);
-        return rootView;
     }
 
     @Override
-    public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
-        super.onViewCreated(view, savedInstanceState);
+    protected void onViewCreate() {
+
     }
 
     public void setPhotoAlbumClickListener(View.OnClickListener photoAlbumClickListener) {
@@ -66,6 +62,4 @@ public class CImportImageDialogFragment extends BottomSheetDialogFragment {
         this.cameraClickListener = cameraClickListener;
     }
 
-
-
 }

+ 15 - 14
ComPDFKit_Tools/src/main/java/com/compdfkit/tools/common/utils/view/colorpicker/ColorPickerDialogFragment.java

@@ -10,22 +10,17 @@
 package com.compdfkit.tools.common.utils.view.colorpicker;
 
 import android.os.Bundle;
-import android.view.LayoutInflater;
 import android.view.View;
-import android.view.ViewGroup;
 
-import androidx.annotation.NonNull;
-import androidx.annotation.Nullable;
 import androidx.fragment.app.Fragment;
 
 import com.compdfkit.tools.R;
-import com.compdfkit.tools.common.utils.dialog.CDialogFragmentUtil;
+import com.compdfkit.tools.common.basic.fragment.CBasicBottomSheetDialogFragment;
 import com.compdfkit.tools.common.utils.view.colorpicker.widget.ColorPickerView;
 import com.google.android.material.bottomsheet.BottomSheetBehavior;
-import com.google.android.material.bottomsheet.BottomSheetDialogFragment;
 
 
-public class ColorPickerDialogFragment extends BottomSheetDialogFragment {
+public class ColorPickerDialogFragment extends CBasicBottomSheetDialogFragment {
 
     private static final String EXTRA_SELECT_COLOR = "extra_select_color";
 
@@ -41,25 +36,31 @@ public class ColorPickerDialogFragment extends BottomSheetDialogFragment {
         return fragment;
     }
 
+    @Override
+    protected boolean draggable() {
+        return false;
+    }
+
     @Override
     public void onStart() {
         super.onStart();
         BottomSheetBehavior<View> behavior = BottomSheetBehavior.from((View) getView().getParent());
         behavior.setState(BottomSheetBehavior.STATE_EXPANDED);
         behavior.setSkipCollapsed(true);
-        behavior.setDraggable(false);
-        CDialogFragmentUtil.setDimAmount(getDialog(), 0.2F);
     }
 
-    @Nullable
     @Override
-    public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
-        return inflater.inflate(R.layout.tools_color_picker_dialog_fragment, container, false);
+    protected int layoutId() {
+        return R.layout.tools_color_picker_dialog_fragment;
+    }
+
+    @Override
+    protected void onCreateView(View rootView) {
+
     }
 
     @Override
-    public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
-        super.onViewCreated(view, savedInstanceState);
+    protected void onViewCreate() {
         int selectColor = -1;
         if (getArguments() != null && getArguments().containsKey(EXTRA_SELECT_COLOR)){
             selectColor = getArguments().getInt(EXTRA_SELECT_COLOR, -1);

+ 16 - 13
ComPDFKit_Tools/src/main/java/com/compdfkit/tools/common/utils/window/CModeSwitchDialogFragment.java

@@ -2,9 +2,7 @@ package com.compdfkit.tools.common.utils.window;
 
 
 import android.os.Bundle;
-import android.view.LayoutInflater;
 import android.view.View;
-import android.view.ViewGroup;
 import android.widget.RadioButton;
 import android.widget.RadioGroup;
 
@@ -14,14 +12,13 @@ import androidx.appcompat.widget.AppCompatImageView;
 import androidx.appcompat.widget.AppCompatTextView;
 
 import com.compdfkit.tools.R;
-import com.compdfkit.tools.common.utils.dialog.CDialogFragmentUtil;
+import com.compdfkit.tools.common.basic.fragment.CBasicBottomSheetDialogFragment;
 import com.compdfkit.tools.common.views.pdfview.CPreviewMode;
 import com.google.android.material.bottomsheet.BottomSheetBehavior;
-import com.google.android.material.bottomsheet.BottomSheetDialogFragment;
 
 import java.util.LinkedHashSet;
 
-public class CModeSwitchDialogFragment extends BottomSheetDialogFragment
+public class CModeSwitchDialogFragment extends CBasicBottomSheetDialogFragment
         implements View.OnClickListener {
 
     private OnPreviewModeChangeListener changeListener;
@@ -65,25 +62,27 @@ public class CModeSwitchDialogFragment extends BottomSheetDialogFragment
         this.selectMode = selectMode;
     }
 
+
     @Override
     public void onStart() {
         super.onStart();
         BottomSheetBehavior<View> behavior = BottomSheetBehavior.from((View) getView().getParent());
-        CDialogFragmentUtil.setDimAmount(getDialog(), 0.2F);
         behavior.setSkipCollapsed(true);
         behavior.setState(BottomSheetBehavior.STATE_EXPANDED);
     }
 
     @Override
-    public void onCreate(@Nullable Bundle savedInstanceState) {
-        super.onCreate(savedInstanceState);
-        setStyle(STYLE_NORMAL, R.style.Tools_Base_Theme_BasicBottomSheetDialogStyle_TopCorners);
+    protected int getStyle() {
+        return R.style.Tools_Base_Theme_BasicBottomSheetDialogStyle_TopCorners;
+    }
+
+    @Override
+    protected int layoutId() {
+        return R.layout.tools_pdf_mode_switch_dialog_fragment;
     }
 
-    @Nullable
     @Override
-    public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
-        View rootView = inflater.inflate(R.layout.tools_pdf_mode_switch_dialog_fragment, container,false);
+    protected void onCreateView(View rootView) {
         ivClose = rootView.findViewById(R.id.iv_tool_bar_close);
         tvTitle = rootView.findViewById(R.id.tv_tool_bar_title);
         radioGroup = rootView.findViewById(R.id.radio_group_mode);
@@ -93,7 +92,11 @@ public class CModeSwitchDialogFragment extends BottomSheetDialogFragment
         rbForm = rootView.findViewById(R.id.r_btn_form_mode);
         rbPageEdit = rootView.findViewById(R.id.r_btn_page_edit_mode);
         rbSignature = rootView.findViewById(R.id.r_btn_signature_mode);
-        return rootView;
+    }
+
+    @Override
+    protected void onViewCreate() {
+
     }
 
     @Override

+ 21 - 22
ComPDFKit_Tools/src/main/java/com/compdfkit/tools/common/views/CVerifyPasswordDialogFragment.java

@@ -16,12 +16,8 @@ import android.os.Bundle;
 import android.text.Editable;
 import android.text.TextUtils;
 import android.text.TextWatcher;
-import android.view.LayoutInflater;
 import android.view.View;
-import android.view.ViewGroup;
 
-import androidx.annotation.NonNull;
-import androidx.annotation.Nullable;
 import androidx.appcompat.widget.AppCompatButton;
 import androidx.appcompat.widget.AppCompatEditText;
 import androidx.appcompat.widget.AppCompatImageView;
@@ -29,12 +25,10 @@ import androidx.appcompat.widget.AppCompatTextView;
 
 import com.compdfkit.core.document.CPDFDocument;
 import com.compdfkit.tools.R;
-import com.compdfkit.tools.common.utils.dialog.CDialogFragmentUtil;
+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.bottomsheet.BottomSheetDialogFragment;
 
-public class CVerifyPasswordDialogFragment extends BottomSheetDialogFragment {
+public class CVerifyPasswordDialogFragment extends CBasicBottomSheetDialogFragment {
 
     private AppCompatImageView ivClose;
 
@@ -81,31 +75,36 @@ public class CVerifyPasswordDialogFragment extends BottomSheetDialogFragment {
     }
 
     @Override
-    public void onStart() {
-        super.onStart();
-        BottomSheetBehavior<View> behavior = BottomSheetBehavior.from((View) getView().getParent());
-        CDialogFragmentUtil.setBottomSheetDialogFragmentFullScreen(getDialog(), behavior);
-        behavior.setDraggable(false);
-        if (getContext() != null) {
-            CDialogFragmentUtil.setDimAmount(getDialog(), CViewUtils.isLandScape(getContext()) ? 1.0F : 0F);
-        }
+    protected boolean fullScreen() {
+        return true;
+    }
+
+    @Override
+    protected float dimAmount() {
+        return CViewUtils.isLandScape(getContext()) ? 0.2F : 0F;
+    }
+
+    @Override
+    protected boolean draggable() {
+        return false;
+    }
+
+    @Override
+    protected int layoutId() {
+        return R.layout.tools_verify_password_dialog_fragment;
     }
 
-    @Nullable
     @Override
-    public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
-        View rootView = inflater.inflate(R.layout.tools_verify_password_dialog_fragment, container, false);
+    protected void onCreateView(View rootView) {
         ivClose = rootView.findViewById(R.id.iv_close);
         ivClean = rootView.findViewById(R.id.iv_clean);
         etPassword = rootView.findViewById(R.id.et_password);
         btnConfirm = rootView.findViewById(R.id.btn_confirm);
         tvErrorMsg = rootView.findViewById(R.id.tv_error_msg);
-        return rootView;
     }
 
     @Override
-    public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
-        super.onViewCreated(view, savedInstanceState);
+    protected void onViewCreate() {
         ivClose.setOnClickListener(v -> dismiss());
         ivClean.setOnClickListener(v -> etPassword.setText(""));
         etPassword.addTextChangedListener(new TextWatcher() {

+ 22 - 20
ComPDFKit_Tools/src/main/java/com/compdfkit/tools/common/views/pdfbota/CPDFBotaDialogFragment.java

@@ -11,24 +11,20 @@ package com.compdfkit.tools.common.views.pdfbota;
 
 
 import android.os.Bundle;
-import android.view.LayoutInflater;
 import android.view.View;
-import android.view.ViewGroup;
 
 import androidx.annotation.NonNull;
 import androidx.annotation.Nullable;
 import androidx.viewpager2.widget.ViewPager2;
 
 import com.compdfkit.tools.R;
-import com.compdfkit.tools.common.utils.dialog.CDialogFragmentUtil;
+import com.compdfkit.tools.common.basic.fragment.CBasicBottomSheetDialogFragment;
 import com.compdfkit.tools.common.utils.viewutils.CViewUtils;
 import com.compdfkit.tools.common.views.CToolBar;
 import com.compdfkit.tools.common.views.pdfbota.adapter.CBotaViewPagerAdapter;
 import com.compdfkit.tools.common.views.pdfview.CPDFViewCtrl;
 import com.compdfkit.tools.viewer.pdfoutline.CPDFOutlineFragment;
 import com.compdfkit.tools.viewer.pdfthumbnail.CPDFThumbnailFragment;
-import com.google.android.material.bottomsheet.BottomSheetBehavior;
-import com.google.android.material.bottomsheet.BottomSheetDialogFragment;
 import com.google.android.material.tabs.TabLayout;
 import com.google.android.material.tabs.TabLayoutMediator;
 
@@ -40,7 +36,7 @@ import java.util.ArrayList;
  * @see CPDFThumbnailFragment
  * @see CPDFOutlineFragment
  */
-public class CPDFBotaDialogFragment extends BottomSheetDialogFragment {
+public class CPDFBotaDialogFragment extends CBasicBottomSheetDialogFragment {
 
     private TabLayout tabLayout;
 
@@ -69,30 +65,36 @@ public class CPDFBotaDialogFragment extends BottomSheetDialogFragment {
     }
 
     @Override
-    public void onCreate(@Nullable Bundle savedInstanceState) {
-        super.onCreate(savedInstanceState);
-        setStyle(STYLE_NORMAL, R.style.Tools_Base_Theme_BasicBottomSheetDialogStyle);
+    protected int getStyle() {
+        return R.style.Tools_Base_Theme_BasicBottomSheetDialogStyle;
     }
 
     @Override
-    public void onStart() {
-        super.onStart();
-        if (!CViewUtils.isLandScape(getContext())){
-            CDialogFragmentUtil.setDimAmount(getDialog(), 0F);
-        }
-        BottomSheetBehavior<View> behavior = BottomSheetBehavior.from((View) getView().getParent());
-        CDialogFragmentUtil.setBottomSheetDialogFragmentFullScreen(getDialog(), behavior);
+    protected float dimAmount() {
+        return CViewUtils.isLandScape(getContext()) ? 0.2F : 0F;
+    }
+
+    @Override
+    protected boolean fullScreen() {
+        return true;
     }
 
-    @Nullable
     @Override
-    public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
-        View rootView = inflater.inflate(R.layout.tools_bota_dialog_fragment, container, false);
+    protected int layoutId() {
+        return R.layout.tools_bota_dialog_fragment;
+    }
+
+    @Override
+    protected void onCreateView(View rootView) {
         tabLayout = rootView.findViewById(R.id.tab_layout);
         viewPager2 = rootView.findViewById(R.id.view_pager);
         toolBar = rootView.findViewById(R.id.tool_bar);
         toolBar.setBackBtnClickListener(v -> dismiss());
-        return rootView;
+    }
+
+    @Override
+    protected void onViewCreate() {
+
     }
 
     @Override

+ 24 - 16
ComPDFKit_Tools/src/main/java/com/compdfkit/tools/common/views/pdfproperties/action/CActionEditDialogFragment.java

@@ -16,9 +16,7 @@ import android.text.Editable;
 import android.text.InputType;
 import android.text.TextUtils;
 import android.text.TextWatcher;
-import android.view.LayoutInflater;
 import android.view.View;
-import android.view.ViewGroup;
 
 import androidx.annotation.NonNull;
 import androidx.annotation.Nullable;
@@ -26,14 +24,12 @@ import androidx.appcompat.widget.AppCompatButton;
 import androidx.appcompat.widget.AppCompatEditText;
 
 import com.compdfkit.tools.R;
-import com.compdfkit.tools.common.utils.dialog.CDialogFragmentUtil;
+import com.compdfkit.tools.common.basic.fragment.CBasicBottomSheetDialogFragment;
 import com.compdfkit.tools.common.utils.viewutils.CViewUtils;
 import com.compdfkit.tools.common.views.CToolBar;
-import com.google.android.material.bottomsheet.BottomSheetBehavior;
-import com.google.android.material.bottomsheet.BottomSheetDialogFragment;
 import com.google.android.material.tabs.TabLayout;
 
-public class CActionEditDialogFragment extends BottomSheetDialogFragment implements View.OnClickListener {
+public class CActionEditDialogFragment extends CBasicBottomSheetDialogFragment implements View.OnClickListener {
 
     public static final String EXTRA_PAGE_COUNT = "extra_page_count";
 
@@ -107,18 +103,27 @@ public class CActionEditDialogFragment extends BottomSheetDialogFragment impleme
     }
 
     @Override
-    public void onStart() {
-        super.onStart();
-        BottomSheetBehavior<View> behavior = BottomSheetBehavior.from((View) getView().getParent());
-        CDialogFragmentUtil.setBottomSheetDialogFragmentFullScreen(getDialog(), behavior);
-        CDialogFragmentUtil.setDimAmount(getDialog(), CViewUtils.isLandScape(getContext()) ? 0.2F : 0F);
-        behavior.setDraggable(false);
+    protected float dimAmount() {
+        return CViewUtils.isLandScape(getContext()) ? 0.2F : 0F;
     }
 
-    @Nullable
     @Override
-    public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
-        View rootView = inflater.inflate(R.layout.tools_properties_action_edit_fragment, container, false);
+    protected boolean draggable() {
+        return false;
+    }
+
+    @Override
+    protected boolean fullScreen() {
+        return true;
+    }
+
+    @Override
+    protected int layoutId() {
+        return R.layout.tools_properties_action_edit_fragment;
+    }
+
+    @Override
+    protected void onCreateView(View rootView) {
         tabLayout = rootView.findViewById(R.id.tab_layout);
         etText = rootView.findViewById(R.id.et_text);
         btnSave = rootView.findViewById(R.id.btn_save);
@@ -156,8 +161,11 @@ public class CActionEditDialogFragment extends BottomSheetDialogFragment impleme
 
             }
         });
+    }
+
+    @Override
+    protected void onViewCreate() {
 
-        return rootView;
     }
 
     @Override

+ 0 - 1
ComPDFKit_Tools/src/main/java/com/compdfkit/tools/contenteditor/pdfproperties/CEditImagePropertiesFragment.java

@@ -23,7 +23,6 @@ import androidx.constraintlayout.widget.ConstraintLayout;
 
 import com.compdfkit.tools.R;
 import com.compdfkit.tools.common.utils.activitycontracts.CImageResultContracts;
-import com.compdfkit.tools.common.utils.threadpools.CThreadPoolUtils;
 import com.compdfkit.tools.common.utils.view.sliderbar.CSliderBar;
 import com.compdfkit.tools.common.views.pdfproperties.basic.CBasicPropertiesFragment;
 import com.compdfkit.tools.common.views.pdfproperties.pdfstyle.CAnnotStyle;

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

@@ -15,30 +15,24 @@ import static com.compdfkit.core.document.CPDFDocument.PDFDocumentError.PDFDocum
 import android.content.Intent;
 import android.net.Uri;
 import android.os.Build;
-import android.os.Bundle;
 import android.os.Environment;
 import android.text.TextUtils;
 import android.util.SparseIntArray;
 import android.view.KeyEvent;
-import android.view.LayoutInflater;
 import android.view.View;
-import android.view.ViewGroup;
-import android.widget.Toast;
 
 import androidx.activity.result.ActivityResultLauncher;
 import androidx.activity.result.contract.ActivityResultContracts;
 import androidx.annotation.NonNull;
-import androidx.annotation.Nullable;
 import androidx.fragment.app.FragmentActivity;
 
 import com.compdfkit.core.document.CPDFDocument;
 import com.compdfkit.core.page.CPDFPage;
 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.CToastUtil;
 import com.compdfkit.tools.common.utils.dialog.CAlertDialog;
-import com.compdfkit.tools.common.utils.dialog.CDialogFragmentUtil;
 import com.compdfkit.tools.common.utils.threadpools.CThreadPoolUtils;
 import com.compdfkit.tools.common.utils.viewutils.CViewUtils;
 import com.compdfkit.tools.common.views.CVerifyPasswordDialogFragment;
@@ -51,13 +45,12 @@ import com.compdfkit.tools.docseditor.pdfpageeditinsert.CSelectInsertPageTypeDia
 import com.compdfkit.tools.viewer.pdfthumbnail.CPDFEditThumbnailFragment;
 import com.compdfkit.ui.reader.CPDFReaderView;
 import com.google.android.material.bottomsheet.BottomSheetBehavior;
-import com.google.android.material.bottomsheet.BottomSheetDialogFragment;
 
 import java.io.File;
 import java.util.ArrayList;
 import java.util.List;
 
-public class CPDFPageEditDialogFragment extends BottomSheetDialogFragment {
+public class CPDFPageEditDialogFragment extends CBasicBottomSheetDialogFragment {
 
     private CPageEditBar toolBar;
 
@@ -130,27 +123,34 @@ public class CPDFPageEditDialogFragment extends BottomSheetDialogFragment {
     }
 
     @Override
-    public void onCreate(@Nullable Bundle savedInstanceState) {
-        super.onCreate(savedInstanceState);
-        setStyle(STYLE_NORMAL, R.style.Tools_Base_Theme_BasicBottomSheetDialogStyle);
+    protected int getStyle() {
+        return R.style.Tools_Base_Theme_BasicBottomSheetDialogStyle;
+    }
+
+    @Override
+    protected float dimAmount() {
+        return CViewUtils.isLandScape(getContext()) ? 0.2F : 0F;
+    }
+
+    @Override
+    protected boolean draggable() {
+        return false;
+    }
+
+    @Override
+    protected boolean fullScreen() {
+        return true;
     }
 
     @Override
     public void onStart() {
         super.onStart();
-        if (!CViewUtils.isLandScape(getContext())) {
-            CDialogFragmentUtil.setDimAmount(getDialog(), 0F);
-        } else {
-            CDialogFragmentUtil.setDimAmount(getDialog(), 0.2F);
-        }
         BottomSheetBehavior<View> behavior = BottomSheetBehavior.from((View) getView().getParent());
-        behavior.setDraggable(false);
         behavior.addBottomSheetCallback(new BottomSheetBehavior.BottomSheetCallback() {
             @Override
             public void onStateChanged(@NonNull View bottomSheet, int newState) {
                 switch (newState) {
                     case BottomSheetBehavior.STATE_HIDDEN:
-                        CLog.e("Bottom Sheet Behavior", "STATE_HIDDEN");
                         if (onBackLisener != null) {
                             onBackLisener.onBack();
                         }
@@ -165,13 +165,15 @@ public class CPDFPageEditDialogFragment extends BottomSheetDialogFragment {
 
             }
         });
-        CDialogFragmentUtil.setBottomSheetDialogFragmentFullScreen(getDialog(), behavior);
     }
 
-    @Nullable
     @Override
-    public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
-        View rootView = inflater.inflate(R.layout.tools_page_edit_dialog_fragment, container, false);
+    protected int layoutId() {
+        return R.layout.tools_page_edit_dialog_fragment;
+    }
+
+    @Override
+    protected void onCreateView(View rootView) {
         toolBar = rootView.findViewById(R.id.tool_bar);
         editToolBar = rootView.findViewById(R.id.tool_page_edit_bar);
         this.editThumbnailFragment = (CPDFEditThumbnailFragment) getChildFragmentManager().findFragmentById(R.id.id_edit_thumbnail_fragment);
@@ -324,7 +326,6 @@ public class CPDFPageEditDialogFragment extends BottomSheetDialogFragment {
 
             return false;
         });
-        return rootView;
     }
 
     private void insertPage() {
@@ -559,7 +560,7 @@ public class CPDFPageEditDialogFragment extends BottomSheetDialogFragment {
     }
 
     @Override
-    public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
+    protected void onViewCreate() {
         intEditThumbnailFragment();
     }
 

+ 23 - 27
ComPDFKit_Tools/src/main/java/com/compdfkit/tools/docseditor/pdfpageeditinsert/CInsertBlankPageDialogFragment.java

@@ -2,7 +2,6 @@ package com.compdfkit.tools.docseditor.pdfpageeditinsert;
 
 import android.annotation.SuppressLint;
 import android.os.Build;
-import android.os.Bundle;
 import android.text.Editable;
 import android.text.TextUtils;
 import android.text.TextWatcher;
@@ -12,8 +11,6 @@ import android.view.ViewGroup;
 import android.widget.RadioButton;
 import android.widget.RadioGroup;
 
-import androidx.annotation.NonNull;
-import androidx.annotation.Nullable;
 import androidx.appcompat.widget.AppCompatEditText;
 import androidx.appcompat.widget.AppCompatImageView;
 import androidx.appcompat.widget.AppCompatTextView;
@@ -21,17 +18,14 @@ import androidx.constraintlayout.widget.ConstraintLayout;
 
 import com.compdfkit.core.document.CPDFDocument;
 import com.compdfkit.tools.R;
+import com.compdfkit.tools.common.basic.fragment.CBasicBottomSheetDialogFragment;
 import com.compdfkit.tools.common.utils.CToastUtil;
-import com.compdfkit.tools.common.utils.dialog.CDialogFragmentUtil;
-import com.compdfkit.tools.common.utils.threadpools.CThreadPoolUtils;
 import com.compdfkit.tools.common.utils.viewutils.CDimensUtils;
 import com.compdfkit.tools.common.utils.viewutils.CViewUtils;
 import com.compdfkit.tools.common.views.pdfview.CPDFViewCtrl;
 import com.compdfkit.tools.docseditor.CPageEditBar;
-import com.google.android.material.bottomsheet.BottomSheetBehavior;
-import com.google.android.material.bottomsheet.BottomSheetDialogFragment;
 
-public class CInsertBlankPageDialogFragment extends BottomSheetDialogFragment implements View.OnClickListener {
+public class CInsertBlankPageDialogFragment extends CBasicBottomSheetDialogFragment implements View.OnClickListener {
     private CPageEditBar toolBar;
     private CPDFViewCtrl pdfView;
     private ConstraintLayout clPagesize;
@@ -61,28 +55,32 @@ public class CInsertBlankPageDialogFragment extends BottomSheetDialogFragment im
     }
 
     @Override
-    public void onCreate(@Nullable Bundle savedInstanceState) {
-        super.onCreate(savedInstanceState);
-        setStyle(STYLE_NORMAL, R.style.Tools_Base_Theme_BasicBottomSheetDialogStyle);
+    protected int getStyle() {
+        return R.style.Tools_Base_Theme_BasicBottomSheetDialogStyle;
     }
 
     @Override
-    public void onStart() {
-        super.onStart();
-        if (!CViewUtils.isLandScape(getContext())) {
-            CDialogFragmentUtil.setDimAmount(getDialog(), 0F);
-        } else {
-            CDialogFragmentUtil.setDimAmount(getDialog(), 0.2F);
-        }
-        BottomSheetBehavior<View> behavior = BottomSheetBehavior.from((View) getView().getParent());
-        behavior.setDraggable(false);
-        CDialogFragmentUtil.setBottomSheetDialogFragmentFullScreen(getDialog(), behavior);
+    protected float dimAmount() {
+        return CViewUtils.isLandScape(getContext()) ? 0.2F : 0F;
+    }
+
+    @Override
+    protected boolean draggable() {
+        return false;
+    }
+
+    @Override
+    protected boolean fullScreen() {
+        return true;
+    }
+
+    @Override
+    protected int layoutId() {
+        return R.layout.tools_pageedit_insert_blank_page_dialog_fragment;
     }
 
-    @Nullable
     @Override
-    public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
-        View rootView = inflater.inflate(R.layout.tools_pageedit_insert_blank_page_dialog_fragment, container, false);
+    protected void onCreateView(View rootView) {
         toolBar = rootView.findViewById(R.id.page_edit_tool_bar);
         ivDirectionV = rootView.findViewById(R.id.iv_tool_insert_page_verticel);
         ivDirectionH = rootView.findViewById(R.id.iv_tool_insert_page_horizontal);
@@ -165,8 +163,6 @@ public class CInsertBlankPageDialogFragment extends BottomSheetDialogFragment im
                 updateDoneBtnStatus();
             }
         });
-
-        return rootView;
     }
 
     public int getInsertPageIndex() {
@@ -259,7 +255,7 @@ public class CInsertBlankPageDialogFragment extends BottomSheetDialogFragment im
     }
 
     @Override
-    public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
+    protected void onViewCreate() {
         initPageSizeGroup();
     }
 

+ 28 - 39
ComPDFKit_Tools/src/main/java/com/compdfkit/tools/docseditor/pdfpageeditinsert/CInsertPdfPageDialogFragment.java

@@ -6,51 +6,40 @@ import static com.compdfkit.core.document.CPDFDocument.PDFDocumentError.PDFDocum
 import android.content.Intent;
 import android.net.Uri;
 import android.os.Build;
-import android.os.Bundle;
 import android.text.Editable;
 import android.text.TextUtils;
 import android.text.TextWatcher;
-import android.view.LayoutInflater;
 import android.view.View;
-import android.view.ViewGroup;
 import android.widget.RadioButton;
 import android.widget.RadioGroup;
 import android.widget.Toast;
 
 import androidx.activity.result.ActivityResultLauncher;
 import androidx.activity.result.contract.ActivityResultContracts;
-import androidx.annotation.NonNull;
-import androidx.annotation.Nullable;
 import androidx.appcompat.widget.AppCompatEditText;
 import androidx.appcompat.widget.AppCompatImageView;
 import androidx.appcompat.widget.AppCompatTextView;
 
 import com.compdfkit.core.document.CPDFDocument;
 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.CToastUtil;
 import com.compdfkit.tools.common.utils.CUriUtil;
-import com.compdfkit.tools.common.utils.dialog.CDialogFragmentUtil;
-import com.compdfkit.tools.common.utils.threadpools.CThreadPoolUtils;
 import com.compdfkit.tools.common.utils.viewutils.CViewUtils;
 import com.compdfkit.tools.common.views.CVerifyPasswordDialogFragment;
 import com.compdfkit.tools.common.views.pdfview.CPDFViewCtrl;
 import com.compdfkit.tools.docseditor.CPageEditBar;
-import com.google.android.material.bottomsheet.BottomSheetBehavior;
-import com.google.android.material.bottomsheet.BottomSheetDialogFragment;
 
 import java.util.ArrayList;
 import java.util.List;
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
 
-public class CInsertPdfPageDialogFragment extends BottomSheetDialogFragment implements View.OnClickListener {
+public class CInsertPdfPageDialogFragment extends CBasicBottomSheetDialogFragment implements View.OnClickListener {
     private CPageEditBar toolBar;
     private CPDFViewCtrl pdfView;
     private AppCompatTextView tvFilename;
-    private AppCompatImageView ivFileNameRight;
-
-    private RadioGroup rgPageRange;
 
     private RadioButton rbFromPageLocationAll;
     private RadioButton rbFromPageLocationOdd;
@@ -63,8 +52,6 @@ public class CInsertPdfPageDialogFragment extends BottomSheetDialogFragment impl
     private RadioButton rbToPageLocationBefore;
     private RadioButton rbToPageLocationAfter;
 
-    private RadioGroup rgInsertTo;
-
     private AppCompatEditText etToInputPageIndex;
 
     private CPageEditBar.OnEditDoneCallback onEditDoneCallback;
@@ -112,31 +99,36 @@ public class CInsertPdfPageDialogFragment extends BottomSheetDialogFragment impl
     }
 
     @Override
-    public void onCreate(@Nullable Bundle savedInstanceState) {
-        super.onCreate(savedInstanceState);
-        setStyle(STYLE_NORMAL, R.style.Tools_Base_Theme_BasicBottomSheetDialogStyle);
+    protected int getStyle() {
+        return R.style.Tools_Base_Theme_BasicBottomSheetDialogStyle;
     }
 
     @Override
-    public void onStart() {
-        super.onStart();
-        if (!CViewUtils.isLandScape(getContext())) {
-            CDialogFragmentUtil.setDimAmount(getDialog(), 0F);
-        }
-        BottomSheetBehavior<View> behavior = BottomSheetBehavior.from((View) getView().getParent());
-        behavior.setDraggable(false);
-        CDialogFragmentUtil.setBottomSheetDialogFragmentFullScreen(getDialog(), behavior);
+    protected float dimAmount() {
+        return CViewUtils.isLandScape(getContext()) ? 0.2F : 0F;
+    }
+
+    @Override
+    protected boolean draggable() {
+        return false;
     }
 
-    @Nullable
     @Override
-    public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
-        View rootView = inflater.inflate(R.layout.tools_pageedit_insert_pdf_page_dialog_fragment, container, false);
+    protected boolean fullScreen() {
+        return true;
+    }
+
+    @Override
+    protected int layoutId() {
+        return R.layout.tools_pageedit_insert_pdf_page_dialog_fragment;
+    }
+
+    @Override
+    protected void onCreateView(View rootView) {
         toolBar = rootView.findViewById(R.id.page_edit_tool_bar);
         tvFilename = rootView.findViewById(R.id.iv_tool_insert_page_filename);
-
-        ivFileNameRight = rootView.findViewById(R.id.iv_tool_insert_page_right);
-        rgPageRange = rootView.findViewById(R.id.rp_tools_edit_page_insertpage_from_location);
+        AppCompatImageView ivFileNameRight = rootView.findViewById(R.id.iv_tool_insert_page_right);
+        RadioGroup rgPageRange = rootView.findViewById(R.id.rp_tools_edit_page_insertpage_from_location);
         rbFromPageLocationAll = rootView.findViewById(R.id.rb_tools_edit_page_insert_location_from_all);
         rbFromPageLocationOdd = rootView.findViewById(R.id.rb_tools_edit_page_insert_location_from_odd);
         rbFromPageLocationEven = rootView.findViewById(R.id.rb_tools_edit_page_insert_location_from_even);
@@ -147,7 +139,7 @@ public class CInsertPdfPageDialogFragment extends BottomSheetDialogFragment impl
         rbToPageLocationBefore = rootView.findViewById(R.id.rb_tools_edit_page_insert_location_before);
         rbToPageLocationAfter = rootView.findViewById(R.id.rb_tools_edit_page_insert_location_after);
         etToInputPageIndex = rootView.findViewById(R.id.et_tool_edit_page_enterpage);
-        rgInsertTo = rootView.findViewById(R.id.rp_tools_edit_page_insertpage_location);
+        RadioGroup rgInsertTo = rootView.findViewById(R.id.rp_tools_edit_page_insertpage_location);
 
         etFromInputPageIndex.setOnFocusChangeListener((view, b) -> {
             if (b) {
@@ -280,9 +272,11 @@ public class CInsertPdfPageDialogFragment extends BottomSheetDialogFragment impl
                 }
             }
         }
+    }
 
+    @Override
+    protected void onViewCreate() {
 
-        return rootView;
     }
 
     private void updateDoneBtnStatus() {
@@ -420,11 +414,6 @@ public class CInsertPdfPageDialogFragment extends BottomSheetDialogFragment impl
         return insertPages;
     }
 
-    @Override
-    public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
-
-    }
-
     @Override
     public void onClick(View view) {
         int id = view.getId();

+ 10 - 15
ComPDFKit_Tools/src/main/java/com/compdfkit/tools/docseditor/pdfpageeditinsert/CSelectInsertPageTypeDialogFragment.java

@@ -1,20 +1,14 @@
 package com.compdfkit.tools.docseditor.pdfpageeditinsert;
 
-import android.os.Bundle;
-import android.view.LayoutInflater;
 import android.view.View;
-import android.view.ViewGroup;
 
-import androidx.annotation.NonNull;
-import androidx.annotation.Nullable;
 import androidx.constraintlayout.widget.ConstraintLayout;
 
 import com.compdfkit.tools.R;
-import com.compdfkit.tools.common.utils.dialog.CDialogFragmentUtil;
+import com.compdfkit.tools.common.basic.fragment.CBasicBottomSheetDialogFragment;
 import com.google.android.material.bottomsheet.BottomSheetBehavior;
-import com.google.android.material.bottomsheet.BottomSheetDialogFragment;
 
-public class CSelectInsertPageTypeDialogFragment extends BottomSheetDialogFragment {
+public class CSelectInsertPageTypeDialogFragment extends CBasicBottomSheetDialogFragment {
 
     private View.OnClickListener blankClickListener;
 
@@ -30,23 +24,24 @@ public class CSelectInsertPageTypeDialogFragment extends BottomSheetDialogFragme
         BottomSheetBehavior<View> behavior = BottomSheetBehavior.from((View) getView().getParent());
         behavior.setState(BottomSheetBehavior.STATE_EXPANDED);
         behavior.setSkipCollapsed(true);
-        CDialogFragmentUtil.setDimAmount(getDialog(), 0.2F);
     }
 
-    @Nullable
     @Override
-    public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
-        View rootView = inflater.inflate(R.layout.tools_pageedit_insert_dialog_fragment, container, false);
+    protected int layoutId() {
+        return R.layout.tools_pageedit_insert_dialog_fragment;
+    }
+
+    @Override
+    protected void onCreateView(View rootView) {
         ConstraintLayout clInsertBlankPage = rootView.findViewById(R.id.cl_insert_blank_page);
         ConstraintLayout clInsertPdfPage = rootView.findViewById(R.id.cl_insert_pdf_page);
         clInsertBlankPage.setOnClickListener(blankClickListener);
         clInsertPdfPage.setOnClickListener(pdfClickListener);
-        return rootView;
     }
 
     @Override
-    public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
-        super.onViewCreated(view, savedInstanceState);
+    protected void onViewCreate() {
+
     }
 
     public void setInsertBlankPageClickListener(View.OnClickListener blankClickListener) {

+ 13 - 29
ComPDFKit_Tools/src/main/java/com/compdfkit/tools/forms/pdfproperties/option/edit/CFormOptionEditFragment.java

@@ -12,11 +12,8 @@ package com.compdfkit.tools.forms.pdfproperties.option.edit;
 
 import static androidx.recyclerview.widget.ItemTouchHelper.ACTION_STATE_IDLE;
 
-import android.content.res.Configuration;
 import android.os.Bundle;
-import android.view.LayoutInflater;
 import android.view.View;
-import android.view.ViewGroup;
 
 import androidx.annotation.NonNull;
 import androidx.annotation.Nullable;
@@ -28,20 +25,18 @@ import androidx.recyclerview.widget.RecyclerView;
 import com.compdfkit.core.annotation.form.CPDFWidgetItem;
 import com.compdfkit.core.annotation.form.CPDFWidgetItems;
 import com.compdfkit.tools.R;
-import com.compdfkit.tools.common.utils.dialog.CDialogFragmentUtil;
+import com.compdfkit.tools.common.basic.fragment.CBasicBottomSheetDialogFragment;
 import com.compdfkit.tools.common.utils.dialog.CEditDialog;
 import com.compdfkit.tools.common.utils.viewutils.CViewUtils;
 import com.compdfkit.tools.common.utils.window.CPopupMenuWindow;
 import com.compdfkit.tools.common.views.CToolBar;
 import com.compdfkit.tools.forms.pdfproperties.option.CWidgetItemBean;
-import com.google.android.material.bottomsheet.BottomSheetBehavior;
-import com.google.android.material.bottomsheet.BottomSheetDialogFragment;
 import com.google.android.material.floatingactionbutton.FloatingActionButton;
 
 import java.util.ArrayList;
 import java.util.List;
 
-public class CFormOptionEditFragment extends BottomSheetDialogFragment {
+public class CFormOptionEditFragment extends CBasicBottomSheetDialogFragment {
 
     private static final String EXTRA_TOOL_BAR_TITLE = "extra_tool_bar_title";
 
@@ -85,40 +80,29 @@ public class CFormOptionEditFragment extends BottomSheetDialogFragment {
     }
 
     @Override
-    public void onStart() {
-        super.onStart();
-        BottomSheetBehavior<View> behavior = BottomSheetBehavior.from((View) getView().getParent());
-        CDialogFragmentUtil.setBottomSheetDialogFragmentFullScreen(getDialog(), behavior);
-        if (CViewUtils.isLandScape(getContext())){
-            CDialogFragmentUtil.setDimAmount(getDialog(), 0.4F);
-        }else {
-            CDialogFragmentUtil.setDimAmount(getDialog(), 0F);
-        }
+    protected boolean fullScreen() {
+        return true;
     }
 
     @Override
-    public void onConfigurationChanged(@NonNull Configuration newConfig) {
-        super.onConfigurationChanged(newConfig);
-        if (CViewUtils.isLandScape(getContext())){
-            CDialogFragmentUtil.setDimAmount(getDialog(), 0.4F);
-        }else {
-            CDialogFragmentUtil.setDimAmount(getDialog(), 0F);
-        }
+    protected float dimAmount() {
+        return CViewUtils.isLandScape(getContext()) ? 0.2F : 0F;
+    }
+
+    @Override
+    protected int layoutId() {
+        return R.layout.tools_properties_form_option_edit_fragment;
     }
 
-    @Nullable
     @Override
-    public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
-        View rootView = inflater.inflate(R.layout.tools_properties_form_option_edit_fragment, container, false);
+    protected void onCreateView(View rootView) {
         rvList = rootView.findViewById(R.id.rv_list_box);
         fabAdd = rootView.findViewById(R.id.fab_add);
         toolBar = rootView.findViewById(R.id.tool_bar);
-        return rootView;
     }
 
     @Override
-    public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
-        super.onViewCreated(view, savedInstanceState);
+    protected void onViewCreate() {
         if (getArguments() != null) {
             toolBar.setTitle(getArguments().getInt(EXTRA_TOOL_BAR_TITLE,-1));
         }

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

@@ -1,6 +1,6 @@
 /**
  * Copyright © 2014-2023 PDF Technologies, Inc. All Rights Reserved.
- *
+ * <p>
  * THIS SOURCE CODE AND ANY ACCOMPANYING DOCUMENTATION ARE PROTECTED BY INTERNATIONAL COPYRIGHT LAW
  * AND MAY NOT BE RESOLD OR REDISTRIBUTED. USAGE IS BOUND TO THE ComPDFKit LICENSE AGREEMENT.
  * UNAUTHORIZED REPRODUCTION OR DISTRIBUTION IS SUBJECT TO CIVIL AND CRIMINAL PENALTIES.
@@ -10,12 +10,8 @@
 package com.compdfkit.tools.forms.pdfproperties.option.select;
 
 import android.os.Bundle;
-import android.view.LayoutInflater;
 import android.view.View;
-import android.view.ViewGroup;
 
-import androidx.annotation.NonNull;
-import androidx.annotation.Nullable;
 import androidx.appcompat.widget.AppCompatImageView;
 import androidx.appcompat.widget.AppCompatTextView;
 import androidx.recyclerview.widget.LinearLayoutManager;
@@ -24,17 +20,16 @@ import androidx.recyclerview.widget.RecyclerView;
 import com.compdfkit.core.annotation.form.CPDFWidgetItem;
 import com.compdfkit.core.annotation.form.CPDFWidgetItems;
 import com.compdfkit.tools.R;
-import com.compdfkit.tools.common.utils.dialog.CDialogFragmentUtil;
+import com.compdfkit.tools.common.basic.fragment.CBasicBottomSheetDialogFragment;
 import com.compdfkit.tools.common.utils.viewutils.CViewUtils;
 import com.compdfkit.tools.forms.pdfproperties.option.CWidgetItemBean;
 import com.google.android.material.bottomsheet.BottomSheetBehavior;
-import com.google.android.material.bottomsheet.BottomSheetDialogFragment;
 
 import java.util.ArrayList;
 import java.util.List;
 
 
-public class CFormOptionSelectDialogFragment extends BottomSheetDialogFragment {
+public class CFormOptionSelectDialogFragment extends CBasicBottomSheetDialogFragment {
 
     private AppCompatTextView tvTitle;
 
@@ -60,39 +55,37 @@ public class CFormOptionSelectDialogFragment extends BottomSheetDialogFragment {
     }
 
     @Override
-    public void onCreate(@Nullable Bundle savedInstanceState) {
-        super.onCreate(savedInstanceState);
-        setStyle(STYLE_NORMAL, R.style.Tools_Base_Theme_BasicBottomSheetDialogStyle_TopCorners);
+    protected int getStyle() {
+        return R.style.Tools_Base_Theme_BasicBottomSheetDialogStyle_TopCorners;
     }
 
+
     @Override
     public void onStart() {
         super.onStart();
         BottomSheetBehavior<View> behavior = BottomSheetBehavior.from((View) getView().getParent());
-        CDialogFragmentUtil.setDimAmount(getDialog(), 0.2F);
-        if (CViewUtils.isLandScape(getContext())){
+        if (CViewUtils.isLandScape(getContext())) {
             behavior.setSkipCollapsed(true);
             behavior.setState(BottomSheetBehavior.STATE_EXPANDED);
         }
     }
 
-    @Nullable
     @Override
-    public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
-        View rootView = inflater.inflate(R.layout.tools_properties_form_option_select_fragment, container, false);
+    protected int layoutId() {
+        return R.layout.tools_properties_form_option_select_fragment;
+    }
+
+    @Override
+    protected void onCreateView(View rootView) {
         tvTitle = rootView.findViewById(R.id.tv_tool_bar_title);
         ivClose = rootView.findViewById(R.id.iv_tool_bar_close);
         rvOptions = rootView.findViewById(R.id.rv_options);
-        return rootView;
     }
 
     @Override
-    public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
-        super.onViewCreated(view, savedInstanceState);
+    protected void onViewCreate() {
         tvTitle.setText(R.string.tools_context_menu_select);
-        ivClose.setOnClickListener(v -> {
-            dismiss();
-        });
+        ivClose.setOnClickListener(v -> dismiss());
         optionListAdapter = new CFormOptionListAdapter();
         optionListAdapter.setList(getWidgetItems());
         optionListAdapter.setOnItemClickListener((adapter, view1, position) -> {
@@ -117,15 +110,15 @@ public class CFormOptionSelectDialogFragment extends BottomSheetDialogFragment {
         rvOptions.setAdapter(optionListAdapter);
     }
 
-    private List<CWidgetItemBean> getWidgetItems(){
-        if (pdfWidgetItems == null || pdfWidgetItems.getOptions() == null){
+    private List<CWidgetItemBean> getWidgetItems() {
+        if (pdfWidgetItems == null || pdfWidgetItems.getOptions() == null) {
             return new ArrayList<>();
         }
         CPDFWidgetItem selectItem = getSelectedItem();
         List<CWidgetItemBean> list = new ArrayList<>();
         for (CPDFWidgetItem option : pdfWidgetItems.getOptions()) {
             boolean isSelect = false;
-            if (selectItem != null && selectItem.text.equals(option.text)){
+            if (selectItem != null && selectItem.text.equals(option.text)) {
                 isSelect = true;
             }
             list.add(new CWidgetItemBean(option.text, isSelect));
@@ -133,10 +126,10 @@ public class CFormOptionSelectDialogFragment extends BottomSheetDialogFragment {
         return list;
     }
 
-    private CPDFWidgetItem getSelectedItem(){
+    private CPDFWidgetItem getSelectedItem() {
         int[] selectedIndexs = pdfWidgetItems.getSelectedIndexes();
         CPDFWidgetItem selectedItem = null;
-        if (selectedIndexs != null && selectedIndexs.length > 0){
+        if (selectedIndexs != null && selectedIndexs.length > 0) {
             selectedItem = pdfWidgetItems.getOptionByIndex(selectedIndexs[0]);
         }
         return selectedItem;

+ 0 - 4
ComPDFKit_Tools/src/main/java/com/compdfkit/tools/signature/CSignatureToolBar.java

@@ -20,12 +20,8 @@ import androidx.annotation.Nullable;
 import androidx.constraintlayout.widget.ConstraintLayout;
 
 import com.compdfkit.core.annotation.form.CPDFWidget;
-import com.compdfkit.core.document.CPDFDocument;
 import com.compdfkit.tools.R;
-import com.compdfkit.tools.common.utils.threadpools.CThreadPoolUtils;
 import com.compdfkit.tools.common.views.pdfview.CPDFViewCtrl;
-import com.compdfkit.tools.signature.bean.CPDFDocumentSignInfo;
-import com.compdfkit.tools.signature.verify.view.CVerifySignStatusView;
 import com.compdfkit.ui.reader.CPDFReaderView;
 
 public class CSignatureToolBar extends FrameLayout {

+ 3 - 49
ComPDFKit_Tools/src/main/java/com/compdfkit/tools/signature/CertificateDigitalDatas.java

@@ -23,7 +23,6 @@ import com.compdfkit.core.document.signature.CPDFSignature;
 import com.compdfkit.core.document.signature.CPDFSigner;
 import com.compdfkit.core.document.signature.CPDFX509;
 import com.compdfkit.tools.R;
-import com.compdfkit.tools.common.utils.CLog;
 import com.compdfkit.tools.common.utils.CUriUtil;
 import com.compdfkit.tools.signature.bean.CPDFDocumentSignInfo;
 import com.compdfkit.tools.signature.bean.CPDFSignatureStatusInfo;
@@ -149,19 +148,14 @@ public class CertificateDigitalDatas {
     public static CPDFSignatureStatusInfo verifyGetSignatureStatusInfo(CPDFDocument document, CPDFSignature signature) {
         CPDFSigner signer = signature.getSignerArr()[0];
         boolean verifyValid;
-        long time = System.currentTimeMillis();
         if (!TextUtils.isEmpty(document.getAbsolutePath())) {
             verifyValid =  signature.verifyByPath(signer, document.getAbsolutePath());
-            CLog.e("DigitalSign", "verifyByPath:time:" + (System.currentTimeMillis() - time) + " ms");
         } else {
             verifyValid =  signature.verifyByFd(signer, CUriUtil.getUriFd(document.getContext(), document.getUri()));
-            CLog.e("DigitalSign", "verifyByFd:time:" + (System.currentTimeMillis() - time) + " ms");
         }
-        long time1 = System.currentTimeMillis();
-        boolean hasChanged = signature.verifyDocument(document);
-        CLog.e("DigitalSign", "signature.verifyDocument(document):time:" + (System.currentTimeMillis() - time1) + " ms");
+        boolean notChanged = signature.verifyDocument(document);
         // The signature is valid and the signature has not been modified to be valid
-        boolean isSignVerified = verifyValid && !hasChanged;
+        boolean isSignVerified = verifyValid && notChanged;
         // Check if the certificate is trusted
         boolean isCertTrusted = signer.getCert().verifyGetChain(document.getContext(), signature);
         boolean isExpired = signer.getCert().isExpired();
@@ -173,7 +167,7 @@ public class CertificateDigitalDatas {
         } else {
             status = SignatureStatus.FAILURE;
         }
-        return new CPDFSignatureStatusInfo(document.getContext(), signature,status, isSignVerified, isExpired, hasChanged, isCertTrusted);
+        return new CPDFSignatureStatusInfo(document.getContext(), signature,status, isSignVerified, isExpired, notChanged, isCertTrusted);
     }
 
     /**
@@ -188,19 +182,6 @@ public class CertificateDigitalDatas {
         return signature.veryfyTimestamp(context, signer);
     }
 
-    /**
-     * Whether the certificate is trusted
-     *
-     * @param context
-     * @param cert
-     * @param signature
-     * @return
-     */
-    public static boolean verifyGetChain(Context context, CPDFX509 cert, CPDFSignature signature) {
-        return cert.verifyGetChain(context, signature);
-    }
-
-
     public static CPDFDocumentSignInfo verifyDocumentSignStatus(CPDFDocument document) {
         List<CPDFSignature> signatures = getDigitalSignList(document);
         if (signatures != null && signatures.size() > 0) {
@@ -267,31 +248,4 @@ public class CertificateDigitalDatas {
             loopVerifyGetChain(context, list, signature, a);
         }
     }
-
-
-    public static String getOwnerContent(CPDFOwnerInfo ownerInfo) {
-        StringBuilder builder = new StringBuilder();
-        List<String> infos = new ArrayList<>();
-        if (!TextUtils.isEmpty(ownerInfo.getCountry())) {
-            infos.add("C=" + ownerInfo.getCountry());
-        }
-        if (!TextUtils.isEmpty(ownerInfo.getOrgnize())) {
-            infos.add("O=" + ownerInfo.getOrgnize());
-        }
-        if (!TextUtils.isEmpty(ownerInfo.getOrgnizeUnit())) {
-            infos.add("OU=" + ownerInfo.getOrgnizeUnit());
-        }
-        if (!TextUtils.isEmpty(ownerInfo.getCommonName())) {
-            infos.add("CN=" + ownerInfo.getCommonName());
-        }
-        for (int i = 0; i < infos.size(); i++) {
-            String item = infos.get(i);
-            builder.append(item);
-            if (i != infos.size() - 1) {
-                builder.append(",");
-            }
-        }
-        return builder.toString();
-    }
-
 }

+ 10 - 16
ComPDFKit_Tools/src/main/java/com/compdfkit/tools/signature/bean/CPDFSignatureStatusInfo.java

@@ -20,15 +20,11 @@ import java.util.List;
 
 public class CPDFSignatureStatusInfo {
 
-    public CPDFSignatureStatusInfo(){
-
-    }
-
-    public CPDFSignatureStatusInfo(Context context, CPDFSignature signature, SignatureStatus status, boolean isValid, boolean isExpired, boolean hasChanged, boolean isCertTrusted){
+    public CPDFSignatureStatusInfo(Context context, CPDFSignature signature, SignatureStatus status, boolean isValid, boolean isExpired, boolean notChanged, boolean isCertTrusted){
         this.signature = signature;
         this.isValid = isValid;
         this.isExpired = isExpired;
-        this.hasChanged = hasChanged;
+        this.notChanged = notChanged;
         this.isCertTrusted = isCertTrusted;
         this.status = status;
         List<String> list = new ArrayList<>();
@@ -47,10 +43,10 @@ public class CPDFSignatureStatusInfo {
         if (isExpired){
             list.add(context.getString(R.string.tools_signer_cert_has_expired));
         }
-        if (hasChanged){
-            list.add(context.getString(R.string.tools_sign_document_has_been_modified));
-        }else {
+        if (notChanged){
             list.add(context.getString(R.string.tools_sign_document_has_not_been_modified));
+        }else {
+            list.add(context.getString(R.string.tools_sign_document_has_been_modified));
         }
         this.certAuthorityStatements = list.toArray(new String[list.size()]);
     }
@@ -64,7 +60,7 @@ public class CPDFSignatureStatusInfo {
 
     private SignatureStatus status;
 
-    private boolean hasChanged;
+    private boolean notChanged;
 
     private boolean isCertTrusted;
 
@@ -103,12 +99,12 @@ public class CPDFSignatureStatusInfo {
         this.certAuthorityStatements = certAuthorityStatements;
     }
 
-    public boolean isHasChanged() {
-        return hasChanged;
+    public boolean isNotChanged() {
+        return notChanged;
     }
 
-    public void setHasChanged(boolean hasChanged) {
-        this.hasChanged = hasChanged;
+    public void setNotChanged(boolean notChanged) {
+        this.notChanged = notChanged;
     }
 
     public boolean isCertTrusted() {
@@ -126,6 +122,4 @@ public class CPDFSignatureStatusInfo {
     public void setStatus(SignatureStatus status) {
         this.status = status;
     }
-
-
 }

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

@@ -18,15 +18,11 @@ import android.os.Bundle;
 import android.text.Editable;
 import android.text.TextUtils;
 import android.text.TextWatcher;
-import android.view.LayoutInflater;
 import android.view.View;
-import android.view.ViewGroup;
 import android.view.inputmethod.EditorInfo;
 
 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.appcompat.widget.AppCompatEditText;
 import androidx.appcompat.widget.AppCompatImageView;
@@ -38,11 +34,8 @@ 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.CUriUtil;
-import com.compdfkit.tools.common.utils.dialog.CDialogFragmentUtil;
 import com.compdfkit.tools.common.utils.viewutils.CViewUtils;
 import com.compdfkit.tools.signature.interfaces.COnSelectCertFileListener;
-import com.google.android.material.bottomsheet.BottomSheetBehavior;
-import com.google.android.material.bottomsheet.BottomSheetDialogFragment;
 
 import java.io.File;
 
@@ -52,10 +45,6 @@ public class CImportCertificateDigitalDialog extends CBasicBottomSheetDialogFrag
 
     private AppCompatTextView tvTitle;
 
-    private AppCompatImageView ivClose;
-
-    private ConstraintLayout clCertificate;
-
     private AppCompatEditText etPassword;
 
     private AppCompatImageView ivClearPassword;
@@ -98,8 +87,8 @@ public class CImportCertificateDigitalDialog extends CBasicBottomSheetDialogFrag
     @Override
     protected void onCreateView(View view) {
         tvTitle = view.findViewById(R.id.tv_tool_bar_title);
-        ivClose = view.findViewById(R.id.iv_tool_bar_close);
-        clCertificate = view.findViewById(R.id.cl_certificate);
+        AppCompatImageView ivClose = view.findViewById(R.id.iv_tool_bar_close);
+        ConstraintLayout clCertificate = view.findViewById(R.id.cl_certificate);
         tvCertificateDigitalName = view.findViewById(R.id.tv_certificate);
         etPassword = view.findViewById(R.id.et_password);
         ivClearPassword = view.findViewById(R.id.iv_remove_password);
@@ -187,6 +176,7 @@ public class CImportCertificateDigitalDialog extends CBasicBottomSheetDialogFrag
     }
 
     private void verifyCertificate() {
+        CViewUtils.hideKeyboard(etPassword);
         if (TextUtils.isEmpty(etPassword.getText())) {
             tvPasswordError.setVisibility(View.VISIBLE);
             return;

+ 0 - 5
ComPDFKit_Tools/src/main/java/com/compdfkit/tools/signature/importcert/create/CreateCertificateDigitalDialog.java

@@ -15,9 +15,7 @@ import android.net.Uri;
 import android.os.Bundle;
 import android.os.Environment;
 import android.text.TextUtils;
-import android.view.LayoutInflater;
 import android.view.View;
-import android.view.ViewGroup;
 import android.widget.AdapterView;
 import android.widget.LinearLayout;
 import android.widget.ScrollView;
@@ -40,13 +38,10 @@ 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.CToastUtil;
-import com.compdfkit.tools.common.utils.dialog.CDialogFragmentUtil;
 import com.compdfkit.tools.common.utils.threadpools.CThreadPoolUtils;
 import com.compdfkit.tools.common.utils.view.CEditText;
 import com.compdfkit.tools.signature.CertificateDigitalDatas;
 import com.compdfkit.tools.signature.interfaces.COnSelectCertFileListener;
-import com.google.android.material.bottomsheet.BottomSheetBehavior;
-import com.google.android.material.bottomsheet.BottomSheetDialogFragment;
 
 import java.io.File;
 import java.util.ArrayList;

+ 0 - 2
ComPDFKit_Tools/src/main/java/com/compdfkit/tools/signature/info/CertAttrListAdapter.java

@@ -17,8 +17,6 @@ import com.compdfkit.tools.common.utils.adapter.CBaseQuickAdapter;
 import com.compdfkit.tools.common.utils.adapter.CBaseQuickViewHolder;
 import com.compdfkit.tools.signature.bean.CPDFCertAttrDataItem;
 
-import java.util.EventListener;
-
 
 public class CertAttrListAdapter extends CBaseQuickAdapter<CPDFCertAttrDataItem, CBaseQuickViewHolder> {
 

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

@@ -11,31 +11,19 @@ package com.compdfkit.tools.signature.info;
 
 
 import android.os.Bundle;
-import android.view.LayoutInflater;
 import android.view.View;
-import android.view.ViewGroup;
 
-import androidx.annotation.NonNull;
-import androidx.annotation.Nullable;
-import androidx.appcompat.widget.AppCompatImageView;
-import androidx.appcompat.widget.AppCompatTextView;
 import androidx.recyclerview.widget.LinearLayoutManager;
 import androidx.recyclerview.widget.RecyclerView;
 
-import com.compdfkit.core.document.signature.CPDFCertInfo;
 import com.compdfkit.core.document.signature.CPDFSignature;
-import com.compdfkit.core.document.signature.CPDFSigner;
 import com.compdfkit.core.document.signature.CPDFX509;
 import com.compdfkit.tools.R;
 import com.compdfkit.tools.common.basic.fragment.CBasicBottomSheetDialogFragment;
-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;
 import com.compdfkit.tools.signature.CertificateDigitalDatas;
 import com.compdfkit.tools.signature.bean.CPDFOwnerItemData;
-import com.google.android.material.bottomsheet.BottomSheetBehavior;
-import com.google.android.material.bottomsheet.BottomSheetDialogFragment;
 
 import java.util.ArrayList;
 import java.util.List;

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

@@ -11,25 +11,17 @@ package com.compdfkit.tools.signature.info;
 
 
 import android.os.Bundle;
-import android.view.LayoutInflater;
 import android.view.View;
-import android.view.ViewGroup;
 
-import androidx.annotation.NonNull;
-import androidx.annotation.Nullable;
 import androidx.recyclerview.widget.LinearLayoutManager;
 import androidx.recyclerview.widget.RecyclerView;
 
-import com.compdfkit.core.document.signature.CPDFCertInfo;
 import com.compdfkit.core.document.signature.CPDFX509;
 import com.compdfkit.tools.R;
 import com.compdfkit.tools.common.basic.fragment.CBasicBottomSheetDialogFragment;
-import com.compdfkit.tools.common.utils.dialog.CDialogFragmentUtil;
 import com.compdfkit.tools.common.utils.viewutils.CViewUtils;
 import com.compdfkit.tools.common.views.CToolBar;
 import com.compdfkit.tools.signature.bean.CPDFCertAttrDataItem;
-import com.google.android.material.bottomsheet.BottomSheetBehavior;
-import com.google.android.material.bottomsheet.BottomSheetDialogFragment;
 
 import java.util.ArrayList;
 import java.util.List;

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

@@ -18,7 +18,6 @@ import com.compdfkit.tools.common.utils.viewutils.CViewUtils;
 import com.compdfkit.tools.common.views.CToolBar;
 import com.compdfkit.tools.common.views.pdfview.CPDFViewCtrl;
 import com.compdfkit.tools.signature.CertificateDigitalDatas;
-import com.compdfkit.tools.signature.SignatureStatus;
 import com.compdfkit.tools.signature.bean.CPDFSignatureStatusInfo;
 import com.compdfkit.tools.signature.info.CertDigitalSignInfoDialog;
 import com.compdfkit.tools.signature.info.signlist.adapter.CertDigitalSignListAdapter;

+ 0 - 1
ComPDFKit_Tools/src/main/java/com/compdfkit/tools/signature/info/signlist/adapter/CertDigitalSignListAdapter.java

@@ -13,7 +13,6 @@ 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.date.CDateUtil;
-import com.compdfkit.tools.signature.bean.CPDFSignatureItemData;
 import com.compdfkit.tools.signature.bean.CPDFSignatureStatusInfo;
 
 

+ 0 - 3
ComPDFKit_Tools/src/main/java/com/compdfkit/tools/signature/pdfproperties/pdfsign/CDigitalSignatureWidgetImpl.java

@@ -10,7 +10,6 @@
 package com.compdfkit.tools.signature.pdfproperties.pdfsign;
 
 import android.graphics.Bitmap;
-import android.os.Environment;
 
 import androidx.fragment.app.FragmentActivity;
 
@@ -18,9 +17,7 @@ import com.compdfkit.core.annotation.CPDFImageScaleType;
 import com.compdfkit.core.annotation.form.CPDFSignatureWidget;
 import com.compdfkit.core.document.signature.CPDFCertInfo;
 import com.compdfkit.core.document.signature.CPDFSignature;
-import com.compdfkit.core.document.signature.CPDFSigner;
 import com.compdfkit.tools.R;
-import com.compdfkit.tools.common.utils.CFileUtils;
 import com.compdfkit.tools.common.utils.CToastUtil;
 import com.compdfkit.tools.common.utils.image.CBitmapUtil;
 import com.compdfkit.tools.common.views.pdfview.CPDFViewCtrl;

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

@@ -13,9 +13,7 @@ import android.app.Dialog;
 import android.graphics.Bitmap;
 import android.os.Bundle;
 import android.text.TextUtils;
-import android.view.LayoutInflater;
 import android.view.View;
-import android.view.ViewGroup;
 import android.widget.LinearLayout;
 import android.widget.ScrollView;
 
@@ -28,19 +26,15 @@ import androidx.appcompat.widget.AppCompatCheckBox;
 import androidx.appcompat.widget.AppCompatImageView;
 import androidx.appcompat.widget.AppCompatTextView;
 
-import com.compdfkit.core.document.signature.CPDFCertInfo;
 import com.compdfkit.tools.R;
 import com.compdfkit.tools.annotation.pdfproperties.pdfsignature.data.CSignatureDatas;
 import com.compdfkit.tools.common.basic.fragment.CBasicBottomSheetDialogFragment;
-import com.compdfkit.tools.common.utils.dialog.CDialogFragmentUtil;
 import com.compdfkit.tools.common.utils.viewutils.CViewUtils;
 import com.compdfkit.tools.common.views.CToolBar;
 import com.compdfkit.tools.signature.pdfproperties.pdfsign.CDigitalSignStyleData;
 import com.compdfkit.tools.signature.pdfproperties.pdfsign.CDigitalSignStylePreviewView;
 import com.compdfkit.tools.signature.preview.view.CSignStylePositionView;
 import com.compdfkit.tools.signature.preview.view.CSignStyleReasonView;
-import com.google.android.material.bottomsheet.BottomSheetBehavior;
-import com.google.android.material.bottomsheet.BottomSheetDialogFragment;
 
 
 public class CDigitalSignStylePreviewDialog extends CBasicBottomSheetDialogFragment implements View.OnClickListener {

+ 1 - 1
ComPDFKit_Tools/src/main/java/com/compdfkit/tools/signature/verify/view/CVerifySignStatusView.java

@@ -7,7 +7,7 @@
  * This notice may not be removed from this file.
  */
 
-package com.compdfkit.tools.signature.verify.view;
+package com.compdfkit.tools.signature.verify;
 
 
 import android.content.Context;

+ 15 - 33
ComPDFKit_Tools/src/main/java/com/compdfkit/tools/viewer/pdfsearch/CSearchResultDialogFragment.java

@@ -1,29 +1,22 @@
 package com.compdfkit.tools.viewer.pdfsearch;
 
-import android.os.Bundle;
-import android.view.LayoutInflater;
 import android.view.View;
-import android.view.ViewGroup;
 
-import androidx.annotation.NonNull;
-import androidx.annotation.Nullable;
 import androidx.appcompat.widget.AppCompatTextView;
 import androidx.constraintlayout.widget.ConstraintLayout;
 import androidx.recyclerview.widget.LinearLayoutManager;
 import androidx.recyclerview.widget.RecyclerView;
 
 import com.compdfkit.tools.R;
-import com.compdfkit.tools.common.utils.dialog.CDialogFragmentUtil;
+import com.compdfkit.tools.common.basic.fragment.CBasicBottomSheetDialogFragment;
 import com.compdfkit.tools.common.utils.viewutils.CViewUtils;
 import com.compdfkit.tools.common.views.CToolBar;
 import com.compdfkit.tools.viewer.pdfsearch.adapter.CSearchPDFTextRecyclerviewAdapter;
 import com.compdfkit.tools.viewer.pdfsearch.bean.CSearchTextInfo;
-import com.google.android.material.bottomsheet.BottomSheetBehavior;
-import com.google.android.material.bottomsheet.BottomSheetDialogFragment;
 
 import java.util.List;
 
-public class CSearchResultDialogFragment extends BottomSheetDialogFragment {
+public class CSearchResultDialogFragment extends CBasicBottomSheetDialogFragment {
     private View mContentView;
 
     private CToolBar toolBar;
@@ -37,32 +30,29 @@ public class CSearchResultDialogFragment extends BottomSheetDialogFragment {
     private CSearchPDFTextRecyclerviewAdapter searchTextAdapter;
 
     private CSearchPDFTextRecyclerviewAdapter.OnClickSearchItemListener onClickSearchItemListener;
-    //private OnClickBackListener onClickBackListener;
+
     @Override
-    public void onCreate(@Nullable Bundle savedInstanceState) {
-        super.onCreate(savedInstanceState);
+    protected float dimAmount() {
+        return CViewUtils.isLandScape(getContext()) ? 0.2F : 0F;
     }
 
     @Override
-    public void onStart() {
-        super.onStart();
-        if (!CViewUtils.isLandScape(getContext())){
-            CDialogFragmentUtil.setDimAmount(getDialog(), 0F);
-        }
-        BottomSheetBehavior<View> behavior = BottomSheetBehavior.from((View) getView().getParent());
-        CDialogFragmentUtil.setBottomSheetDialogFragmentFullScreen(getDialog(), behavior);
+    protected boolean fullScreen() {
+        return true;
+    }
+
+    @Override
+    protected int layoutId() {
+        return R.layout.tools_search_keywords_list_dialog_fragment;
     }
 
-    @Nullable
     @Override
-    public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
-        return inflater.inflate(R.layout.tools_search_keywords_list_dialog_fragment, container, false);
+    protected void onCreateView(View rootView) {
+        mContentView = rootView;
     }
 
     @Override
-    public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
-        super.onViewCreated(view, savedInstanceState);
-        mContentView = view;
+    protected void onViewCreate() {
         initView();
     }
 
@@ -111,12 +101,4 @@ public class CSearchResultDialogFragment extends BottomSheetDialogFragment {
             searchTextAdapter.setOnClickSearchItemListener(listener);
         }
     }
-
-//    public void setOnClickBackListener(OnClickBackListener listener) {
-//        onClickBackListener = listener;
-//    }
-//
-//    public interface OnClickBackListener {
-//        public void onBack();
-//    }
 }

+ 1 - 2
ComPDFKit_Tools/src/main/res/layout/tools_sign_certificate_attributes_list_head_item.xml

@@ -3,8 +3,7 @@
     android:layout_width="match_parent"
     android:layout_height="wrap_content"
     android:layout_marginVertical="16dp"
-    xmlns:app="http://schemas.android.com/apk/res-auto"
-    xmlns:tools="http://schemas.android.com/tools">
+    xmlns:app="http://schemas.android.com/apk/res-auto">
 
 
     <androidx.appcompat.widget.AppCompatTextView

+ 1 - 1
ComPDFKit_Tools/src/main/res/layout/tools_sign_create_cert_digital_id_info_layout.xml

@@ -60,7 +60,7 @@
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
         android:hint="@string/tools_email_address_hint"
-        android:imeOptions="actionNext"
+        android:imeOptions="actionDone"
         android:title="@string/tools_email_address" />
 
     <androidx.appcompat.widget.AppCompatTextView

+ 0 - 3
ContentEditor/src/main/java/com/compdfkit/contenteditor/PDFEditSampleActivity.java

@@ -15,14 +15,12 @@ import static com.compdfkit.ui.contextmenu.CPDFContextMenuShowHelper.ReplaceEdit
 
 import android.Manifest;
 import android.content.Intent;
-import android.net.Uri;
 import android.os.Build;
 import android.os.Bundle;
 import android.view.View;
 import android.widget.Toast;
 
 import androidx.activity.result.ActivityResultLauncher;
-import androidx.activity.result.contract.ActivityResultContracts;
 import androidx.annotation.Nullable;
 
 import com.compdfkit.contenteditor.databinding.EditPdfSampleActivityBinding;
@@ -35,7 +33,6 @@ import com.compdfkit.tools.common.utils.CToastUtil;
 import com.compdfkit.tools.common.utils.activitycontracts.CSelectPDFDocumentResultContract;
 import com.compdfkit.tools.common.utils.dialog.CAlertDialog;
 import com.compdfkit.tools.common.utils.task.CExtractAssetFileTask;
-import com.compdfkit.tools.common.utils.threadpools.CThreadPoolUtils;
 import com.compdfkit.tools.common.utils.window.CPopupMenuWindow;
 import com.compdfkit.tools.common.views.pdfbota.CPDFBOTA;
 import com.compdfkit.tools.common.views.pdfbota.CPDFBotaDialogFragment;

+ 0 - 8
DigitalSignature/src/main/java/com/compdfkit/digitalsignature/PDFSignaturesSampleActivity.java

@@ -10,23 +10,17 @@
 package com.compdfkit.digitalsignature;
 
 import android.Manifest;
-import android.content.Context;
-import android.content.Intent;
 import android.os.Build;
 import android.os.Bundle;
 import android.view.View;
 
 import androidx.activity.result.ActivityResultLauncher;
 
-import com.compdfkit.core.annotation.CPDFTextAnnotation;
 import com.compdfkit.core.annotation.form.CPDFSignatureWidget;
-import com.compdfkit.core.annotation.form.CPDFWidget;
 import com.compdfkit.core.document.CPDFDocument;
 import com.compdfkit.digitalsignature.databinding.SignaturesPdfSampleActivityBinding;
-import com.compdfkit.tools.annotation.pdfproperties.pdfnote.CPDFtextAnnotImpl;
 import com.compdfkit.tools.common.basic.activity.CBasicPDFActivity;
 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.activitycontracts.CSelectPDFDocumentResultContract;
 import com.compdfkit.tools.common.utils.dialog.CAlertDialog;
@@ -40,9 +34,7 @@ import com.compdfkit.tools.common.views.pdfview.CPDFViewCtrl;
 import com.compdfkit.tools.common.views.pdfview.CPreviewMode;
 import com.compdfkit.tools.signature.CertificateDigitalDatas;
 import com.compdfkit.tools.signature.bean.CPDFDocumentSignInfo;
-import com.compdfkit.tools.signature.info.CertAttrDatas;
 import com.compdfkit.tools.signature.pdfproperties.pdfsign.CDigitalSignatureWidgetImpl;
-import com.compdfkit.tools.signature.SignatureStatus;
 import com.compdfkit.tools.viewer.pdfsearch.CSearchResultDialogFragment;
 import com.compdfkit.ui.reader.CPDFReaderView;
 

+ 1 - 1
DigitalSignature/src/main/res/layout/signatures_pdf_sample_activity.xml

@@ -51,7 +51,7 @@
         app:tools_slider_bar_icon="@drawable/tools_ic_pdf_slider_bar"
         app:tools_slider_bar_position="right" />
 
-    <com.compdfkit.tools.signature.verify.view.CVerifySignStatusView
+    <com.compdfkit.tools.signature.verify.CVerifySignStatusView
         android:id="@+id/sign_status_view"
         android:layout_width="match_parent"
         android:layout_height="wrap_content"

+ 0 - 3
DocsEditor/src/main/java/com/compdfkit/docseditor/MainActivity.java

@@ -1,14 +1,11 @@
 package com.compdfkit.docseditor;
 
 import android.Manifest;
-import android.content.Intent;
-import android.net.Uri;
 import android.os.Build;
 import android.os.Bundle;
 import android.view.View;
 
 import androidx.activity.result.ActivityResultLauncher;
-import androidx.activity.result.contract.ActivityResultContracts;
 
 import com.compdfkit.docseditor.databinding.ActivityMainBinding;
 import com.compdfkit.tools.common.basic.activity.CBasicPDFActivity;

+ 0 - 3
Forms/src/main/java/com/compdfkit/forms/PDFFormSampleActivity.java

@@ -1,15 +1,12 @@
 package com.compdfkit.forms;
 
 import android.Manifest;
-import android.content.Intent;
 import android.graphics.Paint;
-import android.net.Uri;
 import android.os.Build;
 import android.os.Bundle;
 import android.view.View;
 
 import androidx.activity.result.ActivityResultLauncher;
-import androidx.activity.result.contract.ActivityResultContracts;
 import androidx.annotation.NonNull;
 import androidx.core.content.ContextCompat;
 

+ 0 - 2
PDFViewer/src/main/java/com/compdfkit/pdfviewer/MainActivity.java

@@ -15,14 +15,12 @@ import static com.compdfkit.ui.contextmenu.CPDFContextMenuShowHelper.ReplaceEdit
 
 import android.Manifest;
 import android.content.Intent;
-import android.net.Uri;
 import android.os.Build;
 import android.os.Bundle;
 import android.view.View;
 import android.widget.Toast;
 
 import androidx.activity.result.ActivityResultLauncher;
-import androidx.activity.result.contract.ActivityResultContracts;
 import androidx.annotation.Nullable;
 
 import com.compdfkit.core.annotation.CPDFAnnotation;

+ 0 - 3
Viewer/src/main/java/com/compdfkit/viewer/PDFViewerSampleActivity.java

@@ -9,14 +9,11 @@
 
 package com.compdfkit.viewer;
 
-import android.content.Intent;
-import android.net.Uri;
 import android.os.Build;
 import android.os.Bundle;
 import android.view.View;
 
 import androidx.activity.result.ActivityResultLauncher;
-import androidx.activity.result.contract.ActivityResultContracts;
 
 import com.compdfkit.core.annotation.CPDFTextAnnotation;
 import com.compdfkit.tools.annotation.pdfproperties.pdfnote.CPDFtextAnnotImpl;