Browse Source

PDFTool(Android) - 1.优化tools模块代码 2.tools模块内置CPDFDocumentFragment 3.修复在flutter platformView中使用bug

liuxiaolong 1 year ago
parent
commit
27e2dc8591
44 changed files with 142 additions and 1221 deletions
  1. 0 1
      Annotations/src/main/java/com/compdfkit/annotations/PDFAnnotationSampleActivity.java
  2. 9 0
      ComPDFKit_Tools/build.gradle
  3. 0 1
      ComPDFKit_Tools/src/main/java/com/compdfkit/tools/common/basic/fragment/CBasicPDFFragment.java
  4. 0 2
      ComPDFKit_Tools/src/main/java/com/compdfkit/tools/common/basic/fragment/CPermissionFragment.java
  5. 9 1
      ComPDFKit_Tools/src/main/java/com/compdfkit/tools/common/contextmenu/CPDFContextMenuHelper.java
  6. 13 8
      ComPDFKit_Tools/src/main/java/com/compdfkit/tools/common/contextmenu/impl/CEditImageContextMenuView.java
  7. 13 7
      ComPDFKit_Tools/src/main/java/com/compdfkit/tools/common/contextmenu/impl/CEditTextContextMenuView.java
  8. 0 1
      ComPDFKit_Tools/src/main/java/com/compdfkit/tools/common/contextmenu/impl/CSelectContentContextMenuView.java
  9. 0 3
      ComPDFKit_Tools/src/main/java/com/compdfkit/tools/common/pdf/CPDFDocumentActivity.java
  10. 5 64
      ComPDFKit_Tools/src/main/java/com/compdfkit/tools/common/pdf/CPDFDocumentFragment.java
  11. 22 0
      ComPDFKit_Tools/src/main/java/com/compdfkit/tools/common/utils/activitycontracts/CImageResultLauncher.java
  12. 3 3
      ComPDFKit_Tools/src/main/java/com/compdfkit/tools/common/utils/dialog/CAlertDialog.java
  13. 0 2
      ComPDFKit_Tools/src/main/java/com/compdfkit/tools/common/utils/dialog/CEditDialog.java
  14. 24 5
      ComPDFKit_Tools/src/main/java/com/compdfkit/tools/common/utils/dialog/CImportImageDialogFragment.java
  15. 0 1
      ComPDFKit_Tools/src/main/java/com/compdfkit/tools/common/utils/view/sliderbar/CSliderBar.java
  16. 0 2
      ComPDFKit_Tools/src/main/java/com/compdfkit/tools/common/views/CPDFToolBar.java
  17. 4 1
      ComPDFKit_Tools/src/main/java/com/compdfkit/tools/forms/pdfproperties/pdfsign/SignatureWidgetImpl.java
  18. 0 1
      ComPDFKit_Tools/src/main/java/com/compdfkit/tools/security/encryption/CDocumentEncryptionDialog.java
  19. 0 1
      ComPDFKit_Tools/src/main/java/com/compdfkit/tools/security/watermark/view/CWatermarkView.java
  20. 0 14
      ComPDFKit_Tools/src/main/java/com/compdfkit/tools/signature/importcert/create/CSelectSignTypeDialog.java
  21. 0 1
      ComPDFKit_Tools/src/main/java/com/compdfkit/tools/viewer/contextmenu/CopyContextMenuView.java
  22. 7 13
      ComPDFKit_Tools/src/main/java/com/compdfkit/tools/viewer/pdfthumbnail/adpater/CPDFEditThumbnailListAdapter.java
  23. 2 2
      ComPDFKit_Tools/src/main/res/drawable/tools_common_window_bg.xml
  24. 2 1
      ComPDFKit_Tools/src/main/res/drawable/tools_ic_digital_sign_checkbox.xml
  25. 1 1
      ComPDFKit_Tools/src/main/res/drawable/tools_ic_digital_sign_checkbox_normal.xml
  26. 2 2
      ComPDFKit_Tools/src/main/res/layout/tools_cpdf_security_document_encryption_dialog.xml
  27. 0 1
      ComPDFKit_Tools/src/main/res/layout/tools_cpdf_security_watermark_page_fragment.xml
  28. 0 1
      ComPDFKit_Tools/src/main/res/layout/tools_cpdf_tool_bar_pdf_view_menu_layout.xml
  29. 14 12
      ComPDFKit_Tools/src/main/res/layout/tools_edit_thumbnail_list_item.xml
  30. 3 1
      ComPDFKit_Tools/src/main/res/layout/tools_properties_free_text_style_fragment.xml
  31. 6 6
      ComPDFKit_Tools/src/main/res/layout/tools_sign_style_preview_main.xml
  32. 0 1
      ComPDFKit_Tools/src/main/res/values/tools_themes.xml
  33. 0 50
      ContentEditor/src/main/java/com/compdfkit/contenteditor/PDFEditSampleActivity.java
  34. 0 133
      PDFViewer/src/main/java/com/compdfkit/pdfviewer/CSampleScreenManager.java
  35. 0 752
      PDFViewer/src/main/java/com/compdfkit/pdfviewer/MainActivity.java
  36. 0 1
      PDFViewer/src/main/java/com/compdfkit/pdfviewer/home/HomeActivity.java
  37. 2 6
      PDFViewer/src/main/java/com/compdfkit/pdfviewer/home/HomeFunFragment.java
  38. 0 1
      PDFViewer/src/main/java/com/compdfkit/pdfviewer/home/samples/DocumentEncryptionSamplesImpl.java
  39. 0 2
      PDFViewer/src/main/java/com/compdfkit/pdfviewer/home/samples/OpenPDFSamplesImpl.java
  40. 0 109
      PDFViewer/src/main/res/layout/pdf_sample_activity.xml
  41. 1 1
      PDFViewer/src/main/res/values/strings.xml
  42. 0 2
      Samples/src/main/java/com/compdfkit/samples/samples/ImageExtractTest.java
  43. 0 3
      Samples_kotlin/src/main/java/com/compdfkit/samples/SampleDetailActivity.kt
  44. 0 1
      Samples_kotlin/src/main/java/com/compdfkit/samples/samples/TextSearchTest.kt

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

@@ -9,7 +9,6 @@ import androidx.activity.result.ActivityResultLauncher;
 
 import com.compdfkit.annotations.databinding.AnnotationPdfSampleActivityBinding;
 import com.compdfkit.core.annotation.CPDFAnnotation;
-import com.compdfkit.core.edit.CPDFEditManager;
 import com.compdfkit.tools.common.basic.activity.CBasicPDFActivity;
 import com.compdfkit.tools.common.utils.CFileUtils;
 import com.compdfkit.tools.common.utils.CPermissionUtil;

+ 9 - 0
ComPDFKit_Tools/build.gradle

@@ -23,6 +23,8 @@ android {
         buildConfigField("String", "COMPDFKit_SDK_BUILD_TAG", "\"${versionName}_${versionCode}_${releaseTime()}\"")
 
         consumerProguardFiles "consumer-rules.pro"
+        setProperty("archivesBaseName", "ComPDFKit_Tools")
+
     }
 
     buildTypes {
@@ -30,6 +32,13 @@ android {
             minifyEnabled true
             zipAlignEnabled true
             proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
+            libraryVariants.all { variant ->
+                variant.outputs.all { output ->
+                    if (outputFile != null && outputFileName.endsWith('.aar')) {
+                        outputFileName = "ComPDFKit_Tools.aar"
+                    }
+                }
+            }
         }
     }
 

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

@@ -31,7 +31,6 @@ import com.compdfkit.tools.R;
 import com.compdfkit.tools.annotation.pdfproperties.pdflink.CLinkAnnotAttachHelper;
 import com.compdfkit.tools.annotation.pdfproperties.pdfnote.CPDFtextAnnotAttachHelper;
 import com.compdfkit.tools.annotation.pdfproperties.pdfnote.CPDFtextAnnotImpl;
-import com.compdfkit.tools.common.basic.activity.CPermissionActivity;
 import com.compdfkit.tools.common.contextmenu.CPDFContextMenuHelper;
 import com.compdfkit.tools.common.contextmenu.impl.CEditImageContextMenuView;
 import com.compdfkit.tools.common.contextmenu.impl.CEditTextContextMenuView;

+ 0 - 2
ComPDFKit_Tools/src/main/java/com/compdfkit/tools/common/basic/fragment/CPermissionFragment.java

@@ -14,11 +14,9 @@ import android.content.pm.PackageManager;
 import androidx.core.content.ContextCompat;
 import androidx.fragment.app.Fragment;
 
-import com.compdfkit.tools.R;
 import com.compdfkit.tools.common.utils.CPermissionUtil;
 import com.compdfkit.tools.common.utils.activitycontracts.CMultiplePermissionResultLauncher;
 import com.compdfkit.tools.common.utils.activitycontracts.CPermissionResultLauncher;
