Browse Source

PDFTools(Android) - 1.预览设置界面

liuxiaolong 1 year ago
parent
commit
54e4bdd2a9

+ 79 - 9
compdfkit-tools/src/main/java/com/compdfkit/tools/pdfdisplaysettings/CPDFDisplaySettingDialogFragment.java

@@ -14,6 +14,7 @@ import android.os.Bundle;
 import android.view.LayoutInflater;
 import android.view.View;
 import android.view.ViewGroup;
+import android.widget.CompoundButton;
 import android.widget.RadioGroup;
 
 import androidx.annotation.NonNull;
@@ -29,11 +30,14 @@ import com.google.android.material.bottomsheet.BottomSheetBehavior;
 import com.google.android.material.bottomsheet.BottomSheetDialogFragment;
 import com.google.android.material.switchmaterial.SwitchMaterial;
 
-public class CPDFDisplaySettingDialogFragment extends BottomSheetDialogFragment {
+public class CPDFDisplaySettingDialogFragment extends BottomSheetDialogFragment implements RadioGroup.OnCheckedChangeListener, CompoundButton.OnCheckedChangeListener {
 
     public static final int READER_BG_LIGHT_MODE = 0xFFFFFFFF;
     public static final int READER_BG_DARK_MODE = 0xFF333333;
-    public static final int READER_BG_PAPER_MODE = 0xFFFFEFBE;
+    public static final int READER_BG_SEPIA_MODE = 0xFFFFEFBE;
+
+    public static final int READER_BG_RESEDA_MODE = 0XFFCDE6D0;
+
 
     private CToolBar toolBar;
     private RadioGroup readerModeRadioGroup;
@@ -47,7 +51,9 @@ public class CPDFDisplaySettingDialogFragment extends BottomSheetDialogFragment
     private RadioGroup readerBgRadioGroup;
     private AppCompatRadioButton rbLightMode;
     private AppCompatRadioButton rbDarkMode;
-    private AppCompatRadioButton rbPaperMode;
+    private AppCompatRadioButton rbSepiaMode;
+
+    private AppCompatRadioButton rbResedaMode;
 
 
     private CPDFReaderView cpdfReaderView;
@@ -87,7 +93,15 @@ public class CPDFDisplaySettingDialogFragment extends BottomSheetDialogFragment
         readerBgRadioGroup = rootView.findViewById(R.id.radio_group_reader_bg);
         rbLightMode = rootView.findViewById(R.id.r_btn_light_mode);
         rbDarkMode = rootView.findViewById(R.id.r_btn_dark_mode);
-        rbPaperMode = rootView.findViewById(R.id.r_btn_paper_mode);
+        rbSepiaMode = rootView.findViewById(R.id.r_btn_sepia_mode);
+        rbResedaMode = rootView.findViewById(R.id.r_btn_reseda_mode);
+
+        swIsContinue.setOnCheckedChangeListener(this);
+        swIsVertical.setOnCheckedChangeListener(this);
+        swIsCropMode.setOnCheckedChangeListener(this);
+
+        readerModeRadioGroup.setOnCheckedChangeListener(this);
+        readerBgRadioGroup.setOnCheckedChangeListener(this);
         return rootView;
     }
 
@@ -99,9 +113,11 @@ public class CPDFDisplaySettingDialogFragment extends BottomSheetDialogFragment
             com.compdfkit.ui.reader.CPDFReaderView readerView = cpdfReaderView.getCPdfReaderView();
 
             if (readerView.isDoublePageMode()) {
-                rbDoublePage.setChecked(true);
-            } else if (readerView.isDoublePageMode() && readerView.isCoverPageMode()) {
-                rbCoverDoublePage.setChecked(true);
+                if (readerView.isCoverPageMode()) {
+                    rbCoverDoublePage.setChecked(true);
+                } else {
+                    rbDoublePage.setChecked(true);
+                }
             } else {
                 rbSinglePage.setChecked(true);
             }
@@ -118,12 +134,66 @@ public class CPDFDisplaySettingDialogFragment extends BottomSheetDialogFragment
                 case READER_BG_DARK_MODE:
                     rbDarkMode.setChecked(true);
                     break;
-                case READER_BG_PAPER_MODE:
-                    rbPaperMode.setChecked(true);
+                case READER_BG_SEPIA_MODE:
+                    rbSepiaMode.setChecked(true);
+                    break;
+                case READER_BG_RESEDA_MODE:
+                    rbResedaMode.setChecked(true);
                     break;
                 default:
                     break;
             }
         }
     }
