Browse Source

PDFTools(Android) - 1.Bug修复

liuxiaolong 1 year ago
parent
commit
05fd672fa3
59 changed files with 233 additions and 154 deletions
  1. BIN
      Annotations/src/main/assets/Quick Start Guide V2.4.0.pdf
  2. 23 7
      ComPDFKit_Tools/src/main/java/com/compdfkit/tools/common/activity/CBasicActivity.java
  3. 1 1
      ComPDFKit_Tools/src/main/java/com/compdfkit/tools/common/contextmenu/impl/CEditTextContextMenuView.java
  4. 1 1
      ComPDFKit_Tools/src/main/java/com/compdfkit/tools/common/utils/annotation/CPDFAnnotationManager.java
  5. 9 9
      ComPDFKit_Tools/src/main/java/com/compdfkit/tools/common/views/pdfproperties/pdfstyle/CStyleFragmentDatas.java
  6. 4 4
      ComPDFKit_Tools/src/main/java/com/compdfkit/tools/common/views/pdfproperties/pdfstyle/manager/CStyleManager.java
  7. 1 1
      ComPDFKit_Tools/src/main/java/com/compdfkit/tools/edit/CEditToolbar.java
  8. 1 1
      ComPDFKit_Tools/src/main/java/com/compdfkit/tools/edit/CPDFEditType.java
  9. 1 1
      ComPDFKit_Tools/src/main/java/com/compdfkit/tools/edit/pdfproperties/CEditImagePropertiesFragment.java
  10. 1 1
      ComPDFKit_Tools/src/main/java/com/compdfkit/tools/edit/pdfproperties/CEditTextProperFragment.java
  11. 1 1
      ComPDFKit_Tools/src/main/java/com/compdfkit/tools/common/views/CPageEditBar.java
  12. 1 1
      ComPDFKit_Tools/src/main/java/com/compdfkit/tools/common/views/CPageEditToolBar.java
  13. 1 1
      ComPDFKit_Tools/src/main/java/com/compdfkit/tools/pageedit/drag/CDefaultItemTouchHelpCallback.java
  14. 1 1
      ComPDFKit_Tools/src/main/java/com/compdfkit/tools/pageedit/drag/CDefaultItemTouchHelper.java
  15. 1 1
      ComPDFKit_Tools/src/main/java/com/compdfkit/tools/pageedit/drag/CProItemTouchHelper.java
  16. 6 6
      ComPDFKit_Tools/src/main/java/com/compdfkit/tools/pageedit/pdfpageedit/CPDFPageEditDialogFragment.java
  17. 32 2
      ComPDFKit_Tools/src/main/java/com/compdfkit/tools/pageedit/pdfpageeditinsert/CInsertBlankPageDialogFragment.java
  18. 2 2
      ComPDFKit_Tools/src/main/java/com/compdfkit/tools/pageedit/pdfpageeditinsert/CInsertPdfPageDialogFragment.java
  19. 1 1
      ComPDFKit_Tools/src/main/java/com/compdfkit/tools/pageedit/pdfpageeditinsert/CSelectInsertPageTypeDialogFragment.java
  20. 4 4
      ComPDFKit_Tools/src/main/java/com/compdfkit/tools/form/pdfformbar/CFormToolbar.java
  21. 2 2
      ComPDFKit_Tools/src/main/java/com/compdfkit/tools/form/pdfformbar/adapter/CPDFFormToolListAdapter.java
  22. 1 1
      ComPDFKit_Tools/src/main/java/com/compdfkit/tools/form/pdfformbar/bean/CFormToolBean.java
  23. 2 2
      ComPDFKit_Tools/src/main/java/com/compdfkit/tools/form/pdfformbar/data/CFormToolDatas.java
  24. 1 1
      ComPDFKit_Tools/src/main/java/com/compdfkit/tools/form/pdfproperties/option/CWidgetItemBean.java
  25. 2 2
      ComPDFKit_Tools/src/main/java/com/compdfkit/tools/form/pdfproperties/option/edit/CFormEditItemsAdapter.java
  26. 2 2
      ComPDFKit_Tools/src/main/java/com/compdfkit/tools/form/pdfproperties/option/edit/CFormOptionEditFragment.java
  27. 2 2
      ComPDFKit_Tools/src/main/java/com/compdfkit/tools/form/pdfproperties/option/select/CFormOptionListAdapter.java
  28. 2 2
      ComPDFKit_Tools/src/main/java/com/compdfkit/tools/form/pdfproperties/option/select/CFormOptionSelectDialogFragment.java
  29. 1 1
      ComPDFKit_Tools/src/main/java/com/compdfkit/tools/form/pdfproperties/pdfcheckbox/CheckBoxStyleFragment.java
  30. 2 2
      ComPDFKit_Tools/src/main/java/com/compdfkit/tools/form/pdfproperties/pdfcheckbox/CheckBoxStyleListFragment.java
  31. 1 1
      ComPDFKit_Tools/src/main/java/com/compdfkit/tools/form/pdfproperties/pdfcheckbox/adapter/CheckStyleListAdapter.java
  32. 2 2
      ComPDFKit_Tools/src/main/java/com/compdfkit/tools/form/pdfproperties/pdfcombobox/ComboBoxStyleFragment.java
  33. 2 2
      ComPDFKit_Tools/src/main/java/com/compdfkit/tools/form/pdfproperties/pdfcombobox/CustomComboBoxWidgetImpl.java
  34. 1 1
      ComPDFKit_Tools/src/main/java/com/compdfkit/tools/form/pdfproperties/pdflistbox/CListBoxStyleFragment.java
  35. 2 2
      ComPDFKit_Tools/src/main/java/com/compdfkit/tools/form/pdfproperties/pdflistbox/CustomListBoxWidgetImpl.java
  36. 1 1
      ComPDFKit_Tools/src/main/java/com/compdfkit/tools/form/pdfproperties/pdfpushbutton/CPushButtonStyleFragment.java
  37. 2 2
      ComPDFKit_Tools/src/main/java/com/compdfkit/tools/form/pdfproperties/pdfradiobutton/CRadioButtonStyleFragment.java
  38. 1 1
      ComPDFKit_Tools/src/main/java/com/compdfkit/tools/form/pdfproperties/pdfsign/CustomSignatureWidgetImpl.java
  39. 1 1
      ComPDFKit_Tools/src/main/java/com/compdfkit/tools/form/pdfproperties/pdftextfield/CTextFieldStyleFragment.java
  40. 2 2
      ComPDFKit_Tools/src/main/java/com/compdfkit/tools/viewer/pdfthumbnail/CPDFEditThumbnailFragment.java
  41. 34 26
      ComPDFKit_Tools/src/main/java/com/compdfkit/tools/viewer/pdfthumbnail/adpater/CPDFEditThumbnailListAdapter.java
  42. 37 4
      ComPDFKit_Tools/src/main/java/com/compdfkit/tools/viewer/pdfthumbnail/adpater/CPDFThumbnailListAdapter.java
  43. 9 8
      ComPDFKit_Tools/src/main/res/layout/tools_bota_thumbnail_list_item.xml
  44. 13 20
      ComPDFKit_Tools/src/main/res/layout/tools_edit_thumbnail_list_item.xml
  45. 2 2
      ComPDFKit_Tools/src/main/res/layout/tools_page_edit_dialog_fragment.xml
  46. 1 1
      ComPDFKit_Tools/src/main/res/layout/tools_pageedit_insert_blank_page_dialog_fragment.xml
  47. 1 1
      ComPDFKit_Tools/src/main/res/layout/tools_pageedit_insert_pdf_page_dialog_fragment.xml
  48. BIN
      ContentEditor/src/main/assets/Quick Start Guide V2.4.0.pdf
  49. 3 3
      ContentEditor/src/main/java/com/compdfkit/contenteditor/PDFEditSampleActivity.java
  50. 1 1
      ContentEditor/src/main/res/layout/edit_pdf_sample_activity.xml
  51. 1 1
      DocsEditor/build.gradle
  52. BIN
      DocsEditor/src/main/assets/Quick Start Guide V2.4.0.pdf
  53. 1 1
      DocsEditor/src/main/java/com/compdfkit/docseditor/MainActivity.java
  54. BIN
      Forms/src/main/assets/Quick Start Guide V2.4.0.pdf
  55. 1 1
      Forms/src/main/res/layout/form_pdf_sample_activity.xml
  56. BIN
      PDFViewer/src/main/assets/Quick Start Guide V2.4.0.pdf
  57. 3 5
      PDFViewer/src/main/java/com/compdfkit/pdfviewer/MainActivity.java
  58. 2 2
      PDFViewer/src/main/res/layout/pdf_sample_activity.xml
  59. BIN
      Viewer/src/main/assets/Quick Start Guide V2.4.0.pdf

