diff --git a/Signal/src/ViewControllers/AppSettings/Data Usage/DataSettingsTableViewController.swift b/Signal/src/ViewControllers/AppSettings/Data Usage/DataSettingsTableViewController.swift index 52937a46a5..08c4c17e20 100644 --- a/Signal/src/ViewControllers/AppSettings/Data Usage/DataSettingsTableViewController.swift +++ b/Signal/src/ViewControllers/AppSettings/Data Usage/DataSettingsTableViewController.swift @@ -25,12 +25,6 @@ class DataSettingsTableViewController: OWSTableViewController2 { name: CallService.callServicePreferencesDidChange, object: nil ) - NotificationCenter.default.addObserver( - self, - selector: #selector(preferencesDidChange), - name: .isSignalProxyReadyDidChange, - object: nil - ) } func updateTableContents() { @@ -147,22 +141,6 @@ class DataSettingsTableViewController: OWSTableViewController2 { )) contents.addSection(callsSection) - - let proxySection = OWSTableSection() - proxySection.headerTitle = NSLocalizedString( - "PROXY_SETTINGS_TITLE", - comment: "Title for the signal proxy settings" - ) - - proxySection.add(.disclosureItem( - withText: NSLocalizedString("USE_PROXY_BUTTON", comment: "Button to activate the signal proxy"), - detailText: SignalProxy.isEnabled ? CommonStrings.switchOn : CommonStrings.switchOff, - actionBlock: { [weak self] in - self?.showProxySettings() - } - )) - - contents.addSection(proxySection) } // MARK: - Events @@ -203,11 +181,6 @@ class DataSettingsTableViewController: OWSTableViewController2 { navigationController?.pushViewController(view, animated: true) } - private func showProxySettings() { - let vc = ProxySettingsViewController() - navigationController?.pushViewController(vc, animated: true) - } - @objc func preferencesDidChange() { AssertIsOnMainThread() diff --git a/Signal/src/ViewControllers/AppSettings/Data Usage/ProxySettingsViewController.swift b/Signal/src/ViewControllers/AppSettings/Data Usage/ProxySettingsViewController.swift index 3c663e2130..8aaa193cda 100644 --- a/Signal/src/ViewControllers/AppSettings/Data Usage/ProxySettingsViewController.swift +++ b/Signal/src/ViewControllers/AppSettings/Data Usage/ProxySettingsViewController.swift @@ -67,7 +67,14 @@ class ProxySettingsViewController: OWSTableViewController2, OWSNavigationView { defer { self.contents = contents } let useProxySection = OWSTableSection() - useProxySection.footerTitle = NSLocalizedString("USE_PROXY_EXPLANATION", comment: "Explanation of when you should use a signal proxy") + useProxySection.footerAttributedTitle = .composed(of: [ + NSLocalizedString("USE_PROXY_EXPLANATION", comment: "Explanation of when you should use a signal proxy"), + " ", + CommonStrings.learnMore.styled(with: .link(URL(string: "https://support.signal.org/hc/en-us/articles/360056052052-Proxy-Support")!)) + ]).styled( + with: .font(.ows_dynamicTypeCaption1Clamped), + .color(Theme.secondaryTextAndIconColor) + ) useProxySection.add(.switch( withText: NSLocalizedString("USE_PROXY_BUTTON", comment: "Button to activate the signal proxy"), isOn: { [weak self] in diff --git a/Signal/src/ViewControllers/AppSettings/Privacy/AdvancedPrivacySettingsViewController.swift b/Signal/src/ViewControllers/AppSettings/Privacy/AdvancedPrivacySettingsViewController.swift index f3e6ff955c..0eea43f902 100644 --- a/Signal/src/ViewControllers/AppSettings/Privacy/AdvancedPrivacySettingsViewController.swift +++ b/Signal/src/ViewControllers/AppSettings/Privacy/AdvancedPrivacySettingsViewController.swift @@ -34,6 +34,12 @@ class AdvancedPrivacySettingsViewController: OWSTableViewController2 { name: .OWSSyncManagerConfigurationSyncDidComplete, object: nil ) + NotificationCenter.default.addObserver( + self, + selector: #selector(updateTableContents), + name: .isSignalProxyReadyDidChange, + object: nil + ) } override func viewWillAppear(_ animated: Bool) { @@ -138,6 +144,28 @@ class AdvancedPrivacySettingsViewController: OWSTableViewController2 { contents.addSection(censorshipCircumventionSection) + let proxySection = OWSTableSection() + proxySection.footerAttributedTitle = .composed(of: [ + NSLocalizedString("USE_PROXY_EXPLANATION", comment: "Explanation of when you should use a signal proxy"), + " ", + CommonStrings.learnMore.styled(with: .link(URL(string: "https://support.signal.org/hc/en-us/articles/360056052052-Proxy-Support")!)) + ]).styled( + with: .font(.ows_dynamicTypeCaption1Clamped), + .color(Theme.secondaryTextAndIconColor) + ) + proxySection.add(.disclosureItem( + withText: NSLocalizedString( + "PROXY_SETTINGS_TITLE", + comment: "Title for the signal proxy settings" + ), + detailText: SignalProxy.isEnabled ? CommonStrings.switchOn : CommonStrings.switchOff, + actionBlock: { [weak self] in + let vc = ProxySettingsViewController() + self?.navigationController?.pushViewController(vc, animated: true) + } + )) + contents.addSection(proxySection) + let relayCallsSection = OWSTableSection() relayCallsSection.footerTitle = NSLocalizedString( "SETTINGS_CALLING_HIDES_IP_ADDRESS_PREFERENCE_TITLE_DETAIL", diff --git a/Signal/src/ViewControllers/HomeView/Chat List/ChatListViewController.swift b/Signal/src/ViewControllers/HomeView/Chat List/ChatListViewController.swift index 66a98cb743..6ed484cdcb 100644 --- a/Signal/src/ViewControllers/HomeView/Chat List/ChatListViewController.swift +++ b/Signal/src/ViewControllers/HomeView/Chat List/ChatListViewController.swift @@ -491,7 +491,7 @@ public extension ChatListViewController { let boost = BoostViewController() viewControllers += [ boost ] case .proxy: - viewControllers += [ DataSettingsTableViewController(), ProxySettingsViewController() ] + viewControllers += [ PrivacySettingsViewController(), AdvancedPrivacySettingsViewController(), ProxySettingsViewController() ] } navigationController.setViewControllers(viewControllers, animated: false) presentFormSheet(navigationController, animated: true, completion: completion) diff --git a/Signal/translations/bg.lproj/Localizable.strings b/Signal/translations/bg.lproj/Localizable.strings index ab31a5c3da..2f9bdb84c8 100644 --- a/Signal/translations/bg.lproj/Localizable.strings +++ b/Signal/translations/bg.lproj/Localizable.strings @@ -5894,7 +5894,7 @@ "SETTINGS_PINS_TITLE" = "PIN код за Signal"; /* Footer for table section */ -"SETTINGS_PRIVACY_ADVANCED_FOOTER" = "Censorship circumvention, relay calls, and sealed sender settings."; +"SETTINGS_PRIVACY_ADVANCED_FOOTER" = "Censorship circumvention, proxy, relay calls, and sealed sender settings."; /* Title for the advanced privacy settings */ "SETTINGS_PRIVACY_ADVANCED_TITLE" = "Допълнителни";