diff --git a/Gigya.podspec b/Gigya.podspec index c1360d67..854078e2 100644 --- a/Gigya.podspec +++ b/Gigya.podspec @@ -1,6 +1,6 @@ Pod::Spec.new do |spec| spec.name = 'Gigya' - spec.version = '1.6.2' + spec.version = '1.6.3' spec.license = 'Apache 2.0' spec.homepage = 'https://developers.gigya.com/display/GD/Swift+SDK' spec.author = 'Gigya SAP' @@ -10,7 +10,7 @@ Pod::Spec.new do |spec| your Swift application DESC - spec.source = { :git => 'https://github.com/SAP/gigya-swift-sdk.git', :tag => 'core/v1.6.2' } + spec.source = { :git => 'https://github.com/SAP/gigya-swift-sdk.git', :tag => 'core/v1.6.3' } spec.module_name = 'Gigya' spec.swift_version = '5.3' diff --git a/GigyaSwift.xcodeproj/project.pbxproj b/GigyaSwift.xcodeproj/project.pbxproj index a161be4e..1c8157c5 100644 --- a/GigyaSwift.xcodeproj/project.pbxproj +++ b/GigyaSwift.xcodeproj/project.pbxproj @@ -2605,7 +2605,7 @@ "@executable_path/Frameworks", "@loader_path/Frameworks", ); - MARKETING_VERSION = 1.6.2; + MARKETING_VERSION = 1.6.3; MODULEMAP_FILE = ""; MODULEMAP_PRIVATE_FILE = ""; ONLY_ACTIVE_ARCH = NO; @@ -2666,7 +2666,7 @@ "@executable_path/Frameworks", "@loader_path/Frameworks", ); - MARKETING_VERSION = 1.6.2; + MARKETING_VERSION = 1.6.3; MODULEMAP_FILE = ""; MODULEMAP_PRIVATE_FILE = ""; ONLY_ACTIVE_ARCH = NO; diff --git a/GigyaSwift.xcodeproj/xcuserdata/i507698.xcuserdatad/xcschemes/xcschememanagement.plist b/GigyaSwift.xcodeproj/xcuserdata/i507698.xcuserdatad/xcschemes/xcschememanagement.plist index 49a280ee..53776c36 100644 --- a/GigyaSwift.xcodeproj/xcuserdata/i507698.xcuserdatad/xcschemes/xcschememanagement.plist +++ b/GigyaSwift.xcodeproj/xcuserdata/i507698.xcuserdatad/xcschemes/xcschememanagement.plist @@ -12,7 +12,7 @@ GigyaUITestsApp.xcscheme_^#shared#^_ orderHint - 32 + 35 GigyaXC.xcscheme_^#shared#^_ diff --git a/GigyaSwift.xcworkspace/xcuserdata/i507698.xcuserdatad/UserInterfaceState.xcuserstate b/GigyaSwift.xcworkspace/xcuserdata/i507698.xcuserdatad/UserInterfaceState.xcuserstate index 7b3f915a..92ce6b6d 100644 Binary files a/GigyaSwift.xcworkspace/xcuserdata/i507698.xcuserdatad/UserInterfaceState.xcuserstate and b/GigyaSwift.xcworkspace/xcuserdata/i507698.xcuserdatad/UserInterfaceState.xcuserstate differ diff --git a/GigyaSwift/Global/Plugins/GigyaWebBridge.swift b/GigyaSwift/Global/Plugins/GigyaWebBridge.swift index ab486e38..3abd4eb8 100644 --- a/GigyaSwift/Global/Plugins/GigyaWebBridge.swift +++ b/GigyaSwift/Global/Plugins/GigyaWebBridge.swift @@ -267,7 +267,7 @@ open class GigyaWebBridge: NSObject, WKScriptMessageHan case "afterSubmit": completion(.onAfterSubmit(event: params)) case "hide": - completion(.onHide(event: params)) + handleOnHide(params: params) case "error": completion(.error(event: params)) case "fieldChanged": @@ -281,6 +281,12 @@ open class GigyaWebBridge: NSObject, WKScriptMessageHan } } } + + private func handleOnHide(params: [String: String]) { + if interruptionManager.resolverIsActive == false { + completion(.onHide(event: params)) + } + } /** Generic send request method. diff --git a/GigyaSwift/Global/Plugins/WebBridgeManager/WebBridgeFroceLoginResolver.swift b/GigyaSwift/Global/Plugins/WebBridgeManager/WebBridgeFroceLoginResolver.swift index 3f1c39a6..54f8d495 100644 --- a/GigyaSwift/Global/Plugins/WebBridgeManager/WebBridgeFroceLoginResolver.swift +++ b/GigyaSwift/Global/Plugins/WebBridgeManager/WebBridgeFroceLoginResolver.swift @@ -30,6 +30,7 @@ class WebBridgeFroceLoginResolver: WebBridgeResolver { switch result { case .success(data: let userdata): completion(.onLogin(account: userdata)) + completion(.onHide(event: ["isFlowFinalized": "true"])) case .failure(_): break } diff --git a/GigyaSwift/Global/Plugins/WebBridgeManager/WebBridgeInterruptionManager.swift b/GigyaSwift/Global/Plugins/WebBridgeManager/WebBridgeInterruptionManager.swift index 07892af9..ef01ad8e 100644 --- a/GigyaSwift/Global/Plugins/WebBridgeManager/WebBridgeInterruptionManager.swift +++ b/GigyaSwift/Global/Plugins/WebBridgeManager/WebBridgeInterruptionManager.swift @@ -13,6 +13,8 @@ enum WebBridgeInterruption: Int { } public protocol WebBridgeInterruptionResolverFactoryProtocol { + var resolverIsActive: Bool { get } + func interruptionHandler(error: NetworkError) func responseManager(apiMethod: String, params: [String: String], data: T, completion: @escaping (GigyaPluginEvent) -> Void) @@ -33,6 +35,10 @@ class WebBridgeInterruptionManager: WebBridgeInterruptionResolverFactoryProtocol } } + var resolverIsActive: Bool { + return resolver != nil + } + init(busnessApi: BusinessApiDelegate, accountService: AccountServiceProtocol) { self.busnessApi = busnessApi self.accountService = accountService diff --git a/GigyaSwift/Global/Resolvers/InterruptionResolverFactory.swift b/GigyaSwift/Global/Resolvers/InterruptionResolverFactory.swift index 466d8ac8..25af00e0 100644 --- a/GigyaSwift/Global/Resolvers/InterruptionResolverFactory.swift +++ b/GigyaSwift/Global/Resolvers/InterruptionResolverFactory.swift @@ -34,13 +34,8 @@ final class InterruptionResolverFactory: InterruptionResolverFactoryProtocol { // get all data from request let dataResponse = data.toDictionary() - guard let regToken = dataResponse["regToken"] as? String else { - GigyaLogger.log(with: self, message: "[interruptionResolver] - regToken not exists") - - forwordFailed(error: error, completion: completion) - return - } - + let regToken = getRegToken(from: dataResponse) + switch errorCode { case .pendingRegistration: // pending registration @@ -82,4 +77,8 @@ final class InterruptionResolverFactory: InterruptionResolverFactoryProtocol { let loginError = LoginApiError(error: error, interruption: nil) completion(.failure(loginError)) } + + private func getRegToken(from data: [String: Any]) -> String { + return data["regToken"] as? String ?? "" + } } diff --git a/GigyaSwift/Models/Config/InternalConfig.swift b/GigyaSwift/Models/Config/InternalConfig.swift index 373488d2..5222cec2 100644 --- a/GigyaSwift/Models/Config/InternalConfig.swift +++ b/GigyaSwift/Models/Config/InternalConfig.swift @@ -10,7 +10,7 @@ import Foundation struct InternalConfig { struct General { - internal static let version = "\(GigyaDefinitions.versionPrefix ?? "")ios_swift_1.6.2" + internal static let version = "\(GigyaDefinitions.versionPrefix ?? "")ios_swift_1.6.3" internal static let sdkDomain = "com.gigya.GigyaSDK" internal static let defaultLang = "en" }