BIN
Annotations/src/main/assets/Quick Start Guide V2.4.0.pdf


+ 23 - 7
ComPDFKit_Tools/src/main/java/com/compdfkit/tools/common/activity/CBasicActivity.java

@@ -25,6 +25,7 @@ import com.compdfkit.core.annotation.form.CPDFComboboxWidget;
 import com.compdfkit.core.annotation.form.CPDFListboxWidget;
 import com.compdfkit.core.annotation.form.CPDFSignatureWidget;
 import com.compdfkit.core.annotation.form.CPDFWidget;
+import com.compdfkit.core.edit.CPDFEditManager;
 import com.compdfkit.tools.R;
 import com.compdfkit.tools.annotation.pdfproperties.pdflink.CLinkAnnotAttachHelper;
 import com.compdfkit.tools.annotation.pdfproperties.pdfnote.CPDFtextAnnotAttachHelper;
@@ -33,14 +34,17 @@ import com.compdfkit.tools.common.contextmenu.CPDFContextMenuHelper;
 import com.compdfkit.tools.common.contextmenu.impl.CEditImageContextMenuView;
 import com.compdfkit.tools.common.contextmenu.impl.CEditTextContextMenuView;
 import com.compdfkit.tools.common.utils.CFileUtils;
+import com.compdfkit.tools.common.views.pdfproperties.pdfstyle.CAnnotStyle;
 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.pdfproperties.pdfstyle.manager.provider.CGlobalStyleProvider;
 import com.compdfkit.tools.common.views.pdfview.CPDFViewCtrl;
 import com.compdfkit.tools.common.views.pdfview.CPreviewMode;
-import com.compdfkit.tools.form.pdfproperties.pdfcombobox.CustomComboBoxWidgetImpl;
-import com.compdfkit.tools.form.pdfproperties.pdflistbox.CustomListBoxWidgetImpl;
-import com.compdfkit.tools.form.pdfproperties.pdfsign.CustomSignatureWidgetImpl;
-import com.compdfkit.tools.pageedit.pdfpageedit.CPDFPageEditDialogFragment;
+import com.compdfkit.tools.contenteditor.CPDFEditType;
+import com.compdfkit.tools.forms.pdfproperties.pdfcombobox.CustomComboBoxWidgetImpl;
+import com.compdfkit.tools.forms.pdfproperties.pdflistbox.CustomListBoxWidgetImpl;
+import com.compdfkit.tools.forms.pdfproperties.pdfsign.CustomSignatureWidgetImpl;
+import com.compdfkit.tools.docseditor.pdfpageedit.CPDFPageEditDialogFragment;
 import com.compdfkit.tools.viewer.contextmenu.CopyContextMenuView;
 import com.compdfkit.tools.viewer.pdfdisplaysettings.CPDFDisplaySettingDialogFragment;
 import com.compdfkit.tools.viewer.pdfinfo.CPDFDocumentInfoDialogFragment;
@@ -109,12 +113,12 @@ public class CBasicActivity extends AppCompatActivity {
                 .setMarkup(CStyleType.ANNOT_SQUIGGLY, defaultColor, 255)
                 .setMarkup(CStyleType.ANNOT_STRIKEOUT, defaultColor, 255)
                 .setShape(CStyleType.ANNOT_SQUARE, defaultColor, 255, Color.TRANSPARENT, 0, 10, null)
-                .setShape(CStyleType.ANNOT_CIRCLE, defaultColor, 255, Color.TRANSPARENT, 255, 5, null)
+                .setShape(CStyleType.ANNOT_CIRCLE, defaultColor, 255, Color.TRANSPARENT, 0, 5, null)
                 .setShape(CStyleType.ANNOT_LINE, defaultColor, 255, defaultColor, 255, 5, null)
                 .setShapeArrow(defaultColor, 255, defaultColor, 255, 5, CPDFLineAnnotation.LineType.LINETYPE_NONE, CPDFLineAnnotation.LineType.LINETYPE_ARROW)
                 .setInkAttribute(defaultColor, 255, 10, 10)
                 .setFreeText(defaultColor, 255, 50)
-                .init(pdfView);
+                .init(pdfView, true);
     }
 
     protected void initFormAttr(CPDFViewCtrl pdfView) {
@@ -127,7 +131,7 @@ public class CBasicActivity extends AppCompatActivity {
                 .setComboBox(Color.TRANSPARENT, bgColor, Color.BLACK, 20, 2)
                 .setPushButton(Color.BLACK, Color.WHITE, Color.BLACK, 20, 2, "Push Button")
                 .setFormSignature(Color.TRANSPARENT, bgColor, 0)
-                .init(pdfView);
+                .init(pdfView, true);
     }
 
     protected void registerAnnotHelper(CPDFViewCtrl pdfView) {
@@ -171,11 +175,23 @@ public class CBasicActivity extends AppCompatActivity {
         });
     }
 
+    protected @CPDFEditType int curEditMode = CPDFEditType.EDIT_CLOSE;
+
+
     protected void showPageEdit(CPDFViewCtrl pdfView, boolean enterEdit) {
+        curEditMode = pdfView.getCPdfReaderView().getLoadType();
         pdfView.exitEditMode();
         CPDFPageEditDialogFragment pageEditDialogFragment = CPDFPageEditDialogFragment.newInstance();
         pageEditDialogFragment.initWithPDFView(pdfView);
         pageEditDialogFragment.setEnterEdit(enterEdit);
+        pageEditDialogFragment.setOnBackListener(()->{
+            if (curEditMode > 0) {
+                CPDFEditManager editManager = pdfView.getCPdfReaderView().getEditManager();
+                if (!editManager.isEditMode()) {
+                    editManager.beginEdit(curEditMode);
+                }
+            }
+        });
         pageEditDialogFragment.show(getSupportFragmentManager(), "pageEditDialogFragment");
     }
 }

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

@@ -32,7 +32,7 @@ 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.edit.CPDFEditType;
+import com.compdfkit.tools.contenteditor.CPDFEditType;
 import com.compdfkit.ui.edit.CPDFEditSelections;
 import com.compdfkit.ui.edit.CPDFEditTextSelections;
 import com.compdfkit.ui.reader.CPDFPageView;

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

@@ -36,7 +36,7 @@ import com.compdfkit.core.utils.TMathUtils;
 import com.compdfkit.tools.R;
 import com.compdfkit.tools.annotation.pdfproperties.pdfnote.CNoteEditDialog;
 import com.compdfkit.tools.common.views.pdfproperties.action.CActionEditDialogFragment;
-import com.compdfkit.tools.form.pdfproperties.option.edit.CFormOptionEditFragment;
+import com.compdfkit.tools.forms.pdfproperties.option.edit.CFormOptionEditFragment;
 import com.compdfkit.ui.attribute.CPDFFreetextAttr;
 import com.compdfkit.ui.proxy.CPDFBaseAnnotImpl;
 import com.compdfkit.ui.proxy.CPDFFreetextAnnotImpl;

+ 9 - 9
ComPDFKit_Tools/src/main/java/com/compdfkit/tools/common/views/pdfproperties/pdfstyle/CStyleFragmentDatas.java

@@ -23,15 +23,15 @@ import com.compdfkit.tools.annotation.pdfproperties.pdfsignature.CSignatureStyle
 import com.compdfkit.tools.annotation.pdfproperties.pdfstamp.CStampStyleFragment;
 import com.compdfkit.tools.common.utils.view.colorpicker.CColorPickerFragment;
 import com.compdfkit.tools.common.views.pdfproperties.basic.CBasicPropertiesFragment;
