From 5bd7a284fad1199ca5b98f82d3867611a7712a86 Mon Sep 17 00:00:00 2001 From: Yannik Bloscheck Date: Sat, 8 Nov 2025 22:38:12 +0100 Subject: [PATCH] [ios] Fixes CarPlay voice setting being permanent Signed-off-by: Yannik Bloscheck --- .../MapTemplateBuilder.swift | 28 ++++++++++++------- 1 file changed, 18 insertions(+), 10 deletions(-) diff --git a/iphone/Maps/Classes/CarPlay/Template Builders/MapTemplateBuilder.swift b/iphone/Maps/Classes/CarPlay/Template Builders/MapTemplateBuilder.swift index 8fbfcdc9c..83550c1dd 100644 --- a/iphone/Maps/Classes/CarPlay/Template Builders/MapTemplateBuilder.swift +++ b/iphone/Maps/Classes/CarPlay/Template Builders/MapTemplateBuilder.swift @@ -125,27 +125,35 @@ final class MapTemplateBuilder { } private class func setupMuteAndRedirectButtons(template: CPMapTemplate) { - let muteButton = buildBarButton(type: .mute) { _ in - MWMTextToSpeech.setTTSEnabled(false) - setupUnmuteAndRedirectButtons(template: template) - } let redirectButton = buildBarButton(type: .redirectRoute) { _ in let listTemplate = ListTemplateBuilder.buildListTemplate(for: .history) CarPlayService.shared.pushTemplate(listTemplate, animated: true) } - template.leadingNavigationBarButtons = [muteButton, redirectButton] + if MWMTextToSpeech.isTTSEnabled() { + let muteButton = buildBarButton(type: .mute) { _ in + MWMTextToSpeech.tts().active = false + setupUnmuteAndRedirectButtons(template: template) + } + template.leadingNavigationBarButtons = [muteButton, redirectButton] + } else { + template.leadingNavigationBarButtons = [redirectButton] + } } private class func setupUnmuteAndRedirectButtons(template: CPMapTemplate) { - let unmuteButton = buildBarButton(type: .unmute) { _ in - MWMTextToSpeech.setTTSEnabled(true) - setupMuteAndRedirectButtons(template: template) - } let redirectButton = buildBarButton(type: .redirectRoute) { _ in let listTemplate = ListTemplateBuilder.buildListTemplate(for: .history) CarPlayService.shared.pushTemplate(listTemplate, animated: true) } - template.leadingNavigationBarButtons = [unmuteButton, redirectButton] + if MWMTextToSpeech.isTTSEnabled() { + let unmuteButton = buildBarButton(type: .unmute) { _ in + MWMTextToSpeech.tts().active = true + setupMuteAndRedirectButtons(template: template) + } + template.leadingNavigationBarButtons = [unmuteButton, redirectButton] + } else { + template.leadingNavigationBarButtons = [redirectButton] + } } // MARK: - CPMapButton builder