mirror of
https://codeberg.org/comaps/comaps
synced 2025-12-19 13:03:36 +00:00
Compare commits
199 Commits
squashed-h
...
release/20
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
606a21ef83 | ||
|
|
307a6cc74f | ||
|
|
2727ed2749 | ||
|
|
b495df820a | ||
|
|
4c0dfc9500 | ||
|
|
a1df16f2ef | ||
|
|
22b3d5e49e | ||
|
|
42070e673d | ||
|
|
e8e87ee2cf | ||
|
|
b2a215431d | ||
|
|
18ccb85c98 | ||
|
|
0fcfee86fb | ||
|
|
ea881db7ea | ||
|
|
66457cd0b1 | ||
|
|
e464d37cd3 | ||
|
|
042088dc46 | ||
|
|
34f4a124d1 | ||
|
|
e2d850d76c | ||
|
|
2c234041e4 | ||
|
|
90e26ffac8 | ||
|
|
0bfb435aaf | ||
|
|
2f75d3c5a8 | ||
|
|
9fb3a509dc | ||
|
|
648fb55130 | ||
|
|
8a331c4c67 | ||
|
|
7be49ab00a | ||
|
|
2299de287f | ||
|
|
57fefda452 | ||
|
|
3ea15439dd | ||
|
|
f912555b76 | ||
|
|
220def168d | ||
|
|
377861f7d0 | ||
|
|
9c392d3160 | ||
|
|
96c24cf973 | ||
|
|
09171651ff | ||
|
|
3525f36919 | ||
|
|
7117a1b954 | ||
|
|
6a488a08a0 | ||
|
|
79a5ba5609 | ||
|
|
18f3d27157 | ||
|
|
335a474bb2 | ||
|
|
09096ac3a3 | ||
|
|
6649c8f92a | ||
|
|
aea3fb29ed | ||
|
|
362154aedb | ||
|
|
daab819110 | ||
|
|
1454b3c364 | ||
|
|
8ed99802ac | ||
|
|
0860f2d69b | ||
|
|
2e37416a43 | ||
|
|
a81bd5cd46 | ||
|
|
2a2eb9dfc9 | ||
|
|
964065a7b6 | ||
|
|
0edd732846 | ||
|
|
3032eb6dfe | ||
|
|
c4ca4c907b | ||
|
|
a8349ffa85 | ||
|
|
ca1776ee9f | ||
|
|
536c11079d | ||
|
|
315ad5fa41 | ||
|
|
3a6257346f | ||
|
|
7f0b97e6f8 | ||
|
|
16c89c1007 | ||
|
|
b669aea415 | ||
|
|
f22abdf64d | ||
|
|
9a3a7c3968 | ||
|
|
871860d53a | ||
|
|
f2d87979d1 | ||
|
|
1199ca3113 | ||
|
|
094221cb1c | ||
|
|
5d0a43cbe9 | ||
|
|
44eca9ab5e | ||
|
|
7df2188212 | ||
|
|
3952f34d7f | ||
|
|
499052fc27 | ||
|
|
1af371bf07 | ||
|
|
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
|
||||
IndentWidth: 2
|
||||
BreakBeforeBraces: Allman
|
||||
ColumnLimit: 120
|
||||
|
||||
---
|
||||
Language: Cpp
|
||||
AccessModifierOffset: -2
|
||||
AllowShortBlocksOnASingleLine: false
|
||||
AlignOperands: AlignAfterOperator
|
||||
AllowShortBlocksOnASingleLine: Empty
|
||||
AllowShortIfStatementsOnASingleLine: Never
|
||||
AllowShortLoopsOnASingleLine: false
|
||||
AllowShortCaseLabelsOnASingleLine: true
|
||||
AllowShortFunctionsOnASingleLine: true
|
||||
AllowShortIfStatementsOnASingleLine: false
|
||||
AllowShortLoopsOnASingleLine: false
|
||||
BreakConstructorInitializersBeforeComma: true
|
||||
ConstructorInitializerIndentWidth: 2
|
||||
DerivePointerAlignment: false
|
||||
IndentCaseLabels: false
|
||||
NamespaceIndentation: None
|
||||
PointerAlignment: Middle
|
||||
SortIncludes: true
|
||||
Standard: c++20
|
||||
IncludeBlocks: Regroup
|
||||
IncludeCategories:
|
||||
# Tests --------------------------------------------------------------------------------------------
|
||||
- Regex: '^"track_analyzing/track_analyzing_tests/'
|
||||
Priority: 4730
|
||||
|
||||
- Regex: '^"poly_borders/poly_borders_tests/'
|
||||
Priority: 4740
|
||||
|
||||
- Regex: '^"generator/generator_integration_tests/'
|
||||
Priority: 4750
|
||||
- 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
|
||||
BraceWrapping:
|
||||
AfterCaseLabel: true
|
||||
AfterClass: true
|
||||
AfterControlStatement: Always
|
||||
AfterEnum: true
|
||||
AfterFunction: true
|
||||
AfterNamespace: true
|
||||
AfterObjCDeclaration: true
|
||||
AfterStruct: true
|
||||
AfterUnion: true
|
||||
AfterExternBlock: true
|
||||
BeforeCatch: true
|
||||
BeforeElse: true
|
||||
BeforeLambdaBody: true
|
||||
BeforeWhile: true
|
||||
IndentBraces: false
|
||||
SplitEmptyFunction: false
|
||||
SplitEmptyRecord: false
|
||||
SplitEmptyNamespace: false
|
||||
BreakBeforeBraces: Custom
|
||||
BreakConstructorInitializers: BeforeComma
|
||||
BreakInheritanceList: BeforeComma
|
||||
ColumnLimit: 120
|
||||
CompactNamespaces: false
|
||||
ConstructorInitializerAllOnOneLineOrOnePerLine: true
|
||||
ConstructorInitializerIndentWidth: 4
|
||||
ConstructorInitializerIndentWidth: 2
|
||||
ContinuationIndentWidth: 2
|
||||
Cpp11BracedListStyle: true
|
||||
DerivePointerAlignment: false
|
||||
DisableFormat: false
|
||||
ExperimentalAutoDetectBinPacking: false
|
||||
FixNamespaceComments: true
|
||||
ForEachMacros:
|
||||
- foreach
|
||||
- Q_FOREACH
|
||||
- BOOST_FOREACH
|
||||
IncludeBlocks: Preserve
|
||||
IncludeCategories:
|
||||
- Regex: '^<.*\.h>'
|
||||
Priority: 1
|
||||
- Regex: '^<.*'
|
||||
Priority: 2
|
||||
- Regex: '.*'
|
||||
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
|
||||
IndentCaseLabels: false
|
||||
IndentExternBlock: NoIndent
|
||||
InsertNewlineAtEOF: true
|
||||
PackConstructorInitializers: Never
|
||||
PointerAlignment: Middle
|
||||
QualifierAlignment: Right
|
||||
SpacesInContainerLiterals: false
|
||||
SpacesInCStyleCastParentheses: false
|
||||
SpacesInParentheses: false
|
||||
SpacesInSquareBrackets: false
|
||||
Standard: Auto
|
||||
TabWidth: 8
|
||||
Standard: Latest
|
||||
TabWidth: 2
|
||||
UseTab: Never
|
||||
|
||||
@@ -49,13 +49,13 @@
|
||||
/docs/STYLES.md
|
||||
/tools/kothic/ @organicmaps/styles
|
||||
# DevOps.
|
||||
/.github/workflows @organicmaps/devops
|
||||
/.forgejo/workflows @organicmaps/devops
|
||||
/android/*gradle* @organicmaps/devops
|
||||
/docs/RELEASE_MANAGEMENT.md @organicmaps/devops
|
||||
/xcode/fastlane/ @organicmaps/devops
|
||||
# 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/google/play/ @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
|
||||
push:
|
||||
branches:
|
||||
- master
|
||||
- main
|
||||
paths-ignore:
|
||||
- .gitignore
|
||||
- .github/**
|
||||
- '!.github/workflows/android-beta.yaml' # Run check on self change
|
||||
- .forgejo/**
|
||||
- '!.forgejo/workflows/android-beta.yaml' # Run check on self change
|
||||
- '**/*_tests/**'
|
||||
- '**/CMakeLists.txt'
|
||||
- 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
|
||||
@@ -12,19 +12,12 @@ jobs:
|
||||
environment: production
|
||||
steps:
|
||||
- name: Checkout sources
|
||||
# TODO: use shallow (and sparse?) checkout
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Parallel submodules checkout
|
||||
shell: bash
|
||||
run: git submodule update --depth 1 --init --recursive --jobs=$(($(nproc) * 20))
|
||||
|
||||
- name: Checkout screenshots
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
repository: ${{ secrets.SCREENSHOTS_REPO }}
|
||||
ssh-key: ${{ secrets.SCREENSHOTS_SSH_KEY }}
|
||||
ref: master
|
||||
path: screenshots
|
||||
# - name: Parallel submodules checkout
|
||||
# shell: bash
|
||||
# run: git submodule update --depth 1 --init --recursive --jobs=$(($(nproc) * 20))
|
||||
|
||||
- name: Restore release keys
|
||||
shell: bash
|
||||
@@ -37,6 +30,6 @@ jobs:
|
||||
|
||||
- name: Upload
|
||||
shell: bash
|
||||
run: ./gradlew prepareGoogleReleaseListing publishGoogleReleaseListing
|
||||
run: ./gradlew publishGoogleReleaseListing
|
||||
working-directory: android
|
||||
timeout-minutes: 5
|
||||
@@ -97,7 +97,7 @@ jobs:
|
||||
with:
|
||||
repository: ${{ secrets.SCREENSHOTS_REPO }}
|
||||
ssh-key: ${{ secrets.SCREENSHOTS_SSH_KEY }}
|
||||
ref: master
|
||||
ref: main
|
||||
path: screenshots
|
||||
|
||||
- name: Restore release keys
|
||||
@@ -156,7 +156,7 @@ jobs:
|
||||
cat ${{ env.RELEASE_NOTES }}
|
||||
echo ""
|
||||
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 "sha256sum:"
|
||||
echo -e '\n```'
|
||||
@@ -164,7 +164,7 @@ jobs:
|
||||
echo -e '\n```'
|
||||
} > ${{ runner.temp }}/release-notes.txt
|
||||
|
||||
- name: Upload universal APK to GitHub
|
||||
- name: Upload universal APK to Codeberg
|
||||
uses: softprops/action-gh-release@v1
|
||||
if: ${{ matrix.flavor == 'web' }}
|
||||
with:
|
||||
@@ -4,7 +4,7 @@ on:
|
||||
pull_request:
|
||||
paths:
|
||||
- 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:
|
||||
validate-appstream:
|
||||
@@ -4,7 +4,7 @@ on:
|
||||
pull_request:
|
||||
paths:
|
||||
- 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:
|
||||
validate-desktop-file:
|
||||
@@ -3,11 +3,11 @@ on:
|
||||
workflow_dispatch: # Manual trigger
|
||||
push:
|
||||
branches:
|
||||
- master
|
||||
- main
|
||||
paths-ignore:
|
||||
- .gitignore
|
||||
- .github/**
|
||||
- '!.github/workflows/ios-beta.yaml' # Run check on self change
|
||||
- .forgejo/**
|
||||
- '!.forgejo/workflows/ios-beta.yaml' # Run check on self change
|
||||
- '**/*_tests/**'
|
||||
- '**/CMakeLists.txt'
|
||||
- CONTRIBUTORS
|
||||
@@ -3,7 +3,7 @@ on:
|
||||
workflow_dispatch: # Manual trigger
|
||||
pull_request:
|
||||
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/**
|
||||
- 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:
|
||||
repository: ${{ secrets.SCREENSHOTS_REPO }}
|
||||
ssh-key: ${{ secrets.SCREENSHOTS_SSH_KEY }}
|
||||
ref: master
|
||||
ref: main
|
||||
path: screenshots
|
||||
|
||||
- name: Checkout keywords
|
||||
@@ -37,7 +37,7 @@ jobs:
|
||||
with:
|
||||
repository: ${{ secrets.KEYWORDS_REPO }}
|
||||
ssh-key: ${{ secrets.KEYWORDS_SSH_KEY }}
|
||||
ref: master
|
||||
ref: main
|
||||
path: keywords
|
||||
|
||||
- name: Update metadata
|
||||
@@ -3,7 +3,7 @@ on:
|
||||
workflow_dispatch: # Manual trigger
|
||||
push:
|
||||
branches:
|
||||
- master
|
||||
- main
|
||||
pull_request:
|
||||
paths-ignore:
|
||||
- .gitignore
|
||||
@@ -3,12 +3,12 @@ on:
|
||||
workflow_dispatch: # Manual trigger
|
||||
push:
|
||||
branches:
|
||||
- master
|
||||
- main
|
||||
pull_request:
|
||||
paths-ignore:
|
||||
- .gitignore
|
||||
- .github/**
|
||||
- '!.github/workflows/macos-check.yaml' # Run check on self change
|
||||
- .forgejo/**
|
||||
- '!.forgejo/workflows/macos-check.yaml' # Run check on self change
|
||||
- CONTRIBUTORS
|
||||
- LICENSE
|
||||
- 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.
|
||||
61
.github/workflows/android-check.yaml
vendored
61
.github/workflows/android-check.yaml
vendored
@@ -3,36 +3,7 @@ on:
|
||||
workflow_dispatch: # Manual trigger
|
||||
push:
|
||||
branches:
|
||||
- master
|
||||
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/**
|
||||
- main
|
||||
|
||||
env:
|
||||
JAVA_HOME: /usr/lib/jvm/temurin-17-jdk-amd64 # Java 17 is required for Android Gradle 8 plugin
|
||||
@@ -51,9 +22,9 @@ jobs:
|
||||
shell: bash
|
||||
run: git submodule update --depth 1 --init --recursive --jobs=$(($(nproc) * 20))
|
||||
|
||||
- name: Configure repository
|
||||
- name: Init boost, generate textures
|
||||
shell: bash
|
||||
run: ./configure.sh
|
||||
run: ./configure.sh --skip-map-download
|
||||
|
||||
- name: Lint
|
||||
shell: bash
|
||||
@@ -61,14 +32,14 @@ jobs:
|
||||
run: ./gradlew -Pandroidauto=true lint
|
||||
|
||||
android-check:
|
||||
name: Build Android Debug
|
||||
name: Build Android apps
|
||||
runs-on: ubuntu-latest
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
flavor: [WebDebug, FdroidDebug]
|
||||
flavor: [WebBeta, FdroidDebug]
|
||||
include:
|
||||
- flavor: WebDebug
|
||||
- flavor: WebBeta
|
||||
arch: arm64
|
||||
- flavor: FdroidDebug
|
||||
arch: arm32
|
||||
@@ -82,7 +53,19 @@ jobs:
|
||||
shell: bash
|
||||
run: |
|
||||
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
|
||||
uses: actions/checkout@v4
|
||||
@@ -93,9 +76,9 @@ jobs:
|
||||
shell: bash
|
||||
run: git submodule update --depth 1 --init --recursive --jobs=$(($(nproc) * 20))
|
||||
|
||||
- name: Configure repository
|
||||
- name: Init boost, generate textures
|
||||
shell: bash
|
||||
run: ./configure.sh
|
||||
run: ./configure.sh --skip-map-download
|
||||
|
||||
- name: Configure ccache
|
||||
uses: hendrikmuhs/ccache-action@v1.2
|
||||
@@ -117,5 +100,5 @@ jobs:
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
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
|
||||
|
||||
39
.github/workflows/ios-check.yaml
vendored
39
.github/workflows/ios-check.yaml
vendored
@@ -3,34 +3,7 @@ on:
|
||||
workflow_dispatch: # Manual trigger
|
||||
push:
|
||||
branches:
|
||||
- master
|
||||
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/**
|
||||
- main
|
||||
|
||||
jobs:
|
||||
ios-check:
|
||||
@@ -41,7 +14,7 @@ jobs:
|
||||
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
|
||||
TEST_RESULTS_BUNDLE_NAME: CoMaps-Test-Results
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
@@ -52,6 +25,12 @@ jobs:
|
||||
cancel-in-progress: true
|
||||
|
||||
steps:
|
||||
- name: Install dependencies
|
||||
run: |
|
||||
brew install qt \
|
||||
freetype \
|
||||
harfbuzz \
|
||||
optipng
|
||||
- name: Checkout sources
|
||||
uses: actions/checkout@v4
|
||||
|
||||
@@ -59,7 +38,7 @@ jobs:
|
||||
shell: bash
|
||||
run: git submodule update --depth 1 --init --recursive --jobs=$(($(sysctl -n hw.logicalcpu) * 20))
|
||||
|
||||
- name: Configure repository
|
||||
- name: Init boost, download World map, generate textures
|
||||
shell: bash
|
||||
run: ./configure.sh
|
||||
|
||||
|
||||
16
.gitignore
vendored
16
.gitignore
vendored
@@ -16,11 +16,16 @@ screenlog.0
|
||||
|
||||
data/styles/*/*/out/*
|
||||
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/colors_design.txt
|
||||
data/patterns_design.txt
|
||||
data/bookmarks
|
||||
data/edits.xml
|
||||
data/World.mwm
|
||||
data/WorldCoasts.mwm
|
||||
|
||||
# Compiled Python
|
||||
*.pyc
|
||||
@@ -134,10 +139,7 @@ private.h
|
||||
android/release.keystore
|
||||
android/secure.properties
|
||||
android/libnotify.properties
|
||||
android/google-services.json
|
||||
android/google-play.json
|
||||
android/firebase-app-distribution.json
|
||||
android/firebase-test-lab.json
|
||||
android/huawei-appgallery.json
|
||||
android/res/xml/network_security_config.xml
|
||||
./server/
|
||||
@@ -173,6 +175,7 @@ tools/python/*/venv/
|
||||
# Configs
|
||||
tools/python/maps_generator/var/etc/map_generator.ini
|
||||
tools/python/routing/etc/*.ini
|
||||
tools/unix/maps/settings.sh
|
||||
|
||||
# Helpers
|
||||
/node_modules/
|
||||
@@ -183,9 +186,4 @@ tools/python/routing/etc/*.ini
|
||||
|
||||
# VS Code
|
||||
.vscode
|
||||
|
||||
# AppStore metadata
|
||||
screenshots/
|
||||
android/src/google/play/listings/
|
||||
keywords/
|
||||
iphone/metadata/**/keywords.txt
|
||||
.cache
|
||||
|
||||
2
.gitmodules
vendored
2
.gitmodules
vendored
@@ -31,7 +31,7 @@
|
||||
url = https://github.com/unicode-org/icu.git
|
||||
[submodule "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"]
|
||||
path = 3party/googletest
|
||||
url = https://github.com/google/googletest.git
|
||||
|
||||
@@ -11,6 +11,9 @@ set(CMAKE_C_VISIBILITY_PRESET hidden)
|
||||
set(CMAKE_CXX_VISIBILITY_PRESET hidden)
|
||||
set(CMAKE_VISIBILITY_INLINES_HIDDEN ON)
|
||||
|
||||
# Disable build-id generation to make builds reproducible.
|
||||
add_link_options("LINKER:--build-id=none")
|
||||
|
||||
# Fixes warning ld: warning: ignoring duplicate libraries on Mac and Windows.
|
||||
if (POLICY CMP0156)
|
||||
cmake_policy(SET CMP0156 NEW)
|
||||
@@ -247,7 +250,7 @@ set(LIBRARY_OUTPUT_PATH ${CMAKE_CURRENT_BINARY_DIR})
|
||||
if (PLATFORM_LINUX OR PLATFORM_ANDROID)
|
||||
find_program(LLD_FOUND ld.lld)
|
||||
if (LLD_FOUND)
|
||||
message(STATUS "Using ld.ldd linker")
|
||||
message(STATUS "Using ld.lld linker")
|
||||
set(CMAKE_EXE_LINKER_FLAGS "-fuse-ld=lld")
|
||||
else()
|
||||
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.
|
||||
Feel free to add yourself here along with your first contribution!
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
CoMaps contributors:
|
||||
(in alphabetic order)
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
Organic Maps (formerly OMaps) contributors:
|
||||
(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 2024 Organic Maps Contributors
|
||||
Copyright 2025 Organic Maps Contributors
|
||||
Copyright 2025 CoMaps Contributors
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
|
||||
234
README.md
234
README.md
@@ -1,185 +1,125 @@
|
||||
<div align="center">
|
||||
<!--<div align="center">
|
||||
<img src="qt/res/logo.png" height="100"/>
|
||||
</div>
|
||||
<h1 align="center"">Organic Maps</h1>
|
||||
</div>-->
|
||||
|
||||
[Organic Maps](https://organicmaps.app) is a free Android & iOS offline maps app for travellers, tourists, drivers, hikers, and cyclists.
|
||||
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.
|
||||
No ads, no tracking, no data collection, no crapware. Your [donations](https://organicmaps.app/donate/) and positive reviews motivate and inspire us, thanks ❤️!
|
||||
<!-- a nav bar -->
|
||||
[Project Intro](https://codeberg.org/comaps#comaps)
|
||||
| [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)
|
||||
[<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/)
|
||||
# [CoMaps](https://comaps.app) – Hike, Bike, Drive Offline – Easy Map Navigation with Privacy
|
||||
|
||||
[
|
||||

|
||||
](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">
|
||||
<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/2.jpg" width="400" />
|
||||
<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/4.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="180" />
|
||||
<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="180" />
|
||||
</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)
|
||||
- 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
|
||||
**Simple and Polished**: essential easy to use features that just work.
|
||||
|
||||
## 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
|
||||
- Saves your battery
|
||||
- No unexpected mobile data charges
|
||||
**Open and Transparent Decision-making and Financials, Not-for-profit and Fully Open Source.**
|
||||
|
||||
Organic Maps is free from trackers and other bad stuff:
|
||||
### Main Features
|
||||
|
||||
- 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
|
||||
- ~~No pesticides~~ Purely organic!
|
||||
- Downloadable detailed maps with places which are not available with Google Maps
|
||||
|
||||
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">
|
||||
</a>
|
||||
- Walking paths and cycleways
|
||||
|
||||
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">
|
||||
</a>
|
||||
- Search by name or an address or by point of interest category
|
||||
|
||||
<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">
|
||||
<img src="docs/privacy/om.jpg" width="400">
|
||||
<img src="docs/privacy/mm.jpg" width="400">
|
||||
</p>
|
||||
- Offline Wikipedia articles
|
||||
|
||||
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
|
||||
- We protect your privacy from Big Tech's prying eyes
|
||||
- Stay safe no matter where you are
|
||||
- Track recording
|
||||
|
||||
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:
|
||||
|
||||
<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">
|
||||
*Freedom Is Here - Discover your journey, navigate the world with privacy and community at the forefront!*
|
||||
|
||||
## 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,
|
||||
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)
|
||||
- [Android Beta (Firebase)](https://appdistribution.firebase.dev/i/2f0fee463107b137)
|
||||
### Feedback
|
||||
|
||||
## 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)
|
||||
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.
|
||||
## How is development funded?
|
||||
|
||||
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.
|
||||
|
||||
22
android/Dockerfile
Normal file
22
android/Dockerfile
Normal file
@@ -0,0 +1,22 @@
|
||||
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
|
||||
CMD ./gradlew -Parm64 assembleFdroidDebug
|
||||
15
android/app/.gitignore
vendored
15
android/app/.gitignore
vendored
@@ -2,18 +2,14 @@
|
||||
/nativeOutputs
|
||||
|
||||
# ignore private keys
|
||||
/google-services.json
|
||||
/secure.properties
|
||||
/release.keystore
|
||||
/secure.properties
|
||||
/secure.properties.test
|
||||
/secure.properties.release
|
||||
/comaps-test.keystore
|
||||
/comaps-release.keystore
|
||||
/libnotify.properties
|
||||
/google-services.json
|
||||
/google-play.json
|
||||
/firebase-app-distribution.json
|
||||
/firebase-test-lab.json
|
||||
/huawei-appgallery.json
|
||||
/agconnect-services.json
|
||||
/src/main/res/xml/network_security_config.xml
|
||||
|
||||
# ignore flags symlinks
|
||||
/src/main/res/drawable-xhdpi/??.png
|
||||
@@ -28,6 +24,3 @@
|
||||
/src/main/res/drawable-mdpi/uk_northern_ireland.png
|
||||
/src/main/res/drawable-mdpi/uk_scotland.png
|
||||
/src/main/res/drawable-mdpi/uk_wales.png
|
||||
|
||||
# ignore autogenerated metadata (see prepareGoogleReleaseListing in build.gradle)
|
||||
/src/google/play/listings
|
||||
|
||||
@@ -3,38 +3,16 @@ buildscript {
|
||||
google()
|
||||
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.
|
||||
def taskName = getGradle().getStartParameter().getTaskRequests().toString().toLowerCase()
|
||||
def isFdroid = taskName.contains('fdroid')
|
||||
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 {
|
||||
classpath 'com.android.tools.build:gradle:8.7.3'
|
||||
|
||||
if (googleFirebaseServicesEnabled) {
|
||||
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')
|
||||
classpath libs.android.tools
|
||||
classpath(libs.triplet.play.publisher)
|
||||
classpath(libs.huawei.publish)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -45,11 +23,6 @@ repositories {
|
||||
}
|
||||
|
||||
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: 'ru.cian.huawei-publish-gradle-plugin'
|
||||
|
||||
@@ -80,8 +53,8 @@ def getCommitMessage() {
|
||||
|
||||
def osName = System.properties['os.name'].toLowerCase()
|
||||
|
||||
project.ext.appId = 'app.organicmaps'
|
||||
project.ext.appName = 'Organic Maps'
|
||||
project.ext.appId = 'app.comaps'
|
||||
project.ext.appName = 'CoMaps'
|
||||
|
||||
// I have Java 21 installed, but this doesn't work on MacOS.
|
||||
//java {
|
||||
@@ -103,7 +76,7 @@ android {
|
||||
ndkVersion '27.2.12479018'
|
||||
|
||||
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()
|
||||
versionCode = ver.V1
|
||||
versionName = ver.V2
|
||||
@@ -112,7 +85,7 @@ android {
|
||||
minSdk propMinSdkVersion.toInteger()
|
||||
targetSdk propTargetSdkVersion.toInteger()
|
||||
applicationId project.ext.appId
|
||||
buildConfigField 'String', 'SUPPORT_MAIL', '"android@organicmaps.app"'
|
||||
buildConfigField 'String', 'SUPPORT_MAIL', '"android@comaps.app"'
|
||||
// Should be customized in flavors.
|
||||
buildConfigField 'String', 'REVIEW_URL', '""'
|
||||
resourceConfigurations += [project.ext.supportedLocalizations]
|
||||
@@ -182,30 +155,32 @@ android {
|
||||
|
||||
google {
|
||||
dimension 'default'
|
||||
applicationIdSuffix '.google'
|
||||
versionName = android.defaultConfig.versionName + '-Google'
|
||||
buildConfigField 'String', 'SUPPORT_MAIL', '"googleplay@organicmaps.app"'
|
||||
buildConfigField 'String', 'REVIEW_URL', '"market://details?id=app.organicmaps"'
|
||||
buildConfigField 'String', 'SUPPORT_MAIL', '"gplay@comaps.app"'
|
||||
buildConfigField 'String', 'REVIEW_URL', '"market://details?id=app.comaps.google"'
|
||||
}
|
||||
|
||||
// Distributed directly by the project, e.g. in repo releases, chats, etc.
|
||||
web {
|
||||
dimension 'default'
|
||||
applicationIdSuffix '.web'
|
||||
versionName = android.defaultConfig.versionName + '-Web'
|
||||
buildConfigField 'String', 'SUPPORT_MAIL', '"apk@organicmaps.app"'
|
||||
versionName = android.defaultConfig.versionName
|
||||
buildConfigField 'String', 'SUPPORT_MAIL', '"apk@comaps.app"'
|
||||
}
|
||||
|
||||
fdroid {
|
||||
dimension 'default'
|
||||
versionName = android.defaultConfig.versionName + '-FDroid'
|
||||
buildConfigField 'String', 'SUPPORT_MAIL', '"fdroid@organicmaps.app"'
|
||||
buildConfigField 'String', 'SUPPORT_MAIL', '"fdroid@comaps.app"'
|
||||
}
|
||||
|
||||
huawei {
|
||||
dimension 'default'
|
||||
applicationIdSuffix '.huawei'
|
||||
versionName = android.defaultConfig.versionName + '-Huawei'
|
||||
versionCode = HUAWEI_VERSION_CODE_BASE + android.defaultConfig.versionCode
|
||||
buildConfigField 'String', 'SUPPORT_MAIL', '"huawei@organicmaps.app"'
|
||||
buildConfigField 'String', 'REVIEW_URL', '"appmarket://details?id=app.organicmaps"'
|
||||
buildConfigField 'String', 'SUPPORT_MAIL', '"huawei@comaps.app"'
|
||||
buildConfigField 'String', 'REVIEW_URL', '"appmarket://details?id=app.comaps"'
|
||||
}
|
||||
}
|
||||
|
||||
@@ -241,59 +216,77 @@ android {
|
||||
android.applicationVariants.all { variant ->
|
||||
def task = variant.name.capitalize()
|
||||
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'
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
def securityPropertiesFileExists = file('secure.properties').exists()
|
||||
if (securityPropertiesFileExists) {
|
||||
apply from: 'secure.properties'
|
||||
def secureReleasePropertiesFileExists = file('secure.properties.release').exists()
|
||||
if (secureReleasePropertiesFileExists) {
|
||||
apply from: 'secure.properties.release'
|
||||
}
|
||||
|
||||
def secureTestPropertiesFileExists = file('secure.properties.test').exists()
|
||||
if (secureTestPropertiesFileExists) {
|
||||
apply from: 'secure.properties.test'
|
||||
}
|
||||
|
||||
signingConfigs {
|
||||
debug {
|
||||
storeFile file('debug.keystore')
|
||||
storeFile file('comaps-debug.keystore')
|
||||
storePassword '12345678'
|
||||
keyAlias 'debug'
|
||||
keyAlias 'CoMaps Debug'
|
||||
keyPassword '12345678'
|
||||
}
|
||||
|
||||
release {
|
||||
if (securityPropertiesFileExists) {
|
||||
println('The release signing keys are available')
|
||||
storeFile file(spropStoreFile)
|
||||
storePassword spropStorePassword
|
||||
keyAlias spropKeyAlias
|
||||
keyPassword spropKeyPassword
|
||||
test {
|
||||
if (secureTestPropertiesFileExists) {
|
||||
storeFile file(secretTestStoreFile)
|
||||
storePassword secretTestStorePassword
|
||||
keyAlias secretTestKeyAlias
|
||||
keyPassword secretTestKeyPassword
|
||||
} else {
|
||||
println('The release signing keys are unavailable')
|
||||
println('secure.properties.test doesn\'t exist')
|
||||
}
|
||||
}
|
||||
|
||||
release {
|
||||
if (secureReleasePropertiesFileExists) {
|
||||
storeFile file(secretReleaseStoreFile)
|
||||
storePassword secretReleaseStorePassword
|
||||
keyAlias secretReleaseKeyAlias
|
||||
keyPassword secretReleaseKeyPassword
|
||||
} else {
|
||||
println('secure.properties.release doesn\'t exist')
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
buildTypes {
|
||||
def taskName = getGradle().getStartParameter().getTaskRequests().toString().toLowerCase()
|
||||
|
||||
debug {
|
||||
applicationIdSuffix '.debug' // Allows to install debug and release builds together
|
||||
versionNameSuffix '-debug'
|
||||
jniDebuggable true // Enable jni debug build
|
||||
zipAlignEnabled true
|
||||
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.
|
||||
ndk.debugSymbolLevel = 'none'
|
||||
|
||||
if (googleFirebaseServicesEnabled) {
|
||||
// Keep debug symbols for test lab.
|
||||
ndk.debugSymbolLevel = 'symbol_table'
|
||||
firebaseCrashlytics {
|
||||
nativeSymbolUploadEnabled true
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
release {
|
||||
if (taskName.contains('release')) {
|
||||
if (secureReleasePropertiesFileExists) {
|
||||
println('Using RELEASE signing keys from secure.properties.release')
|
||||
signingConfig signingConfigs.release
|
||||
} else {
|
||||
println('NO RELEASE signing keys found')
|
||||
println('Using DEBUG signing keys')
|
||||
signingConfig signingConfigs.debug
|
||||
}
|
||||
}
|
||||
minifyEnabled true
|
||||
shrinkResources true
|
||||
// Includes the default ProGuard rules files that are packaged with the Android Gradle plugin.
|
||||
@@ -302,40 +295,31 @@ android {
|
||||
resValue 'string', 'app_name', project.ext.appName
|
||||
// Full size symbols are too big for Google, 217mb aab vs 95mb.
|
||||
ndk.debugSymbolLevel = 'symbol_table'
|
||||
|
||||
if (googleFirebaseServicesEnabled) {
|
||||
firebaseCrashlytics {
|
||||
nativeSymbolUploadEnabled true
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// TODO(@pastk): rename to "test" everywhere in code
|
||||
beta {
|
||||
applicationIdSuffix '.beta'
|
||||
versionNameSuffix '-beta'
|
||||
signingConfig signingConfigs.release
|
||||
applicationIdSuffix '.test'
|
||||
versionNameSuffix '-test'
|
||||
if (taskName.contains('beta')) {
|
||||
if (secureTestPropertiesFileExists) {
|
||||
println('Using TEST signing keys from secure.properties.test')
|
||||
signingConfig signingConfigs.test
|
||||
} else {
|
||||
println('NO TEST signing keys found')
|
||||
println('Using DEBUG signing keys')
|
||||
signingConfig signingConfigs.debug
|
||||
}
|
||||
}
|
||||
minifyEnabled true
|
||||
shrinkResources true
|
||||
// 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.
|
||||
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
|
||||
matchingFallbacks = ['debug', 'release']
|
||||
resValue 'string', 'app_name', 'Beta Organic Maps'
|
||||
matchingFallbacks = ['release'] // use dependencies of "release" build type
|
||||
resValue 'string', 'app_name', 'CoMaps Test'
|
||||
// Full size symbols are too big for Google, 217mb aab vs 95mb.
|
||||
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 +347,11 @@ android {
|
||||
}
|
||||
|
||||
dependencies {
|
||||
coreLibraryDesugaring 'com.android.tools:desugar_jdk_libs:2.1.4'
|
||||
coreLibraryDesugaring libs.android.tools.desugar
|
||||
|
||||
// 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:
|
||||
// ```
|
||||
@@ -374,51 +360,37 @@ dependencies {
|
||||
// ls -la src/$flavor/java/app/organicmaps/location/GoogleFusedLocationProvider.java
|
||||
// ```
|
||||
//
|
||||
webImplementation 'com.google.android.gms:play-services-location:21.3.0'
|
||||
googleImplementation 'com.google.android.gms:play-services-location:21.3.0'
|
||||
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'
|
||||
}
|
||||
// microG project's FOSS re-implementation of the proprietary libs.google.services.location
|
||||
implementation libs.microg.services.location
|
||||
|
||||
// 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
|
||||
// We don't use Kotlin, but some dependencies are actively using it.
|
||||
// See https://stackoverflow.com/a/75719642
|
||||
implementation 'androidx.core:core:1.15.0'
|
||||
implementation(platform('org.jetbrains.kotlin:kotlin-bom:2.1.10'))
|
||||
implementation 'androidx.annotation:annotation:1.9.1'
|
||||
implementation 'androidx.appcompat:appcompat:1.7.0'
|
||||
implementation 'androidx.car.app:app:1.7.0-rc01'
|
||||
implementation 'androidx.car.app:app-projected:1.7.0-rc01'
|
||||
implementation 'androidx.constraintlayout:constraintlayout:2.2.0'
|
||||
implementation 'androidx.fragment:fragment:1.8.5'
|
||||
implementation 'androidx.preference:preference:1.2.1'
|
||||
implementation 'androidx.recyclerview:recyclerview:1.3.2'
|
||||
implementation 'androidx.work:work-runtime:2.10.0'
|
||||
implementation 'androidx.lifecycle:lifecycle-process:2.8.7'
|
||||
implementation 'com.google.android.material:material:1.12.0'
|
||||
implementation libs.androidx.core
|
||||
implementation(platform(libs.jetbrains.kotlin.bom))
|
||||
implementation libs.androidx.annotation
|
||||
implementation libs.androidx.appcompat
|
||||
implementation libs.androidx.car.app
|
||||
implementation libs.androidx.car.app.projected
|
||||
implementation libs.androidx.constraintlayout
|
||||
implementation libs.androidx.fragment
|
||||
implementation libs.androidx.preference
|
||||
implementation libs.androidx.recyclerview
|
||||
implementation libs.androidx.work.runtime
|
||||
implementation libs.androidx.lifecycle.process
|
||||
implementation libs.android.material
|
||||
// Fix for app/organicmaps/util/FileUploadWorker.java:14: error: cannot access ListenableFuture
|
||||
// https://github.com/organicmaps/organicmaps/issues/6106
|
||||
implementation 'com.google.guava:guava:33.3.0-android'
|
||||
implementation 'com.github.devnullorthrow:MPAndroidChart:3.2.0-alpha'
|
||||
implementation 'net.jcip:jcip-annotations:1.0'
|
||||
implementation libs.google.guava
|
||||
implementation libs.devnullorthrow.mpandroidchart
|
||||
implementation libs.jcip.annotations
|
||||
|
||||
// Test Dependencies
|
||||
androidTestImplementation 'androidx.test.ext:junit:1.2.1'
|
||||
testImplementation 'junit:junit:4.13.2'
|
||||
testImplementation 'org.mockito:mockito-core:5.15.2'
|
||||
testImplementation 'org.mockito:mockito-inline:5.2.0'
|
||||
androidTestImplementation libs.androidx.test.junit
|
||||
testImplementation libs.junit
|
||||
testImplementation libs.mockito.core
|
||||
testImplementation libs.mockito.inline
|
||||
}
|
||||
|
||||
tasks.withType(JavaCompile) {
|
||||
@@ -434,32 +406,6 @@ android.applicationVariants.all { variant ->
|
||||
variant.resValue 'string', 'app_id', variant.applicationId
|
||||
}
|
||||
|
||||
task prepareGoogleReleaseListing {
|
||||
// Prepares Google Play metainfo from F-Droid metainfo.
|
||||
final sourceFlavor = 'fdroid'
|
||||
final targetFlavor = 'google'
|
||||
doLast {
|
||||
final sourceDir = new File("${projectDir}/src/$sourceFlavor/play/listings")
|
||||
final targetDir = new File("${projectDir}/src/$targetFlavor/play/listings")
|
||||
final sourceFiles = fileTree(dir: sourceDir,
|
||||
include: '**/*.txt', exclude: "**/*-${targetFlavor}.txt")
|
||||
sourceFiles.each { File sourceFile ->
|
||||
final locale = sourceFile.parentFile.getName()
|
||||
final targetLocaleDir = new File(targetDir, locale)
|
||||
if (!targetLocaleDir.isDirectory())
|
||||
targetLocaleDir.mkdirs()
|
||||
final targetFile = new File(targetLocaleDir, sourceFile.getName())
|
||||
// Override Google-specific values by using ${name}-google.txt files.
|
||||
final overrideFile = new File(sourceFile.getPath().replace('.txt', "-${targetFlavor}.txt"))
|
||||
targetFile.text = overrideFile.exists() ? overrideFile.text : sourceFile.text
|
||||
}
|
||||
copy {
|
||||
from "${projectDir}/../../screenshots/android"
|
||||
into targetDir
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
play {
|
||||
enabled.set(false)
|
||||
track.set('production')
|
||||
|
||||
BIN
android/app/comaps-debug.keystore
Normal file
BIN
android/app/comaps-debug.keystore
Normal file
Binary file not shown.
Binary file not shown.
@@ -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 +1,34 @@
|
||||
‣ 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.
|
||||
Komunitou vedené bezplatná a otevřená mapová aplikace založená na datech z projektu OpenStreetMap a posílená závazkem k transparentnosti, soukromí a neziskovosti. Aplikace CoMaps je fork/odnož aplikace Organic Maps, která je zase forkem aplikace Maps.ME.
|
||||
|
||||
<b>Vaše zpětná vazba a 5-hvězdičková hodnocení jsou pro nás nejlepší motivací!</b>
|
||||
Důvody vzniku projektu a jeho směr si můžete přečíst na adrese <b><i>codeberg.org/comaps</i></b>.
|
||||
Můžete se zde také připojit ke komunitě pomáhat s vytvářením nejlepší mapové aplikace
|
||||
• Používejte aplikaci a sdílejte ji se známými
|
||||
• Poskytujte zpětnou vazbu a nahlašujte problémy
|
||||
• Aktualizujte mapová data v aplikaci nebo na webu OpenStreetMap
|
||||
|
||||
Klíčové funkce:
|
||||
• <b>Zaměřené na offline použití</b>: Plánujte a navigujte své cesty do zahraničí bez nutnosti mobilních dat, hledejte body na vzdálených túrách apod. Všechny funkce aplikace jsou navrženy tak, aby fungovaly offline.
|
||||
• <b>S ohledem na soukromí</b>: Aplikace je navržená s důrazem na soukromí – neidentifikuje lidi, nesleduje vás a nesbírá osobní údaje. Bez reklam.
|
||||
• <b>Jednoduché a vyladěné</b>: Základní, snadno použitelné funkce, které prostě fungují.
|
||||
• <b>Šetří vaši baterii a místo</b>: Nevybíjí vaší baterii, jako ostatní navigační aplikace. Kompaktní mapy šetří cenné místo ve vašem telefonu.
|
||||
• <b>Bezplatné a vytvořené komunitou</b>: S vytvářením aplikace pomáhají lidé, jako jste vy, přidáváním míst do projektu OpenStreetMap, testováním a poskytováním zpětné vazby k funkcím a přispíváním svými vývojářskými schopnostmi a penězi.
|
||||
• <b>Otevřené a transparentní rozhodování a nakládání s financemi, neziskovost a plně otevřený zdrojový kód.</b>
|
||||
|
||||
• 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čí
|
||||
<b>Hlavní funkce</b>:
|
||||
<ul>
|
||||
<li>Stahovatelné podrobné mapy s místy, která nenajdete ani v Mapách Google</li>
|
||||
<li>Outdoorový režim se zvýrazněnými turistickými trasami, tábořišti, vodními zdroji, vrcholy, vrstevnicemi atd.</li>
|
||||
<li>Pěší trasy a cyklostezky</li>
|
||||
<li>Body zájmu, jako jsou restaurace, čerpací stanice, hotely, obchody, vyhlídky a mnoho dalšího</li>
|
||||
<li>Hledání podle názvu nebo adresy nebo podle kategorie bodů zájmu</li>
|
||||
<li>Navigace s hlasovými pokyny pro chůzi, jízdu na kole nebo řízení</li>
|
||||
<li>Uložení oblíbených míst jedním klepnutím</li>
|
||||
<li>Offline články z Wikipedie</li>
|
||||
<li>Vrstva metra a navigace v něm</li>
|
||||
<li>Záznam tras</li>
|
||||
<li>Export a import záložek a tras ve formátech KML, KMZ a GPX</li>
|
||||
<li>Tmavý režim k použití během noci</li>
|
||||
<li>Zlepšování mapových dat pro všechny pomocí jednoduchého vestavěného editoru</li>
|
||||
</ul>
|
||||
|
||||
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>
|
||||
<b>Svoboda je tady</b>
|
||||
Objevujte své cesty, navigujte se světem se soukromím a komunitou na prvním místě!
|
||||
|
||||
@@ -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 +1 @@
|
||||
Navigace s ochranou soukromí - vedená komunitou a open-source
|
||||
Jednoduchá navigace v mapě – Objevte více na své cestě – Vyvíjeno komunitou
|
||||
|
||||
@@ -1 +0,0 @@
|
||||
Organic Maps: pěšky kolo auto
|
||||
@@ -1 +1 @@
|
||||
Organic Maps: pěšky, na kole a autem offline
|
||||
CoMaps – pěšky, na kole a autem offline a soukromě
|
||||
|
||||
@@ -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 +1,32 @@
|
||||
‣ 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!
|
||||
Eine von der Community betriebene, kostenlose Open-Source Karten App, die auf OpenStreetMap Daten basiert. Transparent, Daten sparsam und nicht gewinnorientiert. CoMaps ist ein Fork/Abspaltung von Organic Maps, das wiederum ein Fork/Abspaltung von Maps.Me ist.
|
||||
|
||||
<b>Dein Feedback und deine 5-Sterne-Bewertungen sind die beste Motivation für uns!</b>
|
||||
Lese mehr über die Gründe und Ziele des Projekt unter <b><i>codeberg.org/comaps</i></b>.
|
||||
Werde Teil der Community und hilf mit, die beste Karten-App zu entwickeln
|
||||
• Nutze die App und erzähle anderen davon
|
||||
• Gib Feedback und melde Probleme
|
||||
• Aktualisiere Kartendaten in der App oder auf der OpenStreetMap Website
|
||||
|
||||
Wichtigste Funktionen:
|
||||
‣ <b>Einfach und ausgereift</b>: Essenzielle, leicht zu bedienende Funktionen, die einfach funktionieren.
|
||||
‣ <b>Offline-orientiert</b>: Plane und navigiere im Ausland ohne Mobilfunkverbindung, finde Wegpunkte auf abgelegenen Wanderungen usw. Alle Funktionen sind für den Offline-Einsatz konzipiert.
|
||||
‣ <b>Datenschutzfreundlich</b>: Die App wurde mit Fokus auf Privatsphäre entwickelt – keine Personenidentifikation, kein Tracking, keine Erfassung persönlicher Daten, keine Werbung.
|
||||
‣ <b>Spart Akku und Speicherplatz</b>: Verbraucht nicht unnötig Akku wie andere Navi-Apps. Kompakte Karten sparen Speicherplatz auf deinem Gerät.
|
||||
‣ <b>Kostenlos und von der Community entwickelt</b>: Menschen wie du haben geholfen die App zu entwickeln – durch das Hinzufügen von Orten zu OpenStreetMap, Testen von neuen Funktionen, Software Entwicklung oder Spenden.
|
||||
‣ <b>Offen und transparent bei Entscheidungen und Finanzen, gemeinnützig und vollständig Open Source</b>
|
||||
|
||||
• 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
|
||||
<b>Hauptfunktionen</b>:
|
||||
• Detaillierte, herunterladbare Karten mit Orten, die bei Google Maps oft fehlen
|
||||
• Outdoor-Modus mit hervorgehobenen Wanderwegen, Campingplätzen, Wasserquellen, Gipfeln, Höhenlinien usw.
|
||||
• Geh- und Radwege
|
||||
• Orte wie Restaurants, Tankstellen, Hotels, Geschäfte, Sehenswürdigkeiten und viele mehr
|
||||
• Suche nach Namen, Adressen oder Kategorien
|
||||
• Navigation mit Sprachausgabe für Fußgänger, Radfahrer und Autos
|
||||
• Lesezeichen mit einem einzigen Tippen speichern
|
||||
• Offline verfügbare Wikipedia-Artikel
|
||||
• U- und S-Bahn Netze
|
||||
• Aufzeichnen von GPS Tracks
|
||||
• Import und Export von Favoriten und Routen im KML-, KMZ- oder GPX-Format
|
||||
• Darkmode für die Nutzung bei Nacht
|
||||
• Kartenbearbeitung direkt in der App mit einem einfachen Editor
|
||||
|
||||
Ö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>
|
||||
<b>Freiheit beginnt hier</b>
|
||||
Entdecke deine Reise – navigiere die Welt mit Privatsphäre!
|
||||
|
||||
@@ -1,8 +1,10 @@
|
||||
• 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
|
||||
Erster CoMaps Release!
|
||||
Was ist neu im Vergleich zu Organic Maps:
|
||||
• OpenStreetMap-Daten vom 15. Mai
|
||||
• OSM Login jetzt über den Webbrowser
|
||||
• Der halbtransparente Hintergrund in der U-Bahn-Ansicht wurde entfernt
|
||||
• Größe der lokalen Karte beim ersten Karten download anzeigen
|
||||
• Der Metaserver wurde durch eine feste Liste an Kartenservern ersetzt
|
||||
• Der Nachtmodus schaltet jetzt besser um, auch wenn kein GPS-Signal da ist
|
||||
• Übersetzungen aktualisiert
|
||||
• Rebranding – das Logo ist noch vorläufig
|
||||
|
||||
@@ -1 +1 @@
|
||||
Navigieren mit Datenschutz - Community-gesteuert & Open-Source
|
||||
Einfache Navigation - Entdecken Sie mehr von Ihrer Reise - Community basiert
|
||||
|
||||
@@ -1 +0,0 @@
|
||||
Organic Maps Offline Karten
|
||||
@@ -1 +1 @@
|
||||
Organic Maps Offline Wandern, Radfahren, GPS-Navi
|
||||
CoMaps – Offline und privat navigieren
|
||||
|
||||
@@ -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
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user