From 202d8a1f07953fd574da30f48eb1c0503793bfee Mon Sep 17 00:00:00 2001 From: Pete Walters Date: Tue, 2 Jun 2026 13:00:37 -0500 Subject: [PATCH] Add two separate modes to the Safety Tip screen Co-authored-by: Max Radermacher --- ...onViewController+CVComponentDelegate.swift | 1 + .../safetytip_48_04.imageset/Contents.json | 12 +++++ .../safetytip_48_pin.pdf | Bin 0 -> 4760 bytes .../safetytip_48_05.imageset/Contents.json | 12 +++++ .../safetytip_48_lock.pdf | Bin 0 -> 5289 bytes .../HomeView/Chat List/SafetyTipsSheet.swift | 1 + .../SafetyTipsViewController.swift | 44 ++++++++++++++++-- .../translations/en.lproj/Localizable.strings | 12 +++++ 8 files changed, 79 insertions(+), 3 deletions(-) create mode 100644 Signal/Images.xcassets/safety-tips/safetytip_48_04.imageset/Contents.json create mode 100644 Signal/Images.xcassets/safety-tips/safetytip_48_04.imageset/safetytip_48_pin.pdf create mode 100644 Signal/Images.xcassets/safety-tips/safetytip_48_05.imageset/Contents.json create mode 100644 Signal/Images.xcassets/safety-tips/safetytip_48_05.imageset/safetytip_48_lock.pdf diff --git a/Signal/ConversationView/ConversationViewController+CVComponentDelegate.swift b/Signal/ConversationView/ConversationViewController+CVComponentDelegate.swift index afe7268ac7..9a9ea63f0b 100644 --- a/Signal/ConversationView/ConversationViewController+CVComponentDelegate.swift +++ b/Signal/ConversationView/ConversationViewController+CVComponentDelegate.swift @@ -1409,6 +1409,7 @@ extension ConversationViewController: CVComponentDelegate { public func didTapSafetyTips() { let viewController = SafetyTipsViewController( + mode: .messageRequest, primaryButton: SafetyTipsViewController.Button( title: CommonStrings.viewMoreButton, action: { [weak self] in diff --git a/Signal/Images.xcassets/safety-tips/safetytip_48_04.imageset/Contents.json b/Signal/Images.xcassets/safety-tips/safetytip_48_04.imageset/Contents.json new file mode 100644 index 0000000000..f5eeee6179 --- /dev/null +++ b/Signal/Images.xcassets/safety-tips/safetytip_48_04.imageset/Contents.json @@ -0,0 +1,12 @@ +{ + "images" : [ + { + "filename" : "safetytip_48_pin.pdf", + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/Signal/Images.xcassets/safety-tips/safetytip_48_04.imageset/safetytip_48_pin.pdf b/Signal/Images.xcassets/safety-tips/safetytip_48_04.imageset/safetytip_48_pin.pdf new file mode 100644 index 0000000000000000000000000000000000000000..478d06b2a89044235bed9a3380edc516f6ad6eca GIT binary patch literal 4760 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