Переглянути джерело

pdftools(android) - 增加选中editarea类型改变的监听,剪切板中editarea是否有效检测调整

libai 1 рік тому
батько
коміт
dd3b018452

BIN
compdfkit-repo/compdfkit-ui/ComPDFKit-UI.aar


BIN
compdfkit-repo/compdfkit/ComPDFKit.aar


+ 3 - 2
compdfkit-tools/src/main/java/com/compdfkit/tools/common/contextmenu/CEditTextContextMenuView.java

@@ -80,6 +80,7 @@ public class CEditTextContextMenuView implements ContextMenuEditTextProvider {
         }
         ContextMenuView menuView = new ContextMenuView(pageView.getContext());
         long ptr = pageView.getEditTextAreaInfo();
+        boolean isEditAreaValid = pageView.isEditTextAreaInClipboardValid();
         String text = CPDFTextUtils.getClipData(pageView.getContext());
 
         int type = helper.getReaderView().getLoadType();
@@ -116,12 +117,12 @@ public class CEditTextContextMenuView implements ContextMenuEditTextProvider {
 //            });
 //        }
 
-        if (!TextUtils.isEmpty(text) && (ptr == -1 || ptr == 0)) {
+        if (!TextUtils.isEmpty(text) && isEditAreaValid == false) {
             menuView.addItem(R.string.tools_context_menu_select_paste, v -> {
                 pageView.pasteEditTextArea(point, pageView.getCopyTextAreaWidth(), pageView.getCopyTextAreaHeight());
                 helper.dismissContextMenu();
             });
-        } else if (!TextUtils.isEmpty(text) && ptr != -1) {
+        } else if (!TextUtils.isEmpty(text) && isEditAreaValid == true) {
             menuView.addItem(R.string.tools_context_menu_select_paste, v -> {
                 pageView.pasteEditTextArea(point, pageView.getCopyTextAreaWidth(), pageView.getCopyTextAreaHeight(), false);
                 helper.dismissContextMenu();

+ 12 - 0
compdfkit-tools/src/main/java/com/compdfkit/tools/edit/CEditToolbar.java

@@ -25,6 +25,10 @@ public class CEditToolbar extends RelativeLayout implements View.OnClickListener
     public static final int editImage = 2;
     public static final int editTextImage = 3;
 
+    public static final int SELECT_AREA_NONE = 0;
+    public static final int SELECT_AREA_TEXT = 1;
+    public static final int SELECT_AREA_IMAGE = 2;
+
     private CPDFViewCtrl pdfView;
     private androidx.appcompat.widget.AppCompatImageView ivEditText;
     private androidx.appcompat.widget.AppCompatImageView ivEditImage;
@@ -146,6 +150,14 @@ public class CEditToolbar extends RelativeLayout implements View.OnClickListener
             return;
         }
         editManager.enable();
+
+        pdfView.getCPdfReaderView().setSelectEditAreaChangeListener(type -> {
+            if (type == SELECT_AREA_NONE) {
+                ivProper.setEnabled(false);
+            } else {
+                ivProper.setEnabled(true);
+            }
+        });
         editManager.addEditStatusChangeListener(new OnEditStatusChangeListener() {
             @Override
             public void onBegin(int i) {

+ 2 - 4
edit-ctrl-demo/src/main/java/com/compdfkit/demo/edit/PDFEditSampleActivity.java

@@ -8,6 +8,8 @@
  */
 package com.compdfkit.demo.edit;
 
+import static com.compdfkit.tools.edit.CEditToolbar.SELECT_AREA_IMAGE;
+import static com.compdfkit.tools.edit.CEditToolbar.SELECT_AREA_TEXT;
 import static com.compdfkit.ui.contextmenu.CPDFContextMenuShowHelper.AddEditImageArea;
 import static com.compdfkit.ui.contextmenu.CPDFContextMenuShowHelper.ReplaceEditImageArea;
 
@@ -79,10 +81,6 @@ public class PDFEditSampleActivity extends AppCompatActivity {
 
     private final static int RC_PERMISSION_PERM = 111;
 
-    private final int SELECT_AREA_NONE = 0;
-    private final int SELECT_AREA_TEXT = 1;
-    private final int SELECT_AREA_IMAGE = 2;
-
     int curEditMode = 0;
 
     @Override