Compare commits

..

236 Commits

Author SHA1 Message Date
mvglasow
9d64525897 Merge commit '4f2b479b' into traffic
# Conflicts:
#	android/app/src/main/java/app/organicmaps/settings/SettingsPrefsFragment.java
2026-01-10 21:55:11 +02:00
mvglasow
426a9661ab Merge commit 'd473361e5' into traffic 2025-12-14 12:40:00 +02:00
mvglasow
6dbde46dca [traffic] Remove obsolete code, fixes regression from 645ca792
Signed-off-by: mvglasow <michael -at- vonglasow.com>
2025-11-23 17:06:15 +02:00
mvglasow
7ed4a6ddd9 Merge commit '07cd1ec4f5' into traffic
# Conflicts:
#	libs/indexer/ftypes_matcher.hpp

Bug: boost/regex.hpp may not be found
Workaround: remove `if` in CMakeLists.txt:226, leave `include_directories`
2025-11-23 17:04:45 +02:00
mvglasow
645ca792f7 [traffic] Remove obsolete code
Signed-off-by: mvglasow <michael -at- vonglasow.com>
2025-11-22 15:38:47 +02:00
mvglasow
cd64d14830 [traffic] Remove obsolete code
Signed-off-by: mvglasow <michael -at- vonglasow.com>
2025-11-22 14:45:40 +02:00
mvglasow
67b1d918ba Merge commit '7312560f48' into traffic
# Conflicts:
#	iphone/Maps/UI/Settings/SettingsNavigationView.swift
#	libs/drape_frontend/rule_drawer.cpp
#	libs/traffic/traffic_info.cpp
2025-11-21 22:33:12 +02:00
mvglasow
48a3e5d4b0 [routing] Documentation
Signed-off-by: mvglasow <michael -at- vonglasow.com>
2025-11-18 00:00:30 +02:00
mvglasow
d4c002851b [traffic] Ignore access flags when decoding closure events
Fixes decoding of closures which are mapped in OSM as access restrictions

Signed-off-by: mvglasow <michael -at- vonglasow.com>
2025-11-13 21:16:45 +02:00
mvglasow
9d4801886e [traffxml] Tweak junction search radius for lower road classes
Signed-off-by: mvglasow <michael -at- vonglasow.com>
2025-11-12 21:34:23 +02:00
mvglasow
5a26b72431 [traff_assessment_tool] Do not show progress bar on loading an empty feed
Signed-off-by: mvglasow <michael -at- vonglasow.com>
2025-11-12 20:20:01 +02:00
mvglasow
859b89e127 [traff_assessment_tool] Make OK the default button in open dialog
Signed-off-by: mvglasow <michael -at- vonglasow.com>
2025-11-11 21:41:25 +02:00
mvglasow
8fcf00b0ca [routing] In decoder mode, snap to segment endpoints (no partial segments)
Signed-off-by: mvglasow <michael -at- vonglasow.com>
2025-11-11 21:10:27 +02:00
mvglasow
5c2cedb19a [traffxml] Documentation
Signed-off-by: mvglasow <michael -at- vonglasow.com>
2025-11-10 23:32:53 +02:00
mvglasow
67a3866529 [geometry] Documentation
Signed-off-by: mvglasow <michael -at- vonglasow.com>
2025-11-10 21:55:52 +02:00
mvglasow
90fdf0ed72 [routing] Documentation
Signed-off-by: mvglasow <michael -at- vonglasow.com>
2025-11-09 23:50:46 +02:00
mvglasow
2b7ee4ba44 [traff_assessment_tool] Show location fuzziness in list
Signed-off-by: mvglasow <michael -at- vonglasow.com>
2025-11-09 00:49:47 +02:00
mvglasow
cd1201cb02 [traffic] Prioritize message which are updates with an unchanged location
Signed-off-by: mvglasow <michael -at- vonglasow.com>
2025-11-08 23:45:45 +02:00
mvglasow
e6937b211a [traffic] Optimize comparison for cancellation messages
Signed-off-by: mvglasow <michael -at- vonglasow.com>
2025-11-08 23:03:32 +02:00
mvglasow
27ad70d729 [traffic] Decode nearby messages first (based on position and viewport)
Signed-off-by: mvglasow <michael -at- vonglasow.com>
2025-11-08 22:28:01 +02:00
mvglasow
a9700156db [traffic] Keep polling and processing messages while routing
Signed-off-by: mvglasow <michael -at- vonglasow.com>
2025-11-08 17:49:46 +02:00
mvglasow
1d87e0e987 [traffic] Cache routing session state, introduce IsObserverInhibited()
Signed-off-by: mvglasow <michael -at- vonglasow.com>
2025-11-08 16:32:28 +02:00
mvglasow
f7882636cd [traffic] Documentation
Signed-off-by: mvglasow <michael -at- vonglasow.com>
2025-11-08 16:28:34 +02:00
mvglasow
40fbea11e7 [traffic][android] Keep Proguard from deleting TraFF classes
Signed-off-by: mvglasow <michael -at- vonglasow.com>
2025-11-07 00:41:30 +02:00
mvglasow
e87727c168 [traffic] Add missing override, silence warning
Signed-off-by: mvglasow <michael -at- vonglasow.com>
2025-11-06 22:29:06 +02:00
mvglasow
d82b545e30 [traffic][android] Move Java source files to android/sdk
Signed-off-by: mvglasow <michael -at- vonglasow.com>
2025-11-06 21:09:26 +02:00
mvglasow
781d973faa Merge commit '2601ec854a' into traffic
# Conflicts:
#	iphone/Maps/Model/Settings.swift
#	iphone/Maps/UI/Settings/SettingsNavigationView.swift
2025-11-05 23:06:07 +02:00
mvglasow
d6818786f7 [traffic] Vary junction search radius depending on road class
Signed-off-by: mvglasow <michael -at- vonglasow.com>
2025-11-04 20:33:08 +02:00
x7z4w
615f57c604 [traffxml] Faster MessageFromXml
Signed-off-by: x7z4w <x7z4w@noreply.codeberg.org>
2025-11-03 20:21:50 +01:00
mvglasow
af20e2b42b [traffic] Truncate decoded location to nearby junctions
Signed-off-by: mvglasow <michael -at- vonglasow.com>
2025-11-03 20:26:04 +02:00
mvglasow
05f6dfad7b [traffic] Dyamically determine radius in which to search for junctions
Signed-off-by: mvglasow <michael -at- vonglasow.com>
2025-11-03 20:26:04 +02:00
mvglasow
2b867a64a0 [traffic] Reduce weight for fake segments involving junctions
Signed-off-by: mvglasow <michael -at- vonglasow.com>
2025-11-03 20:26:04 +02:00
mvglasow
c0fd405798 [traffic] Refactor methods for penalty calculation
Signed-off-by: mvglasow <michael -at- vonglasow.com>
2025-11-03 20:26:04 +02:00
mvglasow
207d6c833d [traffic] Pass toJunctions parameter to TruncateRoute()
Signed-off-by: mvglasow <michael -at- vonglasow.com>
2025-11-03 20:26:04 +02:00
mvglasow
d47aa09053 [traffxml] Process fuzziness attribute in location
Signed-off-by: mvglasow <michael -at- vonglasow.com>
2025-10-27 22:50:05 +02:00
mvglasow
fbc150fae2 [routing] Documentation
Signed-off-by: mvglasow <michael -at- vonglasow.com>
2025-10-26 18:23:10 +02:00
mvglasow
d88ed01bc1 [traffic] Update comment on offroad penalty
Signed-off-by: mvglasow <michael -at- vonglasow.com>
2025-10-26 14:40:47 +02:00
mvglasow
3ec32e4415 [traffic] Use references for loop, not copies
Signed-off-by: mvglasow <michael -at- vonglasow.com>
2025-10-25 15:12:05 +03:00
mvglasow
9065f45b21 [traffic] Exclude roundabouts from decoded locations (with exceptions)
Signed-off-by: mvglasow <michael -at- vonglasow.com>
2025-10-25 15:09:28 +03:00
mvglasow
46d363ae24 [routing] Documentation
Signed-off-by: mvglasow <michael -at- vonglasow.com>
2025-10-25 14:49:49 +03:00
mvglasow
0dc62c47dd [traff_assessment_tool] Show decoding time
Signed-off-by: mvglasow <michael -at- vonglasow.com>
2025-10-24 21:44:38 +03:00
mvglasow
3c9eeb9a75 [traff_assessment_tool] Introduce status line for traffic panel
Signed-off-by: mvglasow <michael -at- vonglasow.com>
2025-10-21 21:13:26 +03:00
mvglasow
ae23afd72e [traff_assessment_tool] Hide progress bar only on final update
Signed-off-by: mvglasow <michael -at- vonglasow.com>
2025-10-21 00:07:57 +03:00
mvglasow
800cc0641b [traff_assessment_tool] Refactor TrafficModel constructor
Signed-off-by: mvglasow <michael -at- vonglasow.com>
2025-10-20 23:55:29 +03:00
mvglasow
1b74062447 [traff_assessment_tool] Show animation while feed is loading
Signed-off-by: mvglasow <michael -at- vonglasow.com>
2025-10-20 23:44:48 +03:00
mvglasow
6a694c5d3e [traffic] Documentation and comment cleanup
Signed-off-by: mvglasow <michael -at- vonglasow.com>
2025-10-20 22:47:26 +03:00
mvglasow
dda13b8d3d [traffic] Penalize turns near endpoints
This improves decoding quality on urban multi-carriageway roads.

Signed-off-by: mvglasow <michael -at- vonglasow.com>
2025-10-20 22:38:29 +03:00
mvglasow
c1340a9941 [traffic] Truncate locations which overshoot their endpoints
Signed-off-by: mvglasow <michael -at- vonglasow.com>
2025-10-19 22:39:06 +03:00
mvglasow
a313526aed [routing] Documentation
Signed-off-by: mvglasow <michael -at- vonglasow.com>
2025-10-19 18:02:04 +03:00
mvglasow
32d1a3a36e [traffic] Eliminate any ETA calculations, always return weight
Signed-off-by: mvglasow <michael -at- vonglasow.com>
2025-10-19 17:59:48 +03:00
mvglasow
3a45740884 [routing] Documentation
Signed-off-by: mvglasow <michael -at- vonglasow.com>
2025-10-19 17:45:35 +03:00
mvglasow
4e624bd04b [traffic] Comment out unused argument
Signed-off-by: mvglasow <michael -at- vonglasow.com>
2025-10-19 17:45:25 +03:00
mvglasow
a3d1ed83c3 [routing][traffic] Different routing options in navigation and decoder mode
Signed-off-by: mvglasow <michael -at- vonglasow.com>
2025-10-18 16:34:32 +03:00
mvglasow
38dbad0f7e [traffic] Add test cases
Signed-off-by: mvglasow <michael -at- vonglasow.com>
2025-10-18 15:24:00 +03:00
mvglasow
7fe5823140 [traffic] Optimize offroad penalty in decoder
Signed-off-by: mvglasow <michael -at- vonglasow.com>
2025-10-17 21:09:54 +03:00
mvglasow
091d510ba1 [traffic] Simplify ferry landing penalty in TraFF decoder
Signed-off-by: mvglasow <michael -at- vonglasow.com>
2025-10-14 21:52:12 +03:00
mvglasow
f07c8d66d8 [traffic] Calculate segment weight based on road ref
Signed-off-by: mvglasow <michael -at- vonglasow.com>
2025-10-14 21:41:22 +03:00
Yannik Bloscheck
c9f50cdc72 [ios] Enabled traffic button
Signed-off-by: Yannik Bloscheck <git@yannikbloscheck.com>
2025-10-14 10:54:37 +02:00
mvglasow
2ed9bc1880 [traffic] Properly process message replacement
Signed-off-by: mvglasow <michael -at- vonglasow.com>
2025-10-12 16:39:44 +03:00
mvglasow
d098ecae15 [traff_assessment_tool] Ensure traffic layer is enabled
Signed-off-by: mvglasow <michael -at- vonglasow.com>
2025-10-11 19:02:43 +03:00
mvglasow
9e06ec815e [traff_assessment_tool] Handle invalid selections gracefully, clear marks
Signed-off-by: mvglasow <michael -at- vonglasow.com>
2025-10-11 15:08:17 +03:00
mvglasow
bf6cf27f8c [traff_assessment_tool] Clear markers when updating TraFF data
Signed-off-by: mvglasow <michael -at- vonglasow.com>
2025-10-11 14:47:41 +03:00
mvglasow
bf36c875d5 Merge commit 'eb264889e3' into traffic 2025-10-10 18:40:35 +03:00
mvglasow
30b2df89cd [routing] Documentation
Signed-off-by: mvglasow <michael -at- vonglasow.com>
2025-10-09 20:44:33 +03:00
mvglasow
ba2d653a30 [3party/protobuf] Fix faulty merge
Signed-off-by: mvglasow <michael -at- vonglasow.com>
2025-09-28 13:55:34 +03:00
mvglasow
d6eacd7364 [drape] Correctly render traffic at zoom 20
Signed-off-by: mvglasow <michael -at- vonglasow.com>
2025-09-26 22:53:08 +03:00
mvglasow
07c75e627e [traff_assessment_tool] Move to tools
Signed-off-by: mvglasow <michael -at- vonglasow.com>
2025-09-12 21:40:35 +03:00
mvglasow
e7bde9aa05 [openlr_decoder] Fix faulty merge
Signed-off-by: mvglasow <michael -at- vonglasow.com>
2025-09-12 21:27:21 +03:00
mvglasow
5ba708caff [map] Documentation
Signed-off-by: mvglasow <michael -at- vonglasow.com>
2025-09-12 19:06:21 +03:00
mvglasow
48e8f32e01 [traff_assessment_tool] Use different marker colors for reference points
Also fixes bug with DebugMarkPoint no longer rendering after the last merge

Signed-off-by: mvglasow <michael -at- vonglasow.com>
2025-09-12 18:46:50 +03:00
mvglasow
38e98df6cc Merge commit '05cc660641' into traffic
# Conflicts:
#	CMakeLists.txt
#	android/app/src/main/java/app/organicmaps/settings/SettingsPrefsFragment.java
#	android/sdk/src/main/cpp/app/organicmaps/sdk/Framework.hpp
#	android/sdk/src/main/cpp/app/organicmaps/sdk/OrganicMaps.cpp
#	android/sdk/src/main/cpp/app/organicmaps/sdk/util/Config.cpp
#	libs/indexer/data_source.hpp
#	libs/indexer/feature.hpp
#	libs/indexer/ftypes_matcher.hpp
#	libs/map/framework.cpp
#	libs/map/traffic_manager.cpp
#	libs/routing/absent_regions_finder.cpp
#	libs/routing/edge_estimator.hpp
#	libs/routing/index_router.cpp
#	libs/routing/index_router.hpp
#	libs/routing/routing_session.hpp
#	libs/routing_common/num_mwm_id.hpp
#	libs/traffic/traffic_info.cpp
#	qt/mainwindow.hpp
#	qt/preferences_dialog.cpp
#	tools/openlr/helpers.hpp
#	tools/openlr/openlr_decoder.cpp
#	tools/openlr/openlr_decoder.hpp
#	tools/openlr/openlr_stat/openlr_stat.cpp
#	tools/openlr/router.hpp
#	tools/openlr/score_candidate_paths_getter.cpp
#	tools/openlr/score_candidate_paths_getter.hpp
#	xcode/CoMaps.xcworkspace/contents.xcworkspacedata
2025-09-10 21:22:40 +03:00
mvglasow
0713e22328 [traffic] Set default traffic URL to dev server
Signed-off-by: mvglasow <michael -at- vonglasow.com>
2025-09-01 22:02:45 +03:00
mvglasow
3ed31a575f [traffic] Inhibit perodic traffic updates during route calculation
Signed-off-by: mvglasow <michael -at- vonglasow.com>
2025-08-29 22:12:33 +03:00
mvglasow
ac87e3c585 [traffic] Handle MWM removal during traffic update
Signed-off-by: mvglasow <michael -at- vonglasow.com>
2025-08-29 17:49:15 +03:00
mvglasow
ef806cf18a Synchronize map updates with traffic manager
Signed-off-by: mvglasow <michael -at- vonglasow.com>
2025-08-28 21:10:42 +03:00
mvglasow
d46c0fec76 [traffic] Fix endless loop in TrafficManager::Invalidate()
Signed-off-by: mvglasow <michael -at- vonglasow.com>
2025-08-24 22:15:30 +03:00
mvglasow
1d42d3b431 [traff_assessment_tool] On click, zoom to message and show reference points
Signed-off-by: mvglasow <michael -at- vonglasow.com>
2025-08-19 20:03:04 +03:00
mvglasow
2663eda820 [traff_assessment_tool] Basic traffic message panel
Signed-off-by: mvglasow <michael -at- vonglasow.com>
2025-08-19 00:16:17 +03:00
mvglasow
16708aae7f [traff_assessment_tool] Rename TrafficMode to TrafficModel
Signed-off-by: mvglasow <michael -at- vonglasow.com>
2025-08-17 18:08:05 +03:00
mvglasow
6963637b1b [traffxml] Fix compiler warnings
Signed-off-by: mvglasow <michael -at- vonglasow.com>
2025-08-16 19:59:28 +03:00
mvglasow
57f55f1022 [traffxml] Fix attribute names in output
Signed-off-by: mvglasow <michael -at- vonglasow.com>
2025-08-16 19:52:03 +03:00
Eivind Samseth
01476d3dc7 Standard format changes 2025-08-16 17:59:47 +02:00
mvglasow
90d7cadc3f Merge commit '211e3fb4' into traffic
# Conflicts:
#	android/app/src/main/cpp/CMakeLists.txt
#	android/app/src/main/java/app/organicmaps/sdk/util/Config.java
#	android/app/src/main/java/app/organicmaps/settings/SettingsPrefsFragment.java
#	android/app/src/main/java/app/organicmaps/widget/placepage/sections/PlacePageLinksFragment.java
#	android/sdk/src/main/cpp/app/organicmaps/sdk/OrganicMaps.cpp
#	indexer/ftypes_matcher.hpp
#	iphone/Maps/Maps.xcodeproj/project.pbxproj
2025-08-16 18:04:14 +03:00
mvglasow
3a6f21dbd1 [traffic][android] Implement Android TraFF source
Signed-off-by: mvglasow <michael -at- vonglasow.com>
2025-08-16 14:59:22 +03:00
mvglasow
221fe69840 Merge remote-tracking branch 'upstream/traffic' into traffic 2025-08-12 19:04:30 +03:00
mvglasow
167f0b8377 Add traffic.xml to .gitignore
Signed-off-by: mvglasow <michael -at- vonglasow.com>
2025-08-12 19:02:46 +03:00
mvglasow
df7d507e1b WIP: [traffic][android] Implement Android TraFF source
Signed-off-by: mvglasow <michael -at- vonglasow.com>
2025-08-12 00:29:04 +03:00
mvglasow
fe737602d8 [traffxml] Documentation
Signed-off-by: mvglasow <michael -at- vonglasow.com>
2025-08-10 18:58:34 +03:00
mvglasow
daa147a721 [traffxml] Provide virtual destructor for TraffSource
Signed-off-by: mvglasow <michael -at- vonglasow.com>
2025-08-10 18:58:20 +03:00
mvglasow
bd555afe61 [traffxml] Remove unused HttpTraffSource::ThreadRoutine()
Signed-off-by: mvglasow <michael -at- vonglasow.com>
2025-08-10 18:57:52 +03:00
Yannik Bloscheck
73a70d943e [traffic][ios] Make HttpTraffSource configurable in Preferences
Signed-off-by: Yannik Bloscheck <git@yannikbloscheck.com>
2025-08-06 17:21:12 +02:00
mvglasow
dde50bd0a1 [traffic] Default URL
Signed-off-by: mvglasow <michael -at- vonglasow.com>
2025-07-29 20:39:57 +03:00
mvglasow
0106dc3fe5 [traffic] Remove unused constants
Signed-off-by: mvglasow <michael -at- vonglasow.com>
2025-07-29 20:39:05 +03:00
mvglasow
034856f033 Merge commit '20c9fc5f' into traffic-2025072304
# Conflicts:
#	android/app/src/main/res/xml/prefs_main.xml
#	qt/CMakeLists.txt
2025-07-28 18:27:49 +03:00
mvglasow
f53c794fdd [traffic] Add missing qualifier
Signed-off-by: mvglasow <michael -at- vonglasow.com>
2025-07-28 01:00:43 +03:00
mvglasow
dcab6ee5a0 [qt] Keep traffic URL editable even when source is disabled
Signed-off-by: mvglasow <michael -at- vonglasow.com>
2025-07-28 00:33:26 +03:00
mvglasow
edc15ac982 [traffic][android] Make HttpTraffSource configurable in Preferences
Signed-off-by: mvglasow <michael -at- vonglasow.com>
2025-07-28 00:33:26 +03:00
mvglasow
871cd73592 [traffic] Make traffic initialization work with LoadMapsAsync()
Signed-off-by: mvglasow <michael -at- vonglasow.com>
2025-07-28 00:33:25 +03:00
mvglasow
958be3dee6 [traffxml] Fix segfault when deleting the last vector element
v.erase(v.end()) is incorrect and will crash on clang but works on gcc

Signed-off-by: mvglasow <michael -at- vonglasow.com>
2025-07-28 00:33:25 +03:00
mvglasow
06f63dcb9a [traffxml] Fix compiler warning
Signed-off-by: mvglasow <michael -at- vonglasow.com>
2025-07-28 00:33:25 +03:00
mvglasow
bebac8d8a7 [traffxml] Remove openlr dependency, disable OpenLrV3TraffDecoder
Signed-off-by: mvglasow <michael -at- vonglasow.com>
2025-07-28 00:33:25 +03:00
mvglasow
a25602dbe0 [traffxml] Return to features supported by Clang 20.1 for IsoTime
This reverts commit 776444edc7c4730f67e8aa2fa30b983c73e01054.

# Conflicts:
#	traffxml/traff_model.cpp
2025-07-28 00:33:25 +03:00
mvglasow
98796cd6f8 [android] Link against traffxml
Signed-off-by: mvglasow <michael -at- vonglasow.com>
2025-07-28 00:33:25 +03:00
mvglasow
2729d07732 [traffic] Fix assignment
Signed-off-by: mvglasow <michael -at- vonglasow.com>
2025-07-28 00:33:25 +03:00
mvglasow
61b15d623d [traffxml] Fix compiler warnings
Signed-off-by: mvglasow <michael -at- vonglasow.com>
2025-07-28 00:33:25 +03:00
mvglasow
03d6847be3 [traffic][qt] Make HttpTraffSource configurable from Qt GUI
Signed-off-by: mvglasow <michael -at- vonglasow.com>
2025-07-28 00:33:25 +03:00
mvglasow
3b1fca01e3 [traffic] API to reconfigure a running HttpTrafficSource
Signed-off-by: mvglasow <michael -at- vonglasow.com>
2025-07-28 00:33:25 +03:00
mvglasow
be3792b93a [traffic] Remove obsolete code
Signed-off-by: mvglasow <michael -at- vonglasow.com>
2025-07-28 00:33:25 +03:00
mvglasow
7283e4ecb4 [traffic] Read HttpTrafficSource parameters from config
Signed-off-by: mvglasow <michael -at- vonglasow.com>
2025-07-28 00:33:25 +03:00
mvglasow
75c7d146af [traffic] Unsubscribe when traffic manager is disabled
Signed-off-by: mvglasow <michael -at- vonglasow.com>
2025-07-28 00:33:25 +03:00
mvglasow
d988ab3326 [traffic] Restore decoded segments from cache on startup
Signed-off-by: mvglasow <michael -at- vonglasow.com>
2025-07-28 00:33:25 +03:00
mvglasow
798affe0ef [traffxml] Documentation
Signed-off-by: mvglasow <michael -at- vonglasow.com>
2025-07-28 00:33:25 +03:00
mvglasow
93a1f9d1a6 [traffxml] Fix bug when storing point distance attribute
Signed-off-by: mvglasow <michael -at- vonglasow.com>
2025-07-28 00:33:25 +03:00
mvglasow
3f58c6ee20 [traffic] Implement HttpTraffSource
Signed-off-by: mvglasow <michael -at- vonglasow.com>
2025-07-28 00:33:25 +03:00
mvglasow
a20d1453e0 [traffic] Documentation
Signed-off-by: mvglasow <michael -at- vonglasow.com>
2025-07-28 00:33:25 +03:00
mvglasow
e825753487 [traffic] Remove obsolete code
Signed-off-by: mvglasow <michael -at- vonglasow.com>
2025-07-28 00:33:25 +03:00
mvglasow
cc58eaa50a [traffic] Restore and document enable/disable/pause/resume logic
Signed-off-by: mvglasow <michael -at- vonglasow.com>
2025-07-28 00:33:25 +03:00
mvglasow
75197a11a8 [traffic] Consider routing MWMs when updating subscriptions on resume
Signed-off-by: mvglasow <michael -at- vonglasow.com>
2025-07-28 00:33:25 +03:00
mvglasow
d03b47bee0 [traffic] Refactoring
Signed-off-by: mvglasow <michael -at- vonglasow.com>
2025-07-28 00:33:25 +03:00
mvglasow
daf344b27f [traffic] Remove m_mwmCache and related logic
Signed-off-by: mvglasow <michael -at- vonglasow.com>
2025-07-28 00:33:24 +03:00
mvglasow
121bdc4af8 [traffic] Do not announce traffic updates if nothing has changed
Signed-off-by: mvglasow <michael -at- vonglasow.com>
2025-07-28 00:33:24 +03:00
mvglasow
6656c7e441 [traffxml] Make sources pluggable
Signed-off-by: mvglasow <michael -at- vonglasow.com>
2025-07-28 00:33:24 +03:00
mvglasow
f32493faaa [traffxml] Comment and documentation cleanup
Signed-off-by: mvglasow <michael -at- vonglasow.com>
2025-07-28 00:33:24 +03:00
mvglasow
4f4d376a4a [traffic] Comment out unused code
Signed-off-by: mvglasow <michael -at- vonglasow.com>
2025-07-28 00:33:24 +03:00
mvglasow
4324e329e5 [routing] Documentation
Signed-off-by: mvglasow <michael -at- vonglasow.com>
2025-07-28 00:33:24 +03:00
mvglasow
9eeac05fdf [traffic] Update routing MWMs as route changes
Signed-off-by: mvglasow <michael -at- vonglasow.com>
2025-07-28 00:33:24 +03:00
mvglasow
b418cf659c Documentation
Signed-off-by: mvglasow <michael -at- vonglasow.com>
2025-07-28 00:33:24 +03:00
mvglasow
964368f5d4 [traffic] Replace full invalidation with subscription recalculation
Signed-off-by: mvglasow <michael -at- vonglasow.com>
2025-07-28 00:33:24 +03:00
mvglasow
23922f1c2b [traffic] Invalidate per MWM on download (untested)
Signed-off-by: mvglasow <michael -at- vonglasow.com>
2025-07-28 00:33:24 +03:00
mvglasow
f02b1538e7 Documentation
Signed-off-by: mvglasow <michael -at- vonglasow.com>
2025-07-28 00:33:24 +03:00
mvglasow
dd65e89f8f [traffic] Feature-complete cache persistence, including decoded coloring
Signed-off-by: mvglasow <michael -at- vonglasow.com>
2025-07-28 00:33:24 +03:00
mvglasow
f132022e60 [traffxml] Documentation
Signed-off-by: mvglasow <michael -at- vonglasow.com>
2025-07-28 00:33:24 +03:00
mvglasow
247f88254e [traffxml] Fix erroneous parsing of event length
Signed-off-by: mvglasow <michael -at- vonglasow.com>
2025-07-28 00:33:24 +03:00
mvglasow
81a31d6b42 [traffxml] Documentation and comments
Signed-off-by: mvglasow <michael -at- vonglasow.com>
2025-07-28 00:33:24 +03:00
mvglasow
89d1365fee [traffxml] Make some arguments const &
Signed-off-by: mvglasow <michael -at- vonglasow.com>
2025-07-28 00:33:23 +03:00
mvglasow
9fb08bdc56 [traffxml] Store message cache in file
So far only API and tests, and without decoded segments

