Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Dev 64080: Delegated authentication feature - Screens to Approve & Register #1275

Closed
wants to merge 104 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
104 commits
Select commit Hold shift + click to select a range
40c3859
registration & approval screens
robertdalmeida Mar 21, 2023
b1bb9f5
Renaming the localized keys for the remove alert
robertdalmeida Apr 5, 2023
4e56deb
Using the new sdk interface
robertdalmeida Apr 5, 2023
0de4be0
Fixed issue with showing the registration after a approval was rejected.
robertdalmeida Apr 13, 2023
e6135a2
Setup a clickable link in the textview
robertdalmeida Apr 13, 2023
6d0da81
Fixed issue with drop in component sizing.
robertdalmeida Apr 24, 2023
9878e53
Re writing the handler a bit to promote better readability in calling…
robertdalmeida Apr 24, 2023
adca4bd
Refactor method invoking delegate authentication
robertdalmeida Apr 24, 2023
e1f93ff
Consume the delegate authentication style
robertdalmeida Apr 24, 2023
3f90d9e
rename property to userInputState
robertdalmeida Apr 24, 2023
c20d109
Add an injectable localized parameters
robertdalmeida Apr 24, 2023
d01fa86
Remove some todos.
robertdalmeida Apr 24, 2023
883ef18
Make test target buildable
robertdalmeida Apr 24, 2023
a114021
Updating the adyenauthentication sdk version to 2.0.0
robertdalmeida May 4, 2023
2139de0
Updating the strings from Smartling
robertdalmeida May 4, 2023
258f13b
Don't show the registration flow for devices that don't support delga…
robertdalmeida May 8, 2023
94780d2
Fix pinning of the progress view text to the leading and trailing edges
robertdalmeida May 8, 2023
c94b4f9
Use the styling of the delegated authentication component and centeri…
robertdalmeida May 8, 2023
43fa2e7
Merge branch 'DEV-64080/Intermediate-DA-feature' into DEV-64080-scree…
robertdalmeida May 8, 2023
932634e
Add comments for public properties
robertdalmeida May 10, 2023
e96b751
Fixing review comments - adding header back
robertdalmeida May 10, 2023
ae44c1d
Removed unneeded references to self
robertdalmeida May 10, 2023
b15bec6
Separate the presentation of the DA screens into a presenter.
robertdalmeida May 11, 2023
e94eace
Need to change the key as pipeline fails due to shorthands
robertdalmeida May 15, 2023
0d1d041
capture self for X 14.1
robertdalmeida May 15, 2023
adcf108
adding direct reference to self
robertdalmeida May 15, 2023
4273327
Update the keys to include whole names instead of abbreviations to sa…
robertdalmeida May 15, 2023
7c3b038
Correct spelling of handler
robertdalmeida May 15, 2023
54d1e7b
Spelling correction
robertdalmeida May 15, 2023
80c42eb
Update the version of the AdyenAuthentication sdk in the test-SPM-int…
robertdalmeida May 16, 2023
8799efe
Pass the error upstream
robertdalmeida May 23, 2023
f65f8f8
Fixing some code smels
robertdalmeida May 23, 2023
7cd7b2e
Stale documentation
robertdalmeida May 23, 2023
2d9f350
Spelling of registration
robertdalmeida May 23, 2023
314453a
Corrected the comment
robertdalmeida May 23, 2023
e11611c
Add assertion when showing approval screen too.
robertdalmeida May 23, 2023
c3cf561
Correctec the naming of a parameter - delegatedAuthenticationComponen…
robertdalmeida May 23, 2023
3a046ee
Add test to verify the successfull flow of DA
robertdalmeida May 24, 2023
56276d2
Add test for removing credentials
robertdalmeida May 24, 2023
7750339
Add tests for negative flow when approval fails
robertdalmeida May 24, 2023
64d1578
Add documentation for the parameters
robertdalmeida May 24, 2023
d839eca
added the link as a parameter to remove credentials
robertdalmeida May 24, 2023
41b8058
Show activity indicator on button
robertdalmeida Jun 2, 2023
5ff76e4
Add tests for ThreeDS2 Component for delegated authentication
robertdalmeida Jun 2, 2023
5a10069
Add tests to verify the approval and registration view
robertdalmeida Jun 5, 2023
c1d20b1
Merge branch 'develop' into DEV-64080-screen-logic
robertdalmeida Jun 5, 2023
3608670
Merge branch 'DEV-64080/Intermediate-DA-feature' into DEV-64080-scree…
robertdalmeida Jun 13, 2023
053e258
Review feedback - use constants enum and add documentation
robertdalmeida Jun 13, 2023
d1a90f1
Pinning the textview to the bottom.
robertdalmeida Jun 13, 2023
21fba6b
Updated the translation from smarling for russian.
robertdalmeida Jun 14, 2023
2fb6d9e
Make an early exit if we do not have the sdk input - when showing the…
robertdalmeida Jun 15, 2023
7f015c1
Fix cathage test issue
robertdalmeida Jun 21, 2023
06b89ef
Default to the secondary option if the timer expires
robertdalmeida Jun 23, 2023
ee3954d
DEV-64080: Delegated authentication - Screens addition (#1192)
descorp Jun 28, 2023
58e9657
Make the text view not editable and not selectable
robertdalmeida Jun 28, 2023
1b58ef5
Send a delete call
robertdalmeida Jun 28, 2023
0684a0d
Sending delete flag on delete
robertdalmeida Jun 28, 2023
4519eeb
Remove the selectability of the text view
robertdalmeida Jun 28, 2023
bbad142
Add test to verify the delete flag
robertdalmeida Jun 28, 2023
32d9aea
Fixed a comment
robertdalmeida Jun 28, 2023
6b0be7c
Dev 64080: delegated authentication delete api integration (#1260)
robertdalmeida Jul 12, 2023
3b1750e
Merge branch 'develop' into DEV-64080/Intermediate-DA-feature
robertdalmeida Jul 13, 2023
66bb090
Use LinkTextView
robertdalmeida Jul 13, 2023
1d32993
Scroll and editable is set in the LinkTextView itself.
robertdalmeida Jul 14, 2023
5b809d5
Use DA for a stored card
robertdalmeida Jul 14, 2023
b3fc7dd
Merge branch 'develop' into DEV-64080/Intermediate-DA-feature
robertdalmeida Jul 18, 2023
5f931ce
Review comments fixture - adding a computed property to ThreeDS2PlusD…
robertdalmeida Jul 18, 2023
c6f7a89
Merge branch 'develop' into DEV-64080/Intermediate-DA-feature
robertdalmeida Jul 18, 2023
556f90e
Simplyfy some confusing failure handlers
robertdalmeida Jul 20, 2023
4382e35
Merge remote-tracking branch 'origin/develop' into DEV-64080/Intermed…
robertdalmeida Aug 11, 2023
4f10253
Don't send the delete flag during challenge result
robertdalmeida Aug 11, 2023
65b8e47
Fix the pipeline with the need to have direct references to self
robertdalmeida Aug 11, 2023
51ac290
Another weak reference to fail the pipeline
robertdalmeida Aug 11, 2023
5848718
Rename to deleteDelegatedAuthenticationCredential
robertdalmeida Aug 15, 2023
dd466df
Rename deletedAuthenticationCredential
robertdalmeida Aug 15, 2023
ef6a885
Rename deletedAuthenticationCredential
robertdalmeida Aug 15, 2023
93d24c1
Merge branch 'develop' into DEV-64080/Intermediate-DA-feature
robertdalmeida Aug 15, 2023
63759af
Merge remote-tracking branch 'origin/DEV-64080/Intermediate-DA-featur…
robertdalmeida Aug 15, 2023
e906548
Merge branch 'develop' into DEV-64080/Intermediate-DA-feature
robertdalmeida Sep 6, 2023
f23f855
Merge branch 'DEV-64080/Intermediate-DA-feature' into DEV-64080/Inter…
robertdalmeida Sep 6, 2023
de0e8b5
Configuration changes from develop
robertdalmeida Sep 6, 2023
92a37b7
Rename the parameter & remove the call to reset the credentials locally
robertdalmeida Sep 12, 2023
05e5714
Remove self where it isn't needed
robertdalmeida Sep 13, 2023
d5e438a
Merge branch 'develop' into DEV-64080/Intermediate-DA-feature
robertdalmeida Nov 2, 2023
2a25a57
Merge branch 'DEV-64080/Intermediate-DA-feature' into DEV-64080/Inter…
robertdalmeida Nov 2, 2023
afd88fb
Removing warnings of swiflint for line length and unused type
robertdalmeida Nov 3, 2023
49188a1
Fixing some tests due to json ordering
robertdalmeida Nov 3, 2023
4a75a1e
Correct the json ordering in the tests
robertdalmeida Nov 3, 2023
b8907b5
Delegated authentication - Delete API Integration (#1308)
goergisn Nov 20, 2023
d083795
Merge remote-tracking branch 'origin/develop' into DEV-64080/Intermed…
robertdalmeida Nov 20, 2023
d902553
Merge branch 'develop' into DEV-64080/Intermediate-DA-feature
robertdalmeida Jan 12, 2024
df1f1d7
Merge branch 'develop' into DEV-64080/Intermediate-DA-feature
goergisn Jan 15, 2024
1d7b22d
Merge remote-tracking branch 'origin/develop' into DEV-64080/Intermed…
robertdalmeida Jan 19, 2024
448a923
Fix tests with the url as http
robertdalmeida Jan 19, 2024
b6f7508
Merge remote-tracking branch 'origin/develop' into DEV-64080/Intermed…
robertdalmeida Feb 5, 2024
86b3af7
Fix warnings
robertdalmeida Feb 5, 2024
09feb65
Merge remote-tracking branch 'origin/develop' into DEV-64080/Intermed…
robertdalmeida Mar 5, 2024
13a949b
Revisit the public interface
robertdalmeida Mar 11, 2024
fdef213
Improving drop-in test speed
goergisn Mar 5, 2024
e7ad1e3
fix: provide human-friendly error on PublicKeyProvider
descorp Mar 6, 2024
4c39940
chore: correct error check
descorp Mar 6, 2024
3d5f181
chore: fix return on PublicKeyProvider
descorp Mar 6, 2024
e07910b
Merge branch 'DEV-64080/Intermediate-DA-feature' into dev-64080/inter…
robertdalmeida Mar 11, 2024
af740ea
Dev 64080: Revisit public interface of delegate authentication flow (…
goergisn Mar 13, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
44 changes: 44 additions & 0 deletions Adyen.xcodeproj/project.pbxproj
Original file line number Diff line number Diff line change
Expand Up @@ -88,6 +88,13 @@
00F621C527F1AF5A00C04097 /* AtomeComponentTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 00F621C427F1AF5A00C04097 /* AtomeComponentTests.swift */; };
00FFD8F02A865BFB008D4A5A /* ApplePaySettingsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 00FFD8EF2A865BFB008D4A5A /* ApplePaySettingsView.swift */; };
00FFD8F12A865BFB008D4A5A /* ApplePaySettingsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 00FFD8EF2A865BFB008D4A5A /* ApplePaySettingsView.swift */; };
210CC97F2A5FC23400F8F672 /* UITextViewHelpers.swift in Sources */ = {isa = PBXBuildFile; fileRef = 210CC97E2A5FC23400F8F672 /* UITextViewHelpers.swift */; };
2159173A2A0D161B0004081E /* ThreeDS2PlusDAScreenPresenter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 215917392A0D161B0004081E /* ThreeDS2PlusDAScreenPresenter.swift */; };
2159173C2A0D2B6E0004081E /* ThreeDS2DAScreenPresenterMock.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2159173B2A0D2B6E0004081E /* ThreeDS2DAScreenPresenterMock.swift */; };
21B3A71329CA70FF00F48386 /* DelegatedAuthenticationView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 21B3A71229CA70FF00F48386 /* DelegatedAuthenticationView.swift */; };
21B3A71529CA720C00F48386 /* DARegistrationViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 21B3A71429CA720C00F48386 /* DARegistrationViewController.swift */; };
21B3A71729CA721F00F48386 /* DAApprovalViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 21B3A71629CA721F00F48386 /* DAApprovalViewController.swift */; };
21B3A71929CA780200F48386 /* DelegatedAuthenticationComponentStyle.swift in Sources */ = {isa = PBXBuildFile; fileRef = 21B3A71829CA780200F48386 /* DelegatedAuthenticationComponentStyle.swift */; };
5A1315C926296B100092366D /* ProgressViewStyle.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5A1315C826296B100092366D /* ProgressViewStyle.swift */; };
5A15D589264BB0BD00A8E3C7 /* BoletoComponentExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5A15D588264BB0BD00A8E3C7 /* BoletoComponentExtensions.swift */; };
5A15D5A1264BE1E500A8E3C7 /* PrefilledShopperInformation.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5A15D5A0264BE1E500A8E3C7 /* PrefilledShopperInformation.swift */; };
Expand Down Expand Up @@ -1367,6 +1374,13 @@
00F621C127EB1E3100C04097 /* AtomePaymentMethod.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AtomePaymentMethod.swift; sourceTree = "<group>"; };
00F621C427F1AF5A00C04097 /* AtomeComponentTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AtomeComponentTests.swift; sourceTree = "<group>"; };
00FFD8EF2A865BFB008D4A5A /* ApplePaySettingsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ApplePaySettingsView.swift; sourceTree = "<group>"; };
210CC97E2A5FC23400F8F672 /* UITextViewHelpers.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UITextViewHelpers.swift; sourceTree = "<group>"; };
215917392A0D161B0004081E /* ThreeDS2PlusDAScreenPresenter.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ThreeDS2PlusDAScreenPresenter.swift; sourceTree = "<group>"; };
2159173B2A0D2B6E0004081E /* ThreeDS2DAScreenPresenterMock.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ThreeDS2DAScreenPresenterMock.swift; sourceTree = "<group>"; };
21B3A71229CA70FF00F48386 /* DelegatedAuthenticationView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DelegatedAuthenticationView.swift; sourceTree = "<group>"; };
21B3A71429CA720C00F48386 /* DARegistrationViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DARegistrationViewController.swift; sourceTree = "<group>"; };
21B3A71629CA721F00F48386 /* DAApprovalViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DAApprovalViewController.swift; sourceTree = "<group>"; };
21B3A71829CA780200F48386 /* DelegatedAuthenticationComponentStyle.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DelegatedAuthenticationComponentStyle.swift; sourceTree = "<group>"; };
5A1315C826296B100092366D /* ProgressViewStyle.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ProgressViewStyle.swift; sourceTree = "<group>"; };
5A15D588264BB0BD00A8E3C7 /* BoletoComponentExtensions.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BoletoComponentExtensions.swift; sourceTree = "<group>"; };
5A15D5A0264BE1E500A8E3C7 /* PrefilledShopperInformation.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PrefilledShopperInformation.swift; sourceTree = "<group>"; };
Expand Down Expand Up @@ -2605,6 +2619,23 @@
path = Atome;
sourceTree = "<group>";
};
210CC97D2A5FC11900F8F672 /* Recovered References */ = {
isa = PBXGroup;
children = (
);
name = "Recovered References";
sourceTree = "<group>";
};
21B3A70F29CA709D00F48386 /* DelegatedAuthentication */ = {
isa = PBXGroup;
children = (
21B3A71429CA720C00F48386 /* DARegistrationViewController.swift */,
21B3A71629CA721F00F48386 /* DAApprovalViewController.swift */,
21B3A71229CA70FF00F48386 /* DelegatedAuthenticationView.swift */,
);
path = DelegatedAuthentication;
sourceTree = "<group>";
};
5A22C26C262D67C000F12D97 /* QRCode */ = {
isa = PBXGroup;
children = (
Expand Down Expand Up @@ -3466,6 +3497,7 @@
F94D65DA2B0364AF0095D61E /* AdyenDelegatedAuthentication */,
E2C0E03422097917008616F6 /* Products */,
E2D12C01221ECBB000EF682F /* Frameworks */,
210CC97D2A5FC11900F8F672 /* Recovered References */,
);
sourceTree = "<group>";
};
Expand Down Expand Up @@ -3626,6 +3658,7 @@
5AD40E74262F04440090E01C /* UIProgressViewHelpers.swift */,
5AD40EEE26303C830090E01C /* UIButtonHelpers.swift */,
5AD40EFA26303D490090E01C /* UILabelHelpers.swift */,
210CC97E2A5FC23400F8F672 /* UITextViewHelpers.swift */,
A0D48FB727109B0200C0B82C /* ArrayHelpers.swift */,
E7E0E2372762005B001DF0C9 /* NSConstraintHelper.swift */,
0035016B2976B14A00632D8C /* UIImageViewHelpers.swift */,
Expand Down Expand Up @@ -4433,6 +4466,7 @@
F9175FF0259499C900D653BE /* View Controllers */ = {
isa = PBXGroup;
children = (
21B3A70F29CA709D00F48386 /* DelegatedAuthentication */,
A02AF3EB275A3C6F00E1636C /* Document */,
5A64570D2625CB02001824F0 /* QR Code */,
F97C851425C1928500D7F85C /* Voucher */,
Expand Down Expand Up @@ -4475,6 +4509,7 @@
5A64573E2626D2E2001824F0 /* QRCodeComponentStyle.swift */,
A03EE7302761297800470561 /* DocumentComponentStyle.swift */,
5A2D1950267368580082BCE9 /* ActionComponentStyle.swift */,
21B3A71829CA780200F48386 /* DelegatedAuthenticationComponentStyle.swift */,
);
path = "UI Style";
sourceTree = "<group>";
Expand Down Expand Up @@ -4670,6 +4705,7 @@
isa = PBXGroup;
children = (
F94F0DEA28AA3FB400C0923D /* ThreeDS2PlusDACoreActionHandler.swift */,
215917392A0D161B0004081E /* ThreeDS2PlusDAScreenPresenter.swift */,
);
path = "3DS2+Delegated Authentication";
sourceTree = "<group>";
Expand Down Expand Up @@ -4714,6 +4750,7 @@
F94F0DFE28AD2BCE00C0923D /* AuthenticationServiceMock.swift */,
F957AA692552D98E0099AD73 /* AnyThreeDS2FingerprintSubmitterMock.swift */,
F9B9F624295485A2008C2E49 /* ThreeDSResultExtension.swift */,
2159173B2A0D2B6E0004081E /* ThreeDS2DAScreenPresenterMock.swift */,
);
path = "3DS2 Component";
sourceTree = "<group>";
Expand Down Expand Up @@ -6635,6 +6672,7 @@
81C4006B2A40A526007EC51C /* FormAddressPickerItem.swift in Sources */,
81129AE62A4EEF8600E63EBE /* SearchViewController+InterfaceState.swift in Sources */,
E2C0E0C1220D7E5E008616F6 /* SubmitButton.swift in Sources */,
210CC97F2A5FC23400F8F672 /* UITextViewHelpers.swift in Sources */,
E216D3C9221AFB830013CBCF /* IBANValidator.swift in Sources */,
E76EC6972417F36A009C6E2F /* FormTextInputItemView.swift in Sources */,
E2C0E0B6220B08ED008616F6 /* FormView.swift in Sources */,
Expand Down Expand Up @@ -7107,6 +7145,8 @@
F97C84CD25C1761900D7F85C /* VoucherAction.swift in Sources */,
5A4633AA265FBAEB005FE0D8 /* VoucherView.swift in Sources */,
5A64573F2626D2E2001824F0 /* QRCodeComponentStyle.swift in Sources */,
21B3A71529CA720C00F48386 /* DARegistrationViewController.swift in Sources */,
21B3A71729CA721F00F48386 /* DAApprovalViewController.swift in Sources */,
E73C54E425EBD2DC00B57758 /* BrowserComponent.swift in Sources */,
F9B8AF5927DA48C900DC0894 /* ActionHandlingComponent.swift in Sources */,
A03EE735276133A500470561 /* ShareableComponent.swift in Sources */,
Expand All @@ -7122,9 +7162,11 @@
F95A78B925C4302A0032CF7E /* ShareableVoucherView.swift in Sources */,
F9175FBA2594996000D653BE /* Action.swift in Sources */,
F95A78CD25C43C4F0032CF7E /* VoucherSeparatorView.swift in Sources */,
2159173C2A0D2B6E0004081E /* ThreeDS2DAScreenPresenterMock.swift in Sources */,
E745256925C1C9E1006A941F /* AdyenActionComponent.swift in Sources */,
F917616F25A30B6A00D653BE /* ThreeDSActionHandlerResult.swift in Sources */,
F9175FB92594996000D653BE /* AwaitAction.swift in Sources */,
21B3A71929CA780200F48386 /* DelegatedAuthenticationComponentStyle.swift in Sources */,
F97C850125C17CCD00D7F85C /* VoucherShareableViewProvider.swift in Sources */,
F9175FB42594996000D653BE /* ThreeDS2FingerprintAction.swift in Sources */,
5A22C2AD262EF99C00F12D97 /* ExpirationTimer.swift in Sources */,
Expand Down Expand Up @@ -7152,9 +7194,11 @@
F9237D3B28CB467D004F9929 /* ThreeDS2CompactActionHandler+Initializers.swift in Sources */,
A0113D9B2763887800AD395C /* ActionNavigationBar.swift in Sources */,
F91760632594A0E300D653BE /* ActionsBundleExtension.swift in Sources */,
21B3A71329CA70FF00F48386 /* DelegatedAuthenticationView.swift in Sources */,
F917614A25A30B5E00D653BE /* ThreeDS2FingerprintSubmitter.swift in Sources */,
5A988B7B2653F1750007F4C0 /* BoletoVoucherAction.swift in Sources */,
F917613525A30B5700D653BE /* ThreeDS2Details.swift in Sources */,
2159173A2A0D161B0004081E /* ThreeDS2PlusDAScreenPresenter.swift in Sources */,
A03EE72F2760A2E300470561 /* DocumentActionViewModel.swift in Sources */,
F94F0DEB28AA3FB400C0923D /* ThreeDS2PlusDACoreActionHandler.swift in Sources */,
F9B018032608F648001F23FC /* EContextStoresVoucherAction.swift in Sources */,
Expand Down
37 changes: 37 additions & 0 deletions Adyen/Helpers/UITextViewHelpers.swift
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
//
// Copyright (c) 2023 Adyen N.V.
//
// This file is open source and available under the MIT license. See the LICENSE file for more info.
//

