ソースを参照

PDFTool(Android) - p2 bug修复,图形注释需要撤回两次问题,矩形注释预览不一致问题

liuxiaolong 3 ヶ月 前
コミット
614d61154b

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


BIN
ComPDFKit_Repo/compdfkit/ComPDFKit.aar


+ 2 - 0
ComPDFKit_Tools/build.gradle

@@ -57,6 +57,8 @@ dependencies {
     // or use
 //    api ('com.compdf:compdfkit:2.1.4')
 //    api ('com.compdf:compdfkit-ui:2.2.0-SNAPSHOT')
+//    api project(path: ':ComPDFKit')
+//    api project(path: ':ComPDFKit-UI')
     api 'com.github.bumptech.glide:glide:4.15.1'
     annotationProcessor 'com.github.bumptech.glide:compiler:4.15.1'
     api 'androidx.documentfile:documentfile:1.0.1'

+ 12 - 7
ComPDFKit_Tools/src/main/java/com/compdfkit/tools/annotation/pdfproperties/pdfshape/CShapeStyleFragment.java

@@ -99,7 +99,10 @@ public class CShapeStyleFragment extends CBasicPropertiesFragment {
             stylePreviewView.setBorderWidth((int) cAnnotStyle.getBorderWidth());
             stylePreviewView.setBorderColor(cAnnotStyle.getLineColor());
             stylePreviewView.setBorderColorOpacity(cAnnotStyle.getLineColorOpacity());
-            stylePreviewView.setDashedSpaceWidth((int) cAnnotStyle.getBorderStyle().getDashArr()[1]);
+            CPDFBorderStyle style = cAnnotStyle.getBorderStyle();
+            if (style.getDashArr() != null && style.getDashArr().length == 2) {
+                stylePreviewView.setDashedSpaceWidth((int) cAnnotStyle.getBorderStyle().getDashArr()[1]);
+            }
             stylePreviewView.setStartLineType(cAnnotStyle.getStartLineType());
             stylePreviewView.setTailLineType(cAnnotStyle.getTailLineType());
             startLinePreview.setStartLineType(cAnnotStyle.getStartLineType());
@@ -109,7 +112,9 @@ public class CShapeStyleFragment extends CBasicPropertiesFragment {
             fillColorListView.setSelectColor(cAnnotStyle.getFillColor());
             borderWidthSliderBar.setProgress((int) cAnnotStyle.getBorderWidth());
             opacitySliderBar.setProgress(cAnnotStyle.getLineColorOpacity());
-            dashedSliderBar.setProgress((int) cAnnotStyle.getBorderStyle().getDashArr()[1]);
+            if (style.getDashArr() != null && style.getDashArr().length == 2) {
+                dashedSliderBar.setProgress((int) cAnnotStyle.getBorderStyle().getDashArr()[1]);
+            }
             if (cAnnotStyle.getType() == CStyleType.ANNOT_ARROW || cAnnotStyle.getType() == CStyleType.ANNOT_LINE ){
                 fillColorListView.setVisibility(View.GONE);
                 borderColorListView.setTitle(R.string.tools_color);
@@ -137,13 +142,13 @@ public class CShapeStyleFragment extends CBasicPropertiesFragment {
                 if (progress == 0) {
                     style.setStyle(CPDFBorderStyle.Style.Border_Solid);
                     float[] dashAttr = new float[]{8.0F, progress};
-                    if (style.getDashArr() != null) {
+                    if (style.getDashArr() != null && style.getDashArr().length > 1) {
                         dashAttr = new float[]{style.getDashArr()[0], progress};
                     }
                     style.setDashArr(dashAttr);
                 } else {
                     float[] dashAttr = new float[]{8.0F, progress};
-                    if (style.getDashArr() != null) {
+                    if (style.getDashArr() != null && style.getDashArr().length > 1) {
                         dashAttr = new float[]{style.getDashArr()[0], progress};
                     }
                     style.setStyle(CPDFBorderStyle.Style.Border_Dashed);
@@ -206,9 +211,9 @@ public class CShapeStyleFragment extends CBasicPropertiesFragment {
 
     private void enableDashSeekBar(boolean enable){
         dashedSliderBar.setEnabled(enable);
-        if (!enable){
-            dashedSliderBar.setProgress(0);
-        }
+//        if (!enable){
+//            dashedSliderBar.setProgress(0);
+//        }
     }
 
     private void updateBorderColor(int color) {

+ 7 - 18
ComPDFKit_Tools/src/main/java/com/compdfkit/tools/common/views/pdfproperties/pdfstyle/manager/provider/CSelectedAnnotStyleProvider.java

@@ -9,7 +9,6 @@
 
 package com.compdfkit.tools.common.views.pdfproperties.pdfstyle.manager.provider;
 
-import com.compdfkit.core.annotation.CPDFAnnotation;
 import com.compdfkit.core.annotation.CPDFBorderStyle;
 import com.compdfkit.core.annotation.CPDFCircleAnnotation;
 import com.compdfkit.core.annotation.CPDFFreetextAnnotation;
@@ -18,7 +17,6 @@ import com.compdfkit.core.annotation.CPDFLineAnnotation;
 import com.compdfkit.core.annotation.CPDFMarkupAnnotation;
 import com.compdfkit.core.annotation.CPDFSquareAnnotation;
 import com.compdfkit.core.annotation.CPDFTextAttribute;
-import com.compdfkit.tools.common.utils.CLog;
 import com.compdfkit.tools.common.views.pdfproperties.CTypeUtil;
 import com.compdfkit.tools.common.views.pdfproperties.pdfstyle.CAnnotStyle;
 import com.compdfkit.tools.common.views.pdfproperties.pdfstyle.CStyleType;
@@ -80,12 +78,8 @@ public class CSelectedAnnotStyleProvider implements CStyleProvider {
                 squareAnnotation.setFillColor(style.getFillColor());
                 squareAnnotation.setFillAlpha(style.getFillColorOpacity());
                 squareAnnotation.setBorderStyle(style.getBorderStyle());
-                squareAnnotation.setBorderWidth(style.getBorderWidth());
-                squareAnnotation.setBordEffectType(style.getBordEffectType());
-                if (style.getBordEffectType() == CPDFAnnotation.CPDFBorderEffectType.CPDFBorderEffectTypeCloudy){
-                    squareAnnotation.setBordEffectIntensity(CPDFAnnotation.BorderEffectIntensity.INTENSITY_ONE);
-                }else {
-                    squareAnnotation.setBordEffectIntensity(CPDFAnnotation.BorderEffectIntensity.INTENSITY_ZERO);
+                if (style.getBordEffectType() != squareAnnotation.getBordEffectType()){
+                    squareAnnotation.setBordEffectType(style.getBordEffectType());
                 }
                 squareAnnotation.updateAp();
                 annotImpl.onAnnotAttrChange();
@@ -98,12 +92,8 @@ public class CSelectedAnnotStyleProvider implements CStyleProvider {
                 circleAnnotation.setFillColor(style.getFillColor());
                 circleAnnotation.setFillAlpha(style.getFillColorOpacity());
                 circleAnnotation.setBorderStyle(style.getBorderStyle());
-                circleAnnotation.setBorderWidth(style.getBorderWidth());
-                circleAnnotation.setBordEffectType(style.getBordEffectType());
-                if (style.getBordEffectType() == CPDFAnnotation.CPDFBorderEffectType.CPDFBorderEffectTypeCloudy){
-                    circleAnnotation.setBordEffectIntensity(CPDFAnnotation.BorderEffectIntensity.INTENSITY_ONE);
-                }else {
-                    circleAnnotation.setBordEffectIntensity(CPDFAnnotation.BorderEffectIntensity.INTENSITY_ZERO);
+                if (style.getBordEffectType() != circleAnnotation.getBordEffectType()){
+                    circleAnnotation.setBordEffectType(style.getBordEffectType());
                 }
                 circleAnnotation.updateAp();
                 annotImpl.onAnnotAttrChange();
@@ -116,7 +106,6 @@ public class CSelectedAnnotStyleProvider implements CStyleProvider {
                 lineAnnotation.setFillColor(style.getFillColor());
                 lineAnnotation.setFillAlpha(style.getFillColorOpacity());
                 lineAnnotation.setBorderStyle(style.getBorderStyle());
-                lineAnnotation.setBorderWidth(style.getBorderWidth());
                 lineAnnotation.setLineType(style.getStartLineType(), style.getTailLineType());
                 lineAnnotation.updateAp();
                 annotImpl.onAnnotAttrChange();
@@ -181,7 +170,7 @@ public class CSelectedAnnotStyleProvider implements CStyleProvider {
                     borderStyle = new CPDFBorderStyle();
                 }
                 if (borderStyle.getDashArr() == null || borderStyle.getDashArr().length < 2) {
-                    borderStyle.setDashArr(new float[]{8F, 0F});
+                    borderStyle.setDashArr(new float[]{});
                 }
                 style.setBorderStyle(borderStyle);
                 break;
@@ -199,7 +188,7 @@ public class CSelectedAnnotStyleProvider implements CStyleProvider {
                     circleBorderStyle = new CPDFBorderStyle();
                 }
                 if (circleBorderStyle.getDashArr() == null || circleBorderStyle.getDashArr().length < 2) {
-                    circleBorderStyle.setDashArr(new float[]{8F, 0F});
+                    circleBorderStyle.setDashArr(new float[]{});
                 }
                 style.setBorderStyle(circleBorderStyle);
                 break;
@@ -217,7 +206,7 @@ public class CSelectedAnnotStyleProvider implements CStyleProvider {
                     lineBorderStyle = new CPDFBorderStyle();
                 }
                 if (lineBorderStyle.getDashArr() == null || lineBorderStyle.getDashArr().length < 2) {
-                    lineBorderStyle.setDashArr(new float[]{8F, 0F});
+                    lineBorderStyle.setDashArr(new float[]{});
                 }
                 style.setBorderStyle(lineBorderStyle);
                 style.setStartLineType(lineAnnotation.getLineHeadType());