-import com.compdfkit.tools.edit.pdfproperties.CEditImagePropertiesFragment;
-import com.compdfkit.tools.edit.pdfproperties.CEditTextProperFragment;
-import com.compdfkit.tools.form.pdfproperties.pdfcheckbox.CheckBoxStyleFragment;
-import com.compdfkit.tools.form.pdfproperties.pdfcheckbox.CheckBoxStyleListFragment;
-import com.compdfkit.tools.form.pdfproperties.pdfcombobox.ComboBoxStyleFragment;
-import com.compdfkit.tools.form.pdfproperties.pdflistbox.CListBoxStyleFragment;
-import com.compdfkit.tools.form.pdfproperties.pdfpushbutton.CPushButtonStyleFragment;
-import com.compdfkit.tools.form.pdfproperties.pdfradiobutton.CRadioButtonStyleFragment;
-import com.compdfkit.tools.form.pdfproperties.pdftextfield.CTextFieldStyleFragment;
+import com.compdfkit.tools.contenteditor.pdfproperties.CEditImagePropertiesFragment;
+import com.compdfkit.tools.contenteditor.pdfproperties.CEditTextProperFragment;
+import com.compdfkit.tools.forms.pdfproperties.pdfcheckbox.CheckBoxStyleFragment;
+import com.compdfkit.tools.forms.pdfproperties.pdfcheckbox.CheckBoxStyleListFragment;
+import com.compdfkit.tools.forms.pdfproperties.pdfcombobox.ComboBoxStyleFragment;
+import com.compdfkit.tools.forms.pdfproperties.pdflistbox.CListBoxStyleFragment;
+import com.compdfkit.tools.forms.pdfproperties.pdfpushbutton.CPushButtonStyleFragment;
+import com.compdfkit.tools.forms.pdfproperties.pdfradiobutton.CRadioButtonStyleFragment;
+import com.compdfkit.tools.forms.pdfproperties.pdftextfield.CTextFieldStyleFragment;
 
 
 public class CStyleFragmentDatas {

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

@@ -476,13 +476,13 @@ public class CStyleManager implements CAnnotStyle.OnAnnotStyleChangeListener {
             create(pdfView, false).updateStyle(attrSet);
         }
 
-        public void onStore(CPDFViewCtrl pdfView) {
-            CStyleManager styleManager = create(pdfView, true);
+        public void onStore(CPDFViewCtrl pdfView, boolean onStore) {
+            CStyleManager styleManager = create(pdfView, onStore);
             styleManager.updateStyle(attrSet);
         }
 
-        public void init(CPDFViewCtrl pdfView) {
-            onStore(pdfView);
+        public void init(CPDFViewCtrl pdfView, boolean onStore) {
+            onStore(pdfView, onStore);
         }
     }
 }

+ 1 - 1
ComPDFKit_Tools/src/main/java/com/compdfkit/tools/edit/CEditToolbar.java

@@ -7,7 +7,7 @@
  * This notice may not be removed from this file.
  */
 
-package com.compdfkit.tools.edit;
+package com.compdfkit.tools.contenteditor;
 
 import android.content.Context;
 import android.util.AttributeSet;

+ 1 - 1
ComPDFKit_Tools/src/main/java/com/compdfkit/tools/edit/CPDFEditType.java

@@ -7,7 +7,7 @@
  * This notice may not be removed from this file.
  */
 
-package com.compdfkit.tools.edit;
+package com.compdfkit.tools.contenteditor;
 
 import androidx.annotation.IntDef;
 

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

@@ -7,7 +7,7 @@
  * This notice may not be removed from this file.
  */
 
-package com.compdfkit.tools.edit.pdfproperties;
+package com.compdfkit.tools.contenteditor.pdfproperties;
 
 import android.os.Bundle;
 import android.view.LayoutInflater;

+ 1 - 1
ComPDFKit_Tools/src/main/java/com/compdfkit/tools/edit/pdfproperties/CEditTextProperFragment.java

@@ -1,4 +1,4 @@
-package com.compdfkit.tools.edit.pdfproperties;
+package com.compdfkit.tools.contenteditor.pdfproperties;
 
 import android.os.Bundle;
 import android.text.TextUtils;

+ 1 - 1
ComPDFKit_Tools/src/main/java/com/compdfkit/tools/common/views/CPageEditBar.java

@@ -7,7 +7,7 @@
  * This notice may not be removed from this file.
  */
 
-package com.compdfkit.tools.common.views;
+package com.compdfkit.tools.docseditor;
 
 import android.content.Context;
 import android.content.res.TypedArray;

+ 1 - 1
ComPDFKit_Tools/src/main/java/com/compdfkit/tools/common/views/CPageEditToolBar.java

@@ -1,4 +1,4 @@
-package com.compdfkit.tools.common.views;
+package com.compdfkit.tools.docseditor;
 
 import android.content.Context;
 import android.util.AttributeSet;

+ 1 - 1
ComPDFKit_Tools/src/main/java/com/compdfkit/tools/pageedit/drag/CDefaultItemTouchHelpCallback.java

@@ -7,7 +7,7 @@
  * This notice may not be removed from this file.
  */
 
-package com.compdfkit.tools.pageedit.drag;
+package com.compdfkit.tools.docseditor.drag;
 
 
 import androidx.recyclerview.widget.GridLayoutManager;

+ 1 - 1
ComPDFKit_Tools/src/main/java/com/compdfkit/tools/pageedit/drag/CDefaultItemTouchHelper.java

@@ -7,7 +7,7 @@
  * This notice may not be removed from this file.
  */
 
-package com.compdfkit.tools.pageedit.drag;
+package com.compdfkit.tools.docseditor.drag;
 
 import androidx.recyclerview.widget.ItemTouchHelper;
 import androidx.recyclerview.widget.RecyclerView;

+ 1 - 1
ComPDFKit_Tools/src/main/java/com/compdfkit/tools/pageedit/drag/CProItemTouchHelper.java

@@ -7,7 +7,7 @@
  * This notice may not be removed from this file.
  */
 
-package com.compdfkit.tools.pageedit.drag;
+package com.compdfkit.tools.docseditor.drag;
 
 public class CProItemTouchHelper extends CDefaultItemTouchHelper {
     private CDefaultItemTouchHelpCallback itemTouchHelpCallback;

+ 6 - 6
ComPDFKit_Tools/src/main/java/com/compdfkit/tools/pageedit/pdfpageedit/CPDFPageEditDialogFragment.java

@@ -7,7 +7,7 @@
  * This notice may not be removed from this file.
  */
 
-package com.compdfkit.tools.pageedit.pdfpageedit;
+package com.compdfkit.tools.docseditor.pdfpageedit;
 
 import static com.compdfkit.core.document.CPDFDocument.PDFDocumentError.PDFDocumentErrorPassword;
 import static com.compdfkit.core.document.CPDFDocument.PDFDocumentError.PDFDocumentErrorSuccess;
@@ -38,13 +38,13 @@ import com.compdfkit.tools.common.utils.dialog.CAlertDialog;
 import com.compdfkit.tools.common.utils.dialog.CDialogFragmentUtil;
 import com.compdfkit.tools.common.utils.threadpools.CThreadPoolUtils;
 import com.compdfkit.tools.common.utils.viewutils.CViewUtils;
-import com.compdfkit.tools.common.views.CPageEditBar;
-import com.compdfkit.tools.common.views.CPageEditToolBar;
+import com.compdfkit.tools.docseditor.CPageEditBar;
+import com.compdfkit.tools.docseditor.CPageEditToolBar;
 import com.compdfkit.tools.common.views.CVerifyPasswordDialogFragment;
 import com.compdfkit.tools.common.views.pdfview.CPDFViewCtrl;
-import com.compdfkit.tools.pageedit.pdfpageeditinsert.CInsertBlankPageDialogFragment;
-import com.compdfkit.tools.pageedit.pdfpageeditinsert.CInsertPdfPageDialogFragment;
-import com.compdfkit.tools.pageedit.pdfpageeditinsert.CSelectInsertPageTypeDialogFragment;
+import com.compdfkit.tools.docseditor.pdfpageeditinsert.CInsertBlankPageDialogFragment;
+import com.compdfkit.tools.docseditor.pdfpageeditinsert.CInsertPdfPageDialogFragment;
+import com.compdfkit.tools.docseditor.pdfpageeditinsert.CSelectInsertPageTypeDialogFragment;
 import com.compdfkit.tools.viewer.pdfthumbnail.CPDFEditThumbnailFragment;
 import com.compdfkit.ui.reader.CPDFReaderView;
 import com.google.android.material.bottomsheet.BottomSheetBehavior;

+ 32 - 2
ComPDFKit_Tools/src/main/java/com/compdfkit/tools/pageedit/pdfpageeditinsert/CInsertBlankPageDialogFragment.java

@@ -1,8 +1,10 @@
-package com.compdfkit.tools.pageedit.pdfpageeditinsert;
+package com.compdfkit.tools.docseditor.pdfpageeditinsert;
 
 import android.annotation.SuppressLint;
 import android.os.Bundle;
+import android.text.Editable;
 import android.text.TextUtils;
+import android.text.TextWatcher;
 import android.view.LayoutInflater;
 import android.view.View;
 import android.view.ViewGroup;
@@ -23,7 +25,7 @@ import com.compdfkit.tools.common.utils.dialog.CDialogFragmentUtil;
 import com.compdfkit.tools.common.utils.threadpools.CThreadPoolUtils;
 import com.compdfkit.tools.common.utils.viewutils.CDimensUtils;
 import com.compdfkit.tools.common.utils.viewutils.CViewUtils;
-import com.compdfkit.tools.common.views.CPageEditBar;
+import com.compdfkit.tools.docseditor.CPageEditBar;
 import com.compdfkit.tools.common.views.pdfview.CPDFViewCtrl;
 import com.google.android.material.bottomsheet.BottomSheetBehavior;
 import com.google.android.material.bottomsheet.BottomSheetDialogFragment;
@@ -104,6 +106,22 @@ public class CInsertBlankPageDialogFragment extends BottomSheetDialogFragment im
                 CViewUtils.hideKeyboard(etInputPageIndex);
             }
         });
