Browse Source

ComPDFKit Tools(Android) - search

libai 1 year ago
parent
commit
8bcf5ba330

+ 7 - 17
compdfkit-tools/src/main/java/com/compdfkit/tools/search/CSearchToolbar.java

@@ -26,13 +26,8 @@ public class CSearchToolbar extends RelativeLayout implements View.OnClickListen
     private ImageView leftImage;
     private ImageView rightImage;
     private ImageView listImage;
-
     private Context mContext;
 
-    private CPDFReaderView readerView;
-    private ITextSearcher textSearcher;
-    private CPDFDocument tpdfDocument;
-
     OnSearchListener onSearchListener = null;
     List<CSearchTextInfo> searchTextInfos = null;
 
@@ -69,6 +64,7 @@ public class CSearchToolbar extends RelativeLayout implements View.OnClickListen
         completeBt.setOnClickListener(this);
         leftImage.setOnClickListener(this);
         rightImage.setOnClickListener(this);
+        listImage.setOnClickListener(this);
     }
     Lock lock = new ReentrantLock();
     private AsyncTask<Void, Void, Boolean> searchTask;
@@ -121,32 +117,26 @@ public class CSearchToolbar extends RelativeLayout implements View.OnClickListen
     public void onClick(View view) {
         int id = view.getId();
         if (id == R.id.complete) {
-            startSearch();
+            cancelTask();
+            if (null != onSearchListener) {
+                onSearchListener.onExitSearch();
+            }
         } else if (id == R.id.left) {
 
         } else if (id == R.id.right) {
 
         } else if (id == R.id.list) {
-
+            startSearch();
         }
     }
 
-
-
     public void setSearchListener(OnSearchListener onSearchListener) {
         this.onSearchListener = onSearchListener;
     }
 
-    public void setReaderView(CPDFReaderView readerView) {
-        if (null != readerView) {
-            this.readerView = readerView;
-            this.textSearcher = readerView.getTextSearcher();
-            tpdfDocument = readerView.getPDFDocument();
-        }
-    }
-
     public interface OnSearchListener {
         List<CSearchTextInfo> onStartSearch(String word);
         void onEndSearch(List<CSearchTextInfo> searchResult);
+        void onExitSearch();
     }
 }

+ 8 - 4
compdfkit-tools/src/main/res/layout/tools_search_result.xml

@@ -7,22 +7,26 @@
     <RelativeLayout
         android:id="@+id/id_search_head"
         android:layout_width="match_parent"
-        android:layout_height="@dimen/qb_px_56"
+        android:layout_height="?android:attr/actionBarSize"
         android:layout_alignParentStart="true"
         android:layout_alignParentTop="true"
         android:background="@color/tools_reader_tools_button_normal">
 
         <androidx.appcompat.widget.AppCompatImageView
             android:id="@+id/id_reader_search_back"
-            android:layout_width="@dimen/qb_px_50"
-            android:layout_height="match_parent"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
             android:layout_alignParentLeft="true"
+            android:layout_centerVertical="true"
             android:background="@color/tools_reader_tools_button_normal"
-            android:src="@drawable/tool_button_click" />
+            android:src="@drawable/tools_ic_back" />
 
         <androidx.appcompat.widget.AppCompatTextView
             android:id="@+id/id_search_msg"
             android:layout_centerHorizontal="true"
+            android:text="@string/tools_search_result"
+            android:textColor="@color/tools_black_color"
+            android:layout_centerVertical="true"
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"/>
 

+ 1 - 1
compdfkit-tools/src/main/res/layout/tools_search_toolbar.xml

@@ -14,7 +14,7 @@
         android:layout_height="wrap_content"/>
     <EditText
         android:id="@+id/search_word"
-        android:hint="ddddjjjjjfff"
+        android:hint="@string/tools_search_hint"
         android:layout_marginLeft="@dimen/qb_px_10"
         android:layout_toRightOf="@+id/complete"
         android:background="@drawable/tools_search_edit_bg"

+ 1 - 0
compdfkit-tools/src/main/res/values/colors.xml

@@ -9,4 +9,5 @@
     <color name="tools_white_color">#ffffff</color>
     <color name="tools_search_text">#007ACC</color>
     <color name="tools_border_color">#ff999999</color>
+    <color name="tools_black_color">#ff000000</color>
 </resources>

+ 2 - 0
compdfkit-tools/src/main/res/values/strings.xml

@@ -6,4 +6,6 @@
     <string name="tools_goto_page_dialog_hint">input page</string>
     <string name="tools_search_header_page">Page</string>
     <string name="tools_search_complete">完成</string>
+    <string name="tools_search_result">Search Results</string>
+    <string name="tools_search_hint">Input Page</string>
 </resources>

+ 9 - 0
viewer-ctrl-demo/src/main/java/com/compdfkit/demo/viewer/MainActivity.java

@@ -4,6 +4,7 @@ import androidx.appcompat.app.AppCompatActivity;
 
 import android.os.Bundle;
 import android.util.Log;
+import android.view.View;
 import android.widget.Toast;
 
 import com.compdfkit.core.document.CPDFDocument;
@@ -53,6 +54,8 @@ public class MainActivity extends AppCompatActivity {
     private void initToolbarListener(){
         binding.pdfToolBar.setSearchBtnClickListener(v -> {
             Toast.makeText(this, "search", Toast.LENGTH_SHORT).show();
+            binding.pdfToolBar.setVisibility(View.GONE);
+            binding.pdfSearchToolBar.setVisibility(View.VISIBLE);
         });
         binding.pdfToolBar.setOutlineBtnClickListener(v -> {
             //open outline
@@ -90,6 +93,12 @@ public class MainActivity extends AppCompatActivity {
                     }
                 });
             }
+
+            @Override
+            public void onExitSearch() {
+                binding.pdfToolBar.setVisibility(View.VISIBLE);
+                binding.pdfSearchToolBar.setVisibility(View.GONE);
+            }
         });
     }
     private List<CSearchTextInfo> startSearch(String searchWord, CPDFReaderView readerView) {