diff --git a/packages/local_auth/local_auth/example/pubspec.yaml b/packages/local_auth/local_auth/example/pubspec.yaml index f39c76d15a71..0bd660845642 100644 --- a/packages/local_auth/local_auth/example/pubspec.yaml +++ b/packages/local_auth/local_auth/example/pubspec.yaml @@ -28,3 +28,7 @@ dev_dependencies: flutter: uses-material-design: true +# FOR TESTING AND INITIAL REVIEW ONLY. DO NOT MERGE. +# See https://github.com/flutter/flutter/blob/master/docs/ecosystem/contributing/README.md#changing-federated-plugins +dependency_overrides: + local_auth_darwin: {path: ../../../../packages/local_auth/local_auth_darwin} diff --git a/packages/local_auth/local_auth/pubspec.yaml b/packages/local_auth/local_auth/pubspec.yaml index bf35d018e959..79a16c3ea133 100644 --- a/packages/local_auth/local_auth/pubspec.yaml +++ b/packages/local_auth/local_auth/pubspec.yaml @@ -38,3 +38,7 @@ topics: - authentication - biometrics - local-auth +# FOR TESTING AND INITIAL REVIEW ONLY. DO NOT MERGE. +# See https://github.com/flutter/flutter/blob/master/docs/ecosystem/contributing/README.md#changing-federated-plugins +dependency_overrides: + local_auth_darwin: {path: ../../../packages/local_auth/local_auth_darwin} diff --git a/packages/local_auth/local_auth_darwin/CHANGELOG.md b/packages/local_auth/local_auth_darwin/CHANGELOG.md index d5a5766e0f71..37fb483817c0 100644 --- a/packages/local_auth/local_auth_darwin/CHANGELOG.md +++ b/packages/local_auth/local_auth_darwin/CHANGELOG.md @@ -1,5 +1,6 @@ -## NEXT +## 2.0.4 +* Adds support for localizedCancelTitle. * Updates minimum supported SDK version to Flutter 3.38/Dart 3.10. ## 2.0.3 diff --git a/packages/local_auth/local_auth_darwin/darwin/Tests/FLALocalAuthPluginTests.swift b/packages/local_auth/local_auth_darwin/darwin/Tests/FLALocalAuthPluginTests.swift index 492a949dacd1..74ffaaa4a90f 100644 --- a/packages/local_auth/local_auth_darwin/darwin/Tests/FLALocalAuthPluginTests.swift +++ b/packages/local_auth/local_auth_darwin/darwin/Tests/FLALocalAuthPluginTests.swift @@ -47,6 +47,7 @@ final class StubAuthContext: NSObject, AuthContext, @unchecked Sendable { // Overridden as read-write to allow stubbing. var biometryType: LABiometryType = .none var localizedFallbackTitle: String? + var localizedCancelTitle: String? func canEvaluatePolicy(_ policy: LAPolicy, error: NSErrorPointer) -> Bool { #expect( @@ -333,6 +334,26 @@ struct LocalAuthPluginTests { } } + @Test + func localizedCancelTitle() async { + let stubAuthContext = StubAuthContext() + let plugin = LocalAuthPlugin( + contextFactory: StubAuthContextFactory(contexts: [stubAuthContext])) + + let strings = createAuthStrings() + stubAuthContext.evaluateResponse = true + + await withCheckedContinuation { continuation in + plugin.authenticate( + options: AuthOptions(biometricOnly: false, sticky: false), + strings: strings + ) { resultDetails in + #expect(stubAuthContext.localizedCancelTitle == strings.cancelButton) + continuation.resume() + } + } + } + @Test func deviceSupportsBiometricsWithEnrolledHardware() throws { let stubAuthContext = StubAuthContext() diff --git a/packages/local_auth/local_auth_darwin/darwin/local_auth_darwin/Sources/local_auth_darwin/LocalAuthPlugin.swift b/packages/local_auth/local_auth_darwin/darwin/local_auth_darwin/Sources/local_auth_darwin/LocalAuthPlugin.swift index e93b1977f3c5..40e22206b0d1 100644 --- a/packages/local_auth/local_auth_darwin/darwin/local_auth_darwin/Sources/local_auth_darwin/LocalAuthPlugin.swift +++ b/packages/local_auth/local_auth_darwin/darwin/local_auth_darwin/Sources/local_auth_darwin/LocalAuthPlugin.swift @@ -76,6 +76,7 @@ public final class LocalAuthPlugin: NSObject, FlutterPlugin, LocalAuthApi, @unch var context = authContextFactory.createAuthContext() lastCallState = nil context.localizedFallbackTitle = strings.localizedFallbackTitle + context.localizedCancelTitle = strings.cancelButton let policy = options.biometricOnly diff --git a/packages/local_auth/local_auth_darwin/darwin/local_auth_darwin/Sources/local_auth_darwin/SystemWrappers.swift b/packages/local_auth/local_auth_darwin/darwin/local_auth_darwin/Sources/local_auth_darwin/SystemWrappers.swift index f9bec200ba61..3bf5c3000374 100644 --- a/packages/local_auth/local_auth_darwin/darwin/local_auth_darwin/Sources/local_auth_darwin/SystemWrappers.swift +++ b/packages/local_auth/local_auth_darwin/darwin/local_auth_darwin/Sources/local_auth_darwin/SystemWrappers.swift @@ -18,6 +18,9 @@ protocol AuthContext { /// Direct passthrough to LAContext's localizedFallbackTitle. var localizedFallbackTitle: String? { get set } + /// Direct passthrough to LAContext's localizedCancelTitle. + var localizedCancelTitle: String? { get set } + /// Direct passthrough to LAContext's biometry type. var biometryType: LABiometryType { get } diff --git a/packages/local_auth/local_auth_darwin/pubspec.yaml b/packages/local_auth/local_auth_darwin/pubspec.yaml index 976f2a614523..0933ac7b6be8 100644 --- a/packages/local_auth/local_auth_darwin/pubspec.yaml +++ b/packages/local_auth/local_auth_darwin/pubspec.yaml @@ -2,7 +2,7 @@ name: local_auth_darwin description: iOS implementation of the local_auth plugin. repository: https://github.com/flutter/packages/tree/main/packages/local_auth/local_auth_darwin issue_tracker: https://github.com/flutter/flutter/issues?q=is%3Aissue+is%3Aopen+label%3A%22p%3A+local_auth%22 -version: 2.0.3 +version: 2.0.4 environment: sdk: ^3.10.0