Compare commits

...
This repository has been archived on 2025-03-22. You can view files and clone it, but cannot push or open issues or pull requests.

8 commits

Author SHA1 Message Date
e1130bfb86 [ios] fix layout crash on the ios 12 on ipad
The exception was rised by the NSLayoutConstrait when the priority is changed (on ipad) after constraint activation. The all of the constraints set up shood be done before activation.

Signed-off-by: Kiryl Kaveryn <kirylkaveryn@gmail.com>
2025-03-13 10:39:56 +04:00
2ba662ff46 [ios] fix pasting coords to the search
Signed-off-by: Kiryl Kaveryn <kirylkaveryn@gmail.com>
2025-03-13 10:39:56 +04:00
37c41f54e7 [ios] replace the modally presented search vc presentation with child
Signed-off-by: Kiryl Kaveryn <kirylkaveryn@gmail.com>
2025-03-13 10:39:29 +04:00
25d35c4b47 [ios] fix search header radius small for iphone
Signed-off-by: Kiryl Kaveryn <kirylkaveryn@gmail.com>
2025-03-13 10:32:05 +04:00
pastk
41ea6bf4df Bump versions
Signed-off-by: pastk <pastk@users.noreply.github.com>
2025-03-02 17:27:18 +00:00
745f28ea12 March release notes translations
Signed-off-by: Konstantin Pastbin <konstantin.pastbin@gmail.com>
2025-03-03 00:07:39 +07:00
bd19de4b9a March release notes
Signed-off-by: Konstantin Pastbin <konstantin.pastbin@gmail.com>
2025-03-03 00:07:39 +07:00
ce72ef70da [planet] New data from 250227.
Signed-off-by: Konstantin Pastbin <konstantin.pastbin@gmail.com>
2025-03-02 16:13:22 +00:00
119 changed files with 4052 additions and 3712 deletions

View file

@ -1,8 +1,8 @@
• New OpenStreetMap data as of January 21
Dispay a speed limit sign in the navigation mode
Added Serbian (Cyrillic) and Latvian languages
Android Auto: sort bookmarks, improved location permission request experience
Added tower POIs
• Added a setting for Kayak.com Hotel Links and a first-use opt-out option
• New OpenStreetMap data as of February 27
Ability to manually arrange intermediate route points
Share a single selected track from the list
Improved routing for bicycles
Display a system notification when downloading maps and don't interrupt background downloads
• Added a flashing Track Recording widget
…more details at omaps.org/news

View file

@ -1,8 +1,8 @@
• New OpenStreetMap data as of January 21
Dispay a speed limit sign in the navigation mode
Added Serbian (Cyrillic) and Latvian languages
Android Auto: sort bookmarks, improved location permission request experience
Added tower POIs
• Added a setting for Kayak.com Hotel Links and a first-use opt-out option
• New OpenStreetMap data as of February 27
Ability to manually arrange intermediate route points
Share a single selected track from the list
Improved routing for bicycles
Display a system notification when downloading maps and don't interrupt background downloads
• Added a flashing Track Recording widget
…more details at omaps.org/news

View file

@ -1,8 +1,8 @@
• Новыя дадзеныя OpenStreetMap ад 21 студзеня
Адлюстраванне абмежавання хуткасці ў рэжыме навігацыі
Android Auto: сартаванне метак, палепшаны запыты на дазвол месцазнаходжання
На карту дададзены вежы
• Дададзена настройка для адключэння спасылак на гатэлі з Kayak.com і магчымасць адмовы пры першым выкарыстанні
• Дададзены сербская (кірыліца) і латышская мовы
• Новыя дадзеныя OpenStreetMap ад 27 лютага
Магчымасць уручную расстаўляць прамежкавыя кропкі маршруту
Экспарт аднаго абранага трэка са спісу
Палепшаная маршрутызацыя для веласіпедыстаў
• Дададзена сістэмнае апавяшчэнне пры загрузцы карт, фонавыя загрузкі больш не перарываюцца
• Дададзены мігатлівы віджэт запісу трэка
…і шматлікае іншае на omaps.org/news

View file

@ -1,8 +1,8 @@
• New OpenStreetMap data as of January 21
Dispay a speed limit sign in the navigation mode
Added Serbian (Cyrillic) and Latvian languages
Android Auto: sort bookmarks, improved location permission request experience
Added tower POIs
• Added a setting for Kayak.com Hotel Links and a first-use opt-out option
• New OpenStreetMap data as of February 27
Ability to manually arrange intermediate route points
Share a single selected track from the list
Improved routing for bicycles
Display a system notification when downloading maps and don't interrupt background downloads
• Added a flashing Track Recording widget
…more details at omaps.org/news

View file

@ -1,8 +1,8 @@
• New OpenStreetMap data as of January 21
Dispay a speed limit sign in the navigation mode
Added Serbian (Cyrillic) and Latvian languages
Android Auto: sort bookmarks, improved location permission request experience
Added tower POIs
• Added a setting for Kayak.com Hotel Links and a first-use opt-out option
• New OpenStreetMap data as of February 27
Ability to manually arrange intermediate route points
Share a single selected track from the list
Improved routing for bicycles
Display a system notification when downloading maps and don't interrupt background downloads
• Added a flashing Track Recording widget
…more details at omaps.org/news

View file

@ -1,8 +1,8 @@
• New OpenStreetMap data as of January 21
Dispay a speed limit sign in the navigation mode
Added Serbian (Cyrillic) and Latvian languages
Android Auto: sort bookmarks, improved location permission request experience
Added tower POIs
• Added a setting for Kayak.com Hotel Links and a first-use opt-out option
• New OpenStreetMap data as of February 27
Ability to manually arrange intermediate route points
Share a single selected track from the list
Improved routing for bicycles
Display a system notification when downloading maps and don't interrupt background downloads
• Added a flashing Track Recording widget
…more details at omaps.org/news

View file

@ -1,8 +1,8 @@
• New OpenStreetMap data as of January 21
Dispay a speed limit sign in the navigation mode
Added Serbian (Cyrillic) and Latvian languages
Android Auto: sort bookmarks, improved location permission request experience
Added tower POIs
• Added a setting for Kayak.com Hotel Links and a first-use opt-out option
• New OpenStreetMap data as of February 27
Ability to manually arrange intermediate route points
Share a single selected track from the list
Improved routing for bicycles
Display a system notification when downloading maps and don't interrupt background downloads
• Added a flashing Track Recording widget
…more details at omaps.org/news

View file

@ -1,8 +1,8 @@
• New OpenStreetMap data as of January 21
Dispay a speed limit sign in the navigation mode
Added Serbian (Cyrillic) and Latvian languages
Android Auto: sort bookmarks, improved location permission request experience
Added tower POIs
• Added a setting for Kayak.com Hotel Links and a first-use opt-out option
• New OpenStreetMap data as of February 27
Ability to manually arrange intermediate route points
Share a single selected track from the list
Improved routing for bicycles
Display a system notification when downloading maps and don't interrupt background downloads
• Added a flashing Track Recording widget
…more details at omaps.org/news

View file

@ -1,8 +1,8 @@
• Neue OpenStreetMap-Daten vom 21. Januar
Anzeige eines Geschwindigkeitsbegrenzungsschildes im Navigationsmodus
Serbische (Kyrillisch) und Lettische Sprachen hinzugefügt
Android Auto: Lesezeichen sortieren, verbessertes Erlebnis bei der Anforderung von Standortberechtigungen
Turm-POIs hinzugefügt
• Eine Einstellung für Kayak.com-Hotellinks und eine Opt-out-Option bei der ersten Nutzung hinzugefügt.
• Neue OpenStreetMap-Daten vom 27. Februar
Möglichkeit, Zwischenroutenpunkte manuell zu arrangieren
Einen einzelnen ausgewählten Track aus der Liste teilen
Verbesserte Routenführung für Fahrräder
Beim Herunterladen von Karten eine Systembenachrichtigung anzeigen und Hintergrunddownloads nicht unterbrechen
• Ein blinkendes Trackaufzeichnungs-Widget hinzugefügt
…weitere Details unter omaps.org/news

View file

@ -1,8 +1,8 @@
• New OpenStreetMap data as of January 21
Dispay a speed limit sign in the navigation mode
Added Serbian (Cyrillic) and Latvian languages
Android Auto: sort bookmarks, improved location permission request experience
Added tower POIs
• Added a setting for Kayak.com Hotel Links and a first-use opt-out option
• New OpenStreetMap data as of February 27
Ability to manually arrange intermediate route points
Share a single selected track from the list
Improved routing for bicycles
Display a system notification when downloading maps and don't interrupt background downloads
• Added a flashing Track Recording widget
…more details at omaps.org/news

View file

@ -1,8 +1,8 @@
• New OpenStreetMap data as of January 21
Dispay a speed limit sign in the navigation mode
Added Serbian (Cyrillic) and Latvian languages
Android Auto: sort bookmarks, improved location permission request experience
Added tower POIs
• Added a setting for Kayak.com Hotel Links and a first-use opt-out option
• New OpenStreetMap data as of February 27
Ability to manually arrange intermediate route points
Share a single selected track from the list
Improved routing for bicycles
Display a system notification when downloading maps and don't interrupt background downloads
• Added a Track Recording indicator on the main screen
…more details at omaps.org/news

View file

@ -1,8 +1,8 @@
• Nuevos datos de OpenStreetMap del 21 de enero
Límite de velocidad en el modo de navegación
Añadidos idiomas serbio (cirílico) y letón
Android Auto: opción de ordenar marcadores, mejorada la experiencia al solicitar ubicación
Añadidos PDI de torres
• Añadidas opciones para enlaces de hotel de Kayak.com y de exclusión al primer uso
• New OpenStreetMap data as of February 27
Ability to manually arrange intermediate route points
Share a single selected track from the list
Improved routing for bicycles
Display a system notification when downloading maps and don't interrupt background downloads
• Added a flashing Track Recording widget
…más detalles en omaps.org/news
…more details at omaps.org/news

View file

@ -1,8 +1,8 @@
• New OpenStreetMap data as of January 21
Dispay a speed limit sign in the navigation mode
Added Serbian (Cyrillic) and Latvian languages
Android Auto: sort bookmarks, improved location permission request experience
Added tower POIs
• Added a setting for Kayak.com Hotel Links and a first-use opt-out option
• New OpenStreetMap data as of February 27
Ability to manually arrange intermediate route points
Share a single selected track from the list
Improved routing for bicycles
Display a system notification when downloading maps and don't interrupt background downloads
• Added a flashing Track Recording widget
…more details at omaps.org/news

View file

@ -1,8 +1,8 @@
Urtarrilaren 21ko OpenStreetMap-eko datu berriak
• Abiadura muga erakusten da nabigazio moduan
• Serbiera (zirilikoa) eta letoniera hizkuntzak gehitu dira
Android Auto: gogokoak ordena daitezke, kokapen permisuaren eskaeraren esperientzia hobetu da
• Dorreen interes puntuak gehitu dira
Kayak.com-eko hotelen estekak eta lehenengo erabileran ez erakusteko aukera gehitu dira
New OpenStreetMap data as of February 27
• Ability to manually arrange intermediate route points
• Share a single selected track from the list
Improved routing for bicycles
• Display a system notification when downloading maps and don't interrupt background downloads
Added a flashing Track Recording widget
zehaztasun gehiago omaps.org/news webgunean
more details at omaps.org/news

View file

@ -1,8 +1,8 @@
• New OpenStreetMap data as of January 21
Dispay a speed limit sign in the navigation mode
Added Serbian (Cyrillic) and Latvian languages
Android Auto: sort bookmarks, improved location permission request experience
Added tower POIs
• Added a setting for Kayak.com Hotel Links and a first-use opt-out option
• New OpenStreetMap data as of February 27
Ability to manually arrange intermediate route points
Share a single selected track from the list
Improved routing for bicycles
Display a system notification when downloading maps and don't interrupt background downloads
• Added a flashing Track Recording widget
…more details at omaps.org/news

View file

@ -1,8 +1,8 @@
• New OpenStreetMap data as of January 21
Dispay a speed limit sign in the navigation mode
Added Serbian (Cyrillic) and Latvian languages
Android Auto: sort bookmarks, improved location permission request experience
Added tower POIs
• Added a setting for Kayak.com Hotel Links and a first-use opt-out option
• New OpenStreetMap data as of February 27
Ability to manually arrange intermediate route points
Share a single selected track from the list
Improved routing for bicycles
Display a system notification when downloading maps and don't interrupt background downloads
• Added a flashing Track Recording widget
…more details at omaps.org/news

View file

@ -1,8 +1,8 @@
• Nouvelles données OpenStreetMap du 21 janvier
Afficher un panneau de limitation de vitesse en mode navigation
Ajout des langues serbe (cyrillique) et lettone
• Android Auto : trier les signets, expérience de demande d'autorisation de localisation améliorée
• Ajout de POI de tour
• Ajout d'un paramètre pour les liens d'hôtel Kayak.com et d'une option de désinscription lors de la première utilisation
• Nouvelles données OpenStreetMap du 27 février
Possibilité d'organiser manuellement les points d'itinéraire intermédiaires
Partager une seule piste sélectionnée dans la liste
• Amélioration du routage pour les vélos
• Afficher une notification système lors du téléchargement de cartes et ne pas interrompre les téléchargements en arrière-plan
• Ajout d'un widget d'enregistrement de piste clignotant
…plus de détails sur omaps.org/news

View file

@ -1,8 +1,8 @@
• New OpenStreetMap data as of January 21
Dispay a speed limit sign in the navigation mode
Added Serbian (Cyrillic) and Latvian languages
Android Auto: sort bookmarks, improved location permission request experience
Added tower POIs
• Added a setting for Kayak.com Hotel Links and a first-use opt-out option
• New OpenStreetMap data as of February 27
Ability to manually arrange intermediate route points
Share a single selected track from the list
Improved routing for bicycles
Display a system notification when downloading maps and don't interrupt background downloads
• Added a flashing Track Recording widget
…more details at omaps.org/news

View file

@ -1,8 +1,8 @@
• New OpenStreetMap data as of January 21
Dispay a speed limit sign in the navigation mode
Added Serbian (Cyrillic) and Latvian languages
Android Auto: sort bookmarks, improved location permission request experience
Added tower POIs
• Added a setting for Kayak.com Hotel Links and a first-use opt-out option
• New OpenStreetMap data as of February 27
Ability to manually arrange intermediate route points
Share a single selected track from the list
Improved routing for bicycles
Display a system notification when downloading maps and don't interrupt background downloads
• Added a flashing Track Recording widget
…more details at omaps.org/news

View file

@ -1,8 +1,8 @@
• New OpenStreetMap data as of January 21
Dispay a speed limit sign in the navigation mode
Added Serbian (Cyrillic) and Latvian languages
Android Auto: sort bookmarks, improved location permission request experience
Added tower POIs
• Added a setting for Kayak.com Hotel Links and a first-use opt-out option
• New OpenStreetMap data as of February 27
Ability to manually arrange intermediate route points
Share a single selected track from the list
Improved routing for bicycles
Display a system notification when downloading maps and don't interrupt background downloads
• Added a flashing Track Recording widget
…more details at omaps.org/news

View file

@ -1,8 +1,8 @@
• New OpenStreetMap data as of January 21
Dispay a speed limit sign in the navigation mode
Added Serbian (Cyrillic) and Latvian languages
Android Auto: sort bookmarks, improved location permission request experience
Added tower POIs
• Added a setting for Kayak.com Hotel Links and a first-use opt-out option
• New OpenStreetMap data as of February 27
Ability to manually arrange intermediate route points
Share a single selected track from the list
Improved routing for bicycles
Display a system notification when downloading maps and don't interrupt background downloads
• Added a flashing Track Recording widget
…more details at omaps.org/news

View file

@ -1,8 +1,8 @@
• New OpenStreetMap data as of January 21
Dispay a speed limit sign in the navigation mode
Added Serbian (Cyrillic) and Latvian languages
Android Auto: sort bookmarks, improved location permission request experience
Added tower POIs
• Added a setting for Kayak.com Hotel Links and a first-use opt-out option
• New OpenStreetMap data as of February 27
Ability to manually arrange intermediate route points
Share a single selected track from the list
Improved routing for bicycles
Display a system notification when downloading maps and don't interrupt background downloads
• Added a flashing Track Recording widget
…more details at omaps.org/news

View file

@ -1,8 +1,8 @@
• New OpenStreetMap data as of January 21
Dispay a speed limit sign in the navigation mode
Added Serbian (Cyrillic) and Latvian languages
Android Auto: sort bookmarks, improved location permission request experience
Added tower POIs
• Added a setting for Kayak.com Hotel Links and a first-use opt-out option
• New OpenStreetMap data as of February 27
Ability to manually arrange intermediate route points
Share a single selected track from the list
Improved routing for bicycles
Display a system notification when downloading maps and don't interrupt background downloads
• Added a flashing Track Recording widget
…more details at omaps.org/news

View file

@ -1,8 +1,8 @@
• New OpenStreetMap data as of January 21
Dispay a speed limit sign in the navigation mode
Added Serbian (Cyrillic) and Latvian languages
Android Auto: sort bookmarks, improved location permission request experience
Added tower POIs
• Added a setting for Kayak.com Hotel Links and a first-use opt-out option
• New OpenStreetMap data as of February 27
Ability to manually arrange intermediate route points
Share a single selected track from the list
Improved routing for bicycles
Display a system notification when downloading maps and don't interrupt background downloads
• Added a flashing Track Recording widget
…more details at omaps.org/news

View file

@ -1,8 +1,8 @@
• New OpenStreetMap data as of January 21
Dispay a speed limit sign in the navigation mode
Added Serbian (Cyrillic) and Latvian languages
Android Auto: sort bookmarks, improved location permission request experience
Added tower POIs
• Added a setting for Kayak.com Hotel Links and a first-use opt-out option
• New OpenStreetMap data as of February 27
Ability to manually arrange intermediate route points
Share a single selected track from the list
Improved routing for bicycles
Display a system notification when downloading maps and don't interrupt background downloads
• Added a flashing Track Recording widget
…more details at omaps.org/news

