From 333d8bf80c68cc96b31a8e0e1c053289fe462fdb Mon Sep 17 00:00:00 2001 From: Erhard Brand Date: Thu, 21 Dec 2023 16:45:20 +0200 Subject: [PATCH 1/3] Customise measurement tools line --- ios/RCTPSPDFKit/RCTPSPDFKitView.m | 6 ++++++ ios/RCTPSPDFKit/RNConfigurationHelper.swift | 13 +++++++++++++ 2 files changed, 19 insertions(+) diff --git a/ios/RCTPSPDFKit/RCTPSPDFKitView.m b/ios/RCTPSPDFKit/RCTPSPDFKitView.m index 8a3e9426..96450b4e 100644 --- a/ios/RCTPSPDFKit/RCTPSPDFKitView.m +++ b/ios/RCTPSPDFKit/RCTPSPDFKitView.m @@ -12,6 +12,11 @@ #import "RCTConvert+PSPDFAnnotation.h" #import "RCTConvert+PSPDFViewMode.h" #import "RCTConvert+UIBarButtonItem.h" +#if __has_include("PSPDFKitReactNativeiOS-Swift.h") +#import "PSPDFKitReactNativeiOS-Swift.h" +#else +#import +#endif #define VALIDATE_DOCUMENT(document, ...) { if (!document.isValid) { NSLog(@"Document is invalid."); if (self.onDocumentLoadFailed) { self.onDocumentLoadFailed(@{@"error": @"Document is invalid."}); } return __VA_ARGS__; }} @@ -48,6 +53,7 @@ - (instancetype)initWithFrame:(CGRect)frame { [NSNotificationCenter.defaultCenter addObserver:self selector:@selector(spreadIndexDidChange:) name:PSPDFDocumentViewControllerSpreadIndexDidChangeNotification object:nil]; } + [Customization changeLineStyle]; return self; } diff --git a/ios/RCTPSPDFKit/RNConfigurationHelper.swift b/ios/RCTPSPDFKit/RNConfigurationHelper.swift index 76d356c8..58eab630 100644 --- a/ios/RCTPSPDFKit/RNConfigurationHelper.swift +++ b/ios/RCTPSPDFKit/RNConfigurationHelper.swift @@ -10,6 +10,19 @@ import Foundation import PSPDFKit +@objc public class Customization: NSObject { + + @objc public static func changeLineStyle() { + + let styleManager = PSPDFKit.SDK.shared.styleManager + let key = Annotation.ToolVariantID(tool: .line, variant: .distanceMeasurement) + + styleManager.setLastUsedValue([2] as NSArray, forProperty: #keyPath(LineAnnotation.__dashArray), forKey: key) + styleManager.setLastUsedValue(AbstractLineAnnotation.EndType.openArrow.rawValue, forProperty: #keyPath(LineAnnotation.lineEnd1), forKey: key) + styleManager.setLastUsedValue(AbstractLineAnnotation.EndType.openArrow.rawValue, forProperty: #keyPath(LineAnnotation.lineEnd2), forKey: key) + } +} + struct RNConfigurationHelper { var configuration: [String: Any] From da0ea2e227bf0bb5c7eeba2fad9397ee2f7d7e4d Mon Sep 17 00:00:00 2001 From: Erhard Brand Date: Fri, 2 Feb 2024 12:17:12 +0200 Subject: [PATCH 2/3] Update measurement customisation to use custom line dash --- ios/RCTPSPDFKit/RNConfigurationHelper.swift | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ios/RCTPSPDFKit/RNConfigurationHelper.swift b/ios/RCTPSPDFKit/RNConfigurationHelper.swift index 58eab630..d0fb903f 100644 --- a/ios/RCTPSPDFKit/RNConfigurationHelper.swift +++ b/ios/RCTPSPDFKit/RNConfigurationHelper.swift @@ -17,7 +17,7 @@ import PSPDFKit let styleManager = PSPDFKit.SDK.shared.styleManager let key = Annotation.ToolVariantID(tool: .line, variant: .distanceMeasurement) - styleManager.setLastUsedValue([2] as NSArray, forProperty: #keyPath(LineAnnotation.__dashArray), forKey: key) + styleManager.setLastUsedValue([5,3,1,3] as NSArray, forProperty: #keyPath(LineAnnotation.__dashArray), forKey: key) styleManager.setLastUsedValue(AbstractLineAnnotation.EndType.openArrow.rawValue, forProperty: #keyPath(LineAnnotation.lineEnd1), forKey: key) styleManager.setLastUsedValue(AbstractLineAnnotation.EndType.openArrow.rawValue, forProperty: #keyPath(LineAnnotation.lineEnd2), forKey: key) } From b0d7e0d05d43d1fa251aa2b0f71c1ba6d16b3332 Mon Sep 17 00:00:00 2001 From: Julius Kato Mutumba Date: Fri, 2 Feb 2024 18:55:42 +0300 Subject: [PATCH 3/3] added android changes --- android/build.gradle | 2 +- .../src/main/java/com/pspdfkit/views/PdfView.java | 12 ++++++++++++ react-native-pspdfkit.podspec | 4 ++-- 3 files changed, 15 insertions(+), 3 deletions(-) diff --git a/android/build.gradle b/android/build.gradle index 75049012..7adae56c 100644 --- a/android/build.gradle +++ b/android/build.gradle @@ -15,7 +15,7 @@ * Contains gradle configuration constants */ ext { - PSPDFKIT_VERSION = '8.10.0' + PSPDFKIT_VERSION = '2024.1.0' } buildscript { diff --git a/android/src/main/java/com/pspdfkit/views/PdfView.java b/android/src/main/java/com/pspdfkit/views/PdfView.java index 1e7d2974..b06de441 100644 --- a/android/src/main/java/com/pspdfkit/views/PdfView.java +++ b/android/src/main/java/com/pspdfkit/views/PdfView.java @@ -38,8 +38,10 @@ import com.pspdfkit.PSPDFKit; import com.pspdfkit.annotations.Annotation; import com.pspdfkit.annotations.AnnotationType; +import com.pspdfkit.annotations.BorderStyle; import com.pspdfkit.annotations.configuration.AnnotationConfiguration; import com.pspdfkit.annotations.configuration.FreeTextAnnotationConfiguration; +import com.pspdfkit.annotations.configuration.MeasurementDistanceAnnotationConfiguration; import com.pspdfkit.configuration.activity.PdfActivityConfiguration; import com.pspdfkit.document.DocumentSaveOptions; import com.pspdfkit.document.ImageDocument; @@ -72,6 +74,7 @@ import com.pspdfkit.ui.PdfUiFragmentBuilder; import com.pspdfkit.ui.fonts.Font; import com.pspdfkit.ui.fonts.FontManager; +import com.pspdfkit.ui.inspector.views.BorderStylePreset; import com.pspdfkit.ui.search.PdfSearchView; import com.pspdfkit.ui.search.PdfSearchViewInline; import com.pspdfkit.ui.special_mode.controller.AnnotationTool; @@ -553,6 +556,15 @@ public void onDocumentLoaded(@NonNull PdfDocument document) { } } } + + List customBorderStyle = List.of(5, 3, 1, 3); + List borderStylePresets = ((MeasurementDistanceAnnotationConfiguration) pdfFragment.getAnnotationConfiguration().get(AnnotationTool.MEASUREMENT_DISTANCE)).getBorderStylePresets(); + borderStylePresets.add(new BorderStylePreset(BorderStyle.DASHED, customBorderStyle)); + MeasurementDistanceAnnotationConfiguration measurementDistanceAnnotationConfiguration = MeasurementDistanceAnnotationConfiguration.builder(getContext()) + .setBorderStylePresets( + borderStylePresets + ).build(); + pdfFragment.getAnnotationConfiguration().put(AnnotationTool.MEASUREMENT_DISTANCE, measurementDistanceAnnotationConfiguration); } public void removeFragment(boolean makeInactive) { diff --git a/react-native-pspdfkit.podspec b/react-native-pspdfkit.podspec index 29bfa3cf..6acdbb48 100644 --- a/react-native-pspdfkit.podspec +++ b/react-native-pspdfkit.podspec @@ -20,7 +20,7 @@ Pod::Spec.new do |s| s.source = { git: "https://github.com/PSPDFKit/react-native" } s.source_files = "ios/*.{xcodeproj}", "ios/RCTPSPDFKit/*.{h,m,swift}", "ios/RCTPSPDFKit/Converters/*.{h,m,swift}" s.dependency("React") - s.dependency("PSPDFKit", "13.1.0") - s.dependency("Instant", "13.1.0") + s.dependency("PSPDFKit", "13.3.0") + s.dependency("Instant", "13.3.0") s.frameworks = "UIKit" end