import AdyenNetworking
import UIKit

@_spi(AdyenInternal)
extension UITextView {

/// Initializes UITextView with given `TextStyle`
/// Sets `translatesAutoresizingMaskIntoConstraints` to `false`
/// - Parameter style: `TextStyle` to be applied
public convenience init(style: TextStyle) {
self.init()
translatesAutoresizingMaskIntoConstraints = false
adyen.apply(style)
}
}

public extension AdyenScope where Base: UITextView {

/// Applies given `TextStyle` to the UITextView
/// Sets `translatesAutoresizingMaskIntoConstraints` to `false`
/// - Parameter style: `TextStyle` to be applied
internal func apply(_ style: TextStyle) {
base.font = style.font
base.textColor = style.color
base.textAlignment = style.textAlignment
base.backgroundColor = style.backgroundColor
round(using: style.cornerRounding)

base.adjustsFontForContentSizeCategory = true
}
}
12 changes: 12 additions & 0 deletions Adyen/Utilities/PublicKeyProvider/PublicKeyProvider.swift
Original file line number Diff line number Diff line change
Expand Up @@ -75,7 +75,19 @@ public final class PublicKeyProvider: AnyPublicKeyProvider {
cachedPublicKey = response.cardPublicKey
completion(.success(response.cardPublicKey))
case let .failure(error):
if error is DecodingError {
// Disclaimer: This error check is not 100% reliable. Need to improve the endpoint.
return completion(.failure(Error.invalidClientKey))
}
completion(.failure(error))
}
}