+
+    @Override
+    public void onCheckedChanged(RadioGroup group, int checkedId) {
+        if (checkedId == R.id.r_btn_light_mode) {
+            setReaderBackgroundColor(READER_BG_LIGHT_MODE);
+        } else if (checkedId == R.id.r_btn_dark_mode) {
+            setReaderBackgroundColor(READER_BG_DARK_MODE);
+        } else if (checkedId == R.id.r_btn_sepia_mode) {
+            setReaderBackgroundColor(READER_BG_SEPIA_MODE);
+        } else if (checkedId == R.id.r_btn_reseda_mode) {
+            setReaderBackgroundColor(READER_BG_RESEDA_MODE);
+        } else if (checkedId == R.id.r_btn_single_page) {
+            if (cpdfReaderView != null) {
+                cpdfReaderView.getCPdfReaderView().setDoublePageMode(false);
+                cpdfReaderView.getCPdfReaderView().setCoverPageMode(false);
+            }
+        } else if (checkedId == R.id.r_btn_double_page) {
+            if (cpdfReaderView != null) {
+                cpdfReaderView.getCPdfReaderView().setDoublePageMode(true);
+                cpdfReaderView.getCPdfReaderView().setCoverPageMode(false);
+            }
+        } else if (checkedId == R.id.r_btn_cover_double_page) {
+            if (cpdfReaderView != null) {
+                cpdfReaderView.getCPdfReaderView().setDoublePageMode(true);
+                cpdfReaderView.getCPdfReaderView().setCoverPageMode(true);
+            }
+        }
+    }
+
+    @Override
+    public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
+        if (buttonView.getId() == R.id.sw_is_vertical) {
+            if (cpdfReaderView != null) {
+                cpdfReaderView.getCPdfReaderView().setVerticalMode(isChecked);
+            }
+        } else if (buttonView.getId() == R.id.sw_is_continue) {
+            if (cpdfReaderView != null) {
+                cpdfReaderView.getCPdfReaderView().setContinueMode(isChecked);
+            }
+        } else if (buttonView.getId() == R.id.sw_is_crop) {
+            if (cpdfReaderView != null) {
+                cpdfReaderView.getCPdfReaderView().setCropMode(isChecked);
+            }
+        }
+    }
+
+    private void setReaderBackgroundColor(int color) {
+        if (cpdfReaderView != null) {
+            cpdfReaderView.getCPdfReaderView().setReadBackgroundColor(color);
+        }
+    }
 }

+ 10 - 6
compdfkit-tools/src/main/java/com/compdfkit/tools/pdfpageinfo/CPDFDocumentInfoDialogFragment.java

@@ -123,18 +123,22 @@ public class CPDFDocumentInfoDialogFragment extends BottomSheetDialogFragment {
             tvPDFCreationDate.setText(transformPDFDate(cpdfInfo.getCreationDate()));
             tvPDFModificationDate.setText(transformPDFDate(cpdfInfo.getModificationDate()));
 
-            tvPDFAllowPrint.setText(String.valueOf(permissionInfo.isAllowsPrinting()));
-            tvPDFAllowCopy.setText(String.valueOf(permissionInfo.isAllowsCopying()));
-            tvPDFAllowDocumentChanges.setText(String.valueOf(permissionInfo.isAllowsDocumentChanges()));
-            tvPDFAllowDocumentAssembly.setText(String.valueOf(permissionInfo.isAllowsDocumentAssembly()));
-            tvPDFAllowDocumentCommenting.setText(String.valueOf(permissionInfo.isAllowsCommenting()));
-            tvPDFAllowDocumentFormFieldEntry.setText(String.valueOf(permissionInfo.isAllowsFormFieldEntry()));
+            tvPDFAllowPrint.setText(allowStr(permissionInfo.isAllowsPrinting()));
+            tvPDFAllowCopy.setText(allowStr(permissionInfo.isAllowsCopying()));
+            tvPDFAllowDocumentChanges.setText(allowStr(permissionInfo.isAllowsDocumentChanges()));
+            tvPDFAllowDocumentAssembly.setText(allowStr(permissionInfo.isAllowsDocumentAssembly()));
+            tvPDFAllowDocumentCommenting.setText(allowStr(permissionInfo.isAllowsCommenting()));
+            tvPDFAllowDocumentFormFieldEntry.setText(allowStr(permissionInfo.isAllowsFormFieldEntry()));
 
         }
 
 
     }
 
