diff --git a/libs/SalesforceSDKCore/SalesforceSDKCore/Classes/IDP/SFSDKLoginFlowSelectionViewController.m b/libs/SalesforceSDKCore/SalesforceSDKCore/Classes/IDP/SFSDKLoginFlowSelectionViewController.m index eaf42da900..b348b8dbef 100644 --- a/libs/SalesforceSDKCore/SalesforceSDKCore/Classes/IDP/SFSDKLoginFlowSelectionViewController.m +++ b/libs/SalesforceSDKCore/SalesforceSDKCore/Classes/IDP/SFSDKLoginFlowSelectionViewController.m @@ -236,7 +236,7 @@ - (void)showSettingsIcon { UIBarButtonItem *rightButton = [[UIBarButtonItem alloc] initWithImage:image style:UIBarButtonItemStylePlain target:self action:@selector(showLoginHost:)]; rightButton.accessibilityLabel = [SFSDKResourceUtils localizedString:@"LOGIN_CHOOSE_SERVER"]; self.navBar.topItem.rightBarButtonItem = rightButton; - self.navBar.topItem.rightBarButtonItem.tintColor = [UIColor whiteColor]; + self.navBar.topItem.rightBarButtonItem.tintColor = [UIColor salesforceNavBarTintColor]; } } diff --git a/libs/SalesforceSDKCore/SalesforceSDKCore/Classes/Login/LoginHost/NewLoginHostView.swift b/libs/SalesforceSDKCore/SalesforceSDKCore/Classes/Login/LoginHost/NewLoginHostView.swift index c08aef420b..34e738a031 100644 --- a/libs/SalesforceSDKCore/SalesforceSDKCore/Classes/Login/LoginHost/NewLoginHostView.swift +++ b/libs/SalesforceSDKCore/SalesforceSDKCore/Classes/Login/LoginHost/NewLoginHostView.swift @@ -30,8 +30,8 @@ import SwiftUI @objc(SFSDKNewLoginHostViewController) class NewLoginHostViewController: NSObject { - @objc public static func viewController(saveAction: @escaping ((String, String?) -> Void)) -> UIViewController { - let view = NewLoginHostView(saveAction: saveAction) + @objc public static func viewController(config: SFSDKViewControllerConfig?, saveAction: @escaping ((String, String?) -> Void)) -> UIViewController { + let view = NewLoginHostView(viewControllerConfig: config, saveAction: saveAction) return UIHostingController(rootView: view) } } @@ -59,9 +59,15 @@ struct NewLoginHostView: View { @State var host = "" @State var label = "" private var saveAction: ((String, String?) -> Void) + private var navBarTintColor: Color - init(saveAction: @escaping ((String, String?) -> Void)) { + init(viewControllerConfig: SFSDKViewControllerConfig?, saveAction: @escaping ((String, String?) -> Void)) { self.saveAction = saveAction + if let navBarTintColor = viewControllerConfig?.navigationBarTintColor { + self.navBarTintColor = Color(uiColor: navBarTintColor) + } else { + self.navBarTintColor = Color(uiColor: UIColor.salesforceNavBarTint) + } } func save() { @@ -99,12 +105,13 @@ struct NewLoginHostView: View { } label: { Text(SFSDKResourceUtils.localizedString("DONE_BUTTON")).bold() } + .tint(navBarTintColor) .disabled(host.trimmingCharacters(in: .whitespaces).isEmpty) } - }.tint(.white) + } } } #Preview { - NewLoginHostView {_,_ in } + NewLoginHostView(viewControllerConfig: nil) {_,_ in } } diff --git a/libs/SalesforceSDKCore/SalesforceSDKCore/Classes/Login/LoginHost/SFSDKLoginHostListViewController.h b/libs/SalesforceSDKCore/SalesforceSDKCore/Classes/Login/LoginHost/SFSDKLoginHostListViewController.h index e540b382fe..8237c72c4b 100644 --- a/libs/SalesforceSDKCore/SalesforceSDKCore/Classes/Login/LoginHost/SFSDKLoginHostListViewController.h +++ b/libs/SalesforceSDKCore/SalesforceSDKCore/Classes/Login/LoginHost/SFSDKLoginHostListViewController.h @@ -28,6 +28,7 @@ #import #import +#import NS_ASSUME_NONNULL_BEGIN @@ -57,6 +58,8 @@ NS_SWIFT_NAME(LoginHostListViewController) */ @property (nonatomic,assign) BOOL hidesAddButton; +@property (nonatomic) SFSDKViewControllerConfig *config; + /** * Adds a new login host. Also updates the underlying storage and refreshes * the list of login hosts. diff --git a/libs/SalesforceSDKCore/SalesforceSDKCore/Classes/Login/LoginHost/SFSDKLoginHostListViewController.m b/libs/SalesforceSDKCore/SalesforceSDKCore/Classes/Login/LoginHost/SFSDKLoginHostListViewController.m index d6af40e637..d46841d7d9 100644 --- a/libs/SalesforceSDKCore/SalesforceSDKCore/Classes/Login/LoginHost/SFSDKLoginHostListViewController.m +++ b/libs/SalesforceSDKCore/SalesforceSDKCore/Classes/Login/LoginHost/SFSDKLoginHostListViewController.m @@ -99,7 +99,7 @@ - (void)showAddLoginHost { * Invoked when the user presses the Add button. This method presents the new login host view. */ - (void)showAddLoginHost:(id)sender { - UIViewController *detailViewController = [SFSDKNewLoginHostViewController viewControllerWithSaveAction:^(NSString * _Nonnull host, NSString * _Nullable label) { + UIViewController *detailViewController = [SFSDKNewLoginHostViewController viewControllerWithConfig:self.config saveAction:^(NSString * _Nonnull host, NSString * _Nullable label) { [self addLoginHost:[SFSDKLoginHost hostWithName:label host:host deletable:YES]]; }]; diff --git a/libs/SalesforceSDKCore/SalesforceSDKCore/Classes/Login/SFLoginViewController.m b/libs/SalesforceSDKCore/SalesforceSDKCore/Classes/Login/SFLoginViewController.m index bf82c05741..d3633d5465 100644 --- a/libs/SalesforceSDKCore/SalesforceSDKCore/Classes/Login/SFLoginViewController.m +++ b/libs/SalesforceSDKCore/SalesforceSDKCore/Classes/Login/SFLoginViewController.m @@ -285,6 +285,7 @@ - (UIView *)createTitleItem { - (SFSDKLoginHostListViewController *)createLoginHostListViewController { SFSDKLoginHostListViewController *loginHostListViewController = [[SFSDKLoginHostListViewController alloc] initWithStyle:UITableViewStylePlain]; + loginHostListViewController.config = self.config; return loginHostListViewController; } diff --git a/libs/SalesforceSDKCore/SalesforceSDKCore/Classes/Login/SFSDKLoginViewControllerConfig.m b/libs/SalesforceSDKCore/SalesforceSDKCore/Classes/Login/SFSDKLoginViewControllerConfig.m index 722bc92df1..70e6bca3ab 100644 --- a/libs/SalesforceSDKCore/SalesforceSDKCore/Classes/Login/SFSDKLoginViewControllerConfig.m +++ b/libs/SalesforceSDKCore/SalesforceSDKCore/Classes/Login/SFSDKLoginViewControllerConfig.m @@ -41,7 +41,7 @@ - (instancetype)init { if (self) { self.navBarColor = [UIColor salesforceBlueColor]; self.navBarTitleColor = [UIColor whiteColor]; - self.navBarTintColor = [UIColor whiteColor]; + self.navBarTintColor = [UIColor salesforceNavBarTintColor]; self.navBarFont = nil; _showNavbar = YES; _showSettingsIcon = YES; diff --git a/libs/SalesforceSDKCore/SalesforceSDKCore/Classes/Util/SFSDKViewUtils.m b/libs/SalesforceSDKCore/SalesforceSDKCore/Classes/Util/SFSDKViewUtils.m index ce6e6e2f41..93e51a2b19 100644 --- a/libs/SalesforceSDKCore/SalesforceSDKCore/Classes/Util/SFSDKViewUtils.m +++ b/libs/SalesforceSDKCore/SalesforceSDKCore/Classes/Util/SFSDKViewUtils.m @@ -27,6 +27,7 @@ */ #import "SFSDKViewUtils.h" #import "SFSDKViewControllerConfig.h" +#import "UIColor+SFColors.h" @implementation SFSDKViewUtils @@ -50,7 +51,7 @@ + (void)styleNavigationBar:(UINavigationBar *)navigationBar config:(SFSDKViewCon [textAttributes setObject:config.navBarTintColor forKey:NSForegroundColorAttributeName]; } else { // default color - navigationBar.tintColor = [UIColor whiteColor]; + navigationBar.tintColor = [UIColor salesforceNavBarTintColor]; } if (config.navBarTitleColor){ diff --git a/libs/SalesforceSDKCore/SalesforceSDKCore/Classes/Util/UIColor+SFColors.h b/libs/SalesforceSDKCore/SalesforceSDKCore/Classes/Util/UIColor+SFColors.h index cd7ab583e7..071170eaad 100644 --- a/libs/SalesforceSDKCore/SalesforceSDKCore/Classes/Util/UIColor+SFColors.h +++ b/libs/SalesforceSDKCore/SalesforceSDKCore/Classes/Util/UIColor+SFColors.h @@ -55,6 +55,7 @@ NS_ASSUME_NONNULL_BEGIN @property (class, nonatomic, readonly) UIColor *salesforceAltBackgroundColor; @property (class, nonatomic, readonly) UIColor *salesforceAlt2BackgroundColor; @property (class, nonatomic, readonly) UIColor *salesforceTableCellBackgroundColor; +@property (class, nonatomic, readonly) UIColor *salesforceNavBarTintColor; @end diff --git a/libs/SalesforceSDKCore/SalesforceSDKCore/Classes/Util/UIColor+SFColors.m b/libs/SalesforceSDKCore/SalesforceSDKCore/Classes/Util/UIColor+SFColors.m index 7514e2208a..b4c314ec3e 100644 --- a/libs/SalesforceSDKCore/SalesforceSDKCore/Classes/Util/UIColor+SFColors.m +++ b/libs/SalesforceSDKCore/SalesforceSDKCore/Classes/Util/UIColor+SFColors.m @@ -109,6 +109,10 @@ + (UIColor *)salesforceTableCellBackgroundColor{ return [UIColor colorWithRed: 245.0/255.0 green:246.0/255.0 blue: 250.0/255.0 alpha: 1.0]; } ++ (UIColor *)salesforceNavBarTintColor { + return [UIColor whiteColor]; +} + + (UIColor *)sfsdk_colorForLightStyle:(UIColor *)lightStyleColor darkStyle:(UIColor *)darkStyleColor { return [[UIColor alloc] initWithDynamicProvider:^UIColor * _Nonnull(UITraitCollection * _Nonnull traitCollection) { if (traitCollection.userInterfaceStyle == UIUserInterfaceStyleDark) { diff --git a/libs/SalesforceSDKCore/SalesforceSDKCore/Classes/Views/SFSDKDevInfoViewController.m b/libs/SalesforceSDKCore/SalesforceSDKCore/Classes/Views/SFSDKDevInfoViewController.m index 7e1bc42c19..f7494a0114 100644 --- a/libs/SalesforceSDKCore/SalesforceSDKCore/Classes/Views/SFSDKDevInfoViewController.m +++ b/libs/SalesforceSDKCore/SalesforceSDKCore/Classes/Views/SFSDKDevInfoViewController.m @@ -106,7 +106,7 @@ - (UINavigationBar*) createNavBar [navBar setItems:@[navItem] animated:YES]; navBar.translucent = NO; navBar.barTintColor = [UIColor salesforceBlueColor]; - navBar.tintColor = [UIColor whiteColor]; + navBar.tintColor = [UIColor salesforceNavBarTintColor]; navBar.titleTextAttributes = @{NSForegroundColorAttributeName: [UIColor whiteColor], NSFontAttributeName:[UIFont systemFontOfSize:kNavBarTitleFontSize]}; [self.view addSubview:navBar]; return navBar; diff --git a/libs/SmartStore/SmartStore/Classes/SFSmartStoreInspectorViewController.m b/libs/SmartStore/SmartStore/Classes/SFSmartStoreInspectorViewController.m index 5d25ed89dd..4e557d5f83 100644 --- a/libs/SmartStore/SmartStore/Classes/SFSmartStoreInspectorViewController.m +++ b/libs/SmartStore/SmartStore/Classes/SFSmartStoreInspectorViewController.m @@ -345,7 +345,7 @@ - (UINavigationBar*) createNavBar [navBar setItems:@[navItem] animated:YES]; navBar.translucent = NO; navBar.barTintColor = [UIColor salesforceBlueColor]; - navBar.tintColor = [UIColor whiteColor]; + navBar.tintColor = [UIColor salesforceNavBarTintColor]; navBar.titleTextAttributes = @{NSForegroundColorAttributeName: [UIColor whiteColor], NSFontAttributeName:[UIFont systemFontOfSize:kNavBarTitleFontSize]}; [self.view addSubview:navBar]; return navBar;