View file

@ -1,8 +1,8 @@
• New OpenStreetMap data as of January 21
Dispay a speed limit sign in the navigation mode
Added Serbian (Cyrillic) and Latvian languages
Android Auto: sort bookmarks, improved location permission request experience
Added tower POIs
• Added a setting for Kayak.com Hotel Links and a first-use opt-out option
• New OpenStreetMap data as of February 27
Ability to manually arrange intermediate route points
Share a single selected track from the list
Improved routing for bicycles
Display a system notification when downloading maps and don't interrupt background downloads
• Added a flashing Track Recording widget
…more details at omaps.org/news

View file

@ -1,8 +1,8 @@
• New OpenStreetMap data as of January 21
Dispay a speed limit sign in the navigation mode
Added Serbian (Cyrillic) and Latvian languages
Android Auto: sort bookmarks, improved location permission request experience
Added tower POIs
• Added a setting for Kayak.com Hotel Links and a first-use opt-out option
• New OpenStreetMap data as of February 27
Ability to manually arrange intermediate route points
Share a single selected track from the list
Improved routing for bicycles
Display a system notification when downloading maps and don't interrupt background downloads
• Added a flashing Track Recording widget
…more details at omaps.org/news

View file

@ -1,8 +1,8 @@
• New OpenStreetMap data as of January 21
Dispay a speed limit sign in the navigation mode
Added Serbian (Cyrillic) and Latvian languages
Android Auto: sort bookmarks, improved location permission request experience
Added tower POIs
• Added a setting for Kayak.com Hotel Links and a first-use opt-out option
• New OpenStreetMap data as of February 27
Ability to manually arrange intermediate route points
Share a single selected track from the list
Improved routing for bicycles
Display a system notification when downloading maps and don't interrupt background downloads
• Added a flashing Track Recording widget
…more details at omaps.org/news

View file

@ -1,8 +1,8 @@
• New OpenStreetMap data as of January 21
Dispay a speed limit sign in the navigation mode
Added Serbian (Cyrillic) and Latvian languages
Android Auto: sort bookmarks, improved location permission request experience
Added tower POIs
• Added a setting for Kayak.com Hotel Links and a first-use opt-out option
• New OpenStreetMap data as of February 27
Ability to manually arrange intermediate route points
Share a single selected track from the list
Improved routing for bicycles
Display a system notification when downloading maps and don't interrupt background downloads
• Added a flashing Track Recording widget
…more details at omaps.org/news

View file

@ -1,8 +1,8 @@
• New OpenStreetMap data as of January 21
Dispay a speed limit sign in the navigation mode
Added Serbian (Cyrillic) and Latvian languages
Android Auto: sort bookmarks, improved location permission request experience
Added tower POIs
• Added a setting for Kayak.com Hotel Links and a first-use opt-out option
• New OpenStreetMap data as of February 27
Ability to manually arrange intermediate route points
Share a single selected track from the list
Improved routing for bicycles
Display a system notification when downloading maps and don't interrupt background downloads
• Added a flashing Track Recording widget
…more details at omaps.org/news

View file

@ -1,8 +1,8 @@
• New OpenStreetMap data as of January 21
Dispay a speed limit sign in the navigation mode
Added Serbian (Cyrillic) and Latvian languages
Android Auto: sort bookmarks, improved location permission request experience
Added tower POIs
• Added a setting for Kayak.com Hotel Links and a first-use opt-out option
• New OpenStreetMap data as of February 27
Ability to manually arrange intermediate route points
Share a single selected track from the list
Improved routing for bicycles
Display a system notification when downloading maps and don't interrupt background downloads
• Added a flashing Track Recording widget
…more details at omaps.org/news

View file

@ -1,8 +1,8 @@
• New OpenStreetMap data as of January 21
Dispay a speed limit sign in the navigation mode
Added Serbian (Cyrillic) and Latvian languages
Android Auto: sort bookmarks, improved location permission request experience
Added tower POIs
• Added a setting for Kayak.com Hotel Links and a first-use opt-out option
• New OpenStreetMap data as of February 27
Ability to manually arrange intermediate route points
Share a single selected track from the list
Improved routing for bicycles
Display a system notification when downloading maps and don't interrupt background downloads
• Added a flashing Track Recording widget
…more details at omaps.org/news

View file

@ -1,8 +1,8 @@
• New OpenStreetMap data as of January 21
Dispay a speed limit sign in the navigation mode
Added Serbian (Cyrillic) and Latvian languages
Android Auto: sort bookmarks, improved location permission request experience
Added tower POIs
• Added a setting for Kayak.com Hotel Links and a first-use opt-out option
• New OpenStreetMap data as of February 27
Ability to manually arrange intermediate route points
Share a single selected track from the list
Improved routing for bicycles
Display a system notification when downloading maps and don't interrupt background downloads
• Added a flashing Track Recording widget
…more details at omaps.org/news

View file

@ -1,8 +1,8 @@
• New OpenStreetMap data as of January 21
Dispay a speed limit sign in the navigation mode
Added Serbian (Cyrillic) and Latvian languages
Android Auto: sort bookmarks, improved location permission request experience
Added tower POIs
• Added a setting for Kayak.com Hotel Links and a first-use opt-out option
• New OpenStreetMap data as of February 27
Ability to manually arrange intermediate route points
Share a single selected track from the list
Improved routing for bicycles
Display a system notification when downloading maps and don't interrupt background downloads
• Added a flashing Track Recording widget
…more details at omaps.org/news

View file

@ -1,8 +1,8 @@
• New OpenStreetMap data as of January 21
Dispay a speed limit sign in the navigation mode
Added Serbian (Cyrillic) and Latvian languages
Android Auto: sort bookmarks, improved location permission request experience
Added tower POIs
• Added a setting for Kayak.com Hotel Links and a first-use opt-out option
• New OpenStreetMap data as of February 27
Ability to manually arrange intermediate route points
Share a single selected track from the list
Improved routing for bicycles
Display a system notification when downloading maps and don't interrupt background downloads
• Added a flashing Track Recording widget
…more details at omaps.org/news

View file

@ -1,8 +1,8 @@
• New OpenStreetMap data as of January 21
Dispay a speed limit sign in the navigation mode
Added Serbian (Cyrillic) and Latvian languages
Android Auto: sort bookmarks, improved location permission request experience
Added tower POIs
• Added a setting for Kayak.com Hotel Links and a first-use opt-out option
• New OpenStreetMap data as of February 27
Ability to manually arrange intermediate route points
Share a single selected track from the list
Improved routing for bicycles
Display a system notification when downloading maps and don't interrupt background downloads
• Added a flashing Track Recording widget
…more details at omaps.org/news

View file

@ -1,8 +1,8 @@
• New OpenStreetMap data as of January 21
Dispay a speed limit sign in the navigation mode
Added Serbian (Cyrillic) and Latvian languages
Android Auto: sort bookmarks, improved location permission request experience
Added tower POIs
• Added a setting for Kayak.com Hotel Links and a first-use opt-out option
• New OpenStreetMap data as of February 27
Ability to manually arrange intermediate route points
Share a single selected track from the list
Improved routing for bicycles
Display a system notification when downloading maps and don't interrupt background downloads
• Added a flashing Track Recording widget
…more details at omaps.org/news

View file

@ -1,8 +1,8 @@
• New OpenStreetMap data as of January 21
Dispay a speed limit sign in the navigation mode
Added Serbian (Cyrillic) and Latvian languages
Android Auto: sort bookmarks, improved location permission request experience
Added tower POIs
• Added a setting for Kayak.com Hotel Links and a first-use opt-out option
• New OpenStreetMap data as of February 27
Ability to manually arrange intermediate route points
Share a single selected track from the list
Improved routing for bicycles
Display a system notification when downloading maps and don't interrupt background downloads
• Added a flashing Track Recording widget
…more details at omaps.org/news

View file

@ -1,8 +1,8 @@
• New OpenStreetMap data as of January 21
Dispay a speed limit sign in the navigation mode
Added Serbian (Cyrillic) and Latvian languages
Android Auto: sort bookmarks, improved location permission request experience
Added tower POIs
• Added a setting for Kayak.com Hotel Links and a first-use opt-out option
• New OpenStreetMap data as of February 27
Ability to manually arrange intermediate route points
Share a single selected track from the list
Improved routing for bicycles
Display a system notification when downloading maps and don't interrupt background downloads
• Added a flashing Track Recording widget
…more details at omaps.org/news

View file

@ -1,8 +1,8 @@
• New OpenStreetMap data as of January 21
Dispay a speed limit sign in the navigation mode
Added Serbian (Cyrillic) and Latvian languages
Android Auto: sort bookmarks, improved location permission request experience
Added tower POIs
• Added a setting for Kayak.com Hotel Links and a first-use opt-out option
• New OpenStreetMap data as of February 27
Ability to manually arrange intermediate route points
Share a single selected track from the list
Improved routing for bicycles
Display a system notification when downloading maps and don't interrupt background downloads
• Added a flashing Track Recording widget
…more details at omaps.org/news

View file

@ -1,8 +1,8 @@
• New OpenStreetMap data as of January 21
Dispay a speed limit sign in the navigation mode
Added Serbian (Cyrillic) and Latvian languages
Android Auto: sort bookmarks, improved location permission request experience
Added tower POIs
• Added a setting for Kayak.com Hotel Links and a first-use opt-out option
• New OpenStreetMap data as of February 27
Ability to manually arrange intermediate route points
Share a single selected track from the list
Improved routing for bicycles
Display a system notification when downloading maps and don't interrupt background downloads
• Added a flashing Track Recording widget
…more details at omaps.org/news

View file

@ -1,8 +1,8 @@
• Nowe dane OpenStreetMap z 21 stycznia
Wyświetlanie znaku ograniczenia prędkości w trybie nawigacji
Dodano języki serbski (cyrylica) i łotewski
Android Auto: sortowanie zakładek, ulepszono prośbę o pozwolenie na lokalizację
• Dodano POI dla wieży
Dodano ustawienie dla linków do hoteli na Kayak.com oraz możliwość wyłączenia ich przy pierwszym uruchomieniu
• New OpenStreetMap data as of February 27
Ability to manually arrange intermediate route points
Share a single selected track from the list
Improved routing for bicycles
• Display a system notification when downloading maps and don't interrupt background downloads
Added a flashing Track Recording widget
więcej szczegółów na omaps.org/news
more details at omaps.org/news

View file

@ -1,8 +1,8 @@
• Novos dados do OpenStreetMap de 21 de janeiro
Exibe um sinal de limite de velocidade no modo de navegação
Adicionados os idiomas sérvio (cirílico) e letão
Android Auto: classificar favoritos, experiência aprimorada de solicitação de permissão de localização
Adicionados POIs de torre
• Adicionada uma configuração para links de hotéis Kayak.com e uma opção de cancelamento de primeiro uso
• New OpenStreetMap data as of February 27
Ability to manually arrange intermediate route points
Share a single selected track from the list
Improved routing for bicycles
Display a system notification when downloading maps and don't interrupt background downloads
• Added a flashing Track Recording widget
…mais detalhes em omaps.org/news
…more details at omaps.org/news

View file

@ -1,8 +1,8 @@
• Novos dados do OpenStreetMap a 21 de janeiro
Exibir um sinal de limite de velocidade no modo de navegação
Adicionados os idiomas sérvio (cirílico) e letão
Android Auto: classificar favoritos, experiência melhorada de pedido de permissão de localização
Adicionados POIs de torre
Foi adicionada uma configuração para o Kayak.com Hotel Links e uma opção de cancelamento de primeira utilização
• New OpenStreetMap data as of February 27
Ability to manually arrange intermediate route points
Share a single selected track from the list
Improved routing for bicycles
Display a system notification when downloading maps and don't interrupt background downloads
Added a flashing Track Recording widget
…mais detalhes em omaps.org/news
…more details at omaps.org/news

View file

@ -1,8 +1,8 @@
• New OpenStreetMap data as of January 21
Dispay a speed limit sign in the navigation mode
Added Serbian (Cyrillic) and Latvian languages
Android Auto: sort bookmarks, improved location permission request experience
Added tower POIs
• Added a setting for Kayak.com Hotel Links and a first-use opt-out option
• New OpenStreetMap data as of February 27
Ability to manually arrange intermediate route points
Share a single selected track from the list
Improved routing for bicycles
Display a system notification when downloading maps and don't interrupt background downloads
• Added a flashing Track Recording widget
…more details at omaps.org/news

View file

@ -1,8 +1,8 @@
• Новые данные OpenStreetMap от 21 января
Отображение ограничения скорости в режиме навигации
Android Auto: сортировка меток, улучшены запросы на разрешение местоположения
На карту добавлены башни
• Добавлена ​​настройка для отключения ссылок на отели с Kayak.com и возможность отказа при первом использовании
• Добавлены сербский (кириллица) и латышский языки
• Новые данные OpenStreetMap от 27 февраля
Возможность вручную расставлять промежуточные точки маршрута
Экспорт одного выбранного трека из списка
Улучшенная маршрутизация для велосипедистов
• Добавлено системное уведомление при загрузке карт, фоновые загрузки больше не прерываются
• Добавлен мигающий виджет записи трека
…и многое другое на omaps.org/news

View file

@ -1,8 +1,8 @@
• New OpenStreetMap data as of January 21
Dispay a speed limit sign in the navigation mode
Added Serbian (Cyrillic) and Latvian languages
Android Auto: sort bookmarks, improved location permission request experience
Added tower POIs
• Added a setting for Kayak.com Hotel Links and a first-use opt-out option
• New OpenStreetMap data as of February 27
Ability to manually arrange intermediate route points
Share a single selected track from the list
Improved routing for bicycles
Display a system notification when downloading maps and don't interrupt background downloads
• Added a flashing Track Recording widget
…more details at omaps.org/news

View file

@ -1,8 +1,8 @@
• New OpenStreetMap data as of January 21
Dispay a speed limit sign in the navigation mode
Added Serbian (Cyrillic) and Latvian languages
Android Auto: sort bookmarks, improved location permission request experience
Added tower POIs
• Added a setting for Kayak.com Hotel Links and a first-use opt-out option
• New OpenStreetMap data as of February 27
Ability to manually arrange intermediate route points
Share a single selected track from the list
Improved routing for bicycles
Display a system notification when downloading maps and don't interrupt background downloads
• Added a flashing Track Recording widget
…more details at omaps.org/news

View file

@ -1,8 +1,8 @@
• New OpenStreetMap data as of January 21
Dispay a speed limit sign in the navigation mode
Added Serbian (Cyrillic) and Latvian languages
Android Auto: sort bookmarks, improved location permission request experience
Added tower POIs
• Added a setting for Kayak.com Hotel Links and a first-use opt-out option
• New OpenStreetMap data as of February 27
Ability to manually arrange intermediate route points
Share a single selected track from the list
Improved routing for bicycles
Display a system notification when downloading maps and don't interrupt background downloads
• Added a flashing Track Recording widget
…more details at omaps.org/news

View file

@ -1,8 +1,8 @@
• New OpenStreetMap data as of January 21
Dispay a speed limit sign in the navigation mode
Added Serbian (Cyrillic) and Latvian languages
Android Auto: sort bookmarks, improved location permission request experience
Added tower POIs
• Added a setting for Kayak.com Hotel Links and a first-use opt-out option
• New OpenStreetMap data as of February 27
Ability to manually arrange intermediate route points
Share a single selected track from the list
Improved routing for bicycles
Display a system notification when downloading maps and don't interrupt background downloads
• Added a flashing Track Recording widget
…more details at omaps.org/news

View file

@ -1,8 +1,8 @@
• New OpenStreetMap data as of January 21
Dispay a speed limit sign in the navigation mode
Added Serbian (Cyrillic) and Latvian languages
Android Auto: sort bookmarks, improved location permission request experience
Added tower POIs
• Added a setting for Kayak.com Hotel Links and a first-use opt-out option
• New OpenStreetMap data as of February 27
Ability to manually arrange intermediate route points
Share a single selected track from the list
Improved routing for bicycles
Display a system notification when downloading maps and don't interrupt background downloads
• Added a flashing Track Recording widget
…more details at omaps.org/news

View file

@ -1,8 +1,8 @@
• New OpenStreetMap data as of January 21
Dispay a speed limit sign in the navigation mode
Added Serbian (Cyrillic) and Latvian languages
Android Auto: sort bookmarks, improved location permission request experience
Added tower POIs
• Added a setting for Kayak.com Hotel Links and a first-use opt-out option
• New OpenStreetMap data as of February 27
Ability to manually arrange intermediate route points
Share a single selected track from the list
Improved routing for bicycles
Display a system notification when downloading maps and don't interrupt background downloads
• Added a flashing Track Recording widget
…more details at omaps.org/news

View file

@ -1,8 +1,8 @@
• New OpenStreetMap data as of January 21
Dispay a speed limit sign in the navigation mode
Added Serbian (Cyrillic) and Latvian languages
Android Auto: sort bookmarks, improved location permission request experience
Added tower POIs
• Added a setting for Kayak.com Hotel Links and a first-use opt-out option
• New OpenStreetMap data as of February 27
Ability to manually arrange intermediate route points
Share a single selected track from the list
Improved routing for bicycles
Display a system notification when downloading maps and don't interrupt background downloads
• Added a flashing Track Recording widget
…more details at omaps.org/news

View file

@ -1,8 +1,8 @@
• Нові дані OpenStreetMap від 21 січня
Знак перевищення швидкості підчас навігації
Додано перклади сербською (кирилиця) та латиською мовами
Android Auto: сортування міток, покращено процес запиту на отримання дозволу на розміщення
Вежі відображаються на мапі
• Додано налаштування для посилань до Kayak.com для готелів та демонструється запит при першому використанні
• Нові дані OpenStreetMap від 27 лютого
Можливість вручну розставляти проміжні точки маршруту
Експорт одного вибраного треку зі списку
Покращена маршрутизація для велосипедистів
Додано системне повідомлення під час завантаження карт, фонові завантаження більше не перериваються
• Додано миготливий віджет запису треку
…більше подробиць на omaps.org/news

