From 93415fe9523a1279a31f1c1c8fbe1c86b0ccd095 Mon Sep 17 00:00:00 2001 From: Yannik Bloscheck Date: Wed, 16 Jul 2025 10:47:11 +0200 Subject: [PATCH] [ios] Adjusted code for consistency Signed-off-by: Yannik Bloscheck --- .../Model/Settings Types/LeftButtonType.swift | 10 +- .../DownloadMapsViewController.swift | 2 +- .../Maps/UI/Routing/RoutingOptionsView.swift | 2 +- .../Profile/ExistingProfileView.swift | 2 +- .../Profile/NoExistingProfileView.swift | 2 +- .../UI/Settings/Profile/ProfileView.swift | 54 +++---- .../UI/Settings/SettingsNavigationView.swift | 142 +++++++++--------- iphone/Maps/UI/Settings/SettingsView.swift | 4 +- 8 files changed, 109 insertions(+), 109 deletions(-) diff --git a/iphone/Maps/Model/Settings Types/LeftButtonType.swift b/iphone/Maps/Model/Settings Types/LeftButtonType.swift index 5a41801cc..bbd4671ca 100644 --- a/iphone/Maps/Model/Settings Types/LeftButtonType.swift +++ b/iphone/Maps/Model/Settings Types/LeftButtonType.swift @@ -19,15 +19,15 @@ extension Settings { var description: String { switch self { case .hidden: - return L("disabled") + return String(localized: "disabled") case .help: - return L("help") + return String(localized: "help") case .addPlace: - return L("placepage_add_place_button") + return String(localized: "placepage_add_place_button") case .settings: - return L("settings") + return String(localized: "settings") case .recordTrack: - return L("start_track_recording") + return String(localized: "start_track_recording") } } diff --git a/iphone/Maps/UI/Downloader/DownloadMapsViewController.swift b/iphone/Maps/UI/Downloader/DownloadMapsViewController.swift index cf9919077..159a6073b 100644 --- a/iphone/Maps/UI/Downloader/DownloadMapsViewController.swift +++ b/iphone/Maps/UI/Downloader/DownloadMapsViewController.swift @@ -25,7 +25,7 @@ class DownloadMapsViewController: MWMViewController { @IBOutlet var noMapsContainer: UIView! @IBOutlet var downloadAllViewContainer: UIView! - // MARK: - Properties + // MARK: Properties private var searchController = UISearchController(searchResultsController: nil) var dataSource: IDownloaderDataSource! diff --git a/iphone/Maps/UI/Routing/RoutingOptionsView.swift b/iphone/Maps/UI/Routing/RoutingOptionsView.swift index 284bc29f0..9941d275d 100644 --- a/iphone/Maps/UI/Routing/RoutingOptionsView.swift +++ b/iphone/Maps/UI/Routing/RoutingOptionsView.swift @@ -2,7 +2,7 @@ import SwiftUI /// View for the routing options struct RoutingOptionsView: View { - // MARK: - Properties + // MARK: Properties /// The dismiss action of the environment @Environment(\.dismiss) private var dismiss diff --git a/iphone/Maps/UI/Settings/Profile/ExistingProfileView.swift b/iphone/Maps/UI/Settings/Profile/ExistingProfileView.swift index 726910f5a..ed967c67f 100644 --- a/iphone/Maps/UI/Settings/Profile/ExistingProfileView.swift +++ b/iphone/Maps/UI/Settings/Profile/ExistingProfileView.swift @@ -2,7 +2,7 @@ import SwiftUI /// View for the OpenStreetMapp profile struct ExistingProfileView: View { - // MARK: - Properties + // MARK: Properties /// The open url action of the environment @Environment(\.openURL) private var openUrl diff --git a/iphone/Maps/UI/Settings/Profile/NoExistingProfileView.swift b/iphone/Maps/UI/Settings/Profile/NoExistingProfileView.swift index df62a2e4f..a1e0d043f 100644 --- a/iphone/Maps/UI/Settings/Profile/NoExistingProfileView.swift +++ b/iphone/Maps/UI/Settings/Profile/NoExistingProfileView.swift @@ -2,7 +2,7 @@ import SwiftUI /// View for the OpenStreetMapp profile struct NoExistingProfileView: View { - // MARK: - Properties + // MARK: Properties /// The open url action of the environment @Environment(\.openURL) private var openUrl diff --git a/iphone/Maps/UI/Settings/Profile/ProfileView.swift b/iphone/Maps/UI/Settings/Profile/ProfileView.swift index 158a6b678..2eafd0804 100644 --- a/iphone/Maps/UI/Settings/Profile/ProfileView.swift +++ b/iphone/Maps/UI/Settings/Profile/ProfileView.swift @@ -2,7 +2,7 @@ import SwiftUI /// View for the OpenStreetMap profile struct ProfileView: View { - // MARK: - Properties + // MARK: Properties /// The dismiss action of the environment @Environment(\.dismiss) private var dismiss @@ -26,32 +26,30 @@ struct ProfileView: View { /// The actual view var body: some View { - NavigationView { - VStack(spacing: 0) { - if isPresentedAsAlert { - Button { - dismiss() - } label: { - Label { - Text("close") - } icon: { - Image(systemName: "xmark.circle.fill") - .font(.title) - } + VStack(spacing: 0) { + if isPresentedAsAlert { + Button { + dismiss() + } label: { + Label { + Text("close") + } icon: { + Image(systemName: "xmark.circle.fill") + .font(.title) } - .labelStyle(.iconOnly) - .buttonStyle(PlainButtonStyle()) - .foregroundStyle(.primary) - .padding([.top, .leading, .trailing]) - .frame(maxWidth: .infinity, alignment: .trailing) - .background(Color(uiColor: .systemGroupedBackground)) - } - - if Profile.isExisting { - ExistingProfileView(lastUpdated: $lastUpdated, isPresentedAsAlert: isPresentedAsAlert) - } else { - NoExistingProfileView() } + .labelStyle(.iconOnly) + .buttonStyle(PlainButtonStyle()) + .foregroundStyle(.primary) + .padding([.top, .leading, .trailing]) + .frame(maxWidth: .infinity, alignment: .trailing) + .background(Color(uiColor: .systemGroupedBackground)) + } + + if Profile.isExisting { + ExistingProfileView(lastUpdated: $lastUpdated, isPresentedAsAlert: isPresentedAsAlert) + } else { + NoExistingProfileView() } } .accentColor(.accent) @@ -64,7 +62,11 @@ struct ProfileView: View { Profile.logout() lastUpdated = Date.now } label: { - Label("osm_profile_logout", systemImage: "rectangle.portrait.and.arrow.forward") + if #available(iOS 16, *) { + Label("osm_profile_logout", systemImage: "rectangle.portrait.and.arrow.forward") + } else { + Label("osm_profile_logout", systemImage: "power") + } } } } diff --git a/iphone/Maps/UI/Settings/SettingsNavigationView.swift b/iphone/Maps/UI/Settings/SettingsNavigationView.swift index f6ad7b2ef..01096b02c 100644 --- a/iphone/Maps/UI/Settings/SettingsNavigationView.swift +++ b/iphone/Maps/UI/Settings/SettingsNavigationView.swift @@ -2,7 +2,7 @@ import SwiftUI /// View for the navigation settings struct SettingsNavigationView: View { - // MARK: - Properties + // MARK: Properties /// If the perspective view should be used during routing @State var hasPerspectiveViewWhileRouting: Bool = true @@ -46,89 +46,87 @@ struct SettingsNavigationView: View { /// The actual view var body: some View { - NavigationView { - List { - Section { - Toggle("pref_map_3d_title", isOn: $hasPerspectiveViewWhileRouting) - .tint(.accent) - - Toggle("pref_map_auto_zoom", isOn: $hasAutoZoomWhileRouting) - .tint(.accent) - } + List { + Section { + Toggle("pref_map_3d_title", isOn: $hasPerspectiveViewWhileRouting) + .tint(.accent) - Section { - Toggle("pref_tts_enable_title", isOn: $shouldProvideVoiceRouting) - .tint(.accent) + Toggle("pref_map_auto_zoom", isOn: $hasAutoZoomWhileRouting) + .tint(.accent) + } + + Section { + Toggle("pref_tts_enable_title", isOn: $shouldProvideVoiceRouting) + .tint(.accent) + + if shouldProvideVoiceRouting { + Picker(selection: $selectedLanguageForVoiceRouting) { + ForEach(Settings.availableLanguagesForVoiceRouting) { languageForVoiceRouting in + Text(languageForVoiceRouting.localizedName) + .tag(languageForVoiceRouting.id) + } + } label: { + Text("pref_tts_language_title") + } - if shouldProvideVoiceRouting { - Picker(selection: $selectedLanguageForVoiceRouting) { - ForEach(Settings.availableLanguagesForVoiceRouting) { languageForVoiceRouting in - Text(languageForVoiceRouting.localizedName) - .tag(languageForVoiceRouting.id) - } - } label: { - Text("pref_tts_language_title") - } - - Toggle(isOn: $shouldAnnounceStreetnamesWhileVoiceRouting) { - VStack(alignment: .leading) { - Text("pref_tts_street_names_title") - - Text("pref_tts_street_names_description") - .font(.footnote) - .foregroundStyle(.secondary) - } - } - .tint(.accent) - - Picker(selection: $selectedAnnouncingSpeedTrapsWhileVoiceRouting) { - ForEach(Settings.AnnouncingSpeedTrapsWhileVoiceRouting.allCases) { announcingSpeedTrapsWhileVoiceRouting in - Text(announcingSpeedTrapsWhileVoiceRouting.description) - } - } label: { - Text("speedcams_alert_title") + Toggle(isOn: $shouldAnnounceStreetnamesWhileVoiceRouting) { + VStack(alignment: .leading) { + Text("pref_tts_street_names_title") + + Text("pref_tts_street_names_description") + .font(.footnote) + .foregroundStyle(.secondary) } } - } header: { - Text("pref_tts_title") - } footer: { - if shouldProvideVoiceRouting { - Button { - Settings.playVoiceRoutingTest() - } label: { - Text("pref_tts_test_voice_title") - .bold() - .lineLimit(1) - .padding(4) - .frame(maxWidth: .infinity) + .tint(.accent) + + Picker(selection: $selectedAnnouncingSpeedTrapsWhileVoiceRouting) { + ForEach(Settings.AnnouncingSpeedTrapsWhileVoiceRouting.allCases) { announcingSpeedTrapsWhileVoiceRouting in + Text(announcingSpeedTrapsWhileVoiceRouting.description) } - .buttonStyle(BorderedButtonStyle()) - .foregroundStyle(.alternativeAccent) - .padding([.top, .bottom]) - .listRowInsets(.init(top: 0, leading: 0, bottom: 0, trailing: 0)) + } label: { + Text("speedcams_alert_title") } } - - Section { - Toggle("avoid_tolls", isOn: $shouldAvoidTollRoadsWhileRouting) - .tint(.accent) - - Toggle("avoid_unpaved", isOn: $shouldAvoidUnpavedRoadsWhileRouting) - .tint(.accent) - - Toggle("avoid_ferry", isOn: $shouldAvoidFerriesWhileRouting) - .tint(.accent) - - Toggle("avoid_motorways", isOn: $shouldAvoidMotorwaysWhileRouting) - .tint(.accent) - } header: { - Text("driving_options_title") + } header: { + Text("pref_tts_title") + } footer: { + if shouldProvideVoiceRouting { + Button { + Settings.playVoiceRoutingTest() + } label: { + Text("pref_tts_test_voice_title") + .bold() + .lineLimit(1) + .padding(4) + .frame(maxWidth: .infinity) + } + .buttonStyle(BorderedButtonStyle()) + .foregroundStyle(.alternativeAccent) + .padding([.top, .bottom]) + .listRowInsets(.init(top: 0, leading: 0, bottom: 0, trailing: 0)) } } + + Section { + Toggle("avoid_tolls", isOn: $shouldAvoidTollRoadsWhileRouting) + .tint(.accent) + + Toggle("avoid_unpaved", isOn: $shouldAvoidUnpavedRoadsWhileRouting) + .tint(.accent) + + Toggle("avoid_ferry", isOn: $shouldAvoidFerriesWhileRouting) + .tint(.accent) + + Toggle("avoid_motorways", isOn: $shouldAvoidMotorwaysWhileRouting) + .tint(.accent) + } header: { + Text("driving_options_title") + } } .accentColor(.accent) .navigationViewStyle(StackNavigationViewStyle()) - .navigationTitle(String(localized: "prefs_group_route")) + .navigationTitle("prefs_group_route") .onAppear { hasPerspectiveViewWhileRouting = Settings.hasPerspectiveViewWhileRouting hasAutoZoomWhileRouting = Settings.hasAutoZoomWhileRouting diff --git a/iphone/Maps/UI/Settings/SettingsView.swift b/iphone/Maps/UI/Settings/SettingsView.swift index 598f6e867..ea8221500 100644 --- a/iphone/Maps/UI/Settings/SettingsView.swift +++ b/iphone/Maps/UI/Settings/SettingsView.swift @@ -2,7 +2,7 @@ import SwiftUI /// View for the settings struct SettingsView: View { - // MARK: - Properties + // MARK: Properties /// The dismiss action of the environment @Environment(\.dismiss) private var dismiss @@ -235,7 +235,7 @@ struct SettingsView: View { Text("enable_logging_warning_message") } } - .navigationTitle(String(localized: "settings")) + .navigationTitle("settings") .navigationBarTitleDisplayMode(.inline) .toolbar { ToolbarItem(placement: .confirmationAction) {