Skip to content

Commit 91651d8

Browse files
author
PSPDFKit
committed
Release 3.8.1
1 parent 84f8b59 commit 91651d8

12 files changed

+120
-217
lines changed

CHANGELOG.md

+5-5
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,10 @@
11
## Newest Release
22

3+
### 3.8.1 - 14 Feb 2024
4+
- Fixes callbacks when Pspdfkit.present() is used. (J#HYB-204)
5+
6+
## Previous Releases
7+
38
### 3.8.0 - 06 Feb 2024
49
- Adds Flutter for Web support. (#42151)
510
- Replaces configuration `Map` with a dedicated `PdfConfiguration` class. (#42191)
@@ -9,8 +14,6 @@
914
- Updates for PSPDFKit 13.3.0 for iOS. (#43305)
1015
- Compile SDK version 34 is now required on Android. (#43305)
1116

12-
## Previous Releases
13-
1417
### 3.7.2 - 12 Jan 2024
1518

1619
- Adds `flutterPdfFragmentAdded` callback for Android. (#42631)
@@ -20,9 +23,6 @@
2023

2124
- Fixes issue where iOS Appstore upload fails due to PSPDFKit Flutter missing "CFBundleShortVersionString" key. (#42166)
2225
- Fixes issue where Plugin returned "Document is missing or invalid" during pdfViewControllerWillDismiss events. (#42255)
23-
- Upgrades compileSDKVersion to 34. (#42293)
24-
- Upgrades Android Gradle Plugin to 8.1.2. (#42293)
25-
- Upgrades to Java 17 for Android. (#42293)
2626

2727
### 3.7.0 - 07 Sep 2023
2828

android/src/main/java/com/pspdfkit/flutter/pspdfkit/FlutterInstantPdfActivity.kt

+1
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@ class FlutterInstantPdfActivity : InstantPdfActivity() {
3939

4040
override fun onDocumentLoaded(pdfDocument: PdfDocument) {
4141
super.onDocumentLoaded(pdfDocument)
42+
EventDispatcher.getInstance().notifyDocumentLoaded(pdfDocument)
4243
val result = loadedDocumentResult.getAndSet(null)
4344
result?.success(true)
4445
}

android/src/main/java/com/pspdfkit/flutter/pspdfkit/FlutterPdfActivity.java

+1
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,7 @@ protected void onDestroy() {
6060
@Override
6161
public void onDocumentLoaded(@NonNull PdfDocument pdfDocument) {
6262
super.onDocumentLoaded(pdfDocument);
63+
EventDispatcher.getInstance().notifyDocumentLoaded(pdfDocument);
6364
Result result = loadedDocumentResult.getAndSet(null);
6465
if (result != null) {
6566
result.success(true);

example/android/app/build.gradle

+1-1
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ dependencies {
5050
testImplementation 'junit:junit:4.13.2'
5151
androidTestImplementation 'androidx.test:runner:1.5.2'
5252
androidTestImplementation 'androidx.test.espresso:espresso-core:3.5.1'
53-
implementation 'androidx.lifecycle:lifecycle-viewmodel-ktx:2.6.1'
53+
implementation 'androidx.lifecycle:lifecycle-viewmodel-ktx:2.7.0'
5454

5555
constraints {
5656
implementation("org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.8.0") {

example/ios/Flutter/AppFrameworkInfo.plist

+1-1
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,6 @@
2525
<string>arm64</string>
2626
</array>
2727
<key>MinimumOSVersion</key>
28-
<string>11.0</string>
28+
<string>12.0</string>
2929
</dict>
3030
</plist>

example/ios/Runner.xcodeproj/project.pbxproj

+2-2
Original file line numberDiff line numberDiff line change
@@ -148,7 +148,7 @@
148148
9705A1C41CF9048500538489 /* Embed Frameworks */,
149149
3B06AD1E1E4923F5004D2608 /* Thin Binary */,
150150
2CAD281880438BCF3C693E84 /* [CP] Embed Pods Frameworks */,
151-
63CCEC3AD4F9B18F3F6B2519 /* [CP] Copy Pods Resources */,
151+
7F2264DF4C89C2FFD706F8AE /* [CP] Copy Pods Resources */,
152152
);
153153
buildRules = (
154154
);
@@ -244,7 +244,7 @@
244244
shellPath = /bin/sh;
245245
shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" embed_and_thin";
246246
};
247-
63CCEC3AD4F9B18F3F6B2519 /* [CP] Copy Pods Resources */ = {
247+
7F2264DF4C89C2FFD706F8AE /* [CP] Copy Pods Resources */ = {
248248
isa = PBXShellScriptBuildPhase;
249249
buildActionMask = 2147483647;
250250
files = (

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.8.0
3+
version: 3.8.1
44
homepage: https://pspdfkit.com/
55
environment:
66
sdk: '>=2.17.0 <4.0.0'

ios/pspdfkit_flutter.podspec

+2-2
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.8.0"
8+
s.version = "3.8.1"
99
s.homepage = "https://PSPDFKit.com"
1010
s.documentation_url = "https://pspdfkit.com/guides/flutter"
1111
s.license = { type: "Commercial", file: "../LICENSE" }
@@ -22,6 +22,6 @@ Pod::Spec.new do |s|
2222
s.dependency("Instant", "13.3.0")
2323
s.swift_version = "5.0"
2424
s.platform = :ios, "15.0"
25-
s.version = "3.8.0"
25+
s.version = "3.8.1"
2626
s.pod_target_xcconfig = { "DEFINES_MODULE" => "YES", "SWIFT_INSTALL_OBJC_HEADER" => "NO" }
2727
end

lib/pspdfkit.dart

+55-98
Original file line numberDiff line numberDiff line change
@@ -222,117 +222,74 @@ class Pspdfkit {
222222
static Future<Directory> getTemporaryDirectory() =>
223223
PspdfkitFlutterPlatform.instance.getTemporaryDirectory();
224224

225-
/// onPause callback for FlutterPdfActivity
226-
static void Function()? flutterPdfActivityOnPause;
225+
/// onPause callback for FlutterPdfActivity. Only available on Android.
226+
static set flutterPdfActivityOnPause(
227+
VoidCallback? flutterPdfActivityOnPause) {
228+
PspdfkitFlutterPlatform.instance.flutterPdfActivityOnPause =
229+
flutterPdfActivityOnPause;
230+
}
227231

228-
/// Added callback for FlutterPdfFragment
229-
static void Function()? flutterPdfFragmentAdded;
232+
/// called when a PdfFragment is added. Only available on Android.
233+
static set flutterPdfFragmentAdded(VoidCallback? flutterPdfFragmentAdded) {
234+
PspdfkitFlutterPlatform.instance.flutterPdfFragmentAdded =
235+
flutterPdfFragmentAdded;
236+
}
230237

231-
/// ViewControllerWillDismiss callback for PDFViewController
232-
static void Function()? pdfViewControllerWillDismiss;
238+
/// Called when a document is loaded.
239+
static set pspdfkitDocumentLoaded(
240+
PspdfkitDocumentLoadedCallback? pspdfkitDocumentLoaded) {
241+
PspdfkitFlutterPlatform.instance.flutterPdfDocumentLoaded =
242+
pspdfkitDocumentLoaded;
243+
}
233244

234-
/// ViewControllerDidDismiss callback for PDFViewController
235-
static void Function()? pdfViewControllerDidDismiss;
245+
/// ViewControllerWillDismiss callback for PDFViewController. Only available on iOS.
246+
static set pdfViewControllerWillDismiss(
247+
VoidCallback? pdfViewControllerWillDismiss) {
248+
PspdfkitFlutterPlatform.instance.pdfViewControllerWillDismiss =
249+
pdfViewControllerWillDismiss;
250+
}
251+
252+
/// ViewControllerDidDismiss callback for PDFViewController. Only available on iOS.
253+
static set pdfViewControllerDidDismiss(VoidCallback? callback) {
254+
PspdfkitFlutterPlatform.instance.pdfViewControllerDidDismiss = callback;
255+
}
236256

237257
/// Called when instant synchronization starts.
238-
static void Function(String? documentId)? instantSyncStarted;
258+
static set instantSyncStarted(InstantSyncStartedCallback? callback) {
259+
PspdfkitFlutterPlatform.instance.instantSyncStarted = callback;
260+
}
239261

240262
/// Called when instant synchronization ends.
241-
static void Function(String? documentId)? instantSyncFinished;
263+
static set instantSyncFinished(InstantSyncFinishedCallback? callback) {
264+
PspdfkitFlutterPlatform.instance.instantSyncFinished = callback;
265+
}
242266

243267
/// Called when instant synchronization fails.
244-
static void Function(String? documentId, String? error)? instantSyncFailed;
268+
static set instantSyncFailed(InstantSyncFailedCallback? callback) {
269+
PspdfkitFlutterPlatform.instance.instantSyncFailed = callback;
270+
}
245271

246272
/// Called when instant authentication is done.
247-
static void Function(String documentId, String? validJWT)?
248-
instantAuthenticationFinished;
273+
static set instantAuthenticationFinished(
274+
InstantAuthenticationFinishedCallback? callback) {
275+
PspdfkitFlutterPlatform.instance.instantAuthenticationFinished = callback;
276+
}
249277

250278
/// Called when instant authentication fails.
251-
static void Function(String? documentId, String? error)?
252-
instantAuthenticationFailed;
253-
254-
/// Only available on iOS.
255-
/// Called when instant document download is done.
256-
static void Function(String? documentId)? instantDownloadFinished;
257-
258-
/// Only available on iOS.
259-
/// Called when instant document download fails.
260-
static void Function(String? documentId, String? error)?
261-
instantDownloadFailed;
262-
263-
/// Called with the document has been loaded
264-
static void Function(String? documentId)? pspdfkitDocumentLoaded;
265-
266-
static Future<void> _platformCallHandler(MethodCall call) {
267-
try {
268-
switch (call.method) {
269-
case 'flutterPdfActivityOnPause':
270-
flutterPdfActivityOnPause?.call();
271-
break;
272-
case 'flutterPdfFragmentAdded':
273-
flutterPdfFragmentAdded?.call();
274-
break;
275-
case 'pdfViewControllerWillDismiss':
276-
pdfViewControllerWillDismiss?.call();
277-
break;
278-
case 'pdfViewControllerDidDismiss':
279-
pdfViewControllerDidDismiss?.call();
280-
break;
281-
case 'pspdfkitInstantSyncStarted':
282-
instantSyncStarted?.call(call.arguments as String);
283-
break;
284-
case 'pspdfkitInstantSyncFinished':
285-
instantSyncFinished?.call(call.arguments as String);
286-
break;
287-
case 'pspdfkitInstantSyncFailed':
288-
{
289-
final Map<dynamic, dynamic> map =
290-
call.arguments as Map<dynamic, dynamic>;
291-
instantSyncFailed?.call(
292-
map['documentId'] as String, map['error'] as String);
293-
break;
294-
}
295-
case 'pspdfkitInstantAuthenticationFinished':
296-
{
297-
final Map<dynamic, dynamic> map =
298-
call.arguments as Map<dynamic, dynamic>;
299-
instantAuthenticationFinished?.call(
300-
map['documentId'] as String, map['jwt'] as String);
301-
break;
302-
}
303-
case 'pspdfkitInstantAuthenticationFailed':
304-
{
305-
final Map<dynamic, dynamic> arguments =
306-
call.arguments as Map<dynamic, dynamic>;
307-
instantAuthenticationFailed?.call(arguments['documentId'] as String,
308-
arguments['error'] as String);
309-
break;
310-
}
311-
case 'pspdfkitInstantDownloadFinished':
312-
instantDownloadFinished?.call(call.arguments as String);
313-
break;
314-
case 'pspdfkitInstantDownloadFailed':
315-
{
316-
final Map<dynamic, dynamic> arguments =
317-
call.arguments as Map<dynamic, dynamic>;
318-
instantDownloadFailed?.call(arguments['documentId'] as String,
319-
arguments['error'] as String);
320-
break;
321-
}
322-
case 'pspdfkitDocumentLoaded':
323-
pspdfkitDocumentLoaded?.call(call.arguments as String);
324-
break;
325-
default:
326-
if (kDebugMode) {
327-
print('Unknown method ${call.method} ');
328-
}
329-
}
330-
} catch (e) {
331-
if (kDebugMode) {
332-
print(e);
333-
}
334-
}
335-
return Future.value();
279+
static set instantAuthenticationFailed(
280+
InstantAuthenticationFailedCallback? callback) {
281+
PspdfkitFlutterPlatform.instance.instantAuthenticationFailed = callback;
282+
}
283+
284+
/// Called when instant document download is done.Only available on iOS.
285+
static set instantDownloadFinished(
286+
InstantDownloadFinishedCallback? callback) {
287+
PspdfkitFlutterPlatform.instance.instantDownloadFinished = callback;
288+
}
289+
290+
/// Called when instant document download fails. Only available on iOS.
291+
static set instantDownloadFailed(InstantDownloadFailedCallback? callback) {
292+
PspdfkitFlutterPlatform.instance.instantDownloadFailed = callback;
336293
}
337294
}
338295

lib/src/pspdfkit_flutter_method_channel.dart

+22-12
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@
88
///
99
///
1010
import 'dart:io';
11-
1211
import 'package:flutter/foundation.dart';
1312
import 'package:flutter/services.dart';
1413
import 'package:pspdfkit_flutter/pspdfkit.dart';
@@ -293,47 +292,58 @@ class MethodChannelPspdfkitFlutter extends PspdfkitFlutterPlatform {
293292
}
294293

295294
/// onPause callback for FlutterPdfActivity
295+
296+
@override
297+
set flutterPdfActivityOnPause(VoidCallback? flutterPdfActivityOnPause);
298+
299+
@override
300+
set flutterPdfFragmentAdded(VoidCallback? flutterPdfFragmentAdded);
301+
296302
@override
297-
void Function()? flutterPdfActivityOnPause;
303+
set flutterPdfDocumentLoaded(
304+
PspdfkitDocumentLoadedCallback? flutterPdfDocumentLoaded);
298305

299306
/// ViewControllerWillDismiss callback for PDFViewController
300307
@override
301-
void Function()? pdfViewControllerWillDismiss;
308+
set pdfViewControllerWillDismiss(VoidCallback? pdfViewControllerWillDismiss);
302309

303310
/// ViewControllerDidDismiss callback for PDFViewController
304311
@override
305-
void Function()? pdfViewControllerDidDismiss;
312+
set pdfViewControllerDidDismiss(VoidCallback? pdfViewControllerDidDismiss);
306313

307314
/// Called when instant synchronization starts.
308315
@override
309-
void Function(String? documentId)? instantSyncStarted;
316+
set instantSyncStarted(InstantSyncStartedCallback? instantSyncStarted);
310317

311318
/// Called when instant synchronization ends.
312319
@override
313-
void Function(String? documentId)? instantSyncFinished;
320+
set instantSyncFinished(InstantSyncFinishedCallback? instantSyncFinished);
314321

315322
/// Called when instant synchronization fails.
316323
@override
317-
void Function(String? documentId, String? error)? instantSyncFailed;
324+
set instantSyncFailed(InstantSyncFailedCallback? instantSyncFailed);
318325

319326
/// Called when instant authentication is done.
320327
@override
321-
void Function(String documentId, String? validJWT)?
322-
instantAuthenticationFinished;
328+
set instantAuthenticationFinished(
329+
InstantAuthenticationFinishedCallback? instantAuthenticationFinished);
323330

324331
/// Called when instant authentication fails.
325332
@override
326-
void Function(String? documentId, String? error)? instantAuthenticationFailed;
333+
set instantAuthenticationFailed(
334+
InstantAuthenticationFailedCallback? instantAuthenticationFailed);
327335

328336
/// Only available on iOS.
329337
/// Called when instant document download is done.
330338
@override
331-
void Function(String? documentId)? instantDownloadFinished;
339+
set instantDownloadFinished(
340+
InstantDownloadFinishedCallback? instantDownloadFinished);
332341

333342
/// Only available on iOS.
334343
/// Called when instant document download fails.
335344
@override
336-
void Function(String? documentId, String? error)? instantDownloadFailed;
345+
set instantDownloadFailed(
346+
InstantDownloadFailedCallback? instantDownloadFailed);
337347

338348
Future<void> _platformCallHandler(MethodCall call) {
339349
try {

0 commit comments

Comments
 (0)