Sfoglia il codice sorgente

PDFTool(Android) - 修复内容编辑搜索替换返回崩溃问题,保存DCIM目录失败问题

liuxiaolong 5 mesi fa
parent
commit
7abc568e21

BIN
ComPDFKit_Repo/compdfkit/ComPDFKit.aar


+ 2 - 2
ComPDFKit_Tools/build.gradle

@@ -54,8 +54,8 @@ dependencies {
     api project(path:':ComPDFKit_Repo:compdfkit')
     api project(path:':ComPDFKit_Repo:compdfkit-ui')
     // or use
-//    api ('com.compdf:compdfkit:2.1.2')
-//    api ('com.compdf:compdfkit-ui:2.1.2')
+//    api ('com.compdf:compdfkit:2.1.1')
+//    api ('com.compdf:compdfkit-ui:2.1.1')
     api 'com.github.bumptech.glide:glide:4.15.1'
     annotationProcessor 'com.github.bumptech.glide:compiler:4.15.1'
     api 'androidx.documentfile:documentfile:1.0.1'

+ 17 - 13
ComPDFKit_Tools/src/main/java/com/compdfkit/tools/common/pdf/CPDFDocumentFragment.java

@@ -407,14 +407,7 @@ public class CPDFDocumentFragment extends CBasicPDFFragment {
                         });
                         break;
                     case Thumbnail:
-                        pdfToolBar.addAction(R.drawable.tools_ic_thumbnail, v -> showPageEdit(pdfView, false, () -> {
-                            if (curEditMode > CPDFEditPage.LoadNone && pdfToolBar.getMode() == CPreviewMode.Edit) {
-                                CPDFEditManager editManager = pdfView.getCPdfReaderView().getEditManager();
-                                if (!editManager.isEditMode()) {
-                                    editManager.beginEdit(curEditMode);
-                                }
-                            }
-                        }));
+                        pdfToolBar.addAction(R.drawable.tools_ic_thumbnail, v -> showPageEdit(pdfView, false, () -> restoreEdit()));
                         break;
                     case Search:
                         pdfToolBar.addAction(R.drawable.tools_ic_search, v -> {
@@ -440,6 +433,11 @@ public class CPDFDocumentFragment extends CBasicPDFFragment {
                     case Bota:
                         pdfToolBar.addAction(R.drawable.tools_ic_bookmark, v -> {
                             pdfView.getCPdfReaderView().removeAllAnnotFocus();
+                            if (pdfView.getCPdfReaderView().getEditManager().isEditMode()) {
+                                curEditMode = pdfView.getCPdfReaderView().getLoadType();
+                            } else {
+                                curEditMode = CPDFEditPage.LoadNone;
+                            }
                             pdfView.exitEditMode();
                             ArrayList<CPDFBotaFragmentTabs> tabs = new ArrayList<>();
                             CPDFBotaFragmentTabs annotationTab = new CPDFBotaFragmentTabs(CPDFBOTA.ANNOTATION, getString(R.string.tools_annotations));
@@ -459,6 +457,7 @@ public class CPDFDocumentFragment extends CBasicPDFFragment {
                             CPDFBotaDialogFragment dialogFragment = CPDFBotaDialogFragment.newInstance();
                             dialogFragment.initWithPDFView(pdfView);
                             dialogFragment.setBotaDialogTabs(tabs);
+                            dialogFragment.setDismissListener(this::restoreEdit);
                             dialogFragment.show(getChildFragmentManager(), "annotationList");
                         });
                         break;
@@ -522,11 +521,7 @@ public class CPDFDocumentFragment extends CBasicPDFFragment {
         pdfSearchToolBarView.initWithPDFView(pdfView);
         pdfSearchToolBarView.setExitSearchListener(() -> {
             if (curEditMode > CPDFEditPage.LoadNone) {
-                CPDFEditManager editManager = pdfView.getCPdfReaderView().getEditManager();
-                if (!editManager.isEditMode()) {
-                    editManager.enable();
-                    editManager.beginEdit(curEditMode);
-                }
+                restoreEdit();
                 editToolBar.updateUndoRedo();
             }
             pdfToolBar.setVisibility(VISIBLE);
@@ -539,6 +534,15 @@ public class CPDFDocumentFragment extends CBasicPDFFragment {
         });
     }
 
+    private void restoreEdit(){
+        if (curEditMode > CPDFEditPage.LoadNone && pdfToolBar.getMode() == CPreviewMode.Edit) {
+            CPDFEditManager editManager = pdfView.getCPdfReaderView().getEditManager();
+            if (!editManager.isEditMode()) {
+                editManager.beginEdit(curEditMode);
+            }
+        }
+    }
+
     protected void initEditBar() {
         if (pdfView == null || pdfView.getCPdfReaderView() == null) {
             return;

+ 1 - 3
ComPDFKit_Tools/src/main/java/com/compdfkit/tools/common/utils/CFileUtils.java

@@ -284,9 +284,7 @@ public class CFileUtils {
         Intent intent = new Intent(Intent.ACTION_OPEN_DOCUMENT);
         intent.addCategory(Intent.CATEGORY_OPENABLE);
         intent.setType("application/pdf");
-        intent.addFlags(Intent.FLAG_GRANT_PERSISTABLE_URI_PERMISSION);
-        intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
-        intent.addFlags(Intent.FLAG_GRANT_WRITE_URI_PERMISSION);
+        intent.addFlags(Intent.FLAG_GRANT_PERSISTABLE_URI_PERMISSION | Intent.FLAG_GRANT_READ_URI_PERMISSION | Intent.FLAG_GRANT_WRITE_URI_PERMISSION);
         return intent;
     }
 

+ 0 - 1
ComPDFKit_Tools/src/main/java/com/compdfkit/tools/common/views/directory/CFileDirectoryDatas.java

@@ -65,7 +65,6 @@ public class CFileDirectoryDatas {
     public static List<String> publicDirectoryList(){
         List<String> list = new ArrayList<>();
         list.add(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS).getAbsolutePath());
-        list.add(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DCIM).getAbsolutePath());
         list.add(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOCUMENTS).getAbsolutePath());
         return list;
     }

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

@@ -3,6 +3,7 @@
     xmlns:app="http://schemas.android.com/apk/res-auto"
     android:layout_width="match_parent"
     android:layout_height="80dp"
+    xmlns:tools="http://schemas.android.com/tools"
     android:layout_marginHorizontal="16dp"
     android:layout_marginTop="8dp"
     android:layout_marginBottom="8dp"
@@ -21,7 +22,7 @@
         app:layout_constraintStart_toStartOf="parent"
         app:layout_constraintTop_toTopOf="parent"
         app:max_TextSize="25"
-        app:max_Width="240" />
+        app:max_Width="250" />
 
     <androidx.appcompat.widget.AppCompatImageView
         android:id="@+id/iv_delete"