From e1324adf2ea74751eca56920a05bbd8bf302fc10 Mon Sep 17 00:00:00 2001 From: Matthew Chen Date: Wed, 2 Jun 2021 13:31:20 -0400 Subject: [PATCH] Add an "appearance get started" card. --- .../appearance-card.imageset/Contents.json | 12 ++++++++ .../signal-appearance.svg | 29 +++++++++++++++++++ .../GetStartedBannerViewController.swift | 7 +++-- .../HomeView/ConversationListViewController.m | 5 ++++ .../ConversationListViewController.swift | 9 ++++++ Signal/src/views/GetStartedBannerCell.swift | 17 +++++++---- .../translations/en.lproj/Localizable.strings | 3 ++ 7 files changed, 74 insertions(+), 8 deletions(-) create mode 100644 Signal/Images.xcassets/appearance-card.imageset/Contents.json create mode 100644 Signal/Images.xcassets/appearance-card.imageset/signal-appearance.svg diff --git a/Signal/Images.xcassets/appearance-card.imageset/Contents.json b/Signal/Images.xcassets/appearance-card.imageset/Contents.json new file mode 100644 index 0000000000..fb4e99c320 --- /dev/null +++ b/Signal/Images.xcassets/appearance-card.imageset/Contents.json @@ -0,0 +1,12 @@ +{ + "images" : [ + { + "filename" : "signal-appearance.svg", + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/Signal/Images.xcassets/appearance-card.imageset/signal-appearance.svg b/Signal/Images.xcassets/appearance-card.imageset/signal-appearance.svg new file mode 100644 index 0000000000..24167d189c --- /dev/null +++ b/Signal/Images.xcassets/appearance-card.imageset/signal-appearance.svg @@ -0,0 +1,29 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Signal/src/ViewControllers/GetStartedBannerViewController.swift b/Signal/src/ViewControllers/GetStartedBannerViewController.swift index c85ce8eadd..7e1a26031d 100644 --- a/Signal/src/ViewControllers/GetStartedBannerViewController.swift +++ b/Signal/src/ViewControllers/GetStartedBannerViewController.swift @@ -8,6 +8,7 @@ import Foundation protocol GetStartedBannerViewControllerDelegate: class { func getStartedBannerDidTapInviteFriends(_ banner: GetStartedBannerViewController) func getStartedBannerDidTapCreateGroup(_ banner: GetStartedBannerViewController) + func getStartedBannerDidTapAppearance(_ banner: GetStartedBannerViewController) func getStartedBannerDidDismissAllCards(_ banner: GetStartedBannerViewController, animated: Bool) } @@ -245,10 +246,12 @@ extension GetStartedBannerViewController: GetStartedBannerCellDelegate { guard let model = cell.model else { return } switch model { - case .InviteFriends: + case .inviteFriends: delegate?.getStartedBannerDidTapInviteFriends(self) - case .NewGroup: + case .newGroup: delegate?.getStartedBannerDidTapCreateGroup(self) + case .appearance: + delegate?.getStartedBannerDidTapAppearance(self) } } } diff --git a/Signal/src/ViewControllers/HomeView/ConversationListViewController.m b/Signal/src/ViewControllers/HomeView/ConversationListViewController.m index 3f609276dd..1d53885d7b 100644 --- a/Signal/src/ViewControllers/HomeView/ConversationListViewController.m +++ b/Signal/src/ViewControllers/HomeView/ConversationListViewController.m @@ -2412,6 +2412,11 @@ NSString *const kArchiveButtonPseudoGroup = @"kArchiveButtonPseudoGroup"; [self showNewGroupView]; } +- (void)getStartedBannerDidTapAppearance:(OWSGetStartedBannerViewController *)banner +{ + [self showAppSettingsInAppearanceMode]; +} + - (void)getStartedBannerDidTapInviteFriends:(OWSGetStartedBannerViewController *)banner { self.inviteFlow = [[OWSInviteFlow alloc] initWithPresentingViewController:self]; diff --git a/Signal/src/ViewControllers/HomeView/ConversationListViewController.swift b/Signal/src/ViewControllers/HomeView/ConversationListViewController.swift index 0c2a5a8698..cc6be737b7 100644 --- a/Signal/src/ViewControllers/HomeView/ConversationListViewController.swift +++ b/Signal/src/ViewControllers/HomeView/ConversationListViewController.swift @@ -180,6 +180,7 @@ public enum ShowAppSettingsMode { case payments case payment(paymentsHistoryItem: PaymentsHistoryItem) case paymentsTransferIn + case appearance } // MARK: - @@ -191,6 +192,11 @@ public extension ConversationListViewController { showAppSettings(mode: .none) } + @objc + func showAppSettingsInAppearanceMode() { + showAppSettings(mode: .appearance) + } + func showAppSettings(mode: ShowAppSettingsMode) { AssertIsOnMainThread() @@ -216,6 +222,9 @@ public extension ConversationListViewController { let paymentsSettings = PaymentsSettingsViewController(mode: .inAppSettings) let paymentsTransferIn = PaymentsTransferInViewController() viewControllers += [ paymentsSettings, paymentsTransferIn ] + case .appearance: + let appearance = AppearanceSettingsTableViewController() + viewControllers += [ appearance ] } navigationController.setViewControllers(viewControllers, animated: false) presentFormSheet(navigationController, animated: true) diff --git a/Signal/src/views/GetStartedBannerCell.swift b/Signal/src/views/GetStartedBannerCell.swift index 9455035390..abe9b48c47 100644 --- a/Signal/src/views/GetStartedBannerCell.swift +++ b/Signal/src/views/GetStartedBannerCell.swift @@ -5,8 +5,9 @@ import Foundation enum GetStartedBannerEntry: String, CaseIterable { - case NewGroup - case InviteFriends + case newGroup + case inviteFriends + case appearance var identifier: String { rawValue } } @@ -130,19 +131,23 @@ class GetStartedBannerCell: UICollectionViewCell { private extension GetStartedBannerEntry { var image: UIImage { switch self { - case .NewGroup: + case .newGroup: return UIImage(named: "new-group-card")! - case .InviteFriends: + case .inviteFriends: return UIImage(named: "invite-friends-card")! + case .appearance: + return UIImage(named: "appearance-card")! } } var buttonText: String { switch self { - case .NewGroup: + case .newGroup: return NSLocalizedString("GET_STARTED_CARD_NEW_GROUP", comment: "'Get Started' button directing users to create a group") - case .InviteFriends: + case .inviteFriends: return NSLocalizedString("GET_STARTED_CARD_INVITE_FRIENDS", comment: "'Get Started' button directing users to invite friends") + case .appearance: + return NSLocalizedString("GET_STARTED_CARD_APPEARANCE", comment: "'Get Started' button directing users to appearance") } } } diff --git a/Signal/translations/en.lproj/Localizable.strings b/Signal/translations/en.lproj/Localizable.strings index 1dc440f747..65a2cf1e4f 100644 --- a/Signal/translations/en.lproj/Localizable.strings +++ b/Signal/translations/en.lproj/Localizable.strings @@ -1639,6 +1639,9 @@ /* Title for the 'Get Started' banner */ "GET_STARTED_BANNER_TITLE" = "Get started"; +/* 'Get Started' button directing users to appearance */ +"GET_STARTED_CARD_APPEARANCE" = "Appearance"; + /* 'Get Started' button directing users to invite friends */ "GET_STARTED_CARD_INVITE_FRIENDS" = "Invite friends";