From 4edb666580024de1a30a85c9cbe95897c0c0d1f4 Mon Sep 17 00:00:00 2001 From: Ryan Zhao Date: Fri, 4 Mar 2022 15:23:02 +1100 Subject: [PATCH] UI minor adjustment to modals --- .../Views & Modals/BlockedModal.swift | 13 +++++++++---- .../Views & Modals/DownloadAttachmentModal.swift | 14 +++++++++----- .../Views & Modals/JoinOpenGroupModal.swift | 13 +++++++++---- .../Views & Modals/LinkPreviewModal.swift | 13 +++++++++---- .../Views & Modals/PermissionMissingModal.swift | 13 +++++++++---- .../Views & Modals/SendSeedModal.swift | 16 ++++++++++++---- .../Conversations/Views & Modals/URLModal.swift | 13 +++++++++---- Session/Settings/NukeDataModal.swift | 13 ++++++++++--- Session/Settings/SeedModal.swift | 11 ++++++++--- Session/Settings/ShareLogsModal.swift | 13 +++++++++---- 10 files changed, 93 insertions(+), 39 deletions(-) diff --git a/Session/Conversations/Views & Modals/BlockedModal.swift b/Session/Conversations/Views & Modals/BlockedModal.swift index c41e76632..ff95bdf24 100644 --- a/Session/Conversations/Views & Modals/BlockedModal.swift +++ b/Session/Conversations/Views & Modals/BlockedModal.swift @@ -22,7 +22,7 @@ final class BlockedModal : Modal { // Title let titleLabel = UILabel() titleLabel.textColor = Colors.text - titleLabel.font = .boldSystemFont(ofSize: Values.largeFontSize) + titleLabel.font = .boldSystemFont(ofSize: Values.mediumFontSize) titleLabel.text = String(format: NSLocalizedString("modal_blocked_title", comment: ""), name) titleLabel.textAlignment = .center // Message @@ -50,15 +50,20 @@ final class BlockedModal : Modal { buttonStackView.axis = .horizontal buttonStackView.spacing = Values.mediumSpacing buttonStackView.distribution = .fillEqually + // Content stack view + let contentStackView = UIStackView(arrangedSubviews: [ titleLabel, messageLabel ]) + contentStackView.axis = .vertical + contentStackView.spacing = Values.largeSpacing // Main stack view - let mainStackView = UIStackView(arrangedSubviews: [ titleLabel, messageLabel, buttonStackView ]) + let spacing = Values.largeSpacing - Values.smallFontSize / 2 + let mainStackView = UIStackView(arrangedSubviews: [ contentStackView, buttonStackView ]) mainStackView.axis = .vertical - mainStackView.spacing = Values.largeSpacing + mainStackView.spacing = spacing contentView.addSubview(mainStackView) mainStackView.pin(.leading, to: .leading, of: contentView, withInset: Values.largeSpacing) mainStackView.pin(.top, to: .top, of: contentView, withInset: Values.largeSpacing) contentView.pin(.trailing, to: .trailing, of: mainStackView, withInset: Values.largeSpacing) - contentView.pin(.bottom, to: .bottom, of: mainStackView, withInset: Values.largeSpacing) + contentView.pin(.bottom, to: .bottom, of: mainStackView, withInset: spacing) } // MARK: Interaction diff --git a/Session/Conversations/Views & Modals/DownloadAttachmentModal.swift b/Session/Conversations/Views & Modals/DownloadAttachmentModal.swift index 1c8c88842..474ba422c 100644 --- a/Session/Conversations/Views & Modals/DownloadAttachmentModal.swift +++ b/Session/Conversations/Views & Modals/DownloadAttachmentModal.swift @@ -23,7 +23,7 @@ final class DownloadAttachmentModal : Modal { // Title let titleLabel = UILabel() titleLabel.textColor = Colors.text - titleLabel.font = .boldSystemFont(ofSize: Values.largeFontSize) + titleLabel.font = .boldSystemFont(ofSize: Values.mediumFontSize) titleLabel.text = String(format: NSLocalizedString("modal_download_attachment_title", comment: ""), name) titleLabel.textAlignment = .center // Message @@ -41,7 +41,6 @@ final class DownloadAttachmentModal : Modal { let downloadButton = UIButton() downloadButton.set(.height, to: Values.mediumButtonHeight) downloadButton.layer.cornerRadius = Modal.buttonCornerRadius - downloadButton.backgroundColor = Colors.buttonBackground downloadButton.titleLabel!.font = .systemFont(ofSize: Values.smallFontSize) downloadButton.setTitleColor(Colors.text, for: UIControl.State.normal) downloadButton.setTitle(NSLocalizedString("modal_download_button_title", comment: ""), for: UIControl.State.normal) @@ -51,15 +50,20 @@ final class DownloadAttachmentModal : Modal { buttonStackView.axis = .horizontal buttonStackView.spacing = Values.mediumSpacing buttonStackView.distribution = .fillEqually + // Content stack view + let contentStackView = UIStackView(arrangedSubviews: [ titleLabel, messageLabel ]) + contentStackView.axis = .vertical + contentStackView.spacing = Values.largeSpacing // Main stack view - let mainStackView = UIStackView(arrangedSubviews: [ titleLabel, messageLabel, buttonStackView ]) + let spacing = Values.largeSpacing - Values.smallFontSize / 2 + let mainStackView = UIStackView(arrangedSubviews: [ contentStackView, buttonStackView ]) mainStackView.axis = .vertical - mainStackView.spacing = Values.largeSpacing + mainStackView.spacing = spacing contentView.addSubview(mainStackView) mainStackView.pin(.leading, to: .leading, of: contentView, withInset: Values.largeSpacing) mainStackView.pin(.top, to: .top, of: contentView, withInset: Values.largeSpacing) contentView.pin(.trailing, to: .trailing, of: mainStackView, withInset: Values.largeSpacing) - contentView.pin(.bottom, to: .bottom, of: mainStackView, withInset: Values.largeSpacing) + contentView.pin(.bottom, to: .bottom, of: mainStackView, withInset: spacing) } // MARK: Interaction diff --git a/Session/Conversations/Views & Modals/JoinOpenGroupModal.swift b/Session/Conversations/Views & Modals/JoinOpenGroupModal.swift index 61ea8f12a..453c5cdec 100644 --- a/Session/Conversations/Views & Modals/JoinOpenGroupModal.swift +++ b/Session/Conversations/Views & Modals/JoinOpenGroupModal.swift @@ -22,7 +22,7 @@ final class JoinOpenGroupModal : Modal { // Title let titleLabel = UILabel() titleLabel.textColor = Colors.text - titleLabel.font = .boldSystemFont(ofSize: Values.largeFontSize) + titleLabel.font = .boldSystemFont(ofSize: Values.mediumFontSize) titleLabel.text = "Join \(name)?" titleLabel.textAlignment = .center // Message @@ -50,15 +50,20 @@ final class JoinOpenGroupModal : Modal { buttonStackView.axis = .horizontal buttonStackView.spacing = Values.mediumSpacing buttonStackView.distribution = .fillEqually + // Content stack view + let contentStackView = UIStackView(arrangedSubviews: [ titleLabel, messageLabel ]) + contentStackView.axis = .vertical + contentStackView.spacing = Values.largeSpacing // Main stack view - let mainStackView = UIStackView(arrangedSubviews: [ titleLabel, messageLabel, buttonStackView ]) + let spacing = Values.largeSpacing - Values.smallFontSize / 2 + let mainStackView = UIStackView(arrangedSubviews: [ contentStackView, buttonStackView ]) mainStackView.axis = .vertical - mainStackView.spacing = Values.largeSpacing + mainStackView.spacing = spacing contentView.addSubview(mainStackView) mainStackView.pin(.leading, to: .leading, of: contentView, withInset: Values.largeSpacing) mainStackView.pin(.top, to: .top, of: contentView, withInset: Values.largeSpacing) contentView.pin(.trailing, to: .trailing, of: mainStackView, withInset: Values.largeSpacing) - contentView.pin(.bottom, to: .bottom, of: mainStackView, withInset: Values.largeSpacing) + contentView.pin(.bottom, to: .bottom, of: mainStackView, withInset: spacing) } // MARK: Interaction diff --git a/Session/Conversations/Views & Modals/LinkPreviewModal.swift b/Session/Conversations/Views & Modals/LinkPreviewModal.swift index b8bf44dd5..0c1f3b3e2 100644 --- a/Session/Conversations/Views & Modals/LinkPreviewModal.swift +++ b/Session/Conversations/Views & Modals/LinkPreviewModal.swift @@ -20,7 +20,7 @@ final class LinkPreviewModal : Modal { // Title let titleLabel = UILabel() titleLabel.textColor = Colors.text - titleLabel.font = .boldSystemFont(ofSize: Values.largeFontSize) + titleLabel.font = .boldSystemFont(ofSize: Values.mediumFontSize) titleLabel.text = NSLocalizedString("modal_link_previews_title", comment: "") titleLabel.textAlignment = .center // Message @@ -46,15 +46,20 @@ final class LinkPreviewModal : Modal { buttonStackView.axis = .horizontal buttonStackView.spacing = Values.mediumSpacing buttonStackView.distribution = .fillEqually + // Content stack view + let contentStackView = UIStackView(arrangedSubviews: [ titleLabel, messageLabel ]) + contentStackView.axis = .vertical + contentStackView.spacing = Values.largeSpacing // Main stack view - let mainStackView = UIStackView(arrangedSubviews: [ titleLabel, messageLabel, buttonStackView ]) + let spacing = Values.largeSpacing - Values.smallFontSize / 2 + let mainStackView = UIStackView(arrangedSubviews: [ contentStackView, buttonStackView ]) mainStackView.axis = .vertical - mainStackView.spacing = Values.largeSpacing + mainStackView.spacing = spacing contentView.addSubview(mainStackView) mainStackView.pin(.leading, to: .leading, of: contentView, withInset: Values.largeSpacing) mainStackView.pin(.top, to: .top, of: contentView, withInset: Values.largeSpacing) contentView.pin(.trailing, to: .trailing, of: mainStackView, withInset: Values.largeSpacing) - contentView.pin(.bottom, to: .bottom, of: mainStackView, withInset: Values.largeSpacing) + contentView.pin(.bottom, to: .bottom, of: mainStackView, withInset: spacing) } // MARK: Interaction diff --git a/Session/Conversations/Views & Modals/PermissionMissingModal.swift b/Session/Conversations/Views & Modals/PermissionMissingModal.swift index 721089492..d8ce615ce 100644 --- a/Session/Conversations/Views & Modals/PermissionMissingModal.swift +++ b/Session/Conversations/Views & Modals/PermissionMissingModal.swift @@ -22,7 +22,7 @@ final class PermissionMissingModal : Modal { // Title let titleLabel = UILabel() titleLabel.textColor = Colors.text - titleLabel.font = .boldSystemFont(ofSize: Values.largeFontSize) + titleLabel.font = .boldSystemFont(ofSize: Values.mediumFontSize) titleLabel.text = "Session" titleLabel.textAlignment = .center // Message @@ -50,15 +50,20 @@ final class PermissionMissingModal : Modal { buttonStackView.axis = .horizontal buttonStackView.spacing = Values.mediumSpacing buttonStackView.distribution = .fillEqually + // Content stack view + let contentStackView = UIStackView(arrangedSubviews: [ titleLabel, messageLabel ]) + contentStackView.axis = .vertical + contentStackView.spacing = Values.largeSpacing // Main stack view - let mainStackView = UIStackView(arrangedSubviews: [ titleLabel, messageLabel, buttonStackView ]) + let spacing = Values.largeSpacing - Values.smallFontSize / 2 + let mainStackView = UIStackView(arrangedSubviews: [ contentStackView, buttonStackView ]) mainStackView.axis = .vertical - mainStackView.spacing = Values.largeSpacing + mainStackView.spacing = spacing contentView.addSubview(mainStackView) mainStackView.pin(.leading, to: .leading, of: contentView, withInset: Values.largeSpacing) mainStackView.pin(.top, to: .top, of: contentView, withInset: Values.largeSpacing) contentView.pin(.trailing, to: .trailing, of: mainStackView, withInset: Values.largeSpacing) - contentView.pin(.bottom, to: .bottom, of: mainStackView, withInset: Values.largeSpacing) + contentView.pin(.bottom, to: .bottom, of: mainStackView, withInset: spacing) } // MARK: Interaction diff --git a/Session/Conversations/Views & Modals/SendSeedModal.swift b/Session/Conversations/Views & Modals/SendSeedModal.swift index 0e8ac6221..e7027a85e 100644 --- a/Session/Conversations/Views & Modals/SendSeedModal.swift +++ b/Session/Conversations/Views & Modals/SendSeedModal.swift @@ -5,7 +5,7 @@ final class SendSeedModal : Modal { private lazy var titleLabel: UILabel = { let result = UILabel() result.textColor = Colors.text - result.font = .boldSystemFont(ofSize: Values.largeFontSize) + result.font = .boldSystemFont(ofSize: Values.mediumFontSize) result.text = NSLocalizedString("modal_send_seed_title", comment: "") result.textAlignment = .center return result @@ -44,19 +44,27 @@ final class SendSeedModal : Modal { return result }() - private lazy var mainStackView: UIStackView = { - let result = UIStackView(arrangedSubviews: [ titleLabel, explanationLabel, buttonStackView ]) + private lazy var contentStackView: UIStackView = { + let result = UIStackView(arrangedSubviews: [ titleLabel, explanationLabel ]) result.axis = .vertical result.spacing = Values.largeSpacing return result }() + private lazy var mainStackView: UIStackView = { + let result = UIStackView(arrangedSubviews: [ contentStackView, buttonStackView ]) + result.axis = .vertical + result.spacing = Values.largeSpacing - Values.smallFontSize / 2 + return result + }() + + // MARK: Lifecycle override func populateContentView() { contentView.addSubview(mainStackView) mainStackView.pin(.leading, to: .leading, of: contentView, withInset: Values.largeSpacing) mainStackView.pin(.top, to: .top, of: contentView, withInset: Values.largeSpacing) contentView.pin(.trailing, to: .trailing, of: mainStackView, withInset: Values.largeSpacing) - contentView.pin(.bottom, to: .bottom, of: mainStackView, withInset: Values.largeSpacing) + contentView.pin(.bottom, to: .bottom, of: mainStackView, withInset: mainStackView.spacing) } // MARK: Interaction diff --git a/Session/Conversations/Views & Modals/URLModal.swift b/Session/Conversations/Views & Modals/URLModal.swift index 3280b01bc..8beb2db6a 100644 --- a/Session/Conversations/Views & Modals/URLModal.swift +++ b/Session/Conversations/Views & Modals/URLModal.swift @@ -20,7 +20,7 @@ final class URLModal : Modal { // Title let titleLabel = UILabel() titleLabel.textColor = Colors.text - titleLabel.font = .boldSystemFont(ofSize: Values.largeFontSize) + titleLabel.font = .boldSystemFont(ofSize: Values.mediumFontSize) titleLabel.text = NSLocalizedString("modal_open_url_title", comment: "") titleLabel.textAlignment = .center // Message @@ -48,15 +48,20 @@ final class URLModal : Modal { buttonStackView.axis = .horizontal buttonStackView.spacing = Values.mediumSpacing buttonStackView.distribution = .fillEqually + // Content stack view + let contentStackView = UIStackView(arrangedSubviews: [ titleLabel, messageLabel ]) + contentStackView.axis = .vertical + contentStackView.spacing = Values.largeSpacing // Main stack view - let mainStackView = UIStackView(arrangedSubviews: [ titleLabel, messageLabel, buttonStackView ]) + let spacing = Values.largeSpacing - Values.smallFontSize / 2 + let mainStackView = UIStackView(arrangedSubviews: [ contentStackView, buttonStackView ]) mainStackView.axis = .vertical - mainStackView.spacing = Values.largeSpacing + mainStackView.spacing = spacing contentView.addSubview(mainStackView) mainStackView.pin(.leading, to: .leading, of: contentView, withInset: Values.largeSpacing) mainStackView.pin(.top, to: .top, of: contentView, withInset: Values.largeSpacing) contentView.pin(.trailing, to: .trailing, of: mainStackView, withInset: Values.largeSpacing) - contentView.pin(.bottom, to: .bottom, of: mainStackView, withInset: Values.largeSpacing) + contentView.pin(.bottom, to: .bottom, of: mainStackView, withInset: spacing) } // MARK: Interaction diff --git a/Session/Settings/NukeDataModal.swift b/Session/Settings/NukeDataModal.swift index 7c86d629c..1972095ba 100644 --- a/Session/Settings/NukeDataModal.swift +++ b/Session/Settings/NukeDataModal.swift @@ -92,20 +92,27 @@ final class NukeDataModal : Modal { return result }() - private lazy var mainStackView: UIStackView = { - let result = UIStackView(arrangedSubviews: [ titleLabel, explanationLabel, buttonStackViewContainer ]) + private lazy var contentStackView: UIStackView = { + let result = UIStackView(arrangedSubviews: [ titleLabel, explanationLabel ]) result.axis = .vertical result.spacing = Values.largeSpacing return result }() + private lazy var mainStackView: UIStackView = { + let result = UIStackView(arrangedSubviews: [ contentStackView, buttonStackViewContainer ]) + result.axis = .vertical + result.spacing = Values.largeSpacing - Values.smallFontSize / 2 + return result + }() + // MARK: Lifecycle override func populateContentView() { contentView.addSubview(mainStackView) mainStackView.pin(.leading, to: .leading, of: contentView, withInset: Values.largeSpacing) mainStackView.pin(.top, to: .top, of: contentView, withInset: Values.largeSpacing) contentView.pin(.trailing, to: .trailing, of: mainStackView, withInset: Values.largeSpacing) - contentView.pin(.bottom, to: .bottom, of: mainStackView, withInset: Values.largeSpacing) + contentView.pin(.bottom, to: .bottom, of: mainStackView, withInset: mainStackView.spacing) } // MARK: Interaction diff --git a/Session/Settings/SeedModal.swift b/Session/Settings/SeedModal.swift index 11528450b..46612e81b 100644 --- a/Session/Settings/SeedModal.swift +++ b/Session/Settings/SeedModal.swift @@ -59,15 +59,20 @@ final class SeedModal : Modal { buttonStackView.axis = .horizontal buttonStackView.spacing = Values.mediumSpacing buttonStackView.distribution = .fillEqually + // Content stack view + let contentStackView = UIStackView(arrangedSubviews: [ titleLabel, mnemonicLabelContainer, explanationLabel ]) + contentStackView.axis = .vertical + contentStackView.spacing = Values.largeSpacing // Set up stack view - let stackView = UIStackView(arrangedSubviews: [ titleLabel, mnemonicLabelContainer, explanationLabel, buttonStackView ]) + let spacing = Values.largeSpacing - Values.smallFontSize / 2 + let stackView = UIStackView(arrangedSubviews: [ contentStackView, buttonStackView ]) stackView.axis = .vertical - stackView.spacing = Values.largeSpacing + stackView.spacing = spacing contentView.addSubview(stackView) stackView.pin(.leading, to: .leading, of: contentView, withInset: Values.largeSpacing) stackView.pin(.top, to: .top, of: contentView, withInset: Values.largeSpacing) contentView.pin(.trailing, to: .trailing, of: stackView, withInset: Values.largeSpacing) - contentView.pin(.bottom, to: .bottom, of: stackView, withInset: Values.largeSpacing) + contentView.pin(.bottom, to: .bottom, of: stackView, withInset: spacing) // Mark seed as viewed UserDefaults.standard[.hasViewedSeed] = true NotificationCenter.default.post(name: .seedViewed, object: nil) diff --git a/Session/Settings/ShareLogsModal.swift b/Session/Settings/ShareLogsModal.swift index 0a93acff1..72c3ae22e 100644 --- a/Session/Settings/ShareLogsModal.swift +++ b/Session/Settings/ShareLogsModal.swift @@ -19,7 +19,7 @@ final class ShareLogsModal : Modal { // Title let titleLabel = UILabel() titleLabel.textColor = Colors.text - titleLabel.font = .boldSystemFont(ofSize: Values.largeFontSize) + titleLabel.font = .boldSystemFont(ofSize: Values.mediumFontSize) titleLabel.text = NSLocalizedString("modal_share_logs_title", comment: "") titleLabel.textAlignment = .center // Message @@ -44,15 +44,20 @@ final class ShareLogsModal : Modal { buttonStackView.axis = .horizontal buttonStackView.spacing = Values.mediumSpacing buttonStackView.distribution = .fillEqually + // Content stack view + let contentStackView = UIStackView(arrangedSubviews: [ titleLabel, messageLabel ]) + contentStackView.axis = .vertical + contentStackView.spacing = Values.largeSpacing // Main stack view - let mainStackView = UIStackView(arrangedSubviews: [ titleLabel, messageLabel, buttonStackView ]) + let spacing = Values.largeSpacing - Values.smallFontSize / 2 + let mainStackView = UIStackView(arrangedSubviews: [ contentStackView, buttonStackView ]) mainStackView.axis = .vertical - mainStackView.spacing = Values.largeSpacing + mainStackView.spacing = spacing contentView.addSubview(mainStackView) mainStackView.pin(.leading, to: .leading, of: contentView, withInset: Values.largeSpacing) mainStackView.pin(.top, to: .top, of: contentView, withInset: Values.largeSpacing) contentView.pin(.trailing, to: .trailing, of: mainStackView, withInset: Values.largeSpacing) - contentView.pin(.bottom, to: .bottom, of: mainStackView, withInset: Values.largeSpacing) + contentView.pin(.bottom, to: .bottom, of: mainStackView, withInset: spacing) } // MARK: Interaction