Browse Source

PDFTool(Android) - V1.10.0.p1 Bug修复

liuxiaolong 1 year ago
parent
commit
7a51335f26

+ 6 - 1
ComPDFKit_Tools/src/main/java/com/compdfkit/tools/common/basic/fragment/CBasicBottomSheetDialogFragment.java

@@ -22,6 +22,7 @@ import androidx.annotation.Nullable;
 
 import com.compdfkit.tools.R;
 import com.compdfkit.tools.common.utils.dialog.CDialogFragmentUtil;
+import com.compdfkit.tools.common.utils.viewutils.CViewUtils;
 import com.google.android.material.bottomsheet.BottomSheetBehavior;
 import com.google.android.material.bottomsheet.BottomSheetDialogFragment;
 
@@ -40,7 +41,11 @@ public abstract class CBasicBottomSheetDialogFragment extends BottomSheetDialogF
         if (fullScreen()) {
             CDialogFragmentUtil.setBottomSheetDialogFragmentFullScreen(getDialog(), behavior);
         }
-        CDialogFragmentUtil.setDimAmount(getDialog(), dimAmount());
+        if (CViewUtils.isPad(getContext())){
+            CDialogFragmentUtil.setDimAmount(getDialog(),0.2F);
+        }else {
+            CDialogFragmentUtil.setDimAmount(getDialog(), dimAmount());
+        }
         behavior.setDraggable(draggable());
     }
 

+ 1 - 1
ComPDFKit_Tools/src/main/java/com/compdfkit/tools/common/utils/activitycontracts/CImageResultContracts.java

@@ -49,7 +49,7 @@ public class CImageResultContracts extends ActivityResultContract<CImageResultCo
             if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) {
                 intent.setAction(MediaStore.ACTION_PICK_IMAGES);
             } else {
-                intent.setAction(Intent.ACTION_GET_CONTENT);
+                intent.setAction(Intent.ACTION_PICK);
             }
             intent.setType("image/*");
             return intent;

+ 6 - 0
ComPDFKit_Tools/src/main/java/com/compdfkit/tools/common/utils/viewutils/CViewUtils.java

@@ -113,4 +113,10 @@ public class CViewUtils {
     public static boolean isLandScape(Context context) {
         return context.getResources().getConfiguration().orientation == Configuration.ORIENTATION_LANDSCAPE;
     }
+
+    public static boolean isPad(Context context) {
+        return (context.getResources().getConfiguration().screenLayout
+                & Configuration.SCREENLAYOUT_SIZE_MASK)
+                >= Configuration.SCREENLAYOUT_SIZE_LARGE;
+    }
 }

+ 6 - 0
ComPDFKit_Tools/src/main/java/com/compdfkit/tools/common/views/pdfview/CPDFViewCtrl.java

@@ -350,6 +350,12 @@ public class CPDFViewCtrl extends ConstraintLayout implements IReaderViewCallbac
         CThreadPoolUtils.getInstance().executeMain(() -> {
             cPdfReaderView.pauseAllRenderProcess();
             CPDFDocument document = cPdfReaderView.getPDFDocument();
+            if (document == null){
+                if (error != null) {
+                    error.error(new Exception("document is null"));
+                }
+                return;
+            }
             if (document.hasChanges()) {
                 try {
                     boolean success = document.save();

+ 3 - 0
ComPDFKit_Tools/src/main/java/com/compdfkit/tools/signature/CertificateDigitalDatas.java

@@ -77,6 +77,9 @@ public class CertificateDigitalDatas {
     @NotNull
     public static List<CPDFSignature> getDigitalSignList(CPDFDocument document) {
         List<CPDFSignature> list = new ArrayList<>();
+        if (document == null) {
+            return list;
+        }
         for (int i = 0; i < document.getSignatureCount(); i++) {
             CPDFSignature signature = document.getPdfSignature(i);
             if (signature == null) {

+ 2 - 0
ComPDFKit_Tools/src/main/java/com/compdfkit/tools/signature/preview/CDigitalSignStylePreviewDialog.java

@@ -181,6 +181,7 @@ public class CDigitalSignStylePreviewDialog extends CBasicBottomSheetDialogFragm
             if (isChecked){
                 tvPositionDesc.setText(positionView.getPosition());
             }else {
+                previewView.setLocation("");
                 tvPositionDesc.setText(R.string.tools_close);
             }
             previewView.setShowLocation(isChecked);
@@ -253,6 +254,7 @@ public class CDigitalSignStylePreviewDialog extends CBasicBottomSheetDialogFragm
                 positionView.setVisibility(View.GONE);
                 slMain.setVisibility(View.VISIBLE);
                 btnSave.setVisibility(View.VISIBLE);
+                positionView.hideKeyboard();
                 return;
             }
             if (reasonView.getVisibility() == View.VISIBLE){

+ 7 - 0
ComPDFKit_Tools/src/main/java/com/compdfkit/tools/signature/preview/view/CSignStylePositionView.java

@@ -22,6 +22,7 @@ import androidx.annotation.Nullable;
 import com.compdfkit.tools.R;
 import com.compdfkit.tools.common.interfaces.COnTextChangedListener;
 import com.compdfkit.tools.common.utils.view.CEditText;
+import com.compdfkit.tools.common.utils.viewutils.CViewUtils;
 
 
 public class CSignStylePositionView extends FrameLayout {
@@ -58,6 +59,7 @@ public class CSignStylePositionView extends FrameLayout {
             etPosition.setVisibility(isChecked ? VISIBLE : GONE);
             line.setVisibility(isChecked ? VISIBLE : GONE);
             if (!isChecked){
+                hideKeyboard();
                 etPosition.setText("");
             }
             if (checkedChangeListener != null) {
@@ -79,6 +81,10 @@ public class CSignStylePositionView extends FrameLayout {
         return etPosition.getText();
     }
 
+    public void hideKeyboard(){
+        CViewUtils.hideKeyboard(etPosition);
+    }
+
     public void setCheckedChangeListener(CompoundButton.OnCheckedChangeListener checkedChangeListener) {
         this.checkedChangeListener = checkedChangeListener;
     }
@@ -86,4 +92,5 @@ public class CSignStylePositionView extends FrameLayout {
     public void setTextChangedListener(COnTextChangedListener textChangedListener) {
         this.textChangedListener = textChangedListener;
     }
+
 }

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

@@ -30,11 +30,11 @@ public class CPDFSearchKeywordsDatas {
     public static List<CSearchTextInfo> startSearch(CPDFViewCtrl cpdfViewCtrl, String keywords, int searchCount) {
         ITextSearcher textSearcher = cpdfViewCtrl.getCPdfReaderView().getTextSearcher();
         if (null == textSearcher) {
-            return null;
+            return new ArrayList<>();
         }
         CPDFDocument document = cpdfViewCtrl.getCPdfReaderView().getPDFDocument();
         if (null == document) {
-            return null;
+            return new ArrayList<>();
         }
         textSearcher.setSearchConfig(keywords, CPDFTextSearcher.PDFSearchOptions.PDFSearchCaseInsensitive);
         List<CSearchTextInfo> searchTextInfoList = new ArrayList<>();