Skip to content

Commit 0bbc86f

Browse files
committed
v2.6.6
1. Added support for TalkBack to improve accessibility. 2. Added a brand-new CPDFPageNavigator quick page navigation slider component. 3. Fixed the issue of stamp click rotation crash 4. Remove the default request storage permission for CPDFDocumentFragment 5. Fixed an occasional crash issue in CPDFEditToolbar. 6. Fixed an issue where saving changes in content editing mode might not take effect.
1 parent 1717a41 commit 0bbc86f

34 files changed

Lines changed: 641 additions & 178 deletions
34.8 KB
Binary file not shown.
0 Bytes
Binary file not shown.

ComPDFKit_Tools/build.gradle

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -55,8 +55,8 @@ dependencies {
5555
api project(path:':ComPDFKit_Repo:compdfkit')
5656
api project(path:':ComPDFKit_Repo:compdfkit-ui')
5757
// or use
58-
// api ('com.compdf:compdfkit:2.6.5')
59-
// api ('com.compdf:compdfkit-ui:2.6.5')
58+
// api ('com.compdf:compdfkit:2.6.6')
59+
// api ('com.compdf:compdfkit-ui:2.6.6')
6060
api 'com.github.bumptech.glide:glide:4.15.1'
6161
annotationProcessor 'com.github.bumptech.glide:compiler:4.15.1'
6262
api "androidx.print:print:1.0.0"

ComPDFKit_Tools/src/main/java/com/compdfkit/tools/annotation/pdfannotationbar/CAnnotationToolbar.java

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,9 +36,13 @@
3636
import com.compdfkit.tools.common.pdf.config.AnnotationsConfig;
3737
import com.compdfkit.tools.common.utils.CListUtil;
3838
import com.compdfkit.tools.common.utils.CLog;
39+
import com.compdfkit.tools.common.utils.customevent.CPDFCustomEventCallbackHelper;
40+
import com.compdfkit.tools.common.utils.customevent.CPDFCustomEventField;
41+
import com.compdfkit.tools.common.utils.customevent.CPDFCustomEventType;
3942
import com.compdfkit.tools.common.utils.viewutils.CDimensUtils;
4043
import com.compdfkit.tools.common.utils.viewutils.CViewUtils;
4144
import com.compdfkit.tools.common.views.pdfproperties.CAnnotationType;
45+
import com.compdfkit.tools.common.views.pdfproperties.CTypeUtil;
4246
import com.compdfkit.tools.common.views.pdfproperties.pdfstyle.CAnnotStyle;
4347
import com.compdfkit.tools.common.views.pdfproperties.pdfstyle.CBasicOnStyleChangeListener;
4448
import com.compdfkit.tools.common.views.pdfproperties.pdfstyle.CStyleDialogFragment;
@@ -54,6 +58,7 @@
5458
import java.util.ArrayList;
5559
import java.util.Arrays;
5660
import java.util.Collections;
61+
import java.util.HashMap;
5762
import java.util.List;
5863
import java.util.Map;
5964

@@ -214,6 +219,12 @@ public void onChangeOpacity(int opacity) {
214219
}
215220
}
216221