public enum Error: Swift.Error, LocalizedError {
case invalidClientKey

public var errorDescription: String? {
return "Client key not found on the selected environment."
}
}
}
9 changes: 5 additions & 4 deletions AdyenActions/AdyenActionComponent.swift
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
//
// Copyright (c) 2022 Adyen N.V.
// Copyright (c) 2024 Adyen N.V.
//
// This file is open source and available under the MIT license. See the LICENSE file for more info.
//
Expand Down Expand Up @@ -137,7 +137,7 @@ public final class AdyenActionComponent: ActionComponent, ActionHandlingComponen
private func handle(_ action: ThreeDS2Action) {
let component = createThreeDS2Component()
currentActionComponent = component

component.handle(action)
}

Expand All @@ -153,10 +153,11 @@ public final class AdyenActionComponent: ActionComponent, ActionHandlingComponen
appearanceConfiguration: configuration.threeDS.appearanceConfiguration,
requestorAppURL: configuration.threeDS.requestorAppURL,
delegateAuthentication: configuration.threeDS.delegateAuthentication)
let component = ThreeDS2Component(context: context, configuration: threeDS2Configuration)
let component = ThreeDS2Component(context: context,
configuration: threeDS2Configuration)
component.presentationDelegate = presentationDelegate
component._isDropIn = _isDropIn
component.delegate = delegate
component.presentationDelegate = presentationDelegate

return component
}
Expand Down
Binary file not shown.
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
{
"images" : [
{
"filename" : "Biometric.pdf",
"idiom" : "universal"
}
],
"info" : {
"author" : "xcode",
"version" : 1
},
"properties" : {
"preserves-vector-representation" : true
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -101,7 +101,8 @@ internal class ThreeDS2CoreActionHandler: AnyThreeDS2CoreActionHandler {
case let .success(transaction):
let encodedFingerprint = try AdyenCoder.encodeBase64(ThreeDS2Component.Fingerprint(
authenticationRequestParameters: transaction.authenticationParameters,
delegatedAuthenticationSDKOutput: nil
delegatedAuthenticationSDKOutput: nil,
deleteDelegatedAuthenticationCredential: nil
))
self.transaction = transaction
completionHandler(.success(encodedFingerprint))
Expand Down
Loading
Loading