[ios] Fixes CarPlay voice setting being permanent

Signed-off-by: Yannik Bloscheck <git@yannikbloscheck.com>
This commit is contained in:
Yannik Bloscheck
2025-11-08 22:38:12 +01:00
committed by Yannik Bloscheck
parent 84ecbaa63c
commit 5bd7a284fa

View File

@@ -125,27 +125,35 @@ final class MapTemplateBuilder {
} }
private class func setupMuteAndRedirectButtons(template: CPMapTemplate) { 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 redirectButton = buildBarButton(type: .redirectRoute) { _ in
let listTemplate = ListTemplateBuilder.buildListTemplate(for: .history) let listTemplate = ListTemplateBuilder.buildListTemplate(for: .history)
CarPlayService.shared.pushTemplate(listTemplate, animated: true) 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) { 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 redirectButton = buildBarButton(type: .redirectRoute) { _ in
let listTemplate = ListTemplateBuilder.buildListTemplate(for: .history) let listTemplate = ListTemplateBuilder.buildListTemplate(for: .history)
CarPlayService.shared.pushTemplate(listTemplate, animated: true) 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 // MARK: - CPMapButton builder