Skip to content

Commit

Permalink
Release 3.8.1
Browse files Browse the repository at this point in the history
  • Loading branch information
PSPDFKit committed Feb 14, 2024
1 parent 84f8b59 commit 91651d8
Show file tree
Hide file tree
Showing 12 changed files with 120 additions and 217 deletions.
10 changes: 5 additions & 5 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,10 @@
## Newest Release

### 3.8.1 - 14 Feb 2024
- Fixes callbacks when Pspdfkit.present() is used. (J#HYB-204)

## Previous Releases

### 3.8.0 - 06 Feb 2024
- Adds Flutter for Web support. (#42151)
- Replaces configuration `Map` with a dedicated `PdfConfiguration` class. (#42191)
Expand All @@ -9,8 +14,6 @@
- Updates for PSPDFKit 13.3.0 for iOS. (#43305)
- Compile SDK version 34 is now required on Android. (#43305)

## Previous Releases

### 3.7.2 - 12 Jan 2024

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

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

### 3.7.0 - 07 Sep 2023

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,7 @@ class FlutterInstantPdfActivity : InstantPdfActivity() {

override fun onDocumentLoaded(pdfDocument: PdfDocument) {
super.onDocumentLoaded(pdfDocument)
EventDispatcher.getInstance().notifyDocumentLoaded(pdfDocument)
val result = loadedDocumentResult.getAndSet(null)
result?.success(true)
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -60,6 +60,7 @@ protected void onDestroy() {
@Override
public void onDocumentLoaded(@NonNull PdfDocument pdfDocument) {
super.onDocumentLoaded(pdfDocument);
EventDispatcher.getInstance().notifyDocumentLoaded(pdfDocument);
Result result = loadedDocumentResult.getAndSet(null);
if (result != null) {
result.success(true);
Expand Down
2 changes: 1 addition & 1 deletion example/android/app/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,7 @@ dependencies {
testImplementation 'junit:junit:4.13.2'
androidTestImplementation 'androidx.test:runner:1.5.2'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.5.1'
implementation 'androidx.lifecycle:lifecycle-viewmodel-ktx:2.6.1'
implementation 'androidx.lifecycle:lifecycle-viewmodel-ktx:2.7.0'

constraints {
implementation("org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.8.0") {
Expand Down
2 changes: 1 addition & 1 deletion example/ios/Flutter/AppFrameworkInfo.plist
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,6 @@
<string>arm64</string>
</array>
<key>MinimumOSVersion</key>
<string>11.0</string>
<string>12.0</string>
</dict>
</plist>
4 changes: 2 additions & 2 deletions example/ios/Runner.xcodeproj/project.pbxproj
Original file line number Diff line number Diff line change
Expand Up @@ -148,7 +148,7 @@
9705A1C41CF9048500538489 /* Embed Frameworks */,
3B06AD1E1E4923F5004D2608 /* Thin Binary */,
2CAD281880438BCF3C693E84 /* [CP] Embed Pods Frameworks */,
63CCEC3AD4F9B18F3F6B2519 /* [CP] Copy Pods Resources */,
7F2264DF4C89C2FFD706F8AE /* [CP] Copy Pods Resources */,
);
buildRules = (
);
Expand Down Expand Up @@ -244,7 +244,7 @@
shellPath = /bin/sh;
shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" embed_and_thin";
};
63CCEC3AD4F9B18F3F6B2519 /* [CP] Copy Pods Resources */ = {
7F2264DF4C89C2FFD706F8AE /* [CP] Copy Pods Resources */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
files = (
Expand Down
2 changes: 1 addition & 1 deletion example/pubspec.yaml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
name: pspdfkit_example
description: Demonstrates how to use the pspdfkit plugin.
version: 3.8.0
version: 3.8.1
homepage: https://pspdfkit.com/
environment:
sdk: '>=2.17.0 <4.0.0'
Expand Down
4 changes: 2 additions & 2 deletions ios/pspdfkit_flutter.podspec
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
#
Pod::Spec.new do |s|
s.name = "pspdfkit_flutter"
s.version = "3.8.0"
s.version = "3.8.1"
s.homepage = "https://PSPDFKit.com"
s.documentation_url = "https://pspdfkit.com/guides/flutter"
s.license = { type: "Commercial", file: "../LICENSE" }
Expand All @@ -22,6 +22,6 @@ Pod::Spec.new do |s|
s.dependency("Instant", "13.3.0")
s.swift_version = "5.0"
s.platform = :ios, "15.0"
s.version = "3.8.0"
s.version = "3.8.1"
s.pod_target_xcconfig = { "DEFINES_MODULE" => "YES", "SWIFT_INSTALL_OBJC_HEADER" => "NO" }
end
153 changes: 55 additions & 98 deletions lib/pspdfkit.dart
Original file line number Diff line number Diff line change
Expand Up @@ -222,117 +222,74 @@ class Pspdfkit {
static Future<Directory> getTemporaryDirectory() =>
PspdfkitFlutterPlatform.instance.getTemporaryDirectory();

/// onPause callback for FlutterPdfActivity
static void Function()? flutterPdfActivityOnPause;
/// onPause callback for FlutterPdfActivity. Only available on Android.
static set flutterPdfActivityOnPause(
VoidCallback? flutterPdfActivityOnPause) {
PspdfkitFlutterPlatform.instance.flutterPdfActivityOnPause =
flutterPdfActivityOnPause;
}

/// Added callback for FlutterPdfFragment
static void Function()? flutterPdfFragmentAdded;
/// called when a PdfFragment is added. Only available on Android.
static set flutterPdfFragmentAdded(VoidCallback? flutterPdfFragmentAdded) {
PspdfkitFlutterPlatform.instance.flutterPdfFragmentAdded =
flutterPdfFragmentAdded;
}

/// ViewControllerWillDismiss callback for PDFViewController
static void Function()? pdfViewControllerWillDismiss;
/// Called when a document is loaded.
static set pspdfkitDocumentLoaded(
PspdfkitDocumentLoadedCallback? pspdfkitDocumentLoaded) {
PspdfkitFlutterPlatform.instance.flutterPdfDocumentLoaded =
pspdfkitDocumentLoaded;
}

/// ViewControllerDidDismiss callback for PDFViewController
static void Function()? pdfViewControllerDidDismiss;
/// ViewControllerWillDismiss callback for PDFViewController. Only available on iOS.
static set pdfViewControllerWillDismiss(
VoidCallback? pdfViewControllerWillDismiss) {
PspdfkitFlutterPlatform.instance.pdfViewControllerWillDismiss =
pdfViewControllerWillDismiss;
}

/// ViewControllerDidDismiss callback for PDFViewController. Only available on iOS.
static set pdfViewControllerDidDismiss(VoidCallback? callback) {
PspdfkitFlutterPlatform.instance.pdfViewControllerDidDismiss = callback;
}

/// Called when instant synchronization starts.
static void Function(String? documentId)? instantSyncStarted;
static set instantSyncStarted(InstantSyncStartedCallback? callback) {
PspdfkitFlutterPlatform.instance.instantSyncStarted = callback;
}

/// Called when instant synchronization ends.
static void Function(String? documentId)? instantSyncFinished;
static set instantSyncFinished(InstantSyncFinishedCallback? callback) {
PspdfkitFlutterPlatform.instance.instantSyncFinished = callback;
}

/// Called when instant synchronization fails.
static void Function(String? documentId, String? error)? instantSyncFailed;
static set instantSyncFailed(InstantSyncFailedCallback? callback) {
PspdfkitFlutterPlatform.instance.instantSyncFailed = callback;
}

/// Called when instant authentication is done.
static void Function(String documentId, String? validJWT)?
instantAuthenticationFinished;
static set instantAuthenticationFinished(
InstantAuthenticationFinishedCallback? callback) {
PspdfkitFlutterPlatform.instance.instantAuthenticationFinished = callback;
}

/// Called when instant authentication fails.
static void Function(String? documentId, String? error)?
instantAuthenticationFailed;

/// Only available on iOS.
/// Called when instant document download is done.
static void Function(String? documentId)? instantDownloadFinished;

/// Only available on iOS.
/// Called when instant document download fails.
static void Function(String? documentId, String? error)?
instantDownloadFailed;

/// Called with the document has been loaded
static void Function(String? documentId)? pspdfkitDocumentLoaded;

static Future<void> _platformCallHandler(MethodCall call) {
try {
switch (call.method) {
case 'flutterPdfActivityOnPause':
flutterPdfActivityOnPause?.call();
break;
case 'flutterPdfFragmentAdded':
flutterPdfFragmentAdded?.call();
break;
case 'pdfViewControllerWillDismiss':
pdfViewControllerWillDismiss?.call();
break;
case 'pdfViewControllerDidDismiss':
pdfViewControllerDidDismiss?.call();
break;
case 'pspdfkitInstantSyncStarted':
instantSyncStarted?.call(call.arguments as String);
break;
case 'pspdfkitInstantSyncFinished':
instantSyncFinished?.call(call.arguments as String);
break;
case 'pspdfkitInstantSyncFailed':
{
final Map<dynamic, dynamic> map =
call.arguments as Map<dynamic, dynamic>;
instantSyncFailed?.call(
map['documentId'] as String, map['error'] as String);
break;
}
case 'pspdfkitInstantAuthenticationFinished':
{
final Map<dynamic, dynamic> map =
call.arguments as Map<dynamic, dynamic>;
instantAuthenticationFinished?.call(
map['documentId'] as String, map['jwt'] as String);
break;
}
case 'pspdfkitInstantAuthenticationFailed':
{
final Map<dynamic, dynamic> arguments =
call.arguments as Map<dynamic, dynamic>;
instantAuthenticationFailed?.call(arguments['documentId'] as String,
arguments['error'] as String);
break;
}
case 'pspdfkitInstantDownloadFinished':
instantDownloadFinished?.call(call.arguments as String);
break;
case 'pspdfkitInstantDownloadFailed':
{
final Map<dynamic, dynamic> arguments =
call.arguments as Map<dynamic, dynamic>;
instantDownloadFailed?.call(arguments['documentId'] as String,
arguments['error'] as String);
break;
}
case 'pspdfkitDocumentLoaded':
pspdfkitDocumentLoaded?.call(call.arguments as String);
break;
default:
if (kDebugMode) {
print('Unknown method ${call.method} ');
}
}
} catch (e) {
if (kDebugMode) {
print(e);
}
}
return Future.value();
static set instantAuthenticationFailed(
InstantAuthenticationFailedCallback? callback) {
PspdfkitFlutterPlatform.instance.instantAuthenticationFailed = callback;
}

/// Called when instant document download is done.Only available on iOS.
static set instantDownloadFinished(
InstantDownloadFinishedCallback? callback) {
PspdfkitFlutterPlatform.instance.instantDownloadFinished = callback;
}

/// Called when instant document download fails. Only available on iOS.
static set instantDownloadFailed(InstantDownloadFailedCallback? callback) {
PspdfkitFlutterPlatform.instance.instantDownloadFailed = callback;
}
}

Expand Down
34 changes: 22 additions & 12 deletions lib/src/pspdfkit_flutter_method_channel.dart
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,6 @@
///
///
import 'dart:io';

import 'package:flutter/foundation.dart';
import 'package:flutter/services.dart';
import 'package:pspdfkit_flutter/pspdfkit.dart';
Expand Down Expand Up @@ -293,47 +292,58 @@ class MethodChannelPspdfkitFlutter extends PspdfkitFlutterPlatform {
}

/// onPause callback for FlutterPdfActivity
@override
set flutterPdfActivityOnPause(VoidCallback? flutterPdfActivityOnPause);

@override
set flutterPdfFragmentAdded(VoidCallback? flutterPdfFragmentAdded);

@override
void Function()? flutterPdfActivityOnPause;
set flutterPdfDocumentLoaded(
PspdfkitDocumentLoadedCallback? flutterPdfDocumentLoaded);

/// ViewControllerWillDismiss callback for PDFViewController
@override
void Function()? pdfViewControllerWillDismiss;
set pdfViewControllerWillDismiss(VoidCallback? pdfViewControllerWillDismiss);

/// ViewControllerDidDismiss callback for PDFViewController
@override
void Function()? pdfViewControllerDidDismiss;
set pdfViewControllerDidDismiss(VoidCallback? pdfViewControllerDidDismiss);

/// Called when instant synchronization starts.
@override
void Function(String? documentId)? instantSyncStarted;
set instantSyncStarted(InstantSyncStartedCallback? instantSyncStarted);

/// Called when instant synchronization ends.
@override
void Function(String? documentId)? instantSyncFinished;
set instantSyncFinished(InstantSyncFinishedCallback? instantSyncFinished);

/// Called when instant synchronization fails.
@override
void Function(String? documentId, String? error)? instantSyncFailed;
set instantSyncFailed(InstantSyncFailedCallback? instantSyncFailed);

/// Called when instant authentication is done.
@override
void Function(String documentId, String? validJWT)?
instantAuthenticationFinished;
set instantAuthenticationFinished(
InstantAuthenticationFinishedCallback? instantAuthenticationFinished);

/// Called when instant authentication fails.
@override
void Function(String? documentId, String? error)? instantAuthenticationFailed;
set instantAuthenticationFailed(
InstantAuthenticationFailedCallback? instantAuthenticationFailed);

/// Only available on iOS.
/// Called when instant document download is done.
@override
void Function(String? documentId)? instantDownloadFinished;
set instantDownloadFinished(
InstantDownloadFinishedCallback? instantDownloadFinished);

/// Only available on iOS.
/// Called when instant document download fails.
@override
void Function(String? documentId, String? error)? instantDownloadFailed;
set instantDownloadFailed(
InstantDownloadFailedCallback? instantDownloadFailed);

Future<void> _platformCallHandler(MethodCall call) {
try {
Expand Down
Loading

0 comments on commit 91651d8

Please sign in to comment.