Browse Source

PDFTool(Android) - p3 bug修复

liuxiaolong 1 year ago
parent
commit
ee3fc0044f

+ 5 - 2
ComPDFKit_Tools/src/main/java/com/compdfkit/tools/viewer/pdfsearch/CSearchReplaceToolbar.java

@@ -327,10 +327,13 @@ public class CSearchReplaceToolbar extends LinearLayout implements View.OnClickL
                 showSearchList(list);
             });
         } else if (v.getId() == R.id.btn_replace_all) {
+            hideKeyboard();
+            showLoadingDialog();
             if (cpdfSearch instanceof ContentEditorSearchReplaceDecorator){
-                ((ContentEditorSearchReplaceDecorator) cpdfSearch).replaceAll(etReplace.getText().toString());
+                ((ContentEditorSearchReplaceDecorator) cpdfSearch).replaceAll(etReplace.getText().toString(), ()->{
+                    dismissLoadingDialog();
+                });
             }
-            hideKeyboard();
         } else if (v.getId() == toolBar.getIvToolBarBackBtn().getId()) {
             cancelTask();
             resetSearch();

+ 1 - 1
ComPDFKit_Tools/src/main/java/com/compdfkit/tools/viewer/pdfsearch/bean/CEditSearchReplaceInfo.java

@@ -42,6 +42,6 @@ public class CEditSearchReplaceInfo extends CSearchTextInfo {
         if (TextUtils.isEmpty(keyword)) {
             return;
         }
-        this.stringBuilder = highlight(context, target.toLowerCase(), keyword.toLowerCase());
+        this.stringBuilder = highlight(context, target, keyword);
     }
 }

+ 2 - 2
ComPDFKit_Tools/src/main/java/com/compdfkit/tools/viewer/pdfsearch/bean/CSearchTextInfo.java

@@ -63,7 +63,7 @@ public class CSearchTextInfo {
         String target = textPage.getText(targetTextRange);
         target = target.replaceAll("(\\r\\n)+ ", "");
 
-        this.stringBuilder = highlight(context, target.toLowerCase(), keyword.toLowerCase());
+        this.stringBuilder = highlight(context, target, keyword);
 
     }
 
@@ -77,7 +77,7 @@ public class CSearchTextInfo {
     protected SpannableStringBuilder highlight(Context context, String text, String target) {
         SpannableStringBuilder spannable = new SpannableStringBuilder(text);
         CharacterStyle span;
-        Pattern p = Pattern.compile(target);
+        Pattern p = Pattern.compile(target, Pattern.CASE_INSENSITIVE);
         Matcher m = p.matcher(text);
         int backGroundColor = ContextCompat.getColor(context, R.color.tools_search_result_text_highlight);
         while (m.find()) {

+ 11 - 2
ComPDFKit_Tools/src/main/java/com/compdfkit/tools/viewer/pdfsearch/data/ContentEditorSearchReplaceDecorator.java

@@ -99,7 +99,7 @@ public class ContentEditorSearchReplaceDecorator extends CPDFSearchDecorator {
         }
     }
 
-    public void replaceAll(String replaceValue) {
+    public void replaceAll(String replaceValue, CSearchReplaceCallback callback) {
         if (getReaderView() != null) {
             CPDFEditTextSearchReplace editTextSearchReplace = getReaderView().getEditTextSearchReplace();
             CThreadPoolUtils.getInstance().executeIO(() -> {
@@ -111,14 +111,23 @@ public class ContentEditorSearchReplaceDecorator extends CPDFSearchDecorator {
                         if (getReaderView().getContextMenuShowListener() != null) {
                             getReaderView().getContextMenuShowListener().dismissContextMenu();
                         }
+                        if (callback != null) {
+                            callback.complete();
+                        }
                     } catch (Exception e) {
-
+                        if (callback != null) {
+                            callback.complete();
+                        }
                     }
                 });
             });
         }
     }
 
+    public interface CSearchReplaceCallback{
+        void complete();
+    }
+
 
     public void recordSelectIndex(){
         if (search instanceof ContentEditorSearchImpl) {