+        etInputPageIndex.addTextChangedListener(new TextWatcher() {
+            @Override
+            public void beforeTextChanged(CharSequence s, int start, int count, int after) {
+
+            }
+
+            @Override
+            public void onTextChanged(CharSequence s, int start, int before, int count) {
+                updateDoneBtnStatus();
+            }
+
+            @Override
+            public void afterTextChanged(Editable s) {
+
+            }
+        });
 
         toolBar.setBackBtnClickListener(v -> dismiss());
         toolBar.setOnDoneClickCallback(() -> CThreadPoolUtils.getInstance().execute(() -> {
@@ -241,19 +259,31 @@ public class CInsertBlankPageDialogFragment extends BottomSheetDialogFragment im
             }
         } else if (id == R.id.rb_tools_edit_page_insert_location_homepage) {
             etInputPageIndex.clearFocus();
+            updateDoneBtnStatus();
         } else if (id == R.id.rb_tools_edit_page_insert_location_lastpage) {
             etInputPageIndex.clearFocus();
+            updateDoneBtnStatus();
         } else if (id == R.id.rb_tools_edit_page_insert_location_before) {
             if (!etInputPageIndex.isFocused()) {
                 etInputPageIndex.requestFocus();
                 CViewUtils.showKeyboard(etInputPageIndex);
             }
+            updateDoneBtnStatus();
         } else if (id == R.id.rb_tools_edit_page_insert_location_after) {
             if (!etInputPageIndex.isFocused()) {
                 etInputPageIndex.requestFocus();
                 CViewUtils.showKeyboard(etInputPageIndex);
             }
+            updateDoneBtnStatus();
+        }
+    }
+
+    private void updateDoneBtnStatus() {
+        boolean enable = true;
+        if (rbToPageLocationAfter.isChecked() || rbToPageLocationBefore.isChecked()) {
+            enable = !TextUtils.isEmpty(etInputPageIndex.getText()) && !TextUtils.isEmpty(etInputPageIndex.getText().toString().trim());
         }
+        toolBar.enableDone(enable);
     }
 
     public void setOnEditDoneCallback(CPageEditBar.OnEditDoneCallback callback) {

+ 2 - 2
ComPDFKit_Tools/src/main/java/com/compdfkit/tools/pageedit/pdfpageeditinsert/CInsertPdfPageDialogFragment.java

@@ -1,4 +1,4 @@
-package com.compdfkit.tools.pageedit.pdfpageeditinsert;
+package com.compdfkit.tools.docseditor.pdfpageeditinsert;
 
 import static com.compdfkit.core.document.CPDFDocument.PDFDocumentError.PDFDocumentErrorPassword;
 import static com.compdfkit.core.document.CPDFDocument.PDFDocumentError.PDFDocumentErrorSuccess;
@@ -31,7 +31,7 @@ import com.compdfkit.tools.common.utils.CUriUtil;
 import com.compdfkit.tools.common.utils.dialog.CDialogFragmentUtil;
 import com.compdfkit.tools.common.utils.threadpools.CThreadPoolUtils;
 import com.compdfkit.tools.common.utils.viewutils.CViewUtils;
-import com.compdfkit.tools.common.views.CPageEditBar;
+import com.compdfkit.tools.docseditor.CPageEditBar;
 import com.compdfkit.tools.common.views.CVerifyPasswordDialogFragment;
 import com.compdfkit.tools.common.views.pdfview.CPDFViewCtrl;
 import com.google.android.material.bottomsheet.BottomSheetBehavior;

+ 1 - 1
ComPDFKit_Tools/src/main/java/com/compdfkit/tools/pageedit/pdfpageeditinsert/CSelectInsertPageTypeDialogFragment.java

@@ -1,4 +1,4 @@
-package com.compdfkit.tools.pageedit.pdfpageeditinsert;
+package com.compdfkit.tools.docseditor.pdfpageeditinsert;
 
 import android.os.Bundle;
 import android.view.LayoutInflater;

+ 4 - 4
ComPDFKit_Tools/src/main/java/com/compdfkit/tools/form/pdfformbar/CFormToolbar.java

@@ -7,7 +7,7 @@
  * This notice may not be removed from this file.
  */
 
-package com.compdfkit.tools.form.pdfformbar;
+package com.compdfkit.tools.forms.pdfformbar;
 
 
 import android.content.Context;
@@ -31,9 +31,9 @@ import com.compdfkit.core.undo.exception.CPDFUndoFailedException;
 import com.compdfkit.tools.R;
 import com.compdfkit.tools.common.interfaces.COnFormChangeListener;
 import com.compdfkit.tools.common.views.pdfview.CPDFViewCtrl;
-import com.compdfkit.tools.form.pdfformbar.adapter.CPDFFormToolListAdapter;
-import com.compdfkit.tools.form.pdfformbar.bean.CFormToolBean;
-import com.compdfkit.tools.form.pdfformbar.data.CFormToolDatas;
+import com.compdfkit.tools.forms.pdfformbar.adapter.CPDFFormToolListAdapter;
+import com.compdfkit.tools.forms.pdfformbar.bean.CFormToolBean;
+import com.compdfkit.tools.forms.pdfformbar.data.CFormToolDatas;
 import com.compdfkit.ui.contextmenu.IContextMenuShowListener;
 
 public class CFormToolbar extends FrameLayout {

+ 2 - 2
ComPDFKit_Tools/src/main/java/com/compdfkit/tools/form/pdfformbar/adapter/CPDFFormToolListAdapter.java

@@ -7,7 +7,7 @@
  * This notice may not be removed from this file.
  */
 
-package com.compdfkit.tools.form.pdfformbar.adapter;
+package com.compdfkit.tools.forms.pdfformbar.adapter;
 
 import android.content.Context;
 import android.content.res.ColorStateList;
@@ -23,7 +23,7 @@ import com.compdfkit.core.annotation.form.CPDFWidget;
 import com.compdfkit.tools.R;
 import com.compdfkit.tools.common.utils.adapter.CBaseQuickAdapter;
 import com.compdfkit.tools.common.utils.adapter.CBaseQuickViewHolder;
-import com.compdfkit.tools.form.pdfformbar.bean.CFormToolBean;
+import com.compdfkit.tools.forms.pdfformbar.bean.CFormToolBean;
 
 import java.util.List;
 

+ 1 - 1
ComPDFKit_Tools/src/main/java/com/compdfkit/tools/form/pdfformbar/bean/CFormToolBean.java

@@ -7,7 +7,7 @@
  * This notice may not be removed from this file.
  */
 
-package com.compdfkit.tools.form.pdfformbar.bean;
+package com.compdfkit.tools.forms.pdfformbar.bean;
 
 
 import android.graphics.Color;

+ 2 - 2
ComPDFKit_Tools/src/main/java/com/compdfkit/tools/form/pdfformbar/data/CFormToolDatas.java

@@ -1,10 +1,10 @@
-package com.compdfkit.tools.form.pdfformbar.data;
+package com.compdfkit.tools.forms.pdfformbar.data;
 
 
 import com.compdfkit.core.annotation.form.CPDFWidget;
 import com.compdfkit.tools.R;
 import com.compdfkit.tools.common.views.pdfview.CPDFViewCtrl;
-import com.compdfkit.tools.form.pdfformbar.bean.CFormToolBean;
+import com.compdfkit.tools.forms.pdfformbar.bean.CFormToolBean;
 
 import java.util.ArrayList;
 import java.util.List;

+ 1 - 1
ComPDFKit_Tools/src/main/java/com/compdfkit/tools/form/pdfproperties/option/CWidgetItemBean.java

@@ -7,7 +7,7 @@
  * This notice may not be removed from this file.
  */
 
-package com.compdfkit.tools.form.pdfproperties.option;
+package com.compdfkit.tools.forms.pdfproperties.option;
 
 
 public class CWidgetItemBean {

+ 2 - 2
ComPDFKit_Tools/src/main/java/com/compdfkit/tools/form/pdfproperties/option/edit/CFormEditItemsAdapter.java

@@ -7,7 +7,7 @@
  * This notice may not be removed from this file.
  */
 
-package com.compdfkit.tools.form.pdfproperties.option.edit;
+package com.compdfkit.tools.forms.pdfproperties.option.edit;
 
 import android.content.Context;
 import android.view.ViewGroup;
@@ -15,7 +15,7 @@ import android.view.ViewGroup;
 import com.compdfkit.tools.R;
 import com.compdfkit.tools.common.utils.adapter.CBaseQuickAdapter;
 import com.compdfkit.tools.common.utils.adapter.CBaseQuickViewHolder;
-import com.compdfkit.tools.form.pdfproperties.option.CWidgetItemBean;
+import com.compdfkit.tools.forms.pdfproperties.option.CWidgetItemBean;
 
 import java.util.Collections;
 import java.util.List;

+ 2 - 2
ComPDFKit_Tools/src/main/java/com/compdfkit/tools/form/pdfproperties/option/edit/CFormOptionEditFragment.java

@@ -7,7 +7,7 @@
  * This notice may not be removed from this file.
  */
 
-package com.compdfkit.tools.form.pdfproperties.option.edit;
+package com.compdfkit.tools.forms.pdfproperties.option.edit;
 
 
 import static androidx.recyclerview.widget.ItemTouchHelper.ACTION_STATE_IDLE;
@@ -33,7 +33,7 @@ import com.compdfkit.tools.common.utils.dialog.CEditDialog;
 import com.compdfkit.tools.common.utils.viewutils.CViewUtils;
 import com.compdfkit.tools.common.utils.window.CPopupMenuWindow;
 import com.compdfkit.tools.common.views.CToolBar;
-import com.compdfkit.tools.form.pdfproperties.option.CWidgetItemBean;
+import com.compdfkit.tools.forms.pdfproperties.option.CWidgetItemBean;
 import com.google.android.material.bottomsheet.BottomSheetBehavior;
 import com.google.android.material.bottomsheet.BottomSheetDialogFragment;
 import com.google.android.material.floatingactionbutton.FloatingActionButton;

+ 2 - 2
ComPDFKit_Tools/src/main/java/com/compdfkit/tools/form/pdfproperties/option/select/CFormOptionListAdapter.java

@@ -7,7 +7,7 @@
  * This notice may not be removed from this file.
  */
 
-package com.compdfkit.tools.form.pdfproperties.option.select;
+package com.compdfkit.tools.forms.pdfproperties.option.select;
 
 import android.content.Context;
 import android.view.ViewGroup;
@@ -15,7 +15,7 @@ import android.view.ViewGroup;
 import com.compdfkit.tools.R;
 import com.compdfkit.tools.common.utils.adapter.CBaseQuickAdapter;
 import com.compdfkit.tools.common.utils.adapter.CBaseQuickViewHolder;
-import com.compdfkit.tools.form.pdfproperties.option.CWidgetItemBean;
+import com.compdfkit.tools.forms.pdfproperties.option.CWidgetItemBean;
 
 
 public class CFormOptionListAdapter extends CBaseQuickAdapter<CWidgetItemBean, CBaseQuickViewHolder> {

+ 2 - 2
ComPDFKit_Tools/src/main/java/com/compdfkit/tools/form/pdfproperties/option/select/CFormOptionSelectDialogFragment.java

@@ -7,7 +7,7 @@
  * This notice may not be removed from this file.
  */
 
-package com.compdfkit.tools.form.pdfproperties.option.select;
+package com.compdfkit.tools.forms.pdfproperties.option.select;
 
 import android.os.Bundle;
 import android.view.LayoutInflater;
@@ -26,7 +26,7 @@ import com.compdfkit.core.annotation.form.CPDFWidgetItems;
 import com.compdfkit.tools.R;
 import com.compdfkit.tools.common.utils.dialog.CDialogFragmentUtil;
 import com.compdfkit.tools.common.utils.viewutils.CViewUtils;
-import com.compdfkit.tools.form.pdfproperties.option.CWidgetItemBean;
+import com.compdfkit.tools.forms.pdfproperties.option.CWidgetItemBean;
 import com.google.android.material.bottomsheet.BottomSheetBehavior;
 import com.google.android.material.bottomsheet.BottomSheetDialogFragment;
 

+ 1 - 1
ComPDFKit_Tools/src/main/java/com/compdfkit/tools/form/pdfproperties/pdfcheckbox/CheckBoxStyleFragment.java

@@ -7,7 +7,7 @@
  * This notice may not be removed from this file.
  */
 
-package com.compdfkit.tools.form.pdfproperties.pdfcheckbox;
+package com.compdfkit.tools.forms.pdfproperties.pdfcheckbox;
 
 import android.os.Bundle;
 import android.text.TextUtils;

+ 2 - 2
ComPDFKit_Tools/src/main/java/com/compdfkit/tools/form/pdfproperties/pdfcheckbox/CheckBoxStyleListFragment.java

@@ -7,7 +7,7 @@
  * This notice may not be removed from this file.
  */
 
-package com.compdfkit.tools.form.pdfproperties.pdfcheckbox;
+package com.compdfkit.tools.forms.pdfproperties.pdfcheckbox;
 
 import android.os.Bundle;
 import android.view.LayoutInflater;
@@ -22,7 +22,7 @@ import androidx.recyclerview.widget.RecyclerView;
 import com.compdfkit.core.annotation.form.CPDFWidget;
 import com.compdfkit.tools.R;
 import com.compdfkit.tools.common.views.pdfproperties.basic.CBasicPropertiesFragment;
-import com.compdfkit.tools.form.pdfproperties.pdfcheckbox.adapter.CheckStyleListAdapter;
+import com.compdfkit.tools.forms.pdfproperties.pdfcheckbox.adapter.CheckStyleListAdapter;
 
 
 public class CheckBoxStyleListFragment extends CBasicPropertiesFragment {

+ 1 - 1
ComPDFKit_Tools/src/main/java/com/compdfkit/tools/form/pdfproperties/pdfcheckbox/adapter/CheckStyleListAdapter.java

@@ -7,7 +7,7 @@
  * This notice may not be removed from this file.
  */
 
-package com.compdfkit.tools.form.pdfproperties.pdfcheckbox.adapter;
+package com.compdfkit.tools.forms.pdfproperties.pdfcheckbox.adapter;
 
 
 import android.content.Context;

+ 2 - 2
ComPDFKit_Tools/src/main/java/com/compdfkit/tools/form/pdfproperties/pdfcombobox/ComboBoxStyleFragment.java

@@ -7,9 +7,9 @@
  * This notice may not be removed from this file.
  */
 
-package com.compdfkit.tools.form.pdfproperties.pdfcombobox;
+package com.compdfkit.tools.forms.pdfproperties.pdfcombobox;
 
-import com.compdfkit.tools.form.pdfproperties.pdflistbox.CListBoxStyleFragment;
+import com.compdfkit.tools.forms.pdfproperties.pdflistbox.CListBoxStyleFragment;
 
 
 public class ComboBoxStyleFragment extends CListBoxStyleFragment {

+ 2 - 2
ComPDFKit_Tools/src/main/java/com/compdfkit/tools/form/pdfproperties/pdfcombobox/CustomComboBoxWidgetImpl.java

@@ -7,12 +7,12 @@
  * This notice may not be removed from this file.
  */
 
-package com.compdfkit.tools.form.pdfproperties.pdfcombobox;
+package com.compdfkit.tools.forms.pdfproperties.pdfcombobox;
 
 import androidx.fragment.app.FragmentActivity;
 
 import com.compdfkit.core.annotation.form.CPDFComboboxWidget;
-import com.compdfkit.tools.form.pdfproperties.option.select.CFormOptionSelectDialogFragment;
+import com.compdfkit.tools.forms.pdfproperties.option.select.CFormOptionSelectDialogFragment;
 import com.compdfkit.ui.proxy.form.CPDFComboboxWidgetImpl;
 
 

+ 1 - 1
ComPDFKit_Tools/src/main/java/com/compdfkit/tools/form/pdfproperties/pdflistbox/CListBoxStyleFragment.java

@@ -7,7 +7,7 @@
  * This notice may not be removed from this file.
  */
 
-package com.compdfkit.tools.form.pdfproperties.pdflistbox;
+package com.compdfkit.tools.forms.pdfproperties.pdflistbox;
 
 import android.os.Bundle;
 import android.text.TextUtils;

+ 2 - 2
ComPDFKit_Tools/src/main/java/com/compdfkit/tools/form/pdfproperties/pdflistbox/CustomListBoxWidgetImpl.java

@@ -7,13 +7,13 @@
  * This notice may not be removed from this file.
  */
 
-package com.compdfkit.tools.form.pdfproperties.pdflistbox;
+package com.compdfkit.tools.forms.pdfproperties.pdflistbox;
 
 
 import androidx.fragment.app.FragmentActivity;
 
 import com.compdfkit.core.annotation.form.CPDFListboxWidget;
-import com.compdfkit.tools.form.pdfproperties.option.select.CFormOptionSelectDialogFragment;
+import com.compdfkit.tools.forms.pdfproperties.option.select.CFormOptionSelectDialogFragment;
 import com.compdfkit.ui.proxy.form.CPDFListboxWidgetImpl;
 
 public class CustomListBoxWidgetImpl extends CPDFListboxWidgetImpl {

+ 1 - 1
ComPDFKit_Tools/src/main/java/com/compdfkit/tools/form/pdfproperties/pdfpushbutton/CPushButtonStyleFragment.java

@@ -7,7 +7,7 @@
  * This notice may not be removed from this file.
  */
 
-package com.compdfkit.tools.form.pdfproperties.pdfpushbutton;
+package com.compdfkit.tools.forms.pdfproperties.pdfpushbutton;
 
 import android.os.Bundle;
 import android.text.Editable;

+ 2 - 2
ComPDFKit_Tools/src/main/java/com/compdfkit/tools/form/pdfproperties/pdfradiobutton/CRadioButtonStyleFragment.java

@@ -7,9 +7,9 @@
  * This notice may not be removed from this file.
  */
 
-package com.compdfkit.tools.form.pdfproperties.pdfradiobutton;
+package com.compdfkit.tools.forms.pdfproperties.pdfradiobutton;
 
-import com.compdfkit.tools.form.pdfproperties.pdfcheckbox.CheckBoxStyleFragment;
+import com.compdfkit.tools.forms.pdfproperties.pdfcheckbox.CheckBoxStyleFragment;
 
 
 public class CRadioButtonStyleFragment extends CheckBoxStyleFragment {

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

@@ -7,7 +7,7 @@
  * This notice may not be removed from this file.
  */
 
-package com.compdfkit.tools.form.pdfproperties.pdfsign;
+package com.compdfkit.tools.forms.pdfproperties.pdfsign;
 
 import android.graphics.Bitmap;
 import android.graphics.BitmapFactory;

+ 1 - 1
ComPDFKit_Tools/src/main/java/com/compdfkit/tools/form/pdfproperties/pdftextfield/CTextFieldStyleFragment.java

@@ -7,7 +7,7 @@
  * This notice may not be removed from this file.
  */
 
-package com.compdfkit.tools.form.pdfproperties.pdftextfield;
+package com.compdfkit.tools.forms.pdfproperties.pdftextfield;
 
 import android.os.Bundle;
 import android.text.Editable;

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

@@ -26,8 +26,8 @@ import com.compdfkit.tools.R;
 import com.compdfkit.tools.common.interfaces.COnSetPDFDisplayPageIndexListener;
 import com.compdfkit.tools.common.utils.adapter.COnRecyclerItemClickListener;
 import com.compdfkit.tools.common.views.pdfview.CPDFViewCtrl;
-import com.compdfkit.tools.pageedit.drag.CProItemTouchHelper;
-import com.compdfkit.tools.pageedit.pdfpageedit.CPDFPageEditDialogFragment;
+import com.compdfkit.tools.docseditor.drag.CProItemTouchHelper;
+import com.compdfkit.tools.docseditor.pdfpageedit.CPDFPageEditDialogFragment;
 import com.compdfkit.tools.viewer.pdfthumbnail.adpater.CPDFEditThumbnailListAdapter;
 
 public class CPDFEditThumbnailFragment extends Fragment {

+ 34 - 26
ComPDFKit_Tools/src/main/java/com/compdfkit/tools/viewer/pdfthumbnail/adpater/CPDFEditThumbnailListAdapter.java

@@ -10,6 +10,8 @@
 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;
 import android.util.SparseIntArray;
 import android.view.LayoutInflater;
@@ -18,6 +20,7 @@ import android.view.ViewGroup;
 import android.widget.CheckBox;
 
 import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
 import androidx.appcompat.widget.AppCompatImageView;
 import androidx.appcompat.widget.AppCompatTextView;
 import androidx.cardview.widget.CardView;
@@ -27,12 +30,14 @@ import androidx.recyclerview.widget.RecyclerView;
 import com.bumptech.glide.Glide;
 import com.bumptech.glide.load.engine.DiskCacheStrategy;
 import com.bumptech.glide.load.resource.drawable.DrawableTransitionOptions;
+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;
-import com.compdfkit.tools.pageedit.drag.CDefaultItemTouchHelpCallback;
+import com.compdfkit.tools.docseditor.drag.CDefaultItemTouchHelpCallback;
 
 import java.util.ArrayList;
 import java.util.List;
@@ -64,29 +69,36 @@ public class CPDFEditThumbnailListAdapter extends RecyclerView.Adapter<CPDFEditT
 
     @Override
     public void onBindViewHolder(@NonNull CPDFEditThumbnailListAdapter.CPDFThumbnailItemViewHolder holder, int position) {
-        AppCompatImageView ivThumbnail = null;
         CPDFPage tpdfPage = cPdfDocument.pageAtIndex(position);
-        if (tpdfPage != null) {
-            int rotate = tpdfPage.getRotation();
-            if (rotate == 90 || rotate == 270) {
-                ivThumbnail = holder.ivThumbnailImageRotate;
-                holder.ivThumbnailImageRotate.setVisibility(View.VISIBLE);
-                holder.ivThumbnailImage.setVisibility(View.GONE);
-            } else {
-                ivThumbnail = holder.ivThumbnailImage;
-                holder.ivThumbnailImageRotate.setVisibility(View.GONE);
-                holder.ivThumbnailImage.setVisibility(View.VISIBLE);
-            }
-        } else {
-            ivThumbnail = holder.ivThumbnailImage;
-            holder.ivThumbnailImageRotate.setVisibility(View.GONE);
-            holder.ivThumbnailImage.setVisibility(View.VISIBLE);
-        }
         Glide.with(holder.itemView.getContext())
                 .load(CPDFWrapper.fromDocument(cPdfDocument, position))
                 .diskCacheStrategy(DiskCacheStrategy.NONE)
-                .transition(DrawableTransitionOptions.withCrossFade())
-                .into(ivThumbnail);
+                .into(new CustomTarget<Drawable>() {
+                    @Override
+                    public void onResourceReady(@NonNull Drawable resource, @Nullable Transition<? super Drawable> transition) {
+                        RectF rectF = cPdfDocument.pageAtIndex(position).getSize();
+                        float itemWidth = holder.clItem.getMeasuredWidth();
+                        float itemHeight = holder.clItem.getMeasuredHeight();
+                        float imageWidth = itemWidth;
+                        float imageHeight = ((float)imageWidth / (float) rectF.width()) * rectF.height();
+
+                        if (imageHeight > itemHeight){
+                            imageHeight = itemHeight;
+                            imageWidth = (imageHeight / rectF.height()) * rectF.width();
+                        }
+                        ConstraintLayout.LayoutParams layoutParams = (ConstraintLayout.LayoutParams) holder.clThumbnail.getLayoutParams();
+                        layoutParams.width = (int) imageWidth;
+                        layoutParams.height = (int) imageHeight;
+                        holder.clThumbnail.setLayoutParams(layoutParams);
+                        holder.ivThumbnailImage.setImageDrawable(resource);
+                    }
+
+                    @Override
+                    public void onLoadCleared(@Nullable Drawable placeholder) {
+
+                    }
+                });
+
         holder.tvPageIndex.setText(String.valueOf(holder.getAdapterPosition() + 1));
         updateSelectStatus(holder);
     }
@@ -323,22 +335,18 @@ public class CPDFEditThumbnailListAdapter extends RecyclerView.Adapter<CPDFEditT
 
     static class CPDFThumbnailItemViewHolder extends RecyclerView.ViewHolder {
         private AppCompatImageView ivThumbnailImage;
-        private AppCompatImageView ivThumbnailImageRotate;
         private AppCompatTextView tvPageIndex;
-
-        private CardView cardView;
-
         private ConstraintLayout clThumbnail;
         private CheckBox cbSelect;
 
+        private ConstraintLayout clItem;
         public CPDFThumbnailItemViewHolder(@NonNull View itemView) {
             super(itemView);
             ivThumbnailImage = itemView.findViewById(R.id.iv_thumbnail);
-            ivThumbnailImageRotate = itemView.findViewById(R.id.iv_thumbnail_rotate);
             tvPageIndex = itemView.findViewById(R.id.tv_thumbnail_page_index);
-            cardView = itemView.findViewById(R.id.card_view);
             clThumbnail = itemView.findViewById(R.id.cl_thumbnail);
             cbSelect = itemView.findViewById(R.id.ic_check);
+            clItem = itemView.findViewById(R.id.cl_item);
         }
     }
 

+ 37 - 4
ComPDFKit_Tools/src/main/java/com/compdfkit/tools/viewer/pdfthumbnail/adpater/CPDFThumbnailListAdapter.java

@@ -9,11 +9,14 @@
 
 package com.compdfkit.tools.viewer.pdfthumbnail.adpater;
 
+import android.graphics.RectF;
+import android.graphics.drawable.Drawable;
 import android.view.LayoutInflater;
 import android.view.View;
 import android.view.ViewGroup;
 
 import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
 import androidx.appcompat.widget.AppCompatImageView;
 import androidx.appcompat.widget.AppCompatTextView;
 import androidx.cardview.widget.CardView;
@@ -22,6 +25,8 @@ import androidx.recyclerview.widget.RecyclerView;
 
 import com.bumptech.glide.Glide;
 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.tools.R;
 import com.compdfkit.tools.common.interfaces.COnSetPDFDisplayPageIndexListener;
@@ -53,18 +58,46 @@ public class CPDFThumbnailListAdapter extends RecyclerView.Adapter<CPDFThumbnail
 
     @Override
     public void onBindViewHolder(@NonNull CPDFThumbnailItemViewHolder holder, int position) {
+
         Glide.with(holder.itemView.getContext())
                 .load(CPDFWrapper.fromDocument(cPdfDocument, position))
                 .diskCacheStrategy(DiskCacheStrategy.NONE)
-                .into(holder.ivThumbnailImage);
+                .into(new CustomTarget<Drawable>() {
+                    @Override
+                    public void onResourceReady(@NonNull Drawable resource, @Nullable Transition<? super Drawable> transition) {
+                        RectF rectF = cPdfDocument.pageAtIndex(position).getSize();
+                        float itemWidth = holder.clItem.getMeasuredWidth();
+                        float itemHeight = holder.clItem.getMeasuredHeight();
+
+                        float imageWidth = itemWidth;
+                        float imageHeight = ((float)imageWidth / (float) rectF.width()) * rectF.height();
+
+                        if (imageHeight > itemHeight){
+                            imageHeight = itemHeight;
+                            imageWidth = (imageHeight / rectF.height()) * rectF.width();
+                        }
+                        ConstraintLayout.LayoutParams layoutParams = (ConstraintLayout.LayoutParams) holder.clThumbnail.getLayoutParams();
+                        layoutParams.width = (int) imageWidth;
+                        layoutParams.height = (int) imageHeight;
+                        holder.clThumbnail.setLayoutParams(layoutParams);
+                        holder.ivThumbnailImage.setImageDrawable(resource);
+                    }
+
+                    @Override
+                    public void onLoadCleared(@Nullable Drawable placeholder) {
+
+                    }
+                });
+
         holder.tvPageIndex.setText(String.valueOf(holder.getAdapterPosition() + 1));
         holder.tvPageIndex.setSelected(holder.getAdapterPosition() == currentPageIndex);
         holder.clThumbnail.setSelected(holder.getAdapterPosition() == currentPageIndex);
-        holder.cardView.setOnClickListener(v -> {
+        holder.clItem.setOnClickListener(v -> {
             if (displayPageIndexListener != null) {
                 displayPageIndexListener.displayPage(holder.getAdapterPosition());
             }
         });
+
     }
 
 
@@ -81,7 +114,7 @@ public class CPDFThumbnailListAdapter extends RecyclerView.Adapter<CPDFThumbnail
         private AppCompatImageView ivThumbnailImage;
         private AppCompatTextView tvPageIndex;
 
-        private CardView cardView;
+        private ConstraintLayout clItem;
 
         private ConstraintLayout clThumbnail;
 
@@ -89,7 +122,7 @@ public class CPDFThumbnailListAdapter extends RecyclerView.Adapter<CPDFThumbnail
             super(itemView);
             ivThumbnailImage = itemView.findViewById(R.id.iv_thumbnail);
             tvPageIndex = itemView.findViewById(R.id.tv_thumbnail_page_index);
-            cardView = itemView.findViewById(R.id.card_view);
+            clItem = itemView.findViewById(R.id.cl_item);
             clThumbnail = itemView.findViewById(R.id.cl_thumbnail);
         }
     }

+ 9 - 8
ComPDFKit_Tools/src/main/res/layout/tools_bota_thumbnail_list_item.xml

@@ -6,14 +6,10 @@
     android:layout_height="wrap_content"
     android:layout_margin="4dp">
 
-    <androidx.cardview.widget.CardView
-        android:id="@+id/card_view"
+    <androidx.constraintlayout.widget.ConstraintLayout
+        android:id="@+id/cl_item"
         android:layout_width="match_parent"
         android:layout_height="0dp"
-        android:foreground="@drawable/tools_common_btn_rectangle_ripple"
-        app:cardBackgroundColor="@color/tools_color_background"
-        app:cardElevation="0dp"
-        app:cardUseCompatPadding="true"
         app:layout_constraintDimensionRatio="104:134"
         app:layout_constraintEnd_toEndOf="parent"
         app:layout_constraintStart_toStartOf="parent"
@@ -23,6 +19,11 @@
             android:id="@+id/cl_thumbnail"
             android:layout_width="match_parent"
             android:layout_height="match_parent"
+            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"
             android:background="@drawable/tools_thumbnail_item_bg">
 
             <androidx.appcompat.widget.AppCompatImageView
@@ -36,7 +37,7 @@
         </androidx.constraintlayout.widget.ConstraintLayout>
 
 
-    </androidx.cardview.widget.CardView>
+    </androidx.constraintlayout.widget.ConstraintLayout>
 
     <androidx.appcompat.widget.AppCompatTextView
         android:id="@+id/tv_thumbnail_page_index"
@@ -50,7 +51,7 @@
         app:layout_constraintBottom_toBottomOf="parent"
         app:layout_constraintEnd_toEndOf="parent"
         app:layout_constraintStart_toStartOf="parent"
-        app:layout_constraintTop_toBottomOf="@id/card_view"
+        app:layout_constraintTop_toBottomOf="@id/cl_item"
         tools:text="1" />
 
 

+ 13 - 20
ComPDFKit_Tools/src/main/res/layout/tools_edit_thumbnail_list_item.xml

@@ -6,14 +6,10 @@
     android:layout_height="wrap_content"
     android:layout_margin="4dp">
 
-    <androidx.cardview.widget.CardView
-        android:id="@+id/card_view"
+    <androidx.constraintlayout.widget.ConstraintLayout
+        android:id="@+id/cl_item"
         android:layout_width="match_parent"
         android:layout_height="0dp"
-        android:foreground="@drawable/tools_common_btn_rectangle_ripple"
-        app:cardBackgroundColor="@color/tools_color_background"
-        app:cardElevation="0dp"
-        app:cardUseCompatPadding="true"
         app:layout_constraintDimensionRatio="104:134"
         app:layout_constraintEnd_toEndOf="parent"
         app:layout_constraintStart_toStartOf="parent"
@@ -23,7 +19,15 @@
             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"
+            >
 
             <androidx.appcompat.widget.AppCompatImageView
                 android:id="@+id/iv_thumbnail"
@@ -33,17 +37,6 @@
                 android:scaleType="fitCenter"
                 tools:src="@tools:sample/avatars" />
 
-            <androidx.appcompat.widget.AppCompatImageView
-                android:id="@+id/iv_thumbnail_rotate"
-                android:layout_width="match_parent"
-                android:layout_height="0dp"
-                app:layout_constraintDimensionRatio="134:104"
-                android:layout_margin="2dp"
-                android:scaleType="fitCenter"
-                android:visibility="gone"
-                app:layout_constraintTop_toTopOf="parent"
-                app:layout_constraintBottom_toBottomOf="parent"
-                tools:src="@tools:sample/avatars" />
             <CheckBox
                 android:id="@+id/ic_check"
                 app:layout_constraintStart_toStartOf="parent"
@@ -54,7 +47,7 @@
         </androidx.constraintlayout.widget.ConstraintLayout>
 
 
-    </androidx.cardview.widget.CardView>
+    </androidx.constraintlayout.widget.ConstraintLayout>
 
     <androidx.appcompat.widget.AppCompatTextView
         android:id="@+id/tv_thumbnail_page_index"
@@ -68,7 +61,7 @@
         app:layout_constraintBottom_toBottomOf="parent"
         app:layout_constraintEnd_toEndOf="parent"
         app:layout_constraintStart_toStartOf="parent"
-        app:layout_constraintTop_toBottomOf="@id/card_view"
+        app:layout_constraintTop_toBottomOf="@id/cl_item"
         tools:text="1" />
 
 

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

@@ -5,7 +5,7 @@
     android:layout_height="match_parent"
     xmlns:tools="http://schemas.android.com/tools">
 
-    <com.compdfkit.tools.common.views.CPageEditBar
+    <com.compdfkit.tools.docseditor.CPageEditBar
         android:id="@+id/tool_bar"
         android:layout_width="match_parent"
         android:layout_height="?android:attr/actionBarSize"
@@ -25,7 +25,7 @@
         app:layout_constraintBottom_toTopOf="@+id/tool_page_edit_bar"
         app:layout_constraintTop_toBottomOf="@id/tool_bar"/>
 
-    <com.compdfkit.tools.common.views.CPageEditToolBar
+    <com.compdfkit.tools.docseditor.CPageEditToolBar
         android:id="@+id/tool_page_edit_bar"
         android:layout_width="match_parent"
         android:layout_height="56dp"

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

@@ -4,7 +4,7 @@
     android:layout_width="match_parent"
     android:layout_height="match_parent">
 
-    <com.compdfkit.tools.common.views.CPageEditBar
+    <com.compdfkit.tools.docseditor.CPageEditBar
         android:id="@+id/page_edit_tool_bar"
         android:layout_width="match_parent"
         android:layout_height="?android:attr/actionBarSize"

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

@@ -4,7 +4,7 @@
     android:layout_width="match_parent"
     android:layout_height="match_parent">
 
-    <com.compdfkit.tools.common.views.CPageEditBar
+    <com.compdfkit.tools.docseditor.CPageEditBar
         android:id="@+id/page_edit_tool_bar"
         android:layout_width="match_parent"
         android:layout_height="?android:attr/actionBarSize"

BIN
ContentEditor/src/main/assets/Quick Start Guide V2.4.0.pdf


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

@@ -8,8 +8,8 @@
  */
 package com.compdfkit.contenteditor;
 
-import static com.compdfkit.tools.edit.CEditToolbar.SELECT_AREA_IMAGE;
-import static com.compdfkit.tools.edit.CEditToolbar.SELECT_AREA_TEXT;
+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;
 
@@ -43,7 +43,7 @@ import com.compdfkit.tools.common.views.pdfproperties.pdfstyle.CStyleDialogFragm
 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.edit.CPDFEditType;
+import com.compdfkit.tools.contenteditor.CPDFEditType;
 import com.compdfkit.tools.viewer.pdfsearch.CSearchResultDialogFragment;
 import com.compdfkit.ui.reader.CPDFPageView;
 import com.compdfkit.ui.reader.CPDFReaderView;

+ 1 - 1
ContentEditor/src/main/res/layout/edit_pdf_sample_activity.xml

@@ -62,7 +62,7 @@
         app:layout_constraintEnd_toEndOf="parent"
         app:layout_constraintStart_toStartOf="parent">
 
-        <com.compdfkit.tools.edit.CEditToolbar
+        <com.compdfkit.tools.contenteditor.CEditToolbar
             android:id="@+id/pdf_edit_tool_bar"
             android:layout_width="match_parent"
             android:layout_height="?android:attr/actionBarSize"

+ 1 - 1
DocsEditor/build.gradle

@@ -5,7 +5,7 @@ plugins {
 android {
     namespace 'com.compdfkit.docseditor'
     compileSdk rootProject.ext.android.COMPILESDK
-    resourcePrefix 'pageedit_'
+    resourcePrefix 'doceditor_'
 
     defaultConfig {
         applicationId "com.compdfkit.docseditor"

BIN
DocsEditor/src/main/assets/Quick Start Guide V2.4.0.pdf


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

@@ -20,7 +20,7 @@ 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.pdfview.CPreviewMode;
-import com.compdfkit.tools.pageedit.pdfpageedit.CPDFPageEditDialogFragment;
+import com.compdfkit.tools.docseditor.pdfpageedit.CPDFPageEditDialogFragment;
 import com.compdfkit.tools.viewer.pdfsearch.CSearchResultDialogFragment;
 
 import java.util.ArrayList;

BIN
Forms/src/main/assets/Quick Start Guide V2.4.0.pdf


+ 1 - 1
Forms/src/main/res/layout/form_pdf_sample_activity.xml

@@ -51,7 +51,7 @@
 
     </FrameLayout>
 
-    <com.compdfkit.tools.form.pdfformbar.CFormToolbar
+    <com.compdfkit.tools.forms.pdfformbar.CFormToolbar
         android:id="@+id/form_tool_bar"
         android:layout_width="match_parent"
         android:layout_height="?android:attr/actionBarSize"

BIN
PDFViewer/src/main/assets/Quick Start Guide V2.4.0.pdf


+ 3 - 5
PDFViewer/src/main/java/com/compdfkit/pdfviewer/MainActivity.java

@@ -8,8 +8,8 @@
  */
 package com.compdfkit.pdfviewer;
 
-import static com.compdfkit.tools.edit.CEditToolbar.SELECT_AREA_IMAGE;
-import static com.compdfkit.tools.edit.CEditToolbar.SELECT_AREA_TEXT;
+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;
 
@@ -46,7 +46,7 @@ import com.compdfkit.tools.common.views.pdfproperties.pdfstyle.CStyleDialogFragm
 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.edit.CPDFEditType;
+import com.compdfkit.tools.contenteditor.CPDFEditType;
 import com.compdfkit.tools.viewer.pdfsearch.CSearchResultDialogFragment;
 import com.compdfkit.ui.contextmenu.IContextMenuShowListener;
 import com.compdfkit.ui.proxy.form.CPDFComboboxWidgetImpl;
@@ -98,8 +98,6 @@ public class MainActivity extends CBasicActivity {
 
     private final static int RC_PERMISSION_PERM = 111;
 
-    private @CPDFEditType int curEditMode = CPDFEditType.EDIT_CLOSE;
-
     @Override
     protected void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);

+ 2 - 2
PDFViewer/src/main/res/layout/pdf_sample_activity.xml

@@ -74,13 +74,13 @@
             android:layout_height="?android:attr/actionBarSize"
             />
 
-        <com.compdfkit.tools.edit.CEditToolbar
+        <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.form.pdfformbar.CFormToolbar
+        <com.compdfkit.tools.forms.pdfformbar.CFormToolbar
             android:id="@+id/form_tool_bar"
             android:layout_width="match_parent"
             android:layout_height="?android:attr/actionBarSize"

BIN
Viewer/src/main/assets/Quick Start Guide V2.4.0.pdf