From c03ce1bf5b8738ced1d30acf740be778d65af950 Mon Sep 17 00:00:00 2001 From: sgong-pdftron Date: Tue, 12 Nov 2019 12:07:00 -0800 Subject: [PATCH] Annotation author (#36) * Add annotationAuthor prop * author for android --- README.md | 4 ++++ .../reactnative/viewmanagers/DocumentViewViewManager.java | 5 +++++ .../java/com/pdftron/reactnative/views/DocumentView.java | 8 ++++++++ ios/RNTPTDocumentView.h | 2 ++ ios/RNTPTDocumentView.m | 5 +++++ ios/RNTPTDocumentViewManager.m | 7 +++++++ src/DocumentView/DocumentView.js | 1 + 7 files changed, 32 insertions(+) diff --git a/README.md b/README.md index 3093697f2..6f8b029f2 100644 --- a/README.md +++ b/README.md @@ -280,6 +280,7 @@ A component for displaying documents of different types such as PDF, docx, pptx, - [disabledTools](#disabledtools) - [customHeaders](#customheaders) - [readOnly](#readonly) +- [annotationAuthor](#annotationauthor) - [continuousAnnotationEditing](#continuousannotationediting) - [fitMode](#fitmode) - [layoutMode](#layoutmode) @@ -312,6 +313,8 @@ array of string, optional object, optional ##### readOnly bool, optional +##### annotationAuthor +string, optional ##### continuousAnnotationEditing bool, optional ##### fitMode @@ -365,6 +368,7 @@ import { DocumentView, Config } from 'react-native-pdftron'; customHeaders={{Foo: bar}} initialPageNumber={11} readOnly={false} + annotationAuthor={'PDFTron'} continuousAnnotationEditing={true} fitMode={Config.FitMode.FitPage} layoutMode={Config.LayoutMode.Continuous} diff --git a/android/src/main/java/com/pdftron/reactnative/viewmanagers/DocumentViewViewManager.java b/android/src/main/java/com/pdftron/reactnative/viewmanagers/DocumentViewViewManager.java index 7ffbd72b2..329532bce 100644 --- a/android/src/main/java/com/pdftron/reactnative/viewmanagers/DocumentViewViewManager.java +++ b/android/src/main/java/com/pdftron/reactnative/viewmanagers/DocumentViewViewManager.java @@ -132,6 +132,11 @@ public void setContinuousAnnotationEditing(DocumentView documentView, boolean co documentView.setContinuousAnnotationEditing(contEditing); } + @ReactProp(name = "annotationAuthor") + public void setAnnotationAuthor(DocumentView documentView, String author) { + documentView.setAnnotationAuthor(author); + } + public void importAnnotations(int tag, String xfdf) throws PDFNetException { DocumentView documentView = mDocumentViews.get(tag); if (documentView != null) { diff --git a/android/src/main/java/com/pdftron/reactnative/views/DocumentView.java b/android/src/main/java/com/pdftron/reactnative/views/DocumentView.java index fc9779823..4691b701b 100644 --- a/android/src/main/java/com/pdftron/reactnative/views/DocumentView.java +++ b/android/src/main/java/com/pdftron/reactnative/views/DocumentView.java @@ -221,6 +221,14 @@ public void setContinuousAnnotationEditing(boolean contEditing) { } } + public void setAnnotationAuthor(String author) { + Context context = getContext(); + if (context != null && !Utils.isNullOrEmpty(author)) { + PdfViewCtrlSettingsManager.updateAuthorName(context, author); + PdfViewCtrlSettingsManager.setAnnotListShowAuthor(context, true); + } + } + private void disableElements(ReadableArray args) { for (int i = 0; i < args.size(); i++) { String item = args.getString(i); diff --git a/ios/RNTPTDocumentView.h b/ios/RNTPTDocumentView.h index d8d371ae4..d45262992 100644 --- a/ios/RNTPTDocumentView.h +++ b/ios/RNTPTDocumentView.h @@ -54,6 +54,8 @@ @property (nonatomic, copy) NSString *fitMode; @property (nonatomic, copy) NSString *layoutMode; +@property (nonatomic, copy) NSString *annotationAuthor; + @property (nonatomic) BOOL continuousAnnotationEditing; @property (nonatomic, copy) RCTBubblingEventBlock onChange; diff --git a/ios/RNTPTDocumentView.m b/ios/RNTPTDocumentView.m index 16fcf2bed..c65c644a3 100644 --- a/ios/RNTPTDocumentView.m +++ b/ios/RNTPTDocumentView.m @@ -841,6 +841,11 @@ - (void)setContinuousAnnotationEditing:(BOOL)continuousAnnotationEditing self.documentViewController.continuousAnnotationEditing = continuousAnnotationEditing; } +- (void)setAnnotationAuthor:(NSString *)annotationAuthor +{ + self.documentViewController.toolManager.annotationAuthor = annotationAuthor; +} + - (void)navButtonClicked { if([self.delegate respondsToSelector:@selector(navButtonClicked:)]) { diff --git a/ios/RNTPTDocumentViewManager.m b/ios/RNTPTDocumentViewManager.m index 0679a8742..4a635ea05 100644 --- a/ios/RNTPTDocumentViewManager.m +++ b/ios/RNTPTDocumentViewManager.m @@ -165,6 +165,13 @@ - (instancetype)init } } +RCT_CUSTOM_VIEW_PROPERTY(annotationAuthor, NSString, RNTPTDocumentView) +{ + if (json) { + view.annotationAuthor = [RCTConvert NSString:json]; + } +} + - (UIView *)view { RNTPTDocumentView *documentView = [[RNTPTDocumentView alloc] init]; diff --git a/src/DocumentView/DocumentView.js b/src/DocumentView/DocumentView.js index bd818e611..6bfb6bcd4 100644 --- a/src/DocumentView/DocumentView.js +++ b/src/DocumentView/DocumentView.js @@ -33,6 +33,7 @@ export default class DocumentView extends PureComponent { fitMode: PropTypes.string, layoutMode: PropTypes.string, continuousAnnotationEditing: PropTypes.bool, + annotationAuthor: PropTypes.string, ...ViewPropTypes, };