Skip to content

Commit 6e9787c

Browse files
author
PSPDFKit
committed
Release 3.12.1
1 parent cf2375b commit 6e9787c

15 files changed

+113
-54
lines changed

Diff for: CHANGELOG.md

+17-9
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,31 @@
11
## Newest Release
22

3+
### 3.12.1 - 11 Sep 2024
4+
5+
- Updates for PSPDFKit 2024.5.1 for Android. (J#HYB-506)
6+
- Updates for PSPDFKit 13.9.1 for iOS. (J#HYB-506)
7+
- PSPDFKit for Flutter now requires Flutter 3.24.1 or later.
8+
- Fixes an issue where some annotation toolbar items are not displayed when custom grouping is used. (J#HYB-440)
9+
- Fixes an issue where `onDocumentLoaded` is triggered multiple times. (J#HYB-494)
10+
11+
## Previous Releases
12+
313
### 3.12.0 - 30 Jul 2024
414

5-
- Adds `zoomToRect` and `getVisibleRect` APIs to PspdfkitWidgetController. (J#HYB-429)
6-
- Added `processAnnotations` API support for Android. (J#HYB-426)
7-
- Updated the `processAnnotations` parameter types to enums `AnnotationType` and `AnnotationProcessingMode`. (#44722)
15+
- Adds `zoomToRect` and `getVisibleRect` APIs to `PspdfkitWidgetController`. (J#HYB-429)
16+
- Adds `processAnnotations` API support for Android. (J#HYB-426)
17+
- Updates the `processAnnotations` parameter types to `AnnotationType` and `AnnotationProcessingMode` enums. (#44722)
818
- Updates for PSPDFKit 2024.4.0 for Android. (J#HYB-422)
919
- Updates for PSPDFKit 13.8.0 for iOS. (J#HYB-422)
1020

11-
## Previous Releases
12-
1321
### 3.11.0 - 21 Jun 2024
1422

15-
- Adds API to get form filed properties to PdfDocument. (J#HYB-169)
16-
- Adds instant synchronization support on Web. (J#HYB-377)
23+
- Adds API to get form filled properties to `PdfDocument`. (J#HYB-169)
24+
- Adds Instant synchronization support on Web. (J#HYB-377)
1725

1826
### 3.10.1 - 28 May 2024
1927

20-
- Fixes issue where ViewUtils.generateViewId() cannot be resolved. (J#HYB-379)
28+
- Fixes an issue where `ViewUtils.generateViewId()` cannot be resolved. (J#HYB-379)
2129

2230
### 3.10.0 - 03 May 2024
2331

@@ -137,7 +145,7 @@
137145

138146
### 3.2.0 - 14 Feb 2022
139147

140-
- This release requires you to update your Android project's `compileSdkVersion` to version 31. Please refer to [our migration guide](https://pspdfkit.com/guides/flutter/migration-guides/flutter-3-2-migration-guide/) for this release.
148+
- This release requires you to update your Android project's `compileSdkVersion` to version 31. Please refer to [our migration guide](https://pspdfkit.com/guides/flutter/migration-guides/flutter-3-2-migration-guide) for this release.
141149
- PSPDFKit now requires Flutter 2.10.1 or later. (#33016)
142150
- Adds a new configuration option to disable autosave. (#32857)
143151
- Adds a new example illustrating manual saving of documents with autosave disabled. (#32857)

Diff for: android/config.gradle

+1-1
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ if (pspdfkitMavenUrl == null || pspdfkitMavenUrl == '') {
3838

3939
ext.pspdfkitVersion = localProperties.getProperty('pspdfkit.version')
4040
if (pspdfkitVersion == null || pspdfkitVersion == '') {
41-
ext.pspdfkitVersion = '2024.4.0'
41+
ext.pspdfkitVersion = '2024.5.1'
4242
}
4343

4444
ext.pspdfkitMavenModuleName = 'pspdfkit'

Diff for: android/src/main/java/com/pspdfkit/flutter/pspdfkit/PSPDFKitView.kt

+11-3
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,8 @@ internal class PSPDFKitView(
5959
private var fragmentContainerView: FragmentContainerView? = FragmentContainerView(context)
6060
private val methodChannel: MethodChannel
6161
private val pdfUiFragment: PdfUiFragment
62-
62+
private var fragmentCallbacks: FlutterPdfUiFragmentCallbacks? = null
63+
6364
init {
6465
fragmentContainerView?.id = View.generateViewId()
6566
methodChannel = MethodChannel(messenger, "com.pspdfkit.widget.$id")
@@ -92,8 +93,11 @@ internal class PSPDFKitView(
9293
.build()
9394
}
9495
}
95-
getFragmentActivity(context).supportFragmentManager.registerFragmentLifecycleCallbacks(FlutterPdfUiFragmentCallbacks(methodChannel,
96-
measurementValueConfigurations, messenger), true)
96+
fragmentCallbacks = FlutterPdfUiFragmentCallbacks(methodChannel,
97+
measurementValueConfigurations, messenger)
98+
fragmentCallbacks?.let {
99+
getFragmentActivity(context).supportFragmentManager.registerFragmentLifecycleCallbacks(it, true)
100+
}
97101
getFragmentActivity(context).supportFragmentManager.registerFragmentLifecycleCallbacks( object : FragmentManager.FragmentLifecycleCallbacks() {
98102
override fun onFragmentAttached(
99103
fm: FragmentManager,
@@ -136,6 +140,10 @@ internal class PSPDFKitView(
136140

137141
override fun dispose() {
138142
fragmentContainerView = null
143+
fragmentCallbacks?.let {
144+
getFragmentActivity(context).supportFragmentManager.unregisterFragmentLifecycleCallbacks(it)
145+
}
146+
fragmentCallbacks = null
139147
}
140148

141149
@SuppressLint("CheckResult")

Diff for: android/src/main/java/com/pspdfkit/flutter/pspdfkit/toolbar/FlutterMenuGroupingRule.kt

+1-1
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,7 @@ class FlutterMenuGroupingRule(context: Context, menuItems: List<Any>) :
7777
"squiggly" -> return R.id.pspdf__annotation_creation_toolbar_item_squiggly
7878
"strikeout" -> return R.id.pspdf__annotation_creation_toolbar_item_strikeout
7979
"underline" -> return R.id.pspdf__annotation_creation_toolbar_item_underline
80-
"freetext" -> return R.id.pspdf__annotation_creation_toolbar_item_freetext
80+
"freeText" -> return R.id.pspdf__annotation_creation_toolbar_item_freetext
8181
"freeTextCallout" -> return R.id.pspdf__annotation_creation_toolbar_item_freetext_callout
8282
"signature" -> return R.id.pspdf__annotation_creation_toolbar_item_signature
8383
"pen" -> return R.id.pspdf__annotation_creation_toolbar_item_ink_pen

Diff for: example/lib/pspdfkit_instant_collaboration_example.dart

+2-1
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,8 @@ class _PspdfkitInstantCollaborationExampleState
5050
style: const TextStyle(color: Colors.black),
5151
children: [
5252
TextSpan(
53-
text: 'https://web-examples.services.demo.pspdfkit.com',
53+
text:
54+
'https://web-examples.services.demo.pspdfkit.com',
5455
style: const TextStyle(color: Colors.blue),
5556
recognizer: TapGestureRecognizer()
5657
..onTap = () {

Diff for: example/pubspec.yaml

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
name: pspdfkit_example
22
description: Demonstrates how to use the pspdfkit plugin.
3-
version: 3.12.0
3+
version: 3.12.1
44
homepage: https://pspdfkit.com/
55
publish_to: 'none' # Remove this line if you wish to publish to pub.dev
66
environment:

Diff for: ios/Classes/AnnotationToolbarItemsGrouping.swift

+39-29
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ public class AnnotationToolbarItemsGrouping: NSObject {
1515
static let annotationUnderline = "underline"
1616
static let annotationSquiggly = "squiggly"
1717
static let annotationNote = "note"
18-
static let annotationFreeText = "freetext"
18+
static let annotationFreeText = "freeText"
1919
static let annotationInk = "ink"
2020
static let annotationLine = "line"
2121
static let annotationSquare = "square"
@@ -30,19 +30,19 @@ public class AnnotationToolbarItemsGrouping: NSObject {
3030
static let annotationRedaction = "redaction"
3131
static let annotationDistanceMeasurement = "distance"
3232
static let annotationPerimeterMeasurement = "perimeter"
33-
static let annotationPolygonalAreaMeasurement = "area_polygon"
34-
static let annotationEllipticalAreaMeasurement = "area_circle"
35-
static let annotationSquareAreaMeasurement = "area_square"
33+
static let annotationPolygonalAreaMeasurement = "areaPolygon"
34+
static let annotationEllipticalAreaMeasurement = "areaCircle"
35+
static let annotationSquareAreaMeasurement = "areaSquare"
3636
static let annotationInkPen = "pen"
37-
static let annotationInkMagic = "magic_ink"
37+
static let annotationInkMagic = "magicInk"
3838
static let annotationInkHighlighter = "highlighter"
3939
static let annotationLineArrow = "arrow"
40-
static let annotationFreeTextCallout = "freetext_callout"
41-
static let annotationPolygonCloud = "cloudy_polygon"
40+
static let annotationFreeTextCallout = "freeTextCallout"
41+
static let annotationPolygonCloud = "cloudyPolygon"
4242
static let annotationTextHighlighter = "highlight"
4343
static let annotationWidget = "widget"
4444
static let annotationCaret = "caret"
45-
static let annotationHighligh = "highlight"
45+
static let annotationHighlight = "highlight"
4646
static let annotationInstantCommentMarker = "instantCommentMarker"
4747
static let annotationScreen = "screen"
4848
static let annotationFile = "file"
@@ -54,25 +54,25 @@ public class AnnotationToolbarItemsGrouping: NSObject {
5454
@objc public static func convertAnnotationToolbarConfiguration(toolbarItems: NSArray) -> AnnotationToolConfiguration {
5555
var parsedItems: [AnnotationToolConfiguration.ToolGroup] = []
5656

57-
for itemToParse in toolbarItems {
58-
if let dict = itemToParse as? [String: Any] {
59-
let subArray = dict["items"] as! [Any]
60-
var subItems: [AnnotationToolConfiguration.ToolItem] = []
61-
62-
for subItem in subArray {
63-
let annotationString = annotationStringFromName(name: subItem as! String)
64-
if annotationString != nil {
65-
subItems.append(AnnotationToolConfiguration.ToolItem(type: annotationString!, variant: annotationVariantStringFromName(name: subItem as! String), configurationBlock: annotationGroupItemConfigurationBlockFromName(name: subItem as! String)))
66-
}
67-
}
68-
69-
parsedItems.append(AnnotationToolConfiguration.ToolGroup(items: subItems))
70-
71-
} else {
72-
let annotationString = annotationStringFromName(name: itemToParse as! String)
73-
if annotationString != nil {
74-
parsedItems.append(AnnotationToolConfiguration.ToolGroup(items: [AnnotationToolConfiguration.ToolItem(type: annotationString!, variant: annotationVariantStringFromName(name: itemToParse as! String), configurationBlock: annotationGroupItemConfigurationBlockFromName(name: itemToParse as! String))]))
75-
}
57+
for itemToParse in toolbarItems {
58+
if let dict = itemToParse as? [String: Any] {
59+
let subArray = dict["items"] as! [Any]
60+
var subItems: [AnnotationToolConfiguration.ToolItem] = []
61+
62+
for subItem in subArray {
63+
let annotationString = annotationStringFromName(name: subItem as! String)
64+
if annotationString != nil {
65+
subItems.append(AnnotationToolConfiguration.ToolItem(type: annotationString!, variant: annotationVariantStringFromName(name: subItem as! String), configurationBlock: annotationGroupItemConfigurationBlockFromName(name: subItem as! String)))
66+
}
67+
}
68+
parsedItems.append(AnnotationToolConfiguration.ToolGroup(items: subItems))
69+
} else {
70+
let annotationType = annotationStringFromName(name: itemToParse as! String)
71+
let annotationVariant = annotationVariantStringFromName(name: itemToParse as! String)
72+
73+
if annotationType != nil {
74+
parsedItems.append(AnnotationToolConfiguration.ToolGroup(items: [AnnotationToolConfiguration.ToolItem(type: annotationType!, variant: annotationVariant, configurationBlock: annotationGroupItemConfigurationBlockFromName(name: itemToParse as? String ?? ""))]))
75+
}
7676
}
7777
}
7878
return PSPDFKit.AnnotationToolConfiguration(annotationGroups: parsedItems)
@@ -102,13 +102,23 @@ public class AnnotationToolbarItemsGrouping: NSObject {
102102
annotationSignature: .signature,
103103
annotationWidget: .widget,
104104
annotationFile: .file,
105-
annotationHighligh: .highlight,
105+
annotationHighlight: .highlight,
106106
annotationCaret: .caret,
107107
annotationInstantCommentMarker: .instantCommentMarker,
108108
annotationMultimedia: .richMedia,
109109
annotationWatermark: .watermark,
110110
annotationScreen: .screen,
111-
annotationTrapNet: .trapNet
111+
annotationTrapNet: .trapNet,
112+
annotationInkPen: .ink,
113+
annotationInkHighlighter: .ink,
114+
annotationPolygonCloud: .polygon,
115+
annotationSquareAreaMeasurement: .square,
116+
annotationDistanceMeasurement: .line,
117+
annotationEllipticalAreaMeasurement:.circle,
118+
annotationLineArrow: .line,
119+
annotationInkMagic: .ink,
120+
annotationFreeTextCallout: .freeText,
121+
annotationPolygonalAreaMeasurement: .polygon
112122
]
113123
return nameToAnnotationStringMapping[name]
114124
}

Diff for: ios/pspdfkit_flutter.podspec

+4-4
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
#
66
Pod::Spec.new do |s|
77
s.name = "pspdfkit_flutter"
8-
s.version = "3.12.0"
8+
s.version = "3.12.1"
99
s.homepage = "https://PSPDFKit.com"
1010
s.documentation_url = "https://pspdfkit.com/guides/flutter"
1111
s.license = { type: "Commercial", file: "../LICENSE" }
@@ -18,10 +18,10 @@ Pod::Spec.new do |s|
1818
s.source_files = "Classes/**/*.{h,m,swift}"
1919
s.public_header_files = "Classes/**/*.h"
2020
s.dependency("Flutter")
21-
s.dependency("PSPDFKit", "13.8.0")
22-
s.dependency("Instant", "13.8.0")
21+
s.dependency("PSPDFKit", "13.9.1")
22+
s.dependency("Instant", "13.9.1")
2323
s.swift_version = "5.0"
2424
s.platform = :ios, "15.0"
25-
s.version = "3.12.0"
25+
s.version = "3.12.1"
2626
s.pod_target_xcconfig = { "DEFINES_MODULE" => "YES", "SWIFT_INSTALL_OBJC_HEADER" => "NO" }
2727
end

Diff for: lib/src/document/pdf_document_native.dart

-1
Original file line numberDiff line numberDiff line change
@@ -73,5 +73,4 @@ class PdfDocumentNative extends PdfDocument {
7373
throw Exception('Error getting form fields: $error');
7474
});
7575
}
76-
7776
}

Diff for: lib/src/document/pdf_document_web.dart

-1
Original file line numberDiff line numberDiff line change
@@ -40,5 +40,4 @@ class PdfDocumentWeb extends PdfDocument {
4040
Future<List<PdfFormField>> getFormFields() {
4141
return _instance.getFormFields();
4242
}
43-
4443
}

Diff for: lib/src/toolbar/annotation_toolbar_items.dart

+9-2
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,12 @@
1+
///
2+
/// Copyright © 2024 PSPDFKit GmbH. All rights reserved.
3+
///
4+
/// THIS SOURCE CODE AND ANY ACCOMPANYING DOCUMENTATION ARE PROTECTED BY INTERNATIONAL COPYRIGHT LAW
5+
/// AND MAY NOT BE RESOLD OR REDISTRIBUTED. USAGE IS BOUND TO THE PSPDFKIT LICENSE AGREEMENT.
6+
/// UNAUTHORIZED REPRODUCTION OR DISTRIBUTION IS SUBJECT TO CIVIL AND CRIMINAL PENALTIES.
7+
/// This notice may not be removed from this file.
8+
///
9+
110
enum AnnotationToolbarItem {
211
markup,
312
writing,
@@ -52,5 +61,3 @@ enum AnnotationToolbarItem {
5261
watermark,
5362
file,
5463
}
55-
56-

Diff for: lib/src/toolbar/toolbar.dart

+9
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,12 @@
1+
///
2+
/// Copyright © 2023-2024 PSPDFKit GmbH. All rights reserved.
3+
///
4+
/// THIS SOURCE CODE AND ANY ACCOMPANYING DOCUMENTATION ARE PROTECTED BY INTERNATIONAL COPYRIGHT LAW
5+
/// AND MAY NOT BE RESOLD OR REDISTRIBUTED. USAGE IS BOUND TO THE PSPDFKIT LICENSE AGREEMENT.
6+
/// UNAUTHORIZED REPRODUCTION OR DISTRIBUTION IS SUBJECT TO CIVIL AND CRIMINAL PENALTIES.
7+
/// This notice may not be removed from this file.
8+
///
9+
110
export 'toolbar_item_grouping.dart';
211
export 'annotation_toolbar_items.dart';
312
export 'toolbar_items.dart';

Diff for: lib/src/toolbar/toolbar_item_grouping.dart

+9
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,12 @@
1+
///
2+
/// Copyright © 2024 PSPDFKit GmbH. All rights reserved.
3+
///
4+
/// THIS SOURCE CODE AND ANY ACCOMPANYING DOCUMENTATION ARE PROTECTED BY INTERNATIONAL COPYRIGHT LAW
5+
/// AND MAY NOT BE RESOLD OR REDISTRIBUTED. USAGE IS BOUND TO THE PSPDFKIT LICENSE AGREEMENT.
6+
/// UNAUTHORIZED REPRODUCTION OR DISTRIBUTION IS SUBJECT TO CIVIL AND CRIMINAL PENALTIES.
7+
/// This notice may not be removed from this file.
8+
///
9+
110
import 'package:pspdfkit_flutter/src/toolbar/annotation_toolbar_items.dart';
211

312
class AnnotationToolsGroup {

Diff for: lib/src/toolbar/toolbar_items.dart

+9
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,12 @@
1+
///
2+
/// Copyright © 2024 PSPDFKit GmbH. All rights reserved.
3+
///
4+
/// THIS SOURCE CODE AND ANY ACCOMPANYING DOCUMENTATION ARE PROTECTED BY INTERNATIONAL COPYRIGHT LAW
5+
/// AND MAY NOT BE RESOLD OR REDISTRIBUTED. USAGE IS BOUND TO THE PSPDFKIT LICENSE AGREEMENT.
6+
/// UNAUTHORIZED REPRODUCTION OR DISTRIBUTION IS SUBJECT TO CIVIL AND CRIMINAL PENALTIES.
7+
/// This notice may not be removed from this file.
8+
///
9+
110
enum ToolbarItems {
211
search,
312
thumbnails,

Diff for: pubspec.yaml

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
name: pspdfkit_flutter
22
description: A Flutter plugin providing a feature-rich PDF viewing and editing experience to your users with the powerful PSPDFKit PDF SDK.
3-
version: 3.12.0
3+
version: 3.12.1
44
homepage: https://pspdfkit.com/
55
repository: https://github.com/PSPDFKit/pspdfkit-flutter
66
issue_tracker: https://support.pspdfkit.com/hc/en-us/requests/new

0 commit comments

Comments
 (0)