Signed-off-by: mvglasow <michael -at- vonglasow.com>
2025-07-28 00:33:23 +03:00
mvglasow
371a58f6f9 [traffic] Use traff_storage to read hardcoded poll feeds
Signed-off-by: mvglasow <michael -at- vonglasow.com>
2025-07-28 00:33:23 +03:00
mvglasow
af8b748c59 [traffxml] Add traff_storage
Signed-off-by: mvglasow <michael -at- vonglasow.com>
2025-07-28 00:33:23 +03:00
mvglasow
a43e83d280 [traff_assessment_tool] Use path of last file (if any) for file dialog
Signed-off-by: mvglasow <michael -at- vonglasow.com>
2025-07-28 00:33:23 +03:00
mvglasow
04b2059ca0 [traffic] workaround for drape bug when updating segments
Signed-off-by: mvglasow <michael -at- vonglasow.com>
2025-07-28 00:33:23 +03:00
mvglasow
ed15925251 [traffxml] Remove some log output
Signed-off-by: mvglasow <michael -at- vonglasow.com>
2025-07-28 00:33:23 +03:00
mvglasow
173b5e1718 [traffic] Update clear/purge logic to use update mechanism
Signed-off-by: mvglasow <michael -at- vonglasow.com>
2025-07-28 00:33:23 +03:00
mvglasow
26aa5e5f54 [traffic] Handle removed segments or eased traffic impact
Signed-off-by: mvglasow <michael -at- vonglasow.com>
2025-07-28 00:33:23 +03:00
mvglasow
f31541efb2 [traffxml] Purge expired messages
Signed-off-by: mvglasow <michael -at- vonglasow.com>
2025-07-28 00:33:23 +03:00
mvglasow
db3ed87b92 [traff_assessment_tool] Update window title
Signed-off-by: mvglasow <michael -at- vonglasow.com>
2025-07-28 00:33:23 +03:00
mvglasow
fbaa5470fd [traff_assessment_tool] Shift timestamps read from TraFF files
Signed-off-by: mvglasow <michael -at- vonglasow.com>
2025-07-28 00:33:23 +03:00
mvglasow
0681171d69 [traffxml] Introduce timestamp shift operation
Signed-off-by: mvglasow <michael -at- vonglasow.com>
2025-07-28 00:33:23 +03:00
mvglasow
e3d86be324 [traffxml] Use std::chrono:utc_clock for IsoTime, improve parsing
Signed-off-by: mvglasow <michael -at- vonglasow.com>
2025-07-28 00:33:23 +03:00
mvglasow
ef3de2c781 [traffxml] Use std::chrono::system_clock for IsoTime
Signed-off-by: mvglasow <michael -at- vonglasow.com>
2025-07-28 00:33:23 +03:00
mvglasow
d574b536ba [traffxml] Fix ISO8601 parser regex
Signed-off-by: mvglasow <michael -at- vonglasow.com>
2025-07-28 00:33:22 +03:00
mvglasow
2d3ca8014b Documentation
Signed-off-by: mvglasow <michael -at- vonglasow.com>
2025-07-28 00:33:22 +03:00
mvglasow
df13e279b6 [traffic] Override EdgeEstimator::CalcOffroad()
Signed-off-by: mvglasow <michael -at- vonglasow.com>
2025-07-28 00:33:22 +03:00
mvglasow
b48310e6a5 [traffxml] Parse duration quantifier and use it for delays
Signed-off-by: mvglasow <michael -at- vonglasow.com>
2025-07-28 00:33:22 +03:00
mvglasow
b98fe1999c Documentation
Signed-off-by: mvglasow <michael -at- vonglasow.com>
2025-07-28 00:33:22 +03:00
mvglasow
d47713516d [traffxml] Ensure decoder uses newly-added maps
Signed-off-by: mvglasow <michael -at- vonglasow.com>
2025-07-28 00:33:22 +03:00
mvglasow
d72bd9e00e [traffic] Update traffic for all MWMs, active or not
Signed-off-by: mvglasow <michael -at- vonglasow.com>
2025-07-28 00:33:22 +03:00
mvglasow
8cffe8fa64 [traffic] Documentation and comments
Signed-off-by: mvglasow <michael -at- vonglasow.com>
2025-07-28 00:33:22 +03:00
mvglasow
ae5dea4a53 [traffic] Comment out more obsolete code
Signed-off-by: mvglasow <michael -at- vonglasow.com>
2025-07-28 00:33:22 +03:00
mvglasow
588332a23b [traffic] Remove dead code
Signed-off-by: mvglasow <michael -at- vonglasow.com>
2025-07-28 00:33:22 +03:00
mvglasow
3eb99e952c [map] Documentation and comments
Signed-off-by: mvglasow <michael -at- vonglasow.com>
2025-07-28 00:33:22 +03:00
mvglasow
9f4b6d73ce [traff_assessment_tool] Add UI for Clear()
Signed-off-by: mvglasow <michael -at- vonglasow.com>
2025-07-28 00:33:22 +03:00
mvglasow
488159e2f9 [traffic] Implement Clear()
Signed-off-by: mvglasow <michael -at- vonglasow.com>
2025-07-28 00:33:22 +03:00
mvglasow
f30316d868 [traff_assessment_tool] Open TraFF feed
Signed-off-by: mvglasow <michael -at- vonglasow.com>
2025-07-28 00:33:22 +03:00
mvglasow
daaf52d27d [traffic] Fix Push() and make it public for testing
Signed-off-by: mvglasow <michael -at- vonglasow.com>
2025-07-28 00:33:22 +03:00
mvglasow
ba9980ba36 [traffic] Introduce test mode for traffic manager
Signed-off-by: mvglasow <michael -at- vonglasow.com>
2025-07-28 00:33:22 +03:00
mvglasow
5531b1129b [traffxml] Code comment
Signed-off-by: mvglasow <michael -at- vonglasow.com>
2025-07-28 00:33:22 +03:00
mvglasow
394a6673e5 [traffxml] Silence compiler warning
Signed-off-by: mvglasow <michael -at- vonglasow.com>
2025-07-28 00:33:21 +03:00
mvglasow
62ee9d5b46 [traffic] Abort event loop run immediately if TrafficManager is disabled
Signed-off-by: mvglasow <michael -at- vonglasow.com>
2025-07-28 00:33:21 +03:00
mvglasow
2592bcf042 WIP: [traffxml] traff_assessment_tool, based on openlr_assessment_tool
Skeleton without any traff functionality so far
Contains some obsolete code, commented out with #ifdef openlr_obsolete

Signed-off-by: mvglasow <michael -at- vonglasow.com>
2025-07-28 00:33:21 +03:00
mvglasow
dd7ed98c1a [traffic] Use enabled state instead of Start()
Signed-off-by: mvglasow <michael -at- vonglasow.com>
2025-07-28 00:33:21 +03:00
mvglasow
76fce016bb [traffxml] Process delay in traffic impact
Signed-off-by: mvglasow <michael -at- vonglasow.com>
2025-07-28 00:33:21 +03:00
mvglasow
7db32a9922 [traffxml] Do not request additional maps during TraFF decoding
Signed-off-by: mvglasow <michael -at- vonglasow.com>
2025-07-28 00:33:21 +03:00
mvglasow
fa5608d874 [traffxml] Decode point locations (at)
Signed-off-by: mvglasow <michael -at- vonglasow.com>
2025-07-28 00:33:21 +03:00
mvglasow
185febd8d8 [traffic] Documentation and comments
Signed-off-by: mvglasow <michael -at- vonglasow.com>
2025-07-28 00:33:21 +03:00
mvglasow
7a5ea64ea0 [traffxml] Score candidates based on road attributes
Signed-off-by: mvglasow <michael -at- vonglasow.com>
2025-07-28 00:33:21 +03:00
mvglasow
a4106505af [traffxml] Code cleanup
Signed-off-by: mvglasow <michael -at- vonglasow.com>
2025-07-28 00:33:21 +03:00
mvglasow
083845a502 [traffxml] Fix location matching on dual carriageway roads
Signed-off-by: mvglasow <michael -at- vonglasow.com>
2025-07-28 00:33:21 +03:00
mvglasow
c6de2a25aa [traffic] Documentation
Signed-off-by: mvglasow <michael -at- vonglasow.com>
2025-07-28 00:33:21 +03:00
mvglasow
4c5fb21c33 [traffic] Use distances, not travel time, for weight in TraffEstimator
Signed-off-by: mvglasow <michael -at- vonglasow.com>
2025-07-28 00:33:21 +03:00
mvglasow
f566f6f0ef [traffxml] Use custom EdgeEstimator for decoding
Signed-off-by: mvglasow <michael -at- vonglasow.com>
2025-07-28 00:33:21 +03:00
mvglasow
9afb28aaa1 [traffxml] Add router-based decoder, still crude, ugly and buggy
To use it, redefine DefaultTraffDecoder in traffxml/traff_decoder.hpp

Signed-off-by: mvglasow <michael -at- vonglasow.com>
2025-07-28 00:33:21 +03:00
mvglasow
bd178932c1 [traffic] Refactor TraFF decoder into separate class
Signed-off-by: mvglasow <michael -at- vonglasow.com>
2025-07-28 00:33:21 +03:00
mvglasow
2894218573 [traffic] Use LFRCNP, derived from FRC
Signed-off-by: mvglasow <michael -at- vonglasow.com>
2025-07-28 00:33:21 +03:00
mvglasow
63f0799161 [traffic] Calculate DNP from nominal distance, if available and plausible
Signed-off-by: mvglasow <michael -at- vonglasow.com>
2025-07-28 00:33:21 +03:00
mvglasow
5b67d668bd [traffic] Refactor message decoding
Signed-off-by: mvglasow <michael -at- vonglasow.com>
2025-07-28 00:33:21 +03:00
mvglasow
f7adea08a2 [traffic] Documentation
Signed-off-by: mvglasow <michael -at- vonglasow.com>
2025-07-28 00:33:21 +03:00
mvglasow
c0c8d5da58 [traffxml] Parse and store distance for location points
Signed-off-by: mvglasow <michael -at- vonglasow.com>
2025-07-28 00:33:20 +03:00
mvglasow
2ed300ca08 [traffic] Comment cleanup
Signed-off-by: mvglasow <michael -at- vonglasow.com>
2025-07-28 00:33:20 +03:00
mvglasow
52a915211e [traffic] Remove mwms from ThreadRoutine()
Signed-off-by: mvglasow <michael -at- vonglasow.com>
2025-07-28 00:33:20 +03:00
mvglasow
18f1dfac45 [traffxml] Documentation
Signed-off-by: mvglasow <michael -at- vonglasow.com>
2025-07-28 00:33:20 +03:00
mvglasow
a7897e2347 [traffic] Calculate filter list for active MWMs
Signed-off-by: mvglasow <michael -at- vonglasow.com>
2025-07-28 00:33:20 +03:00
mvglasow
e3f5dd3ca8 [traffic] Throttle UI/router refresh while messages are being processed
Signed-off-by: mvglasow <michael -at- vonglasow.com>
2025-07-28 00:33:20 +03:00
mvglasow
de03995e77 [openlr] Modify openlr_stat to work with single data source
Signed-off-by: mvglasow <michael -at- vonglasow.com>
2025-07-28 00:33:20 +03:00
mvglasow
74d79e5c8e [traffic] Reuse previously decoded segments and coloring, where possible
Signed-off-by: mvglasow <michael -at- vonglasow.com>
2025-07-28 00:33:20 +03:00
mvglasow
e2aff53291 [traffic] Comparison operators for TrafficImpact, TraffLocation and Point
Signed-off-by: mvglasow <michael -at- vonglasow.com>
2025-07-28 00:33:20 +03:00
mvglasow
a39bdee0d1 [traffic] Refactor IsoTime comparison operators
Signed-off-by: mvglasow <michael -at- vonglasow.com>
2025-07-28 00:33:20 +03:00
mvglasow
136293c308 [traffic] Add IsoTime::IsPast()
Signed-off-by: mvglasow <michael -at- vonglasow.com>
2025-07-28 00:33:20 +03:00
mvglasow
356b051036 [traffic] Re-enable message deduplication between feed queue and cache
Signed-off-by: mvglasow <michael -at- vonglasow.com>
2025-07-28 00:33:20 +03:00
mvglasow
c8d5a07262 [traffic] Defer TrafficManager startup until MWMs are first updated
Signed-off-by: mvglasow <michael -at- vonglasow.com>
2025-07-28 00:33:20 +03:00
mvglasow
e94c23d538 [traffic] Insert mew messages into cache but skip deduplication for now
Signed-off-by: mvglasow <michael -at- vonglasow.com>
2025-07-28 00:33:20 +03:00
mvglasow
2ba3030366 [traffic] Remove forgotten InitializeDataSources() method
Obsolete since we started using a single data source in 5a031c55

Signed-off-by: mvglasow <michael -at- vonglasow.com>
2025-07-28 00:33:20 +03:00
mvglasow
3455050876 [traffic] Forgotten hunk of 9f39d3bc (store coloring with message)
Signed-off-by: mvglasow <michael -at- vonglasow.com>
2025-07-28 00:33:20 +03:00
mvglasow
cf57942a0b [traffic] Allow decoding to be interrupted after each message
Message deduplication currently disabled

Signed-off-by: mvglasow <michael -at- vonglasow.com>
2025-07-28 00:33:20 +03:00
mvglasow
3a713c477a [traffic] Refactor IsoTime into a class
Signed-off-by: mvglasow <michael -at- vonglasow.com>
2025-07-28 00:33:20 +03:00
mvglasow
edb1b7e784 [traffic] Consolidate feed queue before decoding messages
Signed-off-by: mvglasow <michael -at- vonglasow.com>
2025-07-28 00:33:20 +03:00
mvglasow
53e80b9283 [traffic] Refactor m_feeds to m_feedQueue
Signed-off-by: mvglasow <michael -at- vonglasow.com>
2025-07-28 00:33:20 +03:00
mvglasow
7107314e2f [traffic] Store colorings with message and build global coloring from that
Signed-off-by: mvglasow <michael -at- vonglasow.com>
2025-07-28 00:33:20 +03:00
mvglasow
fafec070c9 [traffic] Use MWM ID for Coloring map, now that we have a single DataSource
Signed-off-by: mvglasow <michael -at- vonglasow.com>
2025-07-28 00:33:20 +03:00
mvglasow
d7facd5732 [openlr] Initialize OpenLR decoder with a single DataSource
Signed-off-by: mvglasow <michael -at- vonglasow.com>
2025-07-28 00:33:20 +03:00
mvglasow
382e46af63 [routing] Documentation
Signed-off-by: mvglasow <michael -at- vonglasow.com>
2025-07-28 00:33:20 +03:00
mvglasow
d0a9c564e4 [traffic] Process TrafficImpact::m_maxspeed
Signed-off-by: mvglasow <michael -at- vonglasow.com>
2025-07-28 00:33:19 +03:00
mvglasow
a9ceec3995 [traffic] Initialize TrafficManager with a DataSource
Signed-off-by: mvglasow <michael -at- vonglasow.com>
2025-07-28 00:33:19 +03:00
mvglasow
73d61ff655 [traffic] Store TraFF message ID with decoded path
Signed-off-by: mvglasow <michael -at- vonglasow.com>
2025-07-28 00:33:19 +03:00
mvglasow
5cdf14386d [traffxml] Set OpenLR FOW for ramps
Signed-off-by: mvglasow <michael -at- vonglasow.com>
2025-07-28 00:33:19 +03:00
mvglasow
2f6a8564cb [openlr] Evaluate FOW for Sliproad/*_link
Signed-off-by: mvglasow <michael -at- vonglasow.com>
2025-07-28 00:33:19 +03:00
mvglasow
80a7ed503e [traffxml] Tweak GuessDnp
Signed-off-by: mvglasow <michael -at- vonglasow.com>
2025-07-28 00:33:19 +03:00
mvglasow
6e65e60c3d [traffxml] Set FRC on all OpenLR location reference points
Signed-off-by: mvglasow <michael -at- vonglasow.com>
2025-07-28 00:33:19 +03:00
mvglasow
f041f910e7 [openlr] Documentation
Signed-off-by: mvglasow <michael -at- vonglasow.com>
2025-07-28 00:33:19 +03:00
mvglasow
dbf253c9d1 [openlr] Always evaluate FRC and FOW, regardless of LinearSegment source
Signed-off-by: mvglasow <michael -at- vonglasow.com>
2025-07-28 00:33:19 +03:00
mvglasow
24d65bd37f WIP: [traffic] Implement basic TraFF parsing, currently from hardcoded path
Not feature complete, produces incorrect results for some test cases
Some parts of the implementation are not very elegant yet
Inefficient as the whole set of messages is parsed on update
Lots of verbose debug logging
Lots of dead code from old traffic module (#ifdef traffic_dead_code)

Signed-off-by: mvglasow <michael -at- vonglasow.com>
2025-07-28 00:33:19 +03:00
mvglasow
16cb70a952 [traffic] Add TrafficInfo constructor with Coloring
Signed-off-by: mvglasow <michael -at- vonglasow.com>
2025-07-28 00:33:19 +03:00
mvglasow
8827ec3c09 [indexer] Documentation
Signed-off-by: mvglasow <michael -at- vonglasow.com>
2025-07-28 00:33:19 +03:00
mvglasow
7be0b8a256 [traffxml] Adhere to naming convention for member names
Signed-off-by: mvglasow <michael -at- vonglasow.com>
2025-07-28 00:33:19 +03:00
mvglasow
f0f847b214 [openlr] Debug output for FunctionalRoadClass
Signed-off-by: mvglasow <michael -at- vonglasow.com>
2025-07-28 00:33:19 +03:00
mvglasow
2017907b1f [traffic] Documentation
Signed-off-by: mvglasow <michael -at- vonglasow.com>
2025-07-28 00:33:19 +03:00
mvglasow
bb410fc3bc [traffxml] Add module
Signed-off-by: mvglasow <michael -at- vonglasow.com>
2025-07-28 00:33:19 +03:00
mvglasow
6e8d400611 [traffic] Include OpenLR headers in traffic_manager.cpp
Signed-off-by: mvglasow <michael -at- vonglasow.com>
2025-07-28 00:33:19 +03:00
mvglasow
7b420def17 [qt] Link against openlr library
Signed-off-by: mvglasow <michael -at- vonglasow.com>
2025-07-28 00:33:19 +03:00
mvglasow
737d7b5643 [traffic] Initialize TrafficManager with CountryParentNameGetterFn
Signed-off-by: mvglasow <michael -at- vonglasow.com>

# Conflicts:
#	map/framework.cpp
#	map/traffic_manager.cpp
#	map/traffic_manager.hpp
2025-07-28 00:33:19 +03:00
mvglasow
9c93f421ac [traffic] Add documentation
Signed-off-by: mvglasow <michael -at- vonglasow.com>
2025-07-28 00:33:19 +03:00
mvglasow
1574b5b7cb Revert "[routing] Do not create TrafficStash instance."
This reverts commit 3c12ba5134f2aa9d19c0c9a54af89d368f389eb4.
2025-07-28 00:33:18 +03:00
mvglasow
932dda6552 Revert "[desktop] Disable traffic switch and TrafficManager initialization."
This reverts commit 16ad61f4c8ebd22bdc282496122db49a5243f02f.
2025-07-28 00:33:18 +03:00
mvglasow
6f2f61b30a Revert "[qt] Remove defunct Traffic layer button"
This reverts commit df2541e1bf12abca329becdac8de7c92f0893b03.
2025-07-28 00:33:08 +03:00
Konstantin Pastbin
20c9fc5f45 [fdroid] Release version 2025.07.23-4
Signed-off-by: Konstantin Pastbin <konstantin.pastbin@gmail.com>
2025-07-23 21:00:52 +07:00
Konstantin Pastbin
be3e3d773b [android] Fix Panoramax links not working
Signed-off-by: Konstantin Pastbin <konstantin.pastbin@gmail.com>
2025-07-23 20:59:37 +07:00
Konstantin Pastbin
0fd7f8d573 [fdroid] Release version 2025.07.23-2
Signed-off-by: Konstantin Pastbin <konstantin.pastbin@gmail.com>
2025-07-23 10:50:00 +07:00
394 changed files with 19317 additions and 10799 deletions

View File

@@ -1,129 +0,0 @@
name: process_subways
on:
workflow_dispatch: # Manual trigger
env:
PLANET: /home/planet/planet/planet.o5m
TMPDIR: /tmp
HTML_DIR: "/mnt/4tbexternal/osm-planet/subway/validator"
DUMP: "$HTML_DIR"
SKIP_PLANET_UPDATE: "1"
DEBIAN_FRONTEND: nonnteractive
TZ: Etc/UTC
# /var/www/html/subways is mapped as a volume on cdn-fi-1
# as is /tmp/planet
jobs:
clone-repos:
name: Clone Git Repos
runs-on: mapfilemaker
container:
image: codeberg.org/comaps/maps_generator:f6d53d54f794
volumes:
- /mnt/4tbexternal:/mnt/4tbexternal
concurrency:
group: ${{ github.workflow }}-process-subways-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true
steps:
- uses: actions/cache@v4
with:
path: "~"
key: cache-${{ github.run_id }}-${{ github.run_attempt }}
- name: Checkout subways repo
shell: bash
run: |
cd ~
git clone --depth 1 --single-branch https://codeberg.org/comaps/subways.git
update-planet-o5m:
name: Update O5M Planet
runs-on: mapfilemaker
container:
image: codeberg.org/comaps/maps_generator:f6d53d54f794
volumes:
- /mnt/4tbexternal/:/mnt/4tbexternal/
- /mnt/4tbexternal/osm-planet:/home/planet
concurrency:
group: ${{ github.workflow }}-process-subways-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true
steps:
- name: Check for O5M Planet File
shell: bash
run: |
if [ ! -f /home/planet/planet/planet.o5m ]; then
echo "WARN: No file at /home/planet/planet/planet.o5m"
if [ ! -f /home/planet/planet/planet-latest.osm.pbf ]; then
echo "ERROR: No file at /home/planet/planet/planet-latest.osm.pbf"
ls -al /home/planet/
ls -al /home/planet/planet/
exit 1
fi
echo "Converting planet-latest.osm.pbf to planet.o5m"
cd /home/planet/planet/
osmconvert -v --drop-author --drop-version --hash-memory=4000 planet-latest.osm.pbf -o=planet.o5m
echo "Conversion is done."
fi
- name: Update O5M planet
run: |
echo "Starting..."
cd /home/planet/planet/
rm -f planet-new.o5m
osmupdate -v --drop-author --drop-version --hash-memory=4000 --max-merge=32 --out-o5m planet.o5m planet-new.o5m
mv planet-new.o5m planet.o5m
echo "Done."
- name: Notify Zulip
run: |
curl -X POST https://comaps.zulipchat.com/api/v1/messages \
-u $ZULIP_BOT_EMAIL:$ZULIP_API_KEY \
--data-urlencode type=stream \
--data-urlencode 'to="DevOps"' \
--data-urlencode topic=codeberg-bot \
--data-urlencode 'content=O5M planet update is done!'
update-subways:
if: inputs.run-subways
name: Update Subways
runs-on: mapfilemaker
needs:
- clone-repos
container:
image: codeberg.org/comaps/maps_generator:f6d53d54f794
volumes:
- /mnt/4tbexternal/:/mnt/4tbexternal/
- /mnt/4tbexternal/osm-planet:/home/planet
concurrency:
group: ${{ github.workflow }}-map-generator-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true
steps:
- uses: actions/cache@v4
with:
path: "~"
key: cache-${{ github.run_id }}-${{ github.run_attempt }}
- name: Update Subways
shell: bash
run: |
cd ~/comaps/
cp tools/unix/maps/settings.sh.prod tools/unix/maps/settings.sh
./tools/unix/maps/generate_subways.sh
- name: Compare with VK validation
shell: bash
run: |
cd ~/subways
if [ -f "$HTML_DIR/index.html" ]; then
echo "Comparing local validation with VK's validation..."
python3 ./scripts/compare_html_validation.py "$HTML_DIR/index.html" \
--vk-url "https://maps.vk.com/osm/tools/subways/latest/index.html"
else
echo "Local index.html not found at $HTML_DIR/index.html"
exit 1
fi
- name: Notify Zulip
run: |
curl -X POST https://comaps.zulipchat.com/api/v1/messages \
-u $ZULIP_BOT_EMAIL:$ZULIP_API_KEY \
--data-urlencode type=stream \
--data-urlencode 'to="DevOps"' \
--data-urlencode topic=codeberg-bot \
--data-urlencode 'content=Subways are done!'

View File

@@ -15,7 +15,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout sources
uses: actions/checkout@v6
uses: actions/checkout@v4
with:
fetch-depth: 1
@@ -78,7 +78,7 @@ jobs:
pip install "protobuf<3.21" --break-system-packages
- name: Checkout sources
uses: actions/checkout@v6
uses: actions/checkout@v4
with:
fetch-depth: 200 # enough to get all commits for the current day
@@ -103,7 +103,7 @@ jobs:
./gradlew -P${{ matrix.arch }} assemble${{ matrix.flavor }}
- name: Upload ${{ matrix.flavor }} apk
uses: actions/upload-artifact@v6
uses: actions/upload-artifact@v4
with:
name: android-${{ matrix.flavor }}
path: android/app/build/outputs/apk/**/CoMaps-*.apk