View file

@ -1,8 +1,8 @@
• New OpenStreetMap data as of January 21
Dispay a speed limit sign in the navigation mode
Added Serbian (Cyrillic) and Latvian languages
Android Auto: sort bookmarks, improved location permission request experience
Added tower POIs
• Added a setting for Kayak.com Hotel Links and a first-use opt-out option
• New OpenStreetMap data as of February 27
Ability to manually arrange intermediate route points
Share a single selected track from the list
Improved routing for bicycles
Display a system notification when downloading maps and don't interrupt background downloads
• Added a flashing Track Recording widget
…more details at omaps.org/news

View file

@ -1,8 +1,8 @@
• New OpenStreetMap data as of January 21
Dispay a speed limit sign in the navigation mode
Added Serbian (Cyrillic) and Latvian languages
Android Auto: sort bookmarks, improved location permission request experience
Added tower POIs
• Added a setting for Kayak.com Hotel Links and a first-use opt-out option
• New OpenStreetMap data as of February 27
Ability to manually arrange intermediate route points
Share a single selected track from the list
Improved routing for bicycles
Display a system notification when downloading maps and don't interrupt background downloads
• Added a flashing Track Recording widget
…more details at omaps.org/news

View file

@ -1,8 +1,8 @@
• New OpenStreetMap data as of January 21
Dispay a speed limit sign in the navigation mode
Added Serbian (Cyrillic) and Latvian languages
Android Auto: sort bookmarks, improved location permission request experience
Added tower POIs
• Added a setting for Kayak.com Hotel Links and a first-use opt-out option
• New OpenStreetMap data as of February 27
Ability to manually arrange intermediate route points
Share a single selected track from the list
Improved routing for bicycles
Display a system notification when downloading maps and don't interrupt background downloads
• Added a flashing Track Recording widget
…more details at omaps.org/news

View file

@ -1,8 +1,8 @@
• New OpenStreetMap data as of January 21
Dispay a speed limit sign in the navigation mode
Added Serbian (Cyrillic) and Latvian languages
Android Auto: sort bookmarks, improved location permission request experience
Added tower POIs
• Added a setting for Kayak.com Hotel Links and a first-use opt-out option
• New OpenStreetMap data as of February 27
Ability to manually arrange intermediate route points
Share a single selected track from the list
Improved routing for bicycles
Display a system notification when downloading maps and don't interrupt background downloads
• Added a flashing Track Recording widget
…more details at omaps.org/news

View file

@ -1,8 +1,8 @@
• New OpenStreetMap data as of January 21
Dispay a speed limit sign in the navigation mode
Added Serbian (Cyrillic) and Latvian languages
Android Auto: sort bookmarks, improved location permission request experience
Added tower POIs
• Added a setting for Kayak.com Hotel Links and a first-use opt-out option
• New OpenStreetMap data as of February 27
Ability to manually arrange intermediate route points
Share a single selected track from the list
Improved routing for bicycles
Display a system notification when downloading maps and don't interrupt background downloads
• Added a flashing Track Recording widget
…more details at omaps.org/news

View file

@ -1 +1 @@
version: 2025.01.26-9-FDroid+25012609
version: 2025.03.02-7-FDroid+25030207

Binary file not shown.

Binary file not shown.

File diff suppressed because it is too large Load diff

View file

@ -52,5 +52,6 @@
@property(nonatomic) MWMMyPositionMode currentPositionMode;
@property(strong, nonatomic) IBOutlet EAGLView * _Nonnull mapView;
@property(strong, nonatomic) IBOutlet UIView * _Nonnull controlsView;
@property(nonatomic) UIView * _Nonnull searchContainer;
@end

View file