+    private String allowStr(boolean allow){
+        return getString(allow ? R.string.tools_yes : R.string.tools_no);
+    }
+
 
     /**
      * Transform a PDF date string in the format D:20230130060237+00'00' to a human-readable yyyy-MM-dd HH:mm:ss date string.

+ 12 - 2
compdfkit-tools/src/main/res/layout/tools_pdf_display_settings_dialog_fragment.xml

@@ -192,9 +192,19 @@
             android:background="@color/tools_item_dividing_line_color" />
 
         <androidx.appcompat.widget.AppCompatRadioButton
-            android:id="@+id/r_btn_paper_mode"
+            android:id="@+id/r_btn_sepia_mode"
             style="@style/tools_pdf_reader_mode_radio_button_style"
-            android:text="@string/tools_paper_mode" />
+            android:text="@string/tools_sepia_mode" />
+
+        <View
+            android:layout_width="match_parent"
+            android:layout_height="1dp"
+            android:background="@color/tools_item_dividing_line_color" />
+
+        <androidx.appcompat.widget.AppCompatRadioButton
+            android:id="@+id/r_btn_reseda_mode"
+            style="@style/tools_pdf_reader_mode_radio_button_style"
+            android:text="@string/tools_reseda_mode" />
 
     </RadioGroup>
 

+ 40 - 35
compdfkit-tools/src/main/res/values/strings.xml

@@ -17,39 +17,44 @@
     <string name="tools_reader_settings">Reader Settings</string>
 
 
-    <string name="tools_reader_pdf_info_createInfo">创建信息</string>
-    <string name="tools_reader_pdf_info_accessPer">访问权限</string>
-    <string name="tools_reader_pdf_info_fileName">文件名:</string>
-    <string name="tools_reader_pdf_info_size">大小:</string>
-    <string name="tools_reader_pdf_info_title">标题:</string>
-    <string name="tools_reader_pdf_info_author">作者:</string>
-    <string name="tools_reader_pdf_info_subject">主题:</string>
-    <string name="tools_reader_pdf_info_keywords">关键字:</string>
-    <string name="tools_reader_pdf_info_version">版本:</string>
-    <string name="tools_reader_pdf_info_pages">页数:</string>
-    <string name="tools_reader_pdf_info_creator">创建者:</string>
-    <string name="tools_reader_pdf_info_creationDate">创建时间:</string>
-    <string name="tools_reader_pdf_info_modification">修改时间:</string>
-    <string name="tools_reader_pdf_info_allowCopy">内容复制:</string>
-    <string name="tools_reader_pdf_info_allowPrint">打印:</string>
-    <string name="tools_reader_pdf_info_allows_document_changes">更改文档:</string>
-    <string name="tools_reader_pdf_info_allows_document_assembly">文档组合:</string>
-    <string name="tools_reader_pdf_info_allows_document_commenting">注释:</string>
-    <string name="tools_reader_pdf_info_allows_document_form_field_entry">填写表单域:</string>
-
-    <string name="tools_reader_pdf_info_abstract">摘要</string>
-
-    <string name="tools_single_page">单页</string>
-    <string name="tools_double_page">双页</string>
-    <string name="tools_cover_double_page">封面双页</string>
-    <string name="tools_reader_mode">浏览模式</string>
-    <string name="tools_is_continue">连续翻页</string>
-    <string name="tools_is_vertical">垂直滚动</string>
-    <string name="tools_is_crop">裁剪模式</string>
-
-    <string name="tools_reader_view_background_color">色彩模式</string>
-
-    <string name="tools_light_mode">日间模式</string>
-    <string name="tools_dark_mode">夜间模式</string>
-    <string name="tools_paper_mode">纸质模式</string>
+
+    <string name="tools_reader_pdf_info_createInfo">Create Information</string>
+    <string name="tools_reader_pdf_info_accessPer">Access Permissions</string>
+    <string name="tools_reader_pdf_info_fileName">File Name:</string>
+    <string name="tools_reader_pdf_info_size">Size:</string>
+    <string name="tools_reader_pdf_info_title">Title:</string>
+    <string name="tools_reader_pdf_info_author">Author:</string>
+    <string name="tools_reader_pdf_info_subject">Subject:</string>
+    <string name="tools_reader_pdf_info_keywords">Keywords:</string>
+    <string name="tools_reader_pdf_info_version">Version:</string>
+    <string name="tools_reader_pdf_info_pages">Pages:</string>
+    <string name="tools_reader_pdf_info_creator">Creator:</string>
+    <string name="tools_reader_pdf_info_creationDate">Creation Date:</string>
+    <string name="tools_reader_pdf_info_modification">Modification:</string>
+    <string name="tools_reader_pdf_info_allowCopy">Allow Copying:</string>
+    <string name="tools_reader_pdf_info_allowPrint">Allow Printing:</string>
+    <string name="tools_reader_pdf_info_allows_document_changes">Allow Document Change:</string>
+    <string name="tools_reader_pdf_info_allows_document_assembly">Allow Document Assembly:</string>
+    <string name="tools_reader_pdf_info_allows_document_commenting">Allow Document Commenting:</string>
+    <string name="tools_reader_pdf_info_allows_document_form_field_entry">Allow Document Form Field Entry:</string>
+    <string name="tools_reader_pdf_info_abstract">Abstract</string>
+
+
+    <string name="tools_single_page">Single Page</string>
+    <string name="tools_double_page">Two Page</string>
+    <string name="tools_cover_double_page">Book Mode</string>
+    <string name="tools_reader_mode">Display Mode</string>
+    <string name="tools_is_continue">Continuous Scroll</string>
+    <string name="tools_is_vertical">Vertical Scrolling</string>
+    <string name="tools_is_crop">Crop Mode</string>
+
+    <string name="tools_reader_view_background_color">Themes</string>
+
+    <string name="tools_light_mode">Light</string>
+    <string name="tools_dark_mode">Dark</string>
+    <string name="tools_sepia_mode">Sepia</string>
+    <string name="tools_reseda_mode">Reseda</string>
+
+    <string name="tools_yes">YES</string>
+    <string name="tools_no">NO</string>
 </resources>