From 08b159b6755690a0ae136ba46fb7ca9f9decc526 Mon Sep 17 00:00:00 2001 From: Arnfried Griesert Date: Tue, 20 Jun 2023 11:32:09 +0000 Subject: [PATCH] MESSENGER-4769 color changes part 2 --- Config/BWIBuildSettings.swift | 3 + .../BuM-Beta/BWIBuildSettings+BuM-Beta.swift | 1 + Podfile.lock | 66 +++++++++++++++---- .../Views/RecentsInvitesTableViewCell.swift | 2 +- .../AllChatsFilterOptionListView.swift | 9 ++- .../AllChats/AllChatsViewController.swift | 36 +++++++++- .../People/Views/InviteRecentTableViewCell.m | 5 ++ .../RoomCreationIntroCellContentView.swift | 15 +++-- .../Room/DirectoryRoomTableViewCell.swift | 2 +- .../View/AuthenticationTermsToggleStyle.swift | 2 +- .../Common/Util/RoundedBorderTextField.swift | 7 +- .../Onboarding/Common/OnboardingIcon.swift | 2 +- .../View/FormPickerItem.swift | 2 + .../Room/PollEditForm/View/PollEditForm.swift | 9 ++- bwi/QRCode/MyQRCodeView.swift | 2 +- 15 files changed, 135 insertions(+), 28 deletions(-) diff --git a/Config/BWIBuildSettings.swift b/Config/BWIBuildSettings.swift index 6bef5e637..80b4f3ea7 100644 --- a/Config/BWIBuildSettings.swift +++ b/Config/BWIBuildSettings.swift @@ -619,6 +619,9 @@ class BWIBuildSettings: NSObject { // MARK: Rust Encryption var useRustEncryption = false + // MARK: Color Theme + var useNewBumColors = false + // MARK: Sessions Manager var enableNewSessionManagerByDefault = false diff --git a/Config/BuM-Beta/BWIBuildSettings+BuM-Beta.swift b/Config/BuM-Beta/BWIBuildSettings+BuM-Beta.swift index 67dc93639..f8e3f4934 100644 --- a/Config/BuM-Beta/BWIBuildSettings+BuM-Beta.swift +++ b/Config/BuM-Beta/BWIBuildSettings+BuM-Beta.swift @@ -20,6 +20,7 @@ import Foundation extension BWIBuildSettings { func overrideTargetSpecificSettings() { + useNewBumColors = true secondaryAppName = "BundesMessenger" settingsScreenShowLabSettings = true authScreenShowRegister = true diff --git a/Podfile.lock b/Podfile.lock index eae31a173..d88d17f49 100644 --- a/Podfile.lock +++ b/Podfile.lock @@ -20,6 +20,24 @@ PODS: - Down (0.11.0) - DSBottomSheet (0.3.0) - DSWaveformImage (6.1.1) + - DTCoreText (1.6.26): + - DTCoreText/Core (= 1.6.26) + - DTFoundation/Core (~> 1.7.5) + - DTFoundation/DTAnimatedGIF (~> 1.7.5) + - DTFoundation/DTHTMLParser (~> 1.7.5) + - DTFoundation/UIKit (~> 1.7.5) + - DTCoreText/Core (1.6.26): + - DTFoundation/Core (~> 1.7.5) + - DTFoundation/DTAnimatedGIF (~> 1.7.5) + - DTFoundation/DTHTMLParser (~> 1.7.5) + - DTFoundation/UIKit (~> 1.7.5) + - DTFoundation/Core (1.7.18) + - DTFoundation/DTAnimatedGIF (1.7.18) + - DTFoundation/DTHTMLParser (1.7.18): + - DTFoundation/Core + - DTFoundation/UIKit (1.7.18): + - DTFoundation/Core + - DTTJailbreakDetection (0.4.0) - FLEX (4.5.0) - FlowCommoniOS (1.12.2) - GBDeviceInfo (7.1.0): @@ -39,6 +57,9 @@ PODS: - LoggerAPI (1.9.200): - Logging (~> 1.1) - Logging (1.4.0) + - MatomoTracker (7.5.2): + - MatomoTracker/Core (= 7.5.2) + - MatomoTracker/Core (7.5.2) - MatrixSDK (0.26.10): - MatrixSDK/Core (= 0.26.10) - MatrixSDK/Core (0.26.10): @@ -95,6 +116,8 @@ DEPENDENCIES: - Down (~> 0.11.0) - DSBottomSheet (~> 0.3) - DSWaveformImage (~> 6.1.1) + - DTCoreText (= 1.6.26) + - DTTJailbreakDetection (~> 0.4.0) - FLEX (~> 4.5.0) - FlowCommoniOS (~> 1.12.0) - GBDeviceInfo (~> 7.1.0) @@ -102,8 +125,9 @@ DEPENDENCIES: - KeychainAccess (~> 4.2.2) - KTCenterFlowLayout (~> 1.3.1) - libPhoneNumber-iOS (~> 0.9.13) - - MatrixSDK (= 0.26.10) - - MatrixSDK/JingleCallStack (= 0.26.10) + - MatomoTracker (~> 7.5.2) + - MatrixSDK (from `https://dl-gitlab.example.com/bwmessenger/bundesmessenger/bundesmessenger-ios-sdk`, tag `v0.26.10_bwi_beta`) + - MatrixSDK/JingleCallStack (from `https://dl-gitlab.example.com/bwmessenger/bundesmessenger/bundesmessenger-ios-sdk`, tag `v0.26.10_bwi_beta`) - OLMKit - PostHog (~> 2.0.0) - ReadMoreTextView (~> 3.0.1) @@ -122,8 +146,20 @@ DEPENDENCIES: - ZXingObjC (~> 3.6.5) SPEC REPOS: - trunk: + https://github.com/CocoaPods/Specs.git: - AFNetworking + - DTCoreText + - DTFoundation + - DTTJailbreakDetection + - GZIP + - JitsiMeetSDKLite + - JitsiWebRTC + - libbase58 + - MatomoTracker + - MatrixSDKCrypto + - Realm + - SwiftyBeaver + trunk: - BlueCryptor - BlueECC - BlueRSA @@ -133,23 +169,16 @@ SPEC REPOS: - FLEX - FlowCommoniOS - GBDeviceInfo - - GZIP - Introspect - - JitsiMeetSDKLite - - JitsiWebRTC - KeychainAccess - KituraContracts - KTCenterFlowLayout - - libbase58 - libPhoneNumber-iOS - LoggerAPI - Logging - - MatrixSDK - - MatrixSDKCrypto - OLMKit - PostHog - ReadMoreTextView - - Realm - Reusable - Sentry - SideMenu @@ -158,13 +187,22 @@ SPEC REPOS: - SwiftGen - SwiftJWT - SwiftLint - - SwiftyBeaver - UICollectionViewLeftAlignedLayout - UICollectionViewRightAlignedLayout - WeakDictionary - zxcvbn-ios - ZXingObjC +EXTERNAL SOURCES: + MatrixSDK: + :git: https://dl-gitlab.example.com/bwmessenger/bundesmessenger/bundesmessenger-ios-sdk + :tag: v0.26.10_bwi_beta + +CHECKOUT OPTIONS: + MatrixSDK: + :git: https://dl-gitlab.example.com/bwmessenger/bundesmessenger/bundesmessenger-ios-sdk + :tag: v0.26.10_bwi_beta + SPEC CHECKSUMS: AFNetworking: 3bd23d814e976cd148d7d44c3ab78017b744cd58 BlueCryptor: b0aee3d9b8f367b49b30de11cda90e1735571c24 @@ -173,6 +211,9 @@ SPEC CHECKSUMS: Down: b6ba1bc985c9d2f4e15e3b293d2207766fa12612 DSBottomSheet: ca0ac37eb5af2dd54663f86b84382ed90a59be2a DSWaveformImage: 3c718a0cf99291887ee70d1d0c18d80101d3d9ce + DTCoreText: ec749e013f2e1f76de5e7c7634642e600a7467ce + DTFoundation: a53f8cda2489208cbc71c648be177f902ee17536 + DTTJailbreakDetection: 5e356c5badc17995f65a83ed9483f787a0057b71 FLEX: e51461dd6f0bfb00643c262acdfea5d5d12c596b FlowCommoniOS: ca92071ab526dc89905495a37844fd7e78d1a7f2 GBDeviceInfo: 5d62fa85bdcce3ed288d83c28789adf1173e4376 @@ -187,6 +228,7 @@ SPEC CHECKSUMS: libPhoneNumber-iOS: 0a32a9525cf8744fe02c5206eb30d571e38f7d75 LoggerAPI: ad9c4a6f1e32f518fdb43a1347ac14d765ab5e3d Logging: beeb016c9c80cf77042d62e83495816847ef108b + MatomoTracker: 1d98ddc58322fd9d65e1a6886b8e41363047bd13 MatrixSDK: 68e39c246ff8d80c5788d5fc46e93fcbb24703fa MatrixSDKCrypto: ac805c22c24f79f349cdbfa065855c73a4c81b51 OLMKit: da115f16582e47626616874e20f7bb92222c7a51 @@ -208,6 +250,6 @@ SPEC CHECKSUMS: zxcvbn-ios: fef98b7c80f1512ff0eec47ac1fa399fc00f7e3c ZXingObjC: fdbb269f25dd2032da343e06f10224d62f537bdb -PODFILE CHECKSUM: 4c82d7cddeb9c9b7a7adeaa2cd76d416117cd1a6 +PODFILE CHECKSUM: 6bd4e9aff1b435c22f06ad6a4497af49acca8a27 COCOAPODS: 1.11.3 diff --git a/Riot/Modules/Common/Recents/Views/RecentsInvitesTableViewCell.swift b/Riot/Modules/Common/Recents/Views/RecentsInvitesTableViewCell.swift index dea15153e..41de727aa 100644 --- a/Riot/Modules/Common/Recents/Views/RecentsInvitesTableViewCell.swift +++ b/Riot/Modules/Common/Recents/Views/RecentsInvitesTableViewCell.swift @@ -63,7 +63,7 @@ class RecentsInvitesTableViewCell: UITableViewCell, NibReusable, Themable { badgeLabel.textColor = theme.colors.background badgeLabel.font = theme.fonts.footnoteSB - titleLabel.textColor = theme.colors.accent + titleLabel.textColor = BWIBuildSettings.shared.useNewBumColors ? theme.tintColor : theme.colors.accent // bwi: 4769 } // MARK: - Private diff --git a/Riot/Modules/Common/SectionHeaders/AllChatsFilterOptionListView.swift b/Riot/Modules/Common/SectionHeaders/AllChatsFilterOptionListView.swift index 43a3e3398..93758b77b 100644 --- a/Riot/Modules/Common/SectionHeaders/AllChatsFilterOptionListView.swift +++ b/Riot/Modules/Common/SectionHeaders/AllChatsFilterOptionListView.swift @@ -47,7 +47,7 @@ class AllChatsFilterOptionListView: UIView, Themable { // MARK: - Private - private let backgroundView = UIVisualEffectView(effect: UIBlurEffect(style: .regular)) + private let backgroundView = UIView() // bwi: 4769 private let separator = UIView() private let tabListView = TabListView() @@ -90,6 +90,10 @@ class AllChatsFilterOptionListView: UIView, Themable { // MARK: - Themable func update(theme: Theme) { + + // bwi: 4769 + backgroundView.backgroundColor = ThemeService.shared().theme.backgroundColor + backgroundColor = theme.colors.background.withAlphaComponent(0.7) tabListView.itemFont = theme.fonts.calloutSB @@ -102,6 +106,9 @@ class AllChatsFilterOptionListView: UIView, Themable { // MARK: - Private private func setupView() { + + // bwi: 4769 + backgroundView.backgroundColor = ThemeService.shared().theme.backgroundColor vc_addSubViewMatchingParent(backgroundView) addSubview(separator) diff --git a/Riot/Modules/Home/AllChats/AllChatsViewController.swift b/Riot/Modules/Home/AllChats/AllChatsViewController.swift index bc083457c..80ec752a5 100644 --- a/Riot/Modules/Home/AllChats/AllChatsViewController.swift +++ b/Riot/Modules/Home/AllChats/AllChatsViewController.swift @@ -138,6 +138,7 @@ class AllChatsViewController: HomeViewController { // bwi: 4179 toolbar.tintColor = ThemeService.shared().theme.tintColor + toolbar.barTintColor = ThemeService.shared().theme.backgroundColor updateUI() @@ -150,12 +151,22 @@ class AllChatsViewController: HomeViewController { NotificationCenter.default.addObserver(self, selector: #selector(self.setupEditOptions), name: AllChatsLayoutSettingsManager.didUpdateSettings, object: nil) NotificationCenter.default.addObserver(self, selector: #selector(self.updateBadgeButton), name: MXSpaceNotificationCounter.didUpdateNotificationCount, object: nil) + + // bwi: 4769 + self.registerThemeServiceDidChangeThemeNotification() } override func viewWillAppear(_ animated: Bool) { super.viewWillAppear(animated) - self.toolbar.tintColor = theme.colors.accent + // bwi: 4769 + if BWIBuildSettings.shared.useNewBumColors { + self.toolbar.tintColor = theme.tintColor + self.toolbar.barTintColor = theme.backgroundColor + } else { + self.toolbar.tintColor = theme.colors.accent + } + if self.navigationItem.searchController == nil { self.navigationItem.searchController = searchController } @@ -205,6 +216,17 @@ class AllChatsViewController: HomeViewController { } } + // bwi: 4769 + private func registerThemeServiceDidChangeThemeNotification() { + NotificationCenter.default.addObserver(self, selector: #selector(themeDidChange), name: .themeServiceDidChangeTheme, object: nil) + } + + // bwi: 4769 + @objc private func themeDidChange() { + self.update(with: ThemeService.shared().theme) + } + + // MARK: - Public func switchSpace(withId spaceId: String?) { @@ -539,7 +561,16 @@ class AllChatsViewController: HomeViewController { } private func update(with theme: Theme) { - self.navigationController?.toolbar?.tintColor = theme.colors.accent + // bwi: 4769 + if BWIBuildSettings.shared.useNewBumColors { + toolbar.tintColor = ThemeService.shared().theme.tintColor + toolbar.barTintColor = ThemeService.shared().theme.backgroundColor + + UIToolbar.appearance().tintColor = ThemeService.shared().theme.tintColor + UIToolbar.appearance().barTintColor = ThemeService.shared().theme.backgroundColor + } else { + self.navigationController?.toolbar?.tintColor = theme.colors.accent + } } // MARK: - Private @@ -623,7 +654,6 @@ class AllChatsViewController: HomeViewController { // bwi: 4179 var allChatsEditButton = UIBarButtonItem(image: Asset.Images.allChatsEditIcon.image, menu: menu) - allChatsEditButton.tintColor = ThemeService.shared().theme.tintColor if BWIBuildSettings.shared.enableSpaces { self.toolbar.items = [ diff --git a/Riot/Modules/People/Views/InviteRecentTableViewCell.m b/Riot/Modules/People/Views/InviteRecentTableViewCell.m index ea42b74a4..9e07c6ec1 100644 --- a/Riot/Modules/People/Views/InviteRecentTableViewCell.m +++ b/Riot/Modules/People/Views/InviteRecentTableViewCell.m @@ -65,6 +65,11 @@ NSString *const kInviteRecentTableViewCellRoomKey = @"kInviteRecentTableViewCell self.rightButton.backgroundColor = ThemeService.shared.theme.tintColor; self.rightButton.titleLabel.font = ThemeService.shared.theme.fonts.body; + + // bwi: 4769 + if(BWIBuildSettings.shared.useNewBumColors) { + [self.rightButton setTitleColor:ThemeService.shared.theme.backgroundColor forState:UIControlStateNormal]; + } } - (void)prepareForReuse diff --git a/Riot/Modules/Room/TimelineCells/RoomCreationIntro/RoomCreationIntroCellContentView.swift b/Riot/Modules/Room/TimelineCells/RoomCreationIntro/RoomCreationIntroCellContentView.swift index 8747c3e92..92ed4cf40 100644 --- a/Riot/Modules/Room/TimelineCells/RoomCreationIntro/RoomCreationIntroCellContentView.swift +++ b/Riot/Modules/Room/TimelineCells/RoomCreationIntro/RoomCreationIntroCellContentView.swift @@ -163,10 +163,17 @@ final class RoomCreationIntroCellContentView: UIView, NibLoadable, Themable { if let topic = topic, topic.isEmpty == false { attributedString.append(NSAttributedString(string: VectorL10n.roomIntroCellInformationRoomWithTopicSentence2(topic), attributes: informationTextDefaultAttributes)) } else { - let secondSentencePart1 = NSAttributedString(string: VectorL10n.roomIntroCellInformationRoomWithoutTopicSentence2Part1, attributes: [.foregroundColor: self.theme.tintColor]) - let secondSentencePart2 = NSAttributedString(string: VectorL10n.roomIntroCellInformationRoomWithoutTopicSentence2Part2, attributes: informationTextDefaultAttributes) - attributedString.append(secondSentencePart1) - attributedString.append(secondSentencePart2) + if BWIBuildSettings.shared.useNewBumColors { + let secondSentencePart1 = NSAttributedString(string: VectorL10n.roomIntroCellInformationRoomWithoutTopicSentence2Part1, attributes: [.foregroundColor: self.theme.tintColor, .font: self.theme.fonts.bodySB]) // bwi: 4769 + let secondSentencePart2 = NSAttributedString(string: VectorL10n.roomIntroCellInformationRoomWithoutTopicSentence2Part2, attributes: informationTextDefaultAttributes) + attributedString.append(secondSentencePart1) + attributedString.append(secondSentencePart2) + } else { + let secondSentencePart1 = NSAttributedString(string: VectorL10n.roomIntroCellInformationRoomWithoutTopicSentence2Part1, attributes: [.foregroundColor: self.theme.tintColor]) + let secondSentencePart2 = NSAttributedString(string: VectorL10n.roomIntroCellInformationRoomWithoutTopicSentence2Part2, attributes: informationTextDefaultAttributes) + attributedString.append(secondSentencePart1) + attributedString.append(secondSentencePart2) + } } return attributedString diff --git a/Riot/Modules/Rooms/ShowDirectory/Cells/Room/DirectoryRoomTableViewCell.swift b/Riot/Modules/Rooms/ShowDirectory/Cells/Room/DirectoryRoomTableViewCell.swift index 77f689688..e185a1429 100644 --- a/Riot/Modules/Rooms/ShowDirectory/Cells/Room/DirectoryRoomTableViewCell.swift +++ b/Riot/Modules/Rooms/ShowDirectory/Cells/Room/DirectoryRoomTableViewCell.swift @@ -118,7 +118,7 @@ extension DirectoryRoomTableViewCell: Themable { joinButton.layer.borderColor = theme.textSecondaryColor.cgColor } else { joinButton.backgroundColor = theme.tintColor - joinButton.tintColor = .white + joinButton.tintColor = BWIBuildSettings.shared.useNewBumColors ? theme.backgroundColor : .white // bwi: 4769 joinButton.layer.borderWidth = 0.0 joinButton.layer.borderColor = nil } diff --git a/RiotSwiftUI/Modules/Authentication/Terms/View/AuthenticationTermsToggleStyle.swift b/RiotSwiftUI/Modules/Authentication/Terms/View/AuthenticationTermsToggleStyle.swift index f5e94ce84..491cd630e 100644 --- a/RiotSwiftUI/Modules/Authentication/Terms/View/AuthenticationTermsToggleStyle.swift +++ b/RiotSwiftUI/Modules/Authentication/Terms/View/AuthenticationTermsToggleStyle.swift @@ -24,7 +24,7 @@ struct AuthenticationTermsToggleStyle: ToggleStyle { Button { configuration.isOn.toggle() } label: { Image(systemName: configuration.isOn ? "checkmark.circle.fill" : "circle") .font(.title3.weight(.regular)) - .foregroundColor(theme.colors.accent) + .foregroundColor(BWIBuildSettings.shared.useNewBumColors ? Color(ThemeService.shared().theme.tintColor) : theme.colors.accent) // bwi: 4769 } .buttonStyle(.plain) } diff --git a/RiotSwiftUI/Modules/Common/Util/RoundedBorderTextField.swift b/RiotSwiftUI/Modules/Common/Util/RoundedBorderTextField.swift index 6fc4381f4..ef395aa99 100644 --- a/RiotSwiftUI/Modules/Common/Util/RoundedBorderTextField.swift +++ b/RiotSwiftUI/Modules/Common/Util/RoundedBorderTextField.swift @@ -98,7 +98,12 @@ struct RoundedBorderTextField: View { /// The text field's border color. private var borderColor: Color { if isEditing { - return BWIBuildSettings.shared.bwiEnableBuMUI ? Color(hex: 0x108194) : theme.colors.accent + // bwi: 4769 + if BWIBuildSettings.shared.useNewBumColors { + return Color(ThemeService.shared().theme.tintColor) + } else { + return Color(hex: 0x108194) + } } else if footerText != nil, isError { return theme.colors.alert } else { diff --git a/RiotSwiftUI/Modules/Onboarding/Common/OnboardingIcon.swift b/RiotSwiftUI/Modules/Onboarding/Common/OnboardingIcon.swift index 4993ce002..c974e2f9a 100644 --- a/RiotSwiftUI/Modules/Onboarding/Common/OnboardingIcon.swift +++ b/RiotSwiftUI/Modules/Onboarding/Common/OnboardingIcon.swift @@ -25,7 +25,7 @@ struct OnboardingIconImage: View { Image(image.name) .resizable() .renderingMode(.template) - .foregroundColor(theme.colors.accent) + .foregroundColor(BWIBuildSettings.shared.useNewBumColors ? Color(ThemeService.shared().theme.tintColor) : theme.colors.accent) .frame(width: OnboardingMetrics.iconSize, height: OnboardingMetrics.iconSize) .background(Circle().foregroundColor(.white).padding(2)) .accessibilityHidden(true) diff --git a/RiotSwiftUI/Modules/Room/NotificationSettings/View/FormPickerItem.swift b/RiotSwiftUI/Modules/Room/NotificationSettings/View/FormPickerItem.swift index f194c352a..0d90a2d0e 100644 --- a/RiotSwiftUI/Modules/Room/NotificationSettings/View/FormPickerItem.swift +++ b/RiotSwiftUI/Modules/Room/NotificationSettings/View/FormPickerItem.swift @@ -36,12 +36,14 @@ struct FormPickerItem: View { if let subtitle = subtitle, !subtitle.isEmpty && BWIBuildSettings.shared.notificationSettingsLikeAndroidAndWeb { VStack(alignment: .leading, spacing: 4) { Text(title) + .foregroundColor(Color(ThemeService.shared().theme.tintColor)) Text(subtitle) .font(.footnote) .foregroundColor(.secondary) } } else { Text(title) + .foregroundColor(Color(ThemeService.shared().theme.tintColor)) } Spacer() if selected { diff --git a/RiotSwiftUI/Modules/Room/PollEditForm/View/PollEditForm.swift b/RiotSwiftUI/Modules/Room/PollEditForm/View/PollEditForm.swift index 240463030..8a3c8a190 100644 --- a/RiotSwiftUI/Modules/Room/PollEditForm/View/PollEditForm.swift +++ b/RiotSwiftUI/Modules/Room/PollEditForm/View/PollEditForm.swift @@ -69,12 +69,16 @@ struct PollEditForm: View { } } - Button(VectorL10n.pollEditFormAddOption) { + // bwi: 4769 + Button { withAnimation(.easeInOut(duration: 0.2)) { viewModel.send(viewAction: .addAnswerOption) } + } label: { + Text(VectorL10n.pollEditFormAddOption) + .foregroundColor(Color(ThemeService.shared().theme.tintColor)) + .font(theme.fonts.bodySB) } - .foregroundColor(Color(ThemeService.shared().theme.tintColor)) .disabled(!viewModel.viewState.addAnswerOptionButtonEnabled) Spacer() @@ -89,6 +93,7 @@ struct PollEditForm: View { } .padding(.vertical, 24.0) .padding(.horizontal, 16.0) + .background(Color(ThemeService.shared().theme.backgroundColor)) // bwi: 4769 .activityIndicator(show: viewModel.viewState.showLoadingIndicator) .alert(item: $viewModel.alertInfo) { info in Alert(title: Text(info.title), diff --git a/bwi/QRCode/MyQRCodeView.swift b/bwi/QRCode/MyQRCodeView.swift index f2588af49..5c32bcd9c 100644 --- a/bwi/QRCode/MyQRCodeView.swift +++ b/bwi/QRCode/MyQRCodeView.swift @@ -96,7 +96,7 @@ struct MyQRCodeView: View { var footer: some View { Text(BWIL10n.showMyQrScreenMessage(AppInfo.current.displayName)) .font(.system(size: 15)) - .foregroundColor(Color(ThemeService.shared().theme.colors.primaryContent)) + .foregroundColor(BWIBuildSettings.shared.useNewBumColors ? Color(ThemeService.shared().theme.tintColor) : Color(ThemeService.shared().theme.colors.primaryContent)) // bwi: 4769 .multilineTextAlignment(.center) }