diff --git a/GliaWidgets.xcodeproj/project.pbxproj b/GliaWidgets.xcodeproj/project.pbxproj index 18d20f15e..2d315d0e2 100644 --- a/GliaWidgets.xcodeproj/project.pbxproj +++ b/GliaWidgets.xcodeproj/project.pbxproj @@ -250,7 +250,6 @@ 755D187929A6A6F80009F5E8 /* WelcomeStyle+FilePickerButtonStyle.swift in Sources */ = {isa = PBXBuildFile; fileRef = 755D187829A6A6F80009F5E8 /* WelcomeStyle+FilePickerButtonStyle.swift */; }; 755D187B29A6A7180009F5E8 /* WelcomeStyle+TitleImageStyle.swift in Sources */ = {isa = PBXBuildFile; fileRef = 755D187A29A6A7180009F5E8 /* WelcomeStyle+TitleImageStyle.swift */; }; 755D187F29A6B1B90009F5E8 /* Glia+StartEngagement.swift in Sources */ = {isa = PBXBuildFile; fileRef = 755D187E29A6B1B90009F5E8 /* Glia+StartEngagement.swift */; }; - 7562B2ED28CBD9AE0040C784 /* Glia.RemoteConfiguration.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7562B2EC28CBD9AE0040C784 /* Glia.RemoteConfiguration.swift */; }; 756979C52A1E5E3C002ED254 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 756979C42A1E5E3C002ED254 /* Assets.xcassets */; }; 756B8B1C2996B116001D2BB2 /* ChatCoordinator.Environment.swift in Sources */ = {isa = PBXBuildFile; fileRef = 756B8B1B2996B116001D2BB2 /* ChatCoordinator.Environment.swift */; }; 756B8B1E2996BAEA001D2BB2 /* HeaderButton.Props.swift in Sources */ = {isa = PBXBuildFile; fileRef = 756B8B1D2996BAEA001D2BB2 /* HeaderButton.Props.swift */; }; @@ -987,7 +986,6 @@ 755D187829A6A6F80009F5E8 /* WelcomeStyle+FilePickerButtonStyle.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "WelcomeStyle+FilePickerButtonStyle.swift"; sourceTree = ""; }; 755D187A29A6A7180009F5E8 /* WelcomeStyle+TitleImageStyle.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "WelcomeStyle+TitleImageStyle.swift"; sourceTree = ""; }; 755D187E29A6B1B90009F5E8 /* Glia+StartEngagement.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "Glia+StartEngagement.swift"; sourceTree = ""; }; - 7562B2EC28CBD9AE0040C784 /* Glia.RemoteConfiguration.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Glia.RemoteConfiguration.swift; sourceTree = ""; }; 756979C42A1E5E3C002ED254 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; 756B8B1B2996B116001D2BB2 /* ChatCoordinator.Environment.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChatCoordinator.Environment.swift; sourceTree = ""; }; 756B8B1D2996BAEA001D2BB2 /* HeaderButton.Props.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HeaderButton.Props.swift; sourceTree = ""; }; @@ -2799,7 +2797,6 @@ children = ( AFBBF5772851C391004993B3 /* Glia.Deprecated.swift */, 7594098E298D3929008B173A /* Glia.OpaqueAuthentication.swift */, - 7562B2EC28CBD9AE0040C784 /* Glia.RemoteConfiguration.swift */, 1A60AF7D25656F0400E53F53 /* Glia.swift */, 755D187E29A6B1B90009F5E8 /* Glia+StartEngagement.swift */, ); @@ -4529,7 +4526,6 @@ 1A60AF93256674F900E53F53 /* Color.swift in Sources */, 1A38A8BA258B94D60089DE7B /* ImageView.swift in Sources */, C0857DE528D470C1008D171D /* Theme+Shadow.swift in Sources */, - 7562B2ED28CBD9AE0040C784 /* Glia.RemoteConfiguration.swift in Sources */, 9AB196E227C4045B00FD60AB /* ChatViewController.Mock.swift in Sources */, 1A60B031256BF81500E53F53 /* VisitorChatMessageView.swift in Sources */, 1A5892B12608C68000E183CC /* QuickLookController.swift in Sources */, diff --git a/GliaWidgets/Public/Glia/Glia+StartEngagement.swift b/GliaWidgets/Public/Glia/Glia+StartEngagement.swift index ead149757..9ef8ff06b 100644 --- a/GliaWidgets/Public/Glia/Glia+StartEngagement.swift +++ b/GliaWidgets/Public/Glia/Glia+StartEngagement.swift @@ -7,7 +7,6 @@ extension Glia { /// - Parameters: /// - engagementKind: Engagement media type. /// - in: Queue identifiers - /// - theme: A custom theme to use with the engagement. /// - visitorContext: Visitor context. /// - features: Set of features to be enabled in the SDK. /// - sceneProvider: Used to provide `UIWindowScene` to the framework. Defaults to the first active foreground scene. @@ -24,7 +23,6 @@ extension Glia { public func startEngagement( engagementKind: EngagementKind, in queueIds: [String], - theme: Theme = Theme(), features: Features = .all, sceneProvider: SceneProvider? = nil ) throws { diff --git a/GliaWidgets/Public/Glia/Glia.Deprecated.swift b/GliaWidgets/Public/Glia/Glia.Deprecated.swift index dda59f821..2ea37ee6a 100644 --- a/GliaWidgets/Public/Glia/Glia.Deprecated.swift +++ b/GliaWidgets/Public/Glia/Glia.Deprecated.swift @@ -20,7 +20,7 @@ extension Glia { /// Deprecated. @available( *, - deprecated, + unavailable, message: "Use start(_:configuration:queueID:visitorContext:theme:features:sceneProvider:) with Optional instead." ) public func start( @@ -205,6 +205,85 @@ extension Glia { debugPrint("💥 Core SDK configuration is not valid. Unexpected error='\(error)'.") } } + + /// Deprecated, use ``Glia.startEngagement(engagementKind:in queueIds:features:sceneProvider:)`` instead. + /// Use ``configure(with configuration:uiConfig:assetsBuilder:completion:)`` to pass in ``RemoteConfiguration``. + @available(*, deprecated, message: """ + Deprecated, use ``Glia.startEngagement(engagementKind:in queueIds:features:sceneProvider:)`` instead. + Use ``configure(with configuration:uiConfig:assetsBuilder:completion:)`` to pass in ``RemoteConfiguration``. + """ + ) + public func startEngagementWithConfig( + engagement: EngagementKind, + in queueIds: [String], + uiConfig: RemoteConfiguration, + assetsBuilder: RemoteConfiguration.AssetsBuilder = .standard, + features: Features = .all, + sceneProvider: SceneProvider? = nil + ) throws { + // Store assetsBuilder and apply remote config to have ability to + // apply them for Call Visualizer flow if integrator use + // old `configure` method + theme.apply(configuration: uiConfig, assetsBuilder: assetsBuilder) + self.assetsBuilder = assetsBuilder + + if let config = configuration { + theme.showsPoweredBy = !config.isWhiteLabelApp + theme.chat.connect.queue.firstText = config.companyName + theme.call.connect.queue.firstText = config.companyName + } + + try startEngagement( + engagementKind: engagement, + in: queueIds, + theme: theme, + features: features, + sceneProvider: sceneProvider + ) + } + + /// Deprecated, use ``Glia.startEngagement(engagementKind:in queueIds:features:sceneProvider:)`` instead. + /// Use ``configure(with configuration:uiConfig:theme:assetsBuilder:completion:)`` to pass in ``RemoteConfiguration``. + @available(*, deprecated, message: """ + Deprecated, use ``Glia.startEngagement(engagementKind:in queueIds:features:sceneProvider:)`` instead. + Use ``configure(with configuration:uiConfig:theme:assetsBuilder:completion:)`` to pass in ``RemoteConfiguration``. + """ + ) + public func startEngagement( + engagementKind: EngagementKind, + in queueIds: [String], + theme: Theme = Theme(), + features: Features = .all, + sceneProvider: SceneProvider? = nil + ) throws { + self.theme = theme + try startEngagement( + engagementKind: engagementKind, + in: queueIds, + features: features, + sceneProvider: sceneProvider + ) + } + + /// Deprecated, use ``configure(with configuration:theme:uiConfig:assetsBuilder:completion:)`` instead. + @available(*, deprecated, message: """ + Deprecated, use ``configure(with configuration:theme:uiConfig:assetsBuilder:completion:)`` instead. + """ + ) + public func configure( + with configuration: Configuration, + uiConfig: RemoteConfiguration? = nil, + assetsBuilder: RemoteConfiguration.AssetsBuilder = .standard, + completion: @escaping (Result) -> Void + ) throws { + try configure( + with: configuration, + theme: Theme(), + uiConfig: uiConfig, + assetsBuilder: assetsBuilder, + completion: completion + ) + } } extension Glia.Authentication { diff --git a/GliaWidgets/Public/Glia/Glia.RemoteConfiguration.swift b/GliaWidgets/Public/Glia/Glia.RemoteConfiguration.swift deleted file mode 100644 index d4d42fb32..000000000 --- a/GliaWidgets/Public/Glia/Glia.RemoteConfiguration.swift +++ /dev/null @@ -1,57 +0,0 @@ -import Foundation - -extension Glia { - - /// Starts the engagement. - /// - /// - Parameters: - /// - engagementKind: Engagement media type. - /// - in: Queue identifiers - /// - uiConfig: Remote UI configuration. - /// - assetsBuilder: Provides assets for remote configuration. - /// - features: Set of features to be enabled in the SDK. - /// - sceneProvider: Used to provide `UIWindowScene` to the framework. Defaults to the first active foreground scene. - /// - /// - throws: - /// - `GliaCoreSDK.ConfigurationError.invalidSite` - /// - `GliaCoreSDK.ConfigurationError.invalidEnvironment` - /// - `GliaError.engagementExists - /// - `GliaError.sdkIsNotConfigured` - /// - /// - Important: Note, that `configure(with:uiConfig:assetsBuilder:completion:)` must be called initially prior to this method, - /// because `GliaError.sdkIsNotConfigured` will occur otherwise. - /// - public func startEngagementWithConfig( - engagement: EngagementKind, - in queueIds: [String], - uiConfig: RemoteConfiguration, - assetsBuilder: RemoteConfiguration.AssetsBuilder = .standard, - features: Features = .all, - sceneProvider: SceneProvider? = nil - ) throws { - // Store uiConfig and assetsBuilder to have ability to - // apply them for Call Visualizer flow if integrator use - // old `configure` method - self.uiConfig = uiConfig - self.assetsBuilder = assetsBuilder - - // Apply remote configuration - let theme = Theme( - uiConfig: uiConfig, - assetsBuilder: assetsBuilder - ) - if let config = configuration { - theme.showsPoweredBy = !config.isWhiteLabelApp - theme.chat.connect.queue.firstText = config.companyName - theme.call.connect.queue.firstText = config.companyName - } - - try startEngagement( - engagementKind: engagement, - in: queueIds, - theme: theme, - features: features, - sceneProvider: sceneProvider - ) - } -} diff --git a/GliaWidgets/Public/Glia/Glia.swift b/GliaWidgets/Public/Glia/Glia.swift index a34c951b8..0cdb186cd 100644 --- a/GliaWidgets/Public/Glia/Glia.swift +++ b/GliaWidgets/Public/Glia/Glia.swift @@ -80,7 +80,7 @@ public class Glia { engagedOperator: { [weak self] in self?.environment.coreSdk.getCurrentEngagement()?.engagedOperator }, - uiConfig: { [weak self] in self?.uiConfig }, + theme: theme, assetsBuilder: { [weak self] in self?.assetsBuilder ?? .standard }, getCurrentEngagement: environment.coreSdk.getCurrentEngagement, eventHandler: onEvent, @@ -92,23 +92,26 @@ public class Glia { var interactor: Interactor? var environment: Environment var messageRenderer: MessageRenderer? = .webRenderer - var uiConfig: RemoteConfiguration? + var theme: Theme var assetsBuilder: RemoteConfiguration.AssetsBuilder = .standard private(set) var configuration: Configuration? init(environment: Environment) { self.environment = environment + self.theme = Theme() } /// Setup SDK using specific engagement configuration without starting the engagement. /// - Parameters: /// - configuration: Engagement configuration. + /// - theme: A custom theme to use with the engagement. /// - uiConfig: Remote UI configuration. /// - assetsBuilder: Provides assets for remote configuration. /// - completion: Completion handler that will be fired once configuration is complete. public func configure( with configuration: Configuration, + theme: Theme = Theme(), uiConfig: RemoteConfiguration? = nil, assetsBuilder: RemoteConfiguration.AssetsBuilder = .standard, completion: @escaping (Result) -> Void @@ -116,7 +119,11 @@ public class Glia { guard environment.coreSdk.getCurrentEngagement() == nil else { throw GliaError.configuringDuringEngagementIsNotAllowed } - self.uiConfig = uiConfig + + if let uiConfig { + theme.apply(configuration: uiConfig, assetsBuilder: assetsBuilder) + } + self.theme = theme self.assetsBuilder = assetsBuilder // `configuration` should be erased to avoid cases when integrators // call `configure` and `startEngagement` asynchronously, and diff --git a/GliaWidgets/Sources/CallVisualizer/CallVisualizer+Environment.swift b/GliaWidgets/Sources/CallVisualizer/CallVisualizer+Environment.swift index 03d204825..c5d42b291 100644 --- a/GliaWidgets/Sources/CallVisualizer/CallVisualizer+Environment.swift +++ b/GliaWidgets/Sources/CallVisualizer/CallVisualizer+Environment.swift @@ -19,7 +19,7 @@ extension CallVisualizer { var audioSession: Glia.Environment.AudioSession var date: () -> Date var engagedOperator: () -> CoreSdkClient.Operator? - var uiConfig: () -> RemoteConfiguration? + var theme: Theme var assetsBuilder: () -> RemoteConfiguration.AssetsBuilder var getCurrentEngagement: CoreSdkClient.GetCurrentEngagement var eventHandler: ((GliaEvent) -> Void)? diff --git a/GliaWidgets/Sources/CallVisualizer/CallVisualizer.swift b/GliaWidgets/Sources/CallVisualizer/CallVisualizer.swift index bd9893135..53af4a3b2 100644 --- a/GliaWidgets/Sources/CallVisualizer/CallVisualizer.swift +++ b/GliaWidgets/Sources/CallVisualizer/CallVisualizer.swift @@ -15,12 +15,8 @@ public final class CallVisualizer { private var environment: Environment var delegate: ((Action) -> Void)? lazy var coordinator: Coordinator = { - var theme = Theme() - if let uiConfig = environment.uiConfig() { - theme = .init(uiConfig: uiConfig, assetsBuilder: environment.assetsBuilder()) - } let viewFactory = ViewFactory( - with: theme, + with: environment.theme, messageRenderer: nil, environment: .init( data: environment.data, diff --git a/GliaWidgets/Sources/Theme/Theme.swift b/GliaWidgets/Sources/Theme/Theme.swift index dc1f06f6a..c0f53a27d 100644 --- a/GliaWidgets/Sources/Theme/Theme.swift +++ b/GliaWidgets/Sources/Theme/Theme.swift @@ -134,4 +134,50 @@ public class Theme { assetsBuilder: assetsBuilder ) } + + func apply( + configuration: RemoteConfiguration, + assetsBuilder: RemoteConfiguration.AssetsBuilder + ) { + color.apply( + configuration: configuration.globalColors + ) + + call.apply( + configuration: configuration.callScreen, + assetsBuilder: assetsBuilder + ) + survey.apply( + configuration: configuration.surveyScreen, + assetsBuilder: assetsBuilder + ) + alert.apply( + configuration: configuration.alert, + assetsBuilder: assetsBuilder + ) + minimizedBubble.apply( + configuration: configuration.bubble, + assetsBuilder: assetsBuilder + ) + chat.apply( + configuration: configuration.chatScreen, + assetsBuilder: assetsBuilder + ) + visitorCode.apply( + configuration: configuration.callVisualizer?.visitorCode, + assetBuilder: assetsBuilder + ) + screenSharing.apply( + configuration: configuration.callVisualizer?.screenSharing, + assetBuilder: assetsBuilder + ) + secureConversationsWelcome.apply( + configuration: configuration.secureConversationsWelcomeScreen, + assetsBuilder: assetsBuilder + ) + secureConversationsConfirmation.apply( + configuration: configuration.secureConversationsConfirmationScreen, + assetsBuilder: assetsBuilder + ) + } } diff --git a/GliaWidgets/Sources/Theme/ThemeColor.swift b/GliaWidgets/Sources/Theme/ThemeColor.swift index 061a676b4..56b678ac1 100644 --- a/GliaWidgets/Sources/Theme/ThemeColor.swift +++ b/GliaWidgets/Sources/Theme/ThemeColor.swift @@ -54,4 +54,40 @@ public struct ThemeColor { self.systemNegative = systemNegative ?? Color.systemNegative self.baseNeutral = baseNeutral ?? Color.baseNeutral } + + mutating func apply( + configuration: RemoteConfiguration.GlobalColors? + ) { + configuration?.primary.unwrap { + primary = UIColor(hex: $0) + } + + configuration?.secondary.unwrap { + secondary = UIColor(hex: $0) + } + + configuration?.baseNormal.unwrap { + baseNormal = UIColor(hex: $0) + } + + configuration?.baseLight.unwrap { + baseLight = UIColor(hex: $0) + } + + configuration?.baseDark.unwrap { + baseDark = UIColor(hex: $0) + } + + configuration?.baseShade.unwrap { + baseShade = UIColor(hex: $0) + } + + configuration?.systemNegative.unwrap { + systemNegative = UIColor(hex: $0) + } + + configuration?.baseNeutral.unwrap { + baseNeutral = UIColor(hex: $0) + } + } } diff --git a/GliaWidgetsTests/CallVisualizer/ScreenSharing/Mocks/CallVisualizer.Environment.Mock.swift b/GliaWidgetsTests/CallVisualizer/ScreenSharing/Mocks/CallVisualizer.Environment.Mock.swift index f6c8b3632..3b6500812 100644 --- a/GliaWidgetsTests/CallVisualizer/ScreenSharing/Mocks/CallVisualizer.Environment.Mock.swift +++ b/GliaWidgetsTests/CallVisualizer/ScreenSharing/Mocks/CallVisualizer.Environment.Mock.swift @@ -19,7 +19,7 @@ extension CallVisualizer.Environment { audioSession: .mock, date: { .mock }, engagedOperator: { .mock() }, - uiConfig: { nil }, + theme: .init(), assetsBuilder: { .standard }, getCurrentEngagement: CoreSdkClient.mock.getCurrentEngagement, orientationManager: .mock(), diff --git a/GliaWidgetsTests/Sources/Glia/GliaTests+StartEngagement.swift b/GliaWidgetsTests/Sources/Glia/GliaTests+StartEngagement.swift index babd2907d..c6b36fafc 100644 --- a/GliaWidgetsTests/Sources/Glia/GliaTests+StartEngagement.swift +++ b/GliaWidgetsTests/Sources/Glia/GliaTests+StartEngagement.swift @@ -110,9 +110,9 @@ extension GliaTests { theme.call.connect.queue.firstText = "Glia 1" theme.chat.connect.queue.firstText = "Glia 2" - try sdk.configure(with: .mock()) { + try sdk.configure(with: .mock(), theme: theme) { _ in do { - try sdk.startEngagement(engagementKind: .chat, in: ["queueId"], theme: theme) + try sdk.startEngagement(engagementKind: .chat, in: ["queueId"]) } catch { XCTFail("startEngagement unexpectedly failed with error \(error), but should succeed instead.") } @@ -275,9 +275,9 @@ extension GliaTests { theme.call.connect.queue.firstText = "Glia 1" theme.chat.connect.queue.firstText = "Glia 2" - try sdk.configure(with: .mock()) { + try sdk.configure(with: .mock(), theme: theme) { _ in do { - try sdk.startEngagement(engagementKind: .chat, in: ["queueId"], theme: theme) + try sdk.startEngagement(engagementKind: .chat, in: ["queueId"]) } catch { XCTFail("startEngagement unexpectedly failed with error \(error), but should succeed instead.") } diff --git a/GliaWidgetsTests/Sources/Glia/GliaTests.swift b/GliaWidgetsTests/Sources/Glia/GliaTests.swift index 25b7a9ebe..7025ea426 100644 --- a/GliaWidgetsTests/Sources/Glia/GliaTests.swift +++ b/GliaWidgetsTests/Sources/Glia/GliaTests.swift @@ -401,4 +401,52 @@ final class GliaTests: XCTestCase { XCTAssertEqual(screenShareHandler.status().value, .stopped) XCTAssertEqual(calls, [.ended]) } + + func test_remoteConfigIsAppliedToThemeUponConfigure() throws { + let themeColor: ThemeColor = .init( + primary: .red, + systemNegative: .red + ) + + let globalColors: RemoteConfiguration.GlobalColors = .init( + primary: "#00FF00", + secondary: "#00FF00", + baseNormal: "#00FF00", + baseLight: "#00FF00", + baseDark: "#00FF00", + baseShade: "#00FF00", + systemNegative: "#00FF00", + baseNeutral: "#00FF00" + ) + + let uiConfig: RemoteConfiguration = .init( + globalColors: globalColors, + callScreen: nil, + chatScreen: nil, + surveyScreen: nil, + alert: nil, + bubble: nil, + callVisualizer: nil, + secureConversationsWelcomeScreen: nil, + secureConversationsConfirmationScreen: nil + ) + + let theme = Theme(colorStyle: .custom(themeColor)) + var environment = Glia.Environment.failing + environment.coreSDKConfigurator.configureWithConfiguration = { _, completion in + completion(.success(())) + } + let sdk = Glia(environment: environment) + let configuration = Configuration.mock() + try sdk.configure( + with: configuration, + theme: theme, + uiConfig: uiConfig) + { _ in } + + let primaryColorHex = sdk.theme.color.primary.toRGBAHex(alpha: false) + let systemNegativeHex = sdk.theme.color.systemNegative.toRGBAHex(alpha: false) + XCTAssertEqual(primaryColorHex, "#00FF00") + XCTAssertEqual(systemNegativeHex, "#00FF00") + } } diff --git a/TestingApp/UnifiedUI/LibertyMutual.json b/TestingApp/UnifiedUI/LibertyMutual.json new file mode 100644 index 000000000..0ac901192 --- /dev/null +++ b/TestingApp/UnifiedUI/LibertyMutual.json @@ -0,0 +1,3895 @@ +{ + "alert": { + "backgroundColor": { + "type": "fill", + "value": ["#ffd100"] + }, + "buttonAxis": "vertical", + "closeButtonColor": { + "type": "fill", + "value": ["#000000"] + }, + "message": { + "alignment": "leading", + "background": { + "type": "fill", + "value": ["#FF0000"] + }, + "font": { + "size": 14, + "style": "regular" + }, + "foreground": { + "type": "fill", + "value": ["#000000"] + } + }, + "negativeButton": { + "background": { + "border": { + "type": "fill", + "value": ["#FFFFFF"] + }, + "borderWidth": 0, + "color": { + "type": "fill", + "value": ["#FFFFFF"] + }, + "cornerRadius": 8 + }, + "shadow": { + "color": { + "type": "fill", + "value": ["#FF0000"] + }, + "offset": 0, + "opacity": 1, + "radius": 8 + }, + "text": { + "alignment": "center", + "background": { + "type": "fill", + "value": ["#FF0000"] + }, + "font": { + "size": 16, + "style": "regular" + }, + "foreground": { + "type": "fill", + "value": ["#000000"] + } + }, + "tintColor": { + "type": "fill", + "value": ["#ffd100"] + } + }, + "positiveButton": { + "background": { + "border": { + "type": "fill", + "value": ["#FFFFFF"] + }, + "borderWidth": 0, + "color": { + "type": "fill", + "value": ["#04728c"] + }, + "cornerRadius": 8 + }, + "shadow": { + "color": { + "type": "fill", + "value": ["#FF0000"] + }, + "offset": 0, + "opacity": 1, + "radius": 8 + }, + "text": { + "alignment": "center", + "background": { + "type": "fill", + "value": ["#FF0000"] + }, + "font": { + "size": 16, + "style": "regular" + }, + "foreground": { + "type": "fill", + "value": ["#FFFFFF"] + } + }, + "tintColor": { + "type": "fill", + "value": ["#FFFFFF"] + } + }, + "title": { + "alignment": "center", + "background": { + "type": "fill", + "value": ["#FFFFFF"] + }, + "font": { + "size": 24, + "style": "regular" + }, + "foreground": { + "type": "fill", + "value": ["#000000"] + } + }, + "titleImageColor": { + "type": "fill", + "value": ["#04728c"] + } + }, + "bubble": { + "badge": { + "background": { + "border": { + "type": "fill", + "value": ["#fdd42b"] + }, + "borderWidth": 1, + "color": { + "type": "fill", + "value": ["#04728c"] + } + }, + "font": { + "size": 12, + "style": "bold" + }, + "fontColor": { + "type": "fill", + "value": ["#fdd42b"] + } + }, + "onHoldOverlay": { + "backgroundColor": { + "type": "fill", + "value": ["#000000"] + }, + "tintColor": { + "type": "fill", + "value": ["#ffd100"] + } + }, + "userImage": { + "imageBackgroundColor": { + "type": "fill", + "value": ["#04728c"] + }, + "placeholderBackgroundColor": { + "type": "fill", + "value": ["#04728c"] + }, + "placeholderColor": { + "type": "fill", + "value": ["#fdd42b"] + } + } + }, + "callScreen": { + "background": { + "border": { + "type": "fill", + "value": ["#FF0000"] + }, + "borderWidth": 2, + "color": { + "type": "fill", + "value": ["#3A3A3A"] + }, + "cornerRadius": 8 + }, + "bottomText": { + "alignment": "center", + "background": { + "type": "fill", + "value": ["#FFFFFF"] + }, + "font": { + "size": 12, + "style": "regular" + }, + "foreground": { + "type": "fill", + "value": ["#FFFFFF"] + } + }, + "buttonBar": { + "badge": { + "background": { + "border": { + "type": "fill", + "value": ["#fdd42b"] + }, + "borderWidth": 1, + "color": { + "type": "fill", + "value": ["#fdd42b"] + } + }, + "font": { + "size": 12, + "style": "bold" + }, + "fontColor": { + "type": "fill", + "value": ["#04728c"] + } + }, + "chatButton": { + "active": { + "background": { + "type": "fill", + "value": ["#04728c"] + }, + "imageColor": { + "type": "fill", + "value": ["#FFFFFF"] + }, + "title": { + "alignment": "center", + "background": { + "type": "fill", + "value": ["#FFFFFF"] + }, + "font": { + "size": 12, + "style": "regular" + }, + "foreground": { + "type": "fill", + "value": ["#FFFFFF"] + } + } + }, + "inactive": { + "background": { + "type": "fill", + "value": ["#000000"] + }, + "imageColor": { + "type": "fill", + "value": ["#FFFFFF"] + }, + "title": { + "alignment": "center", + "background": { + "type": "fill", + "value": ["#FFFFFF"] + }, + "font": { + "size": 12, + "style": "regular" + }, + "foreground": { + "type": "fill", + "value": ["#FFFFFF"] + } + } + }, + "selected": { + "background": { + "type": "fill", + "value": ["#000000"] + }, + "imageColor": { + "type": "fill", + "value": ["#FFFFFF"] + }, + "title": { + "alignment": "center", + "background": { + "type": "fill", + "value": ["#FFFFFF"] + }, + "font": { + "size": 12, + "style": "regular" + }, + "foreground": { + "type": "fill", + "value": ["#FFFFFF"] + } + } + } + }, + "minimizeButton": { + "active": { + "background": { + "type": "fill", + "value": ["#04728c"] + }, + "imageColor": { + "type": "fill", + "value": ["#FFFFFF"] + }, + "title": { + "alignment": "center", + "background": { + "type": "fill", + "value": ["#FFFFFF"] + }, + "font": { + "size": 12, + "style": "regular" + }, + "foreground": { + "type": "fill", + "value": ["#FFFFFF"] + } + } + }, + "inactive": { + "background": { + "type": "fill", + "value": ["#000000"] + }, + "imageColor": { + "type": "fill", + "value": ["#FFFFFF"] + }, + "title": { + "alignment": "center", + "background": { + "type": "fill", + "value": ["#FFFFFF"] + }, + "font": { + "size": 12, + "style": "regular" + }, + "foreground": { + "type": "fill", + "value": ["#FFFFFF"] + } + } + }, + "selected": { + "background": { + "type": "fill", + "value": ["#000000"] + }, + "imageColor": { + "type": "fill", + "value": ["#FFFFFF"] + }, + "title": { + "alignment": "center", + "background": { + "type": "fill", + "value": ["#FFFFFF"] + }, + "font": { + "size": 12, + "style": "regular" + }, + "foreground": { + "type": "fill", + "value": ["#FFFFFF"] + } + } + } + }, + "muteButton": { + "active": { + "background": { + "type": "fill", + "value": ["#04728c"] + }, + "imageColor": { + "type": "fill", + "value": ["#FFFFFF"] + }, + "title": { + "alignment": "center", + "background": { + "type": "fill", + "value": ["#FFFFFF"] + }, + "font": { + "size": 12, + "style": "regular" + }, + "foreground": { + "type": "fill", + "value": ["#FFFFFF"] + } + } + }, + "inactive": { + "background": { + "type": "fill", + "value": ["#000000"] + }, + "imageColor": { + "type": "fill", + "value": ["#FFFFFF"] + }, + "title": { + "alignment": "center", + "background": { + "type": "fill", + "value": ["#FFFFFF"] + }, + "font": { + "size": 12, + "style": "regular" + }, + "foreground": { + "type": "fill", + "value": ["#FFFFFF"] + } + } + }, + "selected": { + "background": { + "type": "fill", + "value": ["#000000"] + }, + "imageColor": { + "type": "fill", + "value": ["#FFFFFF"] + }, + "title": { + "alignment": "center", + "background": { + "type": "fill", + "value": ["#FFFFFF"] + }, + "font": { + "size": 12, + "style": "regular" + }, + "foreground": { + "type": "fill", + "value": ["#FFFFFF"] + } + } + } + }, + "speakerButton": { + "active": { + "background": { + "type": "fill", + "value": ["#04728c"] + }, + "imageColor": { + "type": "fill", + "value": ["#FFFFFF"] + }, + "title": { + "alignment": "center", + "background": { + "type": "fill", + "value": ["#FFFFFF"] + }, + "font": { + "size": 12, + "style": "regular" + }, + "foreground": { + "type": "fill", + "value": ["#FFFFFF"] + } + } + }, + "inactive": { + "background": { + "type": "fill", + "value": ["#000000"] + }, + "imageColor": { + "type": "fill", + "value": ["#FFFFFF"] + }, + "title": { + "alignment": "center", + "background": { + "type": "fill", + "value": ["#FFFFFF"] + }, + "font": { + "size": 12, + "style": "regular" + }, + "foreground": { + "type": "fill", + "value": ["#FFFFFF"] + } + } + }, + "selected": { + "background": { + "type": "fill", + "value": ["#000000"] + }, + "imageColor": { + "type": "fill", + "value": ["#FFFFFF"] + }, + "title": { + "alignment": "center", + "background": { + "type": "fill", + "value": ["#FFFFFF"] + }, + "font": { + "size": 12, + "style": "regular" + }, + "foreground": { + "type": "fill", + "value": ["#FFFFFF"] + } + } + } + }, + "videoButton": { + "active": { + "background": { + "type": "fill", + "value": ["#04728c"] + }, + "imageColor": { + "type": "fill", + "value": ["#FFFFFF"] + }, + "title": { + "alignment": "center", + "background": { + "type": "fill", + "value": ["#FFFFFF"] + }, + "font": { + "size": 12, + "style": "regular" + }, + "foreground": { + "type": "fill", + "value": ["#FFFFFF"] + } + } + }, + "inactive": { + "background": { + "type": "fill", + "value": ["#000000"] + }, + "imageColor": { + "type": "fill", + "value": ["#FFFFFF"] + }, + "title": { + "alignment": "center", + "background": { + "type": "fill", + "value": ["#FFFFFF"] + }, + "font": { + "size": 12, + "style": "regular" + }, + "foreground": { + "type": "fill", + "value": ["#FFFFFF"] + } + } + }, + "selected": { + "background": { + "type": "fill", + "value": ["#000000"] + }, + "imageColor": { + "type": "fill", + "value": ["#FFFFFF"] + }, + "title": { + "alignment": "center", + "background": { + "type": "fill", + "value": ["#FFFFFF"] + }, + "font": { + "size": 12, + "style": "regular" + }, + "foreground": { + "type": "fill", + "value": ["#FFFFFF"] + } + } + } + } + }, + "operator": { + "alignment": "center", + "background": { + "type": "fill", + "value": ["#FFFFFF"] + }, + "font": { + "size": 24, + "style": "regular" + }, + "foreground": { + "type": "fill", + "value": ["#FFFFFF"] + } + }, + "connect": { + "connected": { + "title": { + "alignment": "center", + "background": { + "type": "fill", + "value": ["#FFFFFF"] + }, + "font": { + "size": 24, + "style": "bold" + }, + "foreground": { + "type": "fill", + "value": ["#FFFFFF"] + } + }, + "description": { + "alignment": "center", + "background": { + "type": "fill", + "value": ["#FFFFFF"] + }, + "font": { + "size": 18, + "style": "regular" + }, + "foreground": { + "type": "fill", + "value": ["#FFFFFF"] + } + } + }, + "connecting": { + "title": { + "alignment": "center", + "background": { + "type": "fill", + "value": ["#FFFFFF"] + }, + "font": { + "size": 24, + "style": "bold" + }, + "foreground": { + "type": "fill", + "value": ["#FFFFFF"] + } + }, + "description": { + "alignment": "center", + "background": { + "type": "fill", + "value": ["#FFFFFF"] + }, + "font": { + "size": 18, + "style": "regular" + }, + "foreground": { + "type": "fill", + "value": ["#FFFFFF"] + } + } + }, + "onHold": { + "title": { + "alignment": "center", + "background": { + "type": "fill", + "value": ["#FFFFFF"] + }, + "font": { + "size": 24, + "style": "bold" + }, + "foreground": { + "type": "fill", + "value": ["#8E8E93"] + } + }, + "description": { + "alignment": "center", + "background": { + "type": "fill", + "value": ["#FFFFFF"] + }, + "font": { + "size": 18, + "style": "regular" + }, + "foreground": { + "type": "fill", + "value": ["#8E8E93"] + } + } + }, + "operator": { + "image": { + "placeholderColor": { + "type": "fill", + "value": ["#04728c"] + }, + "placeholderBackgroundColor": { + "type": "fill", + "value": ["#f9d12b"] + }, + "imageBackgroundColor": { + "type": "fill", + "value": ["#f9d12b"] + } + }, + "animationColor": { + "type": "fill", + "value": ["#f9d12b"] + }, + "onHoldOverlay": { + "backgroundColor": { + "type": "fill", + "value": ["#000000"] + }, + "tintColor": { + "type": "fill", + "value": ["#f9d12b"] + } + } + }, + "queue": { + "title": { + "alignment": "center", + "background": { + "type": "fill", + "value": ["#FFFFFF"] + }, + "font": { + "size": 24, + "style": "bold" + }, + "foreground": { + "type": "fill", + "value": ["#FFFFFF"] + } + }, + "description": { + "alignment": "center", + "background": { + "type": "fill", + "value": ["#FFFFFF"] + }, + "font": { + "size": 18, + "style": "regular" + }, + "foreground": { + "type": "fill", + "value": ["#FFFFFF"] + } + } + }, + "transferring": { + "title": { + "alignment": "center", + "background": { + "type": "fill", + "value": ["#FFFFFF"] + }, + "font": { + "size": 24, + "style": "bold" + }, + "foreground": { + "type": "fill", + "value": ["#FFFFFF"] + } + }, + "description": { + "alignment": "center", + "background": { + "type": "fill", + "value": ["#FFFFFF"] + }, + "font": { + "size": 18, + "style": "regular" + }, + "foreground": { + "type": "fill", + "value": ["#FFFFFF"] + } + } + } + }, + "duration": { + "alignment": "center", + "background": { + "type": "fill", + "value": ["#FFFFFF"] + }, + "font": { + "size": 16, + "style": "regular" + }, + "foreground": { + "type": "fill", + "value": ["#FFFFFF"] + } + }, + "header": { + "backButton": { + "background": { + "border": { + "type": "fill", + "value": ["#FFFFFF"] + }, + "borderWidth": 2, + "color": { + "type": "fill", + "value": ["#000000"] + }, + "cornerRadius": 8 + }, + "shadow": { + "color": { + "type": "fill", + "value": ["#FFFFFF"] + }, + "offset": 0, + "opacity": 1, + "radius": 5 + }, + "text": { + "alignment": "center", + "background": { + "type": "fill", + "value": ["#FFFFFF"] + }, + "font": { + "size": 16, + "style": "regular" + }, + "foreground": { + "type": "fill", + "value": ["#000000"] + } + }, + "tintColor": { + "type": "fill", + "value": ["#000000"] + } + }, + "background": { + "border": { + "type": "fill", + "value": ["#FFFFFF"] + }, + "borderWidth": 2, + "color": { + "type": "fill", + "value": ["#f9d12b"] + }, + "cornerRadius": 8 + }, + "closeButton": { + "background": { + "border": { + "type": "fill", + "value": ["#FFFFFF"] + }, + "borderWidth": 2, + "color": { + "type": "fill", + "value": ["#FFFFFF"] + }, + "cornerRadius": 8 + }, + "shadow": { + "color": { + "type": "fill", + "value": ["#FFFFFF"] + }, + "offset": 0, + "opacity": 1, + "radius": 5 + }, + "text": { + "alignment": "center", + "background": { + "type": "fill", + "value": ["#FFFFFF"] + }, + "font": { + "size": 16, + "style": "regular" + }, + "foreground": { + "type": "fill", + "value": ["#FFFFFF"] + } + }, + "tintColor": { + "type": "fill", + "value": ["#000000"] + } + }, + "endButton": { + "background": { + "border": { + "type": "fill", + "value": ["#FFFFFF"] + }, + "borderWidth": 0, + "color": { + "type": "fill", + "value": ["#04728c"] + }, + "cornerRadius": 8 + }, + "shadow": { + "color": { + "type": "fill", + "value": ["#FFFFFF"] + }, + "offset": 0, + "opacity": 1, + "radius": 5 + }, + "text": { + "alignment": "center", + "background": { + "type": "fill", + "value": ["#FFFFFF"] + }, + "font": { + "size": 16, + "style": "regular" + }, + "foreground": { + "type": "fill", + "value": ["#FFFFFF"] + } + }, + "tintColor": { + "type": "fill", + "value": ["#3e95a6"] + } + }, + "endScreenSharingButton": { + "background": { + "border": { + "type": "fill", + "value": ["#FFFFFF"] + }, + "borderWidth": 2, + "color": { + "type": "fill", + "value": ["#FFFFFF"] + }, + "cornerRadius": 8 + }, + "shadow": { + "color": { + "type": "fill", + "value": ["#FFFFFF"] + }, + "offset": 0, + "opacity": 1, + "radius": 5 + }, + "text": { + "alignment": "center", + "background": { + "type": "fill", + "value": ["#FFFFFF"] + }, + "font": { + "size": 16, + "style": "regular" + }, + "foreground": { + "type": "fill", + "value": ["#FFFFFF"] + } + }, + "tintColor": { + "type": "fill", + "value": ["#FFFFFF"] + } + }, + "text": { + "alignment": "center", + "background": { + "type": "fill", + "value": ["#FFFFFF"] + }, + "font": { + "size": 20, + "style": "regular" + }, + "foreground": { + "type": "fill", + "value": ["#000000"] + } + } + }, + "topText": { + "alignment": "center", + "background": { + "type": "fill", + "value": ["#FFFFFF"] + }, + "font": { + "size": 16, + "style": "regular" + }, + "foreground": { + "type": "fill", + "value": ["#FFFFFF"] + } + }, + "snackBar": { + "background": { + "type": "fill", + "value": ["#FFFFFF"] + }, + "text": { + "type": "fill", + "value": ["#3B3B40"] + } + } + }, + "chatScreen": { + "attachmentSourceList": { + "items": [ + { + "type": "photoLibrary", + "text": { + "alignment": "center", + "background": { + "type": "fill", + "value": ["#FFFFFF"] + }, + "font": { + "size": 18, + "style": "bold" + }, + "foreground": { + "type": "fill", + "value": ["#04728c"] + } + }, + "tintColor": { + "type": "fill", + "value": ["#04728c"] + } + }, + { + "type": "takePhoto", + "text": { + "alignment": "center", + "background": { + "type": "fill", + "value": ["#FFFFFF"] + }, + "font": { + "size": 18, + "style": "bold" + }, + "foreground": { + "type": "fill", + "value": ["#04728c"] + } + }, + "tintColor": { + "type": "fill", + "value": ["#04728c"] + } + }, + { + "type": "browse", + "text": { + "alignment": "center", + "background": { + "type": "fill", + "value": ["#FFFFFF"] + }, + "font": { + "size": 18, + "style": "bold" + }, + "foreground": { + "type": "fill", + "value": ["#04728c"] + } + }, + "tintColor": { + "type": "fill", + "value": ["#04728c"] + } + } + ], + "separator": { + "type": "fill", + "value": ["#04728c"] + }, + "background": { + "type": "fill", + "value": ["#FAFAFA"] + } + }, + "audioUpgrade": { + "background": { + "border": { + "type": "fill", + "value": ["#04728c"] + }, + "color": { + "type": "fill", + "value": ["#88fdd42b"] + }, + "cornerRadius": 8, + "borderWidth": 1 + }, + "description": { + "alignment": "center", + "background": { + "type": "fill", + "value": ["#FFFFFF"] + }, + "font": { + "size": 16, + "style": "regular" + }, + "foreground": { + "type": "fill", + "value": ["#111111"] + } + }, + "iconColor": { + "type": "fill", + "value": ["#04728c"] + }, + "text": { + "alignment": "center", + "background": { + "type": "fill", + "value": ["#FFFFFF"] + }, + "font": { + "size": 16, + "style": "regular" + }, + "foreground": { + "type": "fill", + "value": ["#FFFFFF"] + } + } + }, + "background": { + "border": { + "type": "fill", + "value": ["#FFFFFF"] + }, + "borderWidth": 2, + "color": { + "type": "fill", + "value": ["#FFFFFF"] + }, + "cornerRadius": 16 + }, + "bubble": { + "badge": { + "background": { + "border": { + "type": "fill", + "value": ["#fdd42b"] + }, + "borderWidth": 1, + "color": { + "type": "fill", + "value": ["#04728c"] + } + }, + "font": { + "size": 12, + "style": "bold" + }, + "fontColor": { + "type": "fill", + "value": ["#fdd42b"] + } + }, + "onHoldOverlay": { + "backgroundColor": { + "type": "fill", + "value": ["#000000"] + }, + "tintColor": { + "type": "fill", + "value": ["#ffd100"] + } + }, + "userImage": { + "imageBackgroundColor": { + "type": "fill", + "value": ["#04728c"] + }, + "placeholderBackgroundColor": { + "type": "fill", + "value": ["#04728c"] + }, + "placeholderColor": { + "type": "fill", + "value": ["#fdd42b"] + } + } + }, + "connect": { + "connected": { + "title": { + "alignment": "center", + "background": { + "type": "fill", + "value": ["#FFFFFF"] + }, + "font": { + "size": 24, + "style": "bold" + }, + "foreground": { + "type": "fill", + "value": ["#8E8E93"] + } + }, + "description": { + "alignment": "center", + "background": { + "type": "fill", + "value": ["#FFFFFF"] + }, + "font": { + "size": 18, + "style": "regular" + }, + "foreground": { + "type": "fill", + "value": ["#8E8E93"] + } + } + }, + "connecting": { + "title": { + "alignment": "center", + "background": { + "type": "fill", + "value": ["#FFFFFF"] + }, + "font": { + "size": 24, + "style": "bold" + }, + "foreground": { + "type": "fill", + "value": ["#8E8E93"] + } + }, + "description": { + "alignment": "center", + "background": { + "type": "fill", + "value": ["#FFFFFF"] + }, + "font": { + "size": 18, + "style": "regular" + }, + "foreground": { + "type": "fill", + "value": ["#8E8E93"] + } + } + }, + "onHold": { + "title": { + "alignment": "center", + "background": { + "type": "fill", + "value": ["#FFFFFF"] + }, + "font": { + "size": 24, + "style": "bold" + }, + "foreground": { + "type": "fill", + "value": ["#8E8E93"] + } + }, + "description": { + "alignment": "center", + "background": { + "type": "fill", + "value": ["#FFFFFF"] + }, + "font": { + "size": 18, + "style": "regular" + }, + "foreground": { + "type": "fill", + "value": ["#8E8E93"] + } + } + }, + "operator": { + "image": { + "placeholderColor": { + "type": "fill", + "value": ["#f9d12b"] + }, + "placeholderBackgroundColor": { + "type": "fill", + "value": ["#04728c"] + }, + "imageBackgroundColor": { + "type": "fill", + "value": ["#04728c"] + } + }, + "animationColor": { + "type": "fill", + "value": ["#04728c"] + }, + "onHoldOverlay": { + "backgroundColor": { + "type": "fill", + "value": ["#000000"] + }, + "tintColor": { + "type": "fill", + "value": ["#f9d12b"] + } + } + }, + "queue": { + "title": { + "alignment": "center", + "background": { + "type": "fill", + "value": ["#FFFFFF"] + }, + "font": { + "size": 24, + "style": "bold" + }, + "foreground": { + "type": "fill", + "value": ["#8E8E93"] + } + }, + "description": { + "alignment": "center", + "background": { + "type": "fill", + "value": ["#FFFFFF"] + }, + "font": { + "size": 18, + "style": "regular" + }, + "foreground": { + "type": "fill", + "value": ["#8E8E93"] + } + } + }, + "transferring": { + "title": { + "alignment": "center", + "background": { + "type": "fill", + "value": ["#FFFFFF"] + }, + "font": { + "size": 24, + "style": "bold" + }, + "foreground": { + "type": "fill", + "value": ["#8E8E93"] + } + }, + "description": { + "alignment": "center", + "background": { + "type": "fill", + "value": ["#FFFFFF"] + }, + "font": { + "size": 18, + "style": "regular" + }, + "foreground": { + "type": "fill", + "value": ["#8E8E93"] + } + } + } + }, + "header": { + "backButton": { + "background": { + "border": { + "type": "fill", + "value": ["#FFFFFF"] + }, + "borderWidth": 2, + "color": { + "type": "fill", + "value": ["#FFFFFF"] + }, + "cornerRadius": 8 + }, + "shadow": { + "color": { + "type": "fill", + "value": ["#FFFFFF"] + }, + "offset": 0, + "opacity": 1, + "radius": 5 + }, + "text": { + "alignment": "center", + "background": { + "type": "fill", + "value": ["#FFFFFF"] + }, + "font": { + "size": 16, + "style": "regular" + }, + "foreground": { + "type": "fill", + "value": ["#FFFFFF"] + } + }, + "tintColor": { + "type": "fill", + "value": ["#000000"] + } + }, + "background": { + "border": { + "type": "fill", + "value": ["#FFFFFF"] + }, + "borderWidth": 2, + "color": { + "type": "fill", + "value": ["#fdd42b"] + }, + "cornerRadius": 8 + }, + "closeButton": { + "background": { + "border": { + "type": "fill", + "value": ["#FFFFFF"] + }, + "borderWidth": 2, + "color": { + "type": "fill", + "value": ["#FFFFFF"] + }, + "cornerRadius": 8 + }, + "shadow": { + "color": { + "type": "fill", + "value": ["#FFFFFF"] + }, + "offset": 0, + "opacity": 1, + "radius": 5 + }, + "text": { + "alignment": "center", + "background": { + "type": "fill", + "value": ["#FFFFFF"] + }, + "font": { + "size": 24, + "style": "regular" + }, + "foreground": { + "type": "fill", + "value": ["#FFFFFF"] + } + }, + "tintColor": { + "type": "fill", + "value": ["#000000"] + } + }, + "endButton": { + "background": { + "border": { + "type": "fill", + "value": ["#FFFFFF"] + }, + "borderWidth": 0, + "color": { + "type": "fill", + "value": ["#04728c"] + }, + "cornerRadius": 8 + }, + "shadow": { + "color": { + "type": "fill", + "value": ["#FFFFFF"] + }, + "offset": 0, + "opacity": 1, + "radius": 5 + }, + "text": { + "alignment": "center", + "background": { + "type": "fill", + "value": ["#FFFFFF"] + }, + "font": { + "size": 16, + "style": "regular" + }, + "foreground": { + "type": "fill", + "value": ["#FFFFFF"] + } + }, + "tintColor": { + "type": "fill", + "value": ["#2596be"] + } + }, + "endScreenSharingButton": { + "background": { + "border": { + "type": "fill", + "value": ["#FFFFFF"] + }, + "borderWidth": 2, + "color": { + "type": "fill", + "value": ["#FFFFFF"] + }, + "cornerRadius": 8 + }, + "shadow": { + "color": { + "type": "fill", + "value": ["#FFFFFF"] + }, + "offset": 0, + "opacity": 1, + "radius": 5 + }, + "text": { + "alignment": "center", + "background": { + "type": "fill", + "value": ["#FFFFFF"] + }, + "font": { + "size": 16, + "style": "regular" + }, + "foreground": { + "type": "fill", + "value": ["#FFFFFF"] + } + }, + "tintColor": { + "type": "fill", + "value": ["#2596be"] + } + }, + "text": { + "alignment": "center", + "background": { + "type": "fill", + "value": ["#FFFFFF"] + }, + "font": { + "size": 24, + "style": "bold" + }, + "foreground": { + "type": "fill", + "value": ["#000000"] + } + } + }, + "input": { + "background": { + "border": { + "type": "fill", + "value": ["#FFFFFF"] + }, + "borderWidth": 2, + "color": { + "type": "fill", + "value": ["#FFFFFF"] + }, + "cornerRadius": 8 + }, + "fileUploadBar": { + "error": { + "info": { + "alignment": "center", + "background": { + "type": "fill", + "value": ["#FFFFFF"] + }, + "font": { + "size": 18, + "style": "bold" + }, + "foreground": { + "type": "fill", + "value": ["#FFFFFF"] + } + }, + "text": { + "alignment": "center", + "background": { + "type": "fill", + "value": ["#FFFFFF"] + }, + "font": { + "size": 18, + "style": "bold" + }, + "foreground": { + "type": "fill", + "value": ["#FFFFFF"] + } + } + }, + "errorProgress": { + "type": "fill", + "value": ["#ffff99"] + }, + "filePreview": { + "text": { + "font": { + "size": 18, + "style": "bold" + }, + "foreground": { + "type": "fill", + "value": ["#66ff99"] + } + }, + "errorIcon": { + "type": "fill", + "value": ["#ff0000"] + }, + "background": { + "color": { + "type": "fill", + "value": ["#ff00ff"] + }, + "cornerRadius": 0, + "borderWidth": 0, + "border": { + "type": "fill", + "value": ["#0099ff"] + } + }, + "errorBackground": { + "color": { + "type": "fill", + "value": ["#0099ff"] + }, + "cornerRadius": 0, + "borderWidth": 0, + "border": { + "type": "fill", + "value": ["#ff00ff"] + } + } + }, + "progress": { + "type": "fill", + "value": ["#006666"] + }, + "progressBackground": { + "type": "fill", + "value": ["#00ffff"] + }, + "removeButton": { + "type": "fill", + "value": ["#bf8040"] + }, + "uploading": { + "info": { + "alignment": "center", + "background": { + "type": "fill", + "value": ["#FFFFFF"] + }, + "font": { + "size": 18, + "style": "bold" + }, + "foreground": { + "type": "fill", + "value": ["#FFFFFF"] + } + }, + "text": { + "alignment": "center", + "background": { + "type": "fill", + "value": ["#FFFFFF"] + }, + "font": { + "size": 18, + "style": "bold" + }, + "foreground": { + "type": "fill", + "value": ["#FFFFFF"] + } + } + }, + "uploaded": { + "info": { + "alignment": "center", + "background": { + "type": "fill", + "value": ["#FFFFFF"] + }, + "font": { + "size": 18, + "style": "bold" + }, + "foreground": { + "type": "fill", + "value": ["#FFFFFF"] + } + }, + "text": { + "alignment": "center", + "background": { + "type": "fill", + "value": ["#FFFFFF"] + }, + "font": { + "size": 18, + "style": "bold" + }, + "foreground": { + "type": "fill", + "value": ["#FFFFFF"] + } + } + } + }, + "mediaButton": { + "background": { + "border": { + "type": "fill", + "value": ["#FFFFFF"] + }, + "borderWidth": 2, + "color": { + "type": "fill", + "value": ["#FFFFFF"] + }, + "cornerRadius": 8 + }, + "shadow": { + "color": { + "type": "fill", + "value": ["#FFFFFF"] + }, + "offset": 0, + "opacity": 1, + "radius": 5 + }, + "text": { + "alignment": "center", + "background": { + "type": "fill", + "value": ["#FFFFFF"] + }, + "font": { + "size": 12, + "style": "regular" + }, + "foreground": { + "type": "fill", + "value": ["#FFFFFF"] + } + }, + "tintColor": { + "type": "fill", + "value": ["#2596be"] + } + }, + "placeholder": { + "alignment": "center", + "font": { + "size": 18, + "style": "bold" + }, + "background": { + "type": "fill", + "value": ["#8E8E93"] + }, + "foreground": { + "type": "fill", + "value": ["#8E8E93"] + } + }, + "sendButton": { + "background": { + "border": { + "type": "fill", + "value": ["#FFFFFF"] + }, + "borderWidth": 2, + "color": { + "type": "fill", + "value": ["#FFFFFF"] + }, + "cornerRadius": 0 + }, + "shadow": { + "color": { + "type": "fill", + "value": ["#FFFFFF"] + }, + "offset": 0, + "opacity": 1, + "radius": 5 + }, + "text": { + "alignment": "center", + "background": { + "type": "fill", + "value": ["#FFFFFF"] + }, + "font": { + "size": 16, + "style": "regular" + }, + "foreground": { + "type": "fill", + "value": ["#FFFFFF"] + } + }, + "tintColor": { + "type": "fill", + "value": ["#04728c"] + } + }, + "separator": { + "type": "fill", + "value": ["#8E8E93"] + }, + "text": { + "alignment": "center", + "background": { + "type": "fill", + "value": ["#FFFFFF"] + }, + "font": { + "size": 18, + "style": "bold" + }, + "foreground": { + "type": "fill", + "value": ["#000000"] + } + } + }, + "operatorMessage": { + "background": { + "border": { + "type": "fill", + "value": ["#FFFFFF"] + }, + "borderWidth": 2, + "color": { + "type": "fill", + "value": ["#04728c"] + }, + "cornerRadius": 10 + }, + "status": { + "alignment": "center", + "background": { + "type": "fill", + "value": ["#FFFFFF"] + }, + "font": { + "size": 16, + "style": "regular" + }, + "foreground": { + "type": "fill", + "value": ["#FFFFFF"] + } + }, + "text": { + "alignment": "center", + "background": { + "type": "fill", + "value": ["#FFFFFF"] + }, + "font": { + "size": 16, + "style": "regular" + }, + "foreground": { + "type": "fill", + "value": ["#FFFFFF"] + } + }, + "userImage": { + "placeholderColor": { + "type": "fill", + "value": ["#8E8E93"] + }, + "placeholderBackgroundColor": { + "type": "fill", + "value": ["#8E8E93"] + }, + "imageBackgroundColor": { + "type": "fill", + "value": ["#8E8E93"] + } + } + }, + "responseCard": { + "background": { + "border": { + "type": "fill", + "value": ["#04728c"] + }, + "color": { + "type": "fill", + "value": ["#8878e1e1"] + }, + "cornerRadius": 8, + "borderWidth": 1 + }, + "option": { + "normal": { + "background": { + "border": { + "type": "fill", + "value": ["#04728c"] + }, + "borderWidth": 1, + "color": { + "type": "fill", + "value": ["#FFFFFF"] + }, + "cornerRadius": 8 + }, + "shadow": { + "color": { + "type": "fill", + "value": ["#FFFFFF"] + }, + "offset": 0, + "opacity": 1, + "radius": 8 + }, + "text": { + "alignment": "center", + "background": { + "type": "fill", + "value": ["#FF0000"] + }, + "font": { + "size": 16, + "style": "regular" + }, + "foreground": { + "type": "fill", + "value": ["#000000"] + } + }, + "tintColor": { + "type": "fill", + "value": ["#ffd100"] + } + }, + "selected": { + "background": { + "border": { + "type": "fill", + "value": ["#04728c"] + }, + "borderWidth": 1, + "color": { + "type": "fill", + "value": ["#04728c"] + }, + "cornerRadius": 8 + }, + "shadow": { + "color": { + "type": "fill", + "value": ["#FFFFFF"] + }, + "offset": 0, + "opacity": 1, + "radius": 8 + }, + "text": { + "alignment": "center", + "background": { + "type": "fill", + "value": ["#FF0000"] + }, + "font": { + "size": 16, + "style": "regular" + }, + "foreground": { + "type": "fill", + "value": ["#FFFFFF"] + } + }, + "tintColor": { + "type": "fill", + "value": ["#FFFFFF"] + } + }, + "disabled": { + "background": { + "border": { + "type": "fill", + "value": ["#66000000"] + }, + "borderWidth": 1, + "color": { + "type": "fill", + "value": ["#FFFFFF"] + }, + "cornerRadius": 8 + }, + "shadow": { + "color": { + "type": "fill", + "value": ["#FFFFFF"] + }, + "offset": 0, + "opacity": 1, + "radius": 8 + }, + "text": { + "alignment": "center", + "background": { + "type": "fill", + "value": ["#FF0000"] + }, + "font": { + "size": 16, + "style": "regular" + }, + "foreground": { + "type": "fill", + "value": ["#66000000"] + } + }, + "tintColor": { + "type": "fill", + "value": ["#ffd100"] + } + } + }, + "text": { + "alignment": "leading", + "background": { + "type": "fill", + "value": ["#8E8E93"] + }, + "font": { + "size": 16, + "style": "bold" + }, + "foreground": { + "type": "fill", + "value": ["#88000000"] + } + }, + "userImage": { + "placeholderColor": { + "type": "fill", + "value": ["#8E8E93"] + }, + "placeholderBackgroundColor": { + "type": "fill", + "value": ["#8E8E93"] + }, + "imageBackgroundColor": { + "type": "fill", + "value": ["#8E8E93"] + } + } + }, + "typingIndicator": { + "type": "fill", + "value": ["#04728c"] + }, + "unreadIndicator": { + "backgroundColor": { + "type": "fill", + "value": ["#04728c"] + }, + "bubble": { + "badge": { + "background": { + "border": { + "type": "fill", + "value": ["#fdd42b"] + }, + "borderWidth": 1, + "color": { + "type": "fill", + "value": ["#04728c"] + } + }, + "font": { + "size": 12, + "style": "bold" + }, + "fontColor": { + "type": "fill", + "value": ["#fdd42b"] + } + }, + "onHoldOverlay": { + "backgroundColor": { + "type": "fill", + "value": ["#000000"] + }, + "tintColor": { + "type": "fill", + "value": ["#ffd100"] + } + }, + "userImage": { + "imageBackgroundColor": { + "type": "fill", + "value": ["#04728c"] + }, + "placeholderBackgroundColor": { + "type": "fill", + "value": ["#04728c"] + }, + "placeholderColor": { + "type": "fill", + "value": ["#fdd42b"] + } + } + } + }, + "videoUpgrade": { + "background": { + "border": { + "type": "fill", + "value": ["#04728c"] + }, + "color": { + "type": "fill", + "value": ["#88fdd42b"] + }, + "cornerRadius": 8, + "borderWidth": 1 + }, + "description": { + "alignment": "center", + "background": { + "type": "fill", + "value": ["#FFFFFF"] + }, + "font": { + "size": 16, + "style": "regular" + }, + "foreground": { + "type": "fill", + "value": ["#111111"] + } + }, + "iconColor": { + "type": "fill", + "value": ["#04728c"] + }, + "text": { + "alignment": "center", + "background": { + "type": "fill", + "value": ["#FFFFFF"] + }, + "font": { + "size": 16, + "style": "regular" + }, + "foreground": { + "type": "fill", + "value": ["#FFFFFF"] + } + } + }, + "visitorMessage": { + "background": { + "border": { + "type": "fill", + "value": ["#FFFFFF"] + }, + "borderWidth": 2, + "color": { + "type": "fill", + "value": ["#e7e7e7"] + }, + "cornerRadius": 10 + }, + "status": { + "alignment": "center", + "background": { + "type": "fill", + "value": ["#FFFFFF"] + }, + "font": { + "size": 16, + "style": "regular" + }, + "foreground": { + "type": "fill", + "value": ["#FFFFFF"] + } + }, + "text": { + "alignment": "center", + "background": { + "type": "fill", + "value": ["#FFFFFF"] + }, + "font": { + "size": 16, + "style": "regular" + }, + "foreground": { + "type": "fill", + "value": ["#000000"] + } + }, + "userImage": { + "placeholderColor": { + "type": "fill", + "value": ["#8E8E93"] + }, + "placeholderBackgroundColor": { + "type": "fill", + "value": ["#8E8E93"] + }, + "imageBackgroundColor": { + "type": "fill", + "value": ["#8E8E93"] + } + } + }, + "newMessagesDividerColor": { + "type": "fill", + "value": ["#f9d12b"] + }, + "newMessagesDividerText" : { + "font": { + "size": 16, + "style": "regular" + }, + "foreground": { + "type": "fill", + "value": ["#FFFF00"] + } + }, + "gva": { + "quickReplyButton": { + "text": { + "foreground": { + "type": "fill", + "value": ["#04728c"] + } + }, + "background": { + "border": { + "type": "fill", + "value": ["#04728c"] + } + } + }, + "persistentButton": { + "title": { + "alignment": "center", + "background": { + "type": "fill", + "value": ["#F3F3F3"] + }, + "font": { + "size": 16, + "style": "regular" + }, + "foreground": { + "type": "fill", + "value": ["#000000"] + } + }, + "background": { + "border": { + "type": "fill", + "value": ["#FFFFFF"] + }, + "borderWidth": 2, + "color": { + "type": "fill", + "value": ["#F3F3F3"] + }, + "cornerRadius": 24 + }, + "button": { + "background": { + "border": { + "type": "fill", + "value": ["#FFFFFF"] + }, + "borderWidth": 2, + "color": { + "type": "fill", + "value": ["#3e95a6"] + }, + "cornerRadius": 8 + }, + "shadow": { + "color": { + "type": "fill", + "value": ["#FFFFFF"] + }, + "offset": 0, + "opacity": 1, + "radius": 0 + }, + "text": { + "alignment": "center", + "background": { + "type": "fill", + "value": ["#f0d12b"] + }, + "font": { + "size": 16, + "style": "regular" + }, + "foreground": { + "type": "fill", + "value": ["#FFFFFF"] + } + }, + "tintColor": { + "type": "fill", + "value": ["#FFFFFF"] + } + } + }, + "galleryCard": { + "title": { + "alignment": "center", + "background": { + "type": "fill", + "value": [ + "#F3F3F3" + ] + }, + "font": { + "size": 18, + "style": "bold" + }, + "foreground": { + "type": "fill", + "value": [ + "#04728c" + ] + } + }, + "subtitle": { + "alignment": "center", + "background": { + "type": "fill", + "value": [ + "#F3F3F3" + ] + }, + "font": { + "size": 16, + "style": "regular" + }, + "foreground": { + "type": "fill", + "value": [ + "#000000" + ] + } + }, + "image": { + "border": { + "type": "fill", + "value": [ + "#FFFFFF" + ] + }, + "borderWidth": 2, + "color": { + "type": "fill", + "value": [ + "#F3F3F3" + ] + }, + "cornerRadius": 18 + }, + "button": { + "background": { + "border": { + "type": "fill", + "value": [ + "#FFFFFF" + ] + }, + "borderWidth": 2, + "color": { + "type": "fill", + "value": [ + "#3e95a6" + ] + }, + "cornerRadius": 8 + }, + "shadow": { + "color": { + "type": "fill", + "value": [ + "#FFFFFF" + ] + }, + "offset": 0, + "opacity": 1, + "radius": 0 + }, + "text": { + "alignment": "center", + "background": { + "type": "fill", + "value": [ + "#f0d12b" + ] + }, + "font": { + "size": 16, + "style": "regular" + }, + "foreground": { + "type": "fill", + "value": [ + "#FFFFFF" + ] + } + }, + "tintColor": { + "type": "fill", + "value": [ + "#FFFFFF" + ] + } + }, + "background": { + "border": { + "type": "fill", + "value": [ + "#FFFFFF" + ] + }, + "borderWidth": 2, + "color": { + "type": "fill", + "value": [ + "#1AFFD000" + ] + }, + "cornerRadius": 24 + } + } + } + }, + "surveyScreen": { + "layer": { + "border": { + "type": "fill", + "value": ["#FFFFFF"] + }, + "borderWidth": 2, + "color": { + "type": "fill", + "value": ["#f9d12b"] + }, + "cornerRadius": 16 + }, + "title": { + "alignment": "center", + "background": { + "type": "fill", + "value": ["#FFFF00"] + }, + "font": { + "size": 24, + "style": "bold" + }, + "foreground": { + "type": "fill", + "value": ["#000000"] + } + }, + "submitButton": { + "background": { + "border": { + "type": "fill", + "value": ["#FFFFFF"] + }, + "borderWidth": 2, + "color": { + "type": "fill", + "value": ["#3e95a6"] + }, + "cornerRadius": 8 + }, + "shadow": { + "color": { + "type": "fill", + "value": ["#FFFFFF"] + }, + "offset": 0, + "opacity": 1, + "radius": 0 + }, + "text": { + "alignment": "center", + "background": { + "type": "fill", + "value": ["#f0d12b"] + }, + "font": { + "size": 16, + "style": "regular" + }, + "foreground": { + "type": "fill", + "value": ["#FFFFFF"] + } + }, + "tintColor": { + "type": "fill", + "value": ["#FFFFFF"] + } + }, + "cancelButton": { + "background": { + "border": { + "type": "fill", + "value": ["#FFFFFF"] + }, + "borderWidth": 2, + "color": { + "type": "fill", + "value": ["#FFFFFF"] + }, + "cornerRadius": 8 + }, + "shadow": { + "color": { + "type": "fill", + "value": ["#FFFFFF"] + }, + "offset": 0, + "opacity": 1, + "radius": 0 + }, + "text": { + "alignment": "center", + "background": { + "type": "fill", + "value": ["#FFFFFF"] + }, + "font": { + "size": 16, + "style": "regular" + }, + "foreground": { + "type": "fill", + "value": ["#000000"] + } + }, + "tintColor": { + "type": "fill", + "value": ["#FFFFFF"] + } + }, + "singleQuestion": { + "option": { + "alignment": "center", + "background": { + "type": "fill", + "value": ["#FFFFFF"] + }, + "font": { + "size": 16, + "style": "regular" + }, + "foreground": { + "type": "fill", + "value": ["#000000"] + } + }, + "tintColor": { + "type": "fill", + "value": ["#3e95a6"] + }, + "title": { + "alignment": "center", + "background": { + "type": "fill", + "value": ["#FFFFFF"] + }, + "font": { + "size": 20, + "style": "regular" + }, + "foreground": { + "type": "fill", + "value": ["#000000"] + } + } + }, + "booleanQuestion": { + "optionButton": { + "font": { + "size": 12, + "style": "regular" + }, + "highlightedLayer": { + "border": { + "type": "fill", + "value": ["#00FF00"] + }, + "borderWidth": 4, + "color": { + "type": "fill", + "value": ["#FFFFFF"] + }, + "cornerRadius": 8 + }, + "highlightedText": { + "alignment": "center", + "background": { + "type": "fill", + "value": ["#FFFFFF"] + }, + "font": { + "size": 12, + "style": "regular" + }, + "foreground": { + "type": "fill", + "value": ["#FFFFFF"] + } + }, + "normalLayer": { + "border": { + "type": "fill", + "value": ["#000000"] + }, + "borderWidth": 1, + "color": { + "type": "fill", + "value": ["#FFFFFF"] + }, + "cornerRadius": 8 + }, + "normalText": { + "alignment": "center", + "background": { + "type": "fill", + "value": ["#FFFFFF"] + }, + "font": { + "size": 16, + "style": "regular" + }, + "foreground": { + "type": "fill", + "value": ["#000000"] + } + }, + "selectedLayer": { + "border": { + "type": "fill", + "value": ["#00FF00"] + }, + "borderWidth": 0, + "color": { + "type": "fill", + "value": ["#3e95a6"] + }, + "cornerRadius": 8 + }, + "selectedText": { + "alignment": "center", + "background": { + "type": "fill", + "value": ["#FFFFFF"] + }, + "font": { + "size": 16, + "style": "regular" + }, + "foreground": { + "type": "fill", + "value": ["#FFFFFF"] + } + } + }, + "title": { + "alignment": "center", + "background": { + "type": "fill", + "value": ["#000000"] + }, + "font": { + "size": 20, + "style": "regular" + }, + "foreground": { + "type": "fill", + "value": ["#000000"] + } + } + }, + "scaleQuestion": { + "optionButton": { + "font": { + "size": 12, + "style": "regular" + }, + "highlightedLayer": { + "border": { + "type": "fill", + "value": ["#00FF00"] + }, + "borderWidth": 4, + "color": { + "type": "fill", + "value": ["#FFFFFF"] + }, + "cornerRadius": 8 + }, + "highlightedText": { + "alignment": "center", + "background": { + "type": "fill", + "value": ["#FFFFFF"] + }, + "font": { + "size": 12, + "style": "regular" + }, + "foreground": { + "type": "fill", + "value": ["#FFFFFF"] + } + }, + "normalLayer": { + "border": { + "type": "fill", + "value": ["#000000"] + }, + "borderWidth": 1, + "color": { + "type": "fill", + "value": ["#FFFFFF"] + }, + "cornerRadius": 8 + }, + "normalText": { + "alignment": "center", + "background": { + "type": "fill", + "value": ["#FFFFFF"] + }, + "font": { + "size": 16, + "style": "regular" + }, + "foreground": { + "type": "fill", + "value": ["#000000"] + } + }, + "selectedLayer": { + "border": { + "type": "fill", + "value": ["#00FF00"] + }, + "borderWidth": 0, + "color": { + "type": "fill", + "value": ["#3e95a6"] + }, + "cornerRadius": 8 + }, + "selectedText": { + "alignment": "center", + "background": { + "type": "fill", + "value": ["#FFFFFF"] + }, + "font": { + "size": 16, + "style": "regular" + }, + "foreground": { + "type": "fill", + "value": ["#FFFFFF"] + } + } + }, + "title": { + "alignment": "center", + "background": { + "type": "fill", + "value": ["#000000"] + }, + "font": { + "size": 20, + "style": "regular" + }, + "foreground": { + "type": "fill", + "value": ["#000000"] + } + } + }, + "inputQuestion": { + "background": { + "border": { + "type": "fill", + "value": ["#FFFFFF"] + }, + "borderWidth": 4, + "color": { + "type": "fill", + "value": ["#FFFFFF"] + }, + "cornerRadius": 16 + }, + "option": { + "font": { + "size": 12, + "style": "regular" + }, + "highlightedLayer": { + "border": { + "type": "fill", + "value": ["#00FF00"] + }, + "borderWidth": 4, + "color": { + "type": "fill", + "value": ["#FFFFFF"] + }, + "cornerRadius": 8 + }, + "highlightedText": { + "alignment": "center", + "background": { + "type": "fill", + "value": ["#FFFFFF"] + }, + "font": { + "size": 12, + "style": "regular" + }, + "foreground": { + "type": "fill", + "value": ["#FFFFFF"] + } + }, + "normalLayer": { + "border": { + "type": "fill", + "value": ["#000000"] + }, + "borderWidth": 1, + "color": { + "type": "fill", + "value": ["#FFFFFF"] + }, + "cornerRadius": 8 + }, + "normalText": { + "alignment": "center", + "background": { + "type": "fill", + "value": ["#FFFFFF"] + }, + "font": { + "size": 16, + "style": "regular" + }, + "foreground": { + "type": "fill", + "value": ["#000000"] + } + }, + "selectedLayer": { + "border": { + "type": "fill", + "value": ["#00FF00"] + }, + "borderWidth": 0, + "color": { + "type": "fill", + "value": ["#3e95a6"] + }, + "cornerRadius": 8 + }, + "selectedText": { + "alignment": "center", + "background": { + "type": "fill", + "value": ["#FFFFFF"] + }, + "font": { + "size": 16, + "style": "regular" + }, + "foreground": { + "type": "fill", + "value": ["#FFFFFF"] + } + } + }, + "text": { + "alignment": "center", + "background": { + "type": "fill", + "value": ["#000000"] + }, + "font": { + "size": 16, + "style": "regular" + }, + "foreground": { + "type": "fill", + "value": ["#000000"] + } + }, + "title": { + "alignment": "center", + "background": { + "type": "fill", + "value": ["#000000"] + }, + "font": { + "size": 20, + "style": "regular" + }, + "foreground": { + "type": "fill", + "value": ["#000000"] + } + } + } + }, + "callVisualizer": { + "screenSharing": { + "header": { + "backButton": { + "background": { + "border": { + "type": "fill", + "value": ["#FFFFFF"] + }, + "borderWidth": 2, + "color": { + "type": "fill", + "value": ["#FFFFFF"] + }, + "cornerRadius": 8 + }, + "shadow": { + "color": { + "type": "fill", + "value": ["#FFFFFF"] + }, + "offset": 0, + "opacity": 1, + "radius": 5 + }, + "text": { + "alignment": "center", + "background": { + "type": "fill", + "value": ["#FFFFFF"] + }, + "font": { + "size": 16, + "style": "regular" + }, + "foreground": { + "type": "fill", + "value": ["#FFFFFF"] + } + }, + "tintColor": { + "type": "fill", + "value": ["#000000"] + } + }, + "background": { + "border": { + "type": "fill", + "value": ["#FFFFFF"] + }, + "borderWidth": 2, + "color": { + "type": "fill", + "value": ["#fdd42b"] + }, + "cornerRadius": 8 + }, + "closeButton": { + "background": { + "border": { + "type": "fill", + "value": ["#FFFFFF"] + }, + "borderWidth": 2, + "color": { + "type": "fill", + "value": ["#FFFFFF"] + }, + "cornerRadius": 8 + }, + "shadow": { + "color": { + "type": "fill", + "value": ["#FFFFFF"] + }, + "offset": 0, + "opacity": 1, + "radius": 5 + }, + "text": { + "alignment": "center", + "background": { + "type": "fill", + "value": ["#FFFFFF"] + }, + "font": { + "size": 24, + "style": "regular" + }, + "foreground": { + "type": "fill", + "value": ["#FFFFFF"] + } + }, + "tintColor": { + "type": "fill", + "value": ["#000000"] + } + }, + "endButton": { + "background": { + "border": { + "type": "fill", + "value": ["#FFFFFF"] + }, + "borderWidth": 0, + "color": { + "type": "fill", + "value": ["#04728c"] + }, + "cornerRadius": 8 + }, + "shadow": { + "color": { + "type": "fill", + "value": ["#FFFFFF"] + }, + "offset": 0, + "opacity": 1, + "radius": 5 + }, + "text": { + "alignment": "center", + "background": { + "type": "fill", + "value": ["#FFFFFF"] + }, + "font": { + "size": 16, + "style": "regular" + }, + "foreground": { + "type": "fill", + "value": ["#FFFFFF"] + } + }, + "tintColor": { + "type": "fill", + "value": ["#2596be"] + } + }, + "endScreenSharingButton": { + "background": { + "border": { + "type": "fill", + "value": ["#FFFFFF"] + }, + "borderWidth": 2, + "color": { + "type": "fill", + "value": ["#FFFFFF"] + }, + "cornerRadius": 8 + }, + "shadow": { + "color": { + "type": "fill", + "value": ["#FFFFFF"] + }, + "offset": 0, + "opacity": 1, + "radius": 5 + }, + "text": { + "alignment": "center", + "background": { + "type": "fill", + "value": ["#FFFFFF"] + }, + "font": { + "size": 16, + "style": "regular" + }, + "foreground": { + "type": "fill", + "value": ["#FFFFFF"] + } + }, + "tintColor": { + "type": "fill", + "value": ["#2596be"] + } + }, + "text": { + "alignment": "center", + "background": { + "type": "fill", + "value": ["#FFFFFF"] + }, + "font": { + "size": 24, + "style": "bold" + }, + "foreground": { + "type": "fill", + "value": ["#000000"] + } + } + }, + "message": { + "alignment": "leading", + "background": { + "type": "fill", + "value": ["#FF0000"] + }, + "font": { + "size": 20, + "style": "regular" + }, + "foreground": { + "type": "fill", + "value": ["#000000"] + } + }, + "endButton": { + "background": { + "border": { + "type": "fill", + "value": ["#FFFFFF"] + }, + "borderWidth": 0, + "color": { + "type": "fill", + "value": ["#04728c"] + }, + "cornerRadius": 8 + }, + "shadow": { + "color": { + "type": "fill", + "value": ["#FF0000"] + }, + "offset": 0, + "opacity": 1, + "radius": 8 + }, + "text": { + "alignment": "center", + "background": { + "type": "fill", + "value": ["#FF0000"] + }, + "font": { + "size": 16, + "style": "regular" + }, + "foreground": { + "type": "fill", + "value": ["#FFFFFF"] + } + }, + "tintColor": { + "type": "fill", + "value": ["#FFFFFF"] + } + }, + "background": { + "border": { + "type": "fill", + "value": ["#FFFFFF"] + }, + "borderWidth": 0, + "color": { + "type": "fill", + "value": ["#FFFFFF"] + }, + "cornerRadius": 0 + } + }, + "visitorCode": { + "actionButton": { + "background": { + "border": { + "type": "fill", + "value": ["#FFFFFF"] + }, + "borderWidth": 0, + "color": { + "type": "fill", + "value": ["#04728c"] + }, + "cornerRadius": 8 + }, + "shadow": { + "color": { + "type": "fill", + "value": ["#FF0000"] + }, + "offset": 0, + "opacity": 1, + "radius": 8 + }, + "text": { + "alignment": "center", + "background": { + "type": "fill", + "value": ["#FF0000"] + }, + "font": { + "size": 16, + "style": "regular" + }, + "foreground": { + "type": "fill", + "value": ["#FFFFFF"] + } + }, + "tintColor": { + "type": "fill", + "value": ["#FFFFFF"] + } + }, + "background": { + "border": { + "type": "fill", + "value": ["#FFFFFF"] + }, + "borderWidth": 0, + "color": { + "type": "fill", + "value": ["#FFFFFF"] + }, + "cornerRadius": 30 + }, + "closeButtonColor": { + "type": "fill", + "value": ["#000000"] + }, + "numberSlotBackground": { + "border": { + "type": "fill", + "value": ["#F3F3F3"] + }, + "borderWidth": 1, + "color": { + "type": "fill", + "value": ["#ffd100"] + }, + "cornerRadius": 8 + }, + "numberSlotText": { + "font": { + "size": 40, + "style": "regular" + }, + "foreground": { + "type": "fill", + "value": ["#000000"] + } + }, + "loadingProgressColor": { + "type": "fill", + "value": ["#fdd42b"] + }, + "title": { + "alignment": "center", + "background": { + "type": "fill", + "value": ["#FFFFFF"] + }, + "font": { + "size": 20, + "style": "regular" + }, + "foreground": { + "type": "fill", + "value": ["#000000"] + } + } + } + }, + "secureConversationsConfirmationScreen": { + "header": { + "backButton": { + "background": { + "border": { + "type": "fill", + "value": ["#FFFFFF"] + }, + "borderWidth": 2, + "color": { + "type": "fill", + "value": ["#000000"] + }, + "cornerRadius": 8 + }, + "shadow": { + "color": { + "type": "fill", + "value": ["#FFFFFF"] + }, + "offset": 0, + "opacity": 1, + "radius": 5 + }, + "text": { + "alignment": "center", + "background": { + "type": "fill", + "value": ["#FFFFFF"] + }, + "font": { + "size": 16, + "style": "regular" + }, + "foreground": { + "type": "fill", + "value": ["#000000"] + } + }, + "tintColor": { + "type": "fill", + "value": ["#000000"] + } + }, + "background": { + "border": { + "type": "fill", + "value": ["#FFFFFF"] + }, + "borderWidth": 2, + "color": { + "type": "fill", + "value": ["#f9d12b"] + }, + "cornerRadius": 8 + }, + "closeButton": { + "background": { + "border": { + "type": "fill", + "value": ["#FFFFFF"] + }, + "borderWidth": 2, + "color": { + "type": "fill", + "value": ["#FFFFFF"] + }, + "cornerRadius": 8 + }, + "shadow": { + "color": { + "type": "fill", + "value": ["#FFFFFF"] + }, + "offset": 0, + "opacity": 1, + "radius": 5 + }, + "text": { + "alignment": "center", + "background": { + "type": "fill", + "value": ["#FFFFFF"] + }, + "font": { + "size": 16, + "style": "regular" + }, + "foreground": { + "type": "fill", + "value": ["#FFFFFF"] + } + }, + "tintColor": { + "type": "fill", + "value": ["#000000"] + } + }, + "endButton": { + "background": { + "border": { + "type": "fill", + "value": ["#FFFFFF"] + }, + "borderWidth": 0, + "color": { + "type": "fill", + "value": ["#04728c"] + }, + "cornerRadius": 8 + }, + "shadow": { + "color": { + "type": "fill", + "value": ["#FFFFFF"] + }, + "offset": 0, + "opacity": 1, + "radius": 5 + }, + "text": { + "alignment": "center", + "background": { + "type": "fill", + "value": ["#FFFFFF"] + }, + "font": { + "size": 16, + "style": "regular" + }, + "foreground": { + "type": "fill", + "value": ["#FFFFFF"] + } + }, + "tintColor": { + "type": "fill", + "value": ["#3e95a6"] + } + }, + "endScreenSharingButton": { + "background": { + "border": { + "type": "fill", + "value": ["#FFFFFF"] + }, + "borderWidth": 2, + "color": { + "type": "fill", + "value": ["#FFFFFF"] + }, + "cornerRadius": 8 + }, + "shadow": { + "color": { + "type": "fill", + "value": ["#FFFFFF"] + }, + "offset": 0, + "opacity": 1, + "radius": 5 + }, + "text": { + "alignment": "center", + "background": { + "type": "fill", + "value": ["#FFFFFF"] + }, + "font": { + "size": 16, + "style": "regular" + }, + "foreground": { + "type": "fill", + "value": ["#FFFFFF"] + } + }, + "tintColor": { + "type": "fill", + "value": ["#FFFFFF"] + } + }, + "text": { + "alignment": "center", + "background": { + "type": "fill", + "value": ["#FFFFFF"] + }, + "font": { + "size": 20, + "style": "regular" + }, + "foreground": { + "type": "fill", + "value": ["#000000"] + } + } + }, + "background": { "type": "fill", "value": ["#FFFFFF"] }, + "iconColor": { + "type": "fill", + "value": ["#f9d12b"] + }, + "title": { + "font": { "style": "bold", "size": 22 }, + "foreground": { "type": "fill", "value": ["#3B3B40"] } + }, + "subtitle": { + "font": { "style": "regular", "size": 18 }, + "foreground": { "type": "fill", "value": ["#3B3B40"] } + }, + "checkMessagesButton": { + "background": { "color": { "type": "fill", "value": ["#f9d12b"] } }, + "text": { "foreground": { "type": "fill", "value": ["#FFFFFF"] } } + } + }, + "secureConversationsWelcomeScreen": { + "activityIndicatorColor": { "type": "fill", "value": ["#f9d12b"] }, + "enabledSendButton": { + "text": { "foreground": { "type": "fill", "value": ["#FFFFFF"] } }, + "background": { "color": { "type": "fill", "value": ["#f9d12b"] } } + }, + "messageWarningIconColor": { "type": "fill", "value": ["#FB8074"] }, + "filePickerButtonDisabled": { "type": "fill", "value": ["#f9d12b"] }, + "disabledSendButton": { + "text": { "foreground": { "type": "fill", "value": ["#FFFFFF"] } }, + "background": { "color": { "type": "fill", "value": ["#cfcaca"] } } + }, + "welcomeSubtitle": { + "foreground": { "type": "fill", "value": ["#3B3B40"] } + }, + "titleImage": { "type": "fill", "value": ["#f9d12b"] }, + "header": { + "backButton": { + "background": { + "border": { + "type": "fill", + "value": ["#FFFFFF"] + }, + "borderWidth": 2, + "color": { + "type": "fill", + "value": ["#000000"] + }, + "cornerRadius": 8 + }, + "shadow": { + "color": { + "type": "fill", + "value": ["#FFFFFF"] + }, + "offset": 0, + "opacity": 1, + "radius": 5 + }, + "text": { + "alignment": "center", + "background": { + "type": "fill", + "value": ["#FFFFFF"] + }, + "font": { + "size": 16, + "style": "regular" + }, + "foreground": { + "type": "fill", + "value": ["#000000"] + } + }, + "tintColor": { + "type": "fill", + "value": ["#000000"] + } + }, + "background": { + "border": { + "type": "fill", + "value": ["#FFFFFF"] + }, + "borderWidth": 2, + "color": { + "type": "fill", + "value": ["#f9d12b"] + }, + "cornerRadius": 8 + }, + "closeButton": { + "background": { + "border": { + "type": "fill", + "value": ["#FFFFFF"] + }, + "borderWidth": 2, + "color": { + "type": "fill", + "value": ["#FFFFFF"] + }, + "cornerRadius": 8 + }, + "shadow": { + "color": { + "type": "fill", + "value": ["#FFFFFF"] + }, + "offset": 0, + "opacity": 1, + "radius": 5 + }, + "text": { + "alignment": "center", + "background": { + "type": "fill", + "value": ["#FFFFFF"] + }, + "font": { + "size": 16, + "style": "regular" + }, + "foreground": { + "type": "fill", + "value": ["#FFFFFF"] + } + }, + "tintColor": { + "type": "fill", + "value": ["#000000"] + } + }, + "endButton": { + "background": { + "border": { + "type": "fill", + "value": ["#FFFFFF"] + }, + "borderWidth": 0, + "color": { + "type": "fill", + "value": ["#04728c"] + }, + "cornerRadius": 8 + }, + "shadow": { + "color": { + "type": "fill", + "value": ["#FFFFFF"] + }, + "offset": 0, + "opacity": 1, + "radius": 5 + }, + "text": { + "alignment": "center", + "background": { + "type": "fill", + "value": ["#FFFFFF"] + }, + "font": { + "size": 16, + "style": "regular" + }, + "foreground": { + "type": "fill", + "value": ["#FFFFFF"] + } + }, + "tintColor": { + "type": "fill", + "value": ["#3e95a6"] + } + }, + "endScreenSharingButton": { + "background": { + "border": { + "type": "fill", + "value": ["#FFFFFF"] + }, + "borderWidth": 2, + "color": { + "type": "fill", + "value": ["#FFFFFF"] + }, + "cornerRadius": 8 + }, + "shadow": { + "color": { + "type": "fill", + "value": ["#FFFFFF"] + }, + "offset": 0, + "opacity": 1, + "radius": 5 + }, + "text": { + "alignment": "center", + "background": { + "type": "fill", + "value": ["#FFFFFF"] + }, + "font": { + "size": 16, + "style": "regular" + }, + "foreground": { + "type": "fill", + "value": ["#FFFFFF"] + } + }, + "tintColor": { + "type": "fill", + "value": ["#FFFFFF"] + } + }, + "text": { + "alignment": "center", + "background": { + "type": "fill", + "value": ["#FFFFFF"] + }, + "font": { + "size": 20, + "style": "regular" + }, + "foreground": { + "type": "fill", + "value": ["#000000"] + } + } + }, + "messageWarning": { + "foreground": { "type": "fill", "value": ["#FB8074"] } + }, + "messageInputNormal": { + "text": { + "foreground": { "type": "fill", "value": ["#3B3B40"] } + }, + "background": { + "color": { "type": "fill", "value": ["#FFFFFF"] }, + "border": { "type": "fill", "value": ["#CFCACA"] } + } + }, + "messageInputActive": { + "text": { + "foreground": { "type": "fill", "value": ["#3B3B40"] } + }, + "background": { + "color": { "type": "fill", "value": ["#FFFFFF"] }, + "border": { "type": "fill", "value": ["#F9D12B"] } + } + }, + "messageInputDisabled": { + "text": { + "foreground": { "type": "fill", "value": ["#4D4D53"] } + }, + "background": { + "color": { "type": "fill", "value": ["#CFCACA"] }, + "border": { "type": "fill", "value": ["#4D4D53"] } + } + }, + "messageInputError": { + "text": { + "foreground": { "type": "fill", "value": ["#3B3B40"] } + }, + "background": { + "color": { "type": "fill", "value": ["#FFFFFF"] }, + "border": { "type": "fill", "value": ["#FB8074"] } + } + }, + "messageInputHint": { + "foreground": { "type": "fill", "value": ["#CFCACA"] } + }, + "loadingSendButton": { + "text": { "foreground": { "type": "fill", "value": ["#FFFFFF"] } }, + "tintColor": { "type": "fill", "value": ["#f9d12b"] } + }, + "messageTitle": { "foreground": { "type": "fill", "value": ["#3B3B40"] } }, + "checkMessagesButton": { + "foreground": { "type": "fill", "value": ["#3B3B40"] } + }, + "filePickerButton": { "type": "fill", "value": ["#f9d12b"] }, + "background": { "type": "fill", "value": ["#FFFFFF"] }, + "welcomeTitle": { + "font": { "style": "bold", "size": 22 }, + "foreground": { "type": "fill", "value": ["#3B3B40"] } + } + }, + "snackBar": { + "background": { + "type": "fill", + "value": ["#3B3B40"] + }, + "text": { + "type": "fill", + "value": ["#FFFFFF"] + } + } +} diff --git a/TestingApp/ViewController/ViewController.swift b/TestingApp/ViewController/ViewController.swift index 09f0b36d5..93b567284 100644 --- a/TestingApp/ViewController/ViewController.swift +++ b/TestingApp/ViewController/ViewController.swift @@ -121,11 +121,7 @@ class ViewController: UIViewController { @IBAction private func configureSDKTapped() { showRemoteConfigAlert { [weak self] fileName in - var config: RemoteConfiguration? - if let fileName = fileName { - config = self?.retrieveRemoteConfiguration(fileName) - } - self?.configureSDK(uiConfig: config) { [weak self] result in + self?.configureSDK(uiConfigName: fileName) { [weak self] result in guard case let .failure(error) = result else { return } self?.showErrorAlert(using: error) } @@ -137,7 +133,7 @@ class ViewController: UIViewController { // only if such engagement exists, we need // to configure SDK, and only then attempt // to end engagement. - configureSDK(uiConfig: nil) { [weak self] result in + configureSDK(uiConfigName: nil) { [weak self] result in switch result { case .success: Glia.sharedInstance.endEngagement { result in @@ -156,7 +152,7 @@ class ViewController: UIViewController { return } self?.showEngagementKindActionSheet { kind in - self?.startEngagement(with: kind, config: fileName) + self?.startEngagement(with: kind) } } } @@ -216,7 +212,7 @@ extension ViewController { } if autoConfigureSdkToggle.isOn { - configureSDK(uiConfig: nil) { [weak self] result in + configureSDK(uiConfigName: nil) { [weak self] result in switch result { case .success: startEngagement() @@ -230,7 +226,7 @@ extension ViewController { } func configureSDK( - uiConfig: RemoteConfiguration?, + uiConfigName: String?, completion: ((Result) -> Void)? = nil ) { let originalTitle = configureButton.title(for: .normal) @@ -244,9 +240,13 @@ extension ViewController { debugPrint(printable) } + let uiConfig = retrieveRemoteConfiguration(uiConfigName) + do { try Glia.sharedInstance.configure( - with: configuration + with: configuration, + theme: Theme(), + uiConfig: uiConfig ) { result in switch result { case .success: @@ -303,21 +303,18 @@ extension ViewController { present(alert, animated: true) } - private func startEngagement(with kind: EngagementKind, config name: String) { - guard let config = retrieveRemoteConfiguration(name) else { return } - + private func startEngagement(with kind: EngagementKind) { let startEngagement = { self.catchingError { - try Glia.sharedInstance.startEngagementWithConfig( - engagement: kind, - in: [self.queueId], - uiConfig: config + try Glia.sharedInstance.startEngagement( + engagementKind: kind, + in: [self.queueId] ) } } if autoConfigureSdkToggle.isOn { - configureSDK(uiConfig: nil) { [weak self] result in + configureSDK(uiConfigName: nil) { [weak self] result in switch result { case .success: startEngagement() @@ -364,13 +361,13 @@ extension ViewController { present(alert, animated: true) } - func retrieveRemoteConfiguration(_ fileName: String) -> RemoteConfiguration? { + func retrieveRemoteConfiguration(_ fileName: String?) -> RemoteConfiguration? { guard let url = Bundle.main.url(forResource: fileName, withExtension: "json", subdirectory: "UnifiedUI"), let jsonData = try? Data(contentsOf: url), let config = try? JSONDecoder().decode(RemoteConfiguration.self, from: .init(jsonData)) else { - alert(message: "Could not decode RemoteConfiguration.") + print("Could not decode RemoteConfiguration.") return nil } return config @@ -406,7 +403,10 @@ extension ViewController { @IBAction private func toggleAuthentication() { catchingError { - try Glia.sharedInstance.configure(with: configuration) { [weak self] result in + try Glia.sharedInstance.configure( + with: configuration, + theme: Theme() + ) { [weak self] result in guard let self = self else { return } switch result { @@ -423,7 +423,6 @@ extension ViewController { ) } } - case .failure(let error): self.showErrorAlert(using: error) }