View File

@@ -35,7 +35,7 @@ jobs:
xcodebuild -downloadPlatform iOS
- name: Checkout sources
uses: actions/checkout@v6
uses: actions/checkout@v4
- name: Parallel submodules checkout
shell: bash

1
.gitignore vendored
View File

@@ -21,6 +21,7 @@ data/symbols/**/symbols.sdf
data/bookmarks
data/edits.xml
data/traffic.xml
data/World.mwm
data/WorldCoasts.mwm
data/world_mwm/*

View File

@@ -116,6 +116,20 @@ endif()
message(STATUS "Build type: " ${CMAKE_BUILD_TYPE})
if (PLATFORM_LINUX OR PLATFORM_ANDROID)
find_program(LLD_FOUND ld.lld)
if (LLD_FOUND)
message(STATUS "Using ld.lld linker")
set(CMAKE_EXE_LINKER_FLAGS "-fuse-ld=lld")
else()
find_program(GOLD_FOUND ld.gold)
if (GOLD_FOUND)
message(STATUS "Using ld.gold")
set(CMAKE_EXE_LINKER_FLAGS "-fuse-ld=gold")
endif()
endif()
endif()
if (NOT SKIP_TESTS)
enable_testing()
# Enables ctest -T memcheck with valgrind

2
NOTICE
View File

@@ -1,6 +1,6 @@
Copyright 2020 My.com B.V. (Mail.Ru Group)
Copyright 2025 Organic Maps Contributors
Copyright 2026 CoMaps Contributors
Copyright 2025 CoMaps Contributors
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.

View File

@@ -1,17 +0,0 @@
## Reporting Vulnerabilities
You can report a security vulnerability by creating an issue or send mail to security@comaps.app
## Verifying Fingerprints
To [verify](https://developer.android.com/studio/command-line/apksigner#usage-verify) the APK, use the following signing certificate fingerprints:
```
SHA-256: 4894e8e6963627ef660031d8593fe77297f835acb4e23810003e926135023b4c
SHA-1: 8b7b5739f917e9f7c681671ced0c9c8562123ade
MD5: 9cce0ffea281dc2f0e0a154d6d2e281e
```
To verify CoMaps via [AppVerifier](https://github.com/soupslurpr/AppVerifier), use the following signing certificate fingerprint:
```
app.comaps
48:94:E8:E6:96:36:27:EF:66:00:31:D8:59:3F:E7:72:97:F8:35:AC:B4:E2:38:10:00:3E:92:61:35:02:3B:4C
```

View File

@@ -351,7 +351,6 @@ dependencies {
implementation libs.androidx.recyclerview
implementation libs.androidx.work.runtime
implementation libs.androidx.lifecycle.process
implementation libs.androidx.documentfile
implementation libs.android.material
// Fix for app/organicmaps/util/FileUploadWorker.java:14: error: cannot access ListenableFuture
// https://github.com/organicmaps/organicmaps/issues/6106

View File

@@ -28,3 +28,8 @@
# R8 crypts the source line numbers in all log messages.
# https://github.com/organicmaps/organicmaps/issues/6559#issuecomment-1812039926
-dontoptimize
# Keep classes for Android TraFF support
-keep class app.organicmaps.sdk.traffxml.SourceImplV0_7 { *; }
-keep class app.organicmaps.sdk.traffxml.SourceImplV0_8 { *; }

View File

@@ -1,6 +1,6 @@
Eine von der Community betriebene, kostenlose Open-Source Karten-App, die auf OpenStreetMap Daten basiert. Transparent und nicht gewinnorientiert. CoMaps ist ein Fork/Abspaltung von Organic Maps, die wiederum ein Fork/Abspaltung von Maps.Me ist.
Lese mehr über die Gründe und Ziele des Projektes unter <b><i>codeberg.org/comaps</i></b> (auf Englisch).
Lese mehr über die Gründe und Ziele des Projektes unter <b><i>codeberg.org/comaps</i></b>.
Werde Teil der Community und hilf mit, die beste Karten-App zu entwickeln
• Nutze die App und erzähle anderen davon
• Gib Feedback und melde Probleme
@@ -9,9 +9,9 @@ Werde Teil der Community und hilf mit, die beste Karten-App zu entwickeln
‣ <b>Einfach und ausgereift</b>: Essenzielle, leicht zu bedienende Funktionen, die einfach funktionieren.
‣ <b>Offline-orientiert</b>: Plane und navigiere im Ausland ohne Mobilfunkverbindung, finde Wegpunkte auf abgelegenen Wanderungen usw. Alle Funktionen sind für den Offline-Einsatz konzipiert.
‣ <b>Datenschutzfreundlich</b>: Die App wurde mit Fokus auf Privatsphäre entwickelt keine Personenidentifikation, kein Tracking, keine Erfassung persönlicher Daten, keine Werbung.
‣ <b>Spart Akku und Speicherplatz</b>: Verbraucht nicht unnötig viel Akku wie andere Navi-Apps. Kompakte Karten sparen Speicherplatz auf deinem Gerät.
‣ <b>Spart Akku und Speicherplatz</b>: Verbraucht nicht unnötig Akku wie andere Navi-Apps. Kompakte Karten sparen Speicherplatz auf deinem Gerät.
‣ <b>Kostenlos und von der Community entwickelt</b>: Menschen wie du haben geholfen, diese App zu entwickeln durch das Hinzufügen von Orten zu OpenStreetMap, Testen von neuen Funktionen, Softwareentwicklung oder Spenden.
‣ <b>Offen und transparent bei Entscheidungen und Finanzen, gemeinnützig und vollständig Open-Source.</b>
‣ <b>Offen und transparent bei Entscheidungen und Finanzen, gemeinnützig und vollständig Open-Source</b>
<b>Hauptfunktionen</b>:
• Detaillierte, herunterladbare Karten mit Orten, die bei Google Maps oft fehlen
@@ -28,5 +28,5 @@ Werde Teil der Community und hilf mit, die beste Karten-App zu entwickeln
• Dunkler Modus für die Nutzung bei Nacht
• Kartenbearbeitung direkt in der App mit einem einfachen Editor
<b>Freiheit beginnt hier</b>
Entdecke deine Reise, wobei Datenschutz und Gemeinschaft im Vordergrund stehen!
<b>Entdecke die Unabhängigkeit</b>
Entdecke deine Reise navigiere in der Welt mit Datenschutz!

View File

@@ -1 +1 @@
Leichte Navigation Erlebe mehr von deiner Reise Community-unterstützt
Einfache Navigation - Entdecken Sie mehr von Ihrer Reise - Community-Entwickelt

View File

@@ -1,32 +0,0 @@
Bendruomenės vystoma nemokama atvirojo kodo žemėlapių programa, pagrįsta „OpenStreetMap“ duomenimis ir sustiprinta įsipareigojimu užtikrinti skaidrumą, privatumą ir pelno nesiekimą. „CoMaps“ programa yra kilusi iš „Organic Maps“, o pastaroji iš programos „Maps.ME“.
Apie šio projekto kilmę, jos priežastis ir palaikomą kryptį galite paskaityti adresu <b><i>codeberg.org/comaps</i></b>.
Prisijunkite prie bendruomenės ir padėkite sukurti geriausią žemėlapių programą
• Naudokitės programa ir paskleiskite žinią apie ją
• Teikite atsiliepimus ir praneškite apie problemas
• Atnaujinkite žemėlapių duomenis programoje arba „OpenStreetMap“ svetainėje
‣ <b>Skirta naudoti neprisijungus prie interneto</b>: planuokite maršrutus ir keliaukite užsienyje be mobiliojo ryšio, ieškokite kelionės taškų tolimuose žygiuose ir pan. Visos programos funkcijos yra pritaikytos veikti be interneto ryšio.
‣ <b>Gerbia privatumą</b>: programėlė sukurta, teikiant prioritetą privatumui: neidentifikuoja žmonių, neseka ir nerenka asmeninės informacijos. Be reklamų.
‣ <b>Paprasta ir išbaigta</b>: esminės, lengvai naudojamos funkcijos, kurios tiesiog veikia.
‣ <b>Taupo bateriją ir vietą</b>: neišsekina baterijos kaip kitos navigacijos programos. Kompaktiški žemėlapiai tausoja vietą jūsų telefone.
‣ <b>Nemokama ir kuriama bendruomenės</b>: paprasti žmonės kaip jūs padėjo sukurti šią programą, pildydami „OpenStreetMap“ žemėlapį, išbandydami ir pateikdami atsiliepimus apie funkcijas bei prisidėdami savo programavimo įgūdžiais ir pinigais.
‣ <b>Atviras ir skaidrus sprendimų priėmimas ir finansai, ne pelno siekianti ir visiškai atviro kodo programa.</b>
<b>Pagrindinės funkcijos</b>:
• Atsisiunčiami išsamūs žemėlapiai su vietomis, kurių nėra „Google Maps“;
• Žygių pėsčiomis veiksena su pažymėtais pėsčiųjų takais, stovyklavietėmis, vandens šaltiniais, kalnų viršūnėmis, reljefo linijomis ir kt.;
• Pėsčiųjų ir dviračių takai;
• Potencialūs kelionės taškai, kaip antai restoranai, degalinės, viešbučiai, parduotuvės, lankytinos vietos ir daugelis kitų;
• Paieška pagal pavadinimą, adresą arba lankytinos vietos kategoriją;
• Navigacija su balso instrukcijomis pėstiesiems, dviratininkams ir motorinio transporto vairuotojams;
• Mėgstamų vietų įsiminimas vienu bakstelėjimu;
• „Vikipedijos“ straipsniai, prieinami neprisijungus prie interneto;
• Kelionių metro sluoksnis ir maršrutai;
• Trasų įrašymas;
• Žymių ir trasų eksportavimas ir importavimas KML, KMZ, GPX formatais;
• Tamsaus žemėlapio veiksena, skirta naudoti naktį;
• Galimybė papildyti žemėlapio duomenis visiems, naudojantis įtaisytuoju baziniu redaktoriumi.
<b>Laisvė yra čia</b>
Atraskite savo kelionę ir keliaukite po pasaulį, kuriame privatumas ir bendruomenė yra svarbiausia!

View File

@@ -19,13 +19,13 @@ Pridružite se skupnosti in pomagajte narediti najboljše zemljevidno orodje
• Pešpoti in kolesarke poti
• Kraji zanimanja, npr. restavracije, bencinske črpalke, hoteli, trgovine, znamenitosti in mnogo več
• Iščite po imenu, hišnemu naslovu ali po vrsti
• Usmerjanje z glasovnimi navodili za hojo, kolesarjenje ali vožnjo avtomobila.
• Usmerjanje z glasovnimi obvestili za hojo, kolesarjenje ali vožnjo avtomobila.
• Zaznamujte svoje najljubše kraje s preprostim dotikom
• Wikipedijini članki brez povezave
• Prometna plast podzemne železnice z usmerjanjem
• Izvozite ali uvozite zaznamke in sledi v oblikah KML, KMZ, GPX
• Temni prikaz za uporabo ponoči
• Izboljšajte podatke zemljevida za vse z uporabo vgrajenega urejevalnika
• Izboljšajtw podatke zemljevida za vse z uporabo vgrajenega urejevalnika
<b>Svoboda je tu</b>
Odkijte več o vašem potovanju, usmerjajte se po svetu s poudarkom na zasebnosti in skupnostnem delovanju!

View File

@@ -1 +1 @@
Enostavno usmerjanje Odkrijte več o svojem potovanju Podprto v skupnosti
Enostavno usmerjanje Odkrij več o svojem potovanju Podprto v skupnosti

View File

@@ -1 +1 @@
CoMaps hodi in vozi brez povezave, zasebno
CoMapsHodi, kolesari, vozi brez povezave, zasebno

View File

@@ -1 +1 @@
version: 2025.03.02-7-FDroid+25030207
version: 2025.07.23-4-FDroid+25072304

View File

@@ -3,7 +3,7 @@ Eine von der Community betriebene, kostenlose Open-Source Karten App, die auf Op
Werde Teil der Community und hilf mit, die beste Karten-App zu entwickeln
• Nutze die App und erzähle anderen davon
• Gib Feedback und melde Probleme
• Aktualisiere Kartendaten in der App oder auf der OpenStreetMap-Webseite
• Aktualisiere Kartendaten in der App oder auf der OpenStreetMap Website
<i>Dein Feedback und deine 5-Sterne-Bewertung sind die beste Unterstützung für uns!</i>
@@ -12,7 +12,7 @@ Werde Teil der Community und hilf mit, die beste Karten-App zu entwickeln
‣ <b>Datenschutz ist uns wichtig!</b>: Die App wurde mit Fokus auf Privatsphäre entwickelt kein Tracking, keine Erfassung persönlicher Daten, keine Werbung.
‣ <b>Spart Akku und Speicherplatz</b>: Verbraucht nicht unnötig Akku wie andere Navi-Apps. Kompakte Karten sparen Speicherplatz auf Deinem Gerät.
‣ <b>Kostenlos und von der Community entwickelt</b>: Menschen wie du haben geholfen, die App zu entwickeln durch das Hinzufügen von Orten zu OpenStreetMap, Testen von neuen Funktionen, Softwareentwicklung oder Spenden.
‣ <b>Offen und transparent bei Entscheidungen und Finanzen, gemeinnützig und vollständig Open Source.</b>
‣ <b>Offen und transparent bei Entscheidungen und Finanzen, gemeinnützig und vollständig Open Source</b>
<b>Hauptfunktionen</b>:
• Detaillierte, herunterladbare Karten mit Orten, die bei Google Maps oft fehlen
@@ -24,13 +24,13 @@ Werde Teil der Community und hilf mit, die beste Karten-App zu entwickeln
• Lesezeichen mit einem einzigen Tippen speichern
• Offline verfügbare Wikipedia-Artikel
• U- und S-Bahn-Netze
• Aufzeichnen von GPS-Tracks
• Aufzeichnen von GPS Tracks
• Import und Export von Favoriten und Routen im KML-, KMZ- oder GPX-Format
• Dunkler Modus für die Nutzung bei Nacht
• Kartenbearbeitung direkt in der App mit einem einfachen Editor
• Unterstützung für Android Auto
Bitte melde Probleme, schlage neue Funktionen vor und werde Teil der Community auf unserer Website: <b><i>comaps.app/de/</i></b>
Bitte melde Probleme, schlage neue Funktionen vor und werde Teil der Community auf unserer Website: <b><i>comaps.app</i></b>
<b>Freiheit beginnt hier</b>
Entdecke deine Reise, wobei Datenschutz und Gemeinschaft im Vordergrund stehen!
<b>Entdecke die Unabhängigkeit</b>
Entdecke deine Reise navigiere in der Welt mit Datenschutz!

View File

@@ -1 +1 @@
Leichte Navigation Erlebe mehr von deiner Reise Community-unterstützt
Einfache Navigation - Entdecken Sie mehr von Ihrer Reise - Community-Entwickelt

View File

@@ -1,36 +0,0 @@
Bendruomenės vystoma nemokama atvirojo kodo žemėlapių programa, pagrįsta „OpenStreetMap“ duomenimis ir sustiprinta įsipareigojimu užtikrinti skaidrumą, privatumą ir pelno nesiekimą.
Prisijunkite prie bendruomenės ir padėkite sukurti geriausią žemėlapių programą
• Naudokitės programa ir paskleiskite žinią apie ją
• Teikite atsiliepimus ir praneškite apie problemas
• Atnaujinkite žemėlapių duomenis programoje arba „OpenStreetMap“ svetainėje
<i>Jūsų atsiliepimai ir 5 žvaigždučių vertinimai yra geriausias palaikymas mums!</i>
‣ <b>Paprasta ir išbaigta</b>: esminės, lengvai naudojamos funkcijos, kurios tiesiog veikia.
‣ <b>Skirta naudoti neprisijungus prie interneto</b>: planuokite maršrutus ir keliaukite užsienyje be mobiliojo ryšio, ieškokite kelionės taškų tolimuose žygiuose ir pan. Visos programos funkcijos yra pritaikytos veikti be interneto ryšio.
‣ <b>Gerbia privatumą</b>: programėlė sukurta, teikiant prioritetą privatumui: neidentifikuoja žmonių, neseka ir nerenka asmeninės informacijos. Be reklamų.
‣ <b>Taupo bateriją ir vietą</b>: neišsekina baterijos kaip kitos navigacijos programos. Kompaktiški žemėlapiai tausoja vietą jūsų telefone.
‣ <b>Nemokama ir kuriama bendruomenės</b>: paprasti žmonės kaip jūs padėjo sukurti šią programą, pildydami „OpenStreetMap“ žemėlapį, išbandydami ir pateikdami atsiliepimus apie funkcijas bei prisidėdami savo programavimo įgūdžiais ir pinigais.
‣ <b>Atviras ir skaidrus sprendimų priėmimas ir finansai, ne pelno siekianti ir visiškai atviro kodo programa.</b>
<b>Pagrindinės funkcijos</b>:
• Atsisiunčiami išsamūs žemėlapiai su vietomis, kurių nėra „Google Maps“;
• Žygių pėsčiomis veiksena su pažymėtais pėsčiųjų takais, stovyklavietėmis, vandens šaltiniais, kalnų viršūnėmis, reljefo linijomis ir kt.;
• Pėsčiųjų ir dviračių takai;
• Potencialūs kelionės taškai, kaip antai restoranai, degalinės, viešbučiai, parduotuvės, lankytinos vietos ir daugelis kitų;
• Paieška pagal pavadinimą, adresą arba lankytinos vietos kategoriją;
• Navigacija su balso instrukcijomis pėstiesiems, dviratininkams ir motorinio transporto vairuotojams;
• Mėgstamų vietų įsiminimas vienu bakstelėjimu;
• „Vikipedijos“ straipsniai, prieinami neprisijungus prie interneto;
• Kelionių metro sluoksnis ir maršrutai;
• Trasų įrašymas;
• Žymių ir trasų eksportavimas ir importavimas KML, KMZ, GPX formatais;
• Tamsaus žemėlapio veiksena, skirta naudoti naktį;
• Galimybė papildyti žemėlapio duomenis visiems, naudojantis įtaisytuoju baziniu redaktoriumi;
• „Android Auto“ palaikymas.
Praneškite apie programos problemas, siūlykite idėjas ir prisijunkite prie mūsų bendruomenės svetainėje <b><i>comaps.app</i></b>.
<b>Laisvė yra čia</b>
Atraskite savo kelionę ir keliaukite po pasaulį, kuriame privatumas ir bendruomenė yra svarbiausia!

View File

@@ -1 +1 @@
Enostavno usmerjanje Odkrijte več o svojem potovanju Podprto v skupnosti
Enostavno usmerjanje Odkrij več o svojem potovanju Podprto v skupnosti

View File

@@ -62,6 +62,21 @@
<category android:name="android.intent.category.BROWSABLE" />
<data android:scheme="https" />
</intent>
<intent>
<action android:name="org.traffxml.traff.GET_CAPABILITIES"/>
</intent>
<intent>
<action android:name="org.traffxml.traff.POLL"/>
</intent>
<intent>
<action android:name="org.traffxml.traff.SUBSCRIBE"/>
</intent>
<intent>
<action android:name="org.traffxml.traff.SUBSCRIPTION_CHANGE"/>
</intent>
<intent>
<action android:name="org.traffxml.traff.UNSUBSCRIBE"/>
</intent>
</queries>
<supports-screens

View File

@@ -114,7 +114,6 @@ public final class CarAppSession extends Session implements DefaultLifecycleObse
public void onCreate(@NonNull LifecycleOwner owner)
{
Logger.d(TAG);
Framework.nativeSetCarScreenMode(true);
mSensorsManager = new CarSensorsManager(getCarContext());
mDisplayManager = MwmApplication.from(getCarContext()).getDisplayManager();
mDisplayManager.addListener(DisplayType.Car, this);
@@ -160,7 +159,6 @@ public final class CarAppSession extends Session implements DefaultLifecycleObse
public void onDestroy(@NonNull LifecycleOwner owner)
{
mDisplayManager.removeListener(DisplayType.Car);
Framework.nativeSetCarScreenMode(false);
}
private void init()

View File

@@ -152,7 +152,7 @@ public class EditTextDialogFragment extends BaseMwmDialogFragment
if (mInputValidator != null)
{
final String maybeError = mInputValidator.validate(activity, input);
mEtInputLayout.setError(maybeError);
mEtInputLayout.getEditText().setError(maybeError);
mEtInputLayout.requestFocus();
return maybeError == null;
}

View File

@@ -196,8 +196,10 @@ public class EditorFragment extends BaseMwmFragment implements View.OnClickListe
{
final Context context = mInputBuildingLevels.getContext();
final boolean isValid = Editor.nativeIsLevelValid(s.toString());
mInputBuildingLevels.setError(isValid ? null : context.getString(R.string.error_enter_correct_storey_number,
Editor.nativeGetMaxEditableBuildingLevels()));
UiUtils.setInputError(mInputBuildingLevels,
isValid ? null
: context.getString(R.string.error_enter_correct_storey_number,
Editor.nativeGetMaxEditableBuildingLevels()));
}
});
@@ -946,7 +948,7 @@ public class EditorFragment extends BaseMwmFragment implements View.OnClickListe
mDisused.setVisibility(Editor.nativeCanMarkPlaceAsDisused() ? View.VISIBLE : View.GONE);
if (Editor.nativeAreSomeFeatureChangesUploaded())
if (Editor.nativeIsMapObjectUploaded())
{
mReset.setText(R.string.editor_place_doesnt_exist);
return;
@@ -964,7 +966,7 @@ public class EditorFragment extends BaseMwmFragment implements View.OnClickListe
private void reset()
{
if (Editor.nativeAreSomeFeatureChangesUploaded())
if (Editor.nativeIsMapObjectUploaded())
{
placeDoesntExist();
return;

View File

@@ -12,6 +12,7 @@ public class LayersUtils
availableLayers.add(Mode.OUTDOORS);
availableLayers.add(Mode.ISOLINES);
availableLayers.add(Mode.SUBWAY);
availableLayers.add(Mode.TRAFFIC);
return availableLayers;
}
}

View File

@@ -98,11 +98,6 @@ public class NavigationController implements TrafficManager.TrafficCallback, Nav
mSpeedLimit = topFrame.findViewById(R.id.nav_speed_limit);
mCurrentSpeed = topFrame.findViewById(R.id.nav_current_speed);
View mTopbar = topFrame.findViewById(R.id.statutbar);
ViewCompat.setOnApplyWindowInsetsListener(mTopbar,(v, windowInsets) -> {
UiUtils.setViewNavigationTopInsetsMargin(v, windowInsets);
return windowInsets;
});
// Show a blank view below the navbar to hide the menu content
final View navigationBarBackground = mFrame.findViewById(R.id.nav_bottom_sheet_nav_bar);
final View nextTurnContainer = mFrame.findViewById(R.id.nav_next_turn_container);

View File

@@ -6,10 +6,12 @@ import android.view.View;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.annotation.XmlRes;
import androidx.core.content.ContextCompat;
import androidx.core.view.ViewCompat;
import androidx.preference.Preference;
import androidx.preference.PreferenceFragmentCompat;
import androidx.recyclerview.widget.RecyclerView;
import app.organicmaps.R;
import app.organicmaps.util.Utils;
import app.organicmaps.util.WindowInsetUtils.ScrollableContentInsetsListener;
@@ -42,6 +44,7 @@ abstract class BaseXmlSettingsFragment extends PreferenceFragmentCompat
public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState)
{
super.onViewCreated(view, savedInstanceState);
view.setBackgroundColor(ContextCompat.getColor(requireContext(), R.color.bg_cards));
RecyclerView recyclerView = getListView();
ViewCompat.setOnApplyWindowInsetsListener(recyclerView, new ScrollableContentInsetsListener(recyclerView));
}

View File

@@ -3,14 +3,21 @@ package app.organicmaps.settings;
import static app.organicmaps.leftbutton.LeftButtonsHolder.DISABLE_BUTTON_CODE;
import android.annotation.SuppressLint;
import android.content.ComponentName;
import android.content.Context;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.content.pm.ResolveInfo;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.view.View;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.annotation.StringRes;
import androidx.preference.EditTextPreference;
import androidx.preference.ListPreference;
import androidx.preference.MultiSelectListPreference;
import androidx.preference.Preference;
import androidx.preference.PreferenceCategory;
import androidx.preference.PreferenceManager;
@@ -35,6 +42,7 @@ import app.organicmaps.sdk.routing.RoutingOptions;
import app.organicmaps.sdk.search.SearchRecents;
import app.organicmaps.sdk.settings.MapLanguageCode;
import app.organicmaps.sdk.settings.UnitLocale;
import app.organicmaps.sdk.traffxml.AndroidTransport;
import app.organicmaps.sdk.util.Config;
import app.organicmaps.sdk.util.NetworkPolicy;
import app.organicmaps.sdk.util.PowerManagment;
@@ -47,6 +55,7 @@ import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import java.util.Locale;
import java.util.Set;
public class SettingsPrefsFragment extends BaseXmlSettingsFragment implements LanguagesFragment.Listener
{
@@ -68,6 +77,10 @@ public class SettingsPrefsFragment extends BaseXmlSettingsFragment implements La
initAutoDownloadPrefsCallbacks();
initLargeFontSizePrefsCallbacks();
initTransliterationPrefsCallbacks();
initTrafficHttpEnabledPrefsCallbacks();
initTrafficHttpUrlPrefsCallbacks();
initTrafficAppsPrefs();
initTrafficLegacyEnabledPrefsCallbacks();
init3dModePrefsCallbacks();
initPerspectivePrefsCallbacks();
initAutoZoomPrefsCallbacks();
@@ -144,6 +157,46 @@ public class SettingsPrefsFragment extends BaseXmlSettingsFragment implements La
pref.setSummary(locale.getDisplayLanguage());
}
private void updateTrafficHttpUrlSummary()
{
final Preference pref = getPreference(getString(R.string.pref_traffic_http_url));
String summary = Config.getTrafficHttpUrl();
if (summary.length() == 0)
pref.setSummary(R.string.traffic_http_url_not_set);
else
pref.setSummary(summary);
}
private void updateTrafficAppsSummary()
{
final MultiSelectListPreference pref = getPreference(getString(R.string.pref_traffic_apps));
/*
* If the preference is disabled, it has not been initialized. This is the case if no TraFF
* apps were found. The code below would crash when trying to access the entries, and there
* is no need to update the summary if the setting cannot be changed.
*/
if (!pref.isEnabled())
return;
String[] apps = Config.getTrafficApps();
if (apps.length == 0)
pref.setSummary(R.string.traffic_apps_none_selected);
else
{
String summary = "";
for (int i = 0; i < apps.length; i++)
{
if (i > 0)
summary = summary + ", ";
int index = pref.findIndexOfValue(apps[i]);
if (i >= 0)
summary = summary + pref.getEntries()[index];
else
summary = summary + apps[i];
}
pref.setSummary(summary);
}
}
private void updateRoutingSettingsPrefsSummary()
{
final Preference pref = getPreference(getString(R.string.prefs_routing));
@@ -171,6 +224,8 @@ public class SettingsPrefsFragment extends BaseXmlSettingsFragment implements La
updateVoiceInstructionsPrefsSummary();
updateRoutingSettingsPrefsSummary();
updateMapLanguageCodeSummary();
updateTrafficHttpUrlSummary();
updateTrafficAppsSummary();
}
@Override
@@ -232,6 +287,91 @@ public class SettingsPrefsFragment extends BaseXmlSettingsFragment implements La
});
}
private void initTrafficHttpEnabledPrefsCallbacks()
{
final Preference pref = getPreference(getString(R.string.pref_traffic_http_enabled));
((TwoStatePreference)pref).setChecked(Config.getTrafficHttpEnabled());
pref.setOnPreferenceChangeListener((preference, newValue) -> {
final boolean oldVal = Config.getTrafficHttpEnabled();
final boolean newVal = (Boolean) newValue;
if (oldVal != newVal)
Config.setTrafficHttpEnabled(newVal);
return true;
});
}
private void initTrafficHttpUrlPrefsCallbacks()
{
final Preference pref = getPreference(getString(R.string.pref_traffic_http_url));
((EditTextPreference)pref).setText(Config.getTrafficHttpUrl());
pref.setOnPreferenceChangeListener((preference, newValue) -> {
final String oldVal = Config.getTrafficHttpUrl();
final String newVal = (String) newValue;
if (!oldVal.equals(newVal))
Config.setTrafficHttpUrl(newVal);
return true;
});
}
private void initTrafficAppsPrefs()
{
final MultiSelectListPreference pref = getPreference(getString(R.string.pref_traffic_apps));
PackageManager pm = getContext().getPackageManager();
List<ResolveInfo> receivers = pm.queryBroadcastReceivers(new Intent(AndroidTransport.ACTION_TRAFF_GET_CAPABILITIES), 0);
if (receivers == null || receivers.isEmpty())
{
pref.setSummary(R.string.traffic_apps_not_available);
pref.setEnabled(false);
return;
}
pref.setEnabled(true);
List<String> entryList = new ArrayList<>(receivers.size());
List<String> valueList = new ArrayList<>(receivers.size());
for (ResolveInfo receiver : receivers)
{
// friendly name
entryList.add(receiver.loadLabel(pm).toString());
// actual value (we just need the package name, broadcasts are sent to any receiver in the package)
valueList.add(receiver.activityInfo.applicationInfo.packageName);
}
pref.setEntries(entryList.toArray(new CharSequence[0]));
pref.setEntryValues(valueList.toArray(new CharSequence[0]));
pref.setOnPreferenceChangeListener((preference, newValue) -> {
// newValue is a Set<String>, each item is a package ID
String[] apps = ((Set<String>)newValue).toArray(new String[0]);
Config.setTrafficApps(apps);
updateTrafficAppsSummary();
return true;
});
}
private void initTrafficLegacyEnabledPrefsCallbacks()
{
final Preference pref = getPreference(getString(R.string.pref_traffic_legacy_enabled));
((TwoStatePreference)pref).setChecked(Config.getTrafficLegacyEnabled());
pref.setOnPreferenceChangeListener((preference, newValue) -> {
final boolean oldVal = Config.getTrafficLegacyEnabled();
final boolean newVal = (Boolean) newValue;
if (oldVal != newVal)
Config.setTrafficLegacyEnabled(newVal);
return true;
});
}
private void initUseMobileDataPrefsCallbacks()
{
final ListPreference mobilePref = getPreference(getString(R.string.pref_use_mobile_data));

View File

@@ -24,6 +24,7 @@ import androidx.annotation.ColorInt;
import androidx.annotation.IdRes;
import androidx.annotation.NonNull;
import androidx.annotation.StringRes;
import androidx.core.content.ContextCompat;
import androidx.core.content.res.ResourcesCompat;
import androidx.core.graphics.Insets;
import androidx.core.view.WindowCompat;
@@ -195,7 +196,7 @@ public final class UiUtils
public static void showHomeUpButton(MaterialToolbar toolbar)
{
toolbar.setNavigationIcon(
UiUtils.getStyledResourceId(toolbar.getContext(), androidx.appcompat.R.attr.homeAsUpIndicator));
ThemeUtils.getResource(toolbar.getContext(), androidx.appcompat.R.attr.homeAsUpIndicator));
}
// this method returns the total height of the display (in pixels) including notch and other touchable areas
@@ -208,7 +209,15 @@ public final class UiUtils
}
public static void setInputError(@NonNull TextInputLayout layout, @StringRes int error)
{
layout.setError(error == 0 ? null : layout.getContext().getString(error));
setInputError(layout, error == 0 ? null : layout.getContext().getString(error));
}
public static void setInputError(@NonNull TextInputLayout layout, String error)
{
layout.getEditText().setError(error);
layout.getEditText().setTextColor(error == null
? ThemeUtils.getColor(layout.getContext(), android.R.attr.textColorPrimary)
: ContextCompat.getColor(layout.getContext(), R.color.base_red));
}
public static void setFullscreen(@NonNull Activity activity, boolean fullscreen)
@@ -272,14 +281,6 @@ public final class UiUtils
view.setPadding(systemInsets.left, systemInsets.top, systemInsets.right, view.getPaddingBottom());
}
public static void setViewNavigationTopInsetsMargin(View view, WindowInsetsCompat windowInsets)
{
final Insets systemInsets = windowInsets.getInsets(WindowInsetsCompat.Type.systemBars());
ViewGroup.MarginLayoutParams lp = (ViewGroup.MarginLayoutParams) view.getLayoutParams();
lp.topMargin = systemInsets.top;
view.setLayoutParams(lp);
}
public static void setupNavigationIcon(@NonNull MaterialToolbar toolbar, @NonNull View.OnClickListener listener)
{
View customNavigationButton = toolbar.findViewById(R.id.back);

View File

@@ -3,7 +3,7 @@
android:height="24dp"
android:viewportWidth="960"
android:viewportHeight="960"
android:tint="?iconTint">
android:tint="?colorControlNormal">
<path
android:pathData="M80,360v-160q0,-33 23.5,-56.5T160,120h640q33,0 56.5,23.5T880,200v160h-80v-160L160,200v160L80,360ZM160,720q-33,0 -56.5,-23.5T80,640v-200h80v200h640v-200h80v200q0,33 -23.5,56.5T800,720L160,720ZM40,840v-80h880v80L40,840ZM480,420ZM80,440v-80h240q11,0 21,6t15,16l47,93 123,-215q5,-9 14,-14.5t20,-5.5q11,0 21,5.5t15,16.5l49,98h235v80L620,440q-11,0 -21,-5.5T584,418l-26,-53 -123,215q-5,10 -15,15t-21,5q-11,0 -20.5,-6T364,578l-69,-138L80,440Z"
android:fillColor="#fff"/>

View File

@@ -1,5 +1,5 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:tint="?iconTint"
android:tint="?colorControlNormal"
android:height="24dp"
android:width="24dp"
android:viewportHeight="960"

View File

@@ -3,7 +3,7 @@
android:height="24dp"
android:viewportWidth="960"
android:viewportHeight="960"
android:tint="?iconTint">
android:tint="?colorControlNormal">
<path
android:pathData="M480,840q-150,0 -255,-105T120,480q0,-150 105,-255t255,-105q14,0 27.5,1t26.5,3q-41,29 -65.5,75.5T444,300q0,90 63,153t153,63q55,0 101,-24.5t75,-65.5q2,13 3,26.5t1,27.5q0,150 -105,255T480,840ZM480,760q88,0 158,-48.5T740,585q-20,5 -40,8t-40,3q-123,0 -209.5,-86.5T364,300q0,-20 3,-40t8,-40q-78,32 -126.5,102T200,480q0,116 82,198t198,82ZM470,490Z"
android:fillColor="#fff"/>

View File

@@ -3,7 +3,7 @@
android:height="24dp"
android:viewportWidth="24"
android:viewportHeight="24"
android:tint="?iconTint">
android:tint="?colorControlNormal">
<path
android:pathData="M19,9h-4v-6h-6v6h-4l7,7 7,-7ZM5,18v2h14v-2h-14Z"
android:fillColor="#FFF"/>

View File

@@ -3,7 +3,7 @@
android:height="24dp"
android:viewportWidth="960"
android:viewportHeight="960"
android:tint="?iconTint">
android:tint="?colorControlNormal">
<path
android:pathData="M216,784q-45,-45 -70.5,-104T120,558q0,-63 24,-124.5T222,318q35,-35 86.5,-60t122,-39.5Q501,204 591.5,201t202.5,7q8,106 5,195t-16.5,160.5q-13.5,71.5 -38,125T684,778q-53,53 -112.5,77.5T450,880q-65,0 -127,-25.5T216,784ZM328,768q29,17 59.5,24.5T450,800q46,0 91,-18.5t86,-59.5q18,-18 36.5,-50.5t32,-85Q709,534 716,459.5t2,-177.5q-49,-2 -110.5,-1.5T485,290q-61,9 -116,29t-90,55q-45,45 -62,89t-17,85q0,59 22.5,103.5T262,714q42,-80 111,-153.5T534,440q-72,63 -125.5,142.5T328,768ZM328,768ZM328,768Z"
android:fillColor="#fff"/>

View File

@@ -3,7 +3,7 @@
android:height="24dp"
android:viewportWidth="960"
android:viewportHeight="960"
android:tint="?iconTint">
android:tint="?colorControlNormal">
<path
android:pathData="M200,800v-280h-80v-80h240v80h-80v280h-80ZM200,360v-200h80v200h-80ZM360,360v-80h80v-120h80v120h80v80L360,360ZM440,800v-360h80v360h-80ZM680,800v-120h-80v-80h240v80h-80v120h-80ZM680,520v-360h80v360h-80Z"
android:fillColor="#fff"/>

View File

@@ -3,7 +3,7 @@
android:height="24dp"
android:viewportWidth="960"
android:viewportHeight="960"
android:tint="?iconTint">
android:tint="?colorControlNormal">
<path
android:pathData="M280,920q-33,0 -56.5,-23.5T200,840v-720q0,-33 23.5,-56.5T280,40h400q33,0 56.5,23.5T760,120v124q18,7 29,22t11,34v80q0,19 -11,34t-29,22v404q0,33 -23.5,56.5T680,920L280,920ZM280,840h400v-720L280,120v720ZM280,840v-720,720ZM394,640h172q14,0 24,-10t10,-24v-132q0,-14 -10,-24t-24,-10h-6v-40q0,-33 -23.5,-56.5T480,320q-33,0 -56.5,23.5T400,400v40h-6q-14,0 -24,10t-10,24v132q0,14 10,24t24,10ZM440,440v-40q0,-17 11.5,-28.5T480,360q17,0 28.5,11.5T520,400v40h-80Z"
android:fillColor="#fff"/>

View File

@@ -3,7 +3,7 @@
android:height="24dp"
android:viewportWidth="960"
android:viewportHeight="960"
android:tint="?iconTint">
android:tint="?colorControlNormal">
<path
android:pathData="M339,698q22,-22 49.5,-36t58.5,-19q-5,19 -8,38t-3,39q0,24 3.5,47t11.5,44L339,698ZM254,614 L170,528q62,-62 142,-95t168,-33q49,0 96,10.5t90,30.5q-44,8 -81.5,29T517,522q-9,-1 -18.5,-1.5T480,520q-64,0 -122.5,24.5T254,614ZM84,444 L0,360q95,-97 219.5,-148.5T480,160q136,0 260.5,51.5T960,360l-84,84q-79,-79 -181.5,-121.5T480,280q-112,0 -214.5,42.5T84,444ZM760,520 L772,580q12,5 22.5,10.5T816,604l58,-18 40,68 -46,40q2,12 2,26t-2,26l46,40 -40,68 -58,-18q-11,8 -21.5,13.5T772,860l-12,60h-80l-12,-60q-12,-5 -22.5,-10.5T624,836l-58,18 -40,-68 46,-40q-2,-12 -2,-26t2,-26l-46,-40 40,-68 58,18q11,-8 21.5,-13.5T668,580l12,-60h80ZM720,640q-33,0 -56.5,23.5T640,720q0,33 23.5,56.5T720,800q33,0 56.5,-23.5T800,720q0,-33 -23.5,-56.5T720,640Z"
android:fillColor="#fff"/>

View File

@@ -3,7 +3,7 @@
android:height="24dp"
android:viewportWidth="960"
android:viewportHeight="960"
android:tint="?iconTint">
android:tint="?colorControlNormal">
<path
android:pathData="M480,480q-66,0 -113,-47t-47,-113q0,-66 47,-113t113,-47q66,0 113,47t47,113q0,66 -47,113t-113,47ZM160,800v-112q0,-34 17.5,-62.5T224,582q62,-31 126,-46.5T480,520q66,0 130,15.5T736,582q29,15 46.5,43.5T800,688v112L160,800ZM240,720h480v-32q0,-11 -5.5,-20T700,654q-54,-27 -109,-40.5T480,600q-56,0 -111,13.5T260,654q-9,5 -14.5,14t-5.5,20v32ZM480,400q33,0 56.5,-23.5T560,320q0,-33 -23.5,-56.5T480,240q-33,0 -56.5,23.5T400,320q0,33 23.5,56.5T480,400ZM480,320ZM480,720Z"
android:fillColor="#fff"/>

View File

@@ -3,7 +3,7 @@
android:height="24dp"
android:viewportWidth="960"
android:viewportHeight="960"
android:tint="?iconTint">
android:tint="?colorControlNormal">
<path
android:pathData="m798,638 l-62,-62q44,-41 69,-97t25,-119q0,-63 -25,-118t-69,-96l62,-64q56,53 89,125t33,153q0,81 -33,153t-89,125ZM670,510l-64,-64q18,-17 29,-38.5t11,-47.5q0,-26 -11,-47.5T606,274l64,-64q32,29 50,67.5t18,82.5q0,44 -18,82.5T670,510ZM360,520q-66,0 -113,-47t-47,-113q0,-66 47,-113t113,-47q66,0 113,47t47,113q0,66 -47,113t-113,47ZM40,840v-112q0,-33 17,-62t47,-44q51,-26 115,-44t141,-18q77,0 141,18t115,44q30,15 47,44t17,62v112L40,840ZM120,760h480v-32q0,-11 -5.5,-20T580,694q-36,-18 -92.5,-36T360,640q-71,0 -127.5,18T140,694q-9,5 -14.5,14t-5.5,20v32ZM360,440q33,0 56.5,-23.5T440,360q0,-33 -23.5,-56.5T360,280q-33,0 -56.5,23.5T280,360q0,33 23.5,56.5T360,440ZM360,360ZM360,760Z"
android:fillColor="#fff"/>

View File

@@ -3,7 +3,7 @@
android:height="24dp"
android:viewportWidth="960"
android:viewportHeight="960"
android:tint="?iconTint">
android:tint="?colorControlNormal">
<path
android:pathData="M360,440h80v-160h-80v160ZM480,440h80v-160h-80v160ZM600,440h80v-160h-80v160ZM240,880q-33,0 -56.5,-23.5T160,800v-480l240,-240h320q33,0 56.5,23.5T800,160v640q0,33 -23.5,56.5T720,880L240,880ZM240,800h480v-640L434,160L240,354v446ZM240,800h480,-480Z"
android:fillColor="#fff"/>

View File

@@ -3,7 +3,7 @@
android:height="24dp"
android:viewportWidth="24"
android:viewportHeight="24"
android:tint="?iconTint">
android:tint="?colorControlNormal">
<path
android:fillColor="@android:color/white"
android:pathData="M13.26,3C8.17,2.86 4,6.95 4,12L2.21,12c-0.45,0 -0.67,0.54 -0.35,0.85l2.79,2.8c0.2,0.2 0.51,0.2 0.71,0l2.79,-2.8c0.31,-0.31 0.09,-0.85 -0.36,-0.85L6,12c0,-3.9 3.18,-7.05 7.1,-7 3.72,0.05 6.85,3.18 6.9,6.9 0.05,3.91 -3.1,7.1 -7,7.1 -1.61,0 -3.1,-0.55 -4.28,-1.48 -0.4,-0.31 -0.96,-0.28 -1.32,0.08 -0.42,0.42 -0.39,1.13 0.08,1.49C9,20.29 10.91,21 13,21c5.05,0 9.14,-4.17 9,-9.26 -0.13,-4.69 -4.05,-8.61 -8.74,-8.74zM12.75,8c-0.41,0 -0.75,0.34 -0.75,0.75v3.68c0,0.35 0.19,0.68 0.49,0.86l3.12,1.85c0.36,0.21 0.82,0.09 1.03,-0.26 0.21,-0.36 0.09,-0.82 -0.26,-1.03l-2.88,-1.71v-3.4c0,-0.4 -0.34,-0.74 -0.75,-0.74z"/>

View File

@@ -3,7 +3,7 @@
android:height="24dp"
android:viewportWidth="960"
android:viewportHeight="960"
android:tint="?iconTint">
android:tint="?colorControlNormal">
<path
android:pathData="M480,560q-33,0 -56.5,-23.5T400,480q0,-33 23.5,-56.5T480,400q33,0 56.5,23.5T560,480q0,33 -23.5,56.5T480,560ZM480,840q-139,0 -241,-91.5T122,520h82q14,104 92.5,172T480,760q117,0 198.5,-81.5T760,480q0,-117 -81.5,-198.5T480,200q-69,0 -129,32t-101,88h110v80L120,400v-240h80v94q51,-64 124.5,-99T480,120q75,0 140.5,28.5t114,77q48.5,48.5 77,114T840,480q0,75 -28.5,140.5t-77,114q-48.5,48.5 -114,77T480,840Z"
android:fillColor="#fff"/>

View File

@@ -3,7 +3,7 @@
android:height="24dp"
android:viewportWidth="960"
android:viewportHeight="960"
android:tint="?iconTint">
android:tint="?colorControlNormal">
<path
android:pathData="M160,720q-33,0 -56.5,-23.5T80,640v-320q0,-33 23.5,-56.5T160,240h640q33,0 56.5,23.5T880,320v320q0,33 -23.5,56.5T800,720L160,720ZM160,640h640v-320L680,320v160h-80v-160h-80v160h-80v-160h-80v160h-80v-160L160,320v320ZM280,480h80,-80ZM440,480h80,-80ZM600,480h80,-80ZM480,480Z"
android:fillColor="#fff"/>

View File

@@ -3,7 +3,7 @@
android:height="24dp"
android:viewportWidth="960"
android:viewportHeight="960"
android:tint="?iconTint">
android:tint="?colorControlNormal">
<path
android:pathData="M280,800v-520L80,280v-120h520v120L400,280v520L280,800ZM640,800v-320L520,480v-120h360v120L760,480v320L640,800Z"
android:fillColor="#fff"/>

View File

@@ -3,7 +3,7 @@
android:height="24dp"
android:viewportWidth="960"
android:viewportHeight="960"
android:tint="?iconTint">
android:tint="?colorControlNormal">
<path
android:pathData="M480,880q-83,0 -156,-31.5T197,763q-54,-54 -85.5,-127T80,480h80q0,115 72.5,203T418,794l-58,-58 56,-56L598,862q-29,10 -58.5,14T480,880ZM500,600v-240h120q17,0 28.5,11.5T660,400v160q0,17 -11.5,28.5T620,600L500,600ZM300,600v-60h100v-40h-60v-40h60v-40L300,420v-60h120q17,0 28.5,11.5T460,400v160q0,17 -11.5,28.5T420,600L300,600ZM560,540h40v-120h-40v120ZM800,480q0,-115 -72.5,-203T542,166l58,58 -56,56 -182,-182q29,-10 58.5,-14t59.5,-4q83,0 156,31.5T763,197q54,54 85.5,127T880,480h-80Z"
android:fillColor="#fff"/>

View File

@@ -3,7 +3,7 @@
android:height="24dp"
android:viewportWidth="960"
android:viewportHeight="960"
android:tint="?iconTint">
android:tint="?colorControlNormal">
<path
android:pathData="m476,880 l182,-480h84L924,880h-84l-43,-122L603,758L560,880h-84ZM160,760l-56,-56 202,-202q-35,-35 -63.5,-80T190,320h84q20,39 40,68t48,58q33,-33 68.5,-92.5T484,240L40,240v-80h280v-80h80v80h280v80L564,240q-21,72 -63,148t-83,116l96,98 -30,82 -122,-125 -202,201ZM628,688h144l-72,-204 -72,204Z"
android:fillColor="#fff"/>

View File

@@ -3,7 +3,7 @@
android:height="24dp"
android:viewportWidth="960"
android:viewportHeight="960"
android:tint="?iconTint">
android:tint="?colorControlNormal">
<path
android:pathData="m476,880 l182,-480h84L924,880h-84l-43,-122L603,758L560,880h-84ZM628,688h144l-72,-204 -72,204ZM254,640q-66,0 -123.5,-38.5T44,498l72,-36q21,42 58,70t79,28q38,0 62.5,-23.5T340,480q0,-33 -23.5,-56.5T260,400h-60v-80h60q25,0 42.5,-17.5T320,260q0,-25 -17,-42.5T261,200q-23,0 -41,15t-32,33l-63,-49q26,-32 60,-55.5t77,-23.5q57,0 97.5,40.5T400,259q0,27 -10,52.5T361,357q10,10 18.5,20.5T396,400h124v-200h-80v-80h240v80h-80v116l-61,164L420,480v4q0,63 -46,109.5T254,640Z"
android:fillColor="#fff"/>

View File

@@ -3,7 +3,7 @@
android:height="24dp"
android:viewportWidth="960"
android:viewportHeight="960"
android:tint="?iconTint">
android:tint="?colorControlNormal">
<path
android:pathData="M480,840 L0,359q93,-93 215.5,-146T480,160q142,0 264.5,53T960,359l-56,57q-81,-81 -190,-128.5T480,240q-103,0 -195,32.5T117,363l419,420 -56,57ZM864,800L761,698q-18,11 -38,16.5t-43,5.5q-68,0 -114,-46t-46,-114q0,-68 46,-114t114,-46q68,0 114,46t46,114q0,23 -5.5,43T818,641l102,103 -56,56ZM680,640q34,0 57,-23t23,-57q0,-34 -23,-57t-57,-23q-34,0 -57,23t-23,57q0,34 23,57t57,23ZM480,783Z"
android:fillColor="#fff"/>

View File

@@ -5,7 +5,7 @@
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="?appBackground"
android:background="?cardBackground"
android:clipToPadding="false"
android:fadeScrollbars="false"
android:fillViewport="true">
@@ -47,7 +47,7 @@
android:layout_height="wrap_content"
android:text="@string/about_headline"
android:textAlignment="center"
android:textAppearance="@style/MwmTextAppearance.Headline6"
android:textAppearance="@style/MwmTextAppearance.Headline"
android:textColor="?android:textColorPrimary"
app:layout_constraintTop_toTopOf="@id/version" />
</LinearLayout>

View File

@@ -13,7 +13,7 @@
android:id="@+id/scrollView"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="?appBackground"
android:background="?cardBackground"
android:fadeScrollbars="false"
android:fillViewport="true"
android:clipToPadding="false">

View File

@@ -11,12 +11,13 @@
<FrameLayout
android:layout_width="match_parent"
android:id="@+id/statutbar"
android:layout_height="1dp"
android:layout_height="15dp"
app:layout_constraintTop_toTopOf="parent" />
<com.google.android.material.card.MaterialCardView
android:id="@+id/street_frame"
android:layout_width="500dp"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/margin_half_plus_eight"
android:layout_marginEnd="@dimen/margin_quarter"
app:cardCornerRadius="@dimen/margin_half"
android:elevation="@dimen/nav_elevation"
@@ -51,6 +52,7 @@
app:layout_constraintEnd_toStartOf="@+id/street_frame"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/statutbar"
android:layout_marginTop="@dimen/margin_half_plus_eight"
android:layout_marginStart="@dimen/margin_quarter"
android:clickable="true"
android:elevation="@dimen/nav_elevation">

View File

@@ -3,8 +3,7 @@
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:background="?appBackground">
android:orientation="vertical">
<include
layout="@layout/toolbar_extended"/>
@@ -18,8 +17,7 @@
android:id="@+id/fragment_container"
style="@style/MwmWidget.FrameLayout.Elevation"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="?appBackground"/>
android:layout_height="match_parent"/>
</com.google.android.material.card.MaterialCardView>
</FrameLayout>

View File

@@ -4,7 +4,7 @@
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="?appBackground"
android:background="?cardBackground"
android:clipToPadding="false"
android:fadeScrollbars="false"
android:fillViewport="true">
@@ -42,7 +42,7 @@
android:layout_marginBottom="@dimen/margin_base"
android:text="@string/about_headline"
android:textAlignment="center"
android:textAppearance="@style/MwmTextAppearance.Headline6"
android:textAppearance="@style/MwmTextAppearance.Headline"
android:textColor="?android:textColorPrimary" />
<com.google.android.material.textview.MaterialTextView

View File

@@ -5,7 +5,7 @@
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="?appBackground">
android:background="?cardBackground">
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
@@ -38,7 +38,7 @@
app:tint="?colorSecondary"/>
<com.google.android.material.textview.MaterialTextView
android:id="@+id/head_message"
style="@style/MwmTextAppearance.Headline6"
style="@style/TextAppearance.Headline6"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/margin_base"
@@ -48,7 +48,7 @@
android:text="@string/download_map_title" />
<com.google.android.material.textview.MaterialTextView
android:id="@+id/download_message"
style="@style/MwmTextAppearance.Body2"
style="@style/TextAppearance.Body2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/margin_base"

View File

@@ -4,7 +4,7 @@
android:layout_width="match_parent"
android:layout_height="match_parent"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:background="?appBackground"
android:background="?cardBackground"
android:gravity="center"
android:orientation="vertical">
@@ -28,7 +28,7 @@
android:layout_marginBottom="8dp"
android:text="@string/aa_connected_title"
android:textAlignment="center"
android:textAppearance="@style/MwmTextAppearance.Headline4"
android:textAppearance="@style/TextAppearance.Headline4"
android:textStyle="bold" />
<com.google.android.material.textview.MaterialTextView
@@ -36,7 +36,7 @@
android:layout_height="wrap_content"
android:text="@string/car_used_on_the_car_screen"
android:textAlignment="center"
android:textAppearance="@style/MwmTextAppearance.Body1" />
android:textAppearance="@style/TextAppearance.Body1" />
</LinearLayout>
<com.google.android.material.button.MaterialButton

View File

@@ -3,7 +3,7 @@
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="?appBackground"
android:background="?cardBackground"
android:gravity="center"
android:orientation="vertical">
@@ -20,7 +20,7 @@
android:layout_marginStart="32dp"
android:text="@string/aa_request_permission_activity_text"
android:textAlignment="center"
android:textAppearance="@style/MwmTextAppearance.Headline4"
android:textAppearance="@style/TextAppearance.Headline4"
android:textStyle="bold" />
<com.google.android.material.button.MaterialButton

View File

@@ -3,8 +3,7 @@
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:background="?appBackground">
android:orientation="vertical">
<include
layout="@layout/toolbar_default"/>

View File

@@ -22,7 +22,7 @@
android:layout_marginStart="@dimen/margin_base"
android:maxLines="3"
android:ellipsize="end"
android:textAppearance="@style/MwmTextAppearance.Headline6"
android:textAppearance="@style/TextAppearance.Headline6"
tools:text="Title" />
<androidx.recyclerview.widget.RecyclerView

View File

@@ -12,7 +12,7 @@
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/margin_base"
android:text="@string/download_country_ask"
android:textAppearance="@style/MwmTextAppearance.Body2"
android:textAppearance="@style/TextAppearance.Body2"
android:visibility="gone"
tools:visibility="visible"/>
<com.google.android.material.progressindicator.LinearProgressIndicator

View File

@@ -27,7 +27,7 @@
android:layout_marginTop="@dimen/margin_base">
<RadioButton
style="@style/MwmTextAppearance.Subtitle1"
style="@style/TextAppearance.Subtitle1"
android:id="@+id/sort_by_default"
android:layout_width="match_parent"
android:layout_height="wrap_content"
@@ -37,7 +37,7 @@
app:buttonTint="@null"/>
<RadioButton
style="@style/MwmTextAppearance.Subtitle1"
style="@style/TextAppearance.Subtitle1"
android:id="@+id/sort_by_name"
android:layout_width="match_parent"
android:layout_height="wrap_content"
@@ -47,7 +47,7 @@
app:buttonTint="@null"/>
<RadioButton
style="@style/MwmTextAppearance.Subtitle1"
style="@style/TextAppearance.Subtitle1"
android:id="@+id/sort_by_type"
android:layout_width="match_parent"
android:layout_height="wrap_content"
@@ -57,7 +57,7 @@
app:buttonTint="@null"/>
<RadioButton
style="@style/MwmTextAppearance.Subtitle1"
style="@style/TextAppearance.Subtitle1"
android:id="@+id/sort_by_distance"
android:layout_width="match_parent"
android:layout_height="wrap_content"
@@ -67,7 +67,7 @@
app:buttonTint="@null"/>
<RadioButton
style="@style/MwmTextAppearance.Subtitle1"
style="@style/TextAppearance.Subtitle1"
android:id="@+id/sort_by_time"
android:layout_width="match_parent"
android:layout_height="wrap_content"

View File

@@ -17,7 +17,7 @@
android:layout_marginEnd="@dimen/margin_base"
android:paddingTop="@dimen/margin_half"
android:paddingBottom="@dimen/margin_base"
android:textAppearance="@style/MwmTextAppearance.Headline6"
android:textAppearance="@style/TextAppearance.Headline6"
tools:text="Xindian Shitoushan Trail" />
<include
layout="@layout/item_divider"

View File

@@ -2,11 +2,18 @@
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:background="?appBackground"
android:background="?cardBackground"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<include layout="@layout/toolbar_default"/>
<com.google.android.material.appbar.MaterialToolbar
android:id="@+id/toolbar"
style="@style/MwmWidget.ToolbarStyle"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="end|center_vertical"
android:theme="@style/MwmWidget.ToolbarTheme">
</com.google.android.material.appbar.MaterialToolbar>
<LinearLayout
android:layout_marginTop="@dimen/margin_half_double_plus"
android:orientation="horizontal"

View File

@@ -13,7 +13,7 @@
android:id="@+id/scrollView"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="?appBackground"
android:background="?cardBackground"
android:fadeScrollbars="false"
android:fillViewport="true"
android:clipToPadding="false">

View File

@@ -6,7 +6,7 @@
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:background="?appBackground">
android:background="?cardBackground">
<com.google.android.material.appbar.MaterialToolbar
android:id="@+id/toolbar"
style="@style/MwmWidget.ToolbarStyle"

View File

@@ -5,7 +5,7 @@
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:background="?appBackground">
android:background="?cardBackground">
<com.google.android.material.textview.MaterialTextView
android:id="@+id/header"

View File

@@ -15,13 +15,7 @@
android:theme="@style/MwmWidget.ToolbarTheme">
<com.google.android.material.textview.MaterialTextView
android:id="@+id/save"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:gravity="center"
android:layout_gravity="end|center_vertical"
android:background="?selectableItemBackgroundBorderless"
android:padding="@dimen/margin_half"
android:textAppearance="@style/MwmTextAppearance.Toolbar.Title"
style="@style/MwmWidget.Downloader.ToolbarButton"
android:text="@string/editor_report_problem_send_button"/>
</com.google.android.material.appbar.MaterialToolbar>

View File

@@ -6,6 +6,7 @@
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="?windowBackgroundForced"
android:animateLayoutChanges="true"
android:clickable="true"
android:clipToPadding="false"

View File

@@ -16,7 +16,7 @@
android:layout_marginStart="@dimen/margin_base"
android:layout_marginTop="@dimen/margin_base"
android:text="@string/layers_title"
android:textAppearance="@style/MwmTextAppearance.Headline6"
android:textAppearance="@style/TextAppearance.Headline6"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<com.google.android.material.button.MaterialButton

View File

@@ -30,7 +30,7 @@
android:ellipsize="middle"
android:singleLine="true"
android:textAlignment="viewStart"
android:textAppearance="@style/MwmTextAppearance.Body1"
android:textAppearance="@style/TextAppearance.Body1"
tools:text="Bookmark name looooooooooooooooooongasdasdasd" />
<LinearLayout
android:id="@+id/bottom_line_container"

View File

@@ -25,7 +25,7 @@
android:layout_marginEnd="@dimen/bookmark_collection_item_end_margin"
android:ellipsize="middle"
android:singleLine="true"
android:textAppearance="@style/MwmTextAppearance.Body1"
android:textAppearance="@style/TextAppearance.Body1"
tools:text="Bookmark name looooooooooooooooooongasdasdasd" />
<com.google.android.material.textview.MaterialTextView
android:id="@+id/size"
@@ -37,7 +37,7 @@
android:ellipsize="end"
android:singleLine="true"
android:textColor="?android:textColorSecondary"
style="@style/MwmTextAppearance.Body2"
style="@style/TextAppearance.Body2"
tools:text="42000000" />
</LinearLayout>
</LinearLayout>

View File

@@ -12,7 +12,7 @@
android:paddingBottom="@dimen/margin_half_plus">
<com.google.android.material.textview.MaterialTextView
android:id="@+id/text_message"
style="@style/MwmTextAppearance.Headline6"
style="@style/TextAppearance.Headline6"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentStart="true"

View File

@@ -2,7 +2,7 @@
<com.google.android.material.textview.MaterialTextView
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/text"
style="@style/MwmTextAppearance.Headline6"
style="@style/TextAppearance.Headline6"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="?windowBackgroundForced"

View File

@@ -6,7 +6,7 @@
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_gravity="center"
android:orientation="vertical"
android:background="?cardBackground"
android:background="?windowBackgroundForced"
android:padding="@dimen/margin_base">
<com.google.android.material.textview.MaterialTextView
android:layout_width="match_parent"
@@ -14,7 +14,7 @@
android:gravity="center"
android:maxWidth="500dp"
android:text="@string/editor_category_unsuitable_title"
android:textAppearance="@style/MwmTextAppearance.Headline6"
android:textAppearance="@style/TextAppearance.Headline6"
android:textStyle="bold" />
<com.google.android.material.textview.MaterialTextView
android:id="@+id/editor_category_unsuitable_text"

View File

@@ -7,7 +7,6 @@
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="?cardBackground"
android:minHeight="@dimen/height_item_oneline"
android:paddingStart="@dimen/margin_base_plus"
android:paddingEnd="@dimen/margin_base_plus">

View File

@@ -7,7 +7,6 @@
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="?cardBackground"
android:minHeight="@dimen/height_item_oneline"
android:paddingStart="@dimen/margin_base_plus"
android:paddingEnd="@dimen/margin_base_plus">

View File

@@ -29,7 +29,7 @@
android:layout_marginTop="@dimen/margin_base"
android:layout_marginEnd="@dimen/bookmark_collection_item_end_margin"
android:singleLine="true"
android:textAppearance="@style/MwmTextAppearance.Body1"
android:textAppearance="@style/TextAppearance.Body1"
tools:text="@string/tracks_title" />
<com.google.android.material.textview.MaterialTextView
android:id="@+id/tv__bookmark_distance"
@@ -39,7 +39,7 @@
android:layout_marginBottom="@dimen/margin_half_plus"
android:singleLine="true"
android:textColor="?android:textColorSecondary"
android:textAppearance="@style/MwmTextAppearance.Body2"
android:textAppearance="@style/TextAppearance.Body2"
tools:text="@string/by_distance" />
</LinearLayout>
<com.google.android.material.imageview.ShapeableImageView

View File

@@ -11,12 +11,13 @@
<FrameLayout
android:layout_width="match_parent"
android:id="@+id/statutbar"
android:layout_height="1dp"
android:layout_height="25dp"
app:layout_constraintTop_toTopOf="parent" />
<com.google.android.material.card.MaterialCardView
android:id="@+id/street_frame"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/margin_half_plus"
android:layout_marginStart="@dimen/nav_street_left"
android:layout_marginEnd="@dimen/margin_quarter"
app:cardCornerRadius="@dimen/margin_half"
@@ -54,6 +55,7 @@
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/statutbar"
android:layout_marginStart="@dimen/margin_half"
android:layout_marginTop="@dimen/margin_half_plus"
android:clickable="true"
android:elevation="@dimen/nav_elevation">
<LinearLayout

View File

@@ -82,7 +82,7 @@
<com.google.android.material.textview.MaterialTextView
android:id="@+id/place_page_last_checked"
style="@style/MwmTextAppearance.Caption"
style="@style/TextAppearance.Caption"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingBottom="@dimen/margin_half"

View File

@@ -9,7 +9,7 @@ android:layout_marginHorizontal="@dimen/margin_base"
android:layout_marginTop="@dimen/margin_half"
app:strokeWidth="1dp"
app:strokeColor="@color/base_accent"
app:cardBackgroundColor="?cardBackground">
app:cardBackgroundColor="@color/bg_cards">
<LinearLayout
android:layout_width="match_parent"

View File

@@ -65,7 +65,7 @@
<com.google.android.material.textview.MaterialTextView
android:id="@+id/oh_check_date"
style="@style/MwmTextAppearance.Caption"
style="@style/TextAppearance.Caption"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:layout_alignParentEnd="true"

View File

@@ -6,7 +6,6 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="@dimen/margin_half_plus"
android:textSize="@dimen/text_size_headline"
android:fontFamily="@string/robotoMedium"
android:textAppearance="@style/MwmTextAppearance.Title.Toolbar"
android:gravity="center_horizontal"
tools:text="Some long long long placeholder title"/>

View File

@@ -30,7 +30,8 @@
android:layout_alignParentStart="true"
android:background="?selectableItemBackgroundBorderless"
app:srcCompat="?homeAsUpIndicator"
android:scaleType="center" />
android:scaleType="center"
tools:src="@drawable/ic_expand_more" />
<RadioGroup
android:id="@+id/route_type"

View File

@@ -0,0 +1,8 @@
<?xml version="1.0" encoding="utf-8"?>
<com.google.android.material.textview.MaterialTextView
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
style="@style/MwmWidget.Tab"
android:textAppearance="@style/MwmTextAppearance.Body3"
tools:drawableStart="@drawable/ic_menu_open"
tools:text="Some tab"/>

View File

@@ -1,7 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
@@ -10,8 +9,7 @@
style="@style/MwmWidget.ToolbarStyle"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:theme="@style/MwmWidget.ToolbarTheme"
app:navigationIcon="@drawable/ic_expand_more"/>
android:theme="@style/MwmWidget.ToolbarTheme.DownButton"/>
<View
android:layout_width="match_parent"

View File

@@ -17,6 +17,7 @@
android:background="?selectableItemBackgroundBorderless"
app:srcCompat="?homeAsUpIndicator"
android:scaleType="center"
tools:src="@drawable/ic_expand_more"
android:contentDescription="@string/back"/>
<com.google.android.material.textfield.TextInputEditText

View File

@@ -0,0 +1,8 @@
<?xml version="1.0" encoding="utf-8"?>
<com.google.android.material.appbar.MaterialToolbar
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/toolbar"
style="@style/MwmWidget.ToolbarStyle"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:theme="@style/MwmWidget.ToolbarTheme.Transparent"/>

View File

@@ -1,13 +1,13 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="back">পিছনে</string>
<string name="download_maps">মানচিত্র ডাউনলোড করুন</string>
<string name="delete">মুছুন</string>
<string name="download_maps">ডাউনলোডকৃত মানচিত্র</string>
<string name="delete">মুছ</string>
<string name="cancel">বাতিল</string>
<string name="miles">মাইল</string>
<string name="later">পরে</string>
<string name="search">খুঁজুন</string>
<string name="download_has_failed">ডাউনলোড ব্যর্থ হয়েছে, আবার চেষ্টা করতে টিপ দিন</string>
<string name="download_has_failed">ডাউনলোড ব্যর্থ আবার চেষ্টা করতে টিপ দাও।</string>
<string name="search_map">ম্যাপ অনুসন্ধান</string>
<string name="kilometres">কিলোমিটার</string>
<string name="downloading">ডাউনলোডরত…</string>
@@ -303,16 +303,4 @@
<string name="editor_report_problem_other_title">আলাদা সমস্যা</string>
<string name="osm_presentation">কমিউনিটি দ্বারা তৈরি ওপেনস্ট্রিটম্যাপ ডেটা টি %s তারিখ অব্দি সাম্পতিক। মানচিত্রটি সম্পাদনা এবং আপডেট করার সম্পর্কে আরও জানুন OpenStreetMap.org-এ</string>
<string name="editor_edit_place_category_title">শ্রেণি</string>
<string name="opens_at">%s এ খুলবে</string>
<string name="closes_at">%s এ বন্ধ হবে</string>
<string name="downloader_of">%2$d এর মধ্যে %1$d</string>
<string name="error_enter_correct_house_number">সঠিক বিল্ডিং নম্বর দিন</string>
<string name="editor_more_about_osm">আরো OpenStreetMap সম্বন্ধে</string>
<string name="downloader_no_downloaded_maps_title">আপনি কোনো মানচিত্র ডাউনলোড করেননি</string>
<string name="current_location_unknown_error_title">বর্তমান অবস্থান অজানা</string>
<string name="editor_place_doesnt_exist">স্থানটি অস্তিত্বই নেই</string>
<string name="error_enter_correct_phone">সঠিক ফোন নম্বর দিন</string>
<string name="error_enter_correct_web">সঠিক ওয়েব এড্রেস দিন</string>
<string name="error_enter_correct_email">সঠিক ইমেইল দিন</string>
<string name="placepage_add_place_button">OpenStreetMap এ স্থান যোগ করুন</string>
</resources>

View File

@@ -502,7 +502,7 @@
<string name="placepage_edit_bookmark_button">Edita el marcador</string>
<string name="placepage_personal_notes_hint">Notes personals (text o html)</string>
<string name="editor_reset_edits_message">Voleu descartar tots els canvis locals?</string>
<string name="editor_reset_edits_button">Descartar canvis</string>
<string name="editor_reset_edits_button">Descarta</string>
<string name="editor_remove_place_message">Voleu suprimir el lloc afegit?</string>
<string name="editor_remove_place_button">Suprimeix</string>
<string name="editor_place_doesnt_exist">El lloc no existeix</string>
@@ -920,9 +920,4 @@
<string name="prefs_speed_cameras_information">Les advertències de càmeres radar estan deshabilitades als països on estan prohibides per llei.</string>
<string name="navigation_start_tts_message">"Iniciant Navegació, idioma d\'instruccions de veu: "</string>
<string name="navigation_start_tts_disabled_message">Instruccions de veu desactivades: motor TTS no disponible</string>
<string name="advanced">Avançat</string>
<string name="download_resources_custom_url_title">Servidor de Mapes Personalitzat</string>
<string name="download_resources_custom_url_message">Sobreescriu el servidor de descàrrega de mapes per defecte. Deixa en blanc per a emprar el servidor per defecte de CoMaps.</string>
<string name="download_resources_custom_url_summary_none">No establert</string>
<string name="download_resources_custom_url_error_scheme">Per favor introdueix una URL completa que comence amb https:// i acabe amb /</string>
</resources>

View File

@@ -493,7 +493,7 @@
<string name="placepage_edit_bookmark_button">Upravit záložku</string>
<string name="placepage_personal_notes_hint">Vlastní poznámka (text nebo HTML)</string>
<string name="editor_reset_edits_message">Vymazat všechny místní změny?</string>
<string name="editor_reset_edits_button">Zahodit změny</string>
<string name="editor_reset_edits_button">Zahodit</string>
<string name="editor_remove_place_message">Odstranit přidané místo?</string>
<string name="editor_remove_place_button">Odstranit</string>
<string name="editor_place_doesnt_exist">Místo neexistuje</string>
@@ -913,9 +913,4 @@
<string name="place_page_update_too_old_map">Aktualizovat oblast mapy</string>
<string name="place_page_too_old_to_edit">Úprava OpenStreetMap je zakázaná, protože mapová data jsou příliš stará.</string>
<string name="navigation_start_tts_disabled_message">Hlasové pokyny vypnuty: služba TTS není dostupná</string>
<string name="download_resources_custom_url_title">Vlastní mapový server</string>
<string name="download_resources_custom_url_message">Přepsat výchozí server používaný ke stahování map. Nechte pole prázdné, pokud chcete použít výchozí server CoMaps.</string>
<string name="download_resources_custom_url_error_scheme">Zadejte prosím celou adresu URL začínající na https:// a končící s /</string>
<string name="advanced">Pokročilé</string>
<string name="download_resources_custom_url_summary_none">Není nastaveno</string>
</resources>

View File

@@ -902,9 +902,4 @@
<string name="place_page_update_too_old_map">Opdater kortregion</string>
<string name="place_page_too_old_to_edit">Redigering af OpenStreetMap er deaktiveret, fordi kortdataene er for gamle.</string>
<string name="navigation_start_tts_disabled_message">Stemmeinstruktioner deaktiveret: TTS-motor ikke tilgængelig</string>
<string name="advanced">Avanceret</string>
<string name="download_resources_custom_url_title">Brugerdefineret kortserver</string>
<string name="download_resources_custom_url_message">Tilsidesæt den som standard anvendte server til download af kort. Lad feltet være tomt for at bruge CoMaps\' standardserver.</string>
<string name="download_resources_custom_url_summary_none">Ikke indstillet</string>
<string name="download_resources_custom_url_error_scheme">Indtast en URL, der starter med http:// eller https://</string>
</resources>

View File

@@ -9,7 +9,7 @@
<string name="delete">Löschen</string>
<string name="download_maps">Karten herunterladen</string>
<!-- Settings/Downloader - info for country when download fails -->
<string name="download_has_failed">Das Herunterladen ist fehlgeschlagen antippen für einen erneuten Versuch</string>
<string name="download_has_failed">Das Herunterladen ist fehlgeschlagen, Antippen für einen neuen Versuch</string>
<!-- Settings/Downloader - info for country which started downloading -->
<string name="downloading">Wird heruntergeladen …</string>
<!-- Choose measurement on first launch alert - choose metric system button -->
@@ -23,11 +23,11 @@
<!-- Search box placeholder text; Used when searching on the map itself, not when searching for a map -->
<string name="search_map">Auf der Karte suchen</string>
<!-- Location services are disabled by user alert - message -->
<string name="location_is_disabled_long_text">Standortdienste sind für dieses Gerät oder diese App deaktiviert. Bitte aktiviere diese in den Einstellungen.</string>
<string name="location_is_disabled_long_text">Standortdienste sind für dieses Gerät oder diese App deaktiviert. Bitte aktivieren Sie diese in den Einstellungen.</string>
<!-- A dialog title, that warns a user that Precise Location is disabled and suggests to turn it on -->
<string name="limited_accuracy">Eingeschränkte Genauigkeit</string>
<!-- A dialog text, that warns a user that Precise Location is disabled and suggests to turn it on -->
<string name="precise_location_is_disabled_long_text">Um eine genaue Navigation zu gewährleisten, aktiviere „Genauer Standort“ in den Einstellungen</string>
<string name="precise_location_is_disabled_long_text">Um eine genaue Navigation zu gewährleisten, aktivieren Sie „Genauer Standort“ in den Einstellungen</string>
<!-- View and button titles for accessibility -->
<string name="zoom_to_country">Auf der Karte anzeigen</string>
<!-- Message to display at the center of the screen when the country download has failed -->
@@ -36,7 +36,7 @@
<string name="try_again">Erneut versuchen</string>
<string name="about_menu_title">Über CoMaps</string>
<!-- Text in About screen -->
<string name="about_headline">Freies Projekt, von der Gemeinschaft entwickelt</string>
<string name="about_headline">Offenes Projekt, von der Gemeinschaft entwickelt</string>
<!-- Text in About screen -->
<string name="about_proposition_1">• Ausgereift und einfach zu bedienen</string>
<!-- Text in About screen -->
@@ -53,10 +53,10 @@
<!-- Used in DownloadResources startup screen -->
<string name="disconnect_usb_cable">Bitte USB-Kabel entfernen oder Speicherkarte einsetzen, um CoMaps zu verwenden</string>
<!-- Used in DownloadResources startup screen -->
<string name="not_enough_free_space_on_sdcard">Bitte zuerst den Speicherplatz auf der SD-Karte/USB-Speicher freigeben, um die Anwendung nutzen zu können</string>
<string name="download_resources">Bevor du die App verwendest, lade bitte die weltweite Übersichtskarte herunter. \nEs werden %s des Speicherplatzes benötigt.</string>
<string name="not_enough_free_space_on_sdcard">Bitte zuerst Speicherplatz auf SD-Karte/USB-Speicher freigeben, um die Anwendung zu nutzen</string>
<string name="download_resources">Bevor Sie die App verwenden, laden Sie bitte die weltweite Übersichtskarte herunter. \nEs werden %s Speicherplatz benötigt.</string>
<string name="download_resources_continue">Zur Karte</string>
<string name="downloading_country_can_proceed">%1$s (%2$s) wird heruntergeladen. \nDu kannst jetzt zur Karte weitergehen.</string>
<string name="downloading_country_can_proceed">%1$s (%2$s) wird heruntergeladen. Sie können jetzt \nzur Karte weitergehen.</string>
<string name="download_country_ask">%1$s herunterladen? (%2$s)</string>
<string name="update_country_ask">%1$s aktualisieren? (%2$s)</string>
<!-- REMOVE THIS STRING AFTER REFACTORING -->
@@ -84,7 +84,7 @@
<!-- Header of settings activity where user defines storage path -->
<string name="maps_storage">Karten speichern auf</string>
<!-- Detailed description of Maps Storage settings button -->
<string name="maps_storage_summary">Wähle den Speicherort für die herunterzuladenden Karten</string>
<string name="maps_storage_summary">Wählen Sie den Speicherort für die herunterzuladenden Karten</string>
<!-- E.g. "Downloaded maps: 500Mb" in Maps Storage settings -->
<string name="maps_storage_downloaded">Heruntergeladene Karten</string>
<!-- Free space out of total storage size in Maps Storage settings, e.g. "300 MB free of 2 GB" -->
@@ -94,7 +94,7 @@
<!-- Error moving map files from one storage to another -->
<string name="move_maps_error">Fehler beim Verschieben der Karten</string>
<!-- Ask user to wait several minutes (some long process in modal dialog). -->
<string name="wait_several_minutes">Dies kann einige Minuten in Anspruch nehmen. \nBitte warten </string>
<string name="wait_several_minutes">Dies kann einige Minuten in Anspruch nehmen. \nBitte warten </string>
<!-- Measurement units title in settings activity -->
<string name="measurement_units">Maßeinheiten</string>
<!-- Detailed description of Measurement Units settings button -->
@@ -105,7 +105,7 @@
<!-- Search category for grocery stores; any changes should be duplicated in categories.txt @category_food! -->
<string name="category_food">Lebensmittel</string>
<!-- Search category for public transport; any changes should be duplicated in categories.txt @category_transport! -->
<string name="category_transport">ÖPNV</string>
<string name="category_transport">Verkehr</string>
<!-- Search category for fuel stations; any changes should be duplicated in categories.txt @category_fuel! -->
<string name="category_fuel">Tankstelle</string>
<!-- Search category for parking lots; any changes should be duplicated in categories.txt @category_parking! -->
@@ -125,7 +125,7 @@
<!-- Search category for nightclubs/bars; any changes should be duplicated in categories.txt @category_nightlife! -->
<string name="category_nightlife">Nachtleben</string>
<!-- Search category for water park/disneyland/playground/toys store; any changes should be duplicated in categories.txt @category_children! -->
<string name="category_children">Familienfreizeit</string>
<string name="category_children">Freizeit mit Kindern</string>
<!-- Search category for banks; any changes should be duplicated in categories.txt @category_bank! -->
<string name="category_bank">Bank</string>
<!-- Search category for pharmacies; any changes should be duplicated in categories.txt @category_pharmacy! -->
@@ -137,7 +137,7 @@
<!-- Search category for post offices; any changes should be duplicated in categories.txt @category_post! -->
<string name="category_post">Post</string>
<!-- Search category for police; any changes should be duplicated in categories.txt @category_police! -->
<string name="category_police">Polizei</string>
<string name="category_police">Polizeistation</string>
<!-- Search category for recycling; any changes should be duplicated in categories.txt @category_recycling! -->
<string name="category_recycling">Recycling</string>
<!-- Search category for water; any changes should be duplicated in categories.txt @category_water! also used to sort bookmarks by type -->
@@ -148,12 +148,12 @@
<!-- Notes field in Bookmarks view -->
<string name="description">Notizen</string>
<!-- Email Subject when sharing bookmark list -->
<string name="share_bookmarks_email_subject">CoMaps-Lesezeichen wurden mit dir geteilt</string>
<string name="share_bookmarks_email_body">Hallo! \n \nIm Anhang sind meine Lesezeichen aus der CoMaps-App. Du kannst sie in CoMaps öffnen. Wenn du die App nicht installiert hast, kannst du sie unter https://www.comaps.app/de/download/ herunterladen. \n \nViel Spaß beim Navigieren mit CoMaps!</string>
<string name="share_bookmarks_email_subject">CoMaps-Lesezeichen wurden mit Ihnen geteilt</string>
<string name="share_bookmarks_email_body">Hallo! \n \nIm Anhang sind meine Lesezeichen der CoMaps App. Sie können sie mit CoMaps öffnen. Wenn Sie die App nicht installiert haben, können Sie sie von https://www.comaps.app/download/ für iOS oder Android herunterladen. \n \nViel Spaß beim Reisen mit CoMaps!</string>
<!-- message title of loading file -->
<string name="load_kmz_title">Lesezeichen werden geladen</string>
<!-- Kmz file successful loading -->
<string name="load_kmz_successful">Lesezeichen erfolgreich geladen! Du kannst dieses nun auf deiner Karte oder im Lesezeichen-Manager anzeigen lassen.</string>
<string name="load_kmz_successful">Lesezeichen erfolgreich geladen! Sie können diese nun auf Ihrer Karte oder im Lesezeichen-Manager anzeigen.</string>
<!-- Kml file loading failed -->
<string name="load_kmz_failed">Laden der Lesezeichen fehlgeschlagen. Die Datei könnte beschädigt oder defekt sein.</string>
<!-- Failed to recognize the format of a bookmarks or tracks file. -->
@@ -163,15 +163,15 @@
<!-- resource for context menu -->
<string name="edit">Bearbeiten</string>
<!-- Warning message when doing search around current position -->
<string name="unknown_current_position">Dein Standort konnte noch nicht ermittelt werden</string>
<string name="unknown_current_position">Ihr Standort konnte noch nicht ermittelt werden</string>
<!-- Alert message that we can't run Map Storage settings due to some reasons. -->
<string name="cant_change_this_setting">Entschuldige, die Einstellungen für die Kartenspeicherung sind aktuell deaktiviert</string>
<!-- Alert message that downloading is in progress. -->
<string name="downloading_is_active">Die Karte wird jetzt heruntergeladen</string>
<string name="downloading_is_active">Die Karte wird heruntergeladen</string>
<!-- Share my position using SMS, %1$@ contains om:// and %2$@ https://comaps.app link WITHOUT NAME. @NOTE non-ascii symbols in the link will result in max 70 characters SMS instead of 140. -->
<string name="my_position_share_sms">Sieh dir meinen aktuellen Standort auf CoMaps an! %1$s oder %2$s Du hast CoMaps nicht installiert? Lade die App hier herunter: https://www.comaps.app/de/download/</string>
<string name="my_position_share_sms">Sieh dir meinen aktuellen Standort auf CoMaps an! %1$s oder %2$s Keine Offline-Karten installiert? Hier herunterladen: https://www.comaps.app/download/</string>
<!-- Subject for emailed bookmark -->
<string name="bookmark_share_email_subject">Hey, sieh dir mein Lesezeichen in der CoMaps-App an!</string>
<string name="bookmark_share_email_subject">Hey, sieh dir meine Stecknadel auf der CoMaps-Karte an!</string>
<!-- Subject for emailed position -->
<string name="my_position_share_email_subject">Hey, sieh dir meinen aktuellen Standort auf der CoMaps-Karte an!</string>
<!-- Share my position using EMail, %1$@ is om:// and %2$@ is https://comaps.app link WITHOUT NAME -->
@@ -179,9 +179,9 @@
<!-- Share button text which opens menu with more buttons, like Message, EMail, Facebook etc. -->
<string name="share">Teilen</string>
<!-- Share by email button text, also used in editor and About. -->
<string name="email">E-Mail</string>
<string name="email">Email</string>
<!-- Text for message when used successfully copied something -->
<string name="copied_to_clipboard">Kopiert in der Zwischenablage: %s</string>
<string name="copied_to_clipboard">In die Zwischenablage kopiert: %s</string>
<!-- Used for bookmark editing -->
<string name="done">Fertig</string>
<!-- Data version in «About» screen, %@ is replaced by a local, human readable date. -->
@@ -197,7 +197,7 @@
<string name="prefs_group_information">Information</string>
<string name="prefs_group_route">Navigation</string>
<string name="pref_zoom_title">Zoom-Tasten</string>
<string name="pref_zoom_summary">Zur Anzeige auf der Karte</string>
<string name="pref_zoom_summary">Auf der Karte anzeigen</string>
<!-- Settings «Map» category: «Night style» title -->
<string name="pref_map_style_title">Nachtmodus</string>
<!-- Generic «Off» string -->
@@ -219,9 +219,9 @@
<!-- Settings «Route» category: «Tts announce street names» description -->
<string name="pref_tts_street_names_description">Wenn aktiviert, wird der Name der Straße oder Ausfahrt, in die abgebogen werden soll, laut angekündigt.</string>
<!-- Settings «Route» category: «Tts language» title -->
<string name="pref_tts_language_title">Sprache der Sprachführung</string>
<string name="pref_tts_language_title">Sprache r Sprachführung</string>
<!-- Settings «Route» category: «Test Voice Directions» title -->
<string name="pref_tts_test_voice_title">Teste die Sprachanweisungen</string>
<string name="pref_tts_test_voice_title">Teste Sprachanweisungen</string>
<!-- Settings «Route» category: Pop-up message when clicking «Test Voice Directions» -->
<string name="pref_tts_playing_test_voice">Überprüfe die Lautstärke oder die Text-To-Speech-Einstellungen des Systems, wenn du die Stimme jetzt nicht hören kannst</string>
<!-- Settings «Route» category: «Tts unavailable» subtitle -->
@@ -236,11 +236,11 @@
<!-- Settings: Send feedback button and dialog title -->
<string name="feedback">Feedback</string>
<!-- Text in menu -->
<string name="rate_the_app">Bewerte die App</string>
<string name="rate_the_app">Bewerten Sie die App</string>
<!-- Text in menu -->
<string name="help">Hilfe</string>
<!-- Button in the main Help dialog -->
<string name="faq">Häufige Fragen und Antworten (FAQ)</string>
<string name="faq">Häufige Fragen und Antworten</string>
<!-- Button in the main menu -->
<string name="donate">Spenden</string>
<!-- Button in the main Help dialog -->
@@ -250,13 +250,13 @@
<!-- Text in menu + Button in the main Help dialog -->
<string name="report_a_bug">App-Fehler melden</string>
<!-- Toast text when compass calibration may improve the correctness of the current position arrow -->
<string name="compass_calibration_recommended">Verbessere die Pfeilrichtung, indem du das Smartphone so bewegst, als würdest du eine acht (8) in der Luft nachzeichnen, um den Kompass zu kalibrieren.</string>
<string name="compass_calibration_recommended">Verbessern Sie die Pfeilrichtung, indem Sie das Telefon in einer Achterbewegung bewegen, um den Kompass zu kalibrieren.</string>
<!-- Toast text when compass calibration may improve the correctness of the current position arrow -->
<string name="compass_calibration_required">Bewege das Smartphone so, als wenn du damit eine acht (8) in der Luft zeichnen würdest, um den Kompass zu kalibrieren und die Pfeilrichtung auf der Karte festzulegen.</string>
<string name="compass_calibration_required">Bewegen Sie das Telefon in einer Achterbewegung, um den Kompass zu kalibrieren und die Pfeilrichtung auf der Karte festzulegen.</string>
<!-- Toast text when user hides UI with a long tap anywhere on the map -->
<string name="long_tap_toast">Tippe erneut lange auf die Karte, um die Benutzeroberfläche wiederzusehen</string>
<string name="long_tap_toast">Tippe erneut lange auf die Karte, um die Benutzeroberfläche zu sehen</string>
<!-- Update all button text -->
<string name="downloader_update_all_button">Alle Karten aktualisieren</string>
<string name="downloader_update_all_button">Alle aktualisieren</string>
<!-- Cancel all button text -->
<string name="downloader_cancel_all">Alle abbrechen</string>
<!-- Downloaded maps list header -->
@@ -289,11 +289,11 @@
<!-- Text for routing error dialog -->
<string name="routing_download_maps_along">Karten entlang der Route herunterladen</string>
<!-- Text for routing error dialog -->
<string name="routing_requires_all_map">Zum Erstellen einer Route müssen alle Karten von deinem Standort bis zum Ziel heruntergeladen und aktualisiert worden sein.</string>
<string name="routing_requires_all_map">Zum Erstellen einer Route müssen alle Karten von Ihrem Standort bis zum Ziel heruntergeladen und aktualisiert worden sein.</string>
<!-- Text for routing error dialog -->
<string name="routing_not_enough_space">Nicht genügend Speicherplatz</string>
<!-- location service disabled -->
<string name="enable_location_services">Bitte aktiviere die Standortdienste</string>
<string name="enable_location_services">Bitte aktivieren Sie die Standortdienste</string>
<string name="save">Speichern</string>
<string name="create">Erstellen</string>
<!-- red color -->
@@ -329,36 +329,36 @@
<!-- blue gray color -->
<string name="blue_gray">Graublau</string>
<!-- SECTION: Routing dialogs strings -->
<string name="dialog_routing_disclaimer_title">Wenn du der Route folgst, beachte bitte:</string>
<string name="dialog_routing_disclaimer_priority"> Zustand der Straßen, die Verkehrsordnung und Straßenschilder haben stets Vorrang vor Navigationsanweisungen;</string>
<string name="dialog_routing_disclaimer_precision"> Die Karte kann ungenau sein, und die vorgeschlagene Route ist möglicherweise nicht der optimale Weg, um das Ziel zu erreichen;</string>
<string name="dialog_routing_disclaimer_title">Wenn Sie der Route folgen, beachten Sie bitte:</string>
<string name="dialog_routing_disclaimer_priority"> Zustand der Straßen, die Verkehrsordnung und Straßenschilder haben stets Vorrang vor Navigationsanweisungen;</string>
<string name="dialog_routing_disclaimer_precision"> Die Karte kann ungenau sein, und die vorgeschlagene Route ist möglicherweise nicht der optimale Weg, um das Ziel zu erreichen;</string>
<string name="dialog_routing_disclaimer_recommendations">— Die vorgeschlagenen Routen sind als Empfehlungen zu verstehen;</string>
<string name="dialog_routing_disclaimer_borders">— Bitte sei vorsichtig bei Routen in Grenzgebieten: die Routen, die unsere App erstellt, können manchmal Landesgrenzen in gesperrten Gebieten überschreiten.</string>
<string name="dialog_routing_disclaimer_beware">Bitte fahre aufmerksam und sicher!</string>
<string name="dialog_routing_disclaimer_borders">— Bitte seien Sie vorsichtig bei Routen in Grenzgebieten: die Routen, die unsere App erstellt, können manchmal Landesgrenzen in gesperrten Gebieten überschreiten.</string>
<string name="dialog_routing_disclaimer_beware">Bitte fahren Sie aufmerksam und sicher!</string>
<string name="dialog_routing_check_gps">GPS-Signal prüfen</string>
<string name="dialog_routing_error_location_not_found">Route kann nicht erstellt werden. Aktuelle GPS-Koordinaten konnten nicht ermittelt werden.</string>
<string name="dialog_routing_location_turn_wifi">Bitte prüfe dein GPS-Signal. Aktiviertes W-LAN verbessert deine Standortgenauigkeit.</string>
<string name="dialog_routing_location_turn_wifi">Bitte prüfen Sie Ihr GPS-Signal. WLAN verbessert Ihre Standortgenauigkeit.</string>
<string name="dialog_routing_location_turn_on">Standortdienste aktivieren</string>
<string name="dialog_routing_location_unknown_turn_on">Aktuelle GPS-Koordinaten können nicht ermittelt werden. Aktiviere die Standortdienste, um die Route zu berechnen.</string>
<string name="dialog_routing_location_unknown_turn_on">Aktuelle GPS-Koordinaten können nicht ermittelt werden. Aktivieren Sie Standortdienste, um die Route zu berechnen.</string>
<string name="dialog_routing_unable_locate_route">Route kann nicht ermittelt werden</string>
<string name="dialog_routing_cant_build_route">Route konnte nicht erstellt werden</string>
<string name="dialog_routing_change_start_or_end">Bitte passe deinen Startpunkt oder Ziel an.</string>
<string name="dialog_routing_change_start_or_end">Bitte passen Sie Ihren Startpunkt oder Ihr Ziel an.</string>
<string name="dialog_routing_change_start">Startpunkt anpassen</string>
<string name="dialog_routing_start_not_determined">Route wurde nicht erstellt. Startpunkt konnte nicht gefunden werden.</string>
<string name="dialog_routing_select_closer_start">Bitte wähle einen Startpunkt, der näher an einer Straße liegt.</string>
<string name="dialog_routing_select_closer_start">Bitte wählen Sie einen Startpunkt, der näher an einer Straße liegt.</string>
<string name="dialog_routing_change_end">Ziel anpassen</string>
<string name="dialog_routing_end_not_determined">Route wurde nicht erstellt. Ziel konnte nicht gefunden werden.</string>
<string name="dialog_routing_select_closer_end">Bitte wähle einen Zielort näher an einer Straße</string>
<string name="dialog_routing_select_closer_end">Bitte wählen Sie einen Zielort näher an einer Straße</string>
<string name="dialog_routing_change_intermediate">Der Zwischenstopp konnte nicht gefunden werden</string>
<string name="dialog_routing_intermediate_not_determined">Bitte passe deinen Zwischenstopp an</string>
<string name="dialog_routing_intermediate_not_determined">Bitte passen Sie Ihren Zwischenstopp an</string>
<string name="dialog_routing_system_error">Systemfehler</string>
<string name="dialog_routing_application_error">Wegen eines Anwendungsfehlers konnte keine Route erstellt werden</string>
<string name="dialog_routing_try_again">Bitte versuche es erneut</string>
<string name="dialog_routing_try_again">Bitte versuchen Sie es erneut</string>
<string name="not_now">Nicht jetzt</string>
<string name="dialog_routing_download_and_build_cross_route">Möchtest du die Karte herunterladen und eine bessere Route erstellen, die mehr als eine Karte umfasst?</string>
<string name="dialog_routing_download_cross_route">Lade zusätzliche Karten herunter, um eine bessere Route zu erstellen, welche die Grenzen dieser Karte überschreitet.</string>
<string name="dialog_routing_download_and_build_cross_route">Möchten Sie die Karte herunterladen und eine bessere Route erstellen, die mehr als eine Karte umfasst?</string>
<string name="dialog_routing_download_cross_route">Laden Sie zusätzliche Karten herunter, um eine bessere Route zu erstellen, welche die Grenzen dieser Karte überschreitet.</string>
<!-- SECTION: Strings for downloading map from search -->
<string name="search_without_internet_advertisement">Um mit der Suche und dem Erstellen von Routen zu beginnen, lade bitte die Karte herunter. Du benötigst danach keine Internetverbindung mehr.</string>
<string name="search_without_internet_advertisement">Um mit der Suche und dem Erstellen von Routen zu beginnen, laden Sie bitte die Karte herunter. Sie benötigen danach keine Internetverbindung mehr.</string>
<string name="search_select_map">Karte auswählen</string>
<!-- «Show» context menu -->
<string name="show">Anzeigen</string>
@@ -368,16 +368,16 @@
<string name="history">Verlauf</string>
<string name="search_not_found">Uups, kein Ergebnis gefunden</string>
<!-- The message when user did not find anything in the search. -->
<string name="search_not_found_query">Lade die Region herunter, in der du suchst, oder füge den Namen einer nahe gelegenen Stadt oder eines Dorfes hinzu.</string>
<string name="search_not_found_query">Laden Sie die Region herunter, in der Sie suchen, oder fügen Sie den Namen einer nahe gelegenen Stadt oder eines Dorfes hinzu.</string>
<string name="search_history_title">Suchverlauf</string>
<string name="search_history_text">Ihre letzten Suchanfragen anzeigen</string>
<string name="clear_search">Suchverlauf löschen</string>
<string name="p2p_your_location">Dein Standort</string>
<string name="p2p_your_location">Ihr Standort</string>
<string name="p2p_start">Start</string>
<string name="p2p_from_here">Route von</string>
<string name="p2p_to_here">Route nach</string>
<string name="p2p_from_here">Von</string>
<string name="p2p_to_here">Nach</string>
<string name="p2p_only_from_current">Die Navigation ist nur von Ihrem aktuellen Standort aus möglich</string>
<string name="p2p_reroute_from_current">Soll eine Route von deinem aktuellen Standort aus berechnet werden?</string>
<string name="p2p_reroute_from_current">Soll eine Route von Ihrem aktuellen Standort aus berechnet werden?</string>
<!-- Edit open hours/set time and minutes dialog -->
<string name="next_button">Weiter</string>
<!-- Tab title in the Edit Opening Hours time picker -->
@@ -395,17 +395,17 @@
<string name="editor_time_advanced">Erweiterter Modus</string>
<string name="editor_time_simple">Einfacher Modus</string>
<string name="editor_hours_closed">Schließzeiten</string>
<string name="editor_example_values">Beispielwerte</string>
<string name="editor_example_values">Beispiele</string>
<string name="editor_correct_mistake">Fehler korrigieren</string>
<string name="editor_add_select_location">Standort auswählen</string>
<string name="editor_report_problem_desription_1">Bitte beschreibe das Problem detailliert, damit die OpenStreetMap-Community den Fehler korrigieren kann.</string>
<string name="editor_report_problem_desription_2">Oder korrigiere es selbst auf https://www.openstreetmap.org/</string>
<string name="editor_report_problem_desription_1">Bitte beschreiben Sie das Problem detailliert, damit die OpenStreetMap-Community den Fehler korrigieren kann.</string>
<string name="editor_report_problem_desription_2">Oder korrigieren Sie es selbst auf https://www.openstreetmap.org/</string>
<string name="editor_report_problem_send_button">Senden</string>
<string name="editor_report_problem_title">Problem</string>
<string name="editor_report_problem_no_place_title">Dieser Ort existiert nicht</string>
<string name="editor_report_problem_under_construction_title">Wegen Bauarbeiten geschlossen</string>
<string name="editor_report_problem_duplicate_place_title">Doppelt vorhanderer Ort</string>
<string name="autodownload">Automatisch herunterladen</string>
<string name="autodownload">Karten automatisch herunterladen</string>
<!-- Place Page opening hours text -->
<string name="daily">Täglich</string>
<string name="twentyfour_seven">24/7</string>
@@ -427,13 +427,13 @@
<string name="street">Straße</string>
<!-- Editable House Number text field (in address block). -->
<string name="house_number">Hausnummer</string>
<string name="details">Einzelheiten</string>
<string name="details">Details</string>
<string name="social_media">Social Media</string>
<string name="building">Gebäude</string>
<!-- Text field to enter non-existing street name, below list of known streets around -->
<string name="add_street">Eine Straße hinzufügen</string>
<!-- Error to display when a new street name is not entered in the New street dialog -->
<string name="empty_street_name_error">Gebe einen Straßennamen ein</string>
<string name="empty_street_name_error">Geben Sie einen Straßennamen ein</string>
<string name="choose_language">Eine Sprache wählen</string>
<string name="choose_street">Eine Straße wählen</string>
<string name="cuisine">Küche</string>
@@ -444,11 +444,11 @@
<string name="level_value_generic">Stock: %s</string>
<string name="downloader_delete_map_dialog">Alle Kartenänderungen werden zusammen mit der Karte gelöscht</string>
<string name="downloader_update_maps">Karten aktualisieren</string>
<string name="downloader_mwm_migration_dialog">Um eine Route zu erstellen, musst du alle heruntergeladenen Karten aktualisieren und dann die Route erneut planen.</string>
<string name="downloader_mwm_migration_dialog">Um eine Route zu erstellen, müssen Sie alle Karten aktualisieren und dann die Route erneut planen.</string>
<string name="downloader_search_field_hint">Karte finden</string>
<string name="common_check_internet_connection_dialog">Stelle bitte sicher, dass dein Gerät mit dem Internet verbunden ist</string>
<string name="common_check_internet_connection_dialog">Stellen Sie bitte sicher, dass Ihr Gerät mit dem Internet verbunden ist</string>
<string name="downloader_no_space_title">Nicht genug Speicherplatz</string>
<string name="downloader_no_space_message">Bitte entferne unnötige Daten</string>
<string name="downloader_no_space_message">Bitte entfernen Sie unnötige Daten</string>
<string name="editor_login_error_dialog">Login fehlgeschlagen</string>
<string name="editor_profile_changes">Bestätigte Änderungen der Karte</string>
<string name="editor_focus_map_on_location">Verschiebe die Karte, um das Kreuz an der Stelle zu platzieren, an der sich der Ort oder das Geschäft befindet.</string>
@@ -464,8 +464,8 @@
<!-- Text in About and OSM Login screens. First %@ is replaced by a local, human readable date. -->
<string name="osm_presentation">Von der Community erstellte OpenStreetMap-Daten (Stand: %s). Erfahre mehr darüber, wie du die Karte bearbeiten und aktualisieren kannst unter OpenStreetMap.org</string>
<!-- OSM explanation on Android login screen -->
<string name="login_osm_presentation">OpenStreetMap.org (OSM) ist ein Gemeinschaftsprojekt zum Erstellen einer freien und offenen Karte. Es ist die Hauptgrundlage für Kartendaten in CoMaps und funktioniert ähnlich wie Wikipedia. Du kannst Orte hinzufügen oder bearbeiten, die dann Millionen von Nutzenden auf der ganzen Welt zur Verfügung stehen.\nTrete der Gemeinschaft bei und helfe mit, die Karte für alle besser zu machen!</string>
<string name="login_to_make_edits_visible">Erstelle ein Konto bei OpenStreetMap oder melde dich dort an, um deine Kartenbearbeitungen weltweit zu veröffentlichen</string>
<string name="login_osm_presentation">OpenStreetMap.org (OSM) ist ein Gemeinschaftsprojekt zum Erstellen einer freien und offenen Karte. Es ist die Hauptquelle für Kartendaten in CoMaps und funktioniert ähnlich wie Wikipedia. Sie können Orte hinzufügen oder bearbeiten, die dann Millionen von Nutzenden auf der ganzen Welt zur Verfügung stehen. \nTreten Sie der Gemeinschaft bei und helfen Sie mit, die Karte für alle besser zu machen!</string>
<string name="login_to_make_edits_visible">Erstellen Sie ein Konto bei OpenStreetMap oder melden sich dort an, um Ihre Kartenbearbeitungen weltweit zu veröffentlichen</string>
<!-- Downloaded 10 **of** 20 <- it is that "of" -->
<string name="downloader_of">%1$d von %2$d</string>
<string name="download_over_mobile_header">Über eine Mobilfunknetzverbindung herunterladen?</string>
@@ -474,13 +474,13 @@
<!-- Error message in Editor when a user tries to set the number of floors for a building higher than %d floors -->
<string name="error_enter_correct_storey_number">Das Gebäude kann nicht mehr als %d Etagen haben</string>
<string name="editor_zip_code">Postleitzahl</string>
<string name="error_enter_correct_zip_code">Gebe eine gültige Postleitzahl ein</string>
<string name="error_enter_correct_zip_code">Geben Sie eine gültige Postleitzahl ein</string>
<!-- Title for OSM note section in the editor -->
<string name="editor_other_info">Hinweis an Freiwillige von OpenStreetMap (optional)</string>
<!-- Hint of the input field in the OSM note section of the editor -->
<string name="editor_note_hint">Beschreibe Kartenfehler oder Dinge, die mit CoMaps nicht bearbeitet werden können</string>
<string name="editor_note_hint">Beschreiben Sie Kartenfehler oder Dinge, die mit CoMaps nicht bearbeitet werden können</string>
<!-- Information about OSM at the top of the editing page -->
<string name="editor_about_osm">Deine Bearbeitungen werden in die öffentliche <a href="https://wiki.openstreetmap.org/wiki/DE:Über_OSM">OpenStreetMap</a> Datenbank hochgeladen. Bitte trage keine privaten oder urheberrechtlich geschützten Informationen ein.</string>
<string name="editor_about_osm">Ihre Bearbeitungen werden in die öffentliche <a href="https://wiki.openstreetmap.org/wiki/DE:Über_OSM">OpenStreetMap</a> Datenbank hochgeladen. Bitte tragen Sie keine privaten oder urheberrechtlich geschützten Informationen ein.</string>
<string name="editor_more_about_osm">Mehr Informationen über OpenStreetMap</string>
<string name="editor_osm_history">Ihr Bearbeitungsverlauf</string>
<string name="editor_osm_notes">Ihre Hinweise zu den Kartendaten</string>
@@ -488,9 +488,9 @@
<!-- To indicate the operator of ATMs, bicycle rentals, electric vehicle charging stations... -->
<string name="operator">Betreiber: %s</string>
<string name="editor_category_unsuitable_title">Keine passende Kategorie gefunden?</string>
<string name="editor_category_unsuitable_text">Mit CoMaps kannst du nur einfache Punktkategorien hinzufügen, dass bedeutet keine Städte, Straßen, Seen, Gebäudeumrisse etc. Bitte füge solche Kategorien direkt bei <a href="https://www.openstreetmap.org">OpenStreetMap.org</a> hinzu. In unserem <a href="https://www.comaps.app/support/advanced-map-editing/">Leitfaden (auf Englisch)</a> findest du eine detaillierte Schritt-für-Schritt Anleitung.</string>
<string name="editor_category_unsuitable_text">Mit CoMaps kann man nur einfache Punktkategorien hinzufügen, dass bedeutet keine Städte, Straßen, Seen, Gebäudeumrisse etc. Bitte füge solche Kategorien direkt bei <a href="https://www.openstreetmap.org">OpenStreetMap.org</a> hinzu. In unserem <a href="https://www.comaps.app/support/advanced-map-editing/">Leitfaden</a> findest du eine detaillierte Schritt-für-Schritt Anleitung.</string>
<string name="downloader_no_downloaded_maps_title">Keine Karten heruntergeladen</string>
<string name="downloader_no_downloaded_maps_message">Lade Karten für die Offline-Suche und Navigation herunter</string>
<string name="downloader_no_downloaded_maps_message">Laden Sie Karten für die Offline-Suche und Navigation herunter</string>
<string name="current_location_unknown_error_title">Aktueller Standort ist unbekannt</string>
<!-- abbreviation for kilometers per hour -->
<string name="kilometers_per_hour">km/h</string>
@@ -507,21 +507,21 @@
<string name="editor_remove_place_button">Löschen</string>
<string name="editor_place_doesnt_exist">Dieser Ort existiert nicht</string>
<!-- Error message for "Place doesn't exist" dialog when comment is empty -->
<string name="delete_place_empty_comment_error">Gebe bitte den Grund für die Löschung an</string>
<string name="delete_place_empty_comment_error">Geben Sie bitte den Grund für die Löschung an</string>
<!-- Phone number error message -->
<string name="error_enter_correct_phone">Gebe eine gültige Telefonnummer ein</string>
<string name="error_enter_correct_web">Gebe eine gültige Internetadresse ein</string>
<string name="error_enter_correct_email">Gebe eine gültige E-Mail-Adresse ein</string>
<string name="error_enter_correct_facebook_page">Gebe eine gültige Facebook-Webadresse, ein -Konto oder einen -Seitennamen ein</string>
<string name="error_enter_correct_instagram_page">Gebe eine gültige Instagram-Webadresse oder einen -Kontonamen ein</string>
<string name="error_enter_correct_twitter_page">Gebe einen gültigen X-Benutzernamen oder eine gültige X-Webadresse ein</string>
<string name="error_enter_correct_vk_page">Gebe einen gültigen VK-Benutzernamen oder eine gültige VK-Webadresse ein</string>
<string name="error_enter_correct_line_page">Gebe eine gültige LINE-ID oder Webadresse ein</string>
<string name="error_enter_correct_phone">Geben Sie eine gültige Telefonnummer ein</string>
<string name="error_enter_correct_web">Geben Sie eine gültige Internetadresse ein</string>
<string name="error_enter_correct_email">Geben Sie eine gültige Email-Adresse ein</string>
<string name="error_enter_correct_facebook_page">Geben Sie eine gültige Facebook-Webadresse, ein Konto oder einen Seitennamen ein</string>
<string name="error_enter_correct_instagram_page">Geben Sie eine gültige Instagram-Webadresse oder einen Kontonamen ein</string>
<string name="error_enter_correct_twitter_page">Geben Sie eine gültige Twitter-Webadresse oder einen Benutzernamen ein</string>
<string name="error_enter_correct_vk_page">Geben Sie eine gültige VK-Webadresse oder einen Kontonamen ein</string>
<string name="error_enter_correct_line_page">Geben Sie eine gültige LINE-Webadresse oder LINE ID ein</string>
<string name="placepage_add_place_button">Ort zu OpenStreetMap hinzufügen</string>
<!-- Displayed when saving some edits to the map to warn against publishing personal data -->
<string name="editor_share_to_all_dialog_title">An alle Nutzer*innen senden?</string>
<!-- Dialog before publishing the modifications to the public map. -->
<string name="editor_share_to_all_dialog_message_1">Stelle sicher, dass du keine privaten oder persönlichen Daten eingegeben hast.</string>
<string name="editor_share_to_all_dialog_message_1">Stellen Sie sicher, dass Sie keine persönlichen oder privaten Daten eingegeben haben.</string>
<string name="editor_share_to_all_dialog_message_2">Freiwillige von OpenStreetMap werden die Änderungen prüfen und sich bei Fragen mit Ihnen in Verbindung setzen.</string>
<string name="navigation_stop_button">Beenden</string>
<!-- Shown as toast when starting the recent track recording -->
@@ -541,15 +541,15 @@
<string name="mobile_data_option_ask">Immer fragen</string>
<string name="traffic_update_maps_text">Um Verkehrsdaten anzuzeigen, müssen die Karten aktualisiert werden</string>
<string name="big_font">Schrift auf der Karte vergrößern</string>
<string name="traffic_update_app">Bitte aktualisiere CoMaps</string>
<string name="traffic_update_app">Bitte aktualisieren Sie CoMaps</string>
<!-- "traffic" as in "road congestion" -->
<string name="traffic_data_unavailable">Es sind keine Verkehrsdaten verfügbar</string>
<string name="traffic_data_unavailable">Verkehrsdaten sind nicht verfügbar</string>
<string name="enable_logging">Protokollierung aktivieren</string>
<!-- Settings: "Send general feedback" button -->
<string name="feedback_general">Allgemeines Feedback</string>
<string name="prefs_languages_information">Wir verwenden Text-to-Speech-Systeme (TTS; zu deutsch: Text-zu-Sprache) für Sprachanweisungen. Viele Android-Geräte nutzen Google-TTS, das du bei Google Play (https://play.google.com/store/apps/details?id=com.google.android.tts) herunterladen oder aktualisieren kannst</string>
<string name="prefs_languages_information_off">Für einige Sprachen musst du einen anderen Sprachgenerator oder ein zusätzliches Sprachpaket aus deinem App-Store installieren (Google Play Store, Samsung Galaxy Store, Huawei AppGallery, F-Droid).\nÖffne die Einstellungen deines Gerätes → Sprache und Eingabe → Sprache → Text-to-Speech-Ausgabe.\nHier kannst du die Einstellungen für Sprachsynthese verwalten (beispielsweise ein Sprachpaket für die Offline-Verwendung herunterladen) und ein anderes Sprachausgabeprogramm auswählen.</string>
<string name="prefs_languages_information_off_link">Weitere Informationen findest du in dieser Anleitung</string>
<string name="prefs_languages_information">Wir verwenden Text-to-Speech-Systeme für Sprachanweisungen. Viele Android-Geräte nutzen Google-TTS, das Sie bei Google Play (https://play.google.com/store/apps/details?id=com.google.android.tts) herunterladen oder aktualisieren können</string>
<string name="prefs_languages_information_off">Für einige Sprachen müssen Sie einen anderen Sprachgenerator oder ein zusätzliches Sprachpaket aus dem App Store installieren (Google Play, Galaxy Store, App Gallery, FDroid).\nÖffnen Sie die Einstellungen Ihres Gerätes → Sprache und Eingabe → Sprache → Text-to-Speech-Ausgabe.\nHier können Sie die Einstellungen für Sprachsynthese verwalten (beispielsweise ein Sprachpaket für die Offline-Verwendung herunterladen) und ein anderes Sprachausgabeprogramm auswählen.</string>
<string name="prefs_languages_information_off_link">Weitere Informationen finden Sie in dieser Anleitung</string>
<string name="transliteration_title">Transliteration ins lateinische Alphabet</string>
<string name="learn_more">Weitere Informationen</string>
<!-- User selected the destination by pressing Route To, but the current position is unknown. User needs to select a starting point of a route using search or by tapping on the map and then pressing "Route From". -->
@@ -561,9 +561,9 @@
<string name="placepage_remove_stop">Stopp entfernen</string>
<string name="placepage_add_stop">Stopp hinzufügen</string>
<string name="dialog_error_storage_title">Problem mit dem Zugriff auf den Speicher</string>
<string name="dialog_error_storage_message">Der externe Speicher ist nicht verfügbar, möglicherweise wurde die SD-Karte entfernt oder sie ist beschädigt oder das Dateisystem ist schreibgeschützt. Bitte überprüfe das oder kontaktiere uns unter support@comaps.app</string>
<string name="dialog_error_storage_message">Der externe Speicher ist nicht verfügbar, möglicherweise wurde die SD-Karte entfernt oder sie ist beschädigt oder das Dateisystem ist schreibgeschützt. Überprüfen Sie das bitte oder kontaktieren Sie uns unter support@comaps.app</string>
<string name="setting_emulate_bad_storage">Fehlerhaften Speicher emulieren</string>
<string name="error_enter_correct_name">Bitte gebe deinen korrekten Namen ein</string>
<string name="error_enter_correct_name">Bitte geben Sie einen korrekten Namen ein</string>
<string name="bookmark_lists">Listen</string>
<!-- Do not display all bookmark lists on the map -->
<string name="bookmark_lists_hide_all">Alle ausblenden</string>
@@ -579,7 +579,7 @@
<string name="bookmarks_error_title_share_empty">Fehler beim Teilen</string>
<string name="bookmarks_error_message_share_empty">Eine leere Liste kann nicht geteilt werden</string>
<string name="bookmarks_error_title_empty_list_name">Der Name darf nicht leer sein</string>
<string name="bookmarks_error_message_empty_list_name">Bitte gebe den Listennamen ein</string>
<string name="bookmarks_error_message_empty_list_name">Bitte geben Sie den Listennamen ein</string>
<string name="bookmarks_new_list_hint">Neue Liste</string>
<string name="bookmarks_error_title_list_name_already_taken">Dieser Name wird bereits verwendet</string>
<string name="bookmarks_error_message_list_name_already_taken">Bitte wähle einen anderen Namen</string>
@@ -587,8 +587,8 @@
<string name="phone_number">Telefonnummer</string>
<string name="profile">OpenStreetMap-Profil</string>
<plurals name="bookmarks_detect_message">
<item quantity="one">%d Datei wurde gefunden. Du wirst sie nach der Konvertierung sehen.</item>
<item quantity="other">%d Dateien wurden gefunden. Du wirst sie nach der Konvertierung sehen.</item>
<item quantity="one">%d Datei wurde gefunden. Sie werden sie nach der Konvertierung sehen.</item>
<item quantity="other">%d Dateien wurden gefunden. Sie werden sie nach der Konvertierung sehen.</item>
</plurals>
<string name="restore">Wiederherstellen</string>
<plurals name="tracks">
@@ -603,7 +603,7 @@
<string name="subway">U-Bahn</string>
<string name="layers_title">Kartenstile und Ebenen</string>
<string name="bookmarks_empty_list_title">Die Liste ist leer</string>
<string name="bookmarks_empty_list_message">Zum Hinzufügen eines Lesezeichens tippe in der Karte auf den Ort und dann unten auf das Stern-Symbol</string>
<string name="bookmarks_empty_list_message">Zum Hinzufügen eines Lesezeichens tippen Sie in der Karte auf den Ort und dann unten auf das Sternchen</string>
<string name="category_desc_more">…mehr</string>
<string name="export_file">KMZ exportieren</string>
<string name="export_file_gpx">GPX exportieren</string>
@@ -623,7 +623,7 @@
<string name="power_managment_setting_never">Niemals</string>
<string name="power_managment_setting_auto">Bei niedrigem Akkustand</string>
<string name="power_managment_setting_manual_max">Immer</string>
<string name="enable_logging_warning_message">Aktiviere diese Option zeitweise, um manuell Aktivitäten zwecks Diagnostik aufzuzeichnen und zu senden. Das hilft unserem Team, Probleme mit der App zu erkennen. Aktiviere diese Option, reproduziere das Problem und sende die Protokolle über die Schaltfläche \"Fehler melden\" an uns.</string>
<string name="enable_logging_warning_message">Aktivieren Sie diese Option zeitweise, um manuell Aktivitäten zwecks Diagnostik aufzuzeichnen und zu senden. Das hilft unserem Team, Probleme mit der App zu erkennen. Aktivieren Sie diese Option, reproduzieren Sie das Problem und senden Sie die Protokolle über die Schaltfläche \"Fehler melden\" an uns.</string>
<string name="driving_options_title">Routenoptionen</string>
<!-- Recommended length for CarPlay and Android Auto is around 25-27 characters -->
<string name="avoid_tolls">Mautstraßen vermeiden</string>
@@ -633,7 +633,7 @@
<string name="avoid_ferry">Fähren meiden</string>
<string name="avoid_motorways">Autobahnen meiden</string>
<string name="unable_to_calc_alert_title">Route kann nicht berechnet werden</string>
<string name="unable_to_calc_alert_subtitle">Es konnte keine Route gefunden werden. Dies kann an deinen Routingoptionen oder an unvollständigen OpenStreetMap-Daten liegen. Bitte ändere deine Routingoptionen und versuche es erneut.</string>
<string name="unable_to_calc_alert_subtitle">Es konnte keine Route gefunden werden. Dies kann an Ihren Routingoptionen oder an unvollständigen OpenStreetMap-Daten liegen. Bitte ändern Sie Ihre Routingoptionen und versuchen Sie es erneut.</string>
<string name="define_to_avoid_btn">Routenoptionen einstellen</string>
<string name="change_driving_options_btn">Routenoptionen aktiv</string>
<string name="toll_road">Mautstraße</string>
@@ -651,7 +651,7 @@
<string name="capacity">Kapazität: %s</string>
<!-- To indicate the network of ATMs, bicycle rentals, electric vehicle charging stations... -->
<string name="network">Netzwerk: %s</string>
<string name="trip_finished">Du bist am Ziel angekommen!</string>
<string name="trip_finished">Sie sind angekommen!</string>
<string name="ok">OK</string>
<!-- max. 10 symbols, both iOS and Android -->
<string name="sort">Sortieren…</string>
@@ -690,12 +690,12 @@
<string name="medicine">Medizin</string>
<string name="search_in_the_list">In der Liste suchen</string>
<string name="religious_places">Religiöse Orte</string>
<string name="select_list">Wähle eine Liste aus</string>
<string name="select_list">Wählen Sie eine Liste</string>
<string name="transit_not_found">Die U-Bahn-Navigation ist in dieser Region noch nicht verfügbar</string>
<string name="dialog_pedestrian_route_is_long_header">Keine U-Bahn-Route gefunden</string>
<string name="dialog_pedestrian_route_is_long_message">Wähle einen Start- oder Endpunkt näher an einer U-Bahn-Station</string>
<string name="dialog_pedestrian_route_is_long_message">Wählen Sie einen Start- oder Endpunkt näher an einer U-Bahn-Station</string>
<string name="button_layer_isolines">Höhenlinien</string>
<string name="isolines_activation_error_dialog">Um die Höhenlinien nutzen zu können, aktualisiere die Karte des betreffenden Gebiets oder lade diese herunter</string>
<string name="isolines_activation_error_dialog">Um die Höhenlinien nutzen zu können, aktualisieren Sie die Karte des betreffenden Gebiets oder laden Sie diese herunter</string>
<string name="isolines_location_error_dialog">Topographieebene ist für dieses Gebiet noch nicht verfügbar</string>
<string name="elevation_profile_ascent">Bergauf</string>
<string name="elevation_profile_descent">Bergab</string>
@@ -706,7 +706,7 @@
<string name="elevation_profile_time">Dauer:</string>
<string name="isolines_toast_zooms_1_10">Karte vergrößern, um Höhenlinien sichtbar zu machen</string>
<string name="downloader_loading_ios">Wird heruntergeladen</string>
<string name="download_map_title">Lade die weltweite Übersichtskarte herunter</string>
<string name="download_map_title">Laden Sie die weltweite Übersichtskarte herunter</string>
<!-- Used in DownloadResources startup screen -->
<string name="disk_error">Ordner kann nicht erstellt und Dateien können nicht auf den Gerätespeicher oder die SD-Karte verschoben werden</string>
<!-- Used in DownloadResources startup screen -->
@@ -735,21 +735,21 @@
<!-- App tip #01 -->
<string name="app_tip_01">Mit Ihren Spenden und Ihrer Unterstützung können wir die besten Karten der Welt erstellen!</string>
<!-- App tip #02 -->
<string name="app_tip_02">Gefällt dir unsere App? Bitte spende, um die Entwicklung zu unterstützen! Gefällt sie dir noch nicht? Bitte lass uns wissen warum und wir werden das Problem beheben!</string>
<string name="app_tip_02">Gefällt Ihnen unsere App? Bitte spenden Sie, um die Entwicklung zu unterstützen! Gefällt es Ihnen noch nicht? Bitte lassen Sie uns wissen warum und wir werden das Problem beheben!</string>
<!-- App tip #03 -->
<string name="app_tip_03">Wenn du eine*n Softwareentwickler*in kennst, kannst du der Person bitten, eine Funktion zu implementieren, die du benötigst.</string>
<string name="app_tip_03">Wenn Sie eine*n Softwareentwickler*in kennen, können Sie ihn oder sie bitten, eine Funktion zu implementieren, die Sie benötigen.</string>
<!-- App tip #04 -->
<string name="app_tip_04">Tippe irgendwo auf der Karte, um etwas auszuwählen. Tippe lange, um die Menü-Oberfläche aus- und wieder einzublenden.</string>
<string name="app_tip_04">Tippen Sie irgendwo auf die Karte, um etwas auszuwählen. Tippen Sie lange, um die Oberfläche aus- und wieder einzublenden.</string>
<!-- App tip #05 -->
<string name="app_tip_05">Wusstest du, dass du deinen aktuellen Standort auf der Karte auswählen kannst?</string>
<string name="app_tip_05">Wussten Sie, dass Sie Ihren aktuellen Standort auf der Karte auswählen können?</string>
<!-- App tip #06 -->
<string name="app_tip_06">Du kannst dabei helfen, unsere App in deiner Sprache zu übersetzen.</string>
<string name="app_tip_06">Sie können dabei helfen, unsere App in Ihre Sprache zu übersetzen.</string>
<!-- App tip #07 -->
<string name="app_tip_07">Unsere App wird von einigen Enthusiasten und der Community entwickelt.</string>
<!-- App tip #08 -->
<string name="app_tip_08">Du kannst die Kartendaten einfach korrigieren und verbessern.</string>
<string name="app_tip_08">Sie können die Kartendaten einfach korrigieren und verbessern.</string>
<!-- App tip #09 -->
<string name="app_tip_09">Unser Hauptziel ist es, schnelle, datenschutzorientierte und benutzerfreundliche Karten zu erstellen, die du lieben wirst.</string>
<string name="app_tip_09">Unser Hauptziel ist es, schnelle, datenschutzorientierte und benutzerfreundliche Karten zu erstellen, die Sie lieben werden.</string>
<!-- Text on the Android Auto or CarPlay placeholder screen that maps are displayed on the phone screen -->
<string name="car_used_on_the_phone_screen">Du verwendest jetzt CoMaps auf dem Telefondisplay</string>
<!-- Text on the phone placeholder screen that maps are displayed on the car screen -->
@@ -778,7 +778,7 @@
<!-- button in (app) TTS settings, to open the system TTS settings. -->
<string name="pref_tts_open_system_settings">Einstellungen des Sprachsynthesesystems</string>
<!-- toast displayed when pressing the "Speech synthesis system settings" button, and the system settings aren't found. -->
<string name="pref_tts_no_system_tts">Die Einstellungen für die Sprachsynthese wurden nicht gefunden. Bist du sicher, dass dein Endgerät sie unterstützt?</string>
<string name="pref_tts_no_system_tts">Die Einstellungen für die Sprachsynthese wurden nicht gefunden. Bist du sicher, dass dein Gerät sie unterstützt?</string>
<string name="drive_through">Drive-through</string>
<string name="clear_the_search">Lösche die Suche</string>
<string name="zoom_in">Vergrößern</string>
@@ -810,7 +810,7 @@
<!-- Message for the toast when saving the track recording is finished but nothing to save. -->
<string name="track_recording_toast_nothing_to_save">Route ist leer - nichts zu speichern</string>
<!-- Error message when there are no File Manager apps installed to select a folder when importing Bookmarks and Tracks -->
<string name="error_no_file_manager_app">Das Dialogfeld zur Ordnerauswahl kann nicht angezeigt werden, da keine geeignete App auf deinem Endgerät installiert ist. Bitte installiere eine Dateimanager-App und versuche es erneut.</string>
<string name="error_no_file_manager_app">Das Dialogfeld zur Ordnerauswahl kann nicht angezeigt werden, da keine geeignete App auf Ihrem Gerät installiert ist. Bitte installieren Sie eine Dateimanager-App und versuchen Sie es erneut.</string>
<string name="choose_color">Farbe auswählen</string>
<string name="edit_track">Track bearbeiten</string>
<string name="uri_open_location_failed">Keine App installiert, die den Speicherort öffnen kann</string>
@@ -824,13 +824,13 @@
<string name="app_site_url">https://comaps.app/de/</string>
<string name="telegram_url">https://t.me/CoMapsApp/</string>
<string name="instagram_url">https://www.instagram.com/comaps.app/</string>
<string name="error_enter_correct_bluesky_page">Gebe einen gültigen Bluesky-Nutzernamen oder Webadresse ein</string>
<string name="error_enter_correct_fediverse_page">Gebe einen gültigen Mastodon-Nutzernamen oder Webadresse an</string>
<string name="error_enter_correct_bluesky_page">Geben Sie einen gültigen Bluesky-Nutzernamen oder Webadresse ein</string>
<string name="error_enter_correct_fediverse_page">Geben Sie einen gültigen Mastodon-Nutzernamen oder Webadresse an</string>
<string name="pref_left_button_title">Einstellung linker Knopf</string>
<string name="saved">Gespeichert</string>
<string name="pref_left_button_disable">Deaktivieren</string>
<string name="editor_building_levels">Etagen (inkl. Erdgeschoss, ohne Dach)</string>
<string name="error_enter_correct_level">Gebe eine gültige Stockwerk-Nummer ein</string>
<string name="error_enter_correct_level">Geben Sie eine gültige Stockwerk-Nummer ein</string>
<string name="editor_level">Etage (0 ist Erdgeschoss)</string>
<string name="clear">Löschen</string>
<string name="vehicle">Fahrzeug</string>
@@ -871,9 +871,9 @@
<string name="hours_confirmed_time_ago">Bestätigt %s</string>
<string name="pref_tts_no_system_tts_short">Kein Text-zu-Sprache-Modul gefunden, überprüfe die App-Einstellungen</string>
<string name="avoid_steps">Treppen vermeiden</string>
<string name="editor_place_doesnt_exist_description">Beschreibe wie der Ort jetzt aussieht, um eine Fehlermeldung an die OpenStreetMap Community zu senden</string>
<string name="editor_place_doesnt_exist_description">Beschreibe wie der Ort jetzt aussieht um eine Fehlermeldung an die OpenStreetMap Community zu senden</string>
<string name="offline_explanation_title">Offline-Karten</string>
<string name="offline_explanation_text">Um die Gegend anzusehen und zu erkunden, musst du eine Karte runterladen.\nLade dir Karten für die Gebiete runter, die du bereisen willst.</string>
<string name="offline_explanation_text">Um die Gegend anzusehen, muss eine Karte heruntergeladen werden.\nLaden Sie Karten für die Gebiete herunter, die Sie bereisen möchten.</string>
<string name="charge_socket_type2">Typ 2 (ohne Kabel)</string>
<string name="charge_socket_type2_cable">Typ 2 (mit Kabel)</string>
<string name="charge_socket_type2_combo">Typ 2 Combo</string>
@@ -891,22 +891,22 @@
<string name="charge_socket_count">Anzahl</string>
<string name="unknown_count">unbekannt</string>
<string name="error_invalid_number">ungültige Zahl</string>
<string name="list_description_empty">Bearbeite die Liste, um eine Beschreibung hinzuzufügen</string>
<string name="list_description_empty">Liste bearbeiten, um eine Beschreibung hinzuzufügen</string>
<string name="avoid_paved">Befestigte Straßen meiden</string>
<string name="opens_at">Öffnet um %s</string>
<string name="closes_at">Schließt um %s</string>
<string name="opens_day_at">Öffnet am %1$s um %2$s</string>
<string name="closes_day_at">Schließt am %1$s um %2$s</string>
<plurals name="minutes_short">
<item quantity="one">(%d min)</item>
<item quantity="other">(%d min)</item>
<item quantity="one">%d min</item>
<item quantity="other">%d min</item>
</plurals>
<string name="editor_business_vacant_button">Geschäft steht leer</string>
<string name="editor_mark_business_vacant_title">Geschäft auf leerstehend setzen</string>
<string name="editor_submit">Absenden</string>
<string name="editor_mark_business_vacant_description">Verwende diese Option, wenn das Geschäft ausgezogen ist und ein neues Geschäft die leerstehenden Räume übernehmen könnte.</string>
<string name="editor_mark_business_vacant_description">Verwenden Sie diese Option, wenn das Geschäft ausgezogen ist und ein neues Geschäft die leerstehenden Räume übernehmen könnte.</string>
<string name="charge_socket_schuko">Schuko</string>
<string name="power_management">Stromverbrauch verwalten</string>
<string name="power_management">Energiemanagement</string>
<string name="place_page_map_too_old_title">Kartendaten veraltet</string>
<string name="place_page_map_too_old_description">Die aktuellen Kartendaten sind sehr alt, bitte aktualisiere die Karte.</string>
<string name="place_page_app_too_old_description">Die aktuellen Kartendaten sind sehr alt, bitte aktualisiere die CoMaps-App.</string>
@@ -915,9 +915,4 @@
<string name="prefs_speed_cameras_information">Blitzerwarnungen sind in Ländern deaktiviert, in denen Warnungen durch lokale Gesetze verboten sind.</string>
<string name="navigation_start_tts_message">"Navigation wird gestartet, Sprache der Sprachansagen: "</string>
<string name="navigation_start_tts_disabled_message">Sprachansagen deaktiviert: TTS-Engine nicht verfügbar</string>
<string name="download_resources_custom_url_title">Benutzerdefinierter Kartenserver</string>
<string name="advanced">Fortgeschritten</string>
<string name="download_resources_custom_url_summary_none">Nicht konfiguriert</string>
<string name="download_resources_custom_url_message">Standardserver für Kartendownloads überschreiben. Leer lassen, um den CoMaps-Standardserver zu nutzen.</string>
<string name="download_resources_custom_url_error_scheme">Bitte eine vollständige URL eingeben, die mit https:// oder http:// anfängt</string>
</resources>

View File

@@ -450,7 +450,7 @@
<string name="common_check_internet_connection_dialog">Βεβαιωθείτε ότι η συσκευή σας είναι συνδεδεμένη στο Internet.</string>
<string name="downloader_no_space_title">Δεν υπάρχει αρκετός χώρος</string>
<string name="downloader_no_space_message">Διαγράψτε μη απαραίτητα δεδομένα</string>
<string name="editor_login_error_dialog">Σφάλμα σύνδεσης</string>
<string name="editor_login_error_dialog">Σφάλμα σύνδεσης.</string>
<string name="editor_profile_changes">Επαληθευμένες αλλαγές</string>
<string name="editor_focus_map_on_location">Σύρετε το χάρτη για να τοποθετήσετε το σταυρό στη θέση του τόπου ή της επιχείρησης.</string>
<string name="editor_edit_place_title">Επεξεργασία</string>
@@ -466,9 +466,9 @@
<string name="osm_presentation">Δεδομένα OpenStreetMap που δημιουργήθηκαν από την κοινότητα στις %s. Μάθετε περισσότερα για τον τρόπο επεξεργασίας και ενημέρωσης του χάρτη στο OpenStreetMap.org</string>
<!-- OSM explanation on Android login screen -->
<string name="login_osm_presentation">Το OpenStreetMap.org (OSM) είναι ένα κοινοτικό έργο για τη δημιουργία ενός ελεύθερου και ανοικτού χάρτη. Είναι η κύρια πηγή δεδομένων χάρτη στους CoMaps και λειτουργεί παρόμοια με τη Wikipedia. Μπορείτε να προσθέσετε ή να επεξεργαστείτε τοποθεσίες και αυτές γίνονται διαθέσιμες σε εκατομμύρια χρήστες σε όλο τον κόσμο. \nΕνταχθείτε στην κοινότητα και βοηθήστε να φτιάξουμε έναν καλύτερο χάρτη για όλους!</string>
<string name="login_to_make_edits_visible">Δημιουργήστε έναν λογαριασμό OpenStreetMap ή συνδεθείτε για να δημοσιεύσετε τις επεξεργασίες του χάρτη σας στον κόσμο</string>
<string name="login_to_make_edits_visible">Δημιουργήστε έναν λογαριασμό OpenStreetMap ή συνδεθείτε για να δημοσιεύσετε τις επεξεργασίες του χάρτη σας στον κόσμο.</string>
<!-- Downloaded 10 **of** 20 <- it is that "of" -->
<string name="downloader_of">%1$d από %2$d</string>
<string name="downloader_of">%1$d/%2$d</string>
<string name="download_over_mobile_header">Να γίνει λήψη μέσω δικτύου κινητής τηλεφωνίας;</string>
<string name="download_over_mobile_message">Αυτό μπορεί να είναι πολύ ακριβό για μερικά πακέτα ή στην περίπτωση roaming.</string>
<string name="error_enter_correct_house_number">Εισαγάγετε έναν έγκυρο αριθμό κτιρίου</string>
@@ -491,7 +491,7 @@
<string name="editor_category_unsuitable_title">Δεν μπορείτε να βρείτε την κατάλληλη κατηγορία;</string>
<string name="editor_category_unsuitable_text">Οι CoMaps επιτρέπουν την προσθήκη απλών κατηγοριών σημείων μόνο, δηλαδή όχι πόλεων, δρόμων, λιμνών, περιγραμμάτων κτιρίων κ.λπ. Παρακαλούμε προσθέστε τέτοιες κατηγορίες απευθείας στο <a href="https://www.openstreetmap.org">OpenStreetMap.org</a>. Ελέγξτε τον <a href="https://www.comaps.app/support/advanced-map-editing/">οδηγό μας</a> για λεπτομερείς οδηγίες βήμα προς βήμα.</string>
<string name="downloader_no_downloaded_maps_title">Δεν έχετε κατεβάσει χάρτες</string>
<string name="downloader_no_downloaded_maps_message">Κατεβάστε χάρτες για να κάνετε αναζήτηση και να πλοηγηθείτε χωρίς σύνδεση</string>
<string name="downloader_no_downloaded_maps_message">Κατεβάστε χάρτες για να αναζητήσετε μια τοποθεσία και να χρησιμοποιήσετε την πλοήγησης χωρίς σύνδεση.</string>
<string name="current_location_unknown_error_title">Η τρέχουσα τοποθεσία είναι άγνωστη.</string>
<!-- abbreviation for kilometers per hour -->
<string name="kilometers_per_hour">χμ/ω</string>
@@ -499,7 +499,7 @@
<string name="placepage_edit_bookmark_button">Επεξεργασία αγαπημένου</string>
<string name="placepage_personal_notes_hint">Προσωπικές σημειώσεις (κείμενο ή html)</string>
<string name="editor_reset_edits_message">Απόρριψη όλων των τοπικών αλλαγών;</string>
<string name="editor_reset_edits_button">Απόρριψη αλλαγών</string>
<string name="editor_reset_edits_button">Απόρριψη</string>
<string name="editor_remove_place_message">Διαγραφή της τοποθεσίας που προστέθηκε;</string>
<string name="editor_remove_place_button">Διαγραφή</string>
<string name="editor_place_doesnt_exist">Η τοποθεσία δεν υπάρχει</string>
@@ -825,15 +825,4 @@
<string name="panoramax">εικόνα Panoramax</string>
<string name="app_site_url">https://comaps.app/</string>
<string name="saved">Αποθηκεύτηκε</string>
<string name="opens_at">Ανοίγει στις %s</string>
<string name="closes_at">Κλείνει στις %s</string>
<string name="opens_day_at">Ανοίγει στις %1$s στις %2$s</string>
<string name="closes_day_at">Κλείνει στις %1$s στις %2$s</string>
<plurals name="minutes_short">
<item quantity="one">%d λεπ</item>
<item quantity="other">%d λεπ</item>
</plurals>
<string name="hours_confirmed_time_ago">Επιβεβαιώθηκε %s</string>
<string name="existence_confirmed_time_ago">Ύπαρξη επιβεβαιώθηκε %s</string>
<string name="editor_building_levels">Όροφοι (με το ισόγειο, χωρίς την ταράτσα)</string>
</resources>

View File

@@ -392,7 +392,7 @@
<string name="editor_time_delete">Eliminar horario</string>
<!-- Text for allday switch. -->
<string name="editor_time_allday">Todo el día (24 horas)</string>
<string name="editor_time_open">Apertura</string>
<string name="editor_time_open">Abierto</string>
<string name="editor_time_close">Cierre</string>
<string name="editor_time_add_closed">Añadir horas de pausa</string>
<string name="editor_time_title">Horario de apertura</string>
@@ -505,7 +505,7 @@
<string name="placepage_edit_bookmark_button">Editar marcador</string>
<string name="placepage_personal_notes_hint">Notas personales (texto o html)</string>
<string name="editor_reset_edits_message">¿Restablecer todos los cambios locales?</string>
<string name="editor_reset_edits_button">Descartar cambios</string>
<string name="editor_reset_edits_button">Restablecer</string>
<string name="editor_remove_place_message">¿Eliminar el lugar añadido?</string>
<string name="editor_remove_place_button">Eliminar</string>
<string name="editor_place_doesnt_exist">El lugar no existe</string>
@@ -922,9 +922,4 @@
<string name="prefs_speed_cameras_information">Las advertencias de radares de velocidad están deshabilitadas en países donde las alertas están prohibidas por ley.</string>
<string name="navigation_start_tts_message">"Iniciando Navegación, idioma de las instrucciones por voz: "</string>
<string name="navigation_start_tts_disabled_message">Instrucciones por voz deshabilitadas: Motor de TTS no disponible</string>
<string name="advanced">Avanzado</string>
<string name="download_resources_custom_url_title">Servidor de mapas personalizado</string>
<string name="download_resources_custom_url_message">Sobreescribe el servidor de mapas por defecto. Deja en blanco para usar el servidor de CoMaps por defecto.</string>
<string name="download_resources_custom_url_summary_none">No establecido</string>
<string name="download_resources_custom_url_error_scheme">Por favor introduce un URL empezando con http:// o https://</string>
</resources>

View File

@@ -915,5 +915,6 @@
<string name="advanced">Täiendavad seadistused</string>
<string name="download_resources_custom_url_title">Sinu oma kaardiserver</string>
<string name="download_resources_custom_url_message">Kui tahad kasutada oma kaardiserverit, siis lisa ta siia. CoMapsi vaikimisi serveri kasutamiseks jäta tühjaks.</string>
<string name="download_resources_custom_url_hint">https://cdn-fi-1.comaps.app/</string>
<string name="download_resources_custom_url_error_scheme">Palun sisesta täismahuline võrguaadress, mille alguses on https:// ja lõpus /</string>
</resources>

View File

@@ -245,16 +245,16 @@
<string name="downloader_near_me_subtitle">نزدیک من</string>
<!-- In maps downloader and country place page shows how many maps are downloaded / to download, e.g. "Maps: 3 of 10" -->
<string name="downloader_status_maps">نقشه‌ها</string>
<string name="downloader_download_all_button">بارگیری همه</string>
<string name="downloader_downloading">بارگیری می‌شود:</string>
<string name="downloader_download_all_button">دانلود همه</string>
<string name="downloader_downloading">درحال دانلود:</string>
<!-- Displayed in a dialog that appears when a user tries to delete a map while the app is in the follow route mode -->
<string name="downloader_delete_map_while_routing_dialog">برای حذف نقشه لطفا مسیر‌یابی را متوقف کنید</string>
<!-- PointsInDifferentMWM -->
<string name="routing_failed_cross_mwm_building">تنها مسیر‌هایی می توانند ایجاد شوند که به طور کامل در یک نقشه از یک منطقه واحد قرار داشته باشند.</string>
<!-- Context menu item for downloader. -->
<string name="downloader_download_map">بارگیری نقشه</string>
<string name="downloader_download_map">دانلود نقشه</string>
<!-- Item status in downloader. -->
<string name="downloader_retry">تلاش دوباره</string>
<string name="downloader_retry">تلاش مجدد</string>
<!-- Item in context menu. -->
<string name="downloader_delete_map">حذف نقشه</string>
<!-- Item in context menu. -->
@@ -294,11 +294,11 @@
<!-- deep purple color -->
<string name="deep_purple">ارغوانی سیر</string>
<!-- light blue color -->
<string name="light_blue">آبی کمرنگ</string>
<string name="light_blue">آبی کمرنگ</string>
<!-- cyan color -->
<string name="cyan">فیروزه‌ای</string>
<!-- teal color -->
<string name="teal">سبز دودی</string>
<string name="teal">آبی سیر</string>
<!-- lime color -->
<string name="lime">زرد لیمویی</string>
<!-- deep orange color -->
@@ -330,7 +330,7 @@
<string name="dialog_routing_select_closer_end">لطفا مقصد تعیین شده را نزدیک‌تر به جاده انتخاب نمایید</string>
<string name="dialog_routing_change_intermediate">ناتوان در تعیین نقطه میانی</string>
<string name="dialog_routing_intermediate_not_determined">لطفا نقطه میانی را تنظیم کنید</string>
<string name="dialog_routing_system_error">ایرنگ سامانه</string>
<string name="dialog_routing_system_error">خطای سیستم</string>
<string name="dialog_routing_application_error">ناتوان در ایجاد مسیر به علت خطای برنامه</string>
<string name="dialog_routing_try_again">لطفا دوباره تلاش کنید</string>
<string name="not_now">اکنون خیر</string>
@@ -342,7 +342,7 @@
<!-- «Show» context menu -->
<string name="show">نمایش</string>
<!-- «Hide» context menu -->
<string name="hide">پنهان کردن</string>
<string name="hide">مخفی کردن</string>
<string name="categories">دسته‌بندی‌ها</string>
<string name="history">تاریخچه</string>
<string name="search_not_found">متاسفانه چیزی پیدا نشد</string>

View File

@@ -504,7 +504,7 @@
<string name="placepage_edit_bookmark_button">Muokkaa kirjanmerkkiä</string>
<string name="placepage_personal_notes_hint">Henkilökohtaiset merkinnät (teksti tai html)</string>
<string name="editor_reset_edits_message">Nollataanko kaikki paikalliset muutokset?</string>
<string name="editor_reset_edits_button">Hylkää muutokset</string>
<string name="editor_reset_edits_button">Nollaa</string>
<string name="editor_remove_place_message">Poistetaanko lisätty paikka?</string>
<string name="editor_remove_place_button">Poista</string>
<string name="editor_place_doesnt_exist">Paikkaa ei ole olemassa</string>
@@ -815,7 +815,7 @@
<!-- preference string for using auto theme only in navigation mode -->
<string name="nav_auto">Automaattinen navigointi</string>
<string name="level_value_generic">Kerros: %s</string>
<string name="share_bookmarks_email_body">Hei!\n\nLiitteenä kirjanmerkkini. Avaa ne CoMaps-sovelluksella. Jos sinulla ei ole vielä sovellusta, voit ladata sen osoitteesta: https://www.comaps.app/download/\n\nNauti matkustamisesta CoMapsin kanssa!</string>
<string name="share_bookmarks_email_body">Hei! \n\nLiitteenä ovat kirjamerkkini; Avaa ne CoMaps -sovelluksessa. Mikäli sinulla ei ole vielä sovellusta asennettuna, voit ladata sen osoitteesta: https://www.comaps.app/download/ \n\nNauti matkustamisesta CoMaps:n kanssa!</string>
<string name="tts_info_link">https://www.comaps.app/support/tts-configuration-guide-for-android/</string>
<string name="translated_om_site_url">https://comaps.app/fi/</string>
<string name="osm_wiki_about_url">https://wiki.openstreetmap.org/wiki/About_OpenStreetMap</string>
@@ -911,11 +911,4 @@
<string name="prefs_speed_cameras_information">Nopeuskameravaroitukset on poistettu käytöstä niissä maissa, missä varoitukset on kielletty lain nojalla.</string>
<string name="power_management">Virranhallinta</string>
<string name="navigation_start_tts_message">"Käynnistetään navigointi, ääniohjeistuksen kieli: "</string>
<string name="advanced">Lisäasetukset</string>
<string name="download_resources_custom_url_title">Mukautettu karttapalvelin</string>
<string name="download_resources_custom_url_summary_none">Ei asetettu</string>
<string name="download_resources_custom_url_error_scheme">Kirjoita täysi URL-osoite alkaeh https:// ja päättyen /</string>
<string name="download_resources_custom_url_message">Ohita karttalatausten oletuspalvelin. Jätä tyhjäksi käyttääksesi CoMapsin oletuspalvelinta.</string>
<string name="navigation_start_tts_disabled_message">Ääniohjeistukset pois käytöstä: TTS-moottori ei saatavilla</string>
<string name="charge_socket_schuko">EU</string>
</resources>

View File

@@ -506,7 +506,7 @@
<string name="placepage_edit_bookmark_button">Modifier le signet</string>
<string name="placepage_personal_notes_hint">Notes personnelles (texte ou html)</string>
<string name="editor_reset_edits_message">Abandonner toutes les modifications locales ?</string>
<string name="editor_reset_edits_button">Annuler les modifications</string>
<string name="editor_reset_edits_button">Ignorer</string>
<string name="editor_remove_place_message">Supprimer le lieu ajouté ?</string>
<string name="editor_remove_place_button">Supprimer</string>
<string name="editor_place_doesnt_exist">Ce lieu nexiste pas</string>
@@ -921,9 +921,4 @@
<string name="prefs_speed_cameras_information">Les avertissements relatifs aux radars de vitesse sont désactivés dans les pays où les alertes sont interdites par la législation locale.</string>
<string name="navigation_start_tts_message">"Navigation de démarrage, langue des instructions vocales : "</string>
<string name="navigation_start_tts_disabled_message">Instructions vocales désactivées : moteur de synthèse vocale non disponible</string>
<string name="advanced">Avancé</string>
<string name="download_resources_custom_url_summary_none">Non défini</string>
<string name="download_resources_custom_url_title">Serveur de cartes personnalisé</string>
<string name="download_resources_custom_url_error_scheme">Veuillez saisir une URL complète commençant par http:// ou https://</string>
<string name="download_resources_custom_url_message">Serveur pour télécharger les cartes. Laissez vide pour utiliser le serveur par défaut CoMaps.</string>
</resources>

View File

@@ -498,7 +498,7 @@
<string name="placepage_edit_bookmark_button">Modifica luogo preferito</string>
<string name="placepage_personal_notes_hint">Note personali (testo o html)</string>
<string name="editor_reset_edits_message">Cancellare tutte le modifiche locali?</string>
<string name="editor_reset_edits_button">Scarta modifiche</string>
<string name="editor_reset_edits_button">Cancella</string>
<string name="editor_remove_place_message">Eliminare il luogo aggiunto?</string>
<string name="editor_remove_place_button">Elimina</string>
<string name="editor_place_doesnt_exist">Il luogo non esiste</string>
@@ -906,9 +906,4 @@
<string name="navigation_start_tts_disabled_message">Istruzioni vocali disabilitate: TTS non disponibile</string>
<string name="prefs_speed_cameras_information">Gli avvisi di Autovelox sono disabilitati dove proibito dalla legge locale.</string>
<string name="navigation_start_tts_message">"Inizio Navigazione, lingua per istruzioni vocali: "</string>
<string name="download_resources_custom_url_error_scheme">Aggiungere un URL che inizia con https:// e finisce con /</string>
<string name="download_resources_custom_url_summary_none">Non impostato</string>
<string name="download_resources_custom_url_message">Sovrascrivi il server da cui scaricare le mappe. Lascia vuoto per usare i server default di CoMaps.</string>
<string name="download_resources_custom_url_title">Server mappe personalizzato</string>
<string name="advanced">Avanzate</string>
</resources>

View File

@@ -1,3 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
</resources>

View File

@@ -491,7 +491,7 @@
<string name="placepage_edit_bookmark_button">Taisyti žymę</string>
<string name="placepage_personal_notes_hint">Asmeninės pastabos (tekstas arba HTML)</string>
<string name="editor_reset_edits_message">Anuliuoti visus vietinius pakeitimus?</string>
<string name="editor_reset_edits_button">Atsisakyti pakeitimų</string>
<string name="editor_reset_edits_button">Anuliuoti</string>
<string name="editor_remove_place_message">Šalinti pridėtą vietą?</string>
<string name="editor_remove_place_button">Šalinti</string>
<string name="editor_place_doesnt_exist">Ši vieta neegzistuoja</string>
@@ -804,7 +804,7 @@
<string name="telegram_url">https://t.me/CoMapsApp/</string>
<string name="instagram_url">https://www.instagram.com/comaps.app/</string>
<string name="panoramax">Panoramax vaizdas</string>
<string name="saved">Įrašyta</string>
<string name="saved">Išsaugota</string>
<string name="ruler">Liniuotė</string>
<string name="pref_left_button_title">Kairiojo mygtuko funkcija</string>
<string name="pref_backup_now_summary_empty_lists">Neturite jokių žymių ar trasų atsarginei kopijai sudaryti</string>
@@ -818,7 +818,7 @@
<string name="error_enter_correct_level">Įveskite leistiną aukšto numerį</string>
<string name="error_enter_correct_bluesky_page">Įveskite galiojantį „Bluesky“ paskyros vardą ar tinklalapio adresą</string>
<string name="error_enter_correct_fediverse_page">Įveskite galiojantį „Mastodon“ paskyros vardą ar tinklalapio adresą</string>
<string name="pref_left_button_disable">Mygtuko nerodyti</string>
<string name="pref_left_button_disable">Mygtukas nerodomas</string>
<string name="pref_backup_summary">Automatinis atsarginių kopijų rašymas į pasirinktą aplanką</string>
<string name="pref_backup_now_title">Įrašyti dabar</string>
<string name="pref_backup_now_summary_progress">Atsarginė kopija įrašoma…</string>
@@ -888,17 +888,4 @@
<string name="power_management">Energijos naudojimas</string>
<string name="charge_socket_schuko">Buitinis ES</string>
<string name="list_description_empty">Paredaguokite sąrašą ir pridėkite aprašymą</string>
<string name="place_page_map_too_old_title">Žemėlapio duomenys pasenę</string>
<string name="place_page_map_too_old_description">Jūsų naudojami žemėlapio duomenys senstelėję, prašom atnaujinti žemėlapį.</string>
<string name="place_page_app_too_old_description">Jūsų naudojami žemėlapio duomenys stipriai pasenę, prašom atnaujinti „CoMaps“ programą.</string>
<string name="place_page_update_too_old_map">Atnaujinti regiono žemėlapį</string>
<string name="place_page_too_old_to_edit">„OpenStreetMap“ žemėlapio redagavimas negalimas, nes žemėlapio duomenys per seni.</string>
<string name="prefs_speed_cameras_information">Įspėjimai apie greičio matuoklius negalimi šalyse, kuriose tai draudžiama įstatymu.</string>
<string name="navigation_start_tts_message">"Pradedama navigacija, balso instrukcijų kalba: "</string>
<string name="navigation_start_tts_disabled_message">Balso instrukcijos išjungtos: šnekos sintezės sistema neprieinama</string>
<string name="advanced">Kita</string>
<string name="download_resources_custom_url_title">Pasirinktinis žemėlapių serveris</string>
<string name="download_resources_custom_url_message">Žemėlapiams parsisiųsti galite nurodyti kitą, nei numatytasis, serverį. Palikite lauką tuščią, jei norite naudoti numatytąjį „CoMaps“ serverį.</string>
<string name="download_resources_custom_url_summary_none">Nenurodytas</string>
<string name="download_resources_custom_url_error_scheme">Įveskite visą URL adresą, pradedant „https://“ ir baigiant „/“</string>
</resources>

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