mirror of
https://codeberg.org/comaps/comaps
synced 2025-12-19 13:03:36 +00:00
Compare commits
124 Commits
squashed-h
...
delete_pas
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
d700510c94 | ||
|
|
37e5934241 | ||
|
|
dfae56d578 | ||
|
|
025181c250 | ||
|
|
784ef58b5c | ||
|
|
5cc244de6b | ||
|
|
c4a5979966 | ||
|
|
36bb1e3182 | ||
|
|
a08110e83d | ||
|
|
3c7c8658fd | ||
|
|
fd8b818a2f | ||
|
|
dbeb29246e | ||
|
|
dc2b3c50dd | ||
|
|
39059ec26d | ||
|
|
113c8fab28 | ||
|
|
2a4111235e | ||
|
|
7c26c0fc1b | ||
|
|
b943969df1 | ||
|
|
22f3cb2da1 | ||
|
|
684e6dfcf9 | ||
|
|
93b1a51506 | ||
|
|
c0fffed2b3 | ||
|
|
3dd6016209 | ||
|
|
cf66cf7caa | ||
|
|
a1fc8bb4b0 | ||
|
|
2997349668 | ||
|
|
7015307f8d | ||
|
|
96c3e9cd34 | ||
|
|
405b070f65 | ||
|
|
ef6bd68012 | ||
|
|
8a8f549b38 | ||
|
|
f6af6f3cec | ||
|
|
e5731d64d9 | ||
|
|
c0c8c4c092 | ||
|
|
9380f0efe6 | ||
|
|
3776f7893e | ||
|
|
22e160eb2c | ||
|
|
3878141856 | ||
|
|
e6d6b51252 | ||
|
|
5b646cc0c1 | ||
|
|
f96ee01d49 | ||
|
|
e5bf95b3d8 | ||
|
|
22517698da | ||
|
|
bd8d068783 | ||
|
|
1813e3da3c | ||
|
|
158c9b1ee9 | ||
|
|
44f4a08623 | ||
|
|
8215a6ec6c | ||
|
|
b0812ef8c9 | ||
|
|
11e4b6d7b6 | ||
|
|
2b7246d463 | ||
|
|
54ab965822 | ||
|
|
38802dd29a | ||
|
|
e2718ecbc6 | ||
|
|
87c44041fc | ||
|
|
3a1df72809 | ||
|
|
7fdd8d2e76 | ||
|
|
1c711b28e1 | ||
|
|
0dfec1b28f | ||
|
|
27ae78120b | ||
|
|
584e76dd47 | ||
|
|
3a31956eca | ||
|
|
103d660603 | ||
|
|
72cc4bbd50 | ||
|
|
50e6376afd | ||
|
|
a3ba5c53b6 | ||
|
|
56c4918e93 | ||
|
|
9be9f17df9 | ||
|
|
f1db7d7f98 | ||
|
|
01aecbfac4 | ||
|
|
ef6ffa299d | ||
|
|
91b91a3e32 | ||
|
|
f0cc178b9a | ||
|
|
8bf36fab49 | ||
|
|
41417cd842 | ||
|
|
ca0293bd8d | ||
|
|
da05598ce1 | ||
|
|
5110867b38 | ||
|
|
c7aacb3b64 | ||
|
|
113a2a46d9 | ||
|
|
724feb151b | ||
|
|
381642b0c9 | ||
|
|
e98d506207 | ||
|
|
49beb50f7b | ||
|
|
4591ce3093 | ||
|
|
274c8a9bc8 | ||
|
|
855cc90d62 | ||
|
|
d02aefbf12 | ||
|
|
ce97718487 | ||
|
|
4f53fdea48 | ||
|
|
8f4589edfe | ||
|
|
844805a3a1 | ||
|
|
889d536303 | ||
|
|
c10d5403bc | ||
|
|
edcea993dd | ||
|
|
cbf345c139 | ||
|
|
8f1a0903bb | ||
|
|
76e17a34bb | ||
|
|
c36a9e8c63 | ||
|
|
f6ebf9fcd4 | ||
|
|
773ba73cbd | ||
|
|
7807d4ec43 | ||
|
|
666bc04e6c | ||
|
|
129e5aa119 | ||
|
|
6e6f3446ef | ||
|
|
9519f5135e | ||
|
|
d298764f61 | ||
|
|
d0042badd0 | ||
|
|
498bb92131 | ||
|
|
b0a5decfdd | ||
|
|
3191421c2b | ||
|
|
906507daa2 | ||
|
|
5b4e6f73a1 | ||
|
|
c45f9100cb | ||
|
|
8e03269e38 | ||
|
|
ce6604334b | ||
|
|
607ffff65d | ||
|
|
85b2f6a3aa | ||
|
|
70ed37b648 | ||
|
|
017a5c6cab | ||
|
|
ad264f364e | ||
|
|
2ccda64f89 | ||
|
|
f93e734eba | ||
|
|
8198d3cd52 |
470
.clang-format
470
.clang-format
@@ -2,447 +2,47 @@
|
|||||||
|
|
||||||
---
|
---
|
||||||
BasedOnStyle: Google
|
BasedOnStyle: Google
|
||||||
IndentWidth: 2
|
|
||||||
BreakBeforeBraces: Allman
|
|
||||||
ColumnLimit: 120
|
|
||||||
|
|
||||||
---
|
|
||||||
Language: Cpp
|
|
||||||
AccessModifierOffset: -2
|
AccessModifierOffset: -2
|
||||||
AllowShortBlocksOnASingleLine: false
|
AlignOperands: AlignAfterOperator
|
||||||
|
AllowShortBlocksOnASingleLine: Empty
|
||||||
|
AllowShortIfStatementsOnASingleLine: Never
|
||||||
|
AllowShortLoopsOnASingleLine: false
|
||||||
AllowShortCaseLabelsOnASingleLine: true
|
AllowShortCaseLabelsOnASingleLine: true
|
||||||
AllowShortFunctionsOnASingleLine: true
|
BraceWrapping:
|
||||||
AllowShortIfStatementsOnASingleLine: false
|
AfterCaseLabel: true
|
||||||
AllowShortLoopsOnASingleLine: false
|
AfterClass: true
|
||||||
BreakConstructorInitializersBeforeComma: true
|
AfterControlStatement: Always
|
||||||
ConstructorInitializerIndentWidth: 2
|
AfterEnum: true
|
||||||
DerivePointerAlignment: false
|
AfterFunction: true
|
||||||
IndentCaseLabels: false
|
AfterNamespace: true
|
||||||
NamespaceIndentation: None
|
AfterObjCDeclaration: true
|
||||||
PointerAlignment: Middle
|
AfterStruct: true
|
||||||
SortIncludes: true
|
AfterUnion: true
|
||||||
Standard: c++20
|
AfterExternBlock: true
|
||||||
IncludeBlocks: Regroup
|
BeforeCatch: true
|
||||||
IncludeCategories:
|
BeforeElse: true
|
||||||
# Tests --------------------------------------------------------------------------------------------
|
BeforeLambdaBody: true
|
||||||
- Regex: '^"track_analyzing/track_analyzing_tests/'
|
BeforeWhile: true
|
||||||
Priority: 4730
|
IndentBraces: false
|
||||||
|
SplitEmptyFunction: false
|
||||||
- Regex: '^"poly_borders/poly_borders_tests/'
|
SplitEmptyRecord: false
|
||||||
Priority: 4740
|
SplitEmptyNamespace: false
|
||||||
|
BreakBeforeBraces: Custom
|
||||||
- Regex: '^"generator/generator_integration_tests/'
|
BreakConstructorInitializers: BeforeComma
|
||||||
Priority: 4750
|
BreakInheritanceList: BeforeComma
|
||||||
- Regex: '^"generator/generator_tests/'
|
|
||||||
Priority: 4751
|
|
||||||
- Regex: '^"generator/mwm_diff_tests/'
|
|
||||||
Priority: 4752
|
|
||||||
|
|
||||||
- Regex: '^"map/style_tests/'
|
|
||||||
Priority: 4760
|
|
||||||
- Regex: '^"map/mwm_tests/'
|
|
||||||
Priority: 4761
|
|
||||||
- Regex: '^"map/map_tests/'
|
|
||||||
Priority: 4762
|
|
||||||
- Regex: '^"map/map_integration_tests/'
|
|
||||||
Priority: 4763
|
|
||||||
|
|
||||||
- Regex: '^"ge0/ge0_tests/'
|
|
||||||
Priority: 4765
|
|
||||||
|
|
||||||
- Regex: '^"openlr/openlr_tests/'
|
|
||||||
Priority: 4770
|
|
||||||
|
|
||||||
- Regex: '^"descriptions/descriptions_tests/'
|
|
||||||
Priority: 4790
|
|
||||||
|
|
||||||
- Regex: '^"ugc/ugc_tests'
|
|
||||||
Priority: 4810
|
|
||||||
|
|
||||||
- Regex: '^"search/search_integration_tests/'
|
|
||||||
Priority: 4820
|
|
||||||
- Regex: '^"search/search_tests/'
|
|
||||||
Priority: 4821
|
|
||||||
- Regex: '^"search/search_quality/search_quality_tests/'
|
|
||||||
Priority: 4822
|
|
||||||
|
|
||||||
- Regex: '^"drape_frontend/drape_frontend_tests/'
|
|
||||||
Priority: 4830
|
|
||||||
|
|
||||||
- Regex: '^"routing/routing_tests/'
|
|
||||||
Priority: 4840
|
|
||||||
- Regex: '^"routing/routing_integration_tests/'
|
|
||||||
Priority: 4841
|
|
||||||
- Regex: '^"routing/routing_quality/routing_quality_tests/'
|
|
||||||
Priority: 4842
|
|
||||||
- Regex: '^"routing/routing_consistency_tests/'
|
|
||||||
Priority: 4843
|
|
||||||
- Regex: '^"routing/routing_benchmarks/'
|
|
||||||
Priority: 4844
|
|
||||||
|
|
||||||
- Regex: '^"kml/kml_tests'
|
|
||||||
Priority: 4850
|
|
||||||
|
|
||||||
- Regex: '^"tracking/tracking_tests/'
|
|
||||||
Priority: 4860
|
|
||||||
|
|
||||||
- Regex: '^"partners_api/partners_api_tests/'
|
|
||||||
Priority: 4870
|
|
||||||
|
|
||||||
- Regex: '^"traffic/traffic_tests/'
|
|
||||||
Priority: 4880
|
|
||||||
|
|
||||||
- Regex: '^"storage/storage_tests/'
|
|
||||||
Priority: 4890
|
|
||||||
- Regex: '^"storage/storage_integration_tests/'
|
|
||||||
Priority: 4891
|
|
||||||
|
|
||||||
- Regex: '^"editor/editor_tests/'
|
|
||||||
Priority: 4900
|
|
||||||
- Regex: '^"editor/osm_auth_tests/'
|
|
||||||
Priority: 4910
|
|
||||||
|
|
||||||
- Regex: '^"drape/drape_tests/'
|
|
||||||
Priority: 4920
|
|
||||||
|
|
||||||
- Regex: '^"transit/transit_tests'
|
|
||||||
Priority: 4930
|
|
||||||
|
|
||||||
- Regex: '^"routing_common/routing_common_tests/'
|
|
||||||
Priority: 4940
|
|
||||||
|
|
||||||
- Regex: '^"indexer/indexer_tests/'
|
|
||||||
Priority: 4950
|
|
||||||
|
|
||||||
- Regex: '^"platform/platform_tests/'
|
|
||||||
Priority: 4960
|
|
||||||
|
|
||||||
- Regex: '^"coding/coding_tests/'
|
|
||||||
Priority: 4970
|
|
||||||
|
|
||||||
- Regex: '^"geometry/geometry_tests/'
|
|
||||||
Priority: 4980
|
|
||||||
|
|
||||||
- Regex: '^"base/base_tests/'
|
|
||||||
Priority: 4990
|
|
||||||
|
|
||||||
- Regex: '^"testing/'
|
|
||||||
Priority: 5000
|
|
||||||
|
|
||||||
# Binaries (tools) ---------------------------------------------------------------------------------
|
|
||||||
|
|
||||||
- Regex: '^"openlr/openlr_match_quality/openlr_assessment_tool/'
|
|
||||||
Priority: 18908
|
|
||||||
- Regex: '^"search/search_quality/assessment_tool/'
|
|
||||||
Priority: 18909
|
|
||||||
- Regex: '^"qt/'
|
|
||||||
Priority: 18910
|
|
||||||
|
|
||||||
- Regex: '^"track_analyzing/track_analyzer/'
|
|
||||||
Priority: 19000
|
|
||||||
|
|
||||||
- Regex: '^"feature_list/'
|
|
||||||
Priority: 19100
|
|
||||||
|
|
||||||
- Regex: '^"generator/booking_quality_check/'
|
|
||||||
Priority: 19206
|
|
||||||
- Regex: '^"generator/complex_generator/'
|
|
||||||
Priority: 19207
|
|
||||||
- Regex: '^"generator/feature_segments_checker/'
|
|
||||||
Priority: 19208
|
|
||||||
- Regex: '^"generator/srtm_coverage_checker/'
|
|
||||||
Priority: 19209
|
|
||||||
- Regex: '^"generator/generator_tool/'
|
|
||||||
Priority: 19210
|
|
||||||
|
|
||||||
- Regex: '^"map/extrapolation_benchmark/'
|
|
||||||
Priority: 19309
|
|
||||||
- Regex: '^"map/benchmark_tool/'
|
|
||||||
Priority: 19310
|
|
||||||
|
|
||||||
- Regex: '^"openlr/openlr_stat/'
|
|
||||||
Priority: 19400
|
|
||||||
|
|
||||||
|
|
||||||
- Regex: '^"search/search_quality/booking_dataset_generator/'
|
|
||||||
Priority: 19707
|
|
||||||
- Regex: '^"search/search_quality/features_collector_tool/'
|
|
||||||
Priority: 19708
|
|
||||||
- Regex: '^"search/search_quality/samples_generation_tool/'
|
|
||||||
Priority: 19709
|
|
||||||
- Regex: '^"search/search_quality/search_quality_tool/'
|
|
||||||
Priority: 19710
|
|
||||||
|
|
||||||
- Regex: '^"track_generator/'
|
|
||||||
Priority: 19800
|
|
||||||
|
|
||||||
- Regex: '^"routing/routing_quality/routing_quality_tool/'
|
|
||||||
Priority: 19909
|
|
||||||
- Regex: '^"routing/routes_builder/routes_builder_tool/'
|
|
||||||
Priority: 19910
|
|
||||||
|
|
||||||
- Regex: '^"skin_generator/'
|
|
||||||
Priority: 20000
|
|
||||||
|
|
||||||
# Libraries ----------------------------------------------------------------------------------------
|
|
||||||
|
|
||||||
- Regex: '^"poly_borders/'
|
|
||||||
Priority: 46700
|
|
||||||
|
|
||||||
- Regex: '^"track_analyzing/'
|
|
||||||
Priority: 46800
|
|
||||||
|
|
||||||
- Regex: '^"generator/mwm_diff/pymwm_diff/'
|
|
||||||
Priority: 46907
|
|
||||||
- Regex: '^"generator/mwm_diff/'
|
|
||||||
Priority: 46908
|
|
||||||
- Regex: '^"generator/generator_tests_support/'
|
|
||||||
Priority: 46909
|
|
||||||
- Regex: '^"generator/'
|
|
||||||
Priority: 46910
|
|
||||||
|
|
||||||
- Regex: '^"map/'
|
|
||||||
Priority: 47000
|
|
||||||
|
|
||||||
- Regex: '^"ge0/'
|
|
||||||
Priority: 47050
|
|
||||||
|
|
||||||
- Regex: '^"openlr/'
|
|
||||||
Priority: 47100
|
|
||||||
|
|
||||||
- Regex: '^"descriptions/'
|
|
||||||
Priority: 47300
|
|
||||||
|
|
||||||
- Regex: '^"search/search_quality/'
|
|
||||||
Priority: 47407
|
|
||||||
- Regex: '^"search/search_tests_support/'
|
|
||||||
Priority: 47408
|
|
||||||
- Regex: '^"search/pysearch/'
|
|
||||||
Priority: 47409
|
|
||||||
- Regex: '^"search/'
|
|
||||||
Priority: 47410
|
|
||||||
|
|
||||||
- Regex: '^"ugc/'
|
|
||||||
Priority: 47500
|
|
||||||
|
|
||||||
- Regex: '^"track_generator/pytrack_generator/'
|
|
||||||
Priority: 47600
|
|
||||||
|
|
||||||
- Regex: '^"routing/routing_quality/api/'
|
|
||||||
Priority: 47707
|
|
||||||
- Regex: '^"routing/routing_quality/'
|
|
||||||
Priority: 47708
|
|
||||||
- Regex: '^"routing/routes_builder/'
|
|
||||||
Priority: 47709
|
|
||||||
- Regex: '^"routing/'
|
|
||||||
Priority: 47710
|
|
||||||
|
|
||||||
- Regex: '^"tracking/pytracking/'
|
|
||||||
Priority: 47809
|
|
||||||
- Regex: '^"tracking/'
|
|
||||||
Priority: 47810
|
|
||||||
|
|
||||||
- Regex: '^"partners_api/'
|
|
||||||
Priority: 47900
|
|
||||||
|
|
||||||
- Regex: '^"traffic/pytraffic/'
|
|
||||||
Priority: 48109
|
|
||||||
- Regex: '^"traffic/'
|
|
||||||
Priority: 48110
|
|
||||||
|
|
||||||
- Regex: '^"storage/'
|
|
||||||
Priority: 48200
|
|
||||||
|
|
||||||
- Regex: '^"editor/editor_tests_support/'
|
|
||||||
Priority: 48309
|
|
||||||
- Regex: '^"editor/'
|
|
||||||
Priority: 48310
|
|
||||||
|
|
||||||
- Regex: '^"drape_frontend/'
|
|
||||||
Priority: 48500
|
|
||||||
|
|
||||||
- Regex: '^"shaders/'
|
|
||||||
Priority: 48600
|
|
||||||
|
|
||||||
- Regex: '^"drape/'
|
|
||||||
Priority: 48700
|
|
||||||
|
|
||||||
- Regex: '^"qt_tstfrm/'
|
|
||||||
Priority: 48800
|
|
||||||
|
|
||||||
- Regex: '^"kml/pykmlib/'
|
|
||||||
Priority: 48909
|
|
||||||
- Regex: '^"kml/'
|
|
||||||
Priority: 48910
|
|
||||||
|
|
||||||
- Regex: '^"transit/'
|
|
||||||
Priority: 49000
|
|
||||||
|
|
||||||
- Regex: '^"routing_common/'
|
|
||||||
Priority: 49100
|
|
||||||
|
|
||||||
- Regex: '^"indexer/'
|
|
||||||
Priority: 49200
|
|
||||||
|
|
||||||
- Regex: '^"platform/platform_tests_support/'
|
|
||||||
Priority: 49409
|
|
||||||
- Regex: '^"platform/'
|
|
||||||
Priority: 49410
|
|
||||||
|
|
||||||
- Regex: '^"coding/'
|
|
||||||
Priority: 49500
|
|
||||||
|
|
||||||
- Regex: '^"geometry/'
|
|
||||||
Priority: 49600
|
|
||||||
|
|
||||||
- Regex: '^"base/'
|
|
||||||
Priority: 49700
|
|
||||||
|
|
||||||
- Regex: '^"pyhelpers/'
|
|
||||||
Priority: 49800
|
|
||||||
|
|
||||||
- Regex: '^"app/organicmaps/util/'
|
|
||||||
Priority: 49840
|
|
||||||
|
|
||||||
- Regex: '^"app/organicmaps/maps/'
|
|
||||||
Priority: 49850
|
|
||||||
|
|
||||||
- Regex: '^"app/organicmaps/platform/'
|
|
||||||
Priority: 49860
|
|
||||||
|
|
||||||
- Regex: '^"app/organicmaps/opengl/'
|
|
||||||
Priority: 49870
|
|
||||||
|
|
||||||
- Regex: '^"app/organicmaps/vulkan/'
|
|
||||||
Priority: 49880
|
|
||||||
|
|
||||||
- Regex: '^"app/organicmaps/core/'
|
|
||||||
Priority: 49890
|
|
||||||
|
|
||||||
- Regex: '^"private\.h"$'
|
|
||||||
Priority: 49900
|
|
||||||
|
|
||||||
- Regex: '^"std/'
|
|
||||||
Priority: 50000
|
|
||||||
|
|
||||||
- Regex: '^"defines\.hpp"$'
|
|
||||||
Priority: 50100
|
|
||||||
|
|
||||||
- Regex: '^<Qt.*>$'
|
|
||||||
Priority: 50140
|
|
||||||
|
|
||||||
- Regex: '^<jni.h>$'
|
|
||||||
Priority: 50180
|
|
||||||
|
|
||||||
- Regex: '^<.*>$'
|
|
||||||
Priority: 50200
|
|
||||||
|
|
||||||
- Regex: '^"(3party/boost|boost)/'
|
|
||||||
Priority: 50300
|
|
||||||
- Regex: '^<boost'
|
|
||||||
Priority: 50300
|
|
||||||
|
|
||||||
- Regex: '^"3party/.*'
|
|
||||||
Priority: 50400
|
|
||||||
|
|
||||||
- Regex: '^"build_version\.hpp"$'
|
|
||||||
Priority: 99999
|
|
||||||
|
|
||||||
---
|
|
||||||
Language: Java
|
|
||||||
BreakAfterJavaFieldAnnotations: true
|
|
||||||
|
|
||||||
---
|
|
||||||
Language: ObjC
|
|
||||||
AccessModifierOffset: -2
|
|
||||||
AlignAfterOpenBracket: Align
|
|
||||||
AlignConsecutiveAssignments: false
|
|
||||||
AlignConsecutiveDeclarations: false
|
|
||||||
AlignEscapedNewlines: Left
|
|
||||||
AlignOperands: true
|
|
||||||
AlignTrailingComments: true
|
|
||||||
AllowAllParametersOfDeclarationOnNextLine: true
|
|
||||||
AllowShortBlocksOnASingleLine: false
|
|
||||||
AllowShortCaseLabelsOnASingleLine: false
|
|
||||||
AllowShortFunctionsOnASingleLine: All
|
|
||||||
AllowShortIfStatementsOnASingleLine: false
|
|
||||||
AllowShortLoopsOnASingleLine: false
|
|
||||||
AlwaysBreakAfterDefinitionReturnType: None
|
|
||||||
AlwaysBreakAfterReturnType: None
|
|
||||||
AlwaysBreakBeforeMultilineStrings: true
|
|
||||||
AlwaysBreakTemplateDeclarations: Yes
|
|
||||||
BinPackArguments: true
|
|
||||||
BinPackParameters: true
|
|
||||||
BreakBeforeBinaryOperators: None
|
|
||||||
BreakBeforeBraces: Attach
|
|
||||||
BreakBeforeInheritanceComma: false
|
|
||||||
BreakInheritanceList: AfterColon
|
|
||||||
BreakBeforeTernaryOperators: true
|
|
||||||
BreakStringLiterals: true
|
|
||||||
ColumnLimit: 120
|
ColumnLimit: 120
|
||||||
CompactNamespaces: false
|
ConstructorInitializerIndentWidth: 2
|
||||||
ConstructorInitializerAllOnOneLineOrOnePerLine: true
|
|
||||||
ConstructorInitializerIndentWidth: 4
|
|
||||||
ContinuationIndentWidth: 2
|
ContinuationIndentWidth: 2
|
||||||
Cpp11BracedListStyle: true
|
|
||||||
DerivePointerAlignment: false
|
DerivePointerAlignment: false
|
||||||
DisableFormat: false
|
|
||||||
ExperimentalAutoDetectBinPacking: false
|
|
||||||
FixNamespaceComments: true
|
|
||||||
ForEachMacros:
|
|
||||||
- foreach
|
|
||||||
- Q_FOREACH
|
|
||||||
- BOOST_FOREACH
|
|
||||||
IncludeBlocks: Preserve
|
IncludeBlocks: Preserve
|
||||||
IncludeCategories:
|
IndentCaseLabels: false
|
||||||
- Regex: '^<.*\.h>'
|
IndentExternBlock: NoIndent
|
||||||
Priority: 1
|
InsertNewlineAtEOF: true
|
||||||
- Regex: '^<.*'
|
PackConstructorInitializers: Never
|
||||||
Priority: 2
|
PointerAlignment: Middle
|
||||||
- Regex: '.*'
|
QualifierAlignment: Right
|
||||||
Priority: 3
|
|
||||||
IncludeIsMainRegex: '([-_](test|unittest))?$'
|
|
||||||
IndentCaseLabels: true
|
|
||||||
IndentPPDirectives: None
|
|
||||||
IndentWrappedFunctionNames: false
|
|
||||||
JavaScriptQuotes: Leave
|
|
||||||
JavaScriptWrapImports: true
|
|
||||||
KeepEmptyLinesAtTheStartOfBlocks: false
|
|
||||||
MacroBlockBegin: ''
|
|
||||||
MacroBlockEnd: ''
|
|
||||||
MaxEmptyLinesToKeep: 1
|
|
||||||
NamespaceIndentation: None
|
|
||||||
ObjCBinPackProtocolList: Never
|
|
||||||
ObjCBlockIndentWidth: 2
|
|
||||||
ObjCSpaceAfterProperty: false
|
|
||||||
ObjCSpaceBeforeProtocolList: true
|
|
||||||
PenaltyBreakAssignment: 2
|
|
||||||
PenaltyBreakBeforeFirstCallParameter: 1
|
|
||||||
PenaltyBreakComment: 300
|
|
||||||
PenaltyBreakFirstLessLess: 120
|
|
||||||
PenaltyBreakString: 1000
|
|
||||||
PenaltyBreakTemplateDeclaration: 10
|
|
||||||
PenaltyExcessCharacter: 1000000
|
|
||||||
PenaltyReturnTypeOnItsOwnLine: 200
|
|
||||||
PointerAlignment: Right
|
|
||||||
ReflowComments: true
|
|
||||||
SortIncludes: true
|
|
||||||
SortUsingDeclarations: true
|
|
||||||
SpaceAfterCStyleCast: false
|
|
||||||
SpaceAfterTemplateKeyword: true
|
|
||||||
SpaceBeforeAssignmentOperators: true
|
|
||||||
SpaceBeforeCpp11BracedList: false
|
|
||||||
SpaceBeforeCtorInitializerColon: true
|
|
||||||
SpaceBeforeInheritanceColon: true
|
|
||||||
SpaceBeforeParens: ControlStatements
|
|
||||||
SpaceBeforeRangeBasedForLoopColon: true
|
|
||||||
SpaceInEmptyParentheses: false
|
|
||||||
SpacesBeforeTrailingComments: 2
|
|
||||||
SpacesInAngles: false
|
|
||||||
SpacesInContainerLiterals: false
|
SpacesInContainerLiterals: false
|
||||||
SpacesInCStyleCastParentheses: false
|
Standard: Latest
|
||||||
SpacesInParentheses: false
|
TabWidth: 2
|
||||||
SpacesInSquareBrackets: false
|
|
||||||
Standard: Auto
|
|
||||||
TabWidth: 8
|
|
||||||
UseTab: Never
|
UseTab: Never
|
||||||
|
|||||||
@@ -49,13 +49,13 @@
|
|||||||
/docs/STYLES.md
|
/docs/STYLES.md
|
||||||
/tools/kothic/ @organicmaps/styles
|
/tools/kothic/ @organicmaps/styles
|
||||||
# DevOps.
|
# DevOps.
|
||||||
/.github/workflows @organicmaps/devops
|
/.forgejo/workflows @organicmaps/devops
|
||||||
/android/*gradle* @organicmaps/devops
|
/android/*gradle* @organicmaps/devops
|
||||||
/docs/RELEASE_MANAGEMENT.md @organicmaps/devops
|
/docs/RELEASE_MANAGEMENT.md @organicmaps/devops
|
||||||
/xcode/fastlane/ @organicmaps/devops
|
/xcode/fastlane/ @organicmaps/devops
|
||||||
# Growth.
|
# Growth.
|
||||||
README.md @organicmaps/growth
|
README.md @organicmaps/growth
|
||||||
/.github/FUNDING.yml @organicmaps/growth
|
/.forgejo/FUNDING.yml @organicmaps/growth
|
||||||
/android/app/src/fdroid/play/ @organicmaps/growth
|
/android/app/src/fdroid/play/ @organicmaps/growth
|
||||||
/android/app/src/google/play/ @organicmaps/growth
|
/android/app/src/google/play/ @organicmaps/growth
|
||||||
/iphone/metadata/ @organicmaps/growth
|
/iphone/metadata/ @organicmaps/growth
|
||||||
1
.forgejo/FUNDING.yml
Normal file
1
.forgejo/FUNDING.yml
Normal file
@@ -0,0 +1 @@
|
|||||||
|
open_collective: comaps
|
||||||
70
.forgejo/ISSUE_TEMPLATE/bug-report.yaml
Normal file
70
.forgejo/ISSUE_TEMPLATE/bug-report.yaml
Normal file
@@ -0,0 +1,70 @@
|
|||||||
|
name: 🐞 Bug Report
|
||||||
|
description: Report a problem you've encountered
|
||||||
|
title: "bug: "
|
||||||
|
labels:
|
||||||
|
- bug
|
||||||
|
body:
|
||||||
|
- type: markdown
|
||||||
|
attributes:
|
||||||
|
value: |
|
||||||
|
⚠ **Have you searched for similar, already existing issues?**
|
||||||
|
Please do that before submitting a new one.
|
||||||
|
|
||||||
|
- type: textarea
|
||||||
|
id: issue-description
|
||||||
|
attributes:
|
||||||
|
label: Describe the issue
|
||||||
|
description: Please write a clear and concise description of the issue here.
|
||||||
|
placeholder: Describe what is not working as expected...
|
||||||
|
validations:
|
||||||
|
required: true
|
||||||
|
|
||||||
|
- type: textarea
|
||||||
|
id: steps-to-reproduce
|
||||||
|
attributes:
|
||||||
|
label: Steps to reproduce
|
||||||
|
description: Describe the steps needed to reproduce the issue.
|
||||||
|
placeholder: |
|
||||||
|
1. Go to '...'
|
||||||
|
2. Click on '...'
|
||||||
|
3. Scroll down to '...'
|
||||||
|
4. See the error
|
||||||
|
validations:
|
||||||
|
required: true
|
||||||
|
|
||||||
|
- type: textarea
|
||||||
|
id: expected-behavior
|
||||||
|
attributes:
|
||||||
|
label: Expected behaviour
|
||||||
|
description: A clear and concise description of what you expected to happen.
|
||||||
|
placeholder: I expected that...
|
||||||
|
validations:
|
||||||
|
required: false
|
||||||
|
|
||||||
|
- type: textarea
|
||||||
|
id: screenshots
|
||||||
|
attributes:
|
||||||
|
label: Screenshots
|
||||||
|
description: If applicable, add screenshots or screen recordings to help explain your problem.
|
||||||
|
validations:
|
||||||
|
required: false
|
||||||
|
|
||||||
|
- type: textarea
|
||||||
|
id: system-info
|
||||||
|
attributes:
|
||||||
|
label: System information
|
||||||
|
description: Provide information about the system where the issue occurred.
|
||||||
|
placeholder: |
|
||||||
|
- OS: e.g. Ubuntu 22, iOS 12
|
||||||
|
- CoMaps version: e.g. 1.2.3
|
||||||
|
- Device model: e.g. iPhone 6, Samsung S22
|
||||||
|
validations:
|
||||||
|
required: true
|
||||||
|
|
||||||
|
- type: textarea
|
||||||
|
id: additional-context
|
||||||
|
attributes:
|
||||||
|
label: Additional context
|
||||||
|
description: Add any other context or comments that may be useful.
|
||||||
|
validations:
|
||||||
|
required: false
|
||||||
8
.forgejo/ISSUE_TEMPLATE/config.yml
Normal file
8
.forgejo/ISSUE_TEMPLATE/config.yml
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
blank_issues_enabled: true
|
||||||
|
contact_links:
|
||||||
|
- name: Translations
|
||||||
|
url: https://codeberg.org/comaps/comaps/src/branch/main/docs/TRANSLATIONS.md
|
||||||
|
about: Translate CoMaps into your language
|
||||||
|
- name: News
|
||||||
|
url: https://comaps.app/news/
|
||||||
|
about: Check the latest project news
|
||||||
47
.forgejo/ISSUE_TEMPLATE/feature-request.yaml
Normal file
47
.forgejo/ISSUE_TEMPLATE/feature-request.yaml
Normal file
@@ -0,0 +1,47 @@
|
|||||||
|
name: "💡 Feature Request"
|
||||||
|
description: "Suggest an idea or improvement for CoMaps"
|
||||||
|
title: "feat: "
|
||||||
|
labels:
|
||||||
|
- "enhancement"
|
||||||
|
body:
|
||||||
|
- type: markdown
|
||||||
|
attributes:
|
||||||
|
value: |
|
||||||
|
⚠ **Have you searched for similar, already existing issues?**
|
||||||
|
Please make sure your idea hasn't been suggested before.
|
||||||
|
|
||||||
|
- type: textarea
|
||||||
|
id: related-problem
|
||||||
|
attributes:
|
||||||
|
label: "What problem would this feature help solve?"
|
||||||
|
description: "Share how this feature could make the experience better, smoother, or more enjoyable."
|
||||||
|
placeholder: "It would be great if..."
|
||||||
|
validations:
|
||||||
|
required: true
|
||||||
|
|
||||||
|
- type: textarea
|
||||||
|
id: ideal-solution
|
||||||
|
attributes:
|
||||||
|
label: "Describe the ideal solution"
|
||||||
|
description: "What would you like to see in CoMaps?"
|
||||||
|
placeholder: "I would like CoMaps to..."
|
||||||
|
validations:
|
||||||
|
required: false
|
||||||
|
|
||||||
|
- type: textarea
|
||||||
|
id: alternatives
|
||||||
|
attributes:
|
||||||
|
label: "Describe alternatives you have considered"
|
||||||
|
description: |
|
||||||
|
How do you solve this issue now with CoMaps or other apps?
|
||||||
|
You can also share screenshots or examples from other apps.
|
||||||
|
validations:
|
||||||
|
required: false
|
||||||
|
|
||||||
|
- type: textarea
|
||||||
|
id: additional-context
|
||||||
|
attributes:
|
||||||
|
label: "Additional context"
|
||||||
|
description: "Any other context, comments, or screenshots to support your request."
|
||||||
|
validations:
|
||||||
|
required: false
|
||||||
@@ -3,11 +3,11 @@ on:
|
|||||||
workflow_dispatch: # Manual trigger
|
workflow_dispatch: # Manual trigger
|
||||||
push:
|
push:
|
||||||
branches:
|
branches:
|
||||||
- master
|
- main
|
||||||
paths-ignore:
|
paths-ignore:
|
||||||
- .gitignore
|
- .gitignore
|
||||||
- .github/**
|
- .forgejo/**
|
||||||
- '!.github/workflows/android-beta.yaml' # Run check on self change
|
- '!.forgejo/workflows/android-beta.yaml' # Run check on self change
|
||||||
- '**/*_tests/**'
|
- '**/*_tests/**'
|
||||||
- '**/CMakeLists.txt'
|
- '**/CMakeLists.txt'
|
||||||
- CONTRIBUTORS
|
- CONTRIBUTORS
|
||||||
121
.forgejo/workflows/android-check.yaml
Normal file
121
.forgejo/workflows/android-check.yaml
Normal file
@@ -0,0 +1,121 @@
|
|||||||
|
name: Android Check
|
||||||
|
on:
|
||||||
|
workflow_dispatch: # Manual trigger
|
||||||
|
push:
|
||||||
|
branches:
|
||||||
|
- main
|
||||||
|
pull_request:
|
||||||
|
paths-ignore:
|
||||||
|
- .gitignore
|
||||||
|
- .forgejo/**
|
||||||
|
- '!.forgejo/workflows/android-check.yaml' # Run check on self change
|
||||||
|
- '**/*_tests/**'
|
||||||
|
- CONTRIBUTORS
|
||||||
|
- LICENSE
|
||||||
|
- NOTICE
|
||||||
|
- README.md
|
||||||
|
- android/app/src/fdroid/**
|
||||||
|
- android/app/src/google/**
|
||||||
|
- iphone/**
|
||||||
|
- data/strings/**
|
||||||
|
- docs/**
|
||||||
|
- generator/**
|
||||||
|
- packaging/**
|
||||||
|
- platform/*apple*
|
||||||
|
- platform/*_ios*
|
||||||
|
- platform/*_linux*
|
||||||
|
- platform/*_mac*
|
||||||
|
- platform/*qt*
|
||||||
|
- platform/*_win*
|
||||||
|
- pyhelpers/**
|
||||||
|
- qt*/**
|
||||||
|
- skin_generator/**
|
||||||
|
- tools/**
|
||||||
|
- track_generator/**
|
||||||
|
- xcode/**
|
||||||
|
|
||||||
|
env:
|
||||||
|
JAVA_HOME: /usr/lib/jvm/temurin-17-jdk-amd64 # Java 17 is required for Android Gradle 8 plugin
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
lint:
|
||||||
|
name: Android Lint
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- name: Checkout sources
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
with:
|
||||||
|
fetch-depth: 1
|
||||||
|
|
||||||
|
- name: Parallel submodules checkout
|
||||||
|
shell: bash
|
||||||
|
run: git submodule update --depth 1 --init --recursive --jobs=$(($(nproc) * 20))
|
||||||
|
|
||||||
|
- name: Configure repository
|
||||||
|
shell: bash
|
||||||
|
run: ./configure.sh
|
||||||
|
|
||||||
|
- name: Lint
|
||||||
|
shell: bash
|
||||||
|
working-directory: android
|
||||||
|
run: ./gradlew -Pandroidauto=true lint
|
||||||
|
|
||||||
|
android-check:
|
||||||
|
name: Build Android Debug
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
strategy:
|
||||||
|
fail-fast: false
|
||||||
|
matrix:
|
||||||
|
flavor: [WebDebug, FdroidDebug]
|
||||||
|
include:
|
||||||
|
- flavor: WebDebug
|
||||||
|
arch: arm64
|
||||||
|
- flavor: FdroidDebug
|
||||||
|
arch: arm32
|
||||||
|
# Cancels previous jobs if the same branch or PR was updated again.
|
||||||
|
concurrency:
|
||||||
|
group: ${{ github.workflow }}-${{ matrix.flavor }}-${{ github.event.pull_request.number || github.ref }}
|
||||||
|
cancel-in-progress: true
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: Install build tools and dependencies
|
||||||
|
shell: bash
|
||||||
|
run: |
|
||||||
|
sudo apt-get update -y
|
||||||
|
sudo apt-get install -y ninja-build
|
||||||
|
|
||||||
|
- name: Checkout sources
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
with:
|
||||||
|
fetch-depth: 200 # enough to get all commits for the current day
|
||||||
|
|
||||||
|
- name: Parallel submodules checkout
|
||||||
|
shell: bash
|
||||||
|
run: git submodule update --depth 1 --init --recursive --jobs=$(($(nproc) * 20))
|
||||||
|
|
||||||
|
- name: Configure repository
|
||||||
|
shell: bash
|
||||||
|
run: ./configure.sh
|
||||||
|
|
||||||
|
- name: Configure ccache
|
||||||
|
uses: hendrikmuhs/ccache-action@v1.2
|
||||||
|
with:
|
||||||
|
key: ${{ github.workflow }}-${{ matrix.flavor }}
|
||||||
|
|
||||||
|
- name: Compile ${{ matrix.flavor }}
|
||||||
|
shell: bash
|
||||||
|
working-directory: android
|
||||||
|
env:
|
||||||
|
CMAKE_C_COMPILER_LAUNCHER: ccache
|
||||||
|
CMAKE_CXX_COMPILER_LAUNCHER: ccache
|
||||||
|
run: |
|
||||||
|
cmake --version
|
||||||
|
ninja --version
|
||||||
|
./gradlew -P${{ matrix.arch }} assemble${{ matrix.flavor }}
|
||||||
|
|
||||||
|
- name: Upload ${{ matrix.flavor }} apk
|
||||||
|
uses: actions/upload-artifact@v4
|
||||||
|
with:
|
||||||
|
name: android-${{ matrix.flavor }}
|
||||||
|
path: android/app/build/outputs/apk/**/OrganicMaps-*.apk
|
||||||
|
if-no-files-found: error
|
||||||
@@ -23,7 +23,7 @@ jobs:
|
|||||||
with:
|
with:
|
||||||
repository: ${{ secrets.SCREENSHOTS_REPO }}
|
repository: ${{ secrets.SCREENSHOTS_REPO }}
|
||||||
ssh-key: ${{ secrets.SCREENSHOTS_SSH_KEY }}
|
ssh-key: ${{ secrets.SCREENSHOTS_SSH_KEY }}
|
||||||
ref: master
|
ref: main
|
||||||
path: screenshots
|
path: screenshots
|
||||||
|
|
||||||
- name: Restore release keys
|
- name: Restore release keys
|
||||||
@@ -97,7 +97,7 @@ jobs:
|
|||||||
with:
|
with:
|
||||||
repository: ${{ secrets.SCREENSHOTS_REPO }}
|
repository: ${{ secrets.SCREENSHOTS_REPO }}
|
||||||
ssh-key: ${{ secrets.SCREENSHOTS_SSH_KEY }}
|
ssh-key: ${{ secrets.SCREENSHOTS_SSH_KEY }}
|
||||||
ref: master
|
ref: main
|
||||||
path: screenshots
|
path: screenshots
|
||||||
|
|
||||||
- name: Restore release keys
|
- name: Restore release keys
|
||||||
@@ -156,7 +156,7 @@ jobs:
|
|||||||
cat ${{ env.RELEASE_NOTES }}
|
cat ${{ env.RELEASE_NOTES }}
|
||||||
echo ""
|
echo ""
|
||||||
echo "See [a detailed announce](https://organicmaps.app/news/) on our website when app updates are published in all stores."
|
echo "See [a detailed announce](https://organicmaps.app/news/) on our website when app updates are published in all stores."
|
||||||
echo "You can get automatic app updates from GitHub [using Obtainium](https://github.com/organicmaps/organicmaps/wiki/Installing-Organic-Maps-from-GitHub-using-Obtainium)."
|
echo "You can get automatic app updates from Codeberg [using Obtainium](https://codeberg.org/comaps/comaps/wiki/Installing-Organic-Maps-from-GitHub-using-Obtainium)."
|
||||||
echo ""
|
echo ""
|
||||||
echo "sha256sum:"
|
echo "sha256sum:"
|
||||||
echo -e '\n```'
|
echo -e '\n```'
|
||||||
@@ -164,7 +164,7 @@ jobs:
|
|||||||
echo -e '\n```'
|
echo -e '\n```'
|
||||||
} > ${{ runner.temp }}/release-notes.txt
|
} > ${{ runner.temp }}/release-notes.txt
|
||||||
|
|
||||||
- name: Upload universal APK to GitHub
|
- name: Upload universal APK to Codeberg
|
||||||
uses: softprops/action-gh-release@v1
|
uses: softprops/action-gh-release@v1
|
||||||
if: ${{ matrix.flavor == 'web' }}
|
if: ${{ matrix.flavor == 'web' }}
|
||||||
with:
|
with:
|
||||||
@@ -4,7 +4,7 @@ on:
|
|||||||
pull_request:
|
pull_request:
|
||||||
paths:
|
paths:
|
||||||
- packaging/app.organicmaps.desktop.metainfo.xml
|
- packaging/app.organicmaps.desktop.metainfo.xml
|
||||||
- .github/workflows/appstream-check.yaml # Run check on self change
|
- .forgejo/workflows/appstream-check.yaml # Run check on self change
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
validate-appstream:
|
validate-appstream:
|
||||||
@@ -4,7 +4,7 @@ on:
|
|||||||
pull_request:
|
pull_request:
|
||||||
paths:
|
paths:
|
||||||
- qt/res/app.organicmaps.desktop.desktop
|
- qt/res/app.organicmaps.desktop.desktop
|
||||||
- .github/workflows/desktop-file-check.yaml # Run check on self change
|
- .forgejo/workflows/desktop-file-check.yaml # Run check on self change
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
validate-desktop-file:
|
validate-desktop-file:
|
||||||
@@ -3,11 +3,11 @@ on:
|
|||||||
workflow_dispatch: # Manual trigger
|
workflow_dispatch: # Manual trigger
|
||||||
push:
|
push:
|
||||||
branches:
|
branches:
|
||||||
- master
|
- main
|
||||||
paths-ignore:
|
paths-ignore:
|
||||||
- .gitignore
|
- .gitignore
|
||||||
- .github/**
|
- .forgejo/**
|
||||||
- '!.github/workflows/ios-beta.yaml' # Run check on self change
|
- '!.forgejo/workflows/ios-beta.yaml' # Run check on self change
|
||||||
- '**/*_tests/**'
|
- '**/*_tests/**'
|
||||||
- '**/CMakeLists.txt'
|
- '**/CMakeLists.txt'
|
||||||
- CONTRIBUTORS
|
- CONTRIBUTORS
|
||||||
@@ -3,7 +3,7 @@ on:
|
|||||||
workflow_dispatch: # Manual trigger
|
workflow_dispatch: # Manual trigger
|
||||||
pull_request:
|
pull_request:
|
||||||
paths:
|
paths:
|
||||||
- .github/workflows/ios-check-metadata.yaml # Run check on self change
|
- .forgejo/workflows/ios-check-metadata.yaml # Run check on self change
|
||||||
- iphone/metadata/**
|
- iphone/metadata/**
|
||||||
- tools/python/check_store_metadata.py
|
- tools/python/check_store_metadata.py
|
||||||
|
|
||||||
106
.forgejo/workflows/ios-check.yaml
Normal file
106
.forgejo/workflows/ios-check.yaml
Normal file
@@ -0,0 +1,106 @@
|
|||||||
|
name: iOS Check
|
||||||
|
on:
|
||||||
|
workflow_dispatch: # Manual trigger
|
||||||
|
push:
|
||||||
|
branches:
|
||||||
|
- main
|
||||||
|
pull_request:
|
||||||
|
paths-ignore:
|
||||||
|
- .gitignore
|
||||||
|
- .forgejo/**
|
||||||
|
- '!.forgejo/workflows/ios-check.yaml' # Run check on self change
|
||||||
|
- '**/*_tests/**'
|
||||||
|
- '**/CMakeLists.txt'
|
||||||
|
- CONTRIBUTORS
|
||||||
|
- LICENSE
|
||||||
|
- NOTICE
|
||||||
|
- README.md
|
||||||
|
- android/**
|
||||||
|
- data/strings/**
|
||||||
|
- docs/**
|
||||||
|
- generator/**
|
||||||
|
- iphone/metadata/**
|
||||||
|
- packaging/**
|
||||||
|
- platform/*_android*
|
||||||
|
- platform/*_linux*
|
||||||
|
- platform/*_mac*
|
||||||
|
- platform/*qt*
|
||||||
|
- platform/*_win*
|
||||||
|
- pyhelpers/**
|
||||||
|
- qt*/**
|
||||||
|
- skin_generator/**
|
||||||
|
- tools/**
|
||||||
|
- track_generator/**
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
ios-check:
|
||||||
|
name: Build iOS
|
||||||
|
runs-on: macos-15
|
||||||
|
env:
|
||||||
|
DEVELOPER_DIR: /Applications/Xcode_16.app/Contents/Developer
|
||||||
|
LANG: en_US.UTF-8 # Fastlane complains that the terminal is using ASCII.
|
||||||
|
LANGUAGE: en_US.UTF-8
|
||||||
|
LC_ALL: en_US.UTF-8
|
||||||
|
TEST_RESULTS_BUNDLE_NAME: OMaps-Test-Results
|
||||||
|
strategy:
|
||||||
|
fail-fast: false
|
||||||
|
matrix:
|
||||||
|
buildType: [Debug, Release]
|
||||||
|
# Cancels previous jobs if the same branch or PR was updated again.
|
||||||
|
concurrency:
|
||||||
|
group: ${{ github.workflow }}-${{ matrix.buildType }}-${{ github.event.pull_request.number || github.ref }}
|
||||||
|
cancel-in-progress: true
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: Checkout sources
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
|
||||||
|
- name: Parallel submodules checkout
|
||||||
|
shell: bash
|
||||||
|
run: git submodule update --depth 1 --init --recursive --jobs=$(($(sysctl -n hw.logicalcpu) * 20))
|
||||||
|
|
||||||
|
- name: Configure repository
|
||||||
|
shell: bash
|
||||||
|
run: ./configure.sh
|
||||||
|
|
||||||
|
- name: Configure XCode cache
|
||||||
|
uses: irgaly/xcode-cache@v1
|
||||||
|
with:
|
||||||
|
key: xcode-cache-deriveddata-${{ github.workflow }}-${{ matrix.buildType }}-${{ github.sha }}
|
||||||
|
restore-keys: xcode-cache-deriveddata-${{ github.workflow }}-${{ matrix.buildType }}
|
||||||
|
|
||||||
|
- name: Build and Run Tests (Debug)
|
||||||
|
if: matrix.buildType == 'Debug'
|
||||||
|
shell: bash
|
||||||
|
run: |
|
||||||
|
xcodebuild test \
|
||||||
|
-workspace xcode/omim.xcworkspace \
|
||||||
|
-scheme OMaps \
|
||||||
|
-configuration Debug \
|
||||||
|
-sdk iphonesimulator \
|
||||||
|
-destination 'platform=iOS Simulator,name=iPhone 16 Pro Max,OS=latest' \
|
||||||
|
-quiet \
|
||||||
|
-resultBundlePath ${{ env.TEST_RESULTS_BUNDLE_NAME }}.xcresult \
|
||||||
|
CODE_SIGNING_REQUIRED=NO \
|
||||||
|
CODE_SIGNING_ALLOWED=NO
|
||||||
|
|
||||||
|
- name: Upload Test Results On Failure (Debug)
|
||||||
|
if: ${{ matrix.buildType == 'Debug' && failure() }}
|
||||||
|
uses: actions/upload-artifact@v4
|
||||||
|
with:
|
||||||
|
name: ${{ env.TEST_RESULTS_BUNDLE_NAME }}-${{ github.run_number }}.xcresult
|
||||||
|
path: ${{ env.TEST_RESULTS_BUNDLE_NAME }}.xcresult
|
||||||
|
if-no-files-found: error
|
||||||
|
|
||||||
|
- name: Build (Release)
|
||||||
|
if: matrix.buildType == 'Release'
|
||||||
|
shell: bash
|
||||||
|
run: |
|
||||||
|
xcodebuild build \
|
||||||
|
-workspace xcode/omim.xcworkspace \
|
||||||
|
-scheme OMaps \
|
||||||
|
-configuration Release \
|
||||||
|
-destination 'generic/platform=iOS' \
|
||||||
|
-quiet \
|
||||||
|
CODE_SIGNING_REQUIRED=NO \
|
||||||
|
CODE_SIGNING_ALLOWED=NO
|
||||||
@@ -29,7 +29,7 @@ jobs:
|
|||||||
with:
|
with:
|
||||||
repository: ${{ secrets.SCREENSHOTS_REPO }}
|
repository: ${{ secrets.SCREENSHOTS_REPO }}
|
||||||
ssh-key: ${{ secrets.SCREENSHOTS_SSH_KEY }}
|
ssh-key: ${{ secrets.SCREENSHOTS_SSH_KEY }}
|
||||||
ref: master
|
ref: main
|
||||||
path: screenshots
|
path: screenshots
|
||||||
|
|
||||||
- name: Checkout keywords
|
- name: Checkout keywords
|
||||||
@@ -37,7 +37,7 @@ jobs:
|
|||||||
with:
|
with:
|
||||||
repository: ${{ secrets.KEYWORDS_REPO }}
|
repository: ${{ secrets.KEYWORDS_REPO }}
|
||||||
ssh-key: ${{ secrets.KEYWORDS_SSH_KEY }}
|
ssh-key: ${{ secrets.KEYWORDS_SSH_KEY }}
|
||||||
ref: master
|
ref: main
|
||||||
path: keywords
|
path: keywords
|
||||||
|
|
||||||
- name: Update metadata
|
- name: Update metadata
|
||||||
@@ -3,7 +3,7 @@ on:
|
|||||||
workflow_dispatch: # Manual trigger
|
workflow_dispatch: # Manual trigger
|
||||||
push:
|
push:
|
||||||
branches:
|
branches:
|
||||||
- master
|
- main
|
||||||
pull_request:
|
pull_request:
|
||||||
paths-ignore:
|
paths-ignore:
|
||||||
- .gitignore
|
- .gitignore
|
||||||
@@ -3,12 +3,12 @@ on:
|
|||||||
workflow_dispatch: # Manual trigger
|
workflow_dispatch: # Manual trigger
|
||||||
push:
|
push:
|
||||||
branches:
|
branches:
|
||||||
- master
|
- main
|
||||||
pull_request:
|
pull_request:
|
||||||
paths-ignore:
|
paths-ignore:
|
||||||
- .gitignore
|
- .gitignore
|
||||||
- .github/**
|
- .forgejo/**
|
||||||
- '!.github/workflows/macos-check.yaml' # Run check on self change
|
- '!.forgejo/workflows/macos-check.yaml' # Run check on self change
|
||||||
- CONTRIBUTORS
|
- CONTRIBUTORS
|
||||||
- LICENSE
|
- LICENSE
|
||||||
- NOTICE
|
- NOTICE
|
||||||
4
.github/FUNDING.yml
vendored
4
.github/FUNDING.yml
vendored
@@ -1,4 +0,0 @@
|
|||||||
github: organicmaps
|
|
||||||
liberapay: OrganicMaps
|
|
||||||
open_collective: organicmaps
|
|
||||||
custom: ["https://organicmaps.app/donate/", "https://donate.organicmaps.app/"]
|
|
||||||
38
.github/ISSUE_TEMPLATE/bug_report.md
vendored
38
.github/ISSUE_TEMPLATE/bug_report.md
vendored
@@ -1,38 +0,0 @@
|
|||||||
---
|
|
||||||
name: Bug Report
|
|
||||||
about: Describe your issue in detail to help us improve Organic Maps
|
|
||||||
title: ''
|
|
||||||
labels: ''
|
|
||||||
assignees: ''
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
⚠ Have you searched for similar, already existing issues?
|
|
||||||
|
|
||||||
**Describe the issue**
|
|
||||||
Please write a clear and concise description of the issue here.
|
|
||||||
|
|
||||||
|
|
||||||
**Steps to reproduce**
|
|
||||||
1. Go to '...'
|
|
||||||
2. Click on '....'
|
|
||||||
3. Scroll down to '....'
|
|
||||||
4. See error
|
|
||||||
|
|
||||||
|
|
||||||
**Expected behaviour**
|
|
||||||
A clear and concise description of what you expected to happen.
|
|
||||||
|
|
||||||
|
|
||||||
**Screenshots**
|
|
||||||
If applicable, add screenshots or screen recordings to help explain your problem.
|
|
||||||
|
|
||||||
|
|
||||||
**System information:**
|
|
||||||
- Operating system and its version: [iOS 12, Android 10, Ubuntu 22, MacOS Big Sur, etc.]
|
|
||||||
- Organic Maps version: [you can find it by tapping the button with the green Organic Maps logo]
|
|
||||||
- Device Model: [e.g. iPhone 6, Samsung S22]
|
|
||||||
|
|
||||||
|
|
||||||
**Additional context**
|
|
||||||
Please add any other context or comments here that may be useful.
|
|
||||||
11
.github/ISSUE_TEMPLATE/config.yml
vendored
11
.github/ISSUE_TEMPLATE/config.yml
vendored
@@ -1,11 +0,0 @@
|
|||||||
blank_issues_enabled: true
|
|
||||||
contact_links:
|
|
||||||
- name: Discussions
|
|
||||||
url: https://github.com/organicmaps/organicmaps/discussions
|
|
||||||
about: Discuss the usage of Organic Maps, ask questions, or talk about ideas that aren't yet actionable.
|
|
||||||
- name: Translations
|
|
||||||
url: https://github.com/organicmaps/organicmaps/blob/master/docs/TRANSLATIONS.md
|
|
||||||
about: Translate Organic Maps into your language
|
|
||||||
- name: News
|
|
||||||
url: https://organicmaps.app/news/
|
|
||||||
about: Check the latest project news
|
|
||||||
27
.github/ISSUE_TEMPLATE/feature_request.md
vendored
27
.github/ISSUE_TEMPLATE/feature_request.md
vendored
@@ -1,27 +0,0 @@
|
|||||||
---
|
|
||||||
name: Feature Request
|
|
||||||
about: Suggest an idea for Organic Maps
|
|
||||||
title: ''
|
|
||||||
labels: []
|
|
||||||
assignees: ''
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
⚠ Have you searched for similar, already existing issues?
|
|
||||||
|
|
||||||
**Is your feature request related to a problem? Please describe.**
|
|
||||||
A clear and concise description of what the problem is. For example:
|
|
||||||
I'm always frustrated when [...]
|
|
||||||
|
|
||||||
|
|
||||||
**Describe the ideal solution**
|
|
||||||
A clear and concise description of what you want to see in Organic Maps.
|
|
||||||
|
|
||||||
|
|
||||||
**Describe alternatives you have considered**
|
|
||||||
- How do you solve this issue now with Organic Maps or other apps?
|
|
||||||
- Attach any examples, screenshots, or screen recordings from other apps that help us to better understand the idea.
|
|
||||||
|
|
||||||
|
|
||||||
**Additional context**
|
|
||||||
Add any other context or screenshots about the feature request here.
|
|
||||||
57
.github/workflows/android-check.yaml
vendored
57
.github/workflows/android-check.yaml
vendored
@@ -3,36 +3,7 @@ on:
|
|||||||
workflow_dispatch: # Manual trigger
|
workflow_dispatch: # Manual trigger
|
||||||
push:
|
push:
|
||||||
branches:
|
branches:
|
||||||
- master
|
- main
|
||||||
pull_request:
|
|
||||||
paths-ignore:
|
|
||||||
- .gitignore
|
|
||||||
- .github/**
|
|
||||||
- '!.github/workflows/android-check.yaml' # Run check on self change
|
|
||||||
- '**/*_tests/**'
|
|
||||||
- CONTRIBUTORS
|
|
||||||
- LICENSE
|
|
||||||
- NOTICE
|
|
||||||
- README.md
|
|
||||||
- android/app/src/fdroid/**
|
|
||||||
- android/app/src/google/**
|
|
||||||
- iphone/**
|
|
||||||
- data/strings/**
|
|
||||||
- docs/**
|
|
||||||
- generator/**
|
|
||||||
- packaging/**
|
|
||||||
- platform/*apple*
|
|
||||||
- platform/*_ios*
|
|
||||||
- platform/*_linux*
|
|
||||||
- platform/*_mac*
|
|
||||||
- platform/*qt*
|
|
||||||
- platform/*_win*
|
|
||||||
- pyhelpers/**
|
|
||||||
- qt*/**
|
|
||||||
- skin_generator/**
|
|
||||||
- tools/**
|
|
||||||
- track_generator/**
|
|
||||||
- xcode/**
|
|
||||||
|
|
||||||
env:
|
env:
|
||||||
JAVA_HOME: /usr/lib/jvm/temurin-17-jdk-amd64 # Java 17 is required for Android Gradle 8 plugin
|
JAVA_HOME: /usr/lib/jvm/temurin-17-jdk-amd64 # Java 17 is required for Android Gradle 8 plugin
|
||||||
@@ -61,14 +32,14 @@ jobs:
|
|||||||
run: ./gradlew -Pandroidauto=true lint
|
run: ./gradlew -Pandroidauto=true lint
|
||||||
|
|
||||||
android-check:
|
android-check:
|
||||||
name: Build Android Debug
|
name: Build Android apps
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
strategy:
|
strategy:
|
||||||
fail-fast: false
|
fail-fast: false
|
||||||
matrix:
|
matrix:
|
||||||
flavor: [WebDebug, FdroidDebug]
|
flavor: [WebBeta, FdroidDebug]
|
||||||
include:
|
include:
|
||||||
- flavor: WebDebug
|
- flavor: WebBeta
|
||||||
arch: arm64
|
arch: arm64
|
||||||
- flavor: FdroidDebug
|
- flavor: FdroidDebug
|
||||||
arch: arm32
|
arch: arm32
|
||||||
@@ -82,7 +53,19 @@ jobs:
|
|||||||
shell: bash
|
shell: bash
|
||||||
run: |
|
run: |
|
||||||
sudo apt-get update -y
|
sudo apt-get update -y
|
||||||
sudo apt-get install -y ninja-build
|
sudo apt-get install -y ninja-build \
|
||||||
|
qt6-base-dev \
|
||||||
|
qt6-declarative-dev \
|
||||||
|
qt6-positioning-dev \
|
||||||
|
libqt6svg6-dev \
|
||||||
|
optipng \
|
||||||
|
libfreetype-dev \
|
||||||
|
libharfbuzz-dev \
|
||||||
|
libxrandr-dev \
|
||||||
|
libxinerama-dev \
|
||||||
|
libxcursor-dev \
|
||||||
|
libxi-dev \
|
||||||
|
zlib1g-dev
|
||||||
|
|
||||||
- name: Checkout sources
|
- name: Checkout sources
|
||||||
uses: actions/checkout@v4
|
uses: actions/checkout@v4
|
||||||
@@ -97,6 +80,10 @@ jobs:
|
|||||||
shell: bash
|
shell: bash
|
||||||
run: ./configure.sh
|
run: ./configure.sh
|
||||||
|
|
||||||
|
- name: Generate symbols
|
||||||
|
shell: bash
|
||||||
|
run: ./tools/unix/generate_symbols.sh
|
||||||
|
|
||||||
- name: Configure ccache
|
- name: Configure ccache
|
||||||
uses: hendrikmuhs/ccache-action@v1.2
|
uses: hendrikmuhs/ccache-action@v1.2
|
||||||
with:
|
with:
|
||||||
@@ -117,5 +104,5 @@ jobs:
|
|||||||
uses: actions/upload-artifact@v4
|
uses: actions/upload-artifact@v4
|
||||||
with:
|
with:
|
||||||
name: android-${{ matrix.flavor }}
|
name: android-${{ matrix.flavor }}
|
||||||
path: android/app/build/outputs/apk/**/OrganicMaps-*.apk
|
path: android/app/build/outputs/apk/**/CoMaps-*.apk
|
||||||
if-no-files-found: error
|
if-no-files-found: error
|
||||||
|
|||||||
47
.github/workflows/ios-check.yaml
vendored
47
.github/workflows/ios-check.yaml
vendored
@@ -3,34 +3,7 @@ on:
|
|||||||
workflow_dispatch: # Manual trigger
|
workflow_dispatch: # Manual trigger
|
||||||
push:
|
push:
|
||||||
branches:
|
branches:
|
||||||
- master
|
- main
|
||||||
pull_request:
|
|
||||||
paths-ignore:
|
|
||||||
- .gitignore
|
|
||||||
- .github/**
|
|
||||||
- '!.github/workflows/ios-check.yaml' # Run check on self change
|
|
||||||
- '**/*_tests/**'
|
|
||||||
- '**/CMakeLists.txt'
|
|
||||||
- CONTRIBUTORS
|
|
||||||
- LICENSE
|
|
||||||
- NOTICE
|
|
||||||
- README.md
|
|
||||||
- android/**
|
|
||||||
- data/strings/**
|
|
||||||
- docs/**
|
|
||||||
- generator/**
|
|
||||||
- iphone/metadata/**
|
|
||||||
- packaging/**
|
|
||||||
- platform/*_android*
|
|
||||||
- platform/*_linux*
|
|
||||||
- platform/*_mac*
|
|
||||||
- platform/*qt*
|
|
||||||
- platform/*_win*
|
|
||||||
- pyhelpers/**
|
|
||||||
- qt*/**
|
|
||||||
- skin_generator/**
|
|
||||||
- tools/**
|
|
||||||
- track_generator/**
|
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
ios-check:
|
ios-check:
|
||||||
@@ -41,7 +14,7 @@ jobs:
|
|||||||
LANG: en_US.UTF-8 # Fastlane complains that the terminal is using ASCII.
|
LANG: en_US.UTF-8 # Fastlane complains that the terminal is using ASCII.
|
||||||
LANGUAGE: en_US.UTF-8
|
LANGUAGE: en_US.UTF-8
|
||||||
LC_ALL: en_US.UTF-8
|
LC_ALL: en_US.UTF-8
|
||||||
TEST_RESULTS_BUNDLE_NAME: OMaps-Test-Results
|
TEST_RESULTS_BUNDLE_NAME: CoMaps-Test-Results
|
||||||
strategy:
|
strategy:
|
||||||
fail-fast: false
|
fail-fast: false
|
||||||
matrix:
|
matrix:
|
||||||
@@ -52,6 +25,12 @@ jobs:
|
|||||||
cancel-in-progress: true
|
cancel-in-progress: true
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
|
- name: Install dependencies
|
||||||
|
run: |
|
||||||
|
brew install qt \
|
||||||
|
freetype \
|
||||||
|
harfbuzz \
|
||||||
|
optipng
|
||||||
- name: Checkout sources
|
- name: Checkout sources
|
||||||
uses: actions/checkout@v4
|
uses: actions/checkout@v4
|
||||||
|
|
||||||
@@ -63,6 +42,16 @@ jobs:
|
|||||||
shell: bash
|
shell: bash
|
||||||
run: ./configure.sh
|
run: ./configure.sh
|
||||||
|
|
||||||
|
- name: Download MWM files
|
||||||
|
shell: bash
|
||||||
|
run: |
|
||||||
|
wget https://cdn.comaps.app/maps/latest/World.mwm -P ./data/
|
||||||
|
wget https://cdn.comaps.app/maps/latest/WorldCoasts.mwm -P ./data/
|
||||||
|
|
||||||
|
- name: Generate symbols
|
||||||
|
shell: bash
|
||||||
|
run: ./tools/unix/generate_symbols.sh
|
||||||
|
|
||||||
- name: Configure XCode cache
|
- name: Configure XCode cache
|
||||||
uses: irgaly/xcode-cache@v1
|
uses: irgaly/xcode-cache@v1
|
||||||
with:
|
with:
|
||||||
|
|||||||
10
.gitignore
vendored
10
.gitignore
vendored
@@ -16,11 +16,16 @@ screenlog.0
|
|||||||
|
|
||||||
data/styles/*/*/out/*
|
data/styles/*/*/out/*
|
||||||
data/resources-*_design/*
|
data/resources-*_design/*
|
||||||
|
# symbols png/sdf are now generated at build
|
||||||
|
data/resources-*_*/symbols.png
|
||||||
|
data/resources-*_*/symbols.sdf
|
||||||
data/drules_proto_default_design.bin
|
data/drules_proto_default_design.bin
|
||||||
data/colors_design.txt
|
data/colors_design.txt
|
||||||
data/patterns_design.txt
|
data/patterns_design.txt
|
||||||
data/bookmarks
|
data/bookmarks
|
||||||
data/edits.xml
|
data/edits.xml
|
||||||
|
data/World.mwm
|
||||||
|
data/WorldCoasts.mwm
|
||||||
|
|
||||||
# Compiled Python
|
# Compiled Python
|
||||||
*.pyc
|
*.pyc
|
||||||
@@ -134,10 +139,7 @@ private.h
|
|||||||
android/release.keystore
|
android/release.keystore
|
||||||
android/secure.properties
|
android/secure.properties
|
||||||
android/libnotify.properties
|
android/libnotify.properties
|
||||||
android/google-services.json
|
|
||||||
android/google-play.json
|
android/google-play.json
|
||||||
android/firebase-app-distribution.json
|
|
||||||
android/firebase-test-lab.json
|
|
||||||
android/huawei-appgallery.json
|
android/huawei-appgallery.json
|
||||||
android/res/xml/network_security_config.xml
|
android/res/xml/network_security_config.xml
|
||||||
./server/
|
./server/
|
||||||
@@ -173,6 +175,7 @@ tools/python/*/venv/
|
|||||||
# Configs
|
# Configs
|
||||||
tools/python/maps_generator/var/etc/map_generator.ini
|
tools/python/maps_generator/var/etc/map_generator.ini
|
||||||
tools/python/routing/etc/*.ini
|
tools/python/routing/etc/*.ini
|
||||||
|
tools/unix/maps/settings.sh
|
||||||
|
|
||||||
# Helpers
|
# Helpers
|
||||||
/node_modules/
|
/node_modules/
|
||||||
@@ -183,6 +186,7 @@ tools/python/routing/etc/*.ini
|
|||||||
|
|
||||||
# VS Code
|
# VS Code
|
||||||
.vscode
|
.vscode
|
||||||
|
.cache
|
||||||
|
|
||||||
# AppStore metadata
|
# AppStore metadata
|
||||||
screenshots/
|
screenshots/
|
||||||
|
|||||||
2
.gitmodules
vendored
2
.gitmodules
vendored
@@ -31,7 +31,7 @@
|
|||||||
url = https://github.com/unicode-org/icu.git
|
url = https://github.com/unicode-org/icu.git
|
||||||
[submodule "3party/freetype/freetype"]
|
[submodule "3party/freetype/freetype"]
|
||||||
path = 3party/freetype/freetype
|
path = 3party/freetype/freetype
|
||||||
url = https://git.omaps.dev/organicmaps/freetype.git
|
url = https://gitlab.freedesktop.org/freetype/freetype.git
|
||||||
[submodule "3party/googletest"]
|
[submodule "3party/googletest"]
|
||||||
path = 3party/googletest
|
path = 3party/googletest
|
||||||
url = https://github.com/google/googletest.git
|
url = https://github.com/google/googletest.git
|
||||||
|
|||||||
@@ -247,7 +247,7 @@ set(LIBRARY_OUTPUT_PATH ${CMAKE_CURRENT_BINARY_DIR})
|
|||||||
if (PLATFORM_LINUX OR PLATFORM_ANDROID)
|
if (PLATFORM_LINUX OR PLATFORM_ANDROID)
|
||||||
find_program(LLD_FOUND ld.lld)
|
find_program(LLD_FOUND ld.lld)
|
||||||
if (LLD_FOUND)
|
if (LLD_FOUND)
|
||||||
message(STATUS "Using ld.ldd linker")
|
message(STATUS "Using ld.lld linker")
|
||||||
set(CMAKE_EXE_LINKER_FLAGS "-fuse-ld=lld")
|
set(CMAKE_EXE_LINKER_FLAGS "-fuse-ld=lld")
|
||||||
else()
|
else()
|
||||||
find_program(GOLD_FOUND ld.gold)
|
find_program(GOLD_FOUND ld.gold)
|
||||||
|
|||||||
@@ -2,6 +2,11 @@ This file contains a list of people who have contributed to this project.
|
|||||||
Its not neccesarily comprehensive.
|
Its not neccesarily comprehensive.
|
||||||
Feel free to add yourself here along with your first contribution!
|
Feel free to add yourself here along with your first contribution!
|
||||||
|
|
||||||
|
--------------------------------------------------------------------------------
|
||||||
|
CoMaps contributors:
|
||||||
|
(in alphabetic order)
|
||||||
|
--------------------------------------------------------------------------------
|
||||||
|
|
||||||
--------------------------------------------------------------------------------
|
--------------------------------------------------------------------------------
|
||||||
Organic Maps (formerly OMaps) contributors:
|
Organic Maps (formerly OMaps) contributors:
|
||||||
(in alphabetic order)
|
(in alphabetic order)
|
||||||
|
|||||||
9
LEGAL
9
LEGAL
@@ -1,9 +0,0 @@
|
|||||||
Certain project resources, including but not limited to domain names, trademarks, hosting accounts, payment accounts, and others, are overseen and managed by Organic Maps OÜ. The governance of these digital assets is subject to policies established by Organic Maps OÜ, in compliance with applicable statutory laws.
|
|
||||||
|
|
||||||
Organic Maps OÜ is a legal entity established on 2021-05-01 under the laws of the Republic of Estonia and the European Union, with registration number 16225385. The primary purpose of the entity is to shield the project's members from personal liability and to ensure the legal protection of the project's assets. Official up-to-date information about the entity can be found in the Estonian Business Register:
|
|
||||||
|
|
||||||
https://ariregister.rik.ee/eng/company/16225385/Organic-Maps-O%C3%9C
|
|
||||||
|
|
||||||
Organic Maps OÜ does not require contributors to transfer copyright ownership and does not retain any copyright over the code contributed to the repository. See the NOTICE file and docs/DCO.md for additional information.
|
|
||||||
|
|
||||||
For any legal inquiries, feel free to contact legal@organicmaps.app.
|
|
||||||
3
NOTICE
3
NOTICE
@@ -1,5 +1,6 @@
|
|||||||
Copyright 2020 My.com B.V. (Mail.Ru Group)
|
Copyright 2020 My.com B.V. (Mail.Ru Group)
|
||||||
Copyright 2024 Organic Maps Contributors
|
Copyright 2025 Organic Maps Contributors
|
||||||
|
Copyright 2025 CoMaps Contributors
|
||||||
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License");
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
you may not use this file except in compliance with the License.
|
you may not use this file except in compliance with the License.
|
||||||
|
|||||||
234
README.md
234
README.md
@@ -1,185 +1,125 @@
|
|||||||
<div align="center">
|
<!--<div align="center">
|
||||||
<img src="qt/res/logo.png" height="100"/>
|
<img src="qt/res/logo.png" height="100"/>
|
||||||
</div>
|
</div>-->
|
||||||
<h1 align="center"">Organic Maps</h1>
|
|
||||||
|
|
||||||
[Organic Maps](https://organicmaps.app) is a free Android & iOS offline maps app for travellers, tourists, drivers, hikers, and cyclists.
|
<!-- a nav bar -->
|
||||||
It uses crowd-sourced [OpenStreetMap](https://www.openstreetmap.org) data and is developed with love by the creators of **MapsWithMe** (later renamed to **Maps.Me**) and by our community.
|
[Project Intro](https://codeberg.org/comaps#comaps)
|
||||||
No ads, no tracking, no data collection, no crapware. Your [donations](https://organicmaps.app/donate/) and positive reviews motivate and inspire us, thanks ❤️!
|
| [Governance](https://codeberg.org/comaps/Governance#comaps-project-governance-docs)
|
||||||
|
| [FAQ](https://codeberg.org/comaps/Governance/src/branch/main/FAQ.md)
|
||||||
|
| [Contribute](#contributing)
|
||||||
|
| [Donate](https://www.comaps.app/donate)
|
||||||
|
| [Keep Connected](https://codeberg.org/comaps#keep-connected)
|
||||||
|
|
||||||
[<img src="docs/badges/apple-appstore.png" alt="App Store" width="160">](https://apps.apple.com/app/organic-maps/id1567437057)
|
# [CoMaps](https://comaps.app) – Hike, Bike, Drive Offline – Easy Map Navigation with Privacy
|
||||||
[<img src="docs/badges/google-play.png" alt="Google Play" width="160">](https://play.google.com/store/apps/details?id=app.organicmaps)
|
|
||||||
[<img src="docs/badges/huawei-appgallery.png" alt="AppGallery" width="160">](https://appgallery.huawei.com/#/app/C104325611)
|
[
|
||||||
[<img src="docs/badges/obtainium.png" alt="Obtainium" width="160">](https://github.com/organicmaps/organicmaps/wiki/Installing-Organic-Maps-from-GitHub-using-Obtainium)
|

|
||||||
[<img src="docs/badges/fdroid.png" alt="F-Droid" width="160">](https://f-droid.org/en/packages/app.organicmaps/)
|
](https://github.com/comaps/comaps/actions/workflows/android-check.yaml)
|
||||||
|
[
|
||||||
|

|
||||||
|
](https://github.com/comaps/comaps/actions/workflows/ios-check.yaml)
|
||||||
|
[
|
||||||
|

|
||||||
|
](https://opencollective.com/comaps)
|
||||||
|
[
|
||||||
|

|
||||||
|
](https://liberapay.com/CoMaps)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
A community-led free & open source maps app based on [OpenStreetMap](https://www.openstreetmap.org) data and reinforced with commitment to transparency, privacy and being not-for-profit. CoMaps is a fork/spin-off of Organic Maps, which in turn is a fork of Maps.ME.
|
||||||
|
|
||||||
|
There are apps for Android and iOS (and ARM macOS).
|
||||||
|
An alpha linux / macOS Qt desktop version, which is also suitable for linux phones.
|
||||||
|
|
||||||
|
**We're working on getting first app releases out soon, please stay tuned!**
|
||||||
|
|
||||||
|
<!--
|
||||||
|
[<img src="docs/badges/apple-appstore.png" alt="App Store" width="160">](https://apps.apple.com/app/comaps/id1567437057)
|
||||||
|
[<img src="docs/badges/google-play.png" alt="Google Play" width="160">](https://play.google.com/store/apps/details?id=app.comaps)
|
||||||
|
[<img src="docs/badges/fdroid.png" alt="F-Droid" width="160">](https://f-droid.org/en/packages/app.comaps/)
|
||||||
|
-->
|
||||||
|
|
||||||
<p float="left">
|
<p float="left">
|
||||||
<img src="android/app/src/fdroid/play/listings/en-US/graphics/phone-screenshots/1.jpg" width="400" />
|
<img src="android/app/src/fdroid/play/listings/en-US/graphics/phone-screenshots/1.jpg" width="180" />
|
||||||
<img src="android/app/src/fdroid/play/listings/en-US/graphics/phone-screenshots/2.jpg" width="400" />
|
<img src="android/app/src/fdroid/play/listings/en-US/graphics/phone-screenshots/2.jpg" width="180" />
|
||||||
<img src="android/app/src/fdroid/play/listings/en-US/graphics/phone-screenshots/3.jpg" width="400" />
|
<img src="android/app/src/fdroid/play/listings/en-US/graphics/phone-screenshots/3.jpg" width="180" />
|
||||||
<img src="android/app/src/fdroid/play/listings/en-US/graphics/phone-screenshots/4.jpg" width="400" />
|
<img src="android/app/src/fdroid/play/listings/en-US/graphics/phone-screenshots/4.jpg" width="180" />
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
## Features
|
**Offline-focused**: Plan and navigate your trip abroad without the need for cellular service, search waypoints while on a distant hike, etc. All app functions are designed to work offline.
|
||||||
|
|
||||||
Organic Maps is the ultimate companion app for travellers, tourists, hikers, and cyclists:
|
**Respecting Privacy**: The app is designed with privacy in mind - does not identify people, does not track, and does not collect personal information. Ads-free.
|
||||||
|
|
||||||
- Detailed offline maps with places that don't exist on other maps, thanks to [OpenStreetMap](https://openstreetmap.org)
|
**Simple and Polished**: essential easy to use features that just work.
|
||||||
- Cycling routes, hiking trails, and walking paths
|
|
||||||
- Contour lines, elevation profiles, peaks, and slopes
|
|
||||||
- Turn-by-turn walking, cycling, and car navigation with voice guidance
|
|
||||||
- Fast offline search on the map
|
|
||||||
- Bookmarks and tracks import and export in KML, KMZ & GPX formats
|
|
||||||
- Dark Mode to protect your eyes
|
|
||||||
- Countries and regions don't take a lot of space
|
|
||||||
- Free and open-source
|
|
||||||
|
|
||||||
## Why Organic?
|
**Saves Your Battery and Space**: Doesn’t drain your battery like other navigation apps. Compact maps save precious space on your phone.
|
||||||
|
|
||||||
Organic Maps is pure and organic, made with love:
|
**Free and Built by the Community**: People like you helped build the app by adding places to [OpenStreetMap](https://www.openstreetmap.org), testing and giving feedback on features and contributing their development skills and money.
|
||||||
|
|
||||||
- Respects your privacy
|
**Open and Transparent Decision-making and Financials, Not-for-profit and Fully Open Source.**
|
||||||
- Saves your battery
|
|
||||||
- No unexpected mobile data charges
|
|
||||||
|
|
||||||
Organic Maps is free from trackers and other bad stuff:
|
### Main Features
|
||||||
|
|
||||||
- No ads
|
- Downloadable detailed maps with places which are not available with Google Maps
|
||||||
- No tracking
|
|
||||||
- No data collection
|
|
||||||
- No phoning home
|
|
||||||
- No annoying registration
|
|
||||||
- No mandatory tutorials
|
|
||||||
- No noisy email spam
|
|
||||||
- No push notifications
|
|
||||||
- No crapware
|
|
||||||
- ~~No pesticides~~ Purely organic!
|
|
||||||
|
|
||||||
The Android application is verified by the <a href="https://reports.exodus-privacy.eu.org/en/reports/app.organicmaps/latest/">Exodus Privacy Project:
|
- Outdoor mode with highlighted hiking trails, campsites, water sources, peaks, contour lines, etc
|
||||||
|
|
||||||
<img src="docs/privacy/exodus.png" width="400">
|
- Walking paths and cycleways
|
||||||
</a>
|
|
||||||
|
|
||||||
The iOS application is verified by <a href="https://ios.trackercontrol.org/analysis/app.organicmaps">TrackerControl for iOS:
|
- Points of interest like restaurants, gas stations, hotels, shops, sightseeings and many more
|
||||||
|
|
||||||
<img src="docs/privacy/trackercontrol-ios.png" width="400">
|
- Search by name or an address or by point of interest category
|
||||||
</a>
|
|
||||||
|
|
||||||
<br/>
|
- Navigation with voice announcements for walking, cycling, or driving
|
||||||
|
|
||||||
Organic Maps doesn't request excessive permissions to spy on you:
|
- Bookmark your favorite places with a single tap
|
||||||
|
|
||||||
<p float="left">
|
- Offline Wikipedia articles
|
||||||
<img src="docs/privacy/om.jpg" width="400">
|
|
||||||
<img src="docs/privacy/mm.jpg" width="400">
|
|
||||||
</p>
|
|
||||||
|
|
||||||
At Organic Maps, we believe that privacy is a fundamental human right:
|
- Subway transit layer and directions
|
||||||
|
|
||||||
- Organic Maps is an indie community-driven open-source project
|
- Track recording
|
||||||
- We protect your privacy from Big Tech's prying eyes
|
|
||||||
- Stay safe no matter where you are
|
|
||||||
|
|
||||||
Reject surveillance - embrace your freedom.
|
- Export and import bookmarks and tracks in KML, KMZ, GPX formats
|
||||||
|
|
||||||
[**Give Organic Maps a try!**](#install)
|
- A dark mode to use during the night
|
||||||
|
|
||||||
## Who is paying for the development?
|
- Improve map data for everyone using a basic built-in editor
|
||||||
|
|
||||||
The app is free for everyone, so we rely on donations. Please donate at [organicmaps.app/donate](https://organicmaps.app/donate) to support us!
|
- Android Auto and CarPlay support
|
||||||
|
|
||||||
Beloved institutional sponsors below have provided targeted grants to cover some infrastructure costs and fund development of new selected features:
|
*Freedom Is Here - Discover your journey, navigate the world with privacy and community at the forefront!*
|
||||||
|
|
||||||
<table>
|
|
||||||
<tr>
|
|
||||||
<td>
|
|
||||||
<a href="https://nlnet.nl/"><img src="docs/sponsors/nlnet.svg" alt="The NLnet Foundation" width="200px"></a>
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
<a href="https://github.com/organicmaps/organicmaps/milestone/7">The Search & Fonts improvement project</a> has been <a href="https://nlnet.nl/project/OrganicMaps/">funded</a> through NGI0 Entrust Fund. <a href="https://nlnet.nl/entrust/">NGI0 Entrust Fund</a> is established by the <a href="https://nlnet.nl/">NLnet Foundation</a> with financial support from the European Commission's <a href="https://www.ngi.eu/">Next Generation Internet programme</a>, under the aegis of DG Communications Networks, Content and Technology under grant agreement No 101069594.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td>
|
|
||||||
<a href="https://summerofcode.withgoogle.com/"><img src="docs/sponsors/gsoc.svg" alt="Google Summer of Code" width="200px"></a>
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
<a href="https://summerofcode.withgoogle.com/">Google</a> backed 5 student's projects in the Google Summer of Code program during <a href="https://summerofcode.withgoogle.com/programs/2022/organizations/organic-maps">2022</a> and <a href="https://summerofcode.withgoogle.com/programs/2023/organizations/organic-maps">2023</a> programs. Noteworthy projects included Android Auto and Wikipedia Dump Extractor.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td>
|
|
||||||
<a href="https://www.mythic-beasts.com/"><img src="docs/sponsors/mythic-beasts.png" alt="Mythic Beasts" width="200px"></a>
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
<a href="https://www.mythic-beasts.com/">Mythic Beasts</a> ISP <a href="https://www.mythic-beasts.com/blog/2021/10/06/improving-the-world-bit-by-expensive-bit/">provides us</a> two virtual servers with 400 TB/month of free bandwidth to host and serve maps downloads and updates.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td>
|
|
||||||
<a href="https://44plus.vn"><img src="docs/sponsors/44plus.svg" alt="44+ Technologies" width="200px"></a>
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
<a href="https://44plus.vn">44+ Technologies</a> is <a href="https://44plus.vn/organicmaps">providing us </a>with a free dedicated server worth around $12,000/year to serve maps across Vietnam & Southeast Asia.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td>
|
|
||||||
<a href="https://futo.org"><img src="docs/sponsors/futo.svg" alt="FUTO" width="200px"></a>
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
<a href="https://futo.org">FUTO</a> has <a href="https://www.youtube.com/watch?v=fJJclgBHrEw">awarded $1000 micro-grant</a> to Organic Maps in February 2023.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
</table>
|
|
||||||
|
|
||||||
The majority of all expenses have been funded by founders of the project since its inception. The project is far from achieving any sort of financial sustainability. The current level of voluntary donations falls significantly short of covering efforts needed to sustain the app. Any new developments of features are beyond the scope of possibility due to the absence of the necessary financial resources.
|
|
||||||
|
|
||||||
Please consider [donating](https://organicmaps.app/donate) if you want to see this open-source project thriving, not dying. There are [other ways how to support the project](#contributing). No coding skills required.
|
|
||||||
|
|
||||||
## Copyrights
|
|
||||||
|
|
||||||
Licensed under the Apache License, Version 2.0. See
|
|
||||||
[LICENSE](https://github.com/organicmaps/organicmaps/blob/master/LICENSE),
|
|
||||||
[NOTICE](https://github.com/organicmaps/organicmaps/blob/master/NOTICE)
|
|
||||||
and [data/copyright.html](http://htmlpreview.github.io/?https://github.com/organicmaps/organicmaps/blob/master/data/copyright.html)
|
|
||||||
for more information.
|
|
||||||
|
|
||||||
## Governance
|
|
||||||
|
|
||||||
See [docs/GOVERNANCE.md](docs/GOVERNANCE.md).
|
|
||||||
|
|
||||||
<a name="contributing">
|
|
||||||
|
|
||||||
## Contributing
|
## Contributing
|
||||||
|
|
||||||
|
You can help by donating, contributing code, translating, or by telling others about it. To build the best maps app there is a need for software development, design, product, community development, and other areas. Reach out to us and let us know how you want to help.
|
||||||
|
|
||||||
If you want to build the project, check [docs/INSTALL.md](docs/INSTALL.md). If you want to help the project,
|
If you want to build the project, check [docs/INSTALL.md](docs/INSTALL.md). If you want to help the project,
|
||||||
see [docs/CONTRIBUTING.md](docs/CONTRIBUTING.md). You can [help in many ways](https://organicmaps.app/support-us/), the ability to code is not necessary.
|
see [docs/CONTRIBUTING.md](docs/CONTRIBUTING.md). You can help in many ways, the ability to code is not necessary.
|
||||||
|
|
||||||
## Beta
|
Some docs might be outdated, contain broken links or old references to Organic Maps, etc. Its a work in progress and help is much appreciated!
|
||||||
|
|
||||||
Please join our beta program, suggest your features, and report bugs:
|
There is a dedicated Zulip chat for active contributors: [comaps.zulipchat.com](https://comaps.zulipchat.com)
|
||||||
|
|
||||||
- [iOS Beta (TestFlight)](https://testflight.apple.com/join/lrKCl08I)
|
### Feedback
|
||||||
- [Android Beta (Firebase)](https://appdistribution.firebase.dev/i/2f0fee463107b137)
|
|
||||||
|
|
||||||
## Feedback
|
<!-- uncomment when linked resources are ready
|
||||||
|
- **Rate us on the [App Store](https://apps.apple.com/app/comaps/id1567437057)
|
||||||
|
and [Google Play](https://play.google.com/store/apps/details?id=app.comaps)**. -->
|
||||||
|
- Star our repos on Codeberg
|
||||||
|
- Report bugs and discuss features at [the issue tracker](https://codeberg.org/comaps/comaps/issues)
|
||||||
|
|
||||||
- **Rate us on the [App Store](https://apps.apple.com/app/organic-maps/id1567437057)
|
## How is development funded?
|
||||||
and [Google Play](https://play.google.com/store/apps/details?id=app.organicmaps)**.
|
|
||||||
- **Star us on Forgejo**.
|
|
||||||
- Report bugs or issues to [the issue tracker](https://git.omaps.dev/organicmaps/organicmaps/issues).
|
|
||||||
- Subscribe to our [Telegram Channel](https://t.me/OrganicMapsApp) or to the [[matrix] space](https://matrix.to/#/#organicmaps:matrix.org) for updates.
|
|
||||||
- Join our [Telegram Group](https://t.me/OrganicMaps) to discuss with other users.
|
|
||||||
- Присоединяйтесь к нашей [русскоязычной группе в Telegram](https://t.me/OrganicMapsRu) для обратной связи и помощи.
|
|
||||||
- Diğer kullanıcılarla tartışmak için [Telegram Grubumuza](https://t.me/OrganicMapsTR) katılın.
|
|
||||||
- Rejoignez notre groupe [Telegram](https://t.me/OrganicMapsFR) pour obtenir de l'aide.
|
|
||||||
- Contact us by [email](mailto:hello@organicmaps.app).
|
|
||||||
- Follow our updates in
|
|
||||||
[Mastodon](https://fosstodon.org/@organicmaps),
|
|
||||||
[Facebook](https://facebook.com/OrganicMaps),
|
|
||||||
[X (Twitter)](https://x.com/OrganicMapsApp),
|
|
||||||
[Instagram](https://instagram.com/organicmaps.app/).
|
|
||||||
- Güncellemelerimizi [Instagram](https://instagram.com/organicmapstr/) üzerinden takip edin.
|
|
||||||
|
|
||||||
The Organic Maps community abides by the CNCF [code of conduct](https://github.com/organicmaps/organicmaps/blob/master/docs/CODE_OF_CONDUCT.md).
|
The app is free for everyone, so we rely on donations. Please [donate](https://opencollective.com/comaps/donate) to support the CoMaps community and see this open project thrive!
|
||||||
|
|
||||||
|
The project's financial information is completely open and transparent at [our Open Collective](https://opencollective.com/comaps).
|
||||||
|
|
||||||
|
## License and Copyright
|
||||||
|
|
||||||
|
Licensed under the Apache License, Version 2.0. See
|
||||||
|
[LICENSE](LICENSE),
|
||||||
|
[NOTICE](NOTICE)
|
||||||
|
and [data/copyright.html](data/copyright.html)
|
||||||
|
for more information.
|
||||||
|
|||||||
23
android/Dockerfile
Normal file
23
android/Dockerfile
Normal file
@@ -0,0 +1,23 @@
|
|||||||
|
FROM ubuntu:latest
|
||||||
|
|
||||||
|
ENV TZ=Etc/UTC
|
||||||
|
ENV QT_QPA_PLATFORM=offscreen
|
||||||
|
|
||||||
|
RUN apt-get update && apt-get install -y --no-install-recommends \
|
||||||
|
build-essential \
|
||||||
|
cmake \
|
||||||
|
qt6-base-dev \
|
||||||
|
qt6-svg-dev \
|
||||||
|
qt6-positioning-dev \
|
||||||
|
libicu-dev \
|
||||||
|
libfreetype-dev \
|
||||||
|
libharfbuzz-dev \
|
||||||
|
libxrandr-dev \
|
||||||
|
libxinerama-dev \
|
||||||
|
libxcursor-dev \
|
||||||
|
libxi-dev \
|
||||||
|
optipng
|
||||||
|
WORKDIR /root/comaps
|
||||||
|
RUN ./configure.sh
|
||||||
|
RUN ./tools/unix/generate_symbols.sh
|
||||||
|
CMD ./gradlew -Parm64 assembleFdroidDebug
|
||||||
4
android/app/.gitignore
vendored
4
android/app/.gitignore
vendored
@@ -2,15 +2,11 @@
|
|||||||
/nativeOutputs
|
/nativeOutputs
|
||||||
|
|
||||||
# ignore private keys
|
# ignore private keys
|
||||||
/google-services.json
|
|
||||||
/secure.properties
|
/secure.properties
|
||||||
/release.keystore
|
/release.keystore
|
||||||
/secure.properties
|
/secure.properties
|
||||||
/libnotify.properties
|
/libnotify.properties
|
||||||
/google-services.json
|
|
||||||
/google-play.json
|
/google-play.json
|
||||||
/firebase-app-distribution.json
|
|
||||||
/firebase-test-lab.json
|
|
||||||
/huawei-appgallery.json
|
/huawei-appgallery.json
|
||||||
/agconnect-services.json
|
/agconnect-services.json
|
||||||
/src/main/res/xml/network_security_config.xml
|
/src/main/res/xml/network_security_config.xml
|
||||||
|
|||||||
@@ -3,38 +3,16 @@ buildscript {
|
|||||||
google()
|
google()
|
||||||
mavenCentral()
|
mavenCentral()
|
||||||
}
|
}
|
||||||
//
|
|
||||||
// The magic below is needed to disable Google Firebase Services during the build time.
|
|
||||||
// Unfortunately, the only way to disable Gradle plugins is to add these hardcore switches to buildscript().
|
|
||||||
//
|
|
||||||
|
|
||||||
// Detect flavors from the task name.
|
// Detect flavors from the task name.
|
||||||
def taskName = getGradle().getStartParameter().getTaskRequests().toString().toLowerCase()
|
def taskName = getGradle().getStartParameter().getTaskRequests().toString().toLowerCase()
|
||||||
def isFdroid = taskName.contains('fdroid')
|
def isFdroid = taskName.contains('fdroid')
|
||||||
def isBeta = taskName.contains('beta')
|
def isBeta = taskName.contains('beta')
|
||||||
|
|
||||||
// Firebase Crashlytics compile-time feature flag: -Pfirebase=true|false
|
|
||||||
def googleFirebaseServicesFlag = findProperty('firebase')
|
|
||||||
// Enable Firebase for all beta flavors except fdroid only if google-services.json exists.
|
|
||||||
def googleFirebaseServicesDefault = isBeta && !isFdroid && file("$projectDir/google-services.json").exists()
|
|
||||||
ext.googleFirebaseServicesEnabled = googleFirebaseServicesFlag != null ?
|
|
||||||
googleFirebaseServicesFlag == '' || googleFirebaseServicesFlag.toBoolean() :
|
|
||||||
googleFirebaseServicesDefault
|
|
||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
classpath 'com.android.tools.build:gradle:8.7.3'
|
classpath libs.android.tools
|
||||||
|
classpath(libs.triplet.play.publisher)
|
||||||
if (googleFirebaseServicesEnabled) {
|
classpath(libs.huawei.publish)
|
||||||
println('Building with Google Firebase Services')
|
|
||||||
classpath 'com.google.gms:google-services:4.4.2'
|
|
||||||
classpath 'com.google.firebase:firebase-crashlytics-gradle:3.0.2'
|
|
||||||
classpath 'com.google.firebase:firebase-appdistribution-gradle:5.0.0'
|
|
||||||
} else {
|
|
||||||
println('Building without Google Firebase Services')
|
|
||||||
}
|
|
||||||
|
|
||||||
classpath('com.github.triplet.gradle:play-publisher:3.10.1')
|
|
||||||
classpath('ru.cian:huawei-publish-gradle-plugin:1.4.2')
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -45,11 +23,6 @@ repositories {
|
|||||||
}
|
}
|
||||||
|
|
||||||
apply plugin: 'com.android.application'
|
apply plugin: 'com.android.application'
|
||||||
if (googleFirebaseServicesEnabled) {
|
|
||||||
apply plugin: 'com.google.gms.google-services'
|
|
||||||
apply plugin: 'com.google.firebase.crashlytics'
|
|
||||||
apply plugin: 'com.google.firebase.appdistribution'
|
|
||||||
}
|
|
||||||
apply plugin: 'com.github.triplet.play'
|
apply plugin: 'com.github.triplet.play'
|
||||||
apply plugin: 'ru.cian.huawei-publish-gradle-plugin'
|
apply plugin: 'ru.cian.huawei-publish-gradle-plugin'
|
||||||
|
|
||||||
@@ -80,8 +53,8 @@ def getCommitMessage() {
|
|||||||
|
|
||||||
def osName = System.properties['os.name'].toLowerCase()
|
def osName = System.properties['os.name'].toLowerCase()
|
||||||
|
|
||||||
project.ext.appId = 'app.organicmaps'
|
project.ext.appId = 'app.comaps'
|
||||||
project.ext.appName = 'Organic Maps'
|
project.ext.appName = 'CoMaps'
|
||||||
|
|
||||||
// I have Java 21 installed, but this doesn't work on MacOS.
|
// I have Java 21 installed, but this doesn't work on MacOS.
|
||||||
//java {
|
//java {
|
||||||
@@ -103,7 +76,7 @@ android {
|
|||||||
ndkVersion '27.2.12479018'
|
ndkVersion '27.2.12479018'
|
||||||
|
|
||||||
defaultConfig {
|
defaultConfig {
|
||||||
// Default package name is taken from the manifest and should be app.organicmaps
|
// Default package name is taken from the manifest and should be app.comaps
|
||||||
def ver = getVersion()
|
def ver = getVersion()
|
||||||
versionCode = ver.V1
|
versionCode = ver.V1
|
||||||
versionName = ver.V2
|
versionName = ver.V2
|
||||||
@@ -112,7 +85,7 @@ android {
|
|||||||
minSdk propMinSdkVersion.toInteger()
|
minSdk propMinSdkVersion.toInteger()
|
||||||
targetSdk propTargetSdkVersion.toInteger()
|
targetSdk propTargetSdkVersion.toInteger()
|
||||||
applicationId project.ext.appId
|
applicationId project.ext.appId
|
||||||
buildConfigField 'String', 'SUPPORT_MAIL', '"android@organicmaps.app"'
|
buildConfigField 'String', 'SUPPORT_MAIL', '"android@comaps.app"'
|
||||||
// Should be customized in flavors.
|
// Should be customized in flavors.
|
||||||
buildConfigField 'String', 'REVIEW_URL', '""'
|
buildConfigField 'String', 'REVIEW_URL', '""'
|
||||||
resourceConfigurations += [project.ext.supportedLocalizations]
|
resourceConfigurations += [project.ext.supportedLocalizations]
|
||||||
@@ -182,30 +155,33 @@ android {
|
|||||||
|
|
||||||
google {
|
google {
|
||||||
dimension 'default'
|
dimension 'default'
|
||||||
|
applicationIdSuffix '.google'
|
||||||
versionName = android.defaultConfig.versionName + '-Google'
|
versionName = android.defaultConfig.versionName + '-Google'
|
||||||
buildConfigField 'String', 'SUPPORT_MAIL', '"googleplay@organicmaps.app"'
|
buildConfigField 'String', 'SUPPORT_MAIL', '"gplay@comaps.app"'
|
||||||
buildConfigField 'String', 'REVIEW_URL', '"market://details?id=app.organicmaps"'
|
buildConfigField 'String', 'REVIEW_URL', '"market://details?id=app.comaps.google"'
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Distributed directly by the project, e.g. in repo releases, chats, etc.
|
||||||
web {
|
web {
|
||||||
dimension 'default'
|
dimension 'default'
|
||||||
applicationIdSuffix '.web'
|
versionName = android.defaultConfig.versionName
|
||||||
versionName = android.defaultConfig.versionName + '-Web'
|
buildConfigField 'String', 'SUPPORT_MAIL', '"apk@comaps.app"'
|
||||||
buildConfigField 'String', 'SUPPORT_MAIL', '"apk@organicmaps.app"'
|
|
||||||
}
|
}
|
||||||
|
|
||||||
fdroid {
|
fdroid {
|
||||||
dimension 'default'
|
dimension 'default'
|
||||||
|
applicationIdSuffix '.fdroid'
|
||||||
versionName = android.defaultConfig.versionName + '-FDroid'
|
versionName = android.defaultConfig.versionName + '-FDroid'
|
||||||
buildConfigField 'String', 'SUPPORT_MAIL', '"fdroid@organicmaps.app"'
|
buildConfigField 'String', 'SUPPORT_MAIL', '"fdroid@comaps.app"'
|
||||||
}
|
}
|
||||||
|
|
||||||
huawei {
|
huawei {
|
||||||
dimension 'default'
|
dimension 'default'
|
||||||
|
applicationIdSuffix '.huawei'
|
||||||
versionName = android.defaultConfig.versionName + '-Huawei'
|
versionName = android.defaultConfig.versionName + '-Huawei'
|
||||||
versionCode = HUAWEI_VERSION_CODE_BASE + android.defaultConfig.versionCode
|
versionCode = HUAWEI_VERSION_CODE_BASE + android.defaultConfig.versionCode
|
||||||
buildConfigField 'String', 'SUPPORT_MAIL', '"huawei@organicmaps.app"'
|
buildConfigField 'String', 'SUPPORT_MAIL', '"huawei@comaps.app"'
|
||||||
buildConfigField 'String', 'REVIEW_URL', '"appmarket://details?id=app.organicmaps"'
|
buildConfigField 'String', 'REVIEW_URL', '"appmarket://details?id=app.comaps"'
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -241,7 +217,7 @@ android {
|
|||||||
android.applicationVariants.all { variant ->
|
android.applicationVariants.all { variant ->
|
||||||
def task = variant.name.capitalize()
|
def task = variant.name.capitalize()
|
||||||
project.task(type: Exec, "run${task}", dependsOn: "install${task}") {
|
project.task(type: Exec, "run${task}", dependsOn: "install${task}") {
|
||||||
commandLine android.getAdbExe(), 'shell', 'am', 'start', '-n', "$applicationId/app.organicmaps.DownloadResourcesActivity", '-a', 'android.intent.action.MAIN', '-c', 'android.intent.category.LAUNCHER'
|
commandLine android.getAdbExe(), 'shell', 'am', 'start', '-n', "$applicationId/app.comaps.DownloadResourcesActivity", '-a', 'android.intent.action.MAIN', '-c', 'android.intent.category.LAUNCHER'
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -279,17 +255,9 @@ android {
|
|||||||
jniDebuggable true // Enable jni debug build
|
jniDebuggable true // Enable jni debug build
|
||||||
zipAlignEnabled true
|
zipAlignEnabled true
|
||||||
signingConfig signingConfigs.debug
|
signingConfig signingConfigs.debug
|
||||||
resValue 'string', 'app_name', 'Debug Organic Maps'
|
resValue 'string', 'app_name', 'CoMaps Debug'
|
||||||
// Do not generate separate debug symbols for debug apps, because we don't distribute them.
|
// Do not generate separate debug symbols for debug apps, because we don't distribute them.
|
||||||
ndk.debugSymbolLevel = 'none'
|
ndk.debugSymbolLevel = 'none'
|
||||||
|
|
||||||
if (googleFirebaseServicesEnabled) {
|
|
||||||
// Keep debug symbols for test lab.
|
|
||||||
ndk.debugSymbolLevel = 'symbol_table'
|
|
||||||
firebaseCrashlytics {
|
|
||||||
nativeSymbolUploadEnabled true
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
release {
|
release {
|
||||||
@@ -302,40 +270,22 @@ android {
|
|||||||
resValue 'string', 'app_name', project.ext.appName
|
resValue 'string', 'app_name', project.ext.appName
|
||||||
// Full size symbols are too big for Google, 217mb aab vs 95mb.
|
// Full size symbols are too big for Google, 217mb aab vs 95mb.
|
||||||
ndk.debugSymbolLevel = 'symbol_table'
|
ndk.debugSymbolLevel = 'symbol_table'
|
||||||
|
|
||||||
if (googleFirebaseServicesEnabled) {
|
|
||||||
firebaseCrashlytics {
|
|
||||||
nativeSymbolUploadEnabled true
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// TODO(@pastk): rename to "test" everywhere in code
|
||||||
beta {
|
beta {
|
||||||
applicationIdSuffix '.beta'
|
applicationIdSuffix '.test'
|
||||||
versionNameSuffix '-beta'
|
versionNameSuffix '-test'
|
||||||
signingConfig signingConfigs.release
|
signingConfig signingConfigs.release
|
||||||
minifyEnabled true
|
minifyEnabled true
|
||||||
shrinkResources true
|
shrinkResources true
|
||||||
// Includes the default ProGuard rules files that are packaged with the Android Gradle plugin.
|
// Includes the default ProGuard rules files that are packaged with the Android Gradle plugin.
|
||||||
// To learn more, go to the documentation section about R8 configuration files.
|
// To learn more, go to the documentation section about R8 configuration files.
|
||||||
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
|
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
|
||||||
matchingFallbacks = ['debug', 'release']
|
matchingFallbacks = ['release'] // use dependencies of "release" build type
|
||||||
resValue 'string', 'app_name', 'Beta Organic Maps'
|
resValue 'string', 'app_name', 'CoMaps Test'
|
||||||
// Full size symbols are too big for Google, 217mb aab vs 95mb.
|
// Full size symbols are too big for Google, 217mb aab vs 95mb.
|
||||||
ndk.debugSymbolLevel = 'symbol_table'
|
ndk.debugSymbolLevel = 'symbol_table'
|
||||||
|
|
||||||
if (googleFirebaseServicesEnabled) {
|
|
||||||
firebaseCrashlytics {
|
|
||||||
nativeSymbolUploadEnabled true
|
|
||||||
}
|
|
||||||
firebaseAppDistribution {
|
|
||||||
// A new beta release is created for each commit.
|
|
||||||
// Use the last commit message for the release notes.
|
|
||||||
releaseNotes = getCommitMessage()
|
|
||||||
groups = 'qa' // Notify only selected people.
|
|
||||||
serviceCredentialsFile = "$projectDir/firebase-app-distribution.json"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -363,9 +313,11 @@ android {
|
|||||||
}
|
}
|
||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
coreLibraryDesugaring 'com.android.tools:desugar_jdk_libs:2.1.4'
|
coreLibraryDesugaring libs.android.tools.desugar
|
||||||
|
|
||||||
// Google Play Location Services
|
// Google Play Location Services
|
||||||
|
// TODO(@pastk): enabled via microG in all flavors,
|
||||||
|
// so move google/java/app/organicmaps/location/* into main/ and remove symlinks.
|
||||||
//
|
//
|
||||||
// Please add symlinks to google/java/app/organicmaps/location for each new gms-enabled flavor below:
|
// Please add symlinks to google/java/app/organicmaps/location for each new gms-enabled flavor below:
|
||||||
// ```
|
// ```
|
||||||
@@ -374,51 +326,37 @@ dependencies {
|
|||||||
// ls -la src/$flavor/java/app/organicmaps/location/GoogleFusedLocationProvider.java
|
// ls -la src/$flavor/java/app/organicmaps/location/GoogleFusedLocationProvider.java
|
||||||
// ```
|
// ```
|
||||||
//
|
//
|
||||||
webImplementation 'com.google.android.gms:play-services-location:21.3.0'
|
// microG project's FOSS re-implementation of the proprietary libs.google.services.location
|
||||||
googleImplementation 'com.google.android.gms:play-services-location:21.3.0'
|
implementation libs.microg.services.location
|
||||||
huaweiImplementation 'com.google.android.gms:play-services-location:21.3.0'
|
|
||||||
// This is the microG project's re-implementation which is permissible on
|
|
||||||
// F-droid because it's Apache-2.0.
|
|
||||||
fdroidImplementation 'org.microg.gms:play-services-location:0.3.6.244735'
|
|
||||||
|
|
||||||
// Google Firebase Services
|
|
||||||
if (googleFirebaseServicesEnabled) {
|
|
||||||
// Import the BoM for the Firebase platform
|
|
||||||
implementation platform('com.google.firebase:firebase-bom:33.5.1')
|
|
||||||
// Add the dependencies for the Crashlytics and Analytics libraries
|
|
||||||
// When using the BoM, you don't specify versions in Firebase library dependencies
|
|
||||||
implementation 'com.google.firebase:firebase-crashlytics'
|
|
||||||
implementation 'com.google.firebase:firebase-crashlytics-ndk'
|
|
||||||
}
|
|
||||||
|
|
||||||
// This line is added as a workaround for duplicate classes error caused by some outdated dependency:
|
// This line is added as a workaround for duplicate classes error caused by some outdated dependency:
|
||||||
// > A failure occurred while executing com.android.build.gradle.internal.tasks.CheckDuplicatesRunnable
|
// > A failure occurred while executing com.android.build.gradle.internal.tasks.CheckDuplicatesRunnable
|
||||||
// We don't use Kotlin, but some dependencies are actively using it.
|
// We don't use Kotlin, but some dependencies are actively using it.
|
||||||
// See https://stackoverflow.com/a/75719642
|
// See https://stackoverflow.com/a/75719642
|
||||||
implementation 'androidx.core:core:1.15.0'
|
implementation libs.androidx.core
|
||||||
implementation(platform('org.jetbrains.kotlin:kotlin-bom:2.1.10'))
|
implementation(platform(libs.jetbrains.kotlin.bom))
|
||||||
implementation 'androidx.annotation:annotation:1.9.1'
|
implementation libs.androidx.annotation
|
||||||
implementation 'androidx.appcompat:appcompat:1.7.0'
|
implementation libs.androidx.appcompat
|
||||||
implementation 'androidx.car.app:app:1.7.0-rc01'
|
implementation libs.androidx.car.app
|
||||||
implementation 'androidx.car.app:app-projected:1.7.0-rc01'
|
implementation libs.androidx.car.app.projected
|
||||||
implementation 'androidx.constraintlayout:constraintlayout:2.2.0'
|
implementation libs.androidx.constraintlayout
|
||||||
implementation 'androidx.fragment:fragment:1.8.5'
|
implementation libs.androidx.fragment
|
||||||
implementation 'androidx.preference:preference:1.2.1'
|
implementation libs.androidx.preference
|
||||||
implementation 'androidx.recyclerview:recyclerview:1.3.2'
|
implementation libs.androidx.recyclerview
|
||||||
implementation 'androidx.work:work-runtime:2.10.0'
|
implementation libs.androidx.work.runtime
|
||||||
implementation 'androidx.lifecycle:lifecycle-process:2.8.7'
|
implementation libs.androidx.lifecycle.process
|
||||||
implementation 'com.google.android.material:material:1.12.0'
|
implementation libs.android.material
|
||||||
// Fix for app/organicmaps/util/FileUploadWorker.java:14: error: cannot access ListenableFuture
|
// Fix for app/organicmaps/util/FileUploadWorker.java:14: error: cannot access ListenableFuture
|
||||||
// https://github.com/organicmaps/organicmaps/issues/6106
|
// https://github.com/organicmaps/organicmaps/issues/6106
|
||||||
implementation 'com.google.guava:guava:33.3.0-android'
|
implementation libs.google.guava
|
||||||
implementation 'com.github.devnullorthrow:MPAndroidChart:3.2.0-alpha'
|
implementation libs.devnullorthrow.mpandroidchart
|
||||||
implementation 'net.jcip:jcip-annotations:1.0'
|
implementation libs.jcip.annotations
|
||||||
|
|
||||||
// Test Dependencies
|
// Test Dependencies
|
||||||
androidTestImplementation 'androidx.test.ext:junit:1.2.1'
|
androidTestImplementation libs.androidx.test.junit
|
||||||
testImplementation 'junit:junit:4.13.2'
|
testImplementation libs.junit
|
||||||
testImplementation 'org.mockito:mockito-core:5.15.2'
|
testImplementation libs.mockito.core
|
||||||
testImplementation 'org.mockito:mockito-inline:5.2.0'
|
testImplementation libs.mockito.inline
|
||||||
}
|
}
|
||||||
|
|
||||||
tasks.withType(JavaCompile) {
|
tasks.withType(JavaCompile) {
|
||||||
|
|||||||
@@ -1 +1 @@
|
|||||||
fdroid@organicmaps.app
|
fdroid@comaps.app
|
||||||
|
|||||||
@@ -1 +1 @@
|
|||||||
https://organicmaps.app/
|
https://www.comaps.app/
|
||||||
|
|||||||
@@ -1,53 +0,0 @@
|
|||||||
‣ تطبيقنا المجاني لا يتتبعك ولا يحتوي على إعلانات ويحتاج إلى دعمك.
|
|
||||||
‣ يتم تحسينه باستمرار من قبل المساهمين وفريقنا الصغير، في أوقات فراغنا.
|
|
||||||
‣ إذا كان هناك شيء خاطئ أو مفقود على الخريطة، يرجى إصلاحه في <b>OpenStreetMap</b> وانظر إلى تعديلاتك في تحديث الخرائط المستقبلية.
|
|
||||||
‣ إذا لم ينجح التنقل أو البحث، يرجى إرسال بريد إلكتروني إلينا. نرد على <i>كل بريد إلكتروني</i> وسنصلحه في أسرع وقت ممكن!
|
|
||||||
|
|
||||||
<b>ملاحظاتك ومراجعات الخمس نجوم هي أفضل المحفزات لنا!</b>
|
|
||||||
|
|
||||||
الميزات الرئيسية:
|
|
||||||
|
|
||||||
• مجاني، مفتوح المصدر، لا إعلانات، لا تتبع
|
|
||||||
• خرائط مفصلة غير متصلة بالإنترنت مع أماكن غير موجودة على خرائط Google، وذلك بفضل مجتمع <b>OpenStreetMap</b>
|
|
||||||
• طرق ركوب الدراجات ومسارات المشي لمسافات طويلة ومسارات المشي
|
|
||||||
• خطوط الكنتور وملامح الارتفاع والقمم والمنحدرات
|
|
||||||
• المشي بدوران وركوب الدراجات والملاحة التجريبية بالسيارة مع التوجيه الصوتي
|
|
||||||
• البحث السريع في وضع عدم الاتصال
|
|
||||||
• العلامات المرجعية وتتبع التصدير والاستيراد بأشكال KML و KMZ و GPX
|
|
||||||
• الوضع المظلم لحماية عينيك
|
|
||||||
|
|
||||||
لا يوجد نظام وسائل النقل العام وخرائط الأقمار الصناعية وغيرها من الميزات الرائعة <i>حتى الآن</i> في الخرائط العضوية. ولكن مع <i>مساعدتك ودعمك</i>، يمكننا أن نجعل هذا العالم أفضل خطوة بخطوة.
|
|
||||||
|
|
||||||
الخرائط العضوية هي <b>نقية وعضوية، مصنوعة من الحب</b>:
|
|
||||||
|
|
||||||
• تجربة سريعة مشتعلة في وضع عدم الاتصال
|
|
||||||
• يحترم خصوصيتك
|
|
||||||
• يحفظ بطاريتك
|
|
||||||
• لا توجد رسوم غير متوقعة لبيانات الهاتف المحمول
|
|
||||||
• سهل الاستخدام، مع تضمين أهم الميزات فقط
|
|
||||||
|
|
||||||
خالية من أجهزة التعقب والأشياء السيئة الأخرى:
|
|
||||||
|
|
||||||
• لا إعلانات
|
|
||||||
• لا تتبع
|
|
||||||
• عدم جمع البيانات
|
|
||||||
• لا يوجد اتصال هاتفي بالمنزل
|
|
||||||
• لا تسجيل مزعج
|
|
||||||
• لا توجد دروس إلزامية
|
|
||||||
• لا بريد إلكتروني مزعج
|
|
||||||
• لا توجد إشعارات دفع
|
|
||||||
• لا توجد أواني حلوى
|
|
||||||
• لا مبيدات عضوية بالكامل
|
|
||||||
|
|
||||||
في Organic Maps نعتقد أن <b>الخصوصية هي حق أساسي من حقوق الإنسان:</b>
|
|
||||||
|
|
||||||
• Organic Maps هو مشروع مفتوح المصدر يحركه المجتمع المستقل
|
|
||||||
• نحن نحمي خصوصيتك من أعين المتطفلين لدى شركات التقنيات الكبيرة
|
|
||||||
•ابق آمنًا بغض النظر عن مكان وجودك
|
|
||||||
|
|
||||||
يتم العثور على أجهزة تعقب صفرية والأذونات المطلوبة بشكل ضئيل فقط وفقًا لتقرير Exodus Privacy.
|
|
||||||
|
|
||||||
الرجاء زيارة <b><i>organicmaps.app</i></b> للحصول على مزيد من التفاصيل والأسئلة الشائعة، والاتصال بنا مباشرة على @OrganicMapsApp في Telegram.
|
|
||||||
|
|
||||||
ارفض المراقبة - احتضن حريتك.
|
|
||||||
<b>أعطي Organic Maps تجربة!</b>
|
|
||||||
@@ -1,8 +0,0 @@
|
|||||||
• New OpenStreetMap data as of February 27
|
|
||||||
• Ability to manually arrange intermediate route points
|
|
||||||
• Share a single selected track from the list
|
|
||||||
• Improved routing for bicycles
|
|
||||||
• Display a system notification when downloading maps and don't interrupt background downloads
|
|
||||||
• Added a flashing Track Recording widget
|
|
||||||
|
|
||||||
…more details at omaps.org/news
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
التنقل بالخصوصية - مفتوح المصدر و مُدار من طرف المُجتمع
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
تنزه Organic Maps بدون إنترنت
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
Organic Maps: تنزه والدراجة والقيادة بدون إنترنت
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
https://www.youtube.com/watch?v=dK-CUuy82Uc
|
|
||||||
@@ -1,53 +0,0 @@
|
|||||||
‣ Our free app does not track you, does not have ads, and it needs your support.
|
|
||||||
‣ It is constantly being improved by contributors and our small team, in our free time.
|
|
||||||
‣ If something is wrong or missing on the map, please fix it in <b>OpenStreetMap</b> and see your changes in the future maps update.
|
|
||||||
‣ If navigation or search doesn't work, please check it on osm.org first, and then email us. We reply to <i>EVERY</i> email, and we'll fix it ASAP!
|
|
||||||
|
|
||||||
<b>Your feedback and 5-star reviews are the best motivators for us!</b>
|
|
||||||
|
|
||||||
Key features:
|
|
||||||
|
|
||||||
• Free, open-source, no ads, no tracking
|
|
||||||
• Detailed offline maps with places that don't exist on Google maps, thanks to the <b>OpenStreetMap</b> community
|
|
||||||
• Cycling routes, hiking trails, and walking paths
|
|
||||||
• Contour lines, elevation profiles, peaks, and slopes
|
|
||||||
• Turn-by-turn walking, cycling, and car navigation with voice guidance and Android Auto
|
|
||||||
• Fast offline search
|
|
||||||
• Bookmarks and tracks export and import in KML, KMZ, GPX formats
|
|
||||||
• Dark mode to protect your eyes
|
|
||||||
|
|
||||||
There is no public transport, satellite maps, and other cool features <i>yet</i> in Organic Maps. But with <i>your help and support</i>, we can make better maps step by step.
|
|
||||||
|
|
||||||
Organic Maps is <b>pure and organic, made with love</b>:
|
|
||||||
|
|
||||||
• Blazing fast offline experience
|
|
||||||
• Respects your privacy
|
|
||||||
• Saves your battery
|
|
||||||
• No unexpected mobile data charges
|
|
||||||
• Simple to use, with only most important features included
|
|
||||||
|
|
||||||
Free from trackers and other bad stuff:
|
|
||||||
|
|
||||||
• No ads
|
|
||||||
• No tracking
|
|
||||||
• No data collection
|
|
||||||
• No phoning home
|
|
||||||
• No annoying registration
|
|
||||||
• No mandatory tutorials
|
|
||||||
• No noisy email spam
|
|
||||||
• No push notifications
|
|
||||||
• No crapware
|
|
||||||
• N̶o̶ ̶p̶e̶s̶t̶i̶c̶i̶d̶e̶s̶ Purely organic
|
|
||||||
|
|
||||||
At Organic Maps, we believe that <b>privacy is a fundamental human right</b>:
|
|
||||||
|
|
||||||
• Organic Maps is an indie community-driven open-source project
|
|
||||||
• We protect privacy from Big Tech's prying eyes
|
|
||||||
• Stay safe no matter wherever you are
|
|
||||||
|
|
||||||
Zero trackers and only minimally required permissions are found according to Exodus Privacy Report.
|
|
||||||
|
|
||||||
Please visit <b><i>organicmaps.app</i></b> website for additional details and FAQ, and contact us directly at @OrganicMapsApp in Telegram.
|
|
||||||
|
|
||||||
Reject surveillance - embrace your freedom.
|
|
||||||
<b>Give Organic Maps a try!</b>
|
|
||||||
@@ -1,8 +0,0 @@
|
|||||||
• New OpenStreetMap data as of February 27
|
|
||||||
• Ability to manually arrange intermediate route points
|
|
||||||
• Share a single selected track from the list
|
|
||||||
• Improved routing for bicycles
|
|
||||||
• Display a system notification when downloading maps and don't interrupt background downloads
|
|
||||||
• Added a flashing Track Recording widget
|
|
||||||
|
|
||||||
…more details at omaps.org/news
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
Open-source, community-driven maps for travelers, tourists, cyclists & hikers
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
Organic Maps: offline maps
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
Organic Maps Offline Hike, Bike, GPS Navigation
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
https://www.youtube.com/watch?v=dK-CUuy82Uc
|
|
||||||
@@ -1,53 +0,0 @@
|
|||||||
‣ Our free app does not track you, does not have ads, and it needs your support.
|
|
||||||
‣ It is constantly being improved by contributors and our small team, in our free time.
|
|
||||||
‣ If something is wrong or missing on the map, please fix it in <b>OpenStreetMap</b> and see your changes in the future maps update.
|
|
||||||
‣ If navigation or search doesn't work, please check it on osm.org first, and then email us. We reply to <i>EVERY</i> email, and we'll fix it ASAP!
|
|
||||||
|
|
||||||
<b>Your feedback and 5-star reviews are the best motivators for us!</b>
|
|
||||||
|
|
||||||
Key features:
|
|
||||||
|
|
||||||
• Free, open-source, no ads, no tracking
|
|
||||||
• Detailed offline maps with places that don't exist on Google maps, thanks to the <b>OpenStreetMap</b> community
|
|
||||||
• Cycling routes, hiking trails, and walking paths
|
|
||||||
• Contour lines, elevation profiles, peaks, and slopes
|
|
||||||
• Turn-by-turn walking, cycling, and car navigation with voice guidance and Android Auto
|
|
||||||
• Fast offline search
|
|
||||||
• Bookmarks and tracks export and import in KML, KMZ, GPX formats
|
|
||||||
• Dark mode to protect your eyes
|
|
||||||
|
|
||||||
There is no public transport, satellite maps, and other cool features <i>yet</i> in Organic Maps. But with <i>your help and support</i>, we can make better maps step by step.
|
|
||||||
|
|
||||||
Organic Maps is <b>pure and organic, made with love</b>:
|
|
||||||
|
|
||||||
• Blazing fast offline experience
|
|
||||||
• Respects your privacy
|
|
||||||
• Saves your battery
|
|
||||||
• No unexpected mobile data charges
|
|
||||||
• Simple to use, with only most important features included
|
|
||||||
|
|
||||||
Free from trackers and other bad stuff:
|
|
||||||
|
|
||||||
• No ads
|
|
||||||
• No tracking
|
|
||||||
• No data collection
|
|
||||||
• No phoning home
|
|
||||||
• No annoying registration
|
|
||||||
• No mandatory tutorials
|
|
||||||
• No noisy email spam
|
|
||||||
• No push notifications
|
|
||||||
• No crapware
|
|
||||||
• N̶o̶ ̶p̶e̶s̶t̶i̶c̶i̶d̶e̶s̶ Purely organic
|
|
||||||
|
|
||||||
At Organic Maps, we believe that <b>privacy is a fundamental human right</b>:
|
|
||||||
|
|
||||||
• Organic Maps is an indie community-driven open-source project
|
|
||||||
• We protect privacy from Big Tech's prying eyes
|
|
||||||
• Stay safe no matter wherever you are
|
|
||||||
|
|
||||||
Zero trackers and only minimally required permissions are found according to Exodus Privacy Report.
|
|
||||||
|
|
||||||
Please visit <b><i>organicmaps.app</i></b> website for additional details and FAQ, and contact us directly at @OrganicMapsApp in Telegram.
|
|
||||||
|
|
||||||
Reject surveillance - embrace your freedom.
|
|
||||||
<b>Give Organic Maps a try!</b>
|
|
||||||
@@ -1,8 +0,0 @@
|
|||||||
• Новыя дадзеныя OpenStreetMap ад 27 лютага
|
|
||||||
• Магчымасць уручную расстаўляць прамежкавыя кропкі маршруту
|
|
||||||
• Экспарт аднаго абранага трэка са спісу
|
|
||||||
• Палепшаная маршрутызацыя для веласіпедыстаў
|
|
||||||
• Дададзена сістэмнае апавяшчэнне пры загрузцы карт, фонавыя загрузкі больш не перарываюцца
|
|
||||||
• Дададзены мігатлівы віджэт запісу трэка
|
|
||||||
|
|
||||||
…і шматлікае іншае на omaps.org/news
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
Open-source, community-driven maps for travelers, tourists, cyclists & hikers
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
Offline Organic Maps Hike Bike
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
Organic Maps Offline Hike, Bike, GPS Navigation
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
https://www.youtube.com/watch?v=dK-CUuy82Uc
|
|
||||||
@@ -1,53 +0,0 @@
|
|||||||
‣ Our free app does not track you, does not have ads, and it needs your support.
|
|
||||||
‣ It is constantly being improved by contributors and our small team, in our free time.
|
|
||||||
‣ If something is wrong or missing on the map, please fix it in <b>OpenStreetMap</b> and see your changes in the future maps update.
|
|
||||||
‣ If navigation or search doesn't work, please check it on osm.org first, and then email us. We reply to <i>EVERY</i> email, and we'll fix it ASAP!
|
|
||||||
|
|
||||||
<b>Your feedback and 5-star reviews are the best motivators for us!</b>
|
|
||||||
|
|
||||||
Key features:
|
|
||||||
|
|
||||||
• Free, open-source, no ads, no tracking
|
|
||||||
• Detailed offline maps with places that don't exist on Google maps, thanks to the <b>OpenStreetMap</b> community
|
|
||||||
• Cycling routes, hiking trails, and walking paths
|
|
||||||
• Contour lines, elevation profiles, peaks, and slopes
|
|
||||||
• Turn-by-turn walking, cycling, and car navigation with voice guidance and Android Auto
|
|
||||||
• Fast offline search
|
|
||||||
• Bookmarks and tracks export and import in KML, KMZ, GPX formats
|
|
||||||
• Dark mode to protect your eyes
|
|
||||||
|
|
||||||
There is no public transport, satellite maps, and other cool features <i>yet</i> in Organic Maps. But with <i>your help and support</i>, we can make better maps step by step.
|
|
||||||
|
|
||||||
Organic Maps is <b>pure and organic, made with love</b>:
|
|
||||||
|
|
||||||
• Blazing fast offline experience
|
|
||||||
• Respects your privacy
|
|
||||||
• Saves your battery
|
|
||||||
• No unexpected mobile data charges
|
|
||||||
• Simple to use, with only most important features included
|
|
||||||
|
|
||||||
Free from trackers and other bad stuff:
|
|
||||||
|
|
||||||
• No ads
|
|
||||||
• No tracking
|
|
||||||
• No data collection
|
|
||||||
• No phoning home
|
|
||||||
• No annoying registration
|
|
||||||
• No mandatory tutorials
|
|
||||||
• No noisy email spam
|
|
||||||
• No push notifications
|
|
||||||
• No crapware
|
|
||||||
• N̶o̶ ̶p̶e̶s̶t̶i̶c̶i̶d̶e̶s̶ Purely organic
|
|
||||||
|
|
||||||
At Organic Maps, we believe that <b>privacy is a fundamental human right</b>:
|
|
||||||
|
|
||||||
• Organic Maps is an indie community-driven open-source project
|
|
||||||
• We protect privacy from Big Tech's prying eyes
|
|
||||||
• Stay safe no matter wherever you are
|
|
||||||
|
|
||||||
Zero trackers and only minimally required permissions are found according to Exodus Privacy Report.
|
|
||||||
|
|
||||||
Please visit <b><i>organicmaps.app</i></b> website for additional details and FAQ, and contact us directly at @OrganicMapsApp in Telegram.
|
|
||||||
|
|
||||||
Reject surveillance - embrace your freedom.
|
|
||||||
<b>Give Organic Maps a try!</b>
|
|
||||||
@@ -1,8 +0,0 @@
|
|||||||
• New OpenStreetMap data as of February 27
|
|
||||||
• Ability to manually arrange intermediate route points
|
|
||||||
• Share a single selected track from the list
|
|
||||||
• Improved routing for bicycles
|
|
||||||
• Display a system notification when downloading maps and don't interrupt background downloads
|
|
||||||
• Added a flashing Track Recording widget
|
|
||||||
|
|
||||||
…more details at omaps.org/news
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
Open-source, community-driven maps for travelers, tourists, cyclists & hikers
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
Organic Maps: gps и навигиране
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
Organic Maps Offline Hike, Bike, GPS Navigation
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
https://www.youtube.com/watch?v=dK-CUuy82Uc
|
|
||||||
@@ -1,10 +0,0 @@
|
|||||||
Organic Maps হল একটি GPS নেভিগেশন অ্যাপ যার গোপনীয়তা রয়েছে, ড্রাইভার, হাইকার এবং সাইক্লিস্টদের জন্য। অ্যাপটিতে গোপনীয়তা সহ নেভিগেশন বৈশিষ্ট্য রয়েছে - কোন অবস্থান ট্র্যাকিং, কোন তথ্য সংগ্রহ এবং কোন বিজ্ঞাপন নেই। অনুসন্ধান, রাউটিং এবং নেভিগেশন সেল ফোন সিগন্যাল ছাড়াই কাজ করে, দূরবর্তী হাইকিং ট্রেইলে ভ্রমণের জন্য আদর্শ বা দুর্বল সংযোগ সহ অবস্থানগুলি। জৈব মানচিত্র সারা বিশ্ব থেকে অবদানকারীদের সাথে ক্রাউড-সোর্সড OpenStreetMap ডেটা ব্যবহার করে। প্রকল্পটি সম্প্রদায়-চালিত, কোডটি ওপেন সোর্স, এবং সম্প্রদায়ের উন্নয়ন এবং সহযোগিতাকে অগ্রাধিকার দেয়।
|
|
||||||
|
|
||||||
• কোন সেল সিগন্যাল প্রয়োজন নেই - অনুসন্ধান এবং একটি সংকেত ছাড়া রুট
|
|
||||||
• দক্ষ ব্যাটারি ব্যবহার - ব্যাটারি ড্রেন হ্রাস
|
|
||||||
• দ্রুত অনুসন্ধান - দ্রুত অবস্থান খুঁজুন
|
|
||||||
|
|
||||||
অর্গানিক ম্যাপে, আমরা গোপনীয়তাকে গুরুত্ব দিই:
|
|
||||||
• কোন অবস্থান ট্র্যাকিং
|
|
||||||
• কোন ডেটা সংগ্রহ নেই
|
|
||||||
• কোন বিজ্ঞাপন নেই
|
|
||||||
@@ -1,8 +0,0 @@
|
|||||||
• New OpenStreetMap data as of February 27
|
|
||||||
• Ability to manually arrange intermediate route points
|
|
||||||
• Share a single selected track from the list
|
|
||||||
• Improved routing for bicycles
|
|
||||||
• Display a system notification when downloading maps and don't interrupt background downloads
|
|
||||||
• Added a flashing Track Recording widget
|
|
||||||
|
|
||||||
…more details at omaps.org/news
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
গোপনীয়তার সাথে নেভিগেট করুন - সম্প্রদায়-চালিত এবং ওপেন-সোর্স
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
Organic Maps: হাইক বাইক ড্রাইভ
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
Organic Maps: হাইক, বাইক, ড্রাইভ অফলাইন
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
https://www.youtube.com/watch?v=dK-CUuy82Uc
|
|
||||||
@@ -1,52 +0,0 @@
|
|||||||
‣ La nostra aplicació gratuïta no té cap mena de publicitat ni us fa un seguiment.
|
|
||||||
‣ És millorada constantment durant el temps lliure dels seus usuaris i el nostre petit equip.
|
|
||||||
‣ Si hi ha res malament o inacabat al mapa, podeu arreglar-ho a l'<b>OpenStreetMap</b> i veureu els vostres canvis a la propera actualització dels mapes.
|
|
||||||
‣ Si la navegació o la cerca no funciona, envieu-nos un correu electrònic. Responem a <i>TOTS</i> els correus-e i ho solucionem tan aviat com es pugui.
|
|
||||||
|
|
||||||
<b>Els vostres comentaris i comentaris de 5 estrelles són els millors motivadors per a nosaltres!</b>
|
|
||||||
|
|
||||||
Característiques clau:
|
|
||||||
• Gratuït, de codi obert, sense anuncis, sense seguiment
|
|
||||||
• Mapes detallats fora de línia amb llocs que no existeixen a Google Maps, gràcies a la comunitat de l'<b>OpenStreetMap</b>
|
|
||||||
• Rutes amb bicicleta, rutes d'excursionisme i senderisme
|
|
||||||
• Corbes de nivell, perfils d'elevació, cims i pendents
|
|
||||||
• Passeig, bicicleta i navegació en cotxe amb guia de veu, Android Auto
|
|
||||||
• Cerca ràpida fora de línia
|
|
||||||
• Exportació i importació d'adreces d'interès en formats KML, KMZ i GPX
|
|
||||||
• Mode fosc per a protegir els ulls
|
|
||||||
|
|
||||||
No hi ha <i>de moment</i> transport públic, mapes per satèl·lit i altres funcions interessants a l'Organic Maps. Però amb <i>la vostra ajuda i suport</i>, podem millorar aquest món pas a pas.
|
|
||||||
|
|
||||||
L'Organic Maps és <b>pur i orgànic, fet amb amor</b>:
|
|
||||||
|
|
||||||
• Experiència fora de línia ràpida i brillant
|
|
||||||
• Respecta la vostra privadesa
|
|
||||||
• Estalvia la bateria
|
|
||||||
• Sense càrrecs inesperats de dades mòbils
|
|
||||||
• Fàcil d'utilitzar, amb només les funcions més importants incloses
|
|
||||||
|
|
||||||
Lliure de rastrejadors i altres coses dolentes:
|
|
||||||
|
|
||||||
• Sense anuncis
|
|
||||||
• Sense seguiment
|
|
||||||
• Sense recollida de dades
|
|
||||||
• Sense trucades per a vendre-us res
|
|
||||||
• Sense cap mena de registre
|
|
||||||
• Sense tutorials obligatoris
|
|
||||||
• Sense enviar-vos correu brossa
|
|
||||||
• Sense notificacions push
|
|
||||||
• Sense crapware
|
|
||||||
• So̶ns̶o̶ ̶p̶e̶s̶t̶i̶c̶i̶d̶e̶s̶ Purament orgànic
|
|
||||||
|
|
||||||
A Organic Maps, creiem que la privadesa <b> és un dret humà fonamental</b>:
|
|
||||||
|
|
||||||
• Organic Maps és un projecte de codi obert impulsat per la comunitat independent
|
|
||||||
• Protegim la privadesa de les mirades indiscretes de les grans multinacionals
|
|
||||||
• Estigueu segurs siguis on siguis
|
|
||||||
|
|
||||||
Segons l'informe de privadesa d'Exodus, no s'ha trobat cap rastrejador i s'utilitzen només els permisos mínims necessaris.
|
|
||||||
|
|
||||||
Per a més informació, visiteu el web <b><i>organicmaps.app</i></b> o bé contacteu-nos (en anglès) a @OrganicMapsApp al Telegram.
|
|
||||||
|
|
||||||
Rebutgeu la vigilància: accepteu la vostra llibertat.
|
|
||||||
<b>Proveu els mapes orgànics!</b>
|
|
||||||
@@ -1,8 +0,0 @@
|
|||||||
• New OpenStreetMap data as of February 27
|
|
||||||
• Ability to manually arrange intermediate route points
|
|
||||||
• Share a single selected track from the list
|
|
||||||
• Improved routing for bicycles
|
|
||||||
• Display a system notification when downloading maps and don't interrupt background downloads
|
|
||||||
• Added a flashing Track Recording widget
|
|
||||||
|
|
||||||
…more details at omaps.org/news
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
Mapes comunitaris i de codi obert per a turistes, ciclistes i excursionistes
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
Organic Maps GPS fora de línia
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
Organic Maps: GPS, senderisme i BTT sense dades
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
https://www.youtube.com/watch?v=dK-CUuy82Uc
|
|
||||||
@@ -1,53 +0,0 @@
|
|||||||
‣ Naše bezplatná aplikace vás nesleduje, neobsahuje reklamy a potřebuje vaši podporu.
|
|
||||||
‣ Je neustále vylepšována přispěvateli a naším malým týmem v našem volném čase.
|
|
||||||
‣ Pokud je na mapě něco špatně nebo na ní něco chybí, opravte to prosím na <b>OpenStreetMap</b>. Své změny uvidíte v pozdějších aktualizacích map.
|
|
||||||
‣ Pokud nefunguje navigace nebo vyhledávání, zkontrolujte to prosím nejprve na osm.org a až poté nám napište e-mail. Odpovídáme na <i>KAŽDÝ</i> e-mail a problémy opravujeme jak nejdříve můžeme.
|
|
||||||
|
|
||||||
<b>Vaše zpětná vazba a 5-hvězdičková hodnocení jsou pro nás nejlepší motivací!</b>
|
|
||||||
|
|
||||||
Klíčové funkce:
|
|
||||||
|
|
||||||
• Bezplatné, open-source, bez reklam, bez sledování
|
|
||||||
• Podrobné offline mapy s místy, které neexistují v Mapách Google, díky komunitě <b>OpenStreetMap</b>
|
|
||||||
• Cyklotrasy, turistické trasy a pěší stezky
|
|
||||||
• Vrstevnice, výškové profily, vrcholy a svahy
|
|
||||||
• Pěší, cyklistická a automobilová navigace krok po kroku s hlasovými pokyny a Android Auto
|
|
||||||
• Rychlý offline vyhledávač
|
|
||||||
• Export a import záložek a tras ve formátech KML, KMZ a GPX
|
|
||||||
• Tmavý režim pro ochranu vašich očí
|
|
||||||
|
|
||||||
Organic Maps <i>zatím</i> neobsahují cool vychytávky jako veřejnou dopravu nebo satelitní mapy, <i>s vaší pomocí a podporou</i> ale můžeme postupně mapy vylepšovat.
|
|
||||||
|
|
||||||
Aplikace Organic Maps je <b>čistá a organická, vytvořená s láskou</b>:
|
|
||||||
|
|
||||||
• Neskutečně rychlý offline zážitek
|
|
||||||
• Respektuje vaše soukromí
|
|
||||||
• Šetří vaší baterii
|
|
||||||
• Žádné neočekávané poplatky za mobilní data
|
|
||||||
• Je jednoduchá na používání, obsahuje pouze nejdůležitější funkce
|
|
||||||
|
|
||||||
Neobsahuje sledovací prvky a další špatnosti:
|
|
||||||
|
|
||||||
• Žádné reklamy
|
|
||||||
• Žádné sledování
|
|
||||||
• Žádné sbírání dat
|
|
||||||
• Žádné volání domů
|
|
||||||
• Žádná otravná registrace
|
|
||||||
• Žádné povinné tutoriály
|
|
||||||
• Žádný e-mailový spam
|
|
||||||
• Žádná vyskakovací oznámení
|
|
||||||
• Žádný crapware
|
|
||||||
• Ž̶á̶d̶n̶é̶ ̶p̶e̶s̶t̶i̶c̶i̶d̶y̶ Plně organické
|
|
||||||
|
|
||||||
V Organic Maps věříme, že <b>soukromí je základní lidské právo</b>:
|
|
||||||
|
|
||||||
• Organic Maps jsou nezávislý komunitní open-source projekt
|
|
||||||
• Chráníme vaše soukromí před zvědavýma očima Big Tech firem
|
|
||||||
• Nezávisle na vašem umístění jste v bezpečí
|
|
||||||
|
|
||||||
Podle hlášení Exodus Privacy neobsahuje aplikace žádné sledovací prvky a vyžaduje pouze minimální množství oprávnění.
|
|
||||||
|
|
||||||
Pro další podrobnosti a často kladené dotazy prosím navštivte webové stránky <b><i>organicmaps.app</i></b>. Kontaktovat nás můžete přes @OrganicMapsApp na Telegramu.
|
|
||||||
|
|
||||||
Odmítněte sledování - přijměte svou svobodu.
|
|
||||||
<b>Vyzkoušejte Organic Maps!</b>
|
|
||||||
@@ -1,8 +0,0 @@
|
|||||||
• New OpenStreetMap data as of February 27
|
|
||||||
• Ability to manually arrange intermediate route points
|
|
||||||
• Share a single selected track from the list
|
|
||||||
• Improved routing for bicycles
|
|
||||||
• Display a system notification when downloading maps and don't interrupt background downloads
|
|
||||||
• Added a flashing Track Recording widget
|
|
||||||
|
|
||||||
…more details at omaps.org/news
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
Navigace s ochranou soukromí - vedená komunitou a open-source
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
Organic Maps: pěšky kolo auto
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
Organic Maps: pěšky, na kole a autem offline
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
https://www.youtube.com/watch?v=dK-CUuy82Uc
|
|
||||||
@@ -1,53 +0,0 @@
|
|||||||
‣ Our free app does not track you, does not have ads, and it needs your support.
|
|
||||||
‣ It is constantly being improved by contributors and our small team, in our free time.
|
|
||||||
‣ If something is wrong or missing on the map, please fix it in <b>OpenStreetMap</b> and see your changes in the future maps update.
|
|
||||||
‣ If navigation or search doesn't work, please check it on osm.org first, and then email us. We reply to <i>EVERY</i> email, and we'll fix it ASAP!
|
|
||||||
|
|
||||||
<b>Your feedback and 5-star reviews are the best motivators for us!</b>
|
|
||||||
|
|
||||||
Key features:
|
|
||||||
|
|
||||||
• Free, open-source, no ads, no tracking
|
|
||||||
• Detailed offline maps with places that don't exist on Google maps, thanks to the <b>OpenStreetMap</b> community
|
|
||||||
• Cycling routes, hiking trails, and walking paths
|
|
||||||
• Contour lines, elevation profiles, peaks, and slopes
|
|
||||||
• Turn-by-turn walking, cycling, and car navigation with voice guidance and Android Auto
|
|
||||||
• Fast offline search
|
|
||||||
• Bookmarks and tracks export and import in KML, KMZ, GPX formats
|
|
||||||
• Dark mode to protect your eyes
|
|
||||||
|
|
||||||
There is no public transport, satellite maps, and other cool features <i>yet</i> in Organic Maps. But with <i>your help and support</i>, we can make better maps step by step.
|
|
||||||
|
|
||||||
Organic Maps is <b>pure and organic, made with love</b>:
|
|
||||||
|
|
||||||
• Blazing fast offline experience
|
|
||||||
• Respects your privacy
|
|
||||||
• Saves your battery
|
|
||||||
• No unexpected mobile data charges
|
|
||||||
• Simple to use, with only most important features included
|
|
||||||
|
|
||||||
Free from trackers and other bad stuff:
|
|
||||||
|
|
||||||
• No ads
|
|
||||||
• No tracking
|
|
||||||
• No data collection
|
|
||||||
• No phoning home
|
|
||||||
• No annoying registration
|
|
||||||
• No mandatory tutorials
|
|
||||||
• No noisy email spam
|
|
||||||
• No push notifications
|
|
||||||
• No crapware
|
|
||||||
• N̶o̶ ̶p̶e̶s̶t̶i̶c̶i̶d̶e̶s̶ Purely organic
|
|
||||||
|
|
||||||
At Organic Maps, we believe that <b>privacy is a fundamental human right</b>:
|
|
||||||
|
|
||||||
• Organic Maps is an indie community-driven open-source project
|
|
||||||
• We protect privacy from Big Tech's prying eyes
|
|
||||||
• Stay safe no matter wherever you are
|
|
||||||
|
|
||||||
Zero trackers and only minimally required permissions are found according to Exodus Privacy Report.
|
|
||||||
|
|
||||||
Please visit <b><i>organicmaps.app</i></b> website for additional details and FAQ, and contact us directly at @OrganicMapsApp in Telegram.
|
|
||||||
|
|
||||||
Reject surveillance - embrace your freedom.
|
|
||||||
<b>Give Organic Maps a try!</b>
|
|
||||||
@@ -1,8 +0,0 @@
|
|||||||
• New OpenStreetMap data as of February 27
|
|
||||||
• Ability to manually arrange intermediate route points
|
|
||||||
• Share a single selected track from the list
|
|
||||||
• Improved routing for bicycles
|
|
||||||
• Display a system notification when downloading maps and don't interrupt background downloads
|
|
||||||
• Added a flashing Track Recording widget
|
|
||||||
|
|
||||||
…more details at omaps.org/news
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
Open-source, community-driven maps for travelers, tourists, cyclists & hikers
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
Offline Organic Maps Hike Bike
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
Organic Maps Offline Hike, Bike, GPS Navigation
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
https://www.youtube.com/watch?v=dK-CUuy82Uc
|
|
||||||
@@ -1,53 +0,0 @@
|
|||||||
‣ Unsere kostenlose App trackt niemanden, enthält keine Werbung und braucht deine Unterstützung.
|
|
||||||
‣ Sie wird ständig von Mitwirkenden und unserem kleinen Team verbessert, in unserer Freizeit.
|
|
||||||
‣ Wenn etwas auf der Karte falsch ist oder fehlt, dann korrigiere es bitte in <b>OpenStreetMap</b> und sieh deine Änderungen in der zukünftigen Kartenaktualisierung.
|
|
||||||
‣ Sollte die Navigation oder die Suche nicht funktionieren, sende uns bitte eine E-Mail. Wir antworten auf <i>JEDE</i> E-Mail und werden das Problem so schnell wie möglich beheben!
|
|
||||||
|
|
||||||
<b>Dein Feedback und deine 5-Sterne-Bewertungen sind die beste Motivation für uns!</b>
|
|
||||||
|
|
||||||
Wichtigste Funktionen:
|
|
||||||
|
|
||||||
• Kostenlos, Open-Source, keine Werbung, kein Tracking
|
|
||||||
• Detaillierte Offline-Karten mit Orten, die es auf anderen Karten nicht gibt, dank an die <b>OpenStreetMap</b> Community
|
|
||||||
• Rad-, Wander- und Spazierwege
|
|
||||||
• Höhenlinien, Höhenprofile, Bergspitzen und Steigungen
|
|
||||||
• Schritt-für-Schritt-Navigation für Fußgänger, Radfahrer und Autos mit Sprachführung
|
|
||||||
• Schnelle Offlinesuche
|
|
||||||
• Export und Import von Lesezeichen im KML, KMZ, GPX-Format
|
|
||||||
• Dunkler Modus zum Schutz deiner Augen
|
|
||||||
|
|
||||||
Öffentlichen Verkehrsmittel, Satellitenbildkarten und viele weitere wichtige Merkmale werden <i>noch</i> nicht unterstützt. Aber mit <i>deiner Hilfe und Unterstützung</i> können wir diese Welt und unsere Karten Schritt für Schritt besser machen.
|
|
||||||
|
|
||||||
Organic Maps ist <b>rein, organisch und mit Liebe gemacht</b>:
|
|
||||||
|
|
||||||
• Rasend schnelle Offline-Erfahrung
|
|
||||||
• Respektiert deine Privatsphäre
|
|
||||||
• Schont deinen Akku
|
|
||||||
• Keine unerwarteten Gebühren für mobile Daten
|
|
||||||
• Einfach zu bedienen, nur die wichtigsten Funktionen integriert
|
|
||||||
|
|
||||||
Frei von Trackern und schlechten Dingen:
|
|
||||||
|
|
||||||
• Keine Werbung
|
|
||||||
• Kein Tracking
|
|
||||||
• Keine Datenerfassung
|
|
||||||
• Kein Telefonieren nach Hause
|
|
||||||
• Keine lästige Registrierung
|
|
||||||
• Keine obligatorischen Tutorials
|
|
||||||
• Kein lästiger E-Mail-Spam
|
|
||||||
• Keine Push-Benachrichtigungen
|
|
||||||
• Keine Crapware
|
|
||||||
• -K̶e̶i̶n̶e̶ ̶P̶e̶s̶t̶i̶z̶i̶d̶e̶ Rein organisch
|
|
||||||
|
|
||||||
Wir bei Organic Maps glauben, dass <b>Privatsphäre ein grundlegendes Menschenrecht</b> ist:
|
|
||||||
|
|
||||||
• Organic Maps ist ein von einer unabhängigen Gemeinschaft betriebenes Open-Source-Projekt
|
|
||||||
• Wir schützen deine Privatsphäre vor den neugierigen Augen der großen Technologiekonzerne
|
|
||||||
• Bleib sicher, egal wo du bist
|
|
||||||
|
|
||||||
Keine Tracker und nur minimal erforderliche Berechtigungen sind laut dem Exodus-Datenschutzbericht vorhanden.
|
|
||||||
|
|
||||||
Bitte besuche <b><i>organicmaps.app</i></b> Webseite für weitere Details und ein FAQ. Oder kontaktiere uns direkt unter @OrganicMapsApp in Telegram.
|
|
||||||
|
|
||||||
Lehne Überwachung ab - lebe deine Freiheit.
|
|
||||||
<b>Teste Organic Maps!</b>
|
|
||||||
@@ -1,8 +0,0 @@
|
|||||||
• Neue OpenStreetMap-Daten vom 27. Februar
|
|
||||||
• Möglichkeit, Zwischenroutenpunkte manuell zu arrangieren
|
|
||||||
• Einen einzelnen ausgewählten Track aus der Liste teilen
|
|
||||||
• Verbesserte Routenführung für Fahrräder
|
|
||||||
• Beim Herunterladen von Karten eine Systembenachrichtigung anzeigen und Hintergrunddownloads nicht unterbrechen
|
|
||||||
• Ein blinkendes Trackaufzeichnungs-Widget hinzugefügt
|
|
||||||
|
|
||||||
…weitere Details unter omaps.org/news
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
Navigieren mit Datenschutz - Community-gesteuert & Open-Source
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
Organic Maps Offline Karten
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
Organic Maps Offline Wandern, Radfahren, GPS-Navi
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
https://www.youtube.com/watch?v=dK-CUuy82Uc
|
|
||||||
@@ -1,10 +0,0 @@
|
|||||||
Το Organic Maps είναι μια εφαρμογή πλοήγησης GPS με απόρρητο, για οδηγούς, πεζοπόρους και ποδηλάτες. Η εφαρμογή διαθέται πλοήγηση με απόρρητο - χωρίς παρακολούθηση τοποθεσίας, χωρίς συλλογή δεδομένων και χωρίς διαφημίσεις. Η αναζήτηση, η δρομολόγηση και η πλοήγηση λειτουργούν χωρίς σήμα κινητού τηλεφώνου, ιδανικά για ταξίδι σε μακρινά μονοπάτια πεζοπορίας ή τοποθεσίες με κακές συνδέσεις. Το Organic Maps χρησιμοποιεί τα crowd-sourced δεδομένα του OpenStreetMap με συνεισφέροντες απ' όλη την υφήλιο. Το έργο βασίζεται στην κοινότητα, ο κώδικας είναι ανοιχτού κώδικα, και δίνει προτεραιότητα στην ανάπτυξη και τη συνεργασία της κοινότητας.
|
|
||||||
|
|
||||||
• Δεν Απαιτείται Σήμα Κινητής - Αναζήτηση & δρομολόγηση χωρίς σήμα
|
|
||||||
• Αποτελεσματική Χρήση Μπαταρίας - Μειωμένη αποστράγγιση μπαταρίας
|
|
||||||
• Γρήγορη Αναζήτηση - Βρείτε γρήγορα τοποθεσίες
|
|
||||||
|
|
||||||
Στο Organic Maps, εκτιμούμε το απόρρητο:
|
|
||||||
• Όχι Παρακολούθηση Τοποθεσίας
|
|
||||||
• Όχι Συλλογή Δεδομένων
|
|
||||||
• Όχι Διαφημίσεις
|
|
||||||
@@ -1,8 +0,0 @@
|
|||||||
• New OpenStreetMap data as of February 27
|
|
||||||
• Ability to manually arrange intermediate route points
|
|
||||||
• Share a single selected track from the list
|
|
||||||
• Improved routing for bicycles
|
|
||||||
• Display a system notification when downloading maps and don't interrupt background downloads
|
|
||||||
• Added a flashing Track Recording widget
|
|
||||||
|
|
||||||
…more details at omaps.org/news
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
Navigate with Privacy - Community-Driven & Open-Source
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
Organic Maps: Hike Bike Drive
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
Organic Maps: Hike, Bike, Drive Offline
|
|
||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user