-import com.compdfkit.tools.common.utils.dialog.CAlertDialog;
 
 
 public class CPermissionFragment extends Fragment {

+ 9 - 1
ComPDFKit_Tools/src/main/java/com/compdfkit/tools/common/contextmenu/CPDFContextMenuHelper.java

@@ -17,6 +17,7 @@ import android.view.View;
 import android.widget.PopupWindow;
 
 import androidx.fragment.app.FragmentActivity;
+import androidx.fragment.app.FragmentManager;
 
 import com.compdfkit.core.document.CPDFDocument;
 import com.compdfkit.core.edit.CPDFEditManager;
@@ -54,7 +55,6 @@ import com.compdfkit.tools.common.contextmenu.interfaces.ContextMenuSelectConten
 import com.compdfkit.tools.common.contextmenu.interfaces.ContextMenuSoundContentProvider;
 import com.compdfkit.tools.common.contextmenu.interfaces.ContextMenuStampProvider;
 import com.compdfkit.tools.common.contextmenu.interfaces.ContextMenuTextFieldProvider;
-import com.compdfkit.tools.common.utils.CLog;
 import com.compdfkit.tools.common.views.pdfview.CPDFViewCtrl;
 import com.compdfkit.tools.security.encryption.CInputOwnerPwdDialog;
 import com.compdfkit.tools.viewer.contextmenu.CopyContextMenuView;
@@ -334,6 +334,14 @@ public class CPDFContextMenuHelper extends CPDFContextMenuShowHelper {
         return readerView;
     }
 
+    public FragmentManager getFragmentManager(){
+        if (context instanceof FragmentActivity){
+            return ((FragmentActivity) context).getSupportFragmentManager();
+        } else {
+            return null;
+        }
+    }
+
     public boolean isAllowsCopying(){
         CPDFDocument document = getReaderView().getPDFDocument();
         return document.getPermissions() == CPDFDocument.PDFDocumentPermissions.PDFDocumentPermissionsOwner ||

+ 13 - 8
ComPDFKit_Tools/src/main/java/com/compdfkit/tools/common/contextmenu/impl/CEditImageContextMenuView.java

@@ -1,9 +1,7 @@
 package com.compdfkit.tools.common.contextmenu.impl;
 
-import static com.compdfkit.ui.contextmenu.CPDFContextMenuShowHelper.ReplaceEditImageArea;
 
 import android.content.Context;
-import android.content.Intent;
 import android.graphics.RectF;
 import android.os.Environment;
 import android.provider.MediaStore;
@@ -12,6 +10,7 @@ import android.view.View;
 import android.widget.Toast;
 
 import androidx.fragment.app.FragmentActivity;
+import androidx.fragment.app.FragmentManager;
 
 import com.compdfkit.tools.R;
 import com.compdfkit.tools.common.contextmenu.CPDFContextMenuHelper;
@@ -19,6 +18,8 @@ import com.compdfkit.tools.common.contextmenu.interfaces.ContextMenuEditImagePro
 import com.compdfkit.tools.common.contextmenu.provider.ContextMenuMultipleLineView;
 import com.compdfkit.tools.common.contextmenu.provider.ContextMenuView;
 import com.compdfkit.tools.common.utils.CToastUtil;
+import com.compdfkit.tools.common.utils.activitycontracts.CImageResultContracts;
+import com.compdfkit.tools.common.utils.dialog.CImportImageDialogFragment;
 import com.compdfkit.tools.common.views.pdfproperties.pdfstyle.CAnnotStyle;
 import com.compdfkit.tools.common.views.pdfproperties.pdfstyle.CStyleDialogFragment;
 import com.compdfkit.tools.common.views.pdfproperties.pdfstyle.CStyleType;
@@ -57,12 +58,16 @@ public class CEditImageContextMenuView implements ContextMenuEditImageProvider {
             pageView.operateEditImageArea(CPDFPageView.EditImageFuncType.ROTATE, 90.0f);
         });
         menuView.addItem(R.string.tools_context_menu_image_replace, 1, v -> {
-            if (helper.getReaderView().getContext() instanceof FragmentActivity) {
-                Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
-                intent.setType("image/*");
-                intent.addCategory(Intent.CATEGORY_OPENABLE);
-                Context context = helper.getReaderView().getContext();
-                ((FragmentActivity) context).startActivityForResult(intent, ReplaceEditImageArea);
+            CImportImageDialogFragment fragment = CImportImageDialogFragment.quickStart(CImageResultContracts.RequestType.PHOTO_ALBUM);
+            fragment.setImportImageListener(imageUri -> {
+                fragment.dismiss();
+                if (imageUri != null) {
+                    pageView.operateEditImageArea(CPDFPageView.EditImageFuncType.REPLACE, imageUri);
+                }
+            });
+            FragmentManager fragmentManager = helper.getFragmentManager();
+            if (fragmentManager != null) {
+                fragment.show(fragmentManager, "replaceEditImageDialog");
                 helper.dismissContextMenu();
             }
         });

+ 13 - 7
ComPDFKit_Tools/src/main/java/com/compdfkit/tools/common/contextmenu/impl/CEditTextContextMenuView.java

@@ -10,16 +10,15 @@
 package com.compdfkit.tools.common.contextmenu.impl;
 
 
-import static com.compdfkit.ui.contextmenu.CPDFContextMenuShowHelper.AddEditImageArea;
 
 import android.content.Context;
-import android.content.Intent;
 import android.graphics.PointF;
 import android.text.TextUtils;
 import android.view.LayoutInflater;
 import android.view.View;
 
 import androidx.fragment.app.FragmentActivity;
+import androidx.fragment.app.FragmentManager;
 
 import com.compdfkit.core.edit.CPDFEditPage;
 import com.compdfkit.tools.R;
@@ -27,6 +26,8 @@ import com.compdfkit.tools.common.contextmenu.CPDFContextMenuHelper;
 import com.compdfkit.tools.common.contextmenu.interfaces.ContextMenuEditTextProvider;
 import com.compdfkit.tools.common.contextmenu.provider.ContextMenuMultipleLineView;
 import com.compdfkit.tools.common.contextmenu.provider.ContextMenuView;
+import com.compdfkit.tools.common.utils.activitycontracts.CImageResultContracts;
+import com.compdfkit.tools.common.utils.dialog.CImportImageDialogFragment;
 import com.compdfkit.tools.common.utils.viewutils.CViewUtils;
 import com.compdfkit.tools.common.views.pdfproperties.pdfstyle.CAnnotStyle;
 import com.compdfkit.tools.common.views.pdfproperties.pdfstyle.CStyleDialogFragment;
@@ -104,11 +105,16 @@ public class CEditTextContextMenuView implements ContextMenuEditTextProvider {
             menuView.addItem(R.string.tools_context_menu_add_image, 0, v -> {
                 helper.getReaderView().setAddImagePoint(point);
                 helper.getReaderView().setAddImagePage(pageView.getPageNum());
-                Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
-                intent.setType("image/*");
-                intent.addCategory(Intent.CATEGORY_OPENABLE);
-                if (helper.getReaderView().getContext() instanceof FragmentActivity) {
-                    ((FragmentActivity) helper.getReaderView().getContext()).startActivityForResult(intent, AddEditImageArea);
+                CImportImageDialogFragment fragment = CImportImageDialogFragment.quickStart(CImageResultContracts.RequestType.PHOTO_ALBUM);
+                fragment.setImportImageListener(imageUri -> {
+                    fragment.dismiss();
+                    if (imageUri != null) {
+                        pageView.addEditImageArea(point, imageUri);
+                    }
+                });
+                FragmentManager fragmentManager = helper.getFragmentManager();
+                if (fragmentManager != null){
+                    fragment.show(fragmentManager, "importImage");
                     helper.dismissContextMenu();
                 }
             });

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

@@ -13,7 +13,6 @@ package com.compdfkit.tools.common.contextmenu.impl;
 import android.view.View;
 
 import com.compdfkit.core.document.CPDFDocumentPermissionInfo;
-import com.compdfkit.core.page.CPDFPage;
 import com.compdfkit.tools.R;
 import com.compdfkit.tools.common.contextmenu.CPDFContextMenuHelper;
 import com.compdfkit.tools.common.contextmenu.interfaces.ContextMenuSelectContentProvider;

+ 0 - 3
ComPDFKit_Tools/src/main/java/com/compdfkit/tools/common/pdf/CPDFDocumentActivity.java

@@ -16,7 +16,6 @@ import android.os.Bundle;
 import android.text.TextUtils;
 
 import androidx.annotation.Nullable;
-import androidx.fragment.app.FragmentContainerView;
 
 import com.compdfkit.tools.R;
 import com.compdfkit.tools.common.basic.activity.CBasicPDFActivity;
@@ -69,6 +68,4 @@ public class CPDFDocumentActivity extends CBasicPDFActivity {
                     .commit();
         }
     }
-
-
 }

+ 5 - 64
ComPDFKit_Tools/src/main/java/com/compdfkit/tools/common/pdf/CPDFDocumentFragment.java

@@ -11,12 +11,9 @@ package com.compdfkit.tools.common.pdf;
 
 import static com.compdfkit.tools.contenteditor.CEditToolbar.SELECT_AREA_IMAGE;
 import static com.compdfkit.tools.contenteditor.CEditToolbar.SELECT_AREA_TEXT;
-import static com.compdfkit.ui.contextmenu.CPDFContextMenuShowHelper.AddEditImageArea;
-import static com.compdfkit.ui.contextmenu.CPDFContextMenuShowHelper.ReplaceEditImageArea;
 
 import android.Manifest;
 import android.content.Context;
-import android.content.Intent;
 import android.graphics.Paint;
 import android.net.Uri;
 import android.os.Build;
@@ -26,7 +23,6 @@ import android.view.LayoutInflater;
 import android.view.View;
 import android.view.ViewGroup;
 import android.widget.FrameLayout;
-import android.widget.Toast;
 
 import androidx.activity.result.ActivityResultLauncher;
 import androidx.annotation.NonNull;
@@ -81,7 +77,6 @@ import com.compdfkit.ui.contextmenu.IContextMenuShowListener;
 import com.compdfkit.ui.proxy.form.CPDFComboboxWidgetImpl;
 import com.compdfkit.ui.proxy.form.CPDFListboxWidgetImpl;
 import com.compdfkit.ui.proxy.form.CPDFPushbuttonWidgetImpl;
-import com.compdfkit.ui.reader.CPDFPageView;
 import com.compdfkit.ui.reader.CPDFReaderView;
 
 import java.util.ArrayList;
@@ -197,6 +192,9 @@ 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();
@@ -297,6 +295,7 @@ public class CPDFDocumentFragment extends CBasicPDFFragment {
         formToolBar.reset();
         signatureToolBar.reset();
         resetContextMenu(pdfView, mode);
+        SignatureWidgetImpl.previewMode = mode;
         CPDFEditManager editManager = pdfView.getCPdfReaderView().getEditManager();
         if (mode == CPreviewMode.Edit) {
             pdfView.getCPdfReaderView().setViewMode(CPDFReaderView.ViewMode.PDFEDIT);
@@ -719,52 +718,6 @@ public class CPDFDocumentFragment extends CBasicPDFFragment {
         multiplePermissionResultLauncher.launch(STORAGE_PERMISSIONS);
     }
 
-    @Override
-    public void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
-        super.onActivityResult(requestCode, resultCode, data);
-        if (requestCode == ReplaceEditImageArea) {
-            if (pdfView == null || pdfView.getCPdfReaderView() == null) {
-                return;
-            }
-            for (int i = 0; i < pdfView.getCPdfReaderView().getChildCount(); i++) {
-                CPDFPageView pageView = (CPDFPageView) pdfView.getCPdfReaderView().getChildAt(i);
-                if (pageView == null) {
-                    continue;
-                }
-                if (data == null) {
-                    return;
-                }
-                if (pageView.getPageNum() == pdfView.getCPdfReaderView().getPageNum()) {
-                    boolean ret = pageView.operateEditImageArea(CPDFPageView.EditImageFuncType.REPLACE, data.getData());
-                    if (ret == false) {
-                        Toast.makeText(getContext(), "replace fail", Toast.LENGTH_LONG).show();
-                    }
-                    break;
-                }
-            }
-        } else if (requestCode == AddEditImageArea) {
-            if (pdfView == null || pdfView.getCPdfReaderView() == null) {
-                return;
-            }
-            if (data == null) {
-                return;
-            }
-            for (int i = 0; i < pdfView.getCPdfReaderView().getChildCount(); i++) {
-                CPDFPageView pageView = (CPDFPageView) pdfView.getCPdfReaderView().getChildAt(i);
-                if (pageView == null) {
-                    continue;
-                }
-                if (pageView.getPageNum() == pdfView.getCPdfReaderView().getAddImagePage()) {
-                    boolean ret = pageView.addEditImageArea(pdfView.getCPdfReaderView().getAddImagePoint(), data.getData());
-                    if (ret == false) {
-                        Toast.makeText(getContext(), "add fail", Toast.LENGTH_LONG).show();
-                    }
-                    break;
-                }
-            }
-        }
-    }
-
     private void showSettingEncryptionDialog() {
         CDocumentEncryptionDialog documentEncryptionDialog = CDocumentEncryptionDialog.newInstance();
         documentEncryptionDialog.setDocument(pdfView.getCPdfReaderView().getPDFDocument());
@@ -787,7 +740,7 @@ public class CPDFDocumentFragment extends CBasicPDFFragment {
         super.registerFormHelper(pdfView);
         pdfView.getCPdfReaderView().getAnnotImplRegistry()
                 // Register the CustomSignatureWidgetImpl.class to implement a custom dropdown options popup.
-                .registImpl(CPDFSignatureWidget.class, CSignatureWidgetImpl.class);
+                .registImpl(CPDFSignatureWidget.class, SignatureWidgetImpl.class);
     }
 
     @Override
@@ -798,18 +751,6 @@ public class CPDFDocumentFragment extends CBasicPDFFragment {
         }
     }
 
-    public static class CSignatureWidgetImpl extends SignatureWidgetImpl {
-        @Override
-        protected CPreviewMode getCurrentMode() {
-            Context context = readerView.getContext();
-//            if (readerView.getContext() instanceof CPDFDocumentFragment) {
-//                return ((MainActivity) readerView.getContext()).pdfToolBar.getMode();
-//            } else {
-                return CPreviewMode.Viewer;
-//            }
-        }
-    }
-
     interface CInitPDFRequestListener {
         void success();
     }

+ 22 - 0
ComPDFKit_Tools/src/main/java/com/compdfkit/tools/common/utils/activitycontracts/CImageResultLauncher.java

@@ -0,0 +1,22 @@
+/**
+ * Copyright © 2014-2023 PDF Technologies, Inc. All Rights Reserved.
+ *
+ * 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.
+ * This notice may not be removed from this file.
+ */
+package com.compdfkit.tools.common.utils.activitycontracts;
+
+import android.net.Uri;
+
+import androidx.activity.result.ActivityResultCaller;
+import androidx.annotation.NonNull;
+
+
+public class CImageResultLauncher extends BaseActivityResultLauncher<CImageResultContracts.RequestType, Uri> {
+
+    public CImageResultLauncher(@NonNull ActivityResultCaller caller) {
+        super(caller, new CImageResultContracts());
+    }
+}

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

@@ -14,10 +14,10 @@ import android.text.TextUtils;
 import android.view.LayoutInflater;
 import android.view.View;
 import android.view.ViewGroup;
+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;
 
@@ -36,9 +36,9 @@ public class CAlertDialog extends DialogFragment {
 
     private AppCompatTextView tvMessage;
 
-    private AppCompatButton btnCancel;
+    private Button btnCancel;
 
-    private AppCompatButton btnConfirm;
+    private Button btnConfirm;
 
     private View.OnClickListener cancelListener;
 

+ 0 - 2
ComPDFKit_Tools/src/main/java/com/compdfkit/tools/common/utils/dialog/CEditDialog.java

@@ -13,7 +13,6 @@ import android.app.Dialog;
 import android.content.Context;
 import android.os.Bundle;
 import android.text.TextUtils;
-import android.text.TextWatcher;
 import android.view.LayoutInflater;
 import android.view.View;
 import android.view.ViewGroup;
@@ -22,7 +21,6 @@ import android.widget.Button;
 
 import androidx.annotation.NonNull;
 import androidx.annotation.Nullable;
-import androidx.annotation.StringRes;
 import androidx.appcompat.widget.AppCompatEditText;
 import androidx.appcompat.widget.AppCompatTextView;
 import androidx.fragment.app.DialogFragment;

+ 24 - 5
ComPDFKit_Tools/src/main/java/com/compdfkit/tools/common/utils/dialog/CImportImageDialogFragment.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.
@@ -11,6 +11,7 @@ package com.compdfkit.tools.common.utils.dialog;
 
 import android.Manifest;
 import android.net.Uri;
+import android.os.Bundle;
 import android.view.View;
 
 import androidx.activity.result.ActivityResultLauncher;
@@ -29,6 +30,14 @@ public class CImportImageDialogFragment extends CBasicBottomSheetDialogFragment
 
     private COnImportImageListener importImageListener;
 
+    public static CImportImageDialogFragment quickStart(CImageResultContracts.RequestType requestType) {
+        Bundle args = new Bundle();
+        args.putString("extra_quick_start_type", requestType.name());
+        CImportImageDialogFragment fragment = new CImportImageDialogFragment();
+        fragment.setArguments(args);
+        return fragment;
+    }
+
     private ActivityResultLauncher<CImageResultContracts.RequestType> imageLauncher = registerForActivityResult(new CImageResultContracts(), result -> {
         if (importImageListener != null) {
             importImageListener.image(result);
@@ -56,6 +65,9 @@ public class CImportImageDialogFragment extends CBasicBottomSheetDialogFragment
 
     @Override
     protected void onCreateView(View rootView) {
+        if (isQuickStart()) {
+            rootView.setVisibility(View.GONE);
+        }
         ConstraintLayout clFromAlbum = rootView.findViewById(R.id.cl_from_album);
         ConstraintLayout clFromCamera = rootView.findViewById(R.id.cl_from_camera);
         clFromAlbum.setOnClickListener(v -> {
@@ -63,11 +75,11 @@ public class CImportImageDialogFragment extends CBasicBottomSheetDialogFragment
         });
         clFromCamera.setOnClickListener(v -> {
             permissionResultLauncher.launch(Manifest.permission.CAMERA, granted -> {
-                if (granted){
+                if (granted) {
                     imageLauncher.launch(CImageResultContracts.RequestType.CAMERA);
-                }else {
+                } else {
                     if (getActivity() != null) {
-                        if (!CPermissionUtil.shouldShowRequestPermissionRationale(requireActivity(), Manifest.permission.CAMERA)){
+                        if (!CPermissionUtil.shouldShowRequestPermissionRationale(requireActivity(), Manifest.permission.CAMERA)) {
                             CPermissionUtil.showPermissionsRequiredDialog(getChildFragmentManager(), getActivity());
                         }
                     }
@@ -78,14 +90,21 @@ public class CImportImageDialogFragment extends CBasicBottomSheetDialogFragment
 
     @Override
     protected void onViewCreate() {
+        if (isQuickStart()) {
+            CImageResultContracts.RequestType requestType = CImageResultContracts.RequestType.valueOf(getArguments().getString("extra_quick_start_type"));
+            imageLauncher.launch(requestType);
+        }
+    }
 
+    private boolean isQuickStart() {
+        return getArguments() != null && getArguments().containsKey("extra_quick_start_type");
     }
 
     public void setImportImageListener(COnImportImageListener importImageListener) {
         this.importImageListener = importImageListener;
     }
 
-    public interface COnImportImageListener{
+    public interface COnImportImageListener {
         void image(@Nullable Uri imageUri);
     }
 }

+ 0 - 1
ComPDFKit_Tools/src/main/java/com/compdfkit/tools/common/utils/view/sliderbar/CSliderBar.java

@@ -13,7 +13,6 @@ package com.compdfkit.tools.common.utils.view.sliderbar;
 import android.content.Context;
 import android.content.res.TypedArray;
 import android.graphics.Rect;
-import android.os.Build;
 import android.text.TextUtils;
 import android.util.AttributeSet;
 import android.view.MotionEvent;

+ 0 - 2
ComPDFKit_Tools/src/main/java/com/compdfkit/tools/common/views/CPDFToolBar.java

@@ -34,9 +34,7 @@ import com.compdfkit.tools.common.utils.viewutils.CViewUtils;
 import com.compdfkit.tools.common.utils.window.CModeSwitchDialogFragment;
 import com.compdfkit.tools.common.views.pdfview.CPreviewMode;
 
-import java.util.ArrayList;
 import java.util.LinkedHashSet;
-import java.util.List;
 
 
 /**

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

@@ -39,6 +39,7 @@ import com.compdfkit.tools.signature.importcert.create.CSelectSignTypeDialog;
 import com.compdfkit.tools.signature.info.CertDigitalSignInfoDialog;
 import com.compdfkit.tools.signature.preview.CDigitalSignStylePreviewDialog;
 import com.compdfkit.ui.proxy.form.CPDFSignatureWidgetImpl;
+import com.compdfkit.ui.reader.CPDFReaderView;
 
 import java.io.File;
 import java.util.UUID;
@@ -57,6 +58,8 @@ import java.util.UUID;
  */
 public class SignatureWidgetImpl extends CPDFSignatureWidgetImpl {
 
+    public static CPreviewMode previewMode = CPreviewMode.Viewer;
+
     private boolean requesting = false;
 
     @Override
@@ -222,7 +225,7 @@ public class SignatureWidgetImpl extends CPDFSignatureWidgetImpl {
     }
 
     protected CPreviewMode getCurrentMode(){
-        return CPreviewMode.Viewer;
+        return previewMode;
     }
 
 }

+ 0 - 1
ComPDFKit_Tools/src/main/java/com/compdfkit/tools/security/encryption/CDocumentEncryptionDialog.java

@@ -36,7 +36,6 @@ 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;

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

@@ -15,7 +15,6 @@ import static java.lang.Math.acos;
 import static java.lang.Math.asin;
 import static java.lang.Math.cos;
 import static java.lang.Math.max;
-import static java.lang.Math.min;
 import static java.lang.Math.sin;
 import static java.lang.Math.sqrt;
 

+ 0 - 14
ComPDFKit_Tools/src/main/java/com/compdfkit/tools/signature/importcert/create/CSelectSignTypeDialog.java

@@ -10,13 +10,6 @@
 package com.compdfkit.tools.signature.importcert.create;
 
 
-import static com.compdfkit.tools.common.utils.CFileUtils.CERTIFICATE_DIGITAL_TYPE;
-
-import android.Manifest;
-import android.content.Intent;
-import android.content.pm.ActivityInfo;
-import android.net.Uri;
-import android.os.Build;
 import android.os.Bundle;
 import android.view.LayoutInflater;
 import android.view.View;
@@ -24,18 +17,11 @@ import android.view.ViewGroup;
 import android.widget.Button;
 import android.widget.RadioGroup;
 
-import androidx.activity.result.ActivityResultLauncher;
-import androidx.activity.result.contract.ActivityResultContracts;
 import androidx.annotation.NonNull;
 import androidx.annotation.Nullable;
 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.utils.CFileUtils;
-import com.compdfkit.tools.common.utils.CPermissionUtil;
-import com.compdfkit.tools.signature.interfaces.COnSelectCertFileListener;
 
 public class CSelectSignTypeDialog extends DialogFragment implements View.OnClickListener {
 

+ 0 - 1
ComPDFKit_Tools/src/main/java/com/compdfkit/tools/viewer/contextmenu/CopyContextMenuView.java

@@ -12,7 +12,6 @@ package com.compdfkit.tools.viewer.contextmenu;
 
 import android.view.View;
 
-import com.compdfkit.core.document.CPDFDocumentPermissionInfo;
 import com.compdfkit.tools.R;
 import com.compdfkit.tools.common.contextmenu.CPDFContextMenuHelper;
 import com.compdfkit.tools.common.contextmenu.interfaces.ContextMenuSelectContentProvider;

+ 7 - 13
ComPDFKit_Tools/src/main/java/com/compdfkit/tools/viewer/pdfthumbnail/adpater/CPDFEditThumbnailListAdapter.java

@@ -9,7 +9,6 @@
 
 package com.compdfkit.tools.viewer.pdfthumbnail.adpater;
 
-import android.content.res.ColorStateList;
 import android.graphics.RectF;
 import android.graphics.drawable.Drawable;
 import android.os.AsyncTask;
@@ -17,7 +16,6 @@ import android.util.SparseIntArray;
 import android.view.LayoutInflater;
 import android.view.View;
 import android.view.ViewGroup;
-import android.widget.CheckBox;
 
 import androidx.annotation.NonNull;
 import androidx.annotation.Nullable;
@@ -31,7 +29,6 @@ import com.bumptech.glide.load.engine.DiskCacheStrategy;
 import com.bumptech.glide.request.target.CustomTarget;
 import com.bumptech.glide.request.transition.Transition;
 import com.compdfkit.core.document.CPDFDocument;
-import com.compdfkit.core.page.CPDFPage;
 import com.compdfkit.tools.R;
 import com.compdfkit.tools.common.interfaces.COnSetPDFDisplayPageIndexListener;
 import com.compdfkit.tools.common.utils.glide.CPDFWrapper;
@@ -67,7 +64,6 @@ public class CPDFEditThumbnailListAdapter extends RecyclerView.Adapter<CPDFEditT
 
     @Override
     public void onBindViewHolder(@NonNull CPDFEditThumbnailListAdapter.CPDFThumbnailItemViewHolder holder, int position) {
-        CPDFPage tpdfPage = cPdfDocument.pageAtIndex(position);
         Glide.with(holder.itemView.getContext())
                 .load(CPDFWrapper.fromDocument(cPdfDocument, position))
                 .diskCacheStrategy(DiskCacheStrategy.NONE)
@@ -104,20 +100,18 @@ public class CPDFEditThumbnailListAdapter extends RecyclerView.Adapter<CPDFEditT
     private void updateSelectStatus(CPDFThumbnailItemViewHolder holder) {
         if (isEdit) {
             if (selectArr.get(holder.getAdapterPosition()) == 1) {
-                holder.cbSelect.setChecked(true);
-                holder.cbSelect.setButtonTintList(ColorStateList.valueOf(holder.itemView.getContext().getResources().getColor(R.color.tools_editpage_checkbox_select)));
+                holder.ivSelect.setSelected(true);
                 holder.tvPageIndex.setSelected(true);
                 holder.clThumbnail.setSelected(true);
             } else {
-                holder.cbSelect.setChecked(false);
-                holder.cbSelect.setButtonTintList(ColorStateList.valueOf(holder.itemView.getContext().getResources().getColor(R.color.tools_editpage_checkbox_normal)));
+                holder.ivSelect.setSelected(false);
                 holder.tvPageIndex.setSelected(false);
                 holder.clThumbnail.setSelected(false);
             }
-            holder.cbSelect.setVisibility(View.VISIBLE);
+            holder.ivSelect.setVisibility(View.VISIBLE);
         } else {
-            holder.cbSelect.setChecked(false);
-            holder.cbSelect.setVisibility(View.GONE);
+            holder.ivSelect.setSelected(false);
+            holder.ivSelect.setVisibility(View.GONE);
             holder.tvPageIndex.setSelected(holder.getAdapterPosition() == currentPageIndex);
             holder.clThumbnail.setSelected(holder.getAdapterPosition() == currentPageIndex);
         }
@@ -335,7 +329,7 @@ public class CPDFEditThumbnailListAdapter extends RecyclerView.Adapter<CPDFEditT
         private AppCompatImageView ivThumbnailImage;
         private AppCompatTextView tvPageIndex;
         private ConstraintLayout clThumbnail;
-        private CheckBox cbSelect;
+        private AppCompatImageView ivSelect;
 
         private ConstraintLayout clItem;
         public CPDFThumbnailItemViewHolder(@NonNull View itemView) {
@@ -343,7 +337,7 @@ public class CPDFEditThumbnailListAdapter extends RecyclerView.Adapter<CPDFEditT
             ivThumbnailImage = itemView.findViewById(R.id.iv_thumbnail);
             tvPageIndex = itemView.findViewById(R.id.tv_thumbnail_page_index);
             clThumbnail = itemView.findViewById(R.id.cl_thumbnail);
-            cbSelect = itemView.findViewById(R.id.ic_check);
+            ivSelect = itemView.findViewById(R.id.iv_check_box);
             clItem = itemView.findViewById(R.id.cl_item);
         }
     }

+ 2 - 2
ComPDFKit_Tools/src/main/res/drawable/tools_common_window_bg.xml

@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
-<shape xmlns:android="http://schemas.android.com/apk/res/android">
+<shape xmlns:android="http://schemas.android.com/apk/res/android" >
     <corners android:radius="6dp" />
-    <solid android:color="@color/tools_color_background"/>
+    <solid android:color="@color/tools_color_background" />
 </shape>

+ 2 - 1
ComPDFKit_Tools/src/main/res/drawable/tools_ic_digital_sign_checkbox.xml

@@ -1,6 +1,7 @@
 <?xml version="1.0" encoding="utf-8"?>
-<selector xmlns:android="http://schemas.android.com/apk/res/android">
+<selector xmlns:android="http://schemas.android.com/apk/res/android" android:enterFadeDuration="200" android:exitFadeDuration="200">
     <item android:drawable="@drawable/tools_ic_digital_sign_checkbox_select" android:state_checked="true"/>
+    <item android:drawable="@drawable/tools_ic_digital_sign_checkbox_select" android:state_selected="true"/>
     <item android:drawable="@drawable/tools_ic_digital_sign_checkbox_normal" android:state_checked="false"/>
 
     <item android:drawable="@drawable/tools_ic_digital_sign_checkbox_normal"/>

+ 1 - 1
ComPDFKit_Tools/src/main/res/drawable/tools_ic_digital_sign_checkbox_normal.xml

@@ -9,7 +9,7 @@
     <path
         android:pathData="M1,0L19,0A1,1 0,0 1,20 1L20,19A1,1 0,0 1,19 20L1,20A1,1 0,0 1,0 19L0,1A1,1 0,0 1,1 0z"
         android:strokeWidth="3"
-        android:fillColor="#ffffff"
+        android:fillColor="#00000000"
         android:strokeColor="#D9D9D9"/>
   </group>
 </vector>

+ 2 - 2
ComPDFKit_Tools/src/main/res/layout/tools_cpdf_security_document_encryption_dialog.xml

@@ -201,7 +201,7 @@
                 android:layout_marginStart="16dp"
                 android:layout_marginTop="12dp"
                 android:layout_marginEnd="16dp"
-                android:button="@drawable/tools_ic_digital_sign_checkbox"
+                android:button="@drawable/tools_ic_checkbox"
                 android:enabled="false"
                 android:gravity="center_vertical"
                 android:paddingStart="8dp"
@@ -217,7 +217,7 @@
                 android:layout_height="45dp"
                 android:layout_marginStart="16dp"
                 android:layout_marginEnd="16dp"
-                android:button="@drawable/tools_ic_digital_sign_checkbox"
+                android:button="@drawable/tools_ic_checkbox"
                 android:enabled="false"
                 android:gravity="center_vertical"
                 android:paddingStart="8dp"

+ 0 - 1
ComPDFKit_Tools/src/main/res/layout/tools_cpdf_security_watermark_page_fragment.xml

@@ -2,7 +2,6 @@
 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
     android:layout_width="match_parent"
     android:layout_height="match_parent"
-    xmlns:app="http://schemas.android.com/apk/res-auto"
     android:background="@color/tools_style_content_bg"
     android:paddingHorizontal="8dp"
     android:orientation="vertical"

+ 0 - 1
ComPDFKit_Tools/src/main/res/layout/tools_cpdf_tool_bar_pdf_view_menu_layout.xml

@@ -1,6 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:app="http://schemas.android.com/apk/res-auto"
     style="@style/Tools_Base_Theme"
     android:layout_width="wrap_content"
     android:orientation="horizontal"

+ 14 - 12
ComPDFKit_Tools/src/main/res/layout/tools_edit_thumbnail_list_item.xml

@@ -19,15 +19,14 @@
             android:id="@+id/cl_thumbnail"
             android:layout_width="match_parent"
             android:layout_height="match_parent"
+            android:background="@drawable/tools_thumbnail_item_bg"
             android:foreground="@drawable/tools_common_btn_rectangle_ripple"
-            app:layout_constraintTop_toTopOf="parent"
-            app:layout_constraintBottom_toBottomOf="parent"
-            app:layout_constraintStart_toStartOf="parent"
-            app:layout_constraintEnd_toEndOf="parent"
             app:layout_constrainedHeight="true"
             app:layout_constrainedWidth="true"
-            android:background="@drawable/tools_thumbnail_item_bg"
-            >
+            app:layout_constraintBottom_toBottomOf="parent"
+            app:layout_constraintEnd_toEndOf="parent"
+            app:layout_constraintStart_toStartOf="parent"
+            app:layout_constraintTop_toTopOf="parent">
 
             <androidx.appcompat.widget.AppCompatImageView
                 android:id="@+id/iv_thumbnail"
@@ -37,13 +36,16 @@
                 android:scaleType="fitCenter"
                 tools:src="@tools:sample/avatars" />
 
-            <CheckBox
-                android:id="@+id/ic_check"
+            <androidx.appcompat.widget.AppCompatImageView
+                android:id="@+id/iv_check_box"
+                android:layout_width="24dp"
+                android:layout_height="24dp"
+                android:layout_margin="4dp"
+                android:src="@drawable/tools_ic_checkbox"
+                android:visibility="gone"
                 app:layout_constraintStart_toStartOf="parent"
                 app:layout_constraintTop_toTopOf="parent"
-                android:visibility="gone"
-                android:layout_width="24dp"
-                android:layout_height="24dp"/>
+                tools:visibility="visible" />
         </androidx.constraintlayout.widget.ConstraintLayout>
 
 
@@ -53,8 +55,8 @@
         android:id="@+id/tv_thumbnail_page_index"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
-        android:layout_marginBottom="8dp"
         android:layout_marginTop="4dp"
+        android:layout_marginBottom="8dp"
         android:background="@drawable/tools_thumbnail_item_page_tv_bg"
         android:paddingHorizontal="12dp"
         android:paddingVertical="2dp"

+ 3 - 1
ComPDFKit_Tools/src/main/res/layout/tools_properties_free_text_style_fragment.xml

@@ -58,12 +58,14 @@
             app:layout_constraintStart_toStartOf="parent"
             app:layout_constraintTop_toBottomOf="@id/slider_bar" />
 
-        <androidx.appcompat.widget.AppCompatSpinner
+        <Spinner
             android:id="@+id/spinner_font"
             android:layout_width="0dp"
             android:layout_height="35dp"
             android:layout_marginStart="20dp"
             android:layout_marginEnd="16dp"
+            android:spinnerMode="dropdown"
+            android:popupElevation="4dp"
             android:dropDownSelector="@color/tools_color_primary"
             android:popupBackground="@drawable/tools_common_window_bg"
             app:layout_constraintBottom_toBottomOf="@id/tv_font_type"

+ 6 - 6
ComPDFKit_Tools/src/main/res/layout/tools_sign_style_preview_main.xml

@@ -193,7 +193,7 @@
             android:id="@+id/cb_name"
             android:layout_width="0dp"
             android:layout_height="45dp"
-            android:button="@drawable/tools_ic_digital_sign_checkbox"
+            android:button="@drawable/tools_ic_checkbox"
             android:checked="true"
             android:gravity="center_vertical"
             android:paddingStart="8dp"
@@ -204,7 +204,7 @@
             android:id="@+id/cb_date"
             android:layout_width="0dp"
             android:layout_height="45dp"
-            android:button="@drawable/tools_ic_digital_sign_checkbox"
+            android:button="@drawable/tools_ic_checkbox"
             android:checked="true"
             android:gravity="center_vertical"
             android:paddingStart="8dp"
@@ -215,7 +215,7 @@
             android:id="@+id/cb_logo"
             android:layout_width="0dp"
             android:layout_height="45dp"
-            android:button="@drawable/tools_ic_digital_sign_checkbox"
+            android:button="@drawable/tools_ic_checkbox"
             android:checked="true"
             android:gravity="center_vertical"
             android:paddingStart="8dp"
@@ -226,7 +226,7 @@
             android:id="@+id/cb_distinguishable_name"
             android:layout_width="0dp"
             android:layout_height="45dp"
-            android:button="@drawable/tools_ic_digital_sign_checkbox"
+            android:button="@drawable/tools_ic_checkbox"
             android:gravity="center_vertical"
             android:paddingStart="8dp"
             android:text="@string/tools_distinguishable_name"
@@ -236,7 +236,7 @@
             android:id="@+id/cb_compdfkit_version"
             android:layout_width="0dp"
             android:layout_height="45dp"
-            android:button="@drawable/tools_ic_digital_sign_checkbox"
+            android:button="@drawable/tools_ic_checkbox"
             android:gravity="center_vertical"
             android:paddingStart="8dp"
             android:text="@string/tools_compdfkit_versions"
@@ -246,7 +246,7 @@
             android:id="@+id/cb_tab"
             android:layout_width="0dp"
             android:layout_height="45dp"
-            android:button="@drawable/tools_ic_digital_sign_checkbox"
+            android:button="@drawable/tools_ic_checkbox"
             android:checked="true"
             android:gravity="center_vertical"
             android:paddingStart="8dp"

+ 0 - 1
ComPDFKit_Tools/src/main/res/values/tools_themes.xml

@@ -1,7 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <resources xmlns:tools="http://schemas.android.com/tools">
 
-
     <style name="Tools_Base_Theme" parent="Theme.MaterialComponents.DayNight.NoActionBar">
         <item name="colorPrimary">@color/tools_color_primary</item>
         <item name="android:colorAccent">@color/tools_color_accent</item>

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

@@ -10,18 +10,13 @@ package com.compdfkit.contenteditor;
 
 import static com.compdfkit.tools.contenteditor.CEditToolbar.SELECT_AREA_IMAGE;
 import static com.compdfkit.tools.contenteditor.CEditToolbar.SELECT_AREA_TEXT;
-import static com.compdfkit.ui.contextmenu.CPDFContextMenuShowHelper.AddEditImageArea;
-import static com.compdfkit.ui.contextmenu.CPDFContextMenuShowHelper.ReplaceEditImageArea;
 
 import android.Manifest;
-import android.content.Intent;
 import android.os.Build;
 import android.os.Bundle;
 import android.view.View;
-import android.widget.Toast;
 
 import androidx.activity.result.ActivityResultLauncher;
-import androidx.annotation.Nullable;
 
 import com.compdfkit.contenteditor.databinding.EditPdfSampleActivityBinding;
 import com.compdfkit.core.edit.CPDFEditManager;
@@ -30,7 +25,6 @@ import com.compdfkit.tools.common.basic.activity.CBasicPDFActivity;
 import com.compdfkit.tools.common.contextmenu.CPDFContextMenuHelper;
 import com.compdfkit.tools.common.utils.CFileUtils;
 import com.compdfkit.tools.common.utils.CPermissionUtil;
-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;
@@ -44,7 +38,6 @@ 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.CPreviewMode;
 import com.compdfkit.tools.viewer.pdfsearch.CSearchResultDialogFragment;
-import com.compdfkit.ui.reader.CPDFPageView;
 import com.compdfkit.ui.reader.CPDFReaderView;
 
 import java.util.ArrayList;
@@ -296,49 +289,6 @@ public class PDFEditSampleActivity extends CBasicPDFActivity {
         multiplePermissionResultLauncher.launch(STORAGE_PERMISSIONS);
     }
 
-    @Override
-    public void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
-        super.onActivityResult(requestCode, resultCode, data);
-        if (requestCode == ReplaceEditImageArea) {
-            if (binding.pdfView == null || binding.pdfView.getCPdfReaderView() == null || data == null) {
-                return;
-            }
-            for (int i = 0; i < binding.pdfView.getCPdfReaderView().getChildCount(); i++) {
-                CPDFPageView pageView = (CPDFPageView) binding.pdfView.getCPdfReaderView().getChildAt(i);
-                if (pageView == null) {
-                    continue;
-                }
-                if (pageView.getPageNum() == binding.pdfView.getCPdfReaderView().getPageNum()) {
-                    boolean ret = pageView.operateEditImageArea(CPDFPageView.EditImageFuncType.REPLACE, data.getData());
-                    if (!ret) {
-                        CToastUtil.showLongToast(getApplicationContext(), "replace fail");
-                    }
-                    break;
-                }
-            }
-        } else if (requestCode == AddEditImageArea) {
-            if (binding.pdfView == null || binding.pdfView.getCPdfReaderView() == null) {
-                return;
-            }
-            if (data == null) {
-                return;
-            }
-            for (int i = 0; i < binding.pdfView.getCPdfReaderView().getChildCount(); i++) {
-                CPDFPageView pageView = (CPDFPageView) binding.pdfView.getCPdfReaderView().getChildAt(i);
-                if (pageView == null) {
-                    continue;
-                }
-                if (pageView.getPageNum() == binding.pdfView.getCPdfReaderView().getAddImagePage()) {
-                    boolean ret = pageView.addEditImageArea(binding.pdfView.getCPdfReaderView().getAddImagePoint(), data.getData());
-                    if (!ret) {
-                        Toast.makeText(getApplicationContext(), "add fail", Toast.LENGTH_LONG).show();
-                    }
-                    break;
-                }
-            }
-        }
-    }
-
     @Override
     public void onBackPressed() {
         if (binding.pdfView != null) {

+ 0 - 133
PDFViewer/src/main/java/com/compdfkit/pdfviewer/CSampleScreenManager.java

@@ -1,133 +0,0 @@
-package com.compdfkit.pdfviewer;
-
-import android.view.View;
-
-import androidx.constraintlayout.widget.ConstraintSet;
-
-import com.compdfkit.core.annotation.CPDFAnnotation;
-import com.compdfkit.pdfviewer.databinding.PdfSampleActivityBinding;
-import com.compdfkit.tools.common.utils.animation.CFillScreenManager;
-import com.compdfkit.tools.common.utils.animation.ConstraintSetUtils;
-import com.compdfkit.tools.common.views.pdfproperties.CAnnotationType;
-import com.compdfkit.tools.common.views.pdfview.CPreviewMode;
-
-public class CSampleScreenManager {
-    private PdfSampleActivityBinding binding;
-
-    public CFillScreenManager fillScreenManager = new CFillScreenManager();
-
-    private boolean isFillScreen;
-
-    private ConstraintSet constraintSet = new ConstraintSet();
-
-    private ConstraintSetUtils constraintSetUtils = new ConstraintSetUtils();
-
-    public void bind(PdfSampleActivityBinding mainBinding){
-        this.binding = mainBinding;
-        constraintSet.clone(binding.getRoot());
-        fillScreenManager.bindRightToolViewList(binding.pdfView.slideBar);
-        fillScreenManager.bindBottomToolViewList(binding.pdfView.indicatorView);
-        fillScreenManager.bindBottomToolViewList(binding.flBottomToolBar);
-    }
-
-
-    public void changeWindowStatus(CPreviewMode mode){
-        if (mode == CPreviewMode.Viewer){
-            fillScreenManager.removeToolView(binding.flBottomToolBar);
-            constraintSetUtils.hideFromBottom(constraintSet, binding.flBottomToolBar);
-        }else if (mode == CPreviewMode.Annotation){
-            fillScreenManager.bindBottomToolViewList(binding.flBottomToolBar);
-            binding.annotationToolBar.setVisibility(View.VISIBLE);
-            binding.editToolBar.setVisibility(View.GONE);
-            binding.formToolBar.setVisibility(View.GONE);
-            binding.signatureToolBar.setVisibility(View.GONE);
-            constraintSetUtils.showFromBottom(constraintSet, binding.flBottomToolBar);
-        } else if (mode == CPreviewMode.Edit) {
-            fillScreenManager.bindBottomToolViewList(binding.flBottomToolBar);
-            binding.annotationToolBar.setVisibility(View.GONE);
-            binding.editToolBar.setVisibility(View.VISIBLE);
-            binding.formToolBar.setVisibility(View.GONE);
-            binding.signatureToolBar.setVisibility(View.GONE);
-            constraintSetUtils.showFromBottom(constraintSet, binding.flBottomToolBar);
-        } else if (mode == CPreviewMode.Form){
-            fillScreenManager.bindBottomToolViewList(binding.flBottomToolBar);
-            binding.annotationToolBar.setVisibility(View.GONE);
-            binding.editToolBar.setVisibility(View.GONE);
-            binding.formToolBar.setVisibility(View.VISIBLE);
-            binding.signatureToolBar.setVisibility(View.GONE);
-            constraintSetUtils.showFromBottom(constraintSet, binding.flBottomToolBar);
-        } else if (mode == CPreviewMode.Signature){
-            fillScreenManager.bindBottomToolViewList(binding.flBottomToolBar);
-            binding.annotationToolBar.setVisibility(View.GONE);
-            binding.editToolBar.setVisibility(View.GONE);
-            binding.formToolBar.setVisibility(View.GONE);
-            binding.signatureToolBar.setVisibility(View.VISIBLE);
-            constraintSetUtils.showFromBottom(constraintSet, binding.flBottomToolBar);
-        }
-        constraintSetUtils.apply(constraintSet, binding.getRoot());
-    }
-
-    public void changeWindowStatus(CAnnotationType type){
-        if (type == CAnnotationType.INK){
-            fillScreenChange();
-            fillScreenManager.bindTopToolView(binding.inkCtrlView);
-            binding.inkCtrlView.setVisibility(View.VISIBLE);
-        }else {
-            if (isFillScreen){
-                fillScreenChange();
-            }
-            binding.inkCtrlView.setVisibility(View.GONE);
-            fillScreenManager.removeToolView(binding.inkCtrlView);
-        }
-    }
-
-    public void changeWindowStatus(CPDFAnnotation.Type pdfType){
-        if (pdfType == CPDFAnnotation.Type.INK){
-            fillScreenChange();
-            fillScreenManager.hideFromTop(binding.pdfToolBar, 200);
-            fillScreenManager.hideFromBottom(binding.flBottomToolBar, 200);
-        }else {
-            if (isFillScreen) {
-                fillScreenChange();
-            }
-            binding.inkCtrlView.setVisibility(View.GONE);
-            fillScreenManager.removeToolView(binding.inkCtrlView);
-        }
-    }
-
-    public void fillScreenChange() {
-        fillScreenManager.fillScreenChange(!isFillScreen);
-        if (!isFillScreen) {
-            //enter full screen
-            constraintSetUtils.hideFromTop(constraintSet, binding.flTool);
-            constraintSetUtils.hideFromBottom(constraintSet, binding.flBottomToolBar);
-            isFillScreen = true;
-        } else {
-            //enter normal state
-            constraintSetUtils.showFromTop(constraintSet, binding.flTool);
-            //show bottom annotationBar
-            if (fillScreenManager.bottomToolViewList.contains(binding.flBottomToolBar)) {
-                constraintSetUtils.showFromBottom(constraintSet, binding.flBottomToolBar);
-            }else {
-                constraintSetUtils.hideFromBottom(constraintSet, binding.flBottomToolBar);
-            }
-            if (fillScreenManager.topToolViewList.contains(binding.signStatusView)) {
-                constraintSetUtils.show(constraintSet, binding.signStatusView);
-            }else {
-                constraintSetUtils.hide(constraintSet, binding.signStatusView);
-            }
-            isFillScreen = false;
-        }
-        constraintSetUtils.apply(constraintSet, binding.getRoot());
-    }
-
-    public void constraintShow(View view){
-        constraintSetUtils.show(constraintSet, view);
-        constraintSetUtils.apply(constraintSet, binding.getRoot());
-    }
-
-    public void constraintHide(View view){
-        constraintSetUtils.hide(constraintSet, view);
-        constraintSetUtils.apply(constraintSet, binding.getRoot());
-    }
-}

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

@@ -1,752 +0,0 @@
-/**
- * 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.
- * This notice may not be removed from this file.
- */
-package com.compdfkit.pdfviewer;
-
-import static com.compdfkit.tools.contenteditor.CEditToolbar.SELECT_AREA_IMAGE;
-import static com.compdfkit.tools.contenteditor.CEditToolbar.SELECT_AREA_TEXT;
-import static com.compdfkit.ui.contextmenu.CPDFContextMenuShowHelper.AddEditImageArea;
-import static com.compdfkit.ui.contextmenu.CPDFContextMenuShowHelper.ReplaceEditImageArea;
-
-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.text.TextUtils;
-import android.view.View;
-import android.widget.Toast;
-
-import androidx.activity.result.ActivityResultLauncher;
-import androidx.annotation.Nullable;
-import androidx.core.content.ContextCompat;
-
-import com.compdfkit.core.annotation.CPDFAnnotation;
-import com.compdfkit.core.annotation.form.CPDFSignatureWidget;
-import com.compdfkit.core.document.CPDFDocument;
-import com.compdfkit.core.edit.CPDFEditManager;
-import com.compdfkit.core.edit.CPDFEditPage;
-import com.compdfkit.pdfviewer.config.CPDFConfiguration;
-import com.compdfkit.pdfviewer.config.ModeConfig;
-import com.compdfkit.pdfviewer.config.ReaderViewConfig;
-import com.compdfkit.pdfviewer.config.ToolbarConfig;
-import com.compdfkit.pdfviewer.databinding.PdfSampleActivityBinding;
-import com.compdfkit.tools.common.basic.activity.CBasicPDFActivity;
-import com.compdfkit.tools.common.contextmenu.CPDFContextMenuHelper;
-import com.compdfkit.tools.common.pdf.CPDFConfiguration;
-import com.compdfkit.tools.common.pdf.CPDFConfigurationUtils;
-import com.compdfkit.tools.common.utils.CFileUtils;
-import com.compdfkit.tools.common.utils.CPermissionUtil;
-import com.compdfkit.tools.common.utils.CToastUtil;
-import com.compdfkit.tools.common.utils.activitycontracts.CSelectPDFDocumentResultContract;
-import com.compdfkit.tools.common.utils.annotation.CPDFAnnotationManager;
-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;
-import com.compdfkit.tools.common.views.pdfbota.CPDFBotaFragmentTabs;
-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.CStyleDialogFragment;
-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.forms.pdfproperties.pdfsign.SignatureWidgetImpl;
-import com.compdfkit.tools.security.encryption.CDocumentEncryptionDialog;
-import com.compdfkit.tools.security.encryption.CInputOwnerPwdDialog;
-import com.compdfkit.tools.security.watermark.CWatermarkEditDialog;
-import com.compdfkit.tools.signature.CertificateDigitalDatas;
-import com.compdfkit.tools.signature.bean.CPDFDocumentSignInfo;
-import com.compdfkit.tools.signature.info.signlist.CPDFCertDigitalSignListDialog;
-import com.compdfkit.tools.viewer.pdfsearch.CSearchResultDialogFragment;
-import com.compdfkit.ui.contextmenu.IContextMenuShowListener;
-import com.compdfkit.ui.proxy.form.CPDFComboboxWidgetImpl;
-import com.compdfkit.ui.proxy.form.CPDFListboxWidgetImpl;
-import com.compdfkit.ui.proxy.form.CPDFPushbuttonWidgetImpl;
-import com.compdfkit.ui.reader.CPDFPageView;
-import com.compdfkit.ui.reader.CPDFReaderView;
-
-import java.util.ArrayList;
-import java.util.List;
-
-
-public class MainActivity extends CBasicPDFActivity {
-
-    public static final String EXTRA_FILE_PATH = "file_path";
-
-    public static final String EXTRA_FILE_PASSWORD = "file_password";
-
-    public static final String EXTRA_CONFIGURATION = "extra_configuration";
-
-    /**
-     * assets folder pdf file
-     */
-    public static final String QUICK_START_GUIDE = "ComPDFKit_Sample_File_Android.pdf";
-
-    private PdfSampleActivityBinding binding;
-
-    CSampleScreenManager screenManager = new CSampleScreenManager();
-
-    private CPDFConfiguration cpdfConfiguration;
-
-    private ActivityResultLauncher<Void> selectDocumentLauncher = registerForActivityResult(new CSelectPDFDocumentResultContract(), uri -> {
-        if (uri != null) {
-            CPDFReaderView readerView = binding.pdfView.getCPdfReaderView();
-            if (readerView != null && readerView.getEditManager() != null) {
-                readerView.getEditManager().endEdit();
-            }
-            if (readerView.getContextMenuShowListener() != null) {
-                readerView.getContextMenuShowListener().dismissContextMenu();
-            }
-            CFileUtils.takeUriPermission(this, uri);
-            binding.pdfView.resetAnnotationType();
-            binding.formToolBar.reset();
-            binding.editToolBar.resetStatus();
-            binding.signatureToolBar.reset();
-            setPreviewMode(CPreviewMode.Viewer);
-            screenManager.changeWindowStatus(CPreviewMode.Viewer);
-            screenManager.constraintHide(binding.signStatusView);
-            binding.pdfView.openPDF(uri, null, () -> {
-                binding.editToolBar.setEditMode(false);
-            });
-        }
-    });
-
-    @Override
-    protected void onCreate(Bundle savedInstanceState) {
-        super.onCreate(savedInstanceState);
-        binding = PdfSampleActivityBinding.inflate(getLayoutInflater());
-        setContentView(binding.getRoot());
-        screenManager.bind(binding);
-        //Extract PDF files from the Android assets folder
-        parseConfiguration();
-        initDocument(()->{
-            initPDFView();
-            initToolBarView();
-            initSearchBar();
-            initAnnotToolbar();
-            initFormToolbar();
-            initEditBar();
-            initSignatureToolbar();
-            applyConfiguration();
-            onDoNext();
-        });
-    }
-
-    private void initDocument(CInitPDFRequestListener initPDFRequestListener) {
-        String password = getIntent().getStringExtra(EXTRA_FILE_PASSWORD);
-        if (!TextUtils.isEmpty(getIntent().getStringExtra(EXTRA_FILE_PATH))) {
-            String path = getIntent().getStringExtra(EXTRA_FILE_PATH);
-            binding.pdfView.openPDF(path, password);
-            if (initPDFRequestListener != null) {
-                initPDFRequestListener.success();
-            }
-        } else if (getIntent().getData() != null) {
-            CFileUtils.takeUriPermission(this, getIntent().getData());
-            binding.pdfView.openPDF(getIntent().getData(), password);
-            if (initPDFRequestListener != null) {
-                initPDFRequestListener.success();
-            }
-        } else if (getIntent().getClipData() != null &&
-                getIntent().getClipData().getItemCount() > 0 &&
-                getIntent().getClipData().getItemAt(0) != null) {
-
-            Uri uri = getIntent().getClipData().getItemAt(0).getUri();
-            CFileUtils.takeUriPermission(this, uri);
-            binding.pdfView.openPDF(uri, password);
-            if (initPDFRequestListener != null) {
-                initPDFRequestListener.success();
-            }
-        } else {
-            CExtractAssetFileTask.extract(this, QUICK_START_GUIDE, QUICK_START_GUIDE, (filePath) -> {
-                        binding.pdfView.openPDF(filePath);
-                        runOnUiThread(()->{
-                            if (initPDFRequestListener != null) {
-                                initPDFRequestListener.success();
-                            }
-                        });
-                    }
-            );
-        }
-    }
-
-    private void initPDFView() {
-        binding.pdfView.getCPdfReaderView().setMinScaleEnable(false);
-        initAnnotationAttr(binding.pdfView);
-        initFormAttr(binding.pdfView);
-        registerAnnotHelper(binding.pdfView);
-        registerFormHelper(binding.pdfView);
-        Paint paint = new Paint();
-        paint.setStyle(Paint.Style.FILL);
-        paint.setColor(ContextCompat.getColor(this, R.color.tools_color_accent_50));
-        binding.pdfView.getCPdfReaderView().setFormPreviewPaint(paint);
-        binding.pdfView.addOnPDFFocusedTypeChangeListener(type -> {
-            if (type != CPDFAnnotation.Type.INK) {
-                if (binding.inkCtrlView.getVisibility() == View.VISIBLE) {
-                    screenManager.changeWindowStatus(type);
-                }
-            }
-        });
-        binding.pdfView.setOnTapMainDocAreaCallback(() -> {
-            //Use the CFillScreenManager.class to manage fullscreen switching.
-            screenManager.fillScreenChange();
-        });
-        binding.pdfView.getCPdfReaderView().setPdfAddAnnotCallback((cpdfPageView, cpdfBaseAnnot) -> {
-            // Annotation creation completed listener, you can use cpdfBaseAnnot.getAnnotType() to determine the type of the added annotation
-            if (cpdfBaseAnnot instanceof CPDFListboxWidgetImpl) {
-                // When the ListBox form is created, display an editing dialog for adding list data
-                CPDFAnnotationManager annotationManager = new CPDFAnnotationManager();
-                annotationManager.showFormListEditFragment(getSupportFragmentManager(), cpdfBaseAnnot, cpdfPageView, false);
-            } else if (cpdfBaseAnnot instanceof CPDFComboboxWidgetImpl) {
-                // When the ComboBox form is created, display an editing dialog for adding list data
-                CPDFAnnotationManager annotationManager = new CPDFAnnotationManager();
-                annotationManager.showFormComboBoxEditFragment(getSupportFragmentManager(), cpdfBaseAnnot, cpdfPageView, true);
-            } else if (cpdfBaseAnnot instanceof CPDFPushbuttonWidgetImpl) {
-                // When the PushButton form is created, display a dialog for editing the action method
-                CPDFAnnotationManager annotationManager = new CPDFAnnotationManager();
-                annotationManager.showPushButtonActionDialog(getSupportFragmentManager(), binding.pdfView.getCPdfReaderView(),
-                        cpdfBaseAnnot, cpdfPageView);
-            }
-        });
-    }
-
-    private void setPreviewMode(CPreviewMode mode) {
-        if (binding.pdfView.getCPdfReaderView() == null) {
-            return;
-        }
-        binding.pdfView.getCPdfReaderView().removeAllAnnotFocus();
-        IContextMenuShowListener contextMenuShowListener = binding.pdfView.getCPdfReaderView().getContextMenuShowListener();
-        if (contextMenuShowListener != null) {
-            contextMenuShowListener.dismissContextMenu();
-        }
-        screenManager.changeWindowStatus(mode);
-        binding.pdfToolBar.selectMode(mode);
-        binding.formToolBar.reset();
-        binding.signatureToolBar.reset();
-        resetContextMenu(binding.pdfView, mode);
-        CPDFEditManager editManager = binding.pdfView.getCPdfReaderView().getEditManager();
-        if (mode == CPreviewMode.Edit) {
-            binding.pdfView.getCPdfReaderView().setViewMode(CPDFReaderView.ViewMode.PDFEDIT);
-            if (editManager != null && !editManager.isEditMode()) {
-                editManager.enable();
-                editManager.beginEdit(CPDFEditPage.LoadTextImage);
-            }
-            if (!CPermissionUtil.hasStoragePermissions(this)) {
-                requestStoragePermissions();
-            }
-        } else {
-            if (editManager != null && editManager.isEditMode()) {
-                editManager.endEdit();
-            }
-            switch (mode) {
-                case Viewer:
-                case Signature:
-                    binding.pdfView.getCPdfReaderView().setViewMode(CPDFReaderView.ViewMode.VIEW);
-                    break;
-                case Annotation:
-                    binding.pdfView.getCPdfReaderView().setViewMode(CPDFReaderView.ViewMode.ANNOT);
-                    break;
-                case Form:
-                    binding.pdfView.getCPdfReaderView().setViewMode(CPDFReaderView.ViewMode.FORM);
-                    break;
-                default:
-                    break;
-            }
-        }
-    }
-
-    private void initToolBarView() {
-        binding.pdfToolBar.addMode(CPreviewMode.Annotation);
-        binding.pdfToolBar.addMode(CPreviewMode.Edit);
-        binding.pdfToolBar.addMode(CPreviewMode.Form);
-        binding.pdfToolBar.addMode(CPreviewMode.Signature);
-        binding.pdfToolBar.setPreviewModeChangeListener(this::setPreviewMode);
-        if (cpdfConfiguration != null) {
-            ToolbarConfig toolbarConfig = cpdfConfiguration.toolbarConfig;
-            for (ToolbarConfig.ToolbarAction androidAvailableAction : toolbarConfig.androidAvailableActions) {
-                switch (androidAvailableAction) {
-                    case Thumbnail:
-                        binding.pdfToolBar.addAction(R.drawable.tools_ic_thumbnail, v -> {
-                            showPageEdit(binding.pdfView, false, () -> {
-                                if (curEditMode > CPDFEditPage.LoadNone && binding.pdfToolBar.getMode() == CPreviewMode.Edit) {
-                                    CPDFEditManager editManager = binding.pdfView.getCPdfReaderView().getEditManager();
-                                    if (!editManager.isEditMode()) {
-                                        editManager.beginEdit(curEditMode);
-                                    }
-                                }
-                            });
-                        });
-                        break;
-                    case Search:
-                        binding.pdfToolBar.addAction(R.drawable.tools_ic_search, v -> {
-                            if (binding.pdfView.getCPdfReaderView().getEditManager().isEditMode()) {
-                                curEditMode = binding.pdfView.getCPdfReaderView().getLoadType();
-                            } else {
-                                curEditMode = CPDFEditPage.LoadNone;
-                            }
-                            binding.pdfView.exitEditMode();
-                            binding.pdfToolBar.setVisibility(View.GONE);
-                            binding.pdfSearchToolBar.setVisibility(View.VISIBLE);
-                            binding.pdfSearchToolBar.showKeyboard();
-                        });
-                        break;
-                    case Bota:
-                        binding.pdfToolBar.addAction(R.drawable.tools_ic_bookmark, v -> {
-                            binding.pdfView.getCPdfReaderView().removeAllAnnotFocus();
-                            binding.pdfView.exitEditMode();
-                            ArrayList<CPDFBotaFragmentTabs> tabs = new ArrayList<>();
-                            CPDFBotaFragmentTabs annotationTab = new CPDFBotaFragmentTabs(CPDFBOTA.ANNOTATION, getString(R.string.tools_annotations));
-                            CPDFBotaFragmentTabs outlineTab = new CPDFBotaFragmentTabs(CPDFBOTA.OUTLINE, getString(R.string.tools_outlines));
-                            CPDFBotaFragmentTabs bookmarkTab = new CPDFBotaFragmentTabs(CPDFBOTA.BOOKMARKS, getString(R.string.tools_bookmarks));
-                            if (binding.pdfToolBar.getMode() == CPreviewMode.Viewer) {
-                                tabs.add(outlineTab);
-                                tabs.add(bookmarkTab);
-                            } else {
-                                tabs.add(outlineTab);
-                                tabs.add(bookmarkTab);
-                                tabs.add(annotationTab);
-                            }
-                            CPDFBotaDialogFragment dialogFragment = CPDFBotaDialogFragment.newInstance();
-                            dialogFragment.initWithPDFView(binding.pdfView);
-                            dialogFragment.setBotaDialogTabs(tabs);
-                            dialogFragment.show(getSupportFragmentManager(), "annotationList");
-                        });
-                        break;
-
-                    case Menu:
-                        binding.pdfToolBar.addAction(R.drawable.tools_ic_more, v -> {
-                            showToolbarMenuDialog(v);
-                        });
-                        break;
-                    default:
-                        break;
-                }
-            }
-        }
-    }
-
-    private void requestStoragePermissions() {
-        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) {
-            CPermissionUtil.openManageAllFileAppSettings(this);
-        } else {
-            multiplePermissionResultLauncher.launch(STORAGE_PERMISSIONS, result -> {
-                if (CPermissionUtil.hasStoragePermissions(this)) {
-                    selectDocument();
-                } else {
-                    if (!CPermissionUtil.shouldShowRequestPermissionRationale(this, Manifest.permission.WRITE_EXTERNAL_STORAGE)) {
-                        showPermissionsRequiredDialog();
-                    }
-                }
-            });
-        }
-    }
-
-    private void initAnnotToolbar() {
-        binding.annotationToolBar.initWithPDFView(binding.pdfView);
-        binding.annotationToolBar.setFragmentManager(getSupportFragmentManager());
-        binding.annotationToolBar.setAnnotationChangeListener(type -> {
-            screenManager.changeWindowStatus(type);
-            //You are required to grant recording permission when selecting voice notes
-            if (type == CAnnotationType.SOUND) {
-                if (!hasPermission(Manifest.permission.RECORD_AUDIO)) {
-                    permissionResultLauncher.launch(Manifest.permission.RECORD_AUDIO, hasRecordAudioPermission -> {
-                        if (!hasRecordAudioPermission) {
-                            binding.pdfView.resetAnnotationType();
-                            if (!CPermissionUtil.shouldShowRequestPermissionRationale(this, Manifest.permission.RECORD_AUDIO)) {
-                                showPermissionsRequiredDialog();
-                            }
-                        }
-                    });
-                }
-            }
-        });
-        binding.inkCtrlView.initWithPDFView(binding.pdfView);
-        binding.inkCtrlView.setFragmentManager(getSupportFragmentManager());
-    }
-
-    private void initFormToolbar() {
-        binding.formToolBar.initWithPDFView(binding.pdfView);
-        binding.formToolBar.setFragmentManager(getSupportFragmentManager());
-    }
-
-    private void initSearchBar() {
-        binding.pdfSearchToolBar.initWithPDFView(binding.pdfView);
-
-        binding.pdfSearchToolBar.onSearchQueryResults(list -> {
-            CSearchResultDialogFragment searchResultDialog = new CSearchResultDialogFragment();
-            searchResultDialog.show(getSupportFragmentManager(), "searchResultDialogFragment");
-            searchResultDialog.setSearchTextInfos(list);
-            searchResultDialog.setOnClickSearchItemListener(clickItem -> {
-                binding.pdfView.getCPdfReaderView().setDisplayPageIndex(clickItem.page);
-                binding.pdfView.getCPdfReaderView().getTextSearcher().searchBegin(clickItem.page, clickItem.textRangeIndex);
-                searchResultDialog.dismiss();
-            });
-        });
-        binding.pdfSearchToolBar.setExitSearchListener(() -> {
-            if (curEditMode > CPDFEditPage.LoadNone) {
-                CPDFEditManager editManager = binding.pdfView.getCPdfReaderView().getEditManager();
-                if (!editManager.isEditMode()) {
-                    editManager.beginEdit(curEditMode);
-                }
-            }
-            binding.pdfToolBar.setVisibility(View.VISIBLE);
-            binding.pdfSearchToolBar.setVisibility(View.GONE);
-        });
-    }
-
-    private void initEditBar() {
-        if (binding.pdfView == null || binding.pdfView.getCPdfReaderView() == null) {
-            return;
-        }
-        binding.editToolBar.initWithPDFView(binding.pdfView);
-        binding.editToolBar.setEditMode(false);
-        binding.editToolBar.setEditPropertyBtnClickListener((view) -> {
-            int type = binding.pdfView.getCPdfReaderView().getSelectAreaType();
-            CStyleType styleType = CStyleType.UNKNOWN;
-            if (type == SELECT_AREA_TEXT) {
-                styleType = CStyleType.EDIT_TEXT;
-            } else if (type == SELECT_AREA_IMAGE) {
-                styleType = CStyleType.EDIT_IMAGE;
-            }
-            if (styleType != CStyleType.UNKNOWN) {
-                CPDFReaderView readerView = binding.pdfView.getCPdfReaderView();
-                CPDFContextMenuHelper menuHelper = (CPDFContextMenuHelper) readerView.getContextMenuShowListener();
-                if (menuHelper == null || menuHelper.getReaderView() == null) {
-                    return;
-                }
-                CStyleManager styleManager = new CStyleManager(menuHelper.getEditSelection(), menuHelper.getPageView());
-                CAnnotStyle annotStyle = styleManager.getStyle(styleType);
-                CStyleDialogFragment styleDialogFragment = CStyleDialogFragment.newInstance(annotStyle);
-                styleManager.setAnnotStyleFragmentListener(styleDialogFragment);
-                styleManager.setDialogHeightCallback(styleDialogFragment, binding.pdfView.getCPdfReaderView());
-                styleDialogFragment.show(getSupportFragmentManager(), "textPropertyDialogFragment");
-                menuHelper.dismissContextMenu();
-            }
-        });
-        binding.pdfView.setEndScrollCallback(() -> {
-            binding.editToolBar.updateUndoRedo();
-        });
-    }
-
-    private void initSignatureToolbar() {
-        binding.signStatusView.initWithPDFView(binding.pdfView);
-        binding.signStatusView.getBtnDetails().setOnClickListener(v -> {
-            CPDFCertDigitalSignListDialog signListDialog = CPDFCertDigitalSignListDialog.newInstance();
-            signListDialog.initWithPDFView(binding.pdfView);
-            signListDialog.setDialogDismissListener(this::verifyDocumentSignStatus);
-            signListDialog.show(getSupportFragmentManager(), "signListDialog");
-        });
-        binding.signatureToolBar.initWithPDFView(binding.pdfView);
-        binding.signatureToolBar.getVerifySignButton().setOnClickListener(v -> {
-            verifyDocumentSignStatus();
-        });
-    }
-
-    private void parseConfiguration() {
-        if (getIntent().hasExtra(EXTRA_CONFIGURATION)) {
-            if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) {
-                cpdfConfiguration = getIntent().getSerializableExtra(EXTRA_CONFIGURATION, CPDFConfiguration.class);
-            } else {
-                cpdfConfiguration = (CPDFConfiguration) getIntent().getSerializableExtra(EXTRA_CONFIGURATION);
-            }
-        } else {
-            cpdfConfiguration = CPDFConfigurationUtils.normalConfig();
-        }
-    }
-
-    private void applyConfiguration() {
-        if (cpdfConfiguration.readerViewConfig != null) {
-            ReaderViewConfig readerViewConfig = cpdfConfiguration.readerViewConfig;
-            binding.pdfView.getCPdfReaderView().setLinkHighlight(readerViewConfig.linkHighlight);
-            binding.pdfView.getCPdfReaderView().setFormFieldHighlight(readerViewConfig.formFieldHighlight);
-        }
-        if (cpdfConfiguration.modeConfig != null) {
-            ModeConfig modeConfig = cpdfConfiguration.modeConfig;
-            if (modeConfig.initialViewMode != CPreviewMode.PageEdit) {
-                setPreviewMode(modeConfig.initialViewMode);
-                if (modeConfig.initialViewMode == CPreviewMode.Edit) {
-                    binding.editToolBar.setEditMode(true);
-                }
-            } else {
-                setPreviewMode(CPreviewMode.Viewer);
-                showPageEdit(binding.pdfView, true, () -> {
-                    if (curEditMode > CPDFEditPage.LoadNone && binding.pdfToolBar.getMode() == CPreviewMode.Edit) {
-                        CPDFEditManager editManager = binding.pdfView.getCPdfReaderView().getEditManager();
-                        if (!editManager.isEditMode()) {
-                            editManager.beginEdit(curEditMode);
-                        }
-                    }
-                });
-            }
-        }
-    }
-
-    private void showToolbarMenuDialog(View anchorView) {
-        //Show the PDF settings dialog fragment
-        CPopupMenuWindow menuWindow = new CPopupMenuWindow(this);
-        if (cpdfConfiguration != null && cpdfConfiguration.toolbarConfig != null) {
-            List<ToolbarConfig.MenuAction> menuActions = cpdfConfiguration.toolbarConfig.availableMenus;
-            if (menuActions == null || menuActions.size() == 0) {
-                return;
-            }
-            anchorView.setSelected(true);
-            for (ToolbarConfig.MenuAction menuAction : menuActions) {
-                switch (menuAction) {
-                    case ViewSettings:
-                        menuWindow.addItem(R.drawable.tools_ic_preview_settings, R.string.tools_view_setting, v1 -> {
-                            showDisplaySettings(binding.pdfView);
-                        });
-                        break;
-                    case DocumentEditor:
-                        menuWindow.addItem(R.drawable.tools_page_edit, R.string.tools_page_edit_toolbar_title, v1 -> {
-                            showPageEdit(binding.pdfView, true, () -> {
-                                if (curEditMode > CPDFEditPage.LoadNone && binding.pdfToolBar.getMode() == CPreviewMode.Edit) {
-                                    CPDFEditManager editManager = binding.pdfView.getCPdfReaderView().getEditManager();
-                                    if (!editManager.isEditMode()) {
-                                        editManager.beginEdit(curEditMode);
-                                    }
-                                }
-                            });
-                        });
-                        break;
-                    case Security:
-                        menuWindow.addItem(R.drawable.tools_ic_add_security, R.string.tools_security, v1 -> {
-                            CPDFDocument document = binding.pdfView.getCPdfReaderView().getPDFDocument();
-                            if (document == null) {
-                                return;
-                            }
-                            if (document.getPermissions() == CPDFDocument.PDFDocumentPermissions.PDFDocumentPermissionsUser) {
-                                CInputOwnerPwdDialog inputOwnerPwdDialog = CInputOwnerPwdDialog.newInstance();
-                                inputOwnerPwdDialog.setDocument(document);
-                                inputOwnerPwdDialog.setCancelClickListener(v2 -> {
-                                    inputOwnerPwdDialog.dismiss();
-                                });
-                                inputOwnerPwdDialog.setConfirmClickListener(ownerPassword -> {
-                                    document.reload(ownerPassword);
-                                    showSettingEncryptionDialog();
-                                    inputOwnerPwdDialog.dismiss();
-                                });
-                                inputOwnerPwdDialog.show(getSupportFragmentManager(), "inputPasswordDialog");
-                                return;
-                            }
-                            showSettingEncryptionDialog();
-                        });
-                        break;
-                    case Watermark:
-                        menuWindow.addItem(R.drawable.tools_ic_add_watermark, R.string.tools_watermark, v1 -> {
-                            CWatermarkEditDialog watermarkEditDialog = CWatermarkEditDialog.newInstance();
-                            watermarkEditDialog.setDocument(binding.pdfView.getCPdfReaderView().getPDFDocument());
-                            watermarkEditDialog.setPageIndex(binding.pdfView.currentPageIndex);
-                            watermarkEditDialog.setCompleteListener((pdfFile) -> {
-                                watermarkEditDialog.dismiss();
-                                if (TextUtils.isEmpty(pdfFile)){
-                                    CToastUtil.showLongToast(this, R.string.tools_watermark_add_failed);
-                                    return;
-                                }
-                                binding.pdfView.openPDF(pdfFile);
-                                CToastUtil.showLongToast(this, R.string.tools_watermark_add_success);
-                            });
-                            watermarkEditDialog.show(getSupportFragmentManager(), "watermarkEditDialog");
-                        });
-                        break;
-                    case DocumentInfo:
-                        menuWindow.addItem(R.drawable.tools_ic_document_info, R.string.tools_document_info, v1 -> {
-                            showDocumentInfo(binding.pdfView);
-                        });
-                        break;
-                    case Save:
-                        menuWindow.addItem(R.drawable.tools_ic_menu_save, R.string.tools_save, v1 -> {
-                            binding.pdfView.savePDF((filePath, pdfUri) -> {
-                                CToastUtil.showLongToast(this, R.string.tools_save_success);
-                            }, e -> {
-
-                            });
-                        });
-                        break;
-                    case Share:
-                        menuWindow.addItem(R.drawable.tools_ic_share, R.string.tools_share, v1 -> {
-                            binding.editToolBar.resetStatus();
-                            sharePDF(binding.pdfView);
-                        });
-                        break;
-                    case OpenDocument:
-                        menuWindow.addItem(R.drawable.tools_ic_new_file, R.string.tools_open_document, v1 -> {
-                            if (CPermissionUtil.hasStoragePermissions(this)) {
-                                selectDocument();
-                            } else {
-                                requestStoragePermissions();
-                            }
-                        });
-                        break;
-                    default:
-                        break;
-                }
-            }
-        }
-        menuWindow.setOnDismissListener(() -> anchorView.setSelected(false));
-        menuWindow.showAsDropDown(anchorView);
-    }
-
-    /**
-     *
-     */
-    private void verifyDocumentSignStatus() {
-        CPDFDocument document = binding.pdfView.getCPdfReaderView().getPDFDocument();
-        if (CertificateDigitalDatas.hasDigitalSignature(document)) {
-            CThreadPoolUtils.getInstance().executeIO(() -> {
-                CPDFDocumentSignInfo status = CertificateDigitalDatas.verifyDocumentSignStatus(document);
-                runOnUiThread(() -> {
-                    if (status != null) {
-                        binding.signStatusView.setStatus(status);
-                        screenManager.fillScreenManager.bindTopToolView(binding.signStatusView);
-                        screenManager.constraintShow(binding.signStatusView);
-                    }
-                });
-            });
-        } else {
-            if (binding.signStatusView.getVisibility() == View.VISIBLE) {
-                screenManager.fillScreenManager.removeAndHideToolView(binding.signStatusView);
-                screenManager.constraintHide(binding.signStatusView);
-            }
-        }
-    }
-
-    private void selectDocument() {
-        if (binding.pdfToolBar.getMode() == CPreviewMode.Edit) {
-            binding.pdfView.exitEditMode();
-        }
-
-        if (binding.pdfView.getCPdfReaderView().getPDFDocument() == null) {
-            selectDocumentLauncher.launch(null);
-            return;
-        }
-        if (!binding.pdfView.getCPdfReaderView().getPDFDocument().hasChanges()) {
-            selectDocumentLauncher.launch(null);
-            return;
-        }
-        CAlertDialog alertDialog = CAlertDialog.newInstance(getString(R.string.tools_save_title), getString(R.string.tools_save_message));
-        alertDialog.setConfirmClickListener(v -> {
-            //save pdf document
-            binding.pdfView.savePDF((filePath, pdfUri) -> {
-                alertDialog.dismiss();
-                selectDocumentLauncher.launch(null);
-            }, e -> {
-                alertDialog.dismiss();
-                selectDocumentLauncher.launch(null);
-            });
-        });
-        alertDialog.setCancelClickListener(v -> {
-            alertDialog.dismiss();
-            selectDocumentLauncher.launch(null);
-        });
-        alertDialog.show(getSupportFragmentManager(), "alertDialog");
-    }
-
-    private void onDoNext() {
-        multiplePermissionResultLauncher.launch(STORAGE_PERMISSIONS);
-    }
-
-    @Override
-    public void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
-        super.onActivityResult(requestCode, resultCode, data);
-        if (requestCode == ReplaceEditImageArea) {
-            if (binding.pdfView == null || binding.pdfView.getCPdfReaderView() == null) {
-                return;
-            }
-            for (int i = 0; i < binding.pdfView.getCPdfReaderView().getChildCount(); i++) {
-                CPDFPageView pageView = (CPDFPageView) binding.pdfView.getCPdfReaderView().getChildAt(i);
-                if (pageView == null) {
-                    continue;
-                }
-                if (data == null) {
-                    return;
-                }
-                if (pageView.getPageNum() == binding.pdfView.getCPdfReaderView().getPageNum()) {
-                    boolean ret = pageView.operateEditImageArea(CPDFPageView.EditImageFuncType.REPLACE, data.getData());
-                    if (ret == false) {
-                        Toast.makeText(getApplicationContext(), "replace fail", Toast.LENGTH_LONG).show();
-                    }
-                    break;
-                }
-            }
-        } else if (requestCode == AddEditImageArea) {
-            if (binding.pdfView == null || binding.pdfView.getCPdfReaderView() == null) {
-                return;
-            }
-            if (data == null) {
-                return;
-            }
-            for (int i = 0; i < binding.pdfView.getCPdfReaderView().getChildCount(); i++) {
-                CPDFPageView pageView = (CPDFPageView) binding.pdfView.getCPdfReaderView().getChildAt(i);
-                if (pageView == null) {
-                    continue;
-                }
-                if (pageView.getPageNum() == binding.pdfView.getCPdfReaderView().getAddImagePage()) {
-                    boolean ret = pageView.addEditImageArea(binding.pdfView.getCPdfReaderView().getAddImagePoint(), data.getData());
-                    if (ret == false) {
-                        Toast.makeText(getApplicationContext(), "add fail", Toast.LENGTH_LONG).show();
-                    }
-                    break;
-                }
-            }
-        }
-    }
-
-    private void showSettingEncryptionDialog() {
-        CDocumentEncryptionDialog documentEncryptionDialog = CDocumentEncryptionDialog.newInstance();
-        documentEncryptionDialog.setDocument(binding.pdfView.getCPdfReaderView().getPDFDocument());
-        documentEncryptionDialog.setEncryptionResultListener((isRemoveSecurity, result, filePath, passowrd) -> {
-            binding.pdfView.openPDF(filePath);
-            documentEncryptionDialog.dismiss();
-            int msgResId;
-            if (isRemoveSecurity) {
-                msgResId = result ? R.string.tools_password_remove_success : R.string.tools_password_remove_fail;
-            } else {
-                msgResId = result ? R.string.tools_set_password_successfully : R.string.tools_set_password_failures;
-            }
-            CToastUtil.showLongToast(this, msgResId);
-        });
-        documentEncryptionDialog.show(getSupportFragmentManager(), "documentEncryption");
-    }
-
-    @Override
-    protected void registerFormHelper(CPDFViewCtrl pdfView) {
-        super.registerFormHelper(pdfView);
-        pdfView.getCPdfReaderView().getAnnotImplRegistry()
-                // Register the CustomSignatureWidgetImpl.class to implement a custom dropdown options popup.
-                .registImpl(CPDFSignatureWidget.class, CSignatureWidgetImpl.class);
-    }
-
-    @Override
-    public void onBackPressed() {
-        if (binding.pdfView != null) {
-            binding.pdfView.savePDF((filePath, pdfUri) -> super.onBackPressed(), e -> super.onBackPressed());
-        } else {
-            super.onBackPressed();
-        }
-    }
-
-    public static class CSignatureWidgetImpl extends SignatureWidgetImpl {
-        @Override
-        protected CPreviewMode getCurrentMode() {
-            if (readerView.getContext() instanceof MainActivity) {
-                return ((MainActivity) readerView.getContext()).binding.pdfToolBar.getMode();
-            } else {
-                return CPreviewMode.Viewer;
-            }
-        }
-    }
-
-    interface CInitPDFRequestListener {
-        void success();
-    }
-}

+ 0 - 1
PDFViewer/src/main/java/com/compdfkit/pdfviewer/home/HomeActivity.java

@@ -15,7 +15,6 @@ import android.os.Bundle;
 import androidx.annotation.Nullable;
 import androidx.appcompat.app.AppCompatActivity;
 
-import com.compdfkit.core.document.CPDFSdk;
 import com.compdfkit.pdfviewer.R;
 import com.compdfkit.pdfviewer.databinding.ActivityHomeBinding;
 

+ 2 - 6
PDFViewer/src/main/java/com/compdfkit/pdfviewer/home/HomeFunFragment.java

@@ -9,7 +9,6 @@
 
 package com.compdfkit.pdfviewer.home;
 
-import android.content.Intent;
 import android.os.Bundle;
 import android.view.LayoutInflater;
 import android.view.View;
@@ -20,10 +19,10 @@ import androidx.annotation.Nullable;
 import androidx.fragment.app.Fragment;
 import androidx.recyclerview.widget.LinearLayoutManager;
 
-import com.compdfkit.pdfviewer.MainActivity;
 import com.compdfkit.pdfviewer.R;
 import com.compdfkit.pdfviewer.databinding.FragmentHomeBinding;
 import com.compdfkit.pdfviewer.home.datas.FunDatas;
+import com.compdfkit.tools.common.pdf.CPDFDocumentActivity;
 import com.compdfkit.tools.common.views.pdfview.CPreviewMode;
 import com.compdfkit.ui.utils.CPDFCommomUtils;
 
@@ -60,10 +59,7 @@ public class HomeFunFragment extends Fragment {
             }
             switch (homeFunBean.getType()) {
                 case SamplePDF:
-                    Intent intent = new Intent(getContext(), MainActivity.class);
-                    intent.putExtra(MainActivity.EXTRA_FILE_PATH, homeFunBean.getFilePath());
-                    intent.putExtra(MainActivity.EXTRA_CONFIGURATION, FunDatas.getConfiguration(getContext(), CPreviewMode.Viewer));
-                    startActivity(intent);
+                    CPDFDocumentActivity.startActivity(getContext(), homeFunBean.getFilePath(), "", FunDatas.getConfiguration(getContext(), CPreviewMode.Viewer));
                     break;
                 case Viewer:
                 case Annotations:

+ 0 - 1
PDFViewer/src/main/java/com/compdfkit/pdfviewer/home/samples/DocumentEncryptionSamplesImpl.java

@@ -17,7 +17,6 @@ import androidx.fragment.app.Fragment;
 import com.compdfkit.core.document.CPDFDocument;
 import com.compdfkit.pdfviewer.R;
 import com.compdfkit.pdfviewer.home.HomeFunBean;
-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.views.CVerifyPasswordDialogFragment;

+ 0 - 2
PDFViewer/src/main/java/com/compdfkit/pdfviewer/home/samples/OpenPDFSamplesImpl.java

@@ -10,13 +10,11 @@
 package com.compdfkit.pdfviewer.home.samples;
 
 
-import android.content.Intent;
 import android.net.Uri;
 import android.text.TextUtils;
 
 import androidx.fragment.app.Fragment;
 
-import com.compdfkit.pdfviewer.MainActivity;
 import com.compdfkit.pdfviewer.home.HomeFunBean;
 import com.compdfkit.pdfviewer.home.datas.FunDatas;
 import com.compdfkit.tools.common.pdf.CPDFDocumentActivity;

+ 0 - 109
PDFViewer/src/main/res/layout/pdf_sample_activity.xml

@@ -1,109 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:app="http://schemas.android.com/apk/res-auto"
-    xmlns:tools="http://schemas.android.com/tools"
-    android:layout_width="match_parent"
-    android:layout_height="match_parent"
-    tools:context=".MainActivity">
-
-    <com.compdfkit.tools.common.views.pdfview.CPDFViewCtrl
-        android:id="@+id/pdf_view"
-        android:layout_width="match_parent"
-        android:layout_height="0dp"
-        app:layout_constrainedHeight="true"
-        app:layout_constraintBottom_toTopOf="@id/fl_bottom_tool_bar"
-        app:layout_constraintTop_toBottomOf="@id/fl_tool"
-        app:tools_enable_page_indicator="true"
-        app:tools_enable_slider_bar="true"
-        app:tools_page_indicator_margin_bottom="20dp"
-        app:tools_slider_bar_icon="@drawable/tools_ic_pdf_slider_bar"
-        app:tools_slider_bar_position="right" />
-
-    <FrameLayout
-        android:id="@+id/fl_tool"
-        android:layout_width="match_parent"
-        android:layout_height="wrap_content"
-        android:background="@color/tools_color_primary"
-        android:elevation="4dp"
-        app:layout_constraintEnd_toEndOf="parent"
-        app:layout_constraintStart_toStartOf="parent"
-        app:layout_constraintTop_toTopOf="parent">
-
-        <com.compdfkit.tools.common.views.CPDFToolBar
-            android:id="@+id/pdf_tool_bar"
-            android:layout_width="match_parent"
-            android:layout_height="?android:attr/actionBarSize"
-            android:elevation="4dp"
-            android:title="@string/tools_pdf_viewer_mode"
-            app:layout_constraintEnd_toEndOf="parent"
-            app:layout_constraintStart_toStartOf="parent"
-            app:layout_constraintTop_toTopOf="parent" />
-
-        <com.compdfkit.tools.viewer.pdfsearch.CSearchToolbar
-            android:id="@+id/pdf_search_tool_bar"
-            android:layout_width="match_parent"
-            android:layout_height="?android:attr/actionBarSize"
-            android:visibility="gone"
-            app:layout_constraintEnd_toEndOf="parent"
-            app:layout_constraintStart_toStartOf="parent"
-            app:layout_constraintTop_toTopOf="parent" />
-
-    </FrameLayout>
-
-    <com.compdfkit.tools.annotation.pdfproperties.pdflnk.CInkCtrlView
-        android:id="@+id/ink_ctrl_view"
-        android:layout_width="match_parent"
-        android:layout_height="wrap_content"
-        android:layout_marginHorizontal="16dp"
-        android:visibility="gone"
-        app:layout_constraintTop_toBottomOf="@id/fl_tool" />
-
-    <com.compdfkit.tools.signature.verify.CVerifySignStatusView
-        android:id="@+id/sign_status_view"
-        android:layout_width="match_parent"
-        android:layout_height="wrap_content"
-        app:layout_constraintEnd_toEndOf="parent"
-        app:layout_constraintStart_toStartOf="parent"
-        app:layout_constraintTop_toBottomOf="@id/fl_tool"
-        android:visibility="gone"
-        tools:visibility="visible"
-        app:status="valid" />
-
-    <FrameLayout
-        android:id="@+id/fl_bottom_tool_bar"
-        android:layout_width="match_parent"
-        android:layout_height="wrap_content"
-        app:layout_constraintBottom_toBottomOf="parent"
-        app:layout_constraintEnd_toEndOf="parent"
-        app:layout_constraintStart_toStartOf="parent">
-
-        <com.compdfkit.tools.annotation.pdfannotationbar.CAnnotationToolbar
-            android:id="@+id/annotation_tool_bar"
-            android:layout_width="match_parent"
-            android:layout_height="?android:attr/actionBarSize"
-            />
-
-        <com.compdfkit.tools.contenteditor.CEditToolbar
-            android:id="@+id/edit_tool_bar"
-            android:layout_width="match_parent"
-            android:layout_height="?android:attr/actionBarSize"
-            />
-
-        <com.compdfkit.tools.forms.pdfformbar.CFormToolbar
-            android:id="@+id/form_tool_bar"
-            android:layout_width="match_parent"
-            android:layout_height="?android:attr/actionBarSize"
-            android:visibility="gone"
-            />
-
-        <com.compdfkit.tools.signature.CSignatureToolBar
-            android:id="@+id/signature_tool_bar"
-            android:layout_width="match_parent"
-            android:visibility="gone"
-            android:layout_height="?android:attr/actionBarSize"
-            app:layout_constraintBottom_toBottomOf="parent" />
-
-    </FrameLayout>
-
-
-</androidx.constraintlayout.widget.ConstraintLayout>

+ 1 - 1
PDFViewer/src/main/res/values/strings.xml

@@ -1,4 +1,4 @@
-<resources xmlns:tools="http://schemas.android.com/tools">
+<resources>
     <string name="app_name">ComPDFKit</string>
 
     <!--    Setting Activity start -->

+ 0 - 2
Samples/src/main/java/com/compdfkit/samples/samples/ImageExtractTest.java

@@ -16,8 +16,6 @@ import com.compdfkit.samples.util.FileUtils;
 import com.compdfkit.samples.util.OutputListener;
 
 import java.io.File;
-import java.util.stream.Collectors;
-import java.util.stream.IntStream;
 
 
 public class ImageExtractTest extends PDFSamples {

+ 0 - 3
Samples_kotlin/src/main/java/com/compdfkit/samples/SampleDetailActivity.kt

@@ -17,12 +17,9 @@ import android.widget.ScrollView
 import androidx.appcompat.app.AlertDialog
 import androidx.appcompat.app.AppCompatActivity
 import androidx.appcompat.widget.AppCompatTextView
-import androidx.lifecycle.lifecycleScope
 import com.compdfkit.samples.util.FileUtils
 import com.compdfkit.samples.util.LoggingOutputListener
 import com.google.android.material.button.MaterialButton
-import kotlinx.coroutines.Dispatchers
-import kotlinx.coroutines.launch
 import java.io.File
 
 open class SampleDetailActivity : AppCompatActivity() {

+ 0 - 1
Samples_kotlin/src/main/java/com/compdfkit/samples/samples/TextSearchTest.kt

@@ -23,7 +23,6 @@ import com.compdfkit.samples.PDFSamples
 import com.compdfkit.samples.R
 import com.compdfkit.samples.util.FileUtils.getAssetsTempFile
 import com.compdfkit.samples.util.OutputListener
-import com.compdfkit.ui.reader.CPDFReaderView
 import java.io.File
 
 class TextSearchTest : PDFSamples() {