Skip to content

Commit cf2824a

Browse files
committed
v2.6.2
1 parent 6b8c3cd commit cf2824a

16 files changed

Lines changed: 175 additions & 45 deletions

File tree

-15 KB
Binary file not shown.
-1.05 KB
Binary file not shown.

ComPDFKit_Tools/build.gradle

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,7 @@ plugins {
22
id 'com.android.library'
33
}
44

5-
def getProductName() {
6-
return "ComPDFKitDemo"
7-
}
85

9-
def releaseTime() {
10-
return new Date().format("yyyy-MM-dd_hh-mm-ss", TimeZone.getTimeZone("GMT+08:00"))
11-
}
126

137
android {
148
namespace 'com.compdfkit.tools'
@@ -35,6 +29,13 @@ android {
3529
minifyEnabled true
3630
zipAlignEnabled true
3731
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
32+
android.libraryVariants.all { variant ->
33+
variant.outputs.all {
34+
if (outputFileName.toLowerCase(Locale.US).endsWith('release.aar')) {
35+
outputFileName = "ComPDFKit_Tools.aar"
36+
}
37+
}
38+
}
3839
}
3940
}
4041

@@ -54,8 +55,8 @@ dependencies {
5455
// api project(path:':ComPDFKit_Repo:compdfkit')
5556
// api project(path:':ComPDFKit_Repo:compdfkit-ui')
5657
// or use
57-
api ('com.compdf:compdfkit:2.6.1')
58-
api ('com.compdf:compdfkit-ui:2.6.1')
58+
api ('com.compdf:compdfkit:2.6.2')
59+
api ('com.compdf:compdfkit-ui:2.6.2')
5960
api 'com.github.bumptech.glide:glide:4.15.1'
6061
annotationProcessor 'com.github.bumptech.glide:compiler:4.15.1'
6162
api "androidx.print:print:1.1.0"

ComPDFKit_Tools/proguard-rules.pro

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,9 +23,8 @@
2323
-optimizationpasses 5
2424
-dontskipnonpubliclibraryclasses
2525
#-dontskipnonpubliclibraryclassmembers
26-
-dontoptimize
26+
# -dontoptimize
2727
-dontpreverify
28-
-ignorewarnings
2928
-optimizations !code/simplification/arithmetic,!field/*,!class/merging/*
3029
-keepattributes *Annotation*
3130
-keepattributes Signature

ComPDFKit_Tools/src/main/assets/tools_default_configuration.json

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,8 @@
5353
"autoShowStampPicker": true,
5454
"autoShowPicPicker": true,
5555
"autoShowLinkDialog": true,
56+
"interceptNoteAction": false,
57+
"interceptLinkAction": false,
5658
"availableTypes": [
5759
"note",
5860
"highlight",
@@ -180,6 +182,9 @@
180182
"showCreateListBoxOptionsDialog": true,
181183
"showCreateComboBoxOptionsDialog": true,
182184
"showCreatePushButtonOptionsDialog": true,
185+
"interceptListBoxAction": false,
186+
"interceptComboBoxAction": false,
187+
"interceptPushButtonAction": false,
183188
"availableTypes": [
184189
"textField",
185190
"checkBox",
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
package com.compdfkit.tools.annotation.pdfproperties.pdflink;
2+
3+
4+
import android.util.Log;
5+
import com.compdfkit.core.annotation.CPDFLinkAnnotation;
6+
import com.compdfkit.core.document.CPDFDocument;
7+
import com.compdfkit.tools.common.pdf.CPDFApplyConfigUtil;
8+
import com.compdfkit.tools.common.pdf.config.CPDFConfiguration;
9+
import com.compdfkit.tools.common.utils.customevent.CPDFCustomEventCallbackHelper;
10+
import com.compdfkit.tools.common.utils.customevent.CPDFCustomEventField;
11+
import com.compdfkit.tools.common.utils.customevent.CPDFCustomEventType;
12+
import com.compdfkit.ui.proxy.CPDFLinkAnnotImpl;
13+
import java.util.Map;
14+
15+
public class CPDFCustomLinkAnnotImpl extends CPDFLinkAnnotImpl {
16+
17+
18+
@Override
19+
public void doAction(CPDFDocument document, CPDFLinkAnnotation linkAnnotation) {
20+
CPDFConfiguration configuration = CPDFApplyConfigUtil.getInstance().getConfiguration();
21+
if (configuration != null && configuration.annotationsConfig != null && configuration.annotationsConfig.interceptLinkAction) {
22+
Map<String, Object> extraMap = new java.util.HashMap<>();
23+
extraMap.put(CPDFCustomEventField.CUSTOM_EVENT_TYPE, CPDFCustomEventType.INTERCEPT_ANNOTATION_DO_ACTION);
24+
extraMap.put(CPDFCustomEventField.ANNOTATION, linkAnnotation);
25+
CPDFCustomEventCallbackHelper.getInstance().notifyClick("", extraMap);
26+
return;
27+
}
28+
super.doAction(document, linkAnnotation);
29+
}
30+
}

ComPDFKit_Tools/src/main/java/com/compdfkit/tools/annotation/pdfproperties/pdfnote/CPDFtextAnnotImpl.java

Lines changed: 31 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -9,35 +9,49 @@
99

1010
package com.compdfkit.tools.annotation.pdfproperties.pdfnote;
1111

12+
import android.util.Log;
1213
import androidx.fragment.app.FragmentActivity;
1314

1415
import com.compdfkit.core.annotation.CPDFTextAnnotation;
16+
import com.compdfkit.tools.common.pdf.CPDFApplyConfigUtil;
17+
import com.compdfkit.tools.common.pdf.config.CPDFConfiguration;
18+
import com.compdfkit.tools.common.utils.customevent.CPDFCustomEventCallbackHelper;
19+
import com.compdfkit.tools.common.utils.customevent.CPDFCustomEventField;
20+
import com.compdfkit.tools.common.utils.customevent.CPDFCustomEventType;
1521
import com.compdfkit.tools.common.utils.viewutils.CViewUtils;
1622
import com.compdfkit.ui.proxy.CPDFTextAnnotImpl;
1723
import com.compdfkit.ui.reader.CPDFPageView;
24+
import java.util.Map;
1825

1926

2027
public class CPDFtextAnnotImpl extends CPDFTextAnnotImpl {
2128

2229
@Override
2330
protected void onTouchTextAnnot(CPDFTextAnnotation cpdfTextAnnotation) {
24-
setFocused(true);
25-
CNoteEditDialog editDialog = CNoteEditDialog.newInstance(cpdfTextAnnotation.getContent());
26-
editDialog.setSaveListener(v -> {
27-
String content = editDialog.getContent();
28-
cpdfTextAnnotation.setContent(content);
29-
editDialog.dismiss();
30-
});
31-
editDialog.setDeleteListener(v -> {
32-
CPDFPageView cpdfPageView = (CPDFPageView) pageView;
33-
cpdfPageView.deleteAnnotation(this);
34-
cpdfTextAnnotation.removeFromPage();
35-
editDialog.dismiss();
36-
});
37-
FragmentActivity fragmentActivity = CViewUtils.getFragmentActivity(readerView.getContext());
38-
if (fragmentActivity != null) {
39-
editDialog.show(fragmentActivity.getSupportFragmentManager(), "noteEditDialog");
31+
CPDFConfiguration configuration = CPDFApplyConfigUtil.getInstance().getConfiguration();
32+
if (configuration != null && configuration.annotationsConfig != null && configuration.annotationsConfig.interceptNoteAction) {
33+
Map<String, Object> extraMap = new java.util.HashMap<>();
34+
extraMap.put(CPDFCustomEventField.CUSTOM_EVENT_TYPE, CPDFCustomEventType.INTERCEPT_ANNOTATION_DO_ACTION);
35+
extraMap.put(CPDFCustomEventField.ANNOTATION, cpdfTextAnnotation);
36+
CPDFCustomEventCallbackHelper.getInstance().notifyClick("", extraMap);
37+
return;
4038
}
39+
setFocused(true);
40+
CNoteEditDialog editDialog = CNoteEditDialog.newInstance(cpdfTextAnnotation.getContent());
41+
editDialog.setSaveListener(v -> {
42+
String content = editDialog.getContent();
43+
cpdfTextAnnotation.setContent(content);
44+
editDialog.dismiss();
45+
});
46+
editDialog.setDeleteListener(v -> {
47+
CPDFPageView cpdfPageView = (CPDFPageView) pageView;
48+
cpdfPageView.deleteAnnotation(this);
49+
cpdfTextAnnotation.removeFromPage();
50+
editDialog.dismiss();
51+
});
52+
FragmentActivity fragmentActivity = CViewUtils.getFragmentActivity(readerView.getContext());
53+
if (fragmentActivity != null) {
54+
editDialog.show(fragmentActivity.getSupportFragmentManager(), "noteEditDialog");
55+
}
4156
}
4257
}
43-

ComPDFKit_Tools/src/main/java/com/compdfkit/tools/common/basic/fragment/CBasicPDFFragment.java

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,12 +18,14 @@
1818
import com.compdfkit.core.annotation.CPDFTextAnnotation;
1919
import com.compdfkit.core.annotation.form.CPDFComboboxWidget;
2020
import com.compdfkit.core.annotation.form.CPDFListboxWidget;
21+
import com.compdfkit.core.annotation.form.CPDFPushbuttonWidget;
2122
import com.compdfkit.core.annotation.form.CPDFSignatureWidget;
2223
import com.compdfkit.core.document.CPDFDocument;
2324
import com.compdfkit.core.edit.CPDFEditManager;
2425
import com.compdfkit.core.edit.CPDFEditPage;
2526
import com.compdfkit.tools.R;
2627
import com.compdfkit.tools.annotation.pdfproperties.pdflink.CLinkAnnotAttachHelper;
28+
import com.compdfkit.tools.annotation.pdfproperties.pdflink.CPDFCustomLinkAnnotImpl;
2729
import com.compdfkit.tools.annotation.pdfproperties.pdfnote.CPDFtextAnnotAttachHelper;
2830
import com.compdfkit.tools.annotation.pdfproperties.pdfnote.CPDFtextAnnotImpl;
2931
import com.compdfkit.tools.common.contextmenu.CPDFContextMenuHelper;
@@ -41,6 +43,7 @@
4143
import com.compdfkit.tools.docseditor.pdfpageedit.CPDFPageEditDialogFragment;
4244
import com.compdfkit.tools.forms.pdfproperties.pdfcombobox.CustomComboBoxWidgetImpl;
4345
import com.compdfkit.tools.forms.pdfproperties.pdflistbox.CustomListBoxWidgetImpl;
46+
import com.compdfkit.tools.forms.pdfproperties.pdfpushbutton.CPushButtonWidgetImpl;
4447
import com.compdfkit.tools.forms.pdfproperties.pdfsign.SignatureWidgetImpl;
4548
import com.compdfkit.tools.viewer.contextmenu.CopyContextMenuView;
4649
import com.compdfkit.tools.viewer.pdfdisplaysettings.CPDFDisplaySettingDialogFragment;
@@ -101,8 +104,9 @@ protected void resetContextMenu(CPDFViewCtrl pdfView, CPreviewMode mode) {
101104

102105
protected void registerAnnotHelper(CPDFViewCtrl pdfView) {
103106
pdfView.getCPdfReaderView().getAnnotImplRegistry().registAttachHelper(CPDFTextAnnotation.class, CPDFtextAnnotAttachHelper.class);
104-
pdfView.getCPdfReaderView().getAnnotImplRegistry().registImpl(CPDFTextAnnotation.class, CPDFtextAnnotImpl.class);
105107
pdfView.getCPdfReaderView().getAnnotImplRegistry().registAttachHelper(CPDFLinkAnnotation.class, CLinkAnnotAttachHelper.class);
108+
pdfView.getCPdfReaderView().getAnnotImplRegistry().registImpl(CPDFTextAnnotation.class, CPDFtextAnnotImpl.class);
109+
pdfView.getCPdfReaderView().getAnnotImplRegistry().registImpl(CPDFLinkAnnotation.class, CPDFCustomLinkAnnotImpl.class);
106110
}
107111

108112
protected void registerFormHelper(CPDFViewCtrl pdfView) {
@@ -111,6 +115,7 @@ protected void registerFormHelper(CPDFViewCtrl pdfView) {
111115
.registImpl(CPDFComboboxWidget.class, CustomComboBoxWidgetImpl.class)
112116
// Register the CustomListBoxWidgetImpl.class to implement a custom dropdown options popup.
113117
.registImpl(CPDFListboxWidget.class, CustomListBoxWidgetImpl.class)
118+
.registImpl(CPDFPushbuttonWidget.class, CPushButtonWidgetImpl.class)
114119
// Register the CustomSignatureWidgetImpl.class to implement a custom dropdown options popup.
115120
.registImpl(CPDFSignatureWidget.class, SignatureWidgetImpl.class);
116121
}

ComPDFKit_Tools/src/main/java/com/compdfkit/tools/common/pdf/CPDFConfigurationUtils.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -377,6 +377,8 @@ private static AnnotationsConfig parseAnnotationsConfig(@Nullable JSONObject jso
377377
annotationsConfig.autoShowStampPicker = jsonObject.optBoolean("autoShowStampPicker", true);
378378
annotationsConfig.autoShowLinkDialog = jsonObject.optBoolean("autoShowLinkDialog", true);
379379
annotationsConfig.autoShowPicPicker = jsonObject.optBoolean("autoShowPicPicker", true);
380+
annotationsConfig.interceptNoteAction = jsonObject.optBoolean("interceptNoteAction", false);
381+
annotationsConfig.interceptLinkAction = jsonObject.optBoolean("interceptLinkAction", false);
380382
return annotationsConfig;
381383
}
382384

@@ -612,6 +614,9 @@ private static FormsConfig parseFormsConfig(@Nullable JSONObject jsonObject) {
612614
formsConfig.showCreateListBoxOptionsDialog = jsonObject.optBoolean("showCreateListBoxOptionsDialog", true);
613615
formsConfig.showCreateComboBoxOptionsDialog = jsonObject.optBoolean("showCreateComboBoxOptionsDialog", true);
614616
formsConfig.showCreatePushButtonOptionsDialog = jsonObject.optBoolean("showCreatePushButtonOptionsDialog", true);
617+
formsConfig.interceptListBoxAction = jsonObject.optBoolean("interceptListBoxAction", false);
618+
formsConfig.interceptComboBoxAction = jsonObject.optBoolean("interceptComboBoxAction", false);
619+
formsConfig.interceptPushButtonAction = jsonObject.optBoolean("interceptPushButtonAction", false);
615620
return formsConfig;
616621
}
617622

ComPDFKit_Tools/src/main/java/com/compdfkit/tools/common/pdf/config/AnnotationsConfig.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,10 @@ public AnnotationsConfig() {
6767

6868
public boolean autoShowPicPicker = true;
6969

70+
public boolean interceptNoteAction = false;
71+
72+
public boolean interceptLinkAction = false;
73+
7074
@NonNull
7175
@Override
7276
public String toString() {

0 commit comments

Comments
 (0)