222+
private boolean hasAnnotationStyleSelection(CAnnotStyle style) {
223+
return style.getTextStamp() != null
224+
|| style.getStandardStamp() != null
225+
|| !TextUtils.isEmpty(style.getImagePath());
226+
}
227+
217228
public void switchAnnotationUnknown(){
218229
if (toolListAdapter.getCurrentAnnotType() == CAnnotationType.INK_ERASER) {
219230
setUndoManagerType(UndoManagerType.AnnotUndo);

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

Lines changed: 15 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -34,9 +34,12 @@ public abstract class CBasicBottomSheetDialogFragment extends BottomSheetDialogF
3434

3535
protected COnDialogDismissListener dismissListener;
3636

37+
private boolean dismissCallbackDispatched;
38+
3739
@Override
3840
public void onCreate(@Nullable Bundle savedInstanceState) {
3941
super.onCreate(savedInstanceState);
42+
dismissCallbackDispatched = false;
4043
int styleId = CViewUtils.getThemeStyle(getContext(), themeResId());
4144
if (styleId != 0){
4245
setStyle(STYLE_NORMAL, styleId);
@@ -117,20 +120,26 @@ public void onConfigurationChanged(@NonNull Configuration newConfig) {
117120
@Override
118121
public void onCancel(@NonNull DialogInterface dialog) {
119122
super.onCancel(dialog);
120-
if (dismissListener != null) {
121-
dismissListener.dismiss();
122-
}
123+
notifyDismissListenerOnce();
123124
}
124125

125126
@Override
126127
public void onDismiss(@NonNull DialogInterface dialog) {
127128
super.onDismiss(dialog);
128-
if (dismissListener != null){
129-
dismissListener.dismiss();
130-
}
129+
notifyDismissListenerOnce();
131130
}
132131

133132
public void setDismissListener(COnDialogDismissListener dismissListener) {
134133
this.dismissListener = dismissListener;
135134
}
135+
136+
private void notifyDismissListenerOnce() {
137+
if (dismissCallbackDispatched) {
138+
return;
139+
}
140+
dismissCallbackDispatched = true;
141+
if (dismissListener != null) {
142+
dismissListener.dismiss();
143+
}
144+
}
136145
}

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

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -121,14 +121,17 @@ protected void registerFormHelper(CPDFViewCtrl pdfView) {
121121
}
122122

123123
public void showDisplaySettings(CPDFViewCtrl pdfView) {
124+
curEditMode = pdfView.getCPdfReaderView().getLoadType();
124125
pdfView.exitEditMode();
125126
CPDFDisplaySettingDialogFragment displaySettingDialogFragment = CPDFDisplaySettingDialogFragment.newInstance();
126127
displaySettingDialogFragment.initWithPDFView(pdfView);
128+
displaySettingDialogFragment.setDismissListener(()->{
129+
restoreEdit(pdfView,true);
130+
});
127131
displaySettingDialogFragment.show(getChildFragmentManager(), "displaySettingsDialog");
128132
}
129133

130134
public void showDocumentInfo(CPDFViewCtrl pdfView) {
131-
pdfView.exitEditMode();
132135
CPDFDocumentInfoDialogFragment infoDialogFragment = CPDFDocumentInfoDialogFragment.newInstance();
133136
infoDialogFragment.initWithPDFView(pdfView);
134137
infoDialogFragment.show(getChildFragmentManager(), "documentInfoDialogFragment");
@@ -200,7 +203,7 @@ protected void showPageEdit(CPDFViewCtrl pdfView, boolean enterEdit, boolean ena
200203
pageEditDialogFragment.show(getChildFragmentManager(), "pageEditDialogFragment");
201204
}
202205

203-
protected void restoreEdit(CPDFViewCtrl pdfView, boolean isEditMode) {
206+
public void restoreEdit(CPDFViewCtrl pdfView, boolean isEditMode) {
204207
if (curEditMode > CPDFEditPage.LoadNone && isEditMode) {
205208
CPDFEditManager editManager = pdfView.getCPdfReaderView().getEditManager();
206209
if (!editManager.isEditMode()) {

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

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,15 +13,12 @@
1313
import android.net.Uri;
1414
import android.os.Build;
1515
import android.os.Bundle;
16-
import android.text.TextUtils;
1716

1817
import androidx.annotation.Nullable;
1918

2019
import com.compdfkit.tools.R;
2120
import com.compdfkit.tools.common.basic.activity.CPermissionActivity;
2221
import com.compdfkit.tools.common.pdf.config.CPDFConfiguration;
23-
import com.compdfkit.tools.common.utils.CFileUtils;
24-
import java.security.PublicKey;
2522

2623
public class CPDFDocumentActivity extends CPermissionActivity {
2724

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

Lines changed: 11 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111

1212
import static android.view.View.GONE;
1313
import static android.view.View.VISIBLE;
14+
import static com.compdfkit.tools.common.utils.customevent.CPDFCustomEventType.ADD_WATERMARK_DIALOG_DISMISSED;
1415
import static com.compdfkit.tools.contenteditor.CEditToolbar.SELECT_AREA_IMAGE;
1516
import static com.compdfkit.tools.contenteditor.CEditToolbar.SELECT_AREA_TEXT;
1617

@@ -60,6 +61,9 @@
6061
import com.compdfkit.tools.common.utils.activitycontracts.CSelectPDFDocumentResultContract;
6162
import com.compdfkit.tools.common.utils.animation.CFillScreenManager;
6263
import com.compdfkit.tools.common.utils.annotation.CPDFAnnotationManager;
64+
import com.compdfkit.tools.common.utils.customevent.CPDFCustomEventCallbackHelper;
65+
import com.compdfkit.tools.common.utils.customevent.CPDFCustomEventField;
66+
import com.compdfkit.tools.common.utils.customevent.CPDFCustomEventType;
6367
import com.compdfkit.tools.common.utils.dialog.CAlertDialog;
6468
import com.compdfkit.tools.common.utils.dialog.CExitTipsDialog;
6569
import com.compdfkit.tools.common.utils.glide.CPDFGlideInitializer;
@@ -102,7 +106,9 @@
102106

103107
import java.io.File;
104108
import java.util.ArrayList;
109+
import java.util.HashMap;
105110
import java.util.List;
111+
import java.util.Map;
106112

107113

108114
public class CPDFDocumentFragment extends CBasicPDFFragment {
@@ -337,7 +343,6 @@ public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceStat
337343
initEditBar();
338344
initSignatureToolbar();
339345
applyConfiguration();
340-
onDoNext();
341346
if (initListener != null) {
342347
initListener.compile(pdfView);
343348
}
@@ -480,24 +485,6 @@ protected void initToolBarView() {
480485
pdfToolBar.setMenuItems(this, cpdfConfiguration.toolbarConfig);
481486
}
482487

483-
protected void requestStoragePermissions(CRequestPermissionListener permissionListener) {
484-
if (Build.VERSION.SDK_INT >= CPermissionUtil.VERSION_TIRAMISU) {
485-
CPermissionUtil.openManageAllFileAppSettings(getContext());
486-
} else {
487-
multiplePermissionResultLauncher.launch(STORAGE_PERMISSIONS, result -> {
488-
if (CPermissionUtil.hasStoragePermissions(getContext())) {
489-
if (permissionListener != null) {
490-
permissionListener.request();
491-
}
492-
} else {
493-
if (!CPermissionUtil.shouldShowRequestPermissionRationale(requireActivity(), Manifest.permission.WRITE_EXTERNAL_STORAGE)) {
494-
showPermissionsRequiredDialog();
495-
}
496-
}
497-
});
498-
}
499-
}
500-
501488
protected void initAnnotToolbar() {
502489
annotationToolbar.initWithPDFView(pdfView);
503490
annotationToolbar.addAnnotationChangeListener(type -> {
@@ -720,12 +707,6 @@ public void selectDocument() {
720707
alertDialog.show(getChildFragmentManager(), "alertDialog");
721708
}
722709

723-
protected void onDoNext() {
724-
multiplePermissionResultLauncher.launch(STORAGE_PERMISSIONS, result -> {
725-
726-
});
727-
}
728-
729710
protected void showSettingEncryptionDialog() {
730711
CDocumentEncryptionDialog documentEncryptionDialog = CDocumentEncryptionDialog.newInstance();
731712
documentEncryptionDialog.setDocument(pdfView.getCPdfReaderView().getPDFDocument());
@@ -933,6 +914,11 @@ public void showAddWatermarkDialog(CPDFWatermarkConfig watermarkConfig) {
933914
pdfView.openPDF(pdfFile);
934915
}
935916
});
917+
watermarkEditDialog.setDismissListener(()-> {
918+
Map<String, Object> extraMap = new HashMap<>();
919+
extraMap.put(CPDFCustomEventField.CUSTOM_EVENT_TYPE, ADD_WATERMARK_DIALOG_DISMISSED);
920+
CPDFCustomEventCallbackHelper.getInstance().notifyClick("", extraMap);
921+
});
936922
watermarkEditDialog.show(getChildFragmentManager(), "watermarkEditDialog");
937923
}
938924

ComPDFKit_Tools/src/main/java/com/compdfkit/tools/common/utils/customevent/CPDFCustomEventField.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,6 @@ public class CPDFCustomEventField {
2323
public static final String IMAGE = "image";
2424
public static final String TEXT = "text";
2525
public static final String RECT = "rect";
26-
26+
public static final String STYLE_TYPE = "styleType";
2727

2828
}

ComPDFKit_Tools/src/main/java/com/compdfkit/tools/common/utils/customevent/CPDFCustomEventType.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,5 +14,11 @@ public class CPDFCustomEventType {
1414
public static final String CONTEXT_MENU_ITEM_TAPPED = "ContextMenuItem";
1515
public static final String INTERCEPT_ANNOTATION_DO_ACTION = "InterceptAnnotationDoAction";
1616
public static final String INTERCEPT_WIDGET_DO_ACTION = "InterceptWidgetDoAction";
17+
public static final String SEARCH_BACK_BUTTON_TAPPED = "SearchBackButtonTapped";
18+
public static final String ANNOTATION_STYLE_DIALOG_DISMISSED = "AnnotationStyleDialogDismissed";
19+
public static final String FORM_STYLE_DIALOG_DISMISSED = "FormStyleDialogDismissed";
20+
public static final String CONTENT_EDITOR_STYLE_DIALOG_DISMISSED = "ContentEditorStyleDialogDismissed";
21+
22+
public static final String ADD_WATERMARK_DIALOG_DISMISSED = "AddWatermarkDialogDismissed";
1723

1824
}

0 commit comments

Comments
 (0)