@ -148,34 +148,45 @@ NSString *const kSettingsSegue = @"Map2Settings";
- (void)setupPlacePageContainer {
self.placePageContainer = [[TouchTransparentView alloc] initWithFrame:self.view.bounds];
self.placePageContainer.translatesAutoresizingMaskIntoConstraints = NO;
[self.view addSubview:self.placePageContainer];
[self.view bringSubviewToFront:self.placePageContainer];
self.placePageContainer.translatesAutoresizingMaskIntoConstraints = NO;
self.placePageLeadingConstraint = [self.placePageContainer.leadingAnchor constraintEqualToAnchor:self.view.safeAreaLayoutGuide.leadingAnchor constant:kPlacePageLeadingOffset];
self.placePageLeadingConstraint.active = YES;
if (IPAD)
self.placePageLeadingConstraint.priority = UILayoutPriorityDefaultLow;
self.placePageWidthConstraint = [self.placePageContainer.widthAnchor constraintEqualToConstant:0];
self.placePageWidthConstraint = [self.placePageContainer.widthAnchor constraintEqualToConstant:kPlacePageCompactWidth];
self.placePageTrailingConstraint = [self.placePageContainer.trailingAnchor constraintEqualToAnchor:self.view.safeAreaLayoutGuide.trailingAnchor];
[self.placePageContainer.topAnchor constraintEqualToAnchor:self.view.safeAreaLayoutGuide.topAnchor].active = YES;
if (IPAD) {
self.placePageLeadingConstraint.priority = UILayoutPriorityDefaultLow;
[self.placePageContainer.bottomAnchor constraintLessThanOrEqualToAnchor:self.view.bottomAnchor].active = YES;
}
else {
[self.placePageContainer.bottomAnchor constraintEqualToAnchor:self.view.bottomAnchor].active = YES;
}
NSLayoutConstraint * topConstraint = [self.placePageContainer.topAnchor constraintEqualToAnchor:self.view.safeAreaLayoutGuide.topAnchor];
NSLayoutConstraint * bottomConstraint;
if (IPAD)
bottomConstraint = [self.placePageContainer.bottomAnchor constraintLessThanOrEqualToAnchor:self.view.bottomAnchor];
else
bottomConstraint = [self.placePageContainer.bottomAnchor constraintEqualToAnchor:self.view.bottomAnchor];
[NSLayoutConstraint activateConstraints:@[
self.placePageLeadingConstraint,
topConstraint,
bottomConstraint,
]];
[self updatePlacePageContainerConstraints];
}
- (void)setupSearchContainer {
self.searchContainer = [[TouchTransparentView alloc] initWithFrame:self.view.bounds];
[self.view addSubview:self.searchContainer];
[self.view bringSubviewToFront:self.searchContainer];
}
- (void)updatePlacePageContainerConstraints {
const BOOL isLimitedWidth = IPAD || self.traitCollection.verticalSizeClass == UIUserInterfaceSizeClassCompact;
[self.placePageWidthConstraint setConstant:kPlacePageCompactWidth];
if (IPAD && self.searchViewContainer != nil) {
NSLayoutConstraint * leadingToSearchConstraint = [self.placePageContainer.leadingAnchor constraintEqualToAnchor:self.searchViewContainer.trailingAnchor constant:kPlacePageLeadingOffset];
if (IPAD && self.searchView != nil) {
NSLayoutConstraint * leadingToSearchConstraint = [self.placePageContainer.leadingAnchor constraintEqualToAnchor:self.searchView.trailingAnchor constant:kPlacePageLeadingOffset];
leadingToSearchConstraint.priority = UILayoutPriorityDefaultHigh;
leadingToSearchConstraint.active = isLimitedWidth;
}
@ -259,9 +270,6 @@ NSString *const kSettingsSegue = @"Map2Settings";
return;
}
if (self.searchManager.isSearching && type == df::TouchEvent::TOUCH_MOVE)
[self.searchManager setMapIsDragging];
NSArray *allTouches = [[event allTouches] allObjects];
if ([allTouches count] < 1)
return;
@ -273,6 +281,10 @@ NSString *const kSettingsSegue = @"Map2Settings";
UITouch *touch = [allTouches objectAtIndex:0];
CGPoint const pt = [touch locationInView:v];
// **Check if the tap is inside searchView**
if (self.searchManager.isSearching && type == df::TouchEvent::TOUCH_MOVE && !CGRectContainsPoint(self.searchView.frame, pt))
[self.searchManager setMapIsDragging];
e.SetTouchType(type);
df::Touch t0;
@ -372,6 +384,7 @@ NSString *const kSettingsSegue = @"Map2Settings";
- (void)viewDidLoad {
[super viewDidLoad];
[self setupPlacePageContainer];
[self setupSearchContainer];
if (@available(iOS 14.0, *))
[self setupTrackPadGestureRecognizers];
@ -726,11 +739,11 @@ NSString *const kSettingsSegue = @"Map2Settings";
- (SearchOnMapManager *)searchManager {
if (!_searchManager)
_searchManager = [[SearchOnMapManager alloc] initWithNavigationController:self.navigationController];
_searchManager = [[SearchOnMapManager alloc] init];
return _searchManager;
}
- (UIView * _Nullable)searchViewContainer {
- (UIView * _Nullable)searchView {
return self.searchManager.viewController.view;
}

View file

@ -61,7 +61,7 @@ using Observers = NSHashTable<Observer>;
- (void)searchEverywhere {
self.lastSearchTimestamp += 1;
NSUInteger const timestamp = self.lastSearchTimestamp;
search::EverywhereSearchParams params{
m_query, m_locale, {} /* default timeout */, m_isCategory,
// m_onResults
@ -156,6 +156,7 @@ using Observers = NSHashTable<Observer>;
+ (void)showResultAtIndex:(NSUInteger)index {
auto const & result = [MWMSearch manager]->m_everywhereResults[index];
GetFramework().StopLocationFollow();
GetFramework().SelectSearchResult(result, true);
}
@ -168,8 +169,13 @@ using Observers = NSHashTable<Observer>;
+ (void)showEverywhereSearchResultsOnMap {
MWMSearch * manager = [MWMSearch manager];
if (![MWMRouter isRoutingActive])
GetFramework().ShowSearchResults(manager->m_everywhereResults);
if (![MWMRouter isRoutingActive]) {
auto const & results = manager->m_everywhereResults;
if (results.GetCount() == 1)
[self showResultAtIndex:0];
else
GetFramework().ShowSearchResults(manager->m_everywhereResults);
}
}
+ (void)showViewportSearchResultsOnMap {

View file

@ -1,5 +1,6 @@
enum SearchStyleSheet: String, CaseIterable {
case searchHeader
case searchCancelButton
case searchInstallButton = "SearchInstallButton"
case searchBanner = "SearchBanner"
case searchClosedBackground = "SearchClosedBackground"
@ -103,6 +104,13 @@ extension SearchStyleSheet: IStyleSheet {
return .addFrom(GlobalStyleSheet.tableCell) { s in
s.backgroundColor = colors.transparentGreen
}
case .searchCancelButton:
return .add { s in
s.fontColor = colors.whitePrimaryText
s.fontColorHighlighted = colors.whitePrimaryTextHighlighted
s.font = fonts.regular17
s.backgroundColor = .clear
}
}
}
}

View file

@ -495,16 +495,11 @@
ED70D55C2D5396F300738C1E /* SearchResult.mm in Sources */ = {isa = PBXBuildFile; fileRef = ED70D55A2D5396F300738C1E /* SearchResult.mm */; };
ED70D5892D539A2500738C1E /* SearchOnMapViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = ED70D5872D539A2500738C1E /* SearchOnMapViewController.swift */; };
ED70D58A2D539A2500738C1E /* SearchOnMapModels.swift in Sources */ = {isa = PBXBuildFile; fileRef = ED70D5852D539A2500738C1E /* SearchOnMapModels.swift */; };
ED70D58B2D539A2500738C1E /* SearchOnMapModalTransitionManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = ED70D57E2D539A2500738C1E /* SearchOnMapModalTransitionManager.swift */; };
ED70D58C2D539A2500738C1E /* SearchOnMapPresenter.swift in Sources */ = {isa = PBXBuildFile; fileRef = ED70D5862D539A2500738C1E /* SearchOnMapPresenter.swift */; };
ED70D58D2D539A2500738C1E /* ModalScreenPresentationStep.swift in Sources */ = {isa = PBXBuildFile; fileRef = ED70D57C2D539A2500738C1E /* ModalScreenPresentationStep.swift */; };
ED70D58E2D539A2500738C1E /* SideMenuPresentationAnimator.swift in Sources */ = {isa = PBXBuildFile; fileRef = ED70D5802D539A2500738C1E /* SideMenuPresentationAnimator.swift */; };
ED70D58F2D539A2500738C1E /* SearchOnMapInteractor.swift in Sources */ = {isa = PBXBuildFile; fileRef = ED70D5832D539A2500738C1E /* SearchOnMapInteractor.swift */; };
ED70D5902D539A2500738C1E /* SearchOnMapModalPresentationController.swift in Sources */ = {isa = PBXBuildFile; fileRef = ED70D57D2D539A2500738C1E /* SearchOnMapModalPresentationController.swift */; };
ED70D5912D539A2500738C1E /* MapPassthroughView.swift in Sources */ = {isa = PBXBuildFile; fileRef = ED70D57B2D539A2500738C1E /* MapPassthroughView.swift */; };
ED70D5922D539A2500738C1E /* PlaceholderView.swift in Sources */ = {isa = PBXBuildFile; fileRef = ED70D5822D539A2500738C1E /* PlaceholderView.swift */; };
ED70D5932D539A2500738C1E /* SearchOnMapManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = ED70D5842D539A2500738C1E /* SearchOnMapManager.swift */; };
ED70D5942D539A2500738C1E /* SideMenuDismissalAnimator.swift in Sources */ = {isa = PBXBuildFile; fileRef = ED70D57F2D539A2500738C1E /* SideMenuDismissalAnimator.swift */; };
ED77556E2C2C490B0051E656 /* UIAlertController+openInAppActionSheet.swift in Sources */ = {isa = PBXBuildFile; fileRef = ED77556D2C2C490B0051E656 /* UIAlertController+openInAppActionSheet.swift */; };
ED79A5AB2BD7AA9C00952D1F /* LoadingOverlayViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = ED79A5AA2BD7AA9C00952D1F /* LoadingOverlayViewController.swift */; };
ED79A5AD2BD7BA0F00952D1F /* UIApplication+LoadingOverlay.swift in Sources */ = {isa = PBXBuildFile; fileRef = ED79A5AC2BD7BA0F00952D1F /* UIApplication+LoadingOverlay.swift */; };
@ -525,6 +520,7 @@
ED9857082C4ED02D00694F6C /* MailComposer.swift in Sources */ = {isa = PBXBuildFile; fileRef = ED9857072C4ED02D00694F6C /* MailComposer.swift */; };
ED9966802B94FBC20083CE55 /* ColorPicker.swift in Sources */ = {isa = PBXBuildFile; fileRef = ED99667D2B94FBC20083CE55 /* ColorPicker.swift */; };
EDA1EAA42CC7ECAD00DBDCAA /* ElevationProfileFormatter.swift in Sources */ = {isa = PBXBuildFile; fileRef = EDA1EAA32CC7ECAD00DBDCAA /* ElevationProfileFormatter.swift */; };
EDB71D5C2D82B4F8004A6A7F /* SearchOnMapPresentationController.swift in Sources */ = {isa = PBXBuildFile; fileRef = EDB71D5B2D82B4F8004A6A7F /* SearchOnMapPresentationController.swift */; };
EDBD68072B625724005DD151 /* LocationServicesDisabledAlert.xib in Resources */ = {isa = PBXBuildFile; fileRef = EDBD68062B625724005DD151 /* LocationServicesDisabledAlert.xib */; };
EDBD680B2B62572E005DD151 /* LocationServicesDisabledAlert.swift in Sources */ = {isa = PBXBuildFile; fileRef = EDBD680A2B62572E005DD151 /* LocationServicesDisabledAlert.swift */; };
EDC3573B2B7B5029001AE9CA /* CALayer+SetCorner.swift in Sources */ = {isa = PBXBuildFile; fileRef = EDC3573A2B7B5029001AE9CA /* CALayer+SetCorner.swift */; };
@ -1459,12 +1455,7 @@
ED70D5592D5396F300738C1E /* SearchResult.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SearchResult.h; sourceTree = "<group>"; };
ED70D55A2D5396F300738C1E /* SearchResult.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; path = SearchResult.mm; sourceTree = "<group>"; };
ED70D55B2D5396F300738C1E /* SearchResult+Core.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "SearchResult+Core.h"; sourceTree = "<group>"; };
ED70D57B2D539A2500738C1E /* MapPassthroughView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MapPassthroughView.swift; sourceTree = "<group>"; };
ED70D57C2D539A2500738C1E /* ModalScreenPresentationStep.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ModalScreenPresentationStep.swift; sourceTree = "<group>"; };
ED70D57D2D539A2500738C1E /* SearchOnMapModalPresentationController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SearchOnMapModalPresentationController.swift; sourceTree = "<group>"; };
ED70D57E2D539A2500738C1E /* SearchOnMapModalTransitionManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SearchOnMapModalTransitionManager.swift; sourceTree = "<group>"; };
ED70D57F2D539A2500738C1E /* SideMenuDismissalAnimator.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SideMenuDismissalAnimator.swift; sourceTree = "<group>"; };
ED70D5802D539A2500738C1E /* SideMenuPresentationAnimator.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SideMenuPresentationAnimator.swift; sourceTree = "<group>"; };
ED70D5822D539A2500738C1E /* PlaceholderView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PlaceholderView.swift; sourceTree = "<group>"; };
ED70D5832D539A2500738C1E /* SearchOnMapInteractor.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SearchOnMapInteractor.swift; sourceTree = "<group>"; };
ED70D5842D539A2500738C1E /* SearchOnMapManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SearchOnMapManager.swift; sourceTree = "<group>"; };
@ -1491,6 +1482,7 @@
ED9857072C4ED02D00694F6C /* MailComposer.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MailComposer.swift; sourceTree = "<group>"; };
ED99667D2B94FBC20083CE55 /* ColorPicker.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ColorPicker.swift; sourceTree = "<group>"; };
EDA1EAA32CC7ECAD00DBDCAA /* ElevationProfileFormatter.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ElevationProfileFormatter.swift; sourceTree = "<group>"; };
EDB71D5B2D82B4F8004A6A7F /* SearchOnMapPresentationController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SearchOnMapPresentationController.swift; sourceTree = "<group>"; };
EDBD68062B625724005DD151 /* LocationServicesDisabledAlert.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = LocationServicesDisabledAlert.xib; sourceTree = "<group>"; };
EDBD680A2B62572E005DD151 /* LocationServicesDisabledAlert.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LocationServicesDisabledAlert.swift; sourceTree = "<group>"; };
EDC3573A2B7B5029001AE9CA /* CALayer+SetCorner.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "CALayer+SetCorner.swift"; sourceTree = "<group>"; };
@ -3233,12 +3225,8 @@
ED70D5812D539A2500738C1E /* Presentation */ = {
isa = PBXGroup;
children = (
ED70D57B2D539A2500738C1E /* MapPassthroughView.swift */,
ED70D57C2D539A2500738C1E /* ModalScreenPresentationStep.swift */,
ED70D57D2D539A2500738C1E /* SearchOnMapModalPresentationController.swift */,
ED70D57E2D539A2500738C1E /* SearchOnMapModalTransitionManager.swift */,
ED70D57F2D539A2500738C1E /* SideMenuDismissalAnimator.swift */,
ED70D5802D539A2500738C1E /* SideMenuPresentationAnimator.swift */,
EDB71D5B2D82B4F8004A6A7F /* SearchOnMapPresentationController.swift */,
);
path = Presentation;
sourceTree = "<group>";
@ -4431,6 +4419,7 @@
99012853244732DB00C72B10 /* BottomTabBarInteractor.swift in Sources */,
6741A9A31BF340DE002C974C /* main.mm in Sources */,
34D3B04F1E38A20C004100F9 /* Bundle+Init.swift in Sources */,
EDB71D5C2D82B4F8004A6A7F /* SearchOnMapPresentationController.swift in Sources */,
34AB666E1FC5AA330078E451 /* TransportTransitStepsCollectionView.swift in Sources */,
993DF11E23F6BDB100AC231A /* UITextViewRenderer.swift in Sources */,
F6E2FF5A1E097BA00083EBEC /* MWMNightModeController.m in Sources */,
@ -4755,16 +4744,11 @@
3404755C1E081A4600C92850 /* MWMLocationManager.mm in Sources */,
ED70D5892D539A2500738C1E /* SearchOnMapViewController.swift in Sources */,
ED70D58A2D539A2500738C1E /* SearchOnMapModels.swift in Sources */,
ED70D58B2D539A2500738C1E /* SearchOnMapModalTransitionManager.swift in Sources */,
ED70D58C2D539A2500738C1E /* SearchOnMapPresenter.swift in Sources */,
ED70D58D2D539A2500738C1E /* ModalScreenPresentationStep.swift in Sources */,
ED70D58E2D539A2500738C1E /* SideMenuPresentationAnimator.swift in Sources */,
ED70D58F2D539A2500738C1E /* SearchOnMapInteractor.swift in Sources */,
ED70D5902D539A2500738C1E /* SearchOnMapModalPresentationController.swift in Sources */,
ED70D5912D539A2500738C1E /* MapPassthroughView.swift in Sources */,
ED70D5922D539A2500738C1E /* PlaceholderView.swift in Sources */,
ED70D5932D539A2500738C1E /* SearchOnMapManager.swift in Sources */,
ED70D5942D539A2500738C1E /* SideMenuDismissalAnimator.swift in Sources */,
3454D7BC1E07F045004AF2AD /* CLLocation+Mercator.mm in Sources */,
47E3C7272111E5A8008B3B27 /* AlertPresentationController.swift in Sources */,
CDCA27812243F59800167D87 /* CarPlayRouter.swift in Sources */,

View file

@ -12,8 +12,7 @@ final class SearchOnMapTests: XCTestCase {
override func setUp() {
super.setUp()
searchManager = SearchManagerMock.self
presenter = SearchOnMapPresenter(transitionManager: SearchOnMapModalTransitionManager(),
isRouting: false,
presenter = SearchOnMapPresenter(isRouting: false,
didChangeState: { [weak self] in self?.currentState = $0 })
interactor = SearchOnMapInteractor(presenter: presenter, searchManager: searchManager)
view = SearchOnMapViewMock()
@ -217,11 +216,14 @@ final class SearchOnMapTests: XCTestCase {
// MARK: - Mocks
private class SearchOnMapViewMock: SearchOnMapView {
var viewModel: SearchOnMap.ViewModel = .initial
var scrollViewDelegate: (any SearchOnMapScrollViewDelegate)?
func render(_ viewModel: SearchOnMap.ViewModel) {
self.viewModel = viewModel
}
func close() {
}
}
private class SearchManagerMock: SearchManager {

View file

@ -1,30 +0,0 @@
/// A transparent view that allows touch events to pass through to the MapViewController's view.
///
/// This view is used to enable interaction with the underlying map while still maintaining a
/// transparent overlay. It does not block touch events but forwards them to the specified `passingView`.
final class MapPassthroughView: UIView {
private weak var passingView: UIView?
init(passingView: UIView) {
self.passingView = passingView
super.init(frame: passingView.bounds)
self.autoresizingMask = [.flexibleWidth, .flexibleHeight]
self.alpha = 0
}
@available(*, unavailable)
required init?(coder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
override func hitTest(_ point: CGPoint, with event: UIEvent?) -> UIView? {
guard let passingView else { return nil }
let pointInPassthroughView = passingView.convert(point, from: self)
super.hitTest(point, with: event)
if passingView.bounds.contains(pointInPassthroughView) {
return MapViewController.shared()?.view.hitTest(point, with: event)
}
return nil
}
}

View file

@ -48,10 +48,11 @@ extension ModalScreenPresentationStep {
.compact
}
func frame(for viewController: UIViewController, in containerView: UIView) -> CGRect {
func frame() -> CGRect {
let isIPad = UIDevice.current.userInterfaceIdiom == .pad
let containerSize = containerView.bounds.size
let safeAreaInsets = containerView.safeAreaInsets
let containerSize = UIScreen.main.bounds.size
let safeAreaInsets = UIApplication.shared.keyWindow?.safeAreaInsets ?? .zero
let traitCollection = UIScreen.main.traitCollection
var frame = CGRect(origin: .zero, size: containerSize)
if isIPad {
@ -65,7 +66,7 @@ extension ModalScreenPresentationStep {
return frame
}
let isPortraitOrientation = viewController.traitCollection.verticalSizeClass == .regular
let isPortraitOrientation = traitCollection.verticalSizeClass == .regular
if isPortraitOrientation {
switch self {
case .fullScreen:

View file

@ -1,21 +0,0 @@
@objc
final class SearchOnMapModalTransitionManager: NSObject, UIViewControllerTransitioningDelegate {
weak var presentationController: SearchOnMapModalPresentationView?
func animationController(forPresented presented: UIViewController, presenting: UIViewController, source: UIViewController) -> (any UIViewControllerAnimatedTransitioning)? {
isIPad ? SideMenuPresentationAnimator() : nil
}
func animationController(forDismissed dismissed: UIViewController) -> (any UIViewControllerAnimatedTransitioning)? {
isIPad ? SideMenuDismissalAnimator() : nil
}
func presentationController(forPresented presented: UIViewController,
presenting: UIViewController?,
source: UIViewController) -> UIPresentationController? {
let presentationController = SearchOnMapModalPresentationController(presentedViewController: presented, presenting: presenting)
self.presentationController = presentationController
return presentationController
}
}

View file

@ -2,14 +2,10 @@ protocol ModallyPresentedViewController {
func translationYDidUpdate(_ translationY: CGFloat)
}
protocol SearchOnMapModalPresentationView: AnyObject {
func setPresentationStep(_ step: ModalScreenPresentationStep)
func close()
}
final class SearchOnMapModalPresentationController: UIPresentationController {
final class SearchOnMapPresentationController: NSObject {
private enum StepChangeAnimation {
case none
case slide
case slideAndBounce
}
@ -26,83 +22,84 @@ final class SearchOnMapModalPresentationController: UIPresentationController {
static let panGestureThreshold: CGFloat = 5
}
private var initialTranslationY: CGFloat = 0
private weak var interactor: SearchOnMapInteractor? {
(presentedViewController as? SearchOnMapViewController)?.interactor
}
// TODO: replace with set of steps passed from the outside
private var initialTranslationY: CGFloat = .zero
private weak var interactor: SearchOnMapInteractor? { presentedViewController?.interactor }
// TODO: (KK) replace with set of steps passed from the outside
private var presentationStep: ModalScreenPresentationStep = .fullScreen
private var internalScrollViewContentOffset: CGFloat = 0
private var internalScrollViewContentOffset: CGFloat = .zero
private var maxAvailableFrameOfPresentedView: CGRect = .zero
// MARK: - Init
override init(presentedViewController: UIViewController, presenting presentingViewController: UIViewController?) {
super.init(presentedViewController: presentedViewController, presenting: presentingViewController)
private weak var presentedViewController: SearchOnMapViewController?
private weak var parentViewController: UIViewController?
private weak var containerView: UIView?
init(parentViewController: UIViewController,
containerView: UIView) {
self.parentViewController = parentViewController
self.containerView = containerView
}
func setViewController(_ viewController: SearchOnMapViewController) {
self.presentedViewController = viewController
guard let containerView, let parentViewController else { return }
containerView.addSubview(viewController.view)
parentViewController.addChild(viewController)
viewController.view.frame = frameOfPresentedViewInContainerView
viewController.didMove(toParent: parentViewController)
iPhoneSpecific {
let panGestureRecognizer = UIPanGestureRecognizer(target: self, action: #selector(handlePan(_:)))
panGestureRecognizer.delegate = self
presentedViewController.view.addGestureRecognizer(panGestureRecognizer)
if let presentedViewController = presentedViewController as? SearchOnMapView {
presentedViewController.scrollViewDelegate = self
}
viewController.view.addGestureRecognizer(panGestureRecognizer)
viewController.scrollViewDelegate = self
}
animateTo(.hidden, animation: .none)
}
func show() {
interactor?.handle(.openSearch)
}
func close() {
guard let presentedViewController else { return }
presentedViewController.willMove(toParent: nil)
animateTo(.hidden) {
presentedViewController.view.removeFromSuperview()
presentedViewController.removeFromParent()
}
}
// MARK: - Lifecycle
override func containerViewWillLayoutSubviews() {
super.containerViewWillLayoutSubviews()
presentedView?.frame = frameOfPresentedViewInContainerView
}
override func presentationTransitionWillBegin() {
guard let containerView else { return }
containerView.backgroundColor = .clear
let passThroughView = MapPassthroughView(passingView: containerView)
containerView.addSubview(passThroughView)
}
override func presentationTransitionDidEnd(_ completed: Bool) {
translationYDidUpdate(presentedView?.frame.origin.y ?? 0)
}
override func dismissalTransitionDidEnd(_ completed: Bool) {
super.dismissalTransitionDidEnd(completed)
if completed {
presentedView?.removeFromSuperview()
}
}
override func traitCollectionDidChange(_ previousTraitCollection: UITraitCollection?) {
super.traitCollectionDidChange(previousTraitCollection)
updateMaxAvailableFrameOfPresentedView()
func setPresentationStep(_ step: ModalScreenPresentationStep) {
guard presentationStep != step else { return }
animateTo(step)
}
// MARK: - Layout
override var frameOfPresentedViewInContainerView: CGRect {
guard let containerView else { return .zero }
let frame = presentationStep.frame(for: presentedViewController, in: containerView)
func traitCollectionDidChange(_ previousTraitCollection: UITraitCollection?) {
presentedViewController?.view.frame = frameOfPresentedViewInContainerView
presentedViewController?.view.layoutIfNeeded()
}
private var frameOfPresentedViewInContainerView: CGRect {
updateMaxAvailableFrameOfPresentedView()
let frame = presentationStep.frame()
return frame
}
private func updateMaxAvailableFrameOfPresentedView() {
guard let containerView else { return }
maxAvailableFrameOfPresentedView = ModalScreenPresentationStep.fullScreen.frame(for: presentedViewController, in: containerView)
maxAvailableFrameOfPresentedView = ModalScreenPresentationStep.fullScreen.frame()
}
private func updateSideButtonsAvailableArea(_ newY: CGFloat) {
iPhoneSpecific {
guard presentedViewController.traitCollection.verticalSizeClass != .compact else { return }
var sideButtonsAvailableArea = MWMSideButtons.getAvailableArea()
sideButtonsAvailableArea.size.height = newY - sideButtonsAvailableArea.origin.y
MWMSideButtons.updateAvailableArea(sideButtonsAvailableArea)
}
guard presentedViewController?.traitCollection.verticalSizeClass != .compact else { return }
var sideButtonsAvailableArea = MWMSideButtons.getAvailableArea()
sideButtonsAvailableArea.size.height = newY - sideButtonsAvailableArea.origin.y
MWMSideButtons.updateAvailableArea(sideButtonsAvailableArea)
}
// MARK: - Pan gesture handling
@objc private func handlePan(_ gesture: UIPanGestureRecognizer) {
guard let presentedView, maxAvailableFrameOfPresentedView != .zero else { return }
guard let presentedViewController, let presentedView = presentedViewController.view else { return }
interactor?.handle(.didStartDraggingSearch)
let translation = gesture.translation(in: presentedView)
@ -114,7 +111,6 @@ final class SearchOnMapModalPresentationController: UIPresentationController {
case .changed:
let newY = max(max(initialTranslationY + translation.y, 0), maxAvailableFrameOfPresentedView.origin.y)
presentedView.frame.origin.y = newY
updateSideButtonsAvailableArea(newY)
translationYDidUpdate(newY)
case .ended:
let nextStep: ModalScreenPresentationStep
@ -142,15 +138,19 @@ final class SearchOnMapModalPresentationController: UIPresentationController {
}
}
private func animateTo(_ presentationStep: ModalScreenPresentationStep, animation: StepChangeAnimation = .slide) {
guard let presentedView, let containerView else { return }
private func animateTo(_ presentationStep: ModalScreenPresentationStep, animation: StepChangeAnimation = .slide, completion: (() -> Void)? = nil) {
guard let presentedViewController, let presentedView = presentedViewController.view else { return }
self.presentationStep = presentationStep
interactor?.handle(.didUpdatePresentationStep(presentationStep))
let updatedFrame = presentationStep.frame(for: presentedViewController, in: containerView)
let updatedFrame = presentationStep.frame()
let targetYTranslation = updatedFrame.origin.y
switch animation {
case .none:
presentedView.frame = updatedFrame
translationYDidUpdate(targetYTranslation)
completion?()
case .slide:
UIView.animate(withDuration: Constants.animationDuration,
delay: 0,
@ -158,8 +158,9 @@ final class SearchOnMapModalPresentationController: UIPresentationController {
animations: { [weak self] in
presentedView.frame = updatedFrame
self?.translationYDidUpdate(targetYTranslation)
self?.updateSideButtonsAvailableArea(targetYTranslation)
})
}) { _ in
completion?()
}
case .slideAndBounce:
UIView.animate(withDuration: Constants.animationDuration,
delay: 0,
@ -169,37 +170,25 @@ final class SearchOnMapModalPresentationController: UIPresentationController {
animations: { [weak self] in
presentedView.frame = updatedFrame
self?.translationYDidUpdate(targetYTranslation)
self?.updateSideButtonsAvailableArea(targetYTranslation)
})
}) { _ in
completion?()
}
}
}
}
// MARK: - SearchOnMapModalPresentationView
extension SearchOnMapModalPresentationController: SearchOnMapModalPresentationView {
func setPresentationStep(_ step: ModalScreenPresentationStep) {
guard presentationStep != step else { return }
animateTo(step)
}
func close() {
guard let containerView else { return }
updateSideButtonsAvailableArea(containerView.frame.height)
presentedViewController.dismiss(animated: true)
}
}
// MARK: - ModallyPresentedViewController
extension SearchOnMapModalPresentationController: ModallyPresentedViewController {
extension SearchOnMapPresentationController: ModallyPresentedViewController {
func translationYDidUpdate(_ translationY: CGFloat) {
iPhoneSpecific {
(presentedViewController as? SearchOnMapViewController)?.translationYDidUpdate(translationY)
presentedViewController?.translationYDidUpdate(translationY)
updateSideButtonsAvailableArea(translationY)
}
}
}
// MARK: - UIGestureRecognizerDelegate
extension SearchOnMapModalPresentationController: UIGestureRecognizerDelegate {
extension SearchOnMapPresentationController: UIGestureRecognizerDelegate {
func gestureRecognizerShouldBegin(_ gestureRecognizer: UIGestureRecognizer) -> Bool {
true
}
@ -211,9 +200,9 @@ extension SearchOnMapModalPresentationController: UIGestureRecognizerDelegate {
}
// MARK: - SearchOnMapScrollViewDelegate
extension SearchOnMapModalPresentationController: SearchOnMapScrollViewDelegate {
extension SearchOnMapPresentationController: SearchOnMapScrollViewDelegate {
func scrollViewDidScroll(_ scrollView: UIScrollView) {
guard let presentedView else { return }
guard let presentedViewController, let presentedView = presentedViewController.view else { return }
let hasReachedTheTop = Int(presentedView.frame.origin.y) > Int(maxAvailableFrameOfPresentedView.origin.y)
let hasZeroContentOffset = internalScrollViewContentOffset == 0
if hasReachedTheTop && hasZeroContentOffset {

View file

@ -1,22 +0,0 @@
final class SideMenuDismissalAnimator: NSObject, UIViewControllerAnimatedTransitioning {
func transitionDuration(using transitionContext: UIViewControllerContextTransitioning?) -> TimeInterval {
return kDefaultAnimationDuration / 2
}
func animateTransition(using transitionContext: UIViewControllerContextTransitioning) {
guard let fromVC = transitionContext.viewController(forKey: .from) else { return }
let initialFrame = transitionContext.initialFrame(for: fromVC)
let targetFrame = initialFrame.offsetBy(dx: -initialFrame.width, dy: 0)
UIView.animate(withDuration: transitionDuration(using: transitionContext),
delay: .zero,
options: .curveEaseIn,
animations: {
fromVC.view.frame = targetFrame
},
completion: {
fromVC.view.removeFromSuperview()
transitionContext.completeTransition($0)
})
}
}

View file

@ -1,25 +0,0 @@
final class SideMenuPresentationAnimator: NSObject, UIViewControllerAnimatedTransitioning {
func transitionDuration(using transitionContext: UIViewControllerContextTransitioning?) -> TimeInterval {
return kDefaultAnimationDuration / 2
}
func animateTransition(using transitionContext: UIViewControllerContextTransitioning) {
guard let toVC = transitionContext.viewController(forKey: .to) else { return }
let containerView = transitionContext.containerView
let finalFrame = transitionContext.finalFrame(for: toVC)
let originFrame = finalFrame.offsetBy(dx: -finalFrame.width, dy: 0)
containerView.addSubview(toVC.view)
toVC.view.frame = originFrame
toVC.view.autoresizingMask = [.flexibleWidth, .flexibleHeight]
UIView.animate(withDuration: transitionDuration(using: transitionContext),
delay: .zero,
options: .curveEaseOut,
animations: {
toVC.view.frame = finalFrame
},
completion: {
transitionContext.completeTransition($0)
})
}
}

View file

@ -19,6 +19,7 @@ final class SearchOnMapHeaderView: UIView {
private let grabberView = UIView()
private let searchBar = UISearchBar()
private let cancelButton = UIButton()
private let cancelContainer = UIView()
override init(frame: CGRect) {
super.init(frame: frame)
@ -59,8 +60,8 @@ final class SearchOnMapHeaderView: UIView {
}
private func setupCancelButton() {
cancelButton.tintColor = .whitePrimaryText()
cancelButton.setStyle(.clearBackground)
cancelContainer.setStyle(.primaryBackground)
cancelButton.setStyle(.searchCancelButton)
cancelButton.setTitle(L("cancel"), for: .normal)
cancelButton.addTarget(self, action: #selector(cancelButtonTapped), for: .touchUpInside)
}
@ -68,10 +69,12 @@ final class SearchOnMapHeaderView: UIView {
private func layoutView() {
addSubview(grabberView)
addSubview(searchBar)
addSubview(cancelButton)
addSubview(cancelContainer)
cancelContainer.addSubview(cancelButton)
grabberView.translatesAutoresizingMaskIntoConstraints = false
searchBar.translatesAutoresizingMaskIntoConstraints = false
cancelContainer.translatesAutoresizingMaskIntoConstraints = false
cancelButton.translatesAutoresizingMaskIntoConstraints = false
NSLayoutConstraint.activate([
@ -82,10 +85,16 @@ final class SearchOnMapHeaderView: UIView {
searchBar.topAnchor.constraint(equalTo: grabberView.bottomAnchor),
searchBar.leadingAnchor.constraint(equalTo: leadingAnchor),
searchBar.trailingAnchor.constraint(equalTo: cancelButton.leadingAnchor, constant: -Constants.cancelButtonInsets.left),
searchBar.trailingAnchor.constraint(equalTo: cancelContainer.leadingAnchor),
cancelButton.centerYAnchor.constraint(equalTo: searchBar.centerYAnchor),
cancelButton.trailingAnchor.constraint(equalTo: trailingAnchor, constant: -Constants.cancelButtonInsets.right),
cancelContainer.trailingAnchor.constraint(equalTo: trailingAnchor),
cancelContainer.topAnchor.constraint(equalTo: searchBar.topAnchor),
cancelContainer.bottomAnchor.constraint(equalTo: searchBar.bottomAnchor),
cancelButton.topAnchor.constraint(equalTo: cancelContainer.topAnchor),
cancelButton.leadingAnchor.constraint(equalTo: cancelContainer.leadingAnchor, constant: Constants.cancelButtonInsets.left),
cancelButton.trailingAnchor.constraint(equalTo: cancelContainer.trailingAnchor, constant: -Constants.cancelButtonInsets.right),
cancelButton.bottomAnchor.constraint(equalTo: cancelContainer.bottomAnchor),
bottomAnchor.constraint(equalTo: searchBar.bottomAnchor)
])

View file

@ -70,12 +70,12 @@ final class SearchOnMapInteractor: NSObject {
searchManager.saveQuery(searchText.text,
forInputLocale: searchText.locale)
showResultsOnMap = true
searchManager.showEverywhereSearchResultsOnMap()
return .showOnTheMap
}
private func processTypedText(_ searchText: SearchOnMap.SearchText) -> SearchOnMap.Response {
isUpdatesDisabled = false
showResultsOnMap = true
searchManager.searchQuery(searchText.text,
forInputLocale: searchText.locale,
withCategory: false)

View file

@ -19,16 +19,14 @@ protocol SearchOnMapManagerObserver: AnyObject {
@objcMembers
final class SearchOnMapManager: NSObject {
private let navigationController: UINavigationController
private weak var interactor: SearchOnMapInteractor?
private var interactor: SearchOnMapInteractor? { viewController?.interactor }
private let observers = ListenerContainer<SearchOnMapManagerObserver>()
// MARK: - Public properties
weak var viewController: UIViewController?
weak var viewController: SearchOnMapViewController?
var isSearching: Bool { viewController != nil }
init(navigationController: UINavigationController = MapViewController.shared()!.navigationController!) {
self.navigationController = navigationController
override init() {
super.init()
}
// MARK: - Public methods
@ -38,10 +36,9 @@ final class SearchOnMapManager: NSObject {
return
}
FrameworkHelper.deactivateMapSelection()
let viewController = buildViewController(isRouting: isRouting)
let viewController = SearchOnMapViewControllerBuilder.build(isRouting: isRouting,
didChangeState: notifyObservers)
self.viewController = viewController
self.interactor = viewController.interactor
navigationController.present(viewController, animated: true)
}
func hide() {
@ -77,20 +74,23 @@ final class SearchOnMapManager: NSObject {
observers.removeListener(observer)
}
// MARK: - Private methods
private func buildViewController(isRouting: Bool) -> SearchOnMapViewController {
let transitioningManager = SearchOnMapModalTransitionManager()
let presenter = SearchOnMapPresenter(transitionManager: transitioningManager,
isRouting: isRouting,
didChangeState: { [weak self] state in
guard let self else { return }
self.observers.forEach { observer in observer.searchManager(didChangeState: state) }
})
private func notifyObservers(_ state: SearchOnMapState) {
observers.forEach { observer in observer.searchManager(didChangeState: state) }
}
}
private struct SearchOnMapViewControllerBuilder {
static func build(isRouting: Bool, didChangeState: @escaping ((SearchOnMapState) -> Void)) -> SearchOnMapViewController {
let mapViewController = MapViewController.shared()!
let presentationController = SearchOnMapPresentationController(parentViewController: mapViewController,
containerView: mapViewController.searchContainer)
let viewController = SearchOnMapViewController(presentationController: presentationController)
let presenter = SearchOnMapPresenter(isRouting: isRouting,
didChangeState: didChangeState)
let interactor = SearchOnMapInteractor(presenter: presenter)
let viewController = SearchOnMapViewController(interactor: interactor)
presenter.view = viewController
viewController.modalPresentationStyle = .custom
viewController.transitioningDelegate = transitioningManager
viewController.interactor = interactor
presentationController.show()
return viewController
}
}

View file

@ -3,7 +3,6 @@ final class SearchOnMapPresenter {
typealias ViewModel = SearchOnMap.ViewModel
weak var view: SearchOnMapView?
weak var presentationView: SearchOnMapModalPresentationView? { transitionManager.presentationController }
private var searchState: SearchOnMapState = .searching {
didSet {
@ -12,13 +11,11 @@ final class SearchOnMapPresenter {
}
}
private let transitionManager: SearchOnMapModalTransitionManager
private var viewModel: ViewModel = .initial
private var isRouting: Bool
private var didChangeState: ((SearchOnMapState) -> Void)?
init(transitionManager: SearchOnMapModalTransitionManager, isRouting: Bool, didChangeState: ((SearchOnMapState) -> Void)?) {
self.transitionManager = transitionManager
init(isRouting: Bool, didChangeState: ((SearchOnMapState) -> Void)?) {
self.isRouting = isRouting
self.didChangeState = didChangeState
didChangeState?(searchState)
@ -28,8 +25,8 @@ final class SearchOnMapPresenter {
guard response != .none else { return }
if response == .close {
view?.close()
searchState = .closed
presentationView?.close()
return
}
@ -43,7 +40,6 @@ final class SearchOnMapPresenter {
viewModel = newViewModel
view?.render(newViewModel)
searchState = newViewModel.presentationStep.searchState
presentationView?.setPresentationStep(newViewModel.presentationStep)
}
}
@ -97,6 +93,9 @@ final class SearchOnMapPresenter {
viewModel.isTyping = false
viewModel.presentationStep = .compact
case .updatePresentationStep(let step):
if step == .hidden {
viewModel.isTyping = false
}
viewModel.presentationStep = step
case .close, .none:
break

View file

@ -2,6 +2,7 @@ protocol SearchOnMapView: AnyObject {
var scrollViewDelegate: SearchOnMapScrollViewDelegate? { get set }
func render(_ viewModel: SearchOnMap.ViewModel)
func close()
}
@objc
@ -15,16 +16,13 @@ final class SearchOnMapViewController: UIViewController {
typealias SearchText = SearchOnMap.SearchText
fileprivate enum Constants {
static let categoriesHeight: CGFloat = 100
static let filtersHeight: CGFloat = 50
static let keyboardAnimationDuration: CGFloat = 0.3
static let cancelButtonInsets: UIEdgeInsets = UIEdgeInsets(top: 0, left: 6, bottom: 0, right: 8)
static let estimatedRowHeight: CGFloat = 80
}
let interactor: SearchOnMapInteractor
var interactor: SearchOnMapInteractor?
var modalPresentationController: SearchOnMapPresentationController?
weak var scrollViewDelegate: SearchOnMapScrollViewDelegate?
private var searchResults = SearchOnMap.SearchResults([])
// MARK: - UI Elements
@ -32,21 +30,16 @@ final class SearchOnMapViewController: UIViewController {
private let containerView = UIView()
private let resultsTableView = UITableView()
private let historyAndCategoryTabViewController = SearchTabViewController()
// TODO: implement filters
private let filtersCollectionView: UICollectionView = {
let layout = UICollectionViewFlowLayout()
layout.scrollDirection = .horizontal
return UICollectionView(frame: .zero, collectionViewLayout: layout)
}()
private var searchingActivityView = PlaceholderView(hasActivityIndicator: true)
private var containerModalYTranslation: CGFloat = 0
private var searchNoResultsView = PlaceholderView(title: L("search_not_found"),
subtitle: L("search_not_found_query"))
// MARK: - Init
init(interactor: SearchOnMapInteractor) {
self.interactor = interactor
init(presentationController: SearchOnMapPresentationController?) {
self.modalPresentationController = presentationController
super.init(nibName: nil, bundle: nil)
modalPresentationController?.setViewController(self)
}
@available(*, unavailable)
@ -54,16 +47,12 @@ final class SearchOnMapViewController: UIViewController {
fatalError("init(coder:) has not been implemented")
}
deinit {
NotificationCenter.default.removeObserver(self)
}
// MARK: - Lifecycle
override func viewDidLoad() {
super.viewDidLoad()
setupViews()
layoutViews()
interactor.handle(.openSearch)
modalPresentationController?.show()
}
override func viewWillDisappear(_ animated: Bool) {
@ -71,16 +60,20 @@ final class SearchOnMapViewController: UIViewController {
headerView.setIsSearching(false)
}
override func traitCollectionDidChange(_ previousTraitCollection: UITraitCollection?) {
super.traitCollectionDidChange(previousTraitCollection)
modalPresentationController?.traitCollectionDidChange(traitCollection)
}
// MARK: - Private methods
private func setupViews() {
view.setStyle(.background)
view.setStyle(.clearBackground)
setupTapGestureRecognizer()
setupHeaderView()
setupContainerView()
setupResultsTableView()
setupHistoryAndCategoryTabView()
setupResultsTableView()
setupFiltersCollectionView()
}
private func setupTapGestureRecognizer() {
@ -112,12 +105,6 @@ final class SearchOnMapViewController: UIViewController {
historyAndCategoryTabViewController.delegate = self
}
// TODO: (KK) Implement filters collection viewe
private func setupFiltersCollectionView() {
filtersCollectionView.register(UICollectionViewCell.self, forCellWithReuseIdentifier: "FilterCell")
filtersCollectionView.dataSource = self
}
private func layoutViews() {
view.addSubview(headerView)
view.addSubview(containerView)
@ -261,6 +248,16 @@ extension SearchOnMapViewController: SearchOnMapView {
if let searchingText = viewModel.searchingText {
replaceSearchText(with: searchingText)
}
modalPresentationController?.setPresentationStep(viewModel.presentationStep)
}
func close() {
headerView.setIsSearching(false)
guard let modalPresentationController else {
dismiss(animated: true)
return
}
modalPresentationController.close()
}
}
@ -303,12 +300,12 @@ extension SearchOnMapViewController: UITableViewDataSource {
extension SearchOnMapViewController: UITableViewDelegate {
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
let result = searchResults[indexPath.row]
interactor.handle(.didSelectResult(result, withSearchText: headerView.searchText))
interactor?.handle(.didSelectResult(result, withSearchText: headerView.searchText))
tableView.deselectRow(at: indexPath, animated: true)
}
func scrollViewWillBeginDragging(_ scrollView: UIScrollView) {
interactor.handle(.didStartDraggingSearch)
interactor?.handle(.didStartDraggingSearch)
}
func scrollViewDidScroll(_ scrollView: UIScrollView) {
@ -332,31 +329,31 @@ extension SearchOnMapViewController: UICollectionViewDataSource {
// MARK: - SearchOnMapHeaderViewDelegate
extension SearchOnMapViewController: SearchOnMapHeaderViewDelegate {
func searchBarTextDidBeginEditing(_ searchBar: UISearchBar) {
interactor.handle(.didStartTyping)
interactor?.handle(.didStartTyping)
}
func searchBar(_ searchBar: UISearchBar, textDidChange searchText: String) {
guard !searchText.isEmpty else {
interactor.handle(.clearButtonDidTap)
interactor?.handle(.clearButtonDidTap)
return
}
interactor.handle(.didType(SearchText(searchText, locale: searchBar.textInputMode?.primaryLanguage)))
interactor?.handle(.didType(SearchText(searchText, locale: searchBar.textInputMode?.primaryLanguage)))
}
func searchBarSearchButtonClicked(_ searchBar: UISearchBar) {
guard let searchText = searchBar.text, !searchText.isEmpty else { return }
interactor.handle(.searchButtonDidTap(SearchText(searchText, locale: searchBar.textInputMode?.primaryLanguage)))
interactor?.handle(.searchButtonDidTap(SearchText(searchText, locale: searchBar.textInputMode?.primaryLanguage)))
}
func cancelButtonDidTap() {
interactor.handle(.closeSearch)
interactor?.handle(.closeSearch)
}
}
// MARK: - SearchTabViewControllerDelegate
extension SearchOnMapViewController: SearchTabViewControllerDelegate {
func searchTabController(_ viewController: SearchTabViewController, didSearch text: String, withCategory: Bool) {
interactor.handle(.didSelectText(SearchText(text, locale: nil), isCategory: withCategory))
interactor?.handle(.didSelectText(SearchText(text, locale: nil), isCategory: withCategory))
}
}

View file

@ -1,20 +1,31 @@
• New OpenStreetMap data as of January 21
• Tap tracks to display statistics and an interactive elevation profile
• A standalone Track Recording button
• Track Recording Live Activity Widget with track statistics (iOS16.2 and later)
• Added Serbian (Cyrillic) and Latvian languages
• Added tower POIs
• New OpenStreetMap data as of February 27
• Search: split screen to show both the map and the list at the same time
• Ability to share a single selected track from the list
• Improved routing for bicycles
• Added tracks and bookmarks colors into exported GPX files
• Added specific icons for Hong Kong, Shenzhen metro and Berlin light rail, a separate monorail icon
• Added a context menu to the coordinates button in POI details
• Show a reminder popup every time a full screen mode is entered
• Display an explanation when the OSM Editor category search returns nothing
• Differentiate between grass and grassland/meadow colors
• Less saturated/prominent residential gardens color
• Fixed yellow road shields displayed as green in the night mode
• Display vegetation fills earlier in the car navigation style
• Display complex non-number levels for building POIs
• Improve search for peaks and saddles/passes
• EN as additional search language in the OSM Editor
• Update Estonian, Finnish, German, Italian, Turkish translations
• ...many more bug fixes and UI improvements
Map:
• Added Hearing Aids shops, Communication Towers, Crosses, Oil/Gas Wells, Gas Flares, Lifeguards, Motorcycle Rentals, Mountain Rescue Stations, Obelisks (as monuments), separate Quarters (were merged with Neighbourhoods before)
• Outdoors: raised visibility of Huts, Shelters, Hunting Stands, Towers, Cairns, Storage Tanks, Silos
• Outdoors: added Minor Power Lines, Utility and Power Poles; increased visibility of major Power Lines and Pylons
• Added captions to named Cliffs, City Walls, Embankments, Power Lines
• Tuned visibility and priority of some niche shops
OSM editor:
• Added ability to edit "Self-service" and "Outdoor seating" POI attributes
• Don't hide OSM login page when offline
• Added icons to address and number of floors input fields
• Fixed many other bugs, thanks to contributor @map-per who did a lot of under-the-hood work!
Other:
• Open track's info page automatically upon record finish / track save
• Show "Add Stop" button for the selected track point when in the navigation mode
• Voice directions: announce route recalculation
• Better looking track elevation profiles
• Made Track Recording live activity widget properly dismissable
• Don't always default to the subway routing mode when the subway layer is active
• Fixed bookmarks storing POI name in a wrong language
• Fixed on-building POIs disappearing when in perspective view
• Fixed empty speed limit sign displayed in foot navigation
• Fixed stuck map rotation gesture when zoomed in max
• iCloud sync bug fixes and some minor UI fixes

View file

@ -1,20 +1,31 @@
• New OpenStreetMap data as of January 21
• Tap tracks to display statistics and an interactive elevation profile
• A standalone Track Recording button
• Track Recording Live Activity Widget with track statistics (iOS16.2 and later)
• Added Serbian (Cyrillic) and Latvian languages
• Added tower POIs
• New OpenStreetMap data as of February 27
• Search: split screen to show both the map and the list at the same time
• Ability to share a single selected track from the list
• Improved routing for bicycles
• Added tracks and bookmarks colors into exported GPX files
• Added specific icons for Hong Kong, Shenzhen metro and Berlin light rail, a separate monorail icon
• Added a context menu to the coordinates button in POI details
• Show a reminder popup every time a full screen mode is entered
• Display an explanation when the OSM Editor category search returns nothing
• Differentiate between grass and grassland/meadow colors
• Less saturated/prominent residential gardens color
• Fixed yellow road shields displayed as green in the night mode
• Display vegetation fills earlier in the car navigation style
• Display complex non-number levels for building POIs
• Improve search for peaks and saddles/passes
• EN as additional search language in the OSM Editor
• Update Estonian, Finnish, German, Italian, Turkish translations
• ...many more bug fixes and UI improvements
Map:
• Added Hearing Aids shops, Communication Towers, Crosses, Oil/Gas Wells, Gas Flares, Lifeguards, Motorcycle Rentals, Mountain Rescue Stations, Obelisks (as monuments), separate Quarters (were merged with Neighbourhoods before)
• Outdoors: raised visibility of Huts, Shelters, Hunting Stands, Towers, Cairns, Storage Tanks, Silos
• Outdoors: added Minor Power Lines, Utility and Power Poles; increased visibility of major Power Lines and Pylons
• Added captions to named Cliffs, City Walls, Embankments, Power Lines
• Tuned visibility and priority of some niche shops
OSM editor:
• Added ability to edit "Self-service" and "Outdoor seating" POI attributes
• Don't hide OSM login page when offline
• Added icons to address and number of floors input fields
• Fixed many other bugs, thanks to contributor @map-per who did a lot of under-the-hood work!
Other:
• Open track's info page automatically upon record finish / track save
• Show "Add Stop" button for the selected track point when in the navigation mode
• Voice directions: announce route recalculation
• Better looking track elevation profiles
• Made Track Recording live activity widget properly dismissable
• Don't always default to the subway routing mode when the subway layer is active
• Fixed bookmarks storing POI name in a wrong language
• Fixed on-building POIs disappearing when in perspective view
• Fixed empty speed limit sign displayed in foot navigation
• Fixed stuck map rotation gesture when zoomed in max
• iCloud sync bug fixes and some minor UI fixes

View file

@ -1,20 +1,31 @@
• New OpenStreetMap data as of January 21
• Tap tracks to display statistics and an interactive elevation profile
• A standalone Track Recording button
• Track Recording Live Activity Widget with track statistics (iOS16.2 and later)
• Added Serbian (Cyrillic) and Latvian languages
• Added tower POIs
• New OpenStreetMap data as of February 27
• Search: split screen to show both the map and the list at the same time
• Ability to share a single selected track from the list
• Improved routing for bicycles
• Added tracks and bookmarks colors into exported GPX files
• Added specific icons for Hong Kong, Shenzhen metro and Berlin light rail, a separate monorail icon
• Added a context menu to the coordinates button in POI details
• Show a reminder popup every time a full screen mode is entered
• Display an explanation when the OSM Editor category search returns nothing
• Differentiate between grass and grassland/meadow colors
• Less saturated/prominent residential gardens color
• Fixed yellow road shields displayed as green in the night mode
• Display vegetation fills earlier in the car navigation style
• Display complex non-number levels for building POIs
• Improve search for peaks and saddles/passes
• EN as additional search language in the OSM Editor
• Update Estonian, Finnish, German, Italian, Turkish translations
• ...many more bug fixes and UI improvements
Map:
• Added Hearing Aids shops, Communication Towers, Crosses, Oil/Gas Wells, Gas Flares, Lifeguards, Motorcycle Rentals, Mountain Rescue Stations, Obelisks (as monuments), separate Quarters (were merged with Neighbourhoods before)
• Outdoors: raised visibility of Huts, Shelters, Hunting Stands, Towers, Cairns, Storage Tanks, Silos
• Outdoors: added Minor Power Lines, Utility and Power Poles; increased visibility of major Power Lines and Pylons
• Added captions to named Cliffs, City Walls, Embankments, Power Lines
• Tuned visibility and priority of some niche shops
OSM editor:
• Added ability to edit "Self-service" and "Outdoor seating" POI attributes
• Don't hide OSM login page when offline
• Added icons to address and number of floors input fields
• Fixed many other bugs, thanks to contributor @map-per who did a lot of under-the-hood work!
Other:
• Open track's info page automatically upon record finish / track save
• Show "Add Stop" button for the selected track point when in the navigation mode
• Voice directions: announce route recalculation
• Better looking track elevation profiles
• Made Track Recording live activity widget properly dismissable
• Don't always default to the subway routing mode when the subway layer is active
• Fixed bookmarks storing POI name in a wrong language
• Fixed on-building POIs disappearing when in perspective view
• Fixed empty speed limit sign displayed in foot navigation
• Fixed stuck map rotation gesture when zoomed in max
• iCloud sync bug fixes and some minor UI fixes

View file

@ -1,20 +1,31 @@
• New OpenStreetMap data as of January 21
• Tap tracks to display statistics and an interactive elevation profile
• A standalone Track Recording button
• Track Recording Live Activity Widget with track statistics (iOS16.2 and later)
• Added Serbian (Cyrillic) and Latvian languages
• Added tower POIs
• New OpenStreetMap data as of February 27
• Search: split screen to show both the map and the list at the same time
• Ability to share a single selected track from the list
• Improved routing for bicycles
• Added tracks and bookmarks colors into exported GPX files
• Added specific icons for Hong Kong, Shenzhen metro and Berlin light rail, a separate monorail icon
• Added a context menu to the coordinates button in POI details
• Show a reminder popup every time a full screen mode is entered
• Display an explanation when the OSM Editor category search returns nothing
• Differentiate between grass and grassland/meadow colors
• Less saturated/prominent residential gardens color
• Fixed yellow road shields displayed as green in the night mode
• Display vegetation fills earlier in the car navigation style
• Display complex non-number levels for building POIs
• Improve search for peaks and saddles/passes
• EN as additional search language in the OSM Editor
• Update Estonian, Finnish, German, Italian, Turkish translations
• ...many more bug fixes and UI improvements
Map:
• Added Hearing Aids shops, Communication Towers, Crosses, Oil/Gas Wells, Gas Flares, Lifeguards, Motorcycle Rentals, Mountain Rescue Stations, Obelisks (as monuments), separate Quarters (were merged with Neighbourhoods before)
• Outdoors: raised visibility of Huts, Shelters, Hunting Stands, Towers, Cairns, Storage Tanks, Silos
• Outdoors: added Minor Power Lines, Utility and Power Poles; increased visibility of major Power Lines and Pylons
• Added captions to named Cliffs, City Walls, Embankments, Power Lines
• Tuned visibility and priority of some niche shops
OSM editor:
• Added ability to edit "Self-service" and "Outdoor seating" POI attributes
• Don't hide OSM login page when offline
• Added icons to address and number of floors input fields
• Fixed many other bugs, thanks to contributor @map-per who did a lot of under-the-hood work!
Other:
• Open track's info page automatically upon record finish / track save
• Show "Add Stop" button for the selected track point when in the navigation mode
• Voice directions: announce route recalculation
• Better looking track elevation profiles
• Made Track Recording live activity widget properly dismissable
• Don't always default to the subway routing mode when the subway layer is active
• Fixed bookmarks storing POI name in a wrong language
• Fixed on-building POIs disappearing when in perspective view
• Fixed empty speed limit sign displayed in foot navigation
• Fixed stuck map rotation gesture when zoomed in max
• iCloud sync bug fixes and some minor UI fixes

View file

@ -1,20 +1,31 @@
• Neue OpenStreetMap-Daten vom 8. Januar
• Tippen Sie auf Tracks, um Statistiken und ein interaktives Höhenprofil anzuzeigen
• Eine eigenständige Schaltfläche zur Trackaufzeichnung
• Track-Aufzeichnung Live-Aktivitäts-Widget mit Track-Statistiken (iOS 16.2 und höher)
• Serbische (Kyrillisch) und Lettische Sprachen hinzugefügt
• Turm-POIs hinzugefügt
• Neue OpenStreetMap-Daten vom 27. Februar
• Suche: geteilter Bildschirm, um sowohl die Karte als auch die Liste gleichzeitig anzuzeigen
• Möglichkeit, einen einzelnen ausgewählten Track aus der Liste zu teilen
• Verbesserte Routenführung für Fahrräder
• Track- und Lesezeichenfarben zu exportierten GPX-Dateien hinzugefügt
• Spezielle Symbole für die U-Bahnen Hongkong und Shenzhen sowie die Stadtbahn Berlin hinzugefügt, ein separates Monorail-Symbol
• Dem Koordinaten-Button in den POI-Details wurde ein Kontextmenü hinzugefügt
• Bei jedem Wechsel in den Vollbildmodus ein Erinnerungs-Popup anzeigen
• Eine Erklärung anzeigen, wenn die Kategoriesuche im OSM-Editor nichts ergibt
• Unterscheiden Sie zwischen Gras- und Grünland-/Wiesenfarben
• Weniger gesättigte/auffällige Farbe in Wohngärten
• Gelbe Straßenschilder wurden korrigiert, sodass sie im Nachtmodus grün angezeigt wurden
• Vegetationsfüllungen im Autonavigationsstil früher anzeigen
• Anzeige komplexer Nicht-Zahlenebenen zum Erstellen von POIs
• Verbesserte Suche nach Gipfeln und Sätteln/Pässen
• EN als zusätzliche Suchsprache im OSM-Editor
• Aktualisieren Sie die estnischen, finnischen, deutschen, italienischen und türkischen Übersetzungen
• ...viele weitere Fehlerbehebungen und UI-Verbesserungen
Karte:
• Hörgerätegeschäfte, Kommunikationstürme, Kreuze, Öl-/Gasquellen, Gasfackeln, Rettungsschwimmer, Motorradverleihe, Bergrettungsstationen, Obelisken (als Denkmäler), separate Viertel (wurden zuvor mit Nachbarschaften zusammengelegt) hinzugefügt
• Außenbereich: verbesserte Sichtbarkeit von Hütten, Unterständen, Jagdständen, Türmen, Steinhaufen, Lagertanks, Silos
• Außenbereich: kleinere Stromleitungen, Versorgungs- und Strommasten hinzugefügt; verbesserte Sichtbarkeit wichtiger Stromleitungen und Masten
• Beschriftungen für benannte Klippen, Stadtmauern, Böschungen und Stromleitungen hinzugefügt
• Sichtbarkeit und Priorität einiger Nischengeschäfte angepasst
OSM-Editor:
• Möglichkeit zum Bearbeiten der POI-Attribute „Selbstbedienung“ und „Sitzplätze im Freien“ hinzugefügt
• OSM-Anmeldeseite offline nicht ausblenden
• Symbole für Eingabefelder für Adressen und Stockwerkanzahl hinzugefügt
• Viele weitere Fehler behoben, danke an den Mitwirkenden @map-per, der viel Arbeit hinter den Kulissen geleistet hat!
Sonstiges:
• Infoseite der Strecke automatisch öffnen, wenn Aufzeichnung beendet/Strecke gespeichert ist
• Schaltfläche „Stopp hinzufügen“ für den ausgewählten Streckenpunkt im Navigationsmodus anzeigen
• Sprachanweisungen: Routenneuberechnung ankündigen
• Besser aussehende Streckenhöhenprofile
• Live-Aktivitäts-Widget für Streckenaufzeichnung jetzt richtig abschaltbar
• Standardmäßig wird nicht immer der U-Bahn-Routingmodus verwendet, wenn die U-Bahn-Ebene aktiv ist
• Behoben: Lesezeichen speichern POI-Namen in der falschen Sprache
• Behoben: Verschwinden von POIs auf Gebäuden in der perspektivischen Ansicht
• Behoben: Leeres Tempolimit-Schild bei Fußnavigation angezeigt
• Behoben: Feststeckende Kartenrotationsgeste bei maximalem Zoom
• Fehlerbehebungen bei iCloud-Synchronisierung und einige kleinere UI-Korrekturen

View file

@ -1,20 +1,31 @@
• New OpenStreetMap data as of January 21
• Tap tracks to display statistics and an interactive elevation profile
• A standalone Track Recording button
• Track Recording Live Activity Widget with track statistics (iOS16.2 and later)
• Added Serbian (Cyrillic) and Latvian languages
• Added tower POIs
• New OpenStreetMap data as of February 27
• Search: split screen to show both the map and the list at the same time
• Ability to share a single selected track from the list
• Improved routing for bicycles
• Added tracks and bookmarks colors into exported GPX files
• Added specific icons for Hong Kong, Shenzhen metro and Berlin light rail, a separate monorail icon
• Added a context menu to the coordinates button in POI details
• Show a reminder popup every time a full screen mode is entered
• Display an explanation when the OSM Editor category search returns nothing
• Differentiate between grass and grassland/meadow colors
• Less saturated/prominent residential gardens color
• Fixed yellow road shields displayed as green in the night mode
• Display vegetation fills earlier in the car navigation style
• Display complex non-number levels for building POIs
• Improve search for peaks and saddles/passes
• EN as additional search language in the OSM Editor
• Update Estonian, Finnish, German, Italian, Turkish translations
• ...many more bug fixes and UI improvements
Map:
• Added Hearing Aids shops, Communication Towers, Crosses, Oil/Gas Wells, Gas Flares, Lifeguards, Motorcycle Rentals, Mountain Rescue Stations, Obelisks (as monuments), separate Quarters (were merged with Neighbourhoods before)
• Outdoors: raised visibility of Huts, Shelters, Hunting Stands, Towers, Cairns, Storage Tanks, Silos
• Outdoors: added Minor Power Lines, Utility and Power Poles; increased visibility of major Power Lines and Pylons
• Added captions to named Cliffs, City Walls, Embankments, Power Lines
• Tuned visibility and priority of some niche shops
OSM editor:
• Added ability to edit "Self-service" and "Outdoor seating" POI attributes
• Don't hide OSM login page when offline
• Added icons to address and number of floors input fields
• Fixed many other bugs, thanks to contributor @map-per who did a lot of under-the-hood work!
Other:
• Open track's info page automatically upon record finish / track save
• Show "Add Stop" button for the selected track point when in the navigation mode
• Voice directions: announce route recalculation
• Better looking track elevation profiles
• Made Track Recording live activity widget properly dismissable
• Don't always default to the subway routing mode when the subway layer is active
• Fixed bookmarks storing POI name in a wrong language
• Fixed on-building POIs disappearing when in perspective view
• Fixed empty speed limit sign displayed in foot navigation
• Fixed stuck map rotation gesture when zoomed in max
• iCloud sync bug fixes and some minor UI fixes

View file

@ -1,20 +1,31 @@
• New OpenStreetMap data as of January 21
• Tap tracks to display statistics and an interactive elevation profile
• A standalone Track Recording button
• Track Recording Live Activity Widget with track statistics (iOS16.2 and later)
• Added Serbian (Cyrillic) and Latvian languages
• Added tower POIs
• New OpenStreetMap data as of February 27
• Search: split screen to show both the map and the list at the same time
• Ability to share a single selected track from the list
• Improved routing for bicycles
• Added tracks and bookmarks colors into exported GPX files
• Added specific icons for Hong Kong, Shenzhen metro and Berlin light rail, a separate monorail icon
• Added a context menu to the coordinates button in POI details
• Show a reminder popup every time a full screen mode is entered
• Display an explanation when the OSM Editor category search returns nothing
• Differentiate between grass and grassland/meadow colors
• Less saturated/prominent residential gardens color
• Fixed yellow road shields displayed as green in the night mode
• Display vegetation fills earlier in the car navigation style
• Display complex non-number levels for building POIs
• Improve search for peaks and saddles/passes
• EN as additional search language in the OSM Editor
• Update Estonian, Finnish, German, Italian, Turkish translations
• ...many more bug fixes and UI improvements
Map:
• Added Hearing Aids shops, Communication Towers, Crosses, Oil/Gas Wells, Gas Flares, Lifeguards, Motorcycle Rentals, Mountain Rescue Stations, Obelisks (as monuments), separate Quarters (were merged with Neighbourhoods before)
• Outdoors: raised visibility of Huts, Shelters, Hunting Stands, Towers, Cairns, Storage Tanks, Silos
• Outdoors: added Minor Power Lines, Utility and Power Poles; increased visibility of major Power Lines and Pylons
• Added captions to named Cliffs, City Walls, Embankments, Power Lines
• Tuned visibility and priority of some niche shops
OSM editor:
• Added ability to edit "Self-service" and "Outdoor seating" POI attributes
• Don't hide OSM login page when offline
• Added icons to address and number of floors input fields
• Fixed many other bugs, thanks to contributor @map-per who did a lot of under-the-hood work!
Other:
• Open track's info page automatically upon record finish / track save
• Show "Add Stop" button for the selected track point when in the navigation mode
• Voice directions: announce route recalculation
• Better looking track elevation profiles
• Made Track Recording live activity widget properly dismissable
• Don't always default to the subway routing mode when the subway layer is active
• Fixed bookmarks storing POI name in a wrong language
• Fixed on-building POIs disappearing when in perspective view
• Fixed empty speed limit sign displayed in foot navigation
• Fixed stuck map rotation gesture when zoomed in max
• iCloud sync bug fixes and some minor UI fixes

View file

@ -1,20 +1,31 @@
• New OpenStreetMap data as of January 21
• Tap tracks to display statistics and an interactive elevation profile
• A standalone Track Recording button
• Track Recording Live Activity Widget with track statistics (iOS16.2 and later)
• Added Serbian (Cyrillic) and Latvian languages
• Added tower POIs
• New OpenStreetMap data as of February 27
• Search: split screen to show both the map and the list at the same time
• Ability to share a single selected track from the list
• Improved routing for bicycles
• Added tracks and bookmarks colors into exported GPX files
• Added specific icons for Hong Kong, Shenzhen metro and Berlin light rail, a separate monorail icon
• Added a context menu to the coordinates button in POI details
• Show a reminder popup every time a full screen mode is entered
• Display an explanation when the OSM Editor category search returns nothing
• Differentiate between grass and grassland/meadow colors
• Less saturated/prominent residential gardens color
• Fixed yellow road shields displayed as green in the night mode
• Display vegetation fills earlier in the car navigation style
• Display complex non-number levels for building POIs
• Improve search for peaks and saddles/passes
• EN as additional search language in the OSM Editor
• Update Estonian, Finnish, German, Italian, Turkish translations
• ...many more bug fixes and UI improvements
Map:
• Added Hearing Aids shops, Communication Towers, Crosses, Oil/Gas Wells, Gas Flares, Lifeguards, Motorcycle Rentals, Mountain Rescue Stations, Obelisks (as monuments), separate Quarters (were merged with Neighbourhoods before)
• Outdoors: raised visibility of Huts, Shelters, Hunting Stands, Towers, Cairns, Storage Tanks, Silos
• Outdoors: added Minor Power Lines, Utility and Power Poles; increased visibility of major Power Lines and Pylons
• Added captions to named Cliffs, City Walls, Embankments, Power Lines
• Tuned visibility and priority of some niche shops
OSM editor:
• Added ability to edit "Self-service" and "Outdoor seating" POI attributes
• Don't hide OSM login page when offline
• Added icons to address and number of floors input fields
• Fixed many other bugs, thanks to contributor @map-per who did a lot of under-the-hood work!
Other:
• Open track's info page automatically upon record finish / track save
• Show "Add Stop" button for the selected track point when in the navigation mode
• Voice directions: announce route recalculation
• Better looking track elevation profiles
• Made Track Recording live activity widget properly dismissable
• Don't always default to the subway routing mode when the subway layer is active
• Fixed bookmarks storing POI name in a wrong language
• Fixed on-building POIs disappearing when in perspective view
• Fixed empty speed limit sign displayed in foot navigation
• Fixed stuck map rotation gesture when zoomed in max
• iCloud sync bug fixes and some minor UI fixes

View file

@ -1,20 +1,31 @@
• New OpenStreetMap data as of January 21
• Tap tracks to display statistics and an interactive elevation profile
• A standalone Track Recording button
• Track Recording Live Activity Widget with track statistics (iOS16.2 and later)
• Added Serbian (Cyrillic) and Latvian languages
• Added tower POIs
• New OpenStreetMap data as of February 27
• Search: split screen to show both the map and the list at the same time
• Ability to share a single selected track from the list
• Improved routing for bicycles
• Added tracks and bookmarks colors into exported GPX files
• Added specific icons for Hong Kong, Shenzhen metro and Berlin light rail, a separate monorail icon
• Added a context menu to the coordinates button in POI details
• Show a reminder popup every time a full screen mode is entered
• Display an explanation when the OSM Editor category search returns nothing
• Differentiate between grass and grassland/meadow colors
• Less saturated/prominent residential gardens color
• Fixed yellow road shields displayed as green in the night mode
• Display vegetation fills earlier in the car navigation style
• Display complex non-number levels for building POIs
• Improve search for peaks and saddles/passes
• EN as additional search language in the OSM Editor
• Update Estonian, Finnish, German, Italian, Turkish translations
• ...many more bug fixes and UI improvements
Map:
• Added Hearing Aids shops, Communication Towers, Crosses, Oil/Gas Wells, Gas Flares, Lifeguards, Motorcycle Rentals, Mountain Rescue Stations, Obelisks (as monuments), separate Quarters (were merged with Neighbourhoods before)
• Outdoors: raised visibility of Huts, Shelters, Hunting Stands, Towers, Cairns, Storage Tanks, Silos
• Outdoors: added Minor Power Lines, Utility and Power Poles; increased visibility of major Power Lines and Pylons
• Added captions to named Cliffs, City Walls, Embankments, Power Lines
• Tuned visibility and priority of some niche shops
OSM editor:
• Added ability to edit "Self-service" and "Outdoor seating" POI attributes
• Don't hide OSM login page when offline
• Added icons to address and number of floors input fields
• Fixed many other bugs, thanks to contributor @map-per who did a lot of under-the-hood work!
Other:
• Open track's info page automatically upon record finish / track save
• Show "Add Stop" button for the selected track point when in the navigation mode
• Voice directions: announce route recalculation
• Better looking track elevation profiles
• Made Track Recording live activity widget properly dismissable
• Don't always default to the subway routing mode when the subway layer is active
• Fixed bookmarks storing POI name in a wrong language
• Fixed on-building POIs disappearing when in perspective view
• Fixed empty speed limit sign displayed in foot navigation
• Fixed stuck map rotation gesture when zoomed in max
• iCloud sync bug fixes and some minor UI fixes

View file

@ -1,20 +1,31 @@
• New OpenStreetMap data as of January 21
• Tap tracks to display statistics and an interactive elevation profile
• A standalone Track Recording button
• Track Recording Live Activity Widget with track statistics (iOS16.2 and later)
• Added Serbian (Cyrillic) and Latvian languages
• Added tower POIs
• New OpenStreetMap data as of February 27
• Search: split screen to show both the map and the list at the same time
• Ability to share a single selected track from the list
• Improved routing for bicycles
• Added tracks and bookmarks colors into exported GPX files
• Added specific icons for Hong Kong, Shenzhen metro and Berlin light rail, a separate monorail icon
• Added a context menu to the coordinates button in POI details
• Show a reminder popup every time a full screen mode is entered
• Display an explanation when the OSM Editor category search returns nothing
• Differentiate between grass and grassland/meadow colors
• Less saturated/prominent residential gardens color
• Fixed yellow road shields displayed as green in the night mode
• Display vegetation fills earlier in the car navigation style
• Display complex non-number levels for building POIs
• Improve search for peaks and saddles/passes
• EN as additional search language in the OSM Editor
• Update Estonian, Finnish, German, Italian, Turkish translations
• ...many more bug fixes and UI improvements
Map:
• Added Hearing Aids shops, Communication Towers, Crosses, Oil/Gas Wells, Gas Flares, Lifeguards, Motorcycle Rentals, Mountain Rescue Stations, Obelisks (as monuments), separate Quarters (were merged with Neighbourhoods before)
• Outdoors: raised visibility of Huts, Shelters, Hunting Stands, Towers, Cairns, Storage Tanks, Silos
• Outdoors: added Minor Power Lines, Utility and Power Poles; increased visibility of major Power Lines and Pylons
• Added captions to named Cliffs, City Walls, Embankments, Power Lines
• Tuned visibility and priority of some niche shops
OSM editor:
• Added ability to edit "Self-service" and "Outdoor seating" POI attributes
• Don't hide OSM login page when offline
• Added icons to address and number of floors input fields
• Fixed many other bugs, thanks to contributor @map-per who did a lot of under-the-hood work!
Other:
• Open track's info page automatically upon record finish / track save
• Show "Add Stop" button for the selected track point when in the navigation mode
• Voice directions: announce route recalculation
• Better looking track elevation profiles
• Made Track Recording live activity widget properly dismissable
• Don't always default to the subway routing mode when the subway layer is active
• Fixed bookmarks storing POI name in a wrong language
• Fixed on-building POIs disappearing when in perspective view
• Fixed empty speed limit sign displayed in foot navigation
• Fixed stuck map rotation gesture when zoomed in max
• iCloud sync bug fixes and some minor UI fixes

View file

@ -1,20 +1,31 @@
• New OpenStreetMap data as of January 21
• Tap tracks to display statistics and an interactive elevation profile
• A standalone Track Recording button
• Track Recording Live Activity Widget with track statistics (iOS16.2 and later)
• Added Serbian (Cyrillic) and Latvian languages
• Added tower POIs
• New OpenStreetMap data as of February 27
• Search: split screen to show both the map and the list at the same time
• Ability to share a single selected track from the list
• Improved routing for bicycles
• Added tracks and bookmarks colors into exported GPX files
• Added specific icons for Hong Kong, Shenzhen metro and Berlin light rail, a separate monorail icon
• Added a context menu to the coordinates button in POI details
• Show a reminder popup every time a full screen mode is entered
• Display an explanation when the OSM Editor category search returns nothing
• Differentiate between grass and grassland/meadow colors
• Less saturated/prominent residential gardens color
• Fixed yellow road shields displayed as green in the night mode
• Display vegetation fills earlier in the car navigation style
• Display complex non-number levels for building POIs
• Improve search for peaks and saddles/passes
• EN as additional search language in the OSM Editor
• Update Estonian, Finnish, German, Italian, Turkish translations
• ...many more bug fixes and UI improvements
Map:
• Added Hearing Aids shops, Communication Towers, Crosses, Oil/Gas Wells, Gas Flares, Lifeguards, Motorcycle Rentals, Mountain Rescue Stations, Obelisks (as monuments), separate Quarters (were merged with Neighbourhoods before)
• Outdoors: raised visibility of Huts, Shelters, Hunting Stands, Towers, Cairns, Storage Tanks, Silos
• Outdoors: added Minor Power Lines, Utility and Power Poles; increased visibility of major Power Lines and Pylons
• Added captions to named Cliffs, City Walls, Embankments, Power Lines
• Tuned visibility and priority of some niche shops
OSM editor:
• Added ability to edit "Self-service" and "Outdoor seating" POI attributes
• Don't hide OSM login page when offline
• Added icons to address and number of floors input fields
• Fixed many other bugs, thanks to contributor @map-per who did a lot of under-the-hood work!
Other:
• Open track's info page automatically upon record finish / track save
• Show "Add Stop" button for the selected track point when in the navigation mode
• Voice directions: announce route recalculation
• Better looking track elevation profiles
• Made Track Recording live activity widget properly dismissable
• Don't always default to the subway routing mode when the subway layer is active
• Fixed bookmarks storing POI name in a wrong language
• Fixed on-building POIs disappearing when in perspective view
• Fixed empty speed limit sign displayed in foot navigation
• Fixed stuck map rotation gesture when zoomed in max
• iCloud sync bug fixes and some minor UI fixes

View file

@ -1,20 +1,31 @@
• New OpenStreetMap data as of January 21
• Tap tracks to display statistics and an interactive elevation profile
• A standalone Track Recording button
• Track Recording Live Activity Widget with track statistics (iOS16.2 and later)
• Added Serbian (Cyrillic) and Latvian languages
• Added tower POIs
• New OpenStreetMap data as of February 27
• Search: split screen to show both the map and the list at the same time
• Ability to share a single selected track from the list
• Improved routing for bicycles
• Added tracks and bookmarks colors into exported GPX files
• Added specific icons for Hong Kong, Shenzhen metro and Berlin light rail, a separate monorail icon
• Added a context menu to the coordinates button in POI details
• Show a reminder popup every time a full screen mode is entered
• Display an explanation when the OSM Editor category search returns nothing
• Differentiate between grass and grassland/meadow colors
• Less saturated/prominent residential gardens color
• Fixed yellow road shields displayed as green in the night mode
• Display vegetation fills earlier in the car navigation style
• Display complex non-number levels for building POIs
• Improve search for peaks and saddles/passes
• EN as additional search language in the OSM Editor
• Update Estonian, Finnish, German, Italian, Turkish translations
• ...many more bug fixes and UI improvements
Map:
• Added Hearing Aids shops, Communication Towers, Crosses, Oil/Gas Wells, Gas Flares, Lifeguards, Motorcycle Rentals, Mountain Rescue Stations, Obelisks (as monuments), separate Quarters (were merged with Neighbourhoods before)
• Outdoors: raised visibility of Huts, Shelters, Hunting Stands, Towers, Cairns, Storage Tanks, Silos
• Outdoors: added Minor Power Lines, Utility and Power Poles; increased visibility of major Power Lines and Pylons
• Added captions to named Cliffs, City Walls, Embankments, Power Lines
• Tuned visibility and priority of some niche shops
OSM editor:
• Added ability to edit "Self-service" and "Outdoor seating" POI attributes
• Don't hide OSM login page when offline
• Added icons to address and number of floors input fields
• Fixed many other bugs, thanks to contributor @map-per who did a lot of under-the-hood work!
Other:
• Open track's info page automatically upon record finish / track save
• Show "Add Stop" button for the selected track point when in the navigation mode
• Voice directions: announce route recalculation
• Better looking track elevation profiles
• Made Track Recording live activity widget properly dismissable
• Don't always default to the subway routing mode when the subway layer is active
• Fixed bookmarks storing POI name in a wrong language
• Fixed on-building POIs disappearing when in perspective view
• Fixed empty speed limit sign displayed in foot navigation
• Fixed stuck map rotation gesture when zoomed in max
• iCloud sync bug fixes and some minor UI fixes

View file

@ -1,20 +1,31 @@
• New OpenStreetMap data as of January 21
• Tap tracks to display statistics and an interactive elevation profile
• A standalone Track Recording button
• Track Recording Live Activity Widget with track statistics (iOS16.2 and later)
• Added Serbian (Cyrillic) and Latvian languages
• Added tower POIs
• New OpenStreetMap data as of February 27
• Search: split screen to show both the map and the list at the same time
• Ability to share a single selected track from the list
• Improved routing for bicycles
• Added tracks and bookmarks colors into exported GPX files
• Added specific icons for Hong Kong, Shenzhen metro and Berlin light rail, a separate monorail icon
• Added a context menu to the coordinates button in POI details
• Show a reminder popup every time a full screen mode is entered
• Display an explanation when the OSM Editor category search returns nothing
• Differentiate between grass and grassland/meadow colors
• Less saturated/prominent residential gardens color
• Fixed yellow road shields displayed as green in the night mode
• Display vegetation fills earlier in the car navigation style
• Display complex non-number levels for building POIs
• Improve search for peaks and saddles/passes
• EN as additional search language in the OSM Editor
• Update Estonian, Finnish, German, Italian, Turkish translations
• ...many more bug fixes and UI improvements
Map:
• Added Hearing Aids shops, Communication Towers, Crosses, Oil/Gas Wells, Gas Flares, Lifeguards, Motorcycle Rentals, Mountain Rescue Stations, Obelisks (as monuments), separate Quarters (were merged with Neighbourhoods before)
• Outdoors: raised visibility of Huts, Shelters, Hunting Stands, Towers, Cairns, Storage Tanks, Silos
• Outdoors: added Minor Power Lines, Utility and Power Poles; increased visibility of major Power Lines and Pylons
• Added captions to named Cliffs, City Walls, Embankments, Power Lines
• Tuned visibility and priority of some niche shops
OSM editor:
• Added ability to edit "Self-service" and "Outdoor seating" POI attributes
• Don't hide OSM login page when offline
• Added icons to address and number of floors input fields
• Fixed many other bugs, thanks to contributor @map-per who did a lot of under-the-hood work!
Other:
• Open track's info page automatically upon record finish / track save
• Show "Add Stop" button for the selected track point when in the navigation mode
• Voice directions: announce route recalculation
• Better looking track elevation profiles
• Made Track Recording live activity widget properly dismissable
• Don't always default to the subway routing mode when the subway layer is active
• Fixed bookmarks storing POI name in a wrong language
• Fixed on-building POIs disappearing when in perspective view
• Fixed empty speed limit sign displayed in foot navigation
• Fixed stuck map rotation gesture when zoomed in max
• iCloud sync bug fixes and some minor UI fixes

View file

@ -1,20 +1,31 @@
• New OpenStreetMap data as of January 21
• Tap tracks to display statistics and an interactive elevation profile
• A standalone Track Recording button
• Track Recording Live Activity Widget with track statistics (iOS16.2 and later)
• Added Serbian (Cyrillic) and Latvian languages
• Added tower POIs
• New OpenStreetMap data as of February 27
• Search: split screen to show both the map and the list at the same time
• Ability to share a single selected track from the list
• Improved routing for bicycles
• Added tracks and bookmarks colors into exported GPX files
• Added specific icons for Hong Kong, Shenzhen metro and Berlin light rail, a separate monorail icon
• Added a context menu to the coordinates button in POI details
• Show a reminder popup every time a full screen mode is entered
• Display an explanation when the OSM Editor category search returns nothing
• Differentiate between grass and grassland/meadow colors
• Less saturated/prominent residential gardens color
• Fixed yellow road shields displayed as green in the night mode
• Display vegetation fills earlier in the car navigation style
• Display complex non-number levels for building POIs
• Improve search for peaks and saddles/passes
• EN as additional search language in the OSM Editor
• Update Estonian, Finnish, German, Italian, Turkish translations
• ...many more bug fixes and UI improvements
Map:
• Added Hearing Aids shops, Communication Towers, Crosses, Oil/Gas Wells, Gas Flares, Lifeguards, Motorcycle Rentals, Mountain Rescue Stations, Obelisks (as monuments), separate Quarters (were merged with Neighbourhoods before)
• Outdoors: raised visibility of Huts, Shelters, Hunting Stands, Towers, Cairns, Storage Tanks, Silos
• Outdoors: added Minor Power Lines, Utility and Power Poles; increased visibility of major Power Lines and Pylons
• Added captions to named Cliffs, City Walls, Embankments, Power Lines
• Tuned visibility and priority of some niche shops
OSM editor:
• Added ability to edit "Self-service" and "Outdoor seating" POI attributes
• Don't hide OSM login page when offline
• Added icons to address and number of floors input fields
• Fixed many other bugs, thanks to contributor @map-per who did a lot of under-the-hood work!
Other:
• Open track's info page automatically upon record finish / track save
• Show "Add Stop" button for the selected track point when in the navigation mode
• Voice directions: announce route recalculation
• Better looking track elevation profiles
• Made Track Recording live activity widget properly dismissable
• Don't always default to the subway routing mode when the subway layer is active
• Fixed bookmarks storing POI name in a wrong language
• Fixed on-building POIs disappearing when in perspective view
• Fixed empty speed limit sign displayed in foot navigation
• Fixed stuck map rotation gesture when zoomed in max
• iCloud sync bug fixes and some minor UI fixes

View file

@ -1,20 +1,31 @@
• Nouvelles données OpenStreetMap du 21 janvier
• Appuyez sur les pistes pour afficher des statistiques et un profil d'altitude interactif
• Un bouton d'enregistrement de piste autonome
• Widget d'activité en direct d'enregistrement de piste avec statistiques de piste (iOS 16.2 et versions ultérieures)
• Ajout des langues serbe (cyrillique) et lettone
• Ajout de POI de tour
• Nouvelles données OpenStreetMap du 27 février
• Recherche : écran partagé pour afficher simultanément la carte et la liste
• Possibilité de partager une seule piste sélectionnée dans la liste
• Amélioration du routage pour les vélos
• Ajout de pistes et de couleurs de signets dans les fichiers GPX exportés
• Ajout d'icônes spécifiques pour le métro de Hong Kong, de Shenzhen et le métro léger de Berlin, ainsi qu'une icône de monorail distincte
• Ajout d'un menu contextuel au bouton de coordonnées dans les détails du POI
• Afficher une fenêtre contextuelle de rappel à chaque fois que le mode plein écran est activé
• Afficher une explication lorsque la recherche de catégorie de l'éditeur OSM ne renvoie rien
• Faire la différence entre les couleurs de lherbe et celles des prairies
• Couleur des jardins résidentiels moins saturée/proéminente
• Correction des panneaux routiers jaunes affichés en vert en mode nuit
• Afficher les remplissages de végétation plus tôt dans le style de navigation automobile
• Afficher des niveaux complexes non numériques pour la création de POI
• Améliorer la recherche de sommets et de cols
• EN comme langue de recherche supplémentaire dans l'éditeur OSM
• Mettre à jour les traductions en estonien, finnois, allemand, italien et turc
• ... de nombreuses autres corrections de bugs et améliorations de l'interface utilisateur
Carte :
• Ajout de magasins d'appareils auditifs, de tours de communication, de croix, de puits de pétrole/gaz, de torchères à gaz, de sauveteurs, de locations de motos, de postes de secours en montagne, d'obélisques (en tant que monuments), de quartiers séparés (qui étaient auparavant fusionnés avec les quartiers)
• Extérieur : visibilité accrue des cabanes, abris, postes de chasse, tours, cairns, réservoirs de stockage, silos
• Extérieur : ajout de lignes électriques secondaires, de poteaux électriques et de services publics ; visibilité accrue des principales lignes électriques et pylônes
• Ajout de légendes aux falaises nommées, aux murs de la ville, aux remblais et aux lignes électriques
• Visibilité et priorité optimisées de certains magasins de niche
Éditeur OSM :
• Ajout de la possibilité de modifier les attributs POI « Libre-service » et « Terrasse en extérieur »
• Ne pas masquer la page de connexion OSM en mode hors ligne
• Ajout d'icônes aux champs de saisie d'adresse et de nombre d'étages
• Correction de nombreux autres bugs, grâce au contributeur @map-per qui a fait beaucoup de travail en coulisses !
Autre :
• Ouvrir automatiquement la page d'informations de la piste à la fin de l'enregistrement/enregistrement de la piste
• Afficher le bouton « Ajouter un arrêt » pour le point de piste sélectionné en mode navigation
• Directions vocales : annoncer le recalcul de l'itinéraire
• Profils d'élévation de piste plus esthétiques
• Le widget d'activité en direct d'enregistrement de piste peut désormais être correctement supprimé
• Ne pas toujours passer par défaut au mode de routage du métro lorsque la couche de métro est active
• Correction des signets stockant le nom du POI dans une mauvaise langue
• Correction des POI sur bâtiment qui disparaissaient en vue perspective
• Correction du panneau de limitation de vitesse vide affiché dans la navigation à pied
• Correction du geste de rotation de carte bloqué lors d'un zoom avant maximal
• Correction des bugs de synchronisation iCloud et quelques corrections mineures de l'interface utilisateur

View file

@ -1,20 +1,31 @@
• New OpenStreetMap data as of January 21
• Tap tracks to display statistics and an interactive elevation profile
• A standalone Track Recording button
• Track Recording Live Activity Widget with track statistics (iOS16.2 and later)
• Added Serbian (Cyrillic) and Latvian languages
• Added tower POIs
• New OpenStreetMap data as of February 27
• Search: split screen to show both the map and the list at the same time
• Ability to share a single selected track from the list
• Improved routing for bicycles
• Added tracks and bookmarks colors into exported GPX files
• Added specific icons for Hong Kong, Shenzhen metro and Berlin light rail, a separate monorail icon
• Added a context menu to the coordinates button in POI details
• Show a reminder popup every time a full screen mode is entered
• Display an explanation when the OSM Editor category search returns nothing
• Differentiate between grass and grassland/meadow colors
• Less saturated/prominent residential gardens color
• Fixed yellow road shields displayed as green in the night mode
• Display vegetation fills earlier in the car navigation style
• Display complex non-number levels for building POIs
• Improve search for peaks and saddles/passes
• EN as additional search language in the OSM Editor
• Update Estonian, Finnish, German, Italian, Turkish translations
• ...many more bug fixes and UI improvements
Map:
• Added Hearing Aids shops, Communication Towers, Crosses, Oil/Gas Wells, Gas Flares, Lifeguards, Motorcycle Rentals, Mountain Rescue Stations, Obelisks (as monuments), separate Quarters (were merged with Neighbourhoods before)
• Outdoors: raised visibility of Huts, Shelters, Hunting Stands, Towers, Cairns, Storage Tanks, Silos
• Outdoors: added Minor Power Lines, Utility and Power Poles; increased visibility of major Power Lines and Pylons
• Added captions to named Cliffs, City Walls, Embankments, Power Lines
• Tuned visibility and priority of some niche shops
OSM editor:
• Added ability to edit "Self-service" and "Outdoor seating" POI attributes
• Don't hide OSM login page when offline
• Added icons to address and number of floors input fields
• Fixed many other bugs, thanks to contributor @map-per who did a lot of under-the-hood work!
Other:
• Open track's info page automatically upon record finish / track save
• Show "Add Stop" button for the selected track point when in the navigation mode
• Voice directions: announce route recalculation
• Better looking track elevation profiles
• Made Track Recording live activity widget properly dismissable
• Don't always default to the subway routing mode when the subway layer is active
• Fixed bookmarks storing POI name in a wrong language
• Fixed on-building POIs disappearing when in perspective view
• Fixed empty speed limit sign displayed in foot navigation
• Fixed stuck map rotation gesture when zoomed in max
• iCloud sync bug fixes and some minor UI fixes

View file

@ -1,20 +1,31 @@
• New OpenStreetMap data as of January 21
• Tap tracks to display statistics and an interactive elevation profile
• A standalone Track Recording button
• Track Recording Live Activity Widget with track statistics (iOS16.2 and later)
• Added Serbian (Cyrillic) and Latvian languages
• Added tower POIs
• New OpenStreetMap data as of February 27
• Search: split screen to show both the map and the list at the same time
• Ability to share a single selected track from the list
• Improved routing for bicycles
• Added tracks and bookmarks colors into exported GPX files
• Added specific icons for Hong Kong, Shenzhen metro and Berlin light rail, a separate monorail icon
• Added a context menu to the coordinates button in POI details
• Show a reminder popup every time a full screen mode is entered
• Display an explanation when the OSM Editor category search returns nothing
• Differentiate between grass and grassland/meadow colors
• Less saturated/prominent residential gardens color
• Fixed yellow road shields displayed as green in the night mode
• Display vegetation fills earlier in the car navigation style
• Display complex non-number levels for building POIs
• Improve search for peaks and saddles/passes
• EN as additional search language in the OSM Editor
• Update Estonian, Finnish, German, Italian, Turkish translations
• ...many more bug fixes and UI improvements
Map:
• Added Hearing Aids shops, Communication Towers, Crosses, Oil/Gas Wells, Gas Flares, Lifeguards, Motorcycle Rentals, Mountain Rescue Stations, Obelisks (as monuments), separate Quarters (were merged with Neighbourhoods before)
• Outdoors: raised visibility of Huts, Shelters, Hunting Stands, Towers, Cairns, Storage Tanks, Silos
• Outdoors: added Minor Power Lines, Utility and Power Poles; increased visibility of major Power Lines and Pylons
• Added captions to named Cliffs, City Walls, Embankments, Power Lines
• Tuned visibility and priority of some niche shops
OSM editor:
• Added ability to edit "Self-service" and "Outdoor seating" POI attributes
• Don't hide OSM login page when offline
• Added icons to address and number of floors input fields
• Fixed many other bugs, thanks to contributor @map-per who did a lot of under-the-hood work!
Other:
• Open track's info page automatically upon record finish / track save
• Show "Add Stop" button for the selected track point when in the navigation mode
• Voice directions: announce route recalculation
• Better looking track elevation profiles
• Made Track Recording live activity widget properly dismissable
• Don't always default to the subway routing mode when the subway layer is active
• Fixed bookmarks storing POI name in a wrong language
• Fixed on-building POIs disappearing when in perspective view
• Fixed empty speed limit sign displayed in foot navigation
• Fixed stuck map rotation gesture when zoomed in max
• iCloud sync bug fixes and some minor UI fixes

View file

@ -1,20 +1,31 @@
• New OpenStreetMap data as of January 21
• Tap tracks to display statistics and an interactive elevation profile
• A standalone Track Recording button
• Track Recording Live Activity Widget with track statistics (iOS16.2 and later)
• Added Serbian (Cyrillic) and Latvian languages
• Added tower POIs
• New OpenStreetMap data as of February 27
• Search: split screen to show both the map and the list at the same time
• Ability to share a single selected track from the list
• Improved routing for bicycles
• Added tracks and bookmarks colors into exported GPX files
• Added specific icons for Hong Kong, Shenzhen metro and Berlin light rail, a separate monorail icon
• Added a context menu to the coordinates button in POI details
• Show a reminder popup every time a full screen mode is entered
• Display an explanation when the OSM Editor category search returns nothing
• Differentiate between grass and grassland/meadow colors
• Less saturated/prominent residential gardens color
• Fixed yellow road shields displayed as green in the night mode
• Display vegetation fills earlier in the car navigation style
• Display complex non-number levels for building POIs
• Improve search for peaks and saddles/passes
• EN as additional search language in the OSM Editor
• Update Estonian, Finnish, German, Italian, Turkish translations
• ...many more bug fixes and UI improvements
Map:
• Added Hearing Aids shops, Communication Towers, Crosses, Oil/Gas Wells, Gas Flares, Lifeguards, Motorcycle Rentals, Mountain Rescue Stations, Obelisks (as monuments), separate Quarters (were merged with Neighbourhoods before)
• Outdoors: raised visibility of Huts, Shelters, Hunting Stands, Towers, Cairns, Storage Tanks, Silos
• Outdoors: added Minor Power Lines, Utility and Power Poles; increased visibility of major Power Lines and Pylons
• Added captions to named Cliffs, City Walls, Embankments, Power Lines
• Tuned visibility and priority of some niche shops
OSM editor:
• Added ability to edit "Self-service" and "Outdoor seating" POI attributes
• Don't hide OSM login page when offline
• Added icons to address and number of floors input fields
• Fixed many other bugs, thanks to contributor @map-per who did a lot of under-the-hood work!
Other:
• Open track's info page automatically upon record finish / track save
• Show "Add Stop" button for the selected track point when in the navigation mode
• Voice directions: announce route recalculation
• Better looking track elevation profiles
• Made Track Recording live activity widget properly dismissable
• Don't always default to the subway routing mode when the subway layer is active
• Fixed bookmarks storing POI name in a wrong language
• Fixed on-building POIs disappearing when in perspective view
• Fixed empty speed limit sign displayed in foot navigation
• Fixed stuck map rotation gesture when zoomed in max
• iCloud sync bug fixes and some minor UI fixes

View file

@ -1,20 +1,31 @@
• New OpenStreetMap data as of January 21
• Tap tracks to display statistics and an interactive elevation profile
• A standalone Track Recording button
• Track Recording Live Activity Widget with track statistics (iOS16.2 and later)
• Added Serbian (Cyrillic) and Latvian languages
• Added tower POIs
• New OpenStreetMap data as of February 27
• Search: split screen to show both the map and the list at the same time
• Ability to share a single selected track from the list
• Improved routing for bicycles
• Added tracks and bookmarks colors into exported GPX files
• Added specific icons for Hong Kong, Shenzhen metro and Berlin light rail, a separate monorail icon
• Added a context menu to the coordinates button in POI details
• Show a reminder popup every time a full screen mode is entered
• Display an explanation when the OSM Editor category search returns nothing
• Differentiate between grass and grassland/meadow colors
• Less saturated/prominent residential gardens color
• Fixed yellow road shields displayed as green in the night mode
• Display vegetation fills earlier in the car navigation style
• Display complex non-number levels for building POIs
• Improve search for peaks and saddles/passes
• EN as additional search language in the OSM Editor
• Update Estonian, Finnish, German, Italian, Turkish translations
• ...many more bug fixes and UI improvements
Map:
• Added Hearing Aids shops, Communication Towers, Crosses, Oil/Gas Wells, Gas Flares, Lifeguards, Motorcycle Rentals, Mountain Rescue Stations, Obelisks (as monuments), separate Quarters (were merged with Neighbourhoods before)
• Outdoors: raised visibility of Huts, Shelters, Hunting Stands, Towers, Cairns, Storage Tanks, Silos
• Outdoors: added Minor Power Lines, Utility and Power Poles; increased visibility of major Power Lines and Pylons
• Added captions to named Cliffs, City Walls, Embankments, Power Lines
• Tuned visibility and priority of some niche shops
OSM editor:
• Added ability to edit "Self-service" and "Outdoor seating" POI attributes
• Don't hide OSM login page when offline
• Added icons to address and number of floors input fields
• Fixed many other bugs, thanks to contributor @map-per who did a lot of under-the-hood work!
Other:
• Open track's info page automatically upon record finish / track save
• Show "Add Stop" button for the selected track point when in the navigation mode
• Voice directions: announce route recalculation
• Better looking track elevation profiles
• Made Track Recording live activity widget properly dismissable
• Don't always default to the subway routing mode when the subway layer is active
• Fixed bookmarks storing POI name in a wrong language
• Fixed on-building POIs disappearing when in perspective view
• Fixed empty speed limit sign displayed in foot navigation
• Fixed stuck map rotation gesture when zoomed in max
• iCloud sync bug fixes and some minor UI fixes

View file

@ -1,20 +1,31 @@
• New OpenStreetMap data as of January 21
• Tap tracks to display statistics and an interactive elevation profile
• A standalone Track Recording button
• Track Recording Live Activity Widget with track statistics (iOS16.2 and later)
• Added Serbian (Cyrillic) and Latvian languages
• Added tower POIs
• New OpenStreetMap data as of February 27
• Search: split screen to show both the map and the list at the same time
• Ability to share a single selected track from the list
• Improved routing for bicycles
• Added tracks and bookmarks colors into exported GPX files
• Added specific icons for Hong Kong, Shenzhen metro and Berlin light rail, a separate monorail icon
• Added a context menu to the coordinates button in POI details
• Show a reminder popup every time a full screen mode is entered
• Display an explanation when the OSM Editor category search returns nothing
• Differentiate between grass and grassland/meadow colors
• Less saturated/prominent residential gardens color
• Fixed yellow road shields displayed as green in the night mode
• Display vegetation fills earlier in the car navigation style
• Display complex non-number levels for building POIs
• Improve search for peaks and saddles/passes
• EN as additional search language in the OSM Editor
• Update Estonian, Finnish, German, Italian, Turkish translations
• ...many more bug fixes and UI improvements
Map:
• Added Hearing Aids shops, Communication Towers, Crosses, Oil/Gas Wells, Gas Flares, Lifeguards, Motorcycle Rentals, Mountain Rescue Stations, Obelisks (as monuments), separate Quarters (were merged with Neighbourhoods before)
• Outdoors: raised visibility of Huts, Shelters, Hunting Stands, Towers, Cairns, Storage Tanks, Silos
• Outdoors: added Minor Power Lines, Utility and Power Poles; increased visibility of major Power Lines and Pylons
• Added captions to named Cliffs, City Walls, Embankments, Power Lines
• Tuned visibility and priority of some niche shops
OSM editor:
• Added ability to edit "Self-service" and "Outdoor seating" POI attributes
• Don't hide OSM login page when offline
• Added icons to address and number of floors input fields
• Fixed many other bugs, thanks to contributor @map-per who did a lot of under-the-hood work!
Other:
• Open track's info page automatically upon record finish / track save
• Show "Add Stop" button for the selected track point when in the navigation mode
• Voice directions: announce route recalculation
• Better looking track elevation profiles
• Made Track Recording live activity widget properly dismissable
• Don't always default to the subway routing mode when the subway layer is active
• Fixed bookmarks storing POI name in a wrong language
• Fixed on-building POIs disappearing when in perspective view
• Fixed empty speed limit sign displayed in foot navigation
• Fixed stuck map rotation gesture when zoomed in max
• iCloud sync bug fixes and some minor UI fixes

Some files were not shown because too many files have changed in this diff Show more