mirror of
https://codeberg.org/comaps/comaps
synced 2025-12-19 13:03:36 +00:00
Compare commits
306 Commits
2025.06.30
...
generate-2
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
acd97c816d | ||
|
|
13aa12fb97 | ||
|
|
83ddd58bfc | ||
|
|
49c954ceb8 | ||
|
|
31786731ca | ||
|
|
c509263c5b | ||
|
|
8aa1cfb083 | ||
|
|
6537ca34cd | ||
|
|
306aa002f0 | ||
|
|
21743be44d | ||
|
|
119650d7f3 | ||
|
|
be70c34eba | ||
|
|
ac9b70d229 | ||
|
|
85cec703e5 | ||
|
|
5925fe85b2 | ||
|
|
f0458c9715 | ||
|
|
54fc3d0b64 | ||
|
|
df70b29623 | ||
|
|
d1da6c197e | ||
|
|
0dc8d69375 | ||
|
|
3352279d9d | ||
|
|
6da8b69a1b | ||
|
|
fe1c371b5f | ||
|
|
309eed2365 | ||
|
|
979c713436 | ||
|
|
5e8a8de646 | ||
|
|
b0bdd2c665 | ||
|
|
dd949925f6 | ||
|
|
b37572000f | ||
|
|
332ab819b2 | ||
|
|
860f58e60e | ||
|
|
0e7d8a65cc | ||
|
|
4c6207a8ce | ||
|
|
b96afc6fbb | ||
|
|
8174eac134 | ||
|
|
f4dd133872 | ||
|
|
feddb98a81 | ||
|
|
886938c0dc | ||
|
|
5014b4018d | ||
|
|
084357a68e | ||
|
|
c6c758d7af | ||
|
|
e80679eeb0 | ||
|
|
1fda519032 | ||
|
|
57f543a0dd | ||
|
|
2b173cebe6 | ||
|
|
10f154858c | ||
|
|
20e0b0ff95 | ||
|
|
4588703f71 | ||
|
|
11ee2b121b | ||
|
|
4e9efa63ff | ||
|
|
161123245e | ||
|
|
8f11eb876e | ||
|
|
47741282cf | ||
|
|
115dbbea79 | ||
|
|
088a2bfd22 | ||
|
|
d8cdfb8080 | ||
|
|
b465b95854 | ||
|
|
cee3f24cd9 | ||
|
|
c7133364c1 | ||
|
|
cc6958282b | ||
|
|
21cc2bbf52 | ||
|
|
1cf4ff21ec | ||
|
|
1fe8f1f0e6 | ||
|
|
f8bfdb898b | ||
|
|
898c940de0 | ||
|
|
eca0e91ec4 | ||
|
|
26567a2220 | ||
|
|
539e5cdfeb | ||
|
|
dde65a918b | ||
|
|
c0469ddef2 | ||
|
|
34af5e26d9 | ||
|
|
d89ef42acc | ||
|
|
fb1279ca5a | ||
|
|
128b0f3e2b | ||
|
|
3b46dd1dee | ||
|
|
767f27e00a | ||
|
|
ac50520ca8 | ||
|
|
4f6455d6f8 | ||
|
|
c2c68c4a76 | ||
|
|
2f2c3b042f | ||
|
|
a5e7922d37 | ||
|
|
c05b668e38 | ||
|
|
58ea819936 | ||
|
|
038746b698 | ||
|
|
11585e07bb | ||
|
|
a576f529a4 | ||
|
|
e298da740e | ||
|
|
68711cae06 | ||
|
|
a3bb0bed46 | ||
|
|
0c7e6300f5 | ||
|
|
2529d5bf5d | ||
|
|
0ef61252c6 | ||
|
|
530847285c | ||
|
|
cdc2b1b5b5 | ||
|
|
606a94c818 | ||
|
|
6bac0d5f65 | ||
|
|
9a609f638c | ||
|
|
cfb97a3db6 | ||
|
|
9ad94eb95c | ||
|
|
aa71668eab | ||
|
|
d649e46ef2 | ||
|
|
12dbfc6622 | ||
|
|
8393402c02 | ||
|
|
972bb21264 | ||
|
|
bab869db2b | ||
|
|
56f9990a7b | ||
|
|
bef136a094 | ||
|
|
c4c08fc410 | ||
|
|
1433b0e866 | ||
|
|
b14bdd883e | ||
|
|
67c0b3e6d2 | ||
|
|
7e7e84ea64 | ||
|
|
6857ca8f90 | ||
|
|
e3b83140b6 | ||
|
|
eea5d2f17e | ||
|
|
18c11abfd2 | ||
|
|
8321817fac | ||
|
|
9a50b3b147 | ||
|
|
2cd1d9df3c | ||
|
|
e3d4549f98 | ||
|
|
ef1ea0ef96 | ||
|
|
1e8ab6d209 | ||
|
|
e7524e5725 | ||
|
|
6c3c1af787 | ||
|
|
49d5335e7e | ||
|
|
ec6a98a6fd | ||
|
|
8e28470490 | ||
|
|
a19cbbbbf7 | ||
|
|
e780ef685d | ||
|
|
33255e05af | ||
|
|
1207627257 | ||
|
|
f6105468c0 | ||
|
|
98ede09ed8 | ||
|
|
f5492262bf | ||
|
|
8b64225b80 | ||
|
|
cd00dd22a7 | ||
|
|
110648fb89 | ||
|
|
e7cdaba817 | ||
|
|
190111c04b | ||
|
|
cc199aafd8 | ||
|
|
b546dbfb26 | ||
|
|
d0b690105e | ||
|
|
43453c8705 | ||
|
|
5ae0ef626a | ||
|
|
a5bd24ccdb | ||
|
|
6cfdeadf87 | ||
|
|
cdaf34bde2 | ||
|
|
c92e1b4ab2 | ||
|
|
3f79a3bece | ||
|
|
b366a400a1 | ||
|
|
9b8593d4fb | ||
|
|
a913857949 | ||
|
|
0971c47e84 | ||
|
|
dbfb0d5e0b | ||
|
|
6218552060 | ||
|
|
9adf012ae9 | ||
|
|
57e86d72e9 | ||
|
|
24a4edd904 | ||
|
|
cbe874e467 | ||
|
|
f5aa221da0 | ||
|
|
af31d26674 | ||
|
|
5915299012 | ||
|
|
b7ca80bb11 | ||
|
|
9585038738 | ||
|
|
24b2d41ba4 | ||
|
|
559d2b3bcf | ||
|
|
ebaae75d9b | ||
|
|
4cc0912285 | ||
|
|
54681719fb | ||
|
|
8b3cdbb937 | ||
|
|
753696786d | ||
|
|
3663b86eea | ||
|
|
bc5a6cc89a | ||
|
|
93415fe952 | ||
|
|
4fd617684b | ||
|
|
48faa90b5e | ||
|
|
1883575006 | ||
|
|
26826fc63f | ||
|
|
cbb4557856 | ||
|
|
b632aa00e3 | ||
|
|
6ff4faa156 | ||
|
|
ca601a2407 | ||
|
|
c14e15ced5 | ||
|
|
47ed04fb2e | ||
|
|
c9e8a1068b | ||
|
|
23b8ad6120 | ||
|
|
1e1510897c | ||
|
|
37c67c8dc1 | ||
|
|
d8bca2f652 | ||
|
|
86dacd70ff | ||
|
|
8213a278d7 | ||
|
|
1167c82b15 | ||
|
|
1d6cb3bcf8 | ||
|
|
0fee3c3781 | ||
|
|
ab591052c3 | ||
|
|
38d5496258 | ||
|
|
edb995ceed | ||
|
|
105bb09a09 | ||
|
|
64975fc649 | ||
|
|
792f8332f5 | ||
|
|
b8b14677a7 | ||
|
|
9af30e0d47 | ||
|
|
a59d4bed55 | ||
|
|
cc948034f3 | ||
|
|
f066b44e01 | ||
|
|
b0f338273b | ||
|
|
f1ec689532 | ||
|
|
771c3d9c93 | ||
|
|
4542788bb1 | ||
|
|
5b28a13e93 | ||
|
|
73a3d1850b | ||
|
|
9c70433007 | ||
|
|
983fc290ef | ||
|
|
222dfce85e | ||
|
|
f6521ec068 | ||
|
|
bff20b523e | ||
|
|
c838e06d54 | ||
|
|
7db355dd5c | ||
|
|
527031adba | ||
|
|
d85949c716 | ||
|
|
4c3392b881 | ||
|
|
90502f7635 | ||
|
|
147022e42d | ||
|
|
f67e2efc87 | ||
|
|
9cd3db6f39 | ||
|
|
7138970ea6 | ||
|
|
cbd561ec90 | ||
|
|
048dc60be6 | ||
|
|
40018f5cc8 | ||
|
|
4314f281d1 | ||
|
|
b529a733c0 | ||
|
|
1b8172f744 | ||
|
|
c589aaa3cf | ||
|
|
13b91b36ae | ||
|
|
e523434b36 | ||
|
|
752fcaf09c | ||
|
|
7e2b05573f | ||
|
|
7e63d98cb7 | ||
|
|
304addba58 | ||
|
|
1becd3e0ba | ||
|
|
dee47e7a66 | ||
|
|
2e60bfc289 | ||
|
|
fdbb41e0fd | ||
|
|
090ed5044a | ||
|
|
54b6471400 | ||
|
|
415e2fc0c2 | ||
|
|
f0ed076858 | ||
|
|
57f28fa85b | ||
|
|
7228fe239d | ||
|
|
c294937c73 | ||
|
|
ebf84e7d5b | ||
|
|
19dd760c44 | ||
|
|
8a8ac5c660 | ||
|
|
7a8f7929fc | ||
|
|
b285ef348b | ||
|
|
87dad591ab | ||
|
|
9e49aae49e | ||
|
|
d621636549 | ||
|
|
ec1d2e6c82 | ||
|
|
6d0c52afcc | ||
|
|
3abf354099 | ||
|
|
9a759229f9 | ||
|
|
a3e1666ede | ||
|
|
15c7e71866 | ||
|
|
db1ef9b148 | ||
|
|
9951ebece7 | ||
|
|
7bfb488f1d | ||
|
|
df70ae1b01 | ||
|
|
15b3cda4d7 | ||
|
|
99bb468448 | ||
|
|
46ec844398 | ||
|
|
f8d1914037 | ||
|
|
71386ce395 | ||
|
|
8d95d2e9b7 | ||
|
|
05c4413394 | ||
|
|
29bbbb13ee | ||
|
|
e321b1c5be | ||
|
|
736e1aa07b | ||
|
|
e32b01494a | ||
|
|
4496690e0a | ||
|
|
ef9618b3d6 | ||
|
|
13ba20aa25 | ||
|
|
23c23c118d | ||
|
|
5b4d458579 | ||
|
|
1bb2b2274f | ||
|
|
aec82794ac | ||
|
|
927299f4a9 | ||
|
|
87cb0307cf | ||
|
|
de7f60ea37 | ||
|
|
f7fb0e80e5 | ||
|
|
e49a74e287 | ||
|
|
77a7255e93 | ||
|
|
25b3abadef | ||
|
|
01388ae6dd | ||
|
|
4bf61f14f8 | ||
|
|
49603aa0a1 | ||
|
|
890c927bab | ||
|
|
d564f69b58 | ||
|
|
abd15756be | ||
|
|
ea1edec3df | ||
|
|
c17135f5a6 | ||
|
|
2471ff0545 | ||
|
|
a99d1c1a38 | ||
|
|
deb663e4f9 | ||
|
|
3858b0905f | ||
|
|
8db9289b56 |
1
.gitignore
vendored
1
.gitignore
vendored
@@ -9,6 +9,7 @@ Makefile.Release
|
||||
object_script.*.Debug
|
||||
object_script.*.Release
|
||||
compile_commands.json
|
||||
*.local.*
|
||||
|
||||
stxxl.errlog
|
||||
stxxl.log
|
||||
|
||||
@@ -103,12 +103,29 @@ if (${CMAKE_BUILD_TYPE} STREQUAL "Debug")
|
||||
elseif (${CMAKE_BUILD_TYPE} MATCHES "Rel")
|
||||
add_definitions(-DRELEASE)
|
||||
if (NOT MSVC)
|
||||
add_compile_options(-Ofast) # Also enables -ffast-math
|
||||
add_compile_options(-Ofast $<$<CXX_COMPILER_ID:GNU>:-flto=auto>) # Also enables -ffast-math
|
||||
endif()
|
||||
else()
|
||||
message(FATAL_ERROR "Unknown build type: " ${CMAKE_BUILD_TYPE})
|
||||
endif()
|
||||
|
||||
if (${CMAKE_BUILD_TYPE} STREQUAL "RelWithDebInfo")
|
||||
add_compile_options(-fno-omit-frame-pointer)
|
||||
endif()
|
||||
|
||||
# Linux GCC LTO plugin fix.
|
||||
if (PLATFORM_LINUX AND (CMAKE_CXX_COMPILER_ID STREQUAL "GNU") AND (CMAKE_BUILD_TYPE MATCHES "^Rel"))
|
||||
# To force errors if LTO was not enabled.
|
||||
add_compile_options(-fno-fat-lto-objects)
|
||||
# To fix ar and ranlib "plugin needed to handle lto object".
|
||||
string(REGEX MATCH "[0-9]+" GCC_MAJOR_VERSION ${CMAKE_CXX_COMPILER_VERSION})
|
||||
file(GLOB_RECURSE plugin /usr/lib/gcc/*/${GCC_MAJOR_VERSION}/liblto_plugin.so)
|
||||
set(CMAKE_C_ARCHIVE_CREATE "<CMAKE_AR> --plugin ${plugin} qcs <TARGET> <OBJECTS>")
|
||||
set(CMAKE_C_ARCHIVE_FINISH "<CMAKE_RANLIB> --plugin ${plugin} <TARGET>")
|
||||
set(CMAKE_CXX_ARCHIVE_CREATE "<CMAKE_AR> --plugin ${plugin} qcs <TARGET> <OBJECTS>")
|
||||
set(CMAKE_CXX_ARCHIVE_FINISH "<CMAKE_RANLIB> --plugin ${plugin} <TARGET>")
|
||||
endif()
|
||||
|
||||
message(STATUS "Build type: " ${CMAKE_BUILD_TYPE})
|
||||
|
||||
if (PLATFORM_LINUX OR PLATFORM_ANDROID)
|
||||
@@ -242,6 +259,10 @@ if (PLATFORM_DESKTOP)
|
||||
add_subdirectory(qt)
|
||||
omim_add_tool_subdirectory(skin_generator)
|
||||
endif()
|
||||
if (GENERATOR_TOOL)
|
||||
add_compile_options(-march=native -mtune=native)
|
||||
message(STATUS "target CPU optimizations enabled, produced binaries will NOT work on a different CPU")
|
||||
endif()
|
||||
add_subdirectory(dev_sandbox)
|
||||
endif()
|
||||
|
||||
|
||||
@@ -7,9 +7,11 @@ CoMaps contributors:
|
||||
(in alphabetic order)
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
Bastian Greshake Tzovaras
|
||||
clover sage
|
||||
Harry Bond <me@hbond.xyz>
|
||||
vikiawv
|
||||
Yannik Bloscheck
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
Organic Maps (formerly OMaps) contributors:
|
||||
|
||||
165
README.md
165
README.md
@@ -1,62 +1,88 @@
|
||||
<!--<div align="center">
|
||||
<img src="qt/res/logo.png" height="100"/>
|
||||
</div>-->
|
||||
<!-- Navigation Bar -->
|
||||
<p align="center">
|
||||
<a href="https://codeberg.org/comaps#comaps">Project Intro</a> |
|
||||
<a href="https://codeberg.org/comaps/Governance#comaps-project-governance-docs">Governance</a> |
|
||||
<a href="https://codeberg.org/comaps/Governance/src/branch/main/FAQ.md">FAQ</a> |
|
||||
<a href="#contributing">Contribute</a> |
|
||||
<a href="https://www.comaps.app/donate">Donate</a> |
|
||||
<a href="https://codeberg.org/comaps#keep-connected">Keep Connected</a>
|
||||
</p>
|
||||
|
||||
<!-- 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)
|
||||
|
||||
# [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)
|
||||
<div align="center" >
|
||||
<img src="docs/badges/logo.svg" width="150">
|
||||
</div>
|
||||
|
||||
|
||||
<div align="center">
|
||||
<h1><a href="https://comaps.app/">CoMaps</a></h1>
|
||||
<h2>Hike, Bike, Drive Offline - Easy Map Navigation with Privacy</h2>
|
||||
</div>
|
||||
<div align="center">
|
||||
<p align="center">
|
||||
<a href="https://codeberg.org/comaps/comaps/releases">
|
||||
<img src="https://img.shields.io/github/license/comaps/comaps?style=for-the-badge&logo=opensourceinitiative&logoColor=white&color=588157" alt="License" style="width: 90%; max-width: 150px;"/>
|
||||
</a>
|
||||
<a href="https://github.com/comaps/comaps/actions/workflows/android-check.yaml">
|
||||
<img src="https://img.shields.io/github/actions/workflow/status/comaps/comaps/.github/workflows/android-check.yaml?label=Android%20Build&logo=android&logoColor=white&style=for-the-badge&color=588157" alt="Android Build Status" style="width: 90%; max-width: 170px;"/>
|
||||
</a>
|
||||
<a href="https://github.com/comaps/comaps/actions/workflows/ios-check.yaml">
|
||||
<img src="https://img.shields.io/github/actions/workflow/status/comaps/comaps/.github/workflows/ios-check.yaml?label=iOS%20Build&logo=apple&logoColor=white&style=for-the-badge&color=588157" alt="iOS Build Status" style="width: 90%; max-width: 145px;"/>
|
||||
</a>
|
||||
<a href="https://opencollective.com/comaps">
|
||||
<img src="https://img.shields.io/opencollective/all/comaps?label=Open%20Collective%20Donors&logo=opencollective&logoColor=white&style=for-the-badge&color=588157" alt="Open Collective Donors" style="width: 90%; max-width: 191px;"/>
|
||||
</a>
|
||||
<a href="https://liberapay.com/CoMaps">
|
||||
<img src="https://img.shields.io/liberapay/patrons/CoMaps.svg?label=Liberapay%20Patrons&logo=liberapay&logoColor=white&style=for-the-badge&color=588157" alt="Liberapay Patrons" style="width: 90%; max-width: 160px;"/>
|
||||
</a>
|
||||
</p>
|
||||
</div>
|
||||
|
||||
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.
|
||||
A community-led free & open source maps app based on [OpenStreetMap](https://www.openstreetmap.org), built for transparency, privacy, and not-for-profit values. A fork of Organic Maps, originally based on Maps.ME.
|
||||
|
||||
[<img src="docs/badges/apple-appstore.png" alt="App Store" width="160">](https://apps.apple.com/app/comaps/id6747180809)
|
||||
[<img src="docs/badges/google-play.png" alt="Google Play" width="160">](https://play.google.com/store/apps/details?id=app.comaps.google)
|
||||
[<img src="docs/badges/fdroid.png" alt="F-Droid" width="160">](https://f-droid.org/en/packages/app.comaps.fdroid/)
|
||||
[<img src="docs/badges/codeberg.png" alt="Codeberg" width="160">](https://codeberg.org/comaps/comaps/releases)
|
||||
**Available for:** Android, iOS, ARM macOS, and alpha Linux/macOS desktop builds (also usable on Linux phones).
|
||||
|
||||
<p float="left">
|
||||
<p align="center">
|
||||
<a href="https://apps.apple.com/app/comaps/id6747180809">
|
||||
<img src="docs/badges/apple-appstore.png" alt="App Store" width="160"/>
|
||||
</a>
|
||||
<a href="https://play.google.com/store/apps/details?id=app.comaps.google">
|
||||
<img src="docs/badges/google-play.png" alt="Google Play" width="160"/>
|
||||
</a>
|
||||
<a href="https://f-droid.org/en/packages/app.comaps.fdroid/">
|
||||
<img src="docs/badges/fdroid.png" alt="F-Droid" width="160"/>
|
||||
</a>
|
||||
<a href="https://codeberg.org/comaps/comaps/releases">
|
||||
<img src="docs/badges/codeberg.png" alt="Codeberg" width="160"/>
|
||||
</a>
|
||||
</p>
|
||||
|
||||
|
||||
<!-- Screenshots -->
|
||||
<p align="center">
|
||||
<img src="android/app/src/fdroid/play/listings/en-US/graphics/phone-screenshots/1.png" width="180" />
|
||||
<img src="android/app/src/fdroid/play/listings/en-US/graphics/phone-screenshots/2.png" width="180" />
|
||||
<img src="android/app/src/fdroid/play/listings/en-US/graphics/phone-screenshots/3.png" width="180" />
|
||||
<img src="android/app/src/fdroid/play/listings/en-US/graphics/phone-screenshots/4.png" width="180" />
|
||||
<img src="android/app/src/fdroid/play/listings/en-US/graphics/phone-screenshots/5.png" width="180" />
|
||||
<img src="android/app/src/fdroid/play/listings/en-US/graphics/phone-screenshots/6.png" width="180" />
|
||||
</p>
|
||||
|
||||
**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.
|
||||
---
|
||||
|
||||
**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.
|
||||
## ⚡️ Highlights
|
||||
|
||||
**Simple and Polished**: Essential, easy to use features that just work.
|
||||
- **Offline-first**: Navigate without a connection
|
||||
- **Privacy-respecting**: No tracking, Ads or data collection
|
||||
- **Lightweight**: Battery- and space-efficient
|
||||
- **Simple**: Polished, user-focused interface
|
||||
- **Community-built**: Free, open source, and collaborative
|
||||
- **Transparent**: Open finances and governance
|
||||
|
||||
**Saves Your Battery and Space**: Doesn’t drain your battery like other navigation apps. Compact maps save precious space on your phone.
|
||||
---
|
||||
|
||||
**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.
|
||||
|
||||
**Open and Transparent Decision-making and Financials, Not-for-profit and Fully Open Source.**
|
||||
|
||||
### Main Features
|
||||
## 🚀 Main Features
|
||||
|
||||
- Downloadable detailed maps with places which are not available with Google Maps
|
||||
|
||||
@@ -86,41 +112,52 @@ An alpha Linux / MacOS Qt desktop version, which is also suitable for Linux phon
|
||||
|
||||
- Android Auto and CarPlay support
|
||||
|
||||
*Freedom Is Here - Discover your journey, navigate the world with privacy and community at the forefront!*
|
||||
***Freedom Is Here – Navigate the world with privacy and community at the forefront.***
|
||||
|
||||
## Contributing
|
||||
---
|
||||
|
||||
## 🤝 Contributing
|
||||
|
||||
You can help by donating, contributing code, translating, or by telling others about it. To build the best maps app there is a need for software development, design, product, community development, and other areas. Reach out to us and let us know how you want to help.
|
||||
|
||||
If you want to build the project, check [docs/INSTALL.md](docs/INSTALL.md). If you want to help the project,
|
||||
see [docs/CONTRIBUTING.md](docs/CONTRIBUTING.md). You can help in many ways, the ability to code is not necessary.
|
||||
- Build instructions: [docs/INSTALL.md](docs/INSTALL.md)
|
||||
- Contribution guide: [docs/CONTRIBUTING.md](docs/CONTRIBUTING.md)
|
||||
> [!NOTE]
|
||||
> 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!
|
||||
|
||||
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!
|
||||
There is a dedicated Zulip chat for active contributors: [Zulip](https://comaps.zulipchat.com)
|
||||
|
||||
There is a dedicated Zulip chat for active contributors: [comaps.zulipchat.com](https://comaps.zulipchat.com)
|
||||
---
|
||||
|
||||
### Feedback
|
||||
## 💬 Feedback
|
||||
|
||||
- Rate us on [App Store](https://apps.apple.com/app/comaps/id6747180809) and [Google Play](https://play.google.com/store/apps/details?id=app.comaps.google)
|
||||
- Star our repos on Codeberg
|
||||
- Report bugs or request features on the [issue tracker](https://codeberg.org/comaps/comaps/issues)
|
||||
|
||||
- **Rate us on the [App Store](https://apps.apple.com/app/comaps/id6747180809)
|
||||
and [Google Play](https://play.google.com/store/apps/details?id=app.comaps.google)**.
|
||||
- Star our repos on Codeberg
|
||||
- Report bugs and discuss features at [the issue tracker](https://codeberg.org/comaps/comaps/issues)
|
||||
---
|
||||
|
||||
## How is development funded?
|
||||
|
||||
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!
|
||||
## 💸 Funding
|
||||
|
||||
CoMaps is free. To stay that way, it relies on your support.
|
||||
Donate via [OpenCollective](https://opencollective.com/comaps/donate) or [Liberapay](https://liberapay.com/CoMaps).
|
||||
The project's financial information is completely open and transparent at [our Open Collective](https://opencollective.com/comaps).
|
||||
|
||||
## Privacy
|
||||
---
|
||||
|
||||
The Android application was analysed by the [Exodus platform](https://reports.exodus-privacy.eu.org/fr/reports/app.comaps.google/latest/)
|
||||
## 🔒 Privacy
|
||||
|
||||
## License and Copyright
|
||||
The Android app has been reviewed by [Exodus Privacy](https://reports.exodus-privacy.eu.org/en/reports/app.comaps.google/latest/).
|
||||
|
||||
Licensed under the Apache License, Version 2.0. See
|
||||
[LICENSE](LICENSE),
|
||||
[NOTICE](NOTICE)
|
||||
and [data/copyright.html](data/copyright.html)
|
||||
for more information.
|
||||
To [verify](https://developer.android.com/studio/command-line/apksigner#usage-verify) the APK, use the following signing certificate fingerprints:
|
||||
```
|
||||
SHA-256: 4894e8e6963627ef660031d8593fe77297f835acb4e23810003e926135023b4c
|
||||
SHA-1: 8b7b5739f917e9f7c681671ced0c9c8562123ade
|
||||
MD5: 9cce0ffea281dc2f0e0a154d6d2e281e
|
||||
```
|
||||
---
|
||||
|
||||
## ⚖️ License
|
||||
|
||||
Licensed under the Apache License 2.0.
|
||||
See [LICENSE](LICENSE), [NOTICE](NOTICE), and [data/copyright.html](data/copyright.html).
|
||||
4
android/.idea/icon.svg
generated
Normal file
4
android/.idea/icon.svg
generated
Normal file
@@ -0,0 +1,4 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="64pt" height="64pt" viewBox="0 0 835 835">
|
||||
<path d="M698.5 141.1a20 20 0 0 1 30.8-1.3A416 416 0 0 1 835 417.4a416 416 0 0 1-93.3 263 20 20 0 0 1-31.3-.6l-43-56.6a20 20 0 0 1-.2-24 307 307 0 0 0 59.3-181.8c0-74.2-26.2-142.3-69.9-195.6a20 20 0 0 1-.5-24.8zM260.7 456.4a20 20 0 0 1-7.7-36.7l282-177.4a20 20 0 0 1 29.9 22.7l-97 318.9a20 20 0 0 1-37.5 2.2l-49.2-111.5z" style="fill:#ccdfca"/>
|
||||
<path d="M626.3 753a20 20 0 0 1-6.2 29.6A416 416 0 0 1 417.5 835 417.7 417.7 0 0 1 0 417.4 417.7 417.7 0 0 1 603.3 43.5a20 20 0 0 1 7 30l-42.4 55.8a20 20 0 0 1-24.2 6.1 307 307 0 0 0-126.2-27 309 309 0 0 0-309 309c0 170.6 138.5 309 309 309a307 307 0 0 0 141.6-34.3 20 20 0 0 1 25.1 5.6z" style="fill:#fefdf6"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 753 B |
@@ -15,12 +15,6 @@ buildscript {
|
||||
}
|
||||
}
|
||||
|
||||
repositories {
|
||||
google()
|
||||
mavenCentral()
|
||||
maven { url 'https://www.jitpack.io' } // MPAndroidChart
|
||||
}
|
||||
|
||||
apply plugin: 'com.android.application'
|
||||
apply plugin: 'com.github.triplet.play'
|
||||
apply plugin: 'ru.cian.huawei-publish-gradle-plugin'
|
||||
@@ -65,14 +59,29 @@ project.ext.appName = 'CoMaps'
|
||||
android {
|
||||
namespace 'app.organicmaps'
|
||||
|
||||
dependenciesInfo {
|
||||
// Disables dependency metadata when building APKs (for IzzyOnDroid/F-Droid)
|
||||
includeInApk = false
|
||||
// Disables dependency metadata when building Android App Bundles (for Google Play)
|
||||
includeInBundle = false
|
||||
}
|
||||
|
||||
buildFeatures {
|
||||
dataBinding = true
|
||||
buildConfig = true
|
||||
}
|
||||
|
||||
// Users are complaining that the app should be re-downloaded from the Play Store after changing the language.
|
||||
bundle {
|
||||
language {
|
||||
enableSplit = false
|
||||
}
|
||||
}
|
||||
|
||||
// All properties are read from gradle.properties file
|
||||
compileSdk propCompileSdkVersion.toInteger()
|
||||
|
||||
ndkVersion '27.2.12479018'
|
||||
ndkVersion '28.2.13676358'
|
||||
|
||||
defaultConfig {
|
||||
// Default package name is taken from the manifest and should be app.comaps
|
||||
@@ -397,6 +406,8 @@ android {
|
||||
}
|
||||
|
||||
dependencies {
|
||||
implementation project(':sdk')
|
||||
|
||||
coreLibraryDesugaring libs.android.tools.desugar
|
||||
|
||||
// Google Play Location Services
|
||||
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 34 KiB |
@@ -1 +0,0 @@
|
||||
../../../../google/java/app/organicmaps/location
|
||||
1
android/app/src/fdroid/java/app/organicmaps/sdk/location
Symbolic link
1
android/app/src/fdroid/java/app/organicmaps/sdk/location
Symbolic link
@@ -0,0 +1 @@
|
||||
../../../../../google/java/app/organicmaps/sdk/location
|
||||
@@ -6,12 +6,12 @@ Můžete se zde také připojit ke komunitě pomáhat s vytvářením nejlepší
|
||||
• Poskytujte zpětnou vazbu a nahlašujte problémy
|
||||
• Aktualizujte mapová data v aplikaci nebo na webu OpenStreetMap
|
||||
|
||||
• <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>
|
||||
‣ <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>
|
||||
|
||||
<b>Hlavní funkce</b>:
|
||||
• Stahovatelné podrobné mapy s místy, která nenajdete ani v Mapách Google
|
||||
|
||||
@@ -1 +1 @@
|
||||
Jednoduchá navigace v mapě - Objevte více na své cestě ‐ Vyvíjeno komunitou
|
||||
Jednoduchá navigace v mapě – Objevte více na své cestě – Vyvíjeno komunitou
|
||||
|
||||
@@ -0,0 +1 @@
|
||||
Nem kortnavigation - Oplev mere af din rejse - Drevet af fællesskabet
|
||||
1
android/app/src/fdroid/play/listings/da-DK/title.txt
Normal file
1
android/app/src/fdroid/play/listings/da-DK/title.txt
Normal file
@@ -0,0 +1 @@
|
||||
CoMaps - vandr, cykl og kør offline med privatliv
|
||||
@@ -1,4 +1,4 @@
|
||||
Eine von der Community betriebene, kostenlose Open-Source Karten-App, die auf OpenStreetMap Daten basiert. Transparent, datensparsam und nicht gewinnorientiert. CoMaps ist ein Fork/Abspaltung von Organic Maps, die wiederum ein Fork/Abspaltung von Maps.Me ist.
|
||||
Eine von der Community betriebene, kostenlose Open-Source Karten-App, die auf OpenStreetMap Daten basiert. Transparent und nicht gewinnorientiert. CoMaps ist ein Fork/Abspaltung von Organic Maps, die wiederum ein Fork/Abspaltung von Maps.Me ist.
|
||||
|
||||
Lese mehr über die Gründe und Ziele des Projektes unter <b><i>codeberg.org/comaps</i></b>.
|
||||
Werde Teil der Community und hilf mit, die beste Karten-App zu entwickeln
|
||||
@@ -28,5 +28,5 @@ Werde Teil der Community und hilf mit, die beste Karten-App zu entwickeln
|
||||
• Dunkler Modus für die Nutzung bei Nacht
|
||||
• Kartenbearbeitung direkt in der App mit einem einfachen Editor
|
||||
|
||||
<b>Freiheit beginnt hier</b>
|
||||
<b>Entdecke die Unabhängigkeit</b>
|
||||
Entdecke deine Reise – navigiere in der Welt mit Datenschutz!
|
||||
|
||||
@@ -1,6 +1,9 @@
|
||||
• OpenStreetMap-Daten vom 22. Juni
|
||||
• Optionale automatische Backups von Lesezeichen & Tracks
|
||||
• Neue 100m-Höhenlinien für Regionen die vorher gröbere/keine Isolinien hatten
|
||||
• Vegetation & Spielplätze werden früher angezeigt, neue Farben für Campingplätze & andere Einrichtungen
|
||||
• Pfade & Tracks werden standardmäßig bei höherem Zoom angezeigt, Outdoor-Stil für Detailübersicht
|
||||
• Aktion des linken Button nichtm mehr im Hamburger-Menü, stattdessen werden "Über & Hilfe" dort angezeigt
|
||||
Wir stellen vor: Das neue CoMaps-Logo!
|
||||
• Verbesserte Höhenlinien in vielen Regionen (Stufen von 20/50 m)
|
||||
• Links zu Panoramax-Bildern für ausgewählte POIs
|
||||
• OpenStreetMap-Daten vom 13. Juli
|
||||
• Neue Farben für viele Objekte und Farben werden früher angezeigt
|
||||
• Öffnungszeiten werden beim Antippen eines POI angezeigt
|
||||
• Verschiedene Arten von Feuchtgebieten
|
||||
• Neue Farben für Vegetation und andere Features; einige neue Icons
|
||||
• Wandern: bessere Darstellung der Höhenlinien
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 249 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 16 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 24 KiB |
@@ -1,7 +1,10 @@
|
||||
• OpenStreetMap data as of June 22
|
||||
• a setting for automatic bookmarks and tracks backup
|
||||
• added 100m-step altitude isolines to all regions that had worse or no isolines
|
||||
• display vegetation and playground color fills earlier, add fills to camp sites and some amenities
|
||||
• paths & tracks appear on the map later by default - still appear earlier in the outdoor style
|
||||
• hide active custom button action from the hamburger menu, move there About & Help from the settings
|
||||
• update map transport icons
|
||||
Introducing CoMaps logo!
|
||||
|
||||
• upgrade altitude contour lines for many regions to 20 or 50 meters step
|
||||
• add Panoramax Picture links to selected POIs
|
||||
• OpenStreetMap data as of July 13
|
||||
• add color fills to many features and display fills earlier for existing features
|
||||
• display opening hours state when selecting a POI
|
||||
• split all wetlands into several distinct types
|
||||
• update vegetation and other map colors, update some map icons
|
||||
• outdoors: bolder altitude contour lines
|
||||
|
||||
@@ -1,6 +1,9 @@
|
||||
• datos de OpenStreetMap a 22 de junio
|
||||
• añadido ajuste para la copia de seguridad automática de marcadores y trazas
|
||||
• añadidas isolíneas de 100 m a las regiones que tenían isolíneas peores o no tenían isolíneas
|
||||
• se muestra antes la vegetación y zonas de juego, añadidas áreas a campings y otros servicios
|
||||
• los senderos y pistas aparecen más tarde - siguen igual en estilo de outdoors
|
||||
• se oculta botón personalizado del menú y se mueve allí Acerca de y Ayuda desde los ajustes
|
||||
¡Presentamos el logo de CoMaps!
|
||||
• mejora de isolíneas con más detalle para muchas regiones
|
||||
• añade enlaces de imágenes de Panoramax a POIs seleccionados
|
||||
• datos de OpenStreetMap a 13 de julio
|
||||
• añadidos rellenos de color a muchas características
|
||||
• se muestra el estado de horarios de apertura al seleccionar un POI
|
||||
• se dividen los humedales en tipos distintos
|
||||
• se actualiza la vegetación y otros colores del mapa, así como otros iconos
|
||||
• exteriores: líneas de contorno de altitud más gruesas
|
||||
@@ -1,6 +1,7 @@
|
||||
• Données OpenStreetMap du 22 juin
|
||||
• Sauvegarde automatique des signets et traces GPS en local
|
||||
• Ajout des courbes d'altitude avec un précision de 100 mètres dans toutes les régions qui avaient peu de courbes ou aucune
|
||||
• Ajustements des styles notamment sur la végétation, les aires de jeu et les chemins
|
||||
• Masque l’action active du bouton personnalisé dans le menu hamburger
|
||||
• Correction de certains plantages et bugs
|
||||
Présentation du logo CoMaps !
|
||||
• Amélioration des courbes d’altitude à une précision de 20 ou 50 mètres pour de nombreuses régions
|
||||
• Ajout d'un lien vers les images Panoramax des POI
|
||||
• Données OpenStreetMap du 13 juillet
|
||||
• Affichage de l’état des heures d’ouverture lors de la sélection d’un POI
|
||||
• Mise à jour du style(végétation et zones humides), mise à jour de certaines icônes de la carte
|
||||
• Outdoors: Améliorations de la visibilité des courbes d'altitude
|
||||
|
||||
@@ -1 +1 @@
|
||||
Navigation facile - Découvrez plus lors de votre voyage - Fait par la communauté
|
||||
Navigation cartographique facile - Découvrez davantage de votre voyage - Propulsé par la communauté
|
||||
|
||||
@@ -0,0 +1,32 @@
|
||||
Aplicación de mapas gratuíta, de código aberto e xestionada pola comunidade, obtén os datos desde OpenStreetMap e co compromiso reforzado coa transparencia, privacidade e non ter o beneficio económico como obxectivo. CoMaps é unha bifurcación ou derivada de Organic Maps, que pola súa parte ven sendo unha bifurcación de Maps.ME.
|
||||
|
||||
Vai a <b><i>codeberg.org/comaps</i></b> e coñece as razóns da necesidade deste proxecto e as decisións tomadas.
|
||||
Únete alí á comunidade e axuda a que teñamos a mellor aplicación de mapas
|
||||
• Usa a aplicación e dille a outras persoas que o fas
|
||||
• Informa de fallos e publica túa experiencia
|
||||
• Actualiza os datos do mapa na aplicación ou no sitio web OpenStreetMap
|
||||
|
||||
‣ <b>Sen conexión de datos</b>: planea a viaxe e sigue a ruta sen precisar unha conexión á rede móbil, busca lugares relevantes nas andainas máis longas, etc. Todas as características da aplicación están deseñadas para funcionar sen precisar conexión de datos.
|
||||
‣ <b>Respecto pola privacidade</b>: a aplicación está deseñada coa privacidade en primeiro plano - non identifica ás persoas, non te segue, non recolle información sobre ti. Non ten publicidade.
|
||||
‣ <b>Simple e organizada</b>: características esenciais, fáciles de usar e que funcionan.
|
||||
‣ <b>Aforra batería e espazo</b>: non esgota a batería como outras aplicacións de navegación. Os mapas compactos aforran espazo na memoria do dispositivo.
|
||||
‣ <b>Gratuíta e feita pola comunidade</b>: persoas coma ti que axudan a crear a aplicación engadindo lugares en OpenStreetMap, probando novas características e dando a súa opinión, colaborando ao seu desenvolvemento con código ou financiamento.
|
||||
‣ <b>Proceso de toma de decisións Aberto e Transparente para os temas económicos, Sen ánimo de lucro e totalmente de Código Aberto</b>
|
||||
|
||||
<b>Características principais</b>:
|
||||
• Mapas detallados descargables con lugares que non están dispoñibles en Google Maps
|
||||
• Modo para actividades en exterior con camiños para andainas, lugares para acampar, fontes de auga, picos dos montes, curvas de nivel, etc
|
||||
• Rutas a pé e en bicicleta
|
||||
• Puntos de interese como restaurantes, gasoliñeiras, hoteis, tendas, miradores e moitos máis
|
||||
• Busca polo nome ou polo enderezo ou por categoría do punto de interese
|
||||
• Navegación con anuncios por voz para camiñar, ir en bicicleta ou conducir
|
||||
• Marca os lugares favoritos cun só toque
|
||||
• Artigos da Wikipedia sen conexión
|
||||
• Mapas do transporte por Metro
|
||||
• Gravación das rutas
|
||||
• Exportación e Importación de marcadores e rutas nos formatos KML, KMZ e GPX
|
||||
• Modo escuro para a noite
|
||||
• Contribúe a mellorar o mapa para todas as persoas usando o editor básico incluído
|
||||
|
||||
<b>Aquí es Libre</b>
|
||||
Atopa o teu camiño, navega polo mundo con privacidade e coa comunidade como prioridade!
|
||||
1
android/app/src/fdroid/play/listings/hu-HU/title.txt
Normal file
1
android/app/src/fdroid/play/listings/hu-HU/title.txt
Normal file
@@ -0,0 +1 @@
|
||||
CoMaps - Túra, Bicikli, Vezetés offline diszkréten
|
||||
@@ -0,0 +1,32 @@
|
||||
Een door de community ontwikkelde, gratis en open source kaartenapp, gebaseerd op OpenStreetMap-gegevens, met een sterke focus op transparantie en privacy, en zonder winstoogmerk. CoMaps is een fork/spin-off van Organic Maps, welke is afgeleid van Maps.ME.
|
||||
|
||||
Meer informatie over de redenen voor het project en de richting ervan vindt u op <b><i>codeberg.org/comaps</i></b>.
|
||||
Sluit je aan bij de community en help mee aan de ontwikkeling van de beste kaartenapp:
|
||||
• Gebruik de app en deel je ervaringen met anderen
|
||||
• Geef feedback en meld eventuele problemen
|
||||
• Houd de kaarten up-to-date, zowel in de app als op de OpenStreetMap-website
|
||||
|
||||
‣ <b>Offline-georiënteerd</b>: Plan en navigeer je reis in het buitenland zonder internet, zoek waypoints tijdens een lange wandeling, enzovoort. Alle functies zijn ontworpen om offline te functioneren.
|
||||
‣ <b>Respect voor privacy</b>: De app is ontworpen met privacy in gedachten - geen gegevensverzameling en advertentievrij.
|
||||
‣ <b>Eenvoudig en verfijnd</b>: essentiële, gebruiksvriendelijke functies die gewoon werken.
|
||||
‣ <b>Bespaar je batterij en opslag</b>: De app verbruikt minder batterij dan andere navigatie-apps. Compacte kaarten besparen ruimte op je telefoon.
|
||||
‣ <b>Gratis en gebouwd door de community</b>: Mensen zoals jij helpen de app door plaatsen toe te voegen aan OpenStreetMap, functies te testen en feedback te geven, en hun programmervaardigheden bij te dragen of te doneren.
|
||||
‣ <b>Open en transparant besluitvormings- en financieel beleid, geen winstoogmerk en volledig open source.</b>
|
||||
|
||||
<b>Hoofdfuncties</b>:
|
||||
• Downloadbare gedetailleerde kaarten met plaatsen die niet beschikbaar zijn bij Google Maps
|
||||
• Buitenmodus met gemarkeerde wandelpaden, campings, waterbronnen, toppen, hoogtelijnen, enz.
|
||||
• Wandelpaden en fietspaden
|
||||
• Bezienswaardigheden zoals restaurants, tankstations, hotels, winkels en nog veel meer
|
||||
• Zoeken op naam of adres of op categorie
|
||||
• Navigatie met spraakmeldingen voor wandelen, fietsen of autorijden
|
||||
• Sla je favoriete plaatsen op met een enkele klik
|
||||
• Offline Wikipedia-artikelen
|
||||
• Metro laag en routebeschrijvingen
|
||||
• Trackregistratie
|
||||
• Exporteer en importeer bladwijzers en tracks in KML, KMZ, GPX-formaten
|
||||
• Een donkere modus voor gebruik 's nachts
|
||||
• Verbeter kaartgegevens voor iedereen met een eenvoudige ingebouwde editor
|
||||
|
||||
<b>Vrijheid is hier/b>
|
||||
Ontdek je reis, navigeer over de wereld met privacy en community voorop!
|
||||
@@ -0,0 +1 @@
|
||||
Eenvoudige kaartnavigatie - Ontdek meer van je reis - Gemaakt door de community
|
||||
@@ -0,0 +1,9 @@
|
||||
Wprowadzamy logo CoMaps!
|
||||
• zwiększenie dokładności izolinii w wielu regionach w krokach 20 do 50 metrów
|
||||
• dodanie linków do zdjęć z Panoramax do wybranych POI
|
||||
• aktualizacja danych OpenStreetMap z 13 lipca
|
||||
• dodanie wypełnienia kolorem dla wielu typów obiektów
|
||||
• wyświetlanie stanu godzin otwarcia przy wyborze POI
|
||||
• podział mokradeł na kilka typów
|
||||
• aktualizacja koloru roślinności i innych kolorów, aktualizacja części ikon na mapie
|
||||
• tryb outdoorowy: pogrubione warstwice wysokości
|
||||
@@ -8,7 +8,6 @@ Junte-se à comunidade e ajude a criar o melhor aplicativo de mapas.
|
||||
|
||||
‣ <b>Foco offline</b>: Planeje e navegue em sua viagem ao exterior sem a necessidade de sinal de celular, pesquise pontos de referência durante uma caminhada distante, etc. Todas as funções do aplicativo foram projetadas para funcionar offline.
|
||||
‣ <b>Respeito à privacidade</b>: O aplicativo foi projetado com a privacidade em mente - não identifica pessoas, não rastreia e não coleta informações pessoais. Livre de anúncios.
|
||||
|
||||
‣ <b>Simples e sofisticado</b>: recursos essenciais e fáceis de usar que simplesmente funcionam.
|
||||
‣ <b>Economiza bateria e espaço</b>: Não esgota a bateria como outros aplicativos de navegação. Mapas compactos economizam espaço precioso no seu celular.
|
||||
‣ <b>Gratuito e desenvolvido pela comunidade</b>: Pessoas como você ajudaram a desenvolver o aplicativo adicionando lugares ao OpenStreetMap, testando e dando feedback sobre os recursos e contribuindo com suas habilidades de desenvolvimento e dinheiro.
|
||||
|
||||
@@ -0,0 +1,9 @@
|
||||
Apresentamos o logo do CoMaps!
|
||||
• Curvas de nível mais detalhadas em muitas regiões
|
||||
• Adicionados links de imagens do Panoramax para pontos de interesse selecionados
|
||||
• Dados OSM de 13/07
|
||||
• Adicionados preenchimentos de cor a muitos elementos
|
||||
• Exibição de horário de funcionamento ao selecionar um ponto de interesse
|
||||
• Divididas áreas úmidas em vários tipos distintos
|
||||
• Atualizada cores/ícones para vegetação e outros elementos
|
||||
• Ar livre: curvas de nível de altitude mais destacadas
|
||||
@@ -1,55 +1,32 @@
|
||||
Um aplicativo de mapas gratuito e de código aberto, liderado pela comunidade, baseado em dados do OpenStreetMap e reforçado pelo compromisso com a transparência, privacidade e sem fins lucrativos. O CoMaps é um fork/spin-off do Organic Maps, que por sua vez é um fork do Maps.ME.
|
||||
|
||||
Leia mais sobre os motivos do projeto e sua direção em <b><i>codeberg.org/comaps</i></b>.
|
||||
|
||||
Junte-se à comunidade e ajude a criar o melhor aplicativo de mapas.
|
||||
|
||||
• Use o aplicativo e divulgue-o.
|
||||
|
||||
• Envie feedback e relate problemas.
|
||||
|
||||
• Atualize os dados do mapa no aplicativo ou no site do OpenStreetMap.
|
||||
|
||||
‣ <b>Foco offline</b>: Planeje e navegue em sua viagem ao exterior sem a necessidade de sinal de celular, pesquise pontos de referência durante uma caminhada distante, etc. Todas as funções do aplicativo foram projetadas para funcionar offline.
|
||||
|
||||
‣ <b>Respeitando a privacidade</b>: O aplicativo foi projetado com a privacidade em mente - não identifica pessoas, não rastreia e não coleta informações pessoais. Sem anúncios.
|
||||
|
||||
‣ <b>Simples e sofisticado</b>: recursos essenciais e fáceis de usar que simplesmente funcionam.
|
||||
|
||||
‣ <b>Economiza bateria e espaço</b>: Não consome muita bateria como outros aplicativos de navegação. Mapas compactos economizam espaço precioso no seu celular.
|
||||
|
||||
‣ <b>Gratuito e desenvolvido pela comunidade</b>: Pessoas como você ajudaram a desenvolver o aplicativo adicionando lugares ao OpenStreetMap, testando e dando feedback sobre os recursos e contribuindo com suas habilidades de desenvolvimento e dinheiro.
|
||||
|
||||
‣ <b>Tomada de decisões e finanças abertas e transparentes, sem fins lucrativos e totalmente de código aberto.</b>
|
||||
|
||||
<b>Principais recursos</b>:
|
||||
|
||||
• Mapas detalhados para download com locais não disponíveis no Google Maps
|
||||
|
||||
• Modo ao ar livre com trilhas em destaque, acampamentos, fontes de água, picos, curvas de nível, etc.
|
||||
|
||||
• Trilhas para caminhada e ciclovias
|
||||
|
||||
• Pontos de interesse como restaurantes, postos de gasolina, hotéis, lojas, pontos turísticos e muito mais
|
||||
|
||||
• Pesquise por nome, endereço ou por categoria de ponto de interesse
|
||||
|
||||
• Navegação com anúncios de voz para caminhadas, ciclismo ou direção
|
||||
|
||||
• Marque seus lugares favoritos com um único toque
|
||||
|
||||
• Artigos offline da Wikipédia
|
||||
|
||||
• Camada e direções de transporte público do metrô
|
||||
|
||||
• Gravação de trilhas
|
||||
|
||||
• Exporte e importe favoritos e trilhas nos formatos KML, KMZ e GPX
|
||||
|
||||
• Um modo escuro para usar à noite
|
||||
|
||||
• Aprimore os dados do mapa para todos usando um editor básico integrado
|
||||
|
||||
<b>A Liberdade Chegou</b>
|
||||
|
||||
Descubra sua jornada, navegue pelo mundo com privacidade e comunidade em primeiro lugar!
|
||||
|
||||
1
android/app/src/fdroid/play/listings/ro/title.txt
Normal file
1
android/app/src/fdroid/play/listings/ro/title.txt
Normal file
@@ -0,0 +1 @@
|
||||
CoMaps - Drumeții, Ciclism, Condus Offline în confidențialitate
|
||||
@@ -1,7 +1,6 @@
|
||||
Бесплатное и свободное картографическое приложение, основанное на данных OpenStreetMap и подкреплённое обязательствами по прозрачности, конфиденциальности и некоммерческой направленности. CoMaps — это ответвление от Organic Maps, которое, в свою очередь, является ответвлением от Maps.ME.
|
||||
|
||||
Подробнее о причинах проекта и его направлении читайте на <a href="https://codeberg.org/comaps">сайте</a>.
|
||||
|
||||
Подробнее о причинах проекта и его направлении читайте на сайте <b><i> codeberg.org/comaps </i><b>.
|
||||
Присоединяйтесь к сообществу и помогите создать лучшее приложение с картами
|
||||
• Используйте приложение и распространяйте информацию о нём
|
||||
• Оставляйте отзывы и сообщайте о проблемах
|
||||
|
||||
@@ -1,6 +1,9 @@
|
||||
• карты OpenStreetMap от 22 июня
|
||||
• автоматическое резервное копирование меток и треков
|
||||
• линии высот с шагом 100м для всех регионов, где линии с этим шагом отсутствовали
|
||||
• цветная заливка растительности и игровых площадок отображается раньше, добавлена заливка для кемпингов и других объектов
|
||||
• тропы и грунтовки отображаются позже в стиле по умолчанию - используйте стиль «Активный отдых» для обзора троп
|
||||
• выбранная функция настраиваемой кнопки больше не дублируется в пунктах меню
|
||||
Представляем логотип CoMaps!
|
||||
• Линии высот для многих регионов с шагом 20м или 50м
|
||||
• Ссылки на изображения Panoramax к выбранным POI
|
||||
• Карты OpenStreetMap от 13 июля
|
||||
• Заливки цветом ко многим объектам и более ранняя заливка для существующих объектов
|
||||
• Показ часов работы при выборе POI
|
||||
• Разные водно-болотные угодья отличаются цветом
|
||||
• Обновлены цвета растительности и другие цвета на карте, изменены некоторые иконки
|
||||
• В стиле "Активный отдых" более четкие линии высот
|
||||
@@ -1 +1 @@
|
||||
Простая навигация по карте — Откройте больше за ваше путешествие. От сообщества
|
||||
Простая навигация по карте — Откройте больше за ваше путешествие — От сообщества
|
||||
|
||||
@@ -1,18 +1,17 @@
|
||||
Бесплатна апликација отвореног кода коју је обављала заједница и заснива се на ОпенСтреетМап-у подацима, усмерени транспарентност, приватност и непрофитни. ЦОМПАПС је Апликације за органске карте виљушка, које је пак форк мапс.ме.
|
||||
Бесплатна апликација отвореног кода коју је обављала заједница и заснива се на ОpenStreetMap-у подацима, усмерени транспарентност, приватност и непрофитни. CoMaps је Апликације за органске карте виљушка, које је пак форк Maps.ME.
|
||||
|
||||
Прочитајте о разлозима пројекта и његовог правца на <b><i>codeberg.org/comaps</i></b>
|
||||
Придружите се отвореној заједници и помозите да направимо најбољу апликацију за мапе
|
||||
• Користите апликацију и проширите глас о томе
|
||||
• Дајте повратне информације и пријавите проблеме
|
||||
• Ажурирајте податке на мапи у апликацији или на веб локацији OpenStreetMap
|
||||
‣<b>фокусирано на офлајн Вар </b>: Планирајте и управљајте путовањем у иностранству без потребе за мобилним услугама, тражите путне тачке док је на даљинском покрету, итд.
|
||||
|
||||
Све апликације су дизајниране за рад ван мреже.
|
||||
‣<b> Поштовање приватности </b>: Апликација је осмишљена задржавања у уму приватност - не идентификује људе, не прати или прикупља личне податке. Нема реклама.
|
||||
‣ <b> фокусирано на офлајн Вар </b>: Планирајте и управљајте путовањем у иностранству без потребе за мобилним услугама, тражите путне тачке док је на даљинском покрету, итд. Све апликације су дизајниране за рад ван мреже.
|
||||
‣ <b> Поштовање приватности </b>: Апликација је осмишљена задржавања у уму приватност - не идентификује људе, не прати или прикупља личне податке. Нема реклама.
|
||||
‣ <b> Једноставно и елегантно </b>: Апликација је тривијална за употребу и једноставно функционише.
|
||||
‣ <b> Чува вашу батерију и простор </b>: не конзумира батерију као остале навигационе апликације. Компактне картице сачувајте драгоцени простор на вашем телефону.
|
||||
‣ <b> Отворено и направио је заједницу </b>: Људи попут вас је помогли да додају апликацију додавањем локација на OpenStreetMap-у, тестирању и давање повратних информација о апликацији и доприносе вашим развојним вештинама и новцу.
|
||||
‣ <b> Отворено и транспарентно доношење одлука и употреба финансија, непрофитна и потпуно отворена извора. </ Б>
|
||||
‣ <b> Отворено и транспарентно доношење одлука и употреба финансија, непрофитна и потпуно отворена извора. </b>
|
||||
|
||||
<b> Главне карактеристике </b>:
|
||||
• Преузмите детаљне мапе са локацијама које нису доступне са Гоогле мапама
|
||||
|
||||
@@ -0,0 +1,9 @@
|
||||
Представљамо CoMaps лого!
|
||||
• ажуриране изохипсе за многе регионе на кораке од 20 или 50 метара
|
||||
• додате везе ка Panoramax сликама за изабране тачке интересовања (POI)
|
||||
• подаци са OpenStreetMap-а од 13. јула
|
||||
• додате боје за многе елементе и раније приказивање постојећих површина
|
||||
• приказ стања радног времена при избору POI-ја
|
||||
• мочваре подељене на неколико различитих типова
|
||||
• ажуриране боје вегетације и других елемената на мапи, ажуриране поједине иконе
|
||||
• на отвореном: наглашеније изохипсе
|
||||
@@ -1 +1 @@
|
||||
Једноставна навигација - Сазнајте више о свом путовању - Покреће је заједница
|
||||
Једноставна навигација - Сазнајте више о свом путовању - Ради на бази заједнице
|
||||
|
||||
@@ -1 +1 @@
|
||||
Kolayca gezinin - Seyahat etmenin ötesini bulun - Gönüllüler tarafından yapıldı
|
||||
Kullanımı kolay harita - Yolculuğun ötesine geçin - topluluğun katkılarıyla
|
||||
|
||||
@@ -1 +1 @@
|
||||
CoMaps - İnternetsiz Seyahat Edin
|
||||
CoMaps - Gizlilikle Yürüyün, Sürün, Gezin
|
||||
|
||||
@@ -0,0 +1 @@
|
||||
Định vị bản đồ dễ dàng - Khám phá thế giới quanh bạn - Đồng hành cùng cộng đồng
|
||||
@@ -1,8 +1,8 @@
|
||||
package app.organicmaps.location;
|
||||
package app.organicmaps.sdk.location;
|
||||
|
||||
import static android.Manifest.permission.ACCESS_COARSE_LOCATION;
|
||||
import static android.Manifest.permission.ACCESS_FINE_LOCATION;
|
||||
import static app.organicmaps.util.concurrency.UiThread.runLater;
|
||||
import static app.organicmaps.sdk.util.concurrency.UiThread.runLater;
|
||||
|
||||
import android.app.PendingIntent;
|
||||
import android.content.Context;
|
||||
@@ -26,8 +26,8 @@ import com.google.android.gms.location.LocationSettingsStatusCodes;
|
||||
import com.google.android.gms.location.Priority;
|
||||
import com.google.android.gms.location.SettingsClient;
|
||||
|
||||
import app.organicmaps.util.LocationUtils;
|
||||
import app.organicmaps.util.log.Logger;
|
||||
import app.organicmaps.sdk.util.LocationUtils;
|
||||
import app.organicmaps.sdk.util.log.Logger;
|
||||
|
||||
class GoogleFusedLocationProvider extends BaseLocationProvider
|
||||
{
|
||||
@@ -1,12 +1,13 @@
|
||||
package app.organicmaps.location;
|
||||
package app.organicmaps.sdk.location;
|
||||
|
||||
import android.content.Context;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import com.google.android.gms.common.ConnectionResult;
|
||||
import com.google.android.gms.common.GoogleApiAvailability;
|
||||
import app.organicmaps.util.Config;
|
||||
import app.organicmaps.util.log.Logger;
|
||||
|
||||
import app.organicmaps.sdk.util.Config;
|
||||
import app.organicmaps.sdk.util.log.Logger;
|
||||
|
||||
public class LocationProviderFactory
|
||||
{
|
||||
@@ -1 +1 @@
|
||||
Jednoduchá navigace v mapě - Objevte více na své cestě ‐ Vyvíjeno komunitou
|
||||
Jednoduchá navigace v mapě – Objevte více na své cestě – Vyvíjeno komunitou
|
||||
|
||||
@@ -0,0 +1,36 @@
|
||||
En fællesskabsdrevet gratis og open source-kortapp baseret på OpenStreetMap-data og forstærket med en forpligtelse til gennemsigtighed, privatliv og non-profit.
|
||||
|
||||
Bliv en del af fællesskabet og vær med til at skabe den bedste kortapp
|
||||
• Brug appen og fortæl andre om den
|
||||
• Giv feedback og rapporter problemer
|
||||
• Opdater kortdata i appen eller på OpenStreetMap-webstedet
|
||||
|
||||
<i>Din feedback og 5-stjernede anmeldelser er den bedste støtte for os!</i>
|
||||
|
||||
‣ <b>Enkel og poleret</b>: væsentlige, brugervenlige funktioner, der bare virker.
|
||||
‣ <b>Offline-focused</b>: Planlæg og naviger på din rejse i udlandet uden behov for mobilfordbindelse, søg efter rutepunkter, mens du er på en lang vandretur osv. Alle app-funktioner er designet til at fungere offline..
|
||||
‣ <b>Respekt for privatlivets fred</b>: Appen er designet med fokus på privatlivets fred – den identificerer ikke personer, sporer ikke og indsamler ikke personlige oplysninger. Annoncefri.
|
||||
‣ <b>Sparer på batteriet og plads</b>: Dræner ikke dit batteri som andre navigationsapps. Kompakte kort sparer værdifuld plads på din telefon.
|
||||
‣ <b>Gratis og udviklet af fællesskabet</b>: Folk som dig har været med til at udvikle appen ved at tilføje steder til OpenStreetMap, teste og give feedback på funktioner samt bidrage med deres udviklingskompetencer og penge.
|
||||
‣ <b>Åben og gennemsigtig beslutningstagning og økonomi, non-profit og fuldstændig open source.</b>
|
||||
|
||||
<b>Vigtigste funktioner</b>:
|
||||
• Detaljerede kort med steder, der ikke er tilgængelige på Google Maps, kan downloades.
|
||||
• Udendørstilstand med fremhævede vandreruter, campingpladser, vandkilder, bjergtoppe, højdekurver osv.
|
||||
• Gang- og cykelstier
|
||||
• Interessepunkter som restauranter, tankstationer, hoteller, butikker, seværdigheder og meget mere
|
||||
• Søg efter navn, adresse eller efter interessepunkt-kategori
|
||||
• Navigation med stemmevejledning til gående, cyklende eller kørende
|
||||
• Bogmærk dine yndlingssteder med ét enkelt tryk
|
||||
• Offline Wikipedia-artikler
|
||||
• Lag med metrolinjer og rutevejledning
|
||||
• Sporoptagelse
|
||||
• Eksportér og importér bogmærker og ruter i KML, KMZ, GPX-formater
|
||||
• En mørk tilstand til brug om natten
|
||||
• Forbedr kortdata for alle ved hjælp af en simpel, indbygget redigeringsfunktion
|
||||
• Android Auto-understøttelse
|
||||
|
||||
Rapportér app-problemer, kom med forslag og bliv en del af vores fællesskab på <b><i>comaps.app</i></b> webstedet.
|
||||
|
||||
<b>Nu med frihed</b>
|
||||
Udforsk din rejse, og navigér i verden med fokus på privatliv og fællesskab!
|
||||
@@ -0,0 +1 @@
|
||||
Nem kortnavigation - Oplev mere af din rejse - Drevet af fællesskabet
|
||||
1
android/app/src/google/play/listings/da-DK/title.txt
Normal file
1
android/app/src/google/play/listings/da-DK/title.txt
Normal file
@@ -0,0 +1 @@
|
||||
CoMaps - Naviger med privatliv
|
||||
@@ -1,4 +1,4 @@
|
||||
Eine von der Community betriebene, kostenlose Open-Source Karten App, die auf OpenStreetMap-Daten basiert. Transparent, datensparsam und nicht gewinnorientiert.
|
||||
Eine von der Community betriebene, kostenlose Open-Source Karten App, die auf OpenStreetMap-Daten basiert. Ein Gemeinschaftsprojekt mit Fokus auf Transparenz und non-profit.
|
||||
|
||||
Werde Teil der Community und hilf mit, die beste Karten-App zu entwickeln
|
||||
• Nutze die App und erzähle anderen davon
|
||||
@@ -8,8 +8,8 @@ Werde Teil der Community und hilf mit, die beste Karten-App zu entwickeln
|
||||
<i>Dein Feedback und deine 5-Sterne-Bewertung sind die beste Unterstützung für uns!</i>
|
||||
|
||||
‣ <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>Offlinekarten</b>: Plane und navigiere im Ausland ohne Mobilfunkverbindung, finde Wegpunkte auf abgelegenen Wanderungen usw. Alle Funktionen sind für den Offline-Einsatz konzipiert.
|
||||
‣ <b>Datenschutz ist uns wichtig!</b>: Die App wurde mit Fokus auf Privatsphäre entwickelt – kein Tracking, keine Erfassung persönlicher Daten, keine Werbung.
|
||||
‣ <b>Spart Akku und Speicherplatz</b>: Verbraucht nicht unnötig Akku wie andere Navi-Apps. Kompakte Karten sparen Speicherplatz auf Deinem Gerät.
|
||||
‣ <b>Kostenlos und von der Community entwickelt</b>: Menschen wie du haben geholfen, die App zu entwickeln – durch das Hinzufügen von Orten zu OpenStreetMap, Testen von neuen Funktionen, Softwareentwicklung oder Spenden.
|
||||
‣ <b>Offen und transparent bei Entscheidungen und Finanzen, gemeinnützig und vollständig Open Source</b>
|
||||
@@ -32,5 +32,5 @@ Werde Teil der Community und hilf mit, die beste Karten-App zu entwickeln
|
||||
|
||||
Bitte melde Probleme, schlage neue Funktionen vor und werde Teil der Community auf unserer Website: <b><i>comaps.app</i></b>
|
||||
|
||||
<b>Freiheit beginnt hier</b>
|
||||
<b>Entdecke die Unabhängigkeit</b>
|
||||
Entdecke deine Reise – navigiere in der Welt mit Datenschutz!
|
||||
|
||||
@@ -1 +0,0 @@
|
||||
|
||||
@@ -0,0 +1,35 @@
|
||||
Komunitateak gidatutako doako eta kode irekiko aplikazioa OpenStreetMap datuetan oinarrituta, gardentasuna, pribatutasuna eta irabazi asmorik gabeko konpromisoarekin indartua.
|
||||
|
||||
Sartu komunitatean eta lagundu mapa aplikaziorik onena egiten
|
||||
• Erabili aplikazioa eta horri buruzko iritsia zabaldu
|
||||
• Eman feedbacka eta txostenetako gaiak
|
||||
• Eguneratu maparen datuak aplikazioan edo OpenStreetMap webgunean
|
||||
<i> Zure iritzia eta 5 izarreko berrikuspenak dira guretzako laguntza onena! </ i>
|
||||
|
||||
‣ <b>Sinplea</b>: oso erraza da ondo funtzionatzen duten funtzioak erabiltzea.
|
||||
‣ <b> Lineaz kanpo erabiltzeko prest </ b> Planifikatu eta nabigatu atzerrira bidaiatzea, konexio beharrik gabe, bilatu bideak urruneko ibilaldi batean, etab. Aplikazioaren funtzio guztiak lineaz kanpo lan egiteko diseinatuta daude.
|
||||
‣ <b> Pribatutasuna errespetatzea </ b>: aplikazioa pribatutasunarekin diseinatuta dago, ez du pertsonak identifikatzen, ez du jarraipena egiten, eta ez du informazio pertsonala biltzen. Iragarkirik gabe.
|
||||
‣ <b> Zure bateria eta espazioa gordetzen ditu </ b>: ez du bateria xukatu beste nabigazio aplikazioak bezala. Mapa trinkoek espazioa aurrezten dute zure telefonoan.
|
||||
‣ <b> Libre eta komunitateak eraikitakoa: Zu bezalako jendeak aplikazioa eraikitzen lagundu du tokiak gehituz OpenStreetMapen, probatuz eta funtzioei buruzko iritzia emanez eta iritsiz eta diruz lagunduz.
|
||||
‣ <b> Erabakiak hartzea eta finantza gardenak, irabazi asmorik gabekoa eta guztiz iturburu irekikoa. </ B>
|
||||
|
||||
<b> Ezaugarri nagusiak </ b>:
|
||||
• Deskargatu mapa zehatzak Google Maps-ekin eskuragarri ez dauden lekuekin
|
||||
• Landa eremua moduan nabarmendutako mendi ibilbideak, kanpinak, ur iturriak, gailurrak, sestra-lerroak, etab
|
||||
• Bideak eta bidegorriak
|
||||
• Jatetxe, gasolindegiak, hotelak, dendak, bisitak eta bestelako interesguneak
|
||||
• Bilatu izenaren edo helbide baten arabera, edo kategoriaren arabera
|
||||
• Oinez, txirrindularitzarako edo gidatzeko ahots-oharrak dituen nabigazioa
|
||||
• Markatu zure gogoko lekuak ikutu bakarrarekin
|
||||
• Lineaz kanpoko Wikipedia artikuluak
|
||||
• Metroaren garraio geruza eta jarraibideak
|
||||
• Arrastoen grabazioa
|
||||
• Laster-markak eta ibilbideak esportatu eta inportatu KML, KMZ, GPX formatuetan
|
||||
• Gauean erabiltzeko modu iluna
|
||||
• Hobetu mapako datuak oinarrizko editore integratua erabiliz
|
||||
• Android Auto laguntza
|
||||
|
||||
Mesedez, jakinarazi aplikazioaren gorabeherak, ideiak proposatu eta sartu gure komunitatean <b> <i> comaps.app </ i> </ b> webgunean.
|
||||
|
||||
<b> Askatasuna hemen </ b> da
|
||||
Ezagutu zure bidaia, nabigatu munduan pribatutasunarekin eta komunitatearen abangoardian!
|
||||
@@ -0,0 +1 @@
|
||||
Mapa nabigazio erraza - Ezagutu gehiago zure bidaiaz - Komunitatean egina
|
||||
1
android/app/src/google/play/listings/eu-ES/title.txt
Normal file
1
android/app/src/google/play/listings/eu-ES/title.txt
Normal file
@@ -0,0 +1 @@
|
||||
Comaps - Pribatuki nabigatu
|
||||
@@ -1 +1 @@
|
||||
Navigation facile - Découvrez plus lors de votre voyage - Fait par la communauté
|
||||
Navigation cartographique facile - Découvrez davantage de votre voyage - Propulsé par la communauté
|
||||
|
||||
@@ -0,0 +1,35 @@
|
||||
Aplicación de mapas gratuíta, de código aberto e xestionada pola comunidade, obtén os datos desde OpenStreetMap e co compromiso reforzado coa transparencia, privacidade e non ter o beneficio económico como obxectivo.
|
||||
|
||||
Únete á comunidade e axuda a que teñamos a mellor aplicación de mapas
|
||||
• Usa a aplicación e dille a outras persoas que o fas
|
||||
• Informa de fallos e publica túa experiencia
|
||||
• Actualiza os datos do mapa na aplicación ou no sitio web OpenStreetMap
|
||||
|
||||
<i>Os teus comentarios e recensións de 5 estrelas son a mellor axuda para nós!
|
||||
|
||||
‣ <b>Sen conexión de datos</b>: planea a viaxe e sigue a ruta sen precisar unha conexión á rede móbil, busca lugares relevantes nas andainas máis longas, etc. Todas as características da aplicación están deseñadas para funcionar sen precisar conexión de datos.
|
||||
‣ <b>Respecto pola privacidade</b>: a aplicación está deseñada coa privacidade en primeiro plano - non identifica ás persoas, non te segue, non recolle información sobre ti. Non ten publicidade.
|
||||
‣ <b>Simple e organizada</b>: características esenciais, fáciles de usar e que funcionan.
|
||||
‣ <b>Aforra batería e espazo</b>: non esgota a batería como outras aplicacións de navegación. Os mapas compactos aforran espazo na memoria do dispositivo.
|
||||
‣ <b>Gratuíta e feita pola comunidade</b>: persoas coma ti que axudan a crear a aplicación engadindo lugares en OpenStreetMap, probando novas características e dando a súa opinión, colaborando ao seu desenvolvemento con código ou financiamento.
|
||||
‣ <b>Proceso de toma de decisións Aberto e Transparente para os temas económicos, Sen ánimo de lucro e totalmente de Código Aberto</b>
|
||||
|
||||
<b>Características principais</b>:
|
||||
• Mapas detallados descargables con lugares que non están dispoñibles en Google Maps
|
||||
• Modo para actividades en exterior con camiños para andainas, lugares para acampar, fontes de auga, picos dos montes, curvas de nivel, etc
|
||||
• Rutas a pé e en bicicleta
|
||||
• Puntos de interese como restaurantes, gasoliñeiras, hoteis, tendas, miradores e moitos máis
|
||||
• Busca polo nome ou polo enderezo ou por categoría do punto de interese
|
||||
• Navegación con anuncios por voz para camiñar, ir en bicicleta ou conducir
|
||||
• Marca os lugares favoritos cun só toque
|
||||
• Artigos da Wikipedia sen conexión
|
||||
• Mapas do transporte por Metro
|
||||
• Gravación das rutas
|
||||
• Exportación e Importación de marcadores e rutas nos formatos KML, KMZ e GPX
|
||||
• Modo escuro para a noite
|
||||
• Contribúe a mellorar o mapa para todas as persoas usando o editor básico incluído
|
||||
|
||||
Por favor informa de calquera incidencia que xurda así como suxire novas funcións na nosa comunidade en <b><i>comaps.app</i></b>
|
||||
|
||||
<b>Aquí es Libre</b>
|
||||
Atopa o teu camiño, navega polo mundo con privacidade e coa comunidade como prioridade!
|
||||
1
android/app/src/google/play/listings/gl-ES/title.txt
Normal file
1
android/app/src/google/play/listings/gl-ES/title.txt
Normal file
@@ -0,0 +1 @@
|
||||
CoMaps -Navega con Privacidade
|
||||
@@ -0,0 +1,36 @@
|
||||
Een door de community ontwikkelde, gratis en open source kaartenapp, gebaseerd op OpenStreetMap-gegevens, met een sterke focus op transparantie en privacy, en zonder winstoogmerk.
|
||||
|
||||
Sluit je aan bij de community en help mee aan de ontwikkeling van de beste kaartenapp:
|
||||
• Gebruik de app en deel je ervaringen met anderen
|
||||
• Geef feedback en meld eventuele problemen
|
||||
• Houd de kaarten up-to-date, zowel in de app als op de OpenStreetMap-website
|
||||
|
||||
<i>Jouw feedback en 5-sterrenbeoordelingen zijn de beste steun voor ons!!</i>
|
||||
|
||||
‣ <b>Eenvoudig en verfijnd</b>: essentiële, gebruiksvriendelijke functies die gewoon werken.
|
||||
‣ <b>Offline-georiënteerd</b>: Plan en navigeer je reis in het buitenland zonder internet, zoek waypoints tijdens een lange wandeling, enzovoort. Alle functies zijn ontworpen om offline te functioneren.
|
||||
‣ <b>Respect voor privacy</b>: De app is ontworpen met privacy in gedachten - geen gegevensverzameling en advertentievrij.
|
||||
‣ <b>Bespaar je batterij en opslag</b>: De app verbruikt minder batterij dan andere navigatie-apps. Compacte kaarten besparen ruimte op je telefoon.
|
||||
‣ <b>Gratis en gebouwd door de community</b>: Mensen zoals jij helpen de app door plaatsen toe te voegen aan OpenStreetMap, functies te testen en feedback te geven, en hun programmervaardigheden bij te dragen of te doneren.
|
||||
‣ <b>Open en transparant besluitvormings- en financieel beleid, geen winstoogmerk en volledig open source.</b>
|
||||
|
||||
<b>Hoofdfuncties</b>:
|
||||
• Downloadbare gedetailleerde kaarten met plaatsen die niet beschikbaar zijn bij Google Maps
|
||||
• Buitenmodus met gemarkeerde wandelpaden, campings, waterbronnen, toppen, hoogtelijnen, enz.
|
||||
• Wandelpaden en fietspaden
|
||||
• Bezienswaardigheden zoals restaurants, tankstations, hotels, winkels en nog veel meer
|
||||
• Zoeken op naam of adres of op categorie
|
||||
• Navigatie met spraakmeldingen voor wandelen, fietsen of autorijden
|
||||
• Sla je favoriete plaatsen op met een enkele klik
|
||||
• Offline Wikipedia-artikelen
|
||||
• Metro laag en routebeschrijvingen
|
||||
• Trackregistratie
|
||||
• Exporteer en importeer bladwijzers en tracks in KML, KMZ, GPX-formaten
|
||||
• Een donkere modus voor gebruik 's nachts
|
||||
• Verbeter kaartgegevens voor iedereen met een eenvoudige ingebouwde editor
|
||||
• Ondersteuning voor Android Auto
|
||||
|
||||
Meld app-problemen, stel nieuwe functies voor en sluit je aan bij onze community op de <b><i>comaps.app</i></b> website.
|
||||
|
||||
<b>Vrijheid is hier/b>
|
||||
Ontdek je reis, navigeer over de wereld met privacy en community voorop!
|
||||
1
android/app/src/google/play/listings/pt-PT/title.txt
Normal file
1
android/app/src/google/play/listings/pt-PT/title.txt
Normal file
@@ -0,0 +1 @@
|
||||
CoMaps - Viaje com Privacidade
|
||||
1
android/app/src/google/play/listings/ro/title.txt
Normal file
1
android/app/src/google/play/listings/ro/title.txt
Normal file
@@ -0,0 +1 @@
|
||||
CoMaps - Navighează liniștit
|
||||
@@ -1 +1 @@
|
||||
Простая навигация по карте — Откройте больше за ваше путешествие. От сообщества
|
||||
Простая навигация по карте — Откройте больше за ваше путешествие — От сообщества
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
Бесплатна апликација за мапе отвореног кода коју води заједница заснована на OpenStreetMap подацима и ојачана посвећеношћу транспарентности, приватности и непрофитности.
|
||||
|
||||
Придружите се заједници и помозите да направимо најбољу навигацију
|
||||
Придружите се заједници и помозите да направите најбољу навигацију
|
||||
• Користите апликацију и ширите информације о њој
|
||||
• Оставите повратне информације и пријавите проблеме
|
||||
• Ажурирајте мапе из апликације или на сајту OpenStreetMap
|
||||
@@ -11,26 +11,26 @@
|
||||
‣ <b>Офлајн фокусирана</b>: Планирајте путовање у иностранство без употребе мобилне телефоније, потражите правац тачке током дугог путовања, итд . Све функције апликације су дизајниране за рад у режиму без интернета.
|
||||
‣ <b>Поштовање приватности</b>: Апликација је развијена с обзиром на приватност - не идентификује људе, не прати и не прикупља личне информације. Без реклама.
|
||||
‣ <b>Штеди батерију и простор</b>: Не празни батерију, као остале навигациje. Компактне mape штедe драгоценi prostor на вашем телефону..
|
||||
‣ <b>Free and Built by the Community</b>: Такви људи, као што сте помогли да креирате апликацију, додајући места у OpenStreetMap, тестира и остављајући повратне информације о функцијама, као и стављајући своје вештине развоја и новац.
|
||||
‣ <b>Отворено и транспарентно доношење одлука и финансија, непрофитни и потпуно отворени кода.</b>
|
||||
‣ <b>Бесплатно и изграђено од стране заједнице</b>: Људи попут вас помогли су у изради апликације додавањем места на OpenStreetMap, тестирањем и давањем повратних информација о функцијама и доприносом својим развојним вештинама и новцем.
|
||||
‣ <b>Отворено и транспарентно доношење одлука и финансије, непрофитне и потпуно отвореног кода.</b>
|
||||
|
||||
<b>Главне карактеристике</b>:
|
||||
• Преузимање детаљне мапе са локацијама које нису доступне у Google Maps
|
||||
• Истакнуте планинарске стазе, кампови, изворима воде, врхове, контуре линије итд
|
||||
• Пешачке и бициклистичке стазе
|
||||
• Тачке од интереса као што су ресторани, бензинске станице, хотели, атракције, шопинг и још много тога
|
||||
• Претрага по имену или адреси или по категорији интересних места
|
||||
• Навигација са гласовним огласима за планинарење, бициклизам или вожње аутомобила
|
||||
• Означи своја омиљене места са једним додиром
|
||||
• Офлајн Википедиа чланци
|
||||
• Транзитни слој метроа и упутства
|
||||
• Track recording
|
||||
• Export and import bookmarks and tracks in KML, KMZ, GPX formats
|
||||
• A dark mode to use during the night
|
||||
• Improve map data for everyone using a basic built-in editor
|
||||
• Подршка за Андроид Ауто
|
||||
<li>Преузимање детаљних мапа са локацијама које нису доступне у Google Maps</li>
|
||||
<li>Режим на отвореном са истакнутим планинарским стазама, кампови, извори воде, врхови, контурне линије, итд</li>
|
||||
<li>Пешачке и бициклистичке стазе</li>
|
||||
<li>Тачке интереса попут ресторана, бензинских станица, хотели, продавнице, разгледање и још много тога</li>
|
||||
<li>Претрага по имену, адреси или по ТОИ категоријама</li>
|
||||
<li>Навигација са гласовним упутима за планинарење, бициклизам или вожњу аутомобилом</li>
|
||||
<li>Обележите своја омиљена места једним додиром</li>
|
||||
<li>Википедија чланци без интернета</li>
|
||||
<li>Нивои транзита у метроа и смер кретања</li>
|
||||
<li>Снимање траса</li>
|
||||
<li>Извоз и увоз маркера и траса у форматима KML, KMZ, GPX</li>
|
||||
<li>Тамни режим за употребу ноћу</li>
|
||||
<li>Побољшавање картографских података за све, користећи основни едитор за уређивање</li>
|
||||
<li>Подршка за Андроид Ауто</li>
|
||||
|
||||
Молимо Вас да пријавите проблеме са апликацијом, предложите идеје и придружите се нашој заједници на <b><i>comaps.app</i></b> страни.
|
||||
|
||||
<b>Сад је слободна</b>
|
||||
<b>Сад је слободно</b>
|
||||
Откријте своје путовање, путујте светом с приватношћу и заједницом на челу!
|
||||
|
||||
@@ -1 +1 @@
|
||||
Једноставна навигација - Сазнајте више о свом путовању - Покреће је заједница
|
||||
Једноставна навигација - Сазнајте више о свом путовању - Ради на бази заједнице
|
||||
|
||||
@@ -1,36 +1,36 @@
|
||||
OpenStreetMap verilerine dayanan ve şeffaflık, gizlilik ve kar amacı gütmeyen olma taahhüdüyle güçlendirilen, topluluk tarafından yönetilen ücretsiz ve açık kaynaklı bir harita uygulaması.
|
||||
OpenStreetMap verilerine dayanan, kâr amacı gütmeyen, gizlilik ve şeffaflık odaklı, topluluk tarafından yönetilen, özgür ve açık kaynak kodlu bir harita uygulaması.
|
||||
|
||||
Topluluğa katılın ve en iyi harita uygulamasını oluşturmaya yardımcı olun
|
||||
• Uygulamayı kullanın ve bunu herkese duyurun
|
||||
• Geri bildirimde bulunun ve sorunları bildirin
|
||||
• Harita verilerini uygulamada veya OpenStreetMap web sitesinde güncelleyin
|
||||
Topluluğa katılın ve en iyi harita uygulamasını oluşturmamıza yardım edin
|
||||
• Uygulamayı kullanın ve çevrenize yayın
|
||||
• Geri bildirim verin ve sorunları bildirin
|
||||
• Harita verilerini uygulamadan veya OpenStreetMap üzerinden düzenleyin
|
||||
|
||||
<i>Geri bildirimleriniz ve 5 yıldızlı yorumlarınız bizim için en iyi destektir!</i>
|
||||
|
||||
‣ <b>Basit ve Cilalı</b>: sadece işe yarayan, kullanımı kolay temel özellikler.
|
||||
‣ <b>Çevrim dışı odaklı</b>: Cep telefonu hizmetine ihtiyaç duymadan yurtdışı seyahatinizi planlayın ve gezinin, uzun bir yürüyüş sırasında rota noktalarını arayın, vb. Tüm uygulama işlevleri çevrimdışı çalışmak üzere tasarlanmıştır.
|
||||
‣ <b>Gizliliğe Saygı</b>: Uygulama gizlilik düşünülerek tasarlanmıştır; kişileri tanımlamaz, takip etmez ve kişisel bilgi toplamaz. Reklamsız.
|
||||
‣ <b>Pilinizden ve Alanınızdan Tasarruf Edin</b>: Diğer navigasyon uygulamaları gibi pilinizi tüketmez. Kompakt haritalar telefonunuzda değerli alan tasarrufu sağlar.
|
||||
‣ <b>Ücretsiz ve Topluluk Tarafından Oluşturuldu</b>: Sizin gibi insanlar, OpenStreetMap'e yerler ekleyerek, özellikleri test ederek ve geri bildirimde bulunarak ve geliştirme becerilerinizi ve paranızı katkıda bulunarak uygulamanın oluşturulmasına yardımcı oldunuz..
|
||||
‣ <b>Açık ve Şeffaf Karar Alma ve Finansman, Kar Amacı Gütmeyen ve Tamamen Açık Kaynak.</b>
|
||||
‣ <b>Basit ve Temiz</b>: Sadece temel, kullanımı basit, işe yarayan özellikler.
|
||||
‣ <b>Çevrimdışı Odaklı</b>: Mobil veriye ihtiyaç duymadan yurt dışı seyahatinizi planlayın ve gezin, uzun bir yürüyüş sırasında rotanızdaki noktaları bulun ve daha fazlası . Tüm özellikler çevrimdışı çalışmak üzere tasarlanmıştır.
|
||||
‣ <b>Gizliliğe Saygılı</b>: Uygulama gizliliğe saygılı olarak tasarlanmıştır. Kullanıcı profilinizi çıkarmaz, sizi takip etmez ve kişisel bilgi toplamaz. Üstelik tamamen reklamsızdır.
|
||||
‣ <b>Pil ve Depolamanızdan Tasarruf Eder</b>: Diğer navigasyon uygulamaları gibi pilinizi sömürmez. Compact maps değerli depolama alanınızdan tasarruf eder.
|
||||
‣ <b>Ücretsizdir ve Gücünü Topluluktan Alır</b>: Sizin gibi insanlar OpenStreetMap'e yer ekleyerek, yeni özellikleri test ederek, geri bildirimde bulunarak, program geliştirme becerileri ve bağışlarla katkıda bulunarak uygulamanın oluşturulmasına yardımcı oldu.
|
||||
‣ <b>Açık ve Şeffaf Şekilde Yürütülen Karar Alma ve Fonlama Süreçleri, Kâr Amacı Gütmez ve Tamamen Açık Kaynaklı.</b>
|
||||
|
||||
<b>Ana Özellikleri</b>:
|
||||
• Google Haritalar'da bulunmayan yerleri içeren indirilebilir detaylı haritalar
|
||||
• Vurgulanan yürüyüş parkurları, kamp alanları, su kaynakları, zirveler, kontur çizgileriyle açık hava modu gibi
|
||||
• Yürüyüş yolları ve bisiklet yolları
|
||||
• Restoranlar, benzin istasyonları, oteller, mağazalar, turistik yerler gibi ilgi çekici noktalar ve daha fazlası
|
||||
• İsme veya adrese göre veya ilgi noktası kategorisine göre arama yapın
|
||||
• Yürüyerek, bisikletle veya araçla seyahat edenler için sesli duyurularla navigasyon
|
||||
• Favori yerlerinizi tek bir dokunuşla yer imlerine ekleyin
|
||||
• Çevrim dışı Wikipedia makaleleri
|
||||
• Metro geçiş katmanı ve yönleri
|
||||
• Rota kaydı
|
||||
• Yer imlerini ve parkurları KML, KMZ, GPX formatlarında dışa ve içe aktarın
|
||||
• Geceleri kullanmak için karanlık mod
|
||||
• Temel bir yerleşik düzenleyici kullanarak herkes için harita verilerini iyileştirin
|
||||
<b>Ana Özellikler</b>:
|
||||
• Google Haritalar'da bulunmayan yerleri içeren, çevrimdışı detaylı haritalar
|
||||
• Yürüyüş parkurları, kamp alanları, su kaynakları, zirveler, kontur çizgileri vb. nesneleri vurgulayan açık hava modu
|
||||
• Yürüyüş ve bisiklet yolları
|
||||
• Restoran, benzin istasyonu, otel, mağaza, görülecek yerler ve çok daha fazla harita noktası
|
||||
• İsim, adres veya harita noktası kategorisine göre arama yapın
|
||||
• Sesli yönlendirmeye sahip yürüyüş, bisiklet ve araç navigasyonu
|
||||
• En sevdiğiniz mekanları tek dokunuşla yer imlerinize kaydedin
|
||||
• Çevrimdışı Vikipedi makaleleri
|
||||
• Metro ulaşım katmanı ve rotaları
|
||||
• GPS izinizi kaydedin
|
||||
• Yer imi ve GPS izlerinizi KML, KMZ ve GPX biçimlerinde dışa veya içe aktarın
|
||||
• Gece boyunca kullanmanızı sağlayacak koyu mod
|
||||
• Uygulama içi düzenleyiciyi kullanarak harita verilerini herkes için daha iyi hale getirin
|
||||
• Android Auto desteği
|
||||
|
||||
Lütfen uygulama sorunlarını bildirin, fikir önerin ve <b><i>comaps.app</i></b> web sitesinde topluluğumuza katılın.
|
||||
Lütfen <b><i>comaps.app</i></b> adresinden uygulama sorunlarını bildirin, önerilerinizi paylaşın ve topluluğumuza katılın.
|
||||
|
||||
<b>Özgürlük Burada</b>
|
||||
Yolculuğunuzu keşfedin, gizlilik ve topluluk ön planda tutularak dünyayı keşfedin!
|
||||
<b>Özgürlük Buradan Başlıyor</b>
|
||||
Yolculuğunuzun ötesine geçin, gizlilik ve topluluğu ön planda tutarak dünyada gezinin!
|
||||
|
||||
@@ -1 +1 @@
|
||||
Kolayca gezinin - Seyahat etmenin ötesini bulun - Gönüllüler tarafından yapıldı
|
||||
Kullanımı kolay harita - Yolculuğun ötesine geçin - topluluğun katkılarıyla
|
||||
|
||||
36
android/app/src/google/play/listings/vi/full-description.txt
Normal file
36
android/app/src/google/play/listings/vi/full-description.txt
Normal file
@@ -0,0 +1,36 @@
|
||||
Một ứng dụng bản đồ miễn phí & mã nguồn mở do cộng đồng phát triển, dựa trên dữ liệu OpenStreetMap và cam kết mạnh mẽ về minh bạch, quyền riêng tư và phi lợi nhuận.
|
||||
|
||||
Hãy tham gia cộng đồng và cùng chúng tôi xây dựng ứng dụng bản đồ tốt nhất!
|
||||
• Sử dụng ứng dụng và chia sẻ với mọi người
|
||||
• Đóng góp ý kiến và báo cáo lỗi
|
||||
• Cập nhật dữ liệu bản đồ trong ứng dụng hoặc trên trang web OpenStreetMap
|
||||
|
||||
<i>Đánh giá 5 sao và phản hồi của bạn là sự ủng hộ quý giá nhất!</i>
|
||||
|
||||
‣ <b>Đơn giản và tinh tế</b>: Những tính năng cần thiết, dễ sử dụng và hoạt động mượt mà.
|
||||
‣ <b>Hoạt động offline</b>: Lên kế hoạch và điều hướng chuyến đi ở nước ngoài mà không cần kết nối mạng, tìm kiếm địa điểm khi đi bộ đường dài... Tất cả chức năng đều hoạt động offline.
|
||||
‣ <b>Tôn trọng quyền riêng tư</b>: Ứng dụng được thiết kế để bảo vệ sự riêng tư - không định danh người dùng, không theo dõi và không thu thập thông tin cá nhân. Hoàn toàn không có quảng cáo.
|
||||
‣ <b>Tiết kiệm pin và dung lượng</b>: Không ngốn pin như các ứng dụng bản đồ khác. Bản đồ nhỏ gọn giúp tiết kiệm dung lượng điện thoại.
|
||||
‣ <b>Miễn phí và được xây dựng bởi cộng đồng</b>: Chính những người như bạn đã góp phần phát triển ứng dụng bằng cách thêm địa điểm vào OpenStreetMap, kiểm thử tính năng, đóng góp ý kiến, kỹ năng lập trình và tài chính.
|
||||
‣ <b>Minh bạch trong quyết định & tài chính, phi lợi nhuận và mã nguồn mở hoàn toàn.</b>
|
||||
|
||||
<b>Tính năng chính</b>:
|
||||
• Tải bản đồ chi tiết với nhiều địa điểm không có trên Google Maps
|
||||
• Chế độ ngoài trời với các tuyến đi bộ, khu cắm trại, nguồn nước, đỉnh núi, đường đồng mức... được đánh dấu rõ ràng
|
||||
• Đường đi bộ và đường dành cho xe đạp
|
||||
• Địa điểm quan tâm như nhà hàng, trạm xăng, khách sạn, cửa hàng, điểm tham quan...
|
||||
• Tìm kiếm theo tên, địa chỉ hoặc danh mục địa điểm
|
||||
• Dẫn đường với thông báo bằng giọng nói cho đi bộ, đạp xe hoặc lái xe
|
||||
• Đánh dấu địa điểm yêu thích chỉ với một lần chạm
|
||||
• Đọc bài viết Wikipedia offline
|
||||
• Lớp bản đồ tàu điện ngầm và chỉ dẫn di chuyển
|
||||
• Ghi lại lộ trình
|
||||
• Xuất/nhập bookmark và lộ trình dưới dạng KML, KMZ, GPX
|
||||
• Chế độ tối để sử dụng ban đêm
|
||||
• Chỉnh sửa bản đồ cơ bản ngay trong ứng dụng để cải thiện dữ liệu cho mọi người
|
||||
• Hỗ trợ Android Auto
|
||||
|
||||
Hãy báo cáo lỗi, đề xuất ý tưởng và tham gia cộng đồng của chúng tôi tại trang web <i><b>comaps.app</b></i>.
|
||||
|
||||
<b>Tự do ngay trong tay bạn!</b>
|
||||
Khám phá hành trình, điều hướng thế giới với sự riêng tư và tinh thần cộng đồng!
|
||||
@@ -0,0 +1 @@
|
||||
Định vị bản đồ dễ dàng - Khám phá thế giới quanh bạn - Đồng hành cùng cộng đồng
|
||||
1
android/app/src/google/play/listings/vi/title.txt
Normal file
1
android/app/src/google/play/listings/vi/title.txt
Normal file
@@ -0,0 +1 @@
|
||||
CoMaps - Định vị riêng tư
|
||||
@@ -1 +0,0 @@
|
||||
../../../../google/java/app/organicmaps/location
|
||||
1
android/app/src/huawei/java/app/organicmaps/sdk/location
Symbolic link
1
android/app/src/huawei/java/app/organicmaps/sdk/location
Symbolic link
@@ -0,0 +1 @@
|
||||
../../../../../google/java/app/organicmaps/sdk/location
|
||||
@@ -20,6 +20,9 @@
|
||||
<uses-feature
|
||||
android:name="android.hardware.location.gps"
|
||||
android:required="false"/>
|
||||
<uses-permission
|
||||
android:name="android.permission.READ_EXTERNAL_STORAGE"
|
||||
android:maxSdkVersion="22" />
|
||||
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
|
||||
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
|
||||
<uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS" />
|
||||
|
||||
@@ -5,21 +5,21 @@ project(organicmaps C CXX)
|
||||
set(SRC
|
||||
# JNI headers
|
||||
../../../../../private.h
|
||||
app/organicmaps/core/jni_helper.hpp
|
||||
app/organicmaps/core/jni_java_methods.hpp
|
||||
app/organicmaps/core/logging.hpp
|
||||
app/organicmaps/core/ScopedEnv.hpp
|
||||
app/organicmaps/core/ScopedLocalRef.hpp
|
||||
app/organicmaps/Framework.hpp
|
||||
app/organicmaps/opengl/android_gl_utils.hpp
|
||||
app/organicmaps/opengl/androidoglcontext.hpp
|
||||
app/organicmaps/opengl/androidoglcontextfactory.hpp
|
||||
app/organicmaps/opengl/gl3stub.h
|
||||
app/organicmaps/platform/GuiThread.hpp
|
||||
app/organicmaps/platform/AndroidPlatform.hpp
|
||||
app/organicmaps/util/Distance.hpp
|
||||
app/organicmaps/util/FeatureIdBuilder.hpp
|
||||
app/organicmaps/vulkan/android_vulkan_context_factory.hpp
|
||||
app/organicmaps/sdk/core/jni_helper.hpp
|
||||
app/organicmaps/sdk/core/jni_java_methods.hpp
|
||||
app/organicmaps/sdk/core/logging.hpp
|
||||
app/organicmaps/sdk/core/ScopedEnv.hpp
|
||||
app/organicmaps/sdk/core/ScopedLocalRef.hpp
|
||||
app/organicmaps/sdk/Framework.hpp
|
||||
app/organicmaps/sdk/opengl/android_gl_utils.hpp
|
||||
app/organicmaps/sdk/opengl/androidoglcontext.hpp
|
||||
app/organicmaps/sdk/opengl/androidoglcontextfactory.hpp
|
||||
app/organicmaps/sdk/opengl/gl3stub.h
|
||||
app/organicmaps/sdk/platform/GuiThread.hpp
|
||||
app/organicmaps/sdk/platform/AndroidPlatform.hpp
|
||||
app/organicmaps/sdk/util/Distance.hpp
|
||||
app/organicmaps/sdk/util/FeatureIdBuilder.hpp
|
||||
app/organicmaps/sdk/vulkan/android_vulkan_context_factory.hpp
|
||||
|
||||
# JNI sources
|
||||
app/organicmaps/sdk/search/DisplayedCategories.cpp
|
||||
@@ -39,47 +39,47 @@ set(SRC
|
||||
app/organicmaps/sdk/MapStyle.cpp
|
||||
app/organicmaps/sdk/OrganicMaps.cpp
|
||||
app/organicmaps/sdk/Router.cpp
|
||||
app/organicmaps/core/jni_helper.cpp
|
||||
app/organicmaps/core/jni_java_methods.cpp
|
||||
app/organicmaps/core/logging.cpp
|
||||
app/organicmaps/bookmarks/data/BookmarkManager.cpp
|
||||
app/organicmaps/DownloadResourcesLegacyActivity.cpp
|
||||
app/organicmaps/editor/Editor.cpp
|
||||
app/organicmaps/editor/OpeningHours.cpp
|
||||
app/organicmaps/editor/OsmOAuth.cpp
|
||||
app/organicmaps/Framework.cpp
|
||||
app/organicmaps/isolines/IsolinesManager.cpp
|
||||
app/organicmaps/LocationState.cpp
|
||||
app/organicmaps/Map.cpp
|
||||
app/organicmaps/MapManager.cpp
|
||||
app/organicmaps/settings/UnitLocale.cpp
|
||||
app/organicmaps/settings/MapLanguageCode.cpp
|
||||
app/organicmaps/sound/tts.cpp
|
||||
app/organicmaps/subway/SubwayManager.cpp
|
||||
app/organicmaps/TrackRecorder.cpp
|
||||
app/organicmaps/TrafficState.cpp
|
||||
app/organicmaps/UserMarkHelper.cpp
|
||||
app/organicmaps/opengl/android_gl_utils.cpp
|
||||
app/organicmaps/opengl/androidoglcontext.cpp
|
||||
app/organicmaps/opengl/androidoglcontextfactory.cpp
|
||||
app/organicmaps/opengl/gl3stub.cpp
|
||||
app/organicmaps/platform/GuiThread.cpp
|
||||
app/organicmaps/platform/HttpThread.cpp
|
||||
app/organicmaps/platform/Language.cpp
|
||||
app/organicmaps/platform/Localization.cpp
|
||||
app/organicmaps/platform/AndroidPlatform.cpp
|
||||
app/organicmaps/platform/PThreadImpl.cpp
|
||||
app/organicmaps/platform/SecureStorage.cpp
|
||||
app/organicmaps/platform/SocketImpl.cpp
|
||||
app/organicmaps/util/Config.cpp
|
||||
app/organicmaps/util/GeoUtils.cpp
|
||||
app/organicmaps/util/HttpClient.cpp
|
||||
app/organicmaps/util/Language.cpp
|
||||
app/organicmaps/util/LogsManager.cpp
|
||||
app/organicmaps/util/NetworkPolicy.cpp
|
||||
app/organicmaps/util/StringUtils.cpp
|
||||
app/organicmaps/util/UiThread.cpp
|
||||
app/organicmaps/vulkan/android_vulkan_context_factory.cpp
|
||||
app/organicmaps/sdk/core/jni_helper.cpp
|
||||
app/organicmaps/sdk/core/jni_java_methods.cpp
|
||||
app/organicmaps/sdk/core/logging.cpp
|
||||
app/organicmaps/sdk/bookmarks/data/BookmarkManager.cpp
|
||||
app/organicmaps/sdk/DownloadResourcesLegacyActivity.cpp
|
||||
app/organicmaps/sdk/editor/Editor.cpp
|
||||
app/organicmaps/sdk/editor/OpeningHours.cpp
|
||||
app/organicmaps/sdk/editor/OsmOAuth.cpp
|
||||
app/organicmaps/sdk/Framework.cpp
|
||||
app/organicmaps/sdk/isolines/IsolinesManager.cpp
|
||||
app/organicmaps/sdk/LocationState.cpp
|
||||
app/organicmaps/sdk/Map.cpp
|
||||
app/organicmaps/sdk/MapManager.cpp
|
||||
app/organicmaps/sdk/settings/UnitLocale.cpp
|
||||
app/organicmaps/sdk/settings/MapLanguageCode.cpp
|
||||
app/organicmaps/sdk/sound/tts.cpp
|
||||
app/organicmaps/sdk/subway/SubwayManager.cpp
|
||||
app/organicmaps/sdk/TrackRecorder.cpp
|
||||
app/organicmaps/sdk/TrafficState.cpp
|
||||
app/organicmaps/sdk/UserMarkHelper.cpp
|
||||
app/organicmaps/sdk/opengl/android_gl_utils.cpp
|
||||
app/organicmaps/sdk/opengl/androidoglcontext.cpp
|
||||
app/organicmaps/sdk/opengl/androidoglcontextfactory.cpp
|
||||
app/organicmaps/sdk/opengl/gl3stub.cpp
|
||||
app/organicmaps/sdk/platform/GuiThread.cpp
|
||||
app/organicmaps/sdk/platform/HttpThread.cpp
|
||||
app/organicmaps/sdk/platform/Language.cpp
|
||||
app/organicmaps/sdk/platform/Localization.cpp
|
||||
app/organicmaps/sdk/platform/AndroidPlatform.cpp
|
||||
app/organicmaps/sdk/platform/PThreadImpl.cpp
|
||||
app/organicmaps/sdk/platform/SecureStorage.cpp
|
||||
app/organicmaps/sdk/platform/SocketImpl.cpp
|
||||
app/organicmaps/sdk/util/Config.cpp
|
||||
app/organicmaps/sdk/util/GeoUtils.cpp
|
||||
app/organicmaps/sdk/util/HttpClient.cpp
|
||||
app/organicmaps/sdk/util/Language.cpp
|
||||
app/organicmaps/sdk/util/LogsManager.cpp
|
||||
app/organicmaps/sdk/util/NetworkPolicy.cpp
|
||||
app/organicmaps/sdk/util/StringUtils.cpp
|
||||
app/organicmaps/sdk/util/UiThread.cpp
|
||||
app/organicmaps/sdk/vulkan/android_vulkan_context_factory.cpp
|
||||
)
|
||||
|
||||
omim_add_library(${PROJECT_NAME} SHARED ${SRC})
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
#include "app/organicmaps/core/jni_helper.hpp"
|
||||
#include "app/organicmaps/sdk/core/jni_helper.hpp"
|
||||
|
||||
#include "app/organicmaps/Framework.hpp"
|
||||
#include "app/organicmaps/sdk/Framework.hpp"
|
||||
|
||||
#include "indexer/map_style.hpp"
|
||||
|
||||
|
||||
@@ -16,7 +16,7 @@
|
||||
#include "base/logging.hpp"
|
||||
#include "base/string_utils.hpp"
|
||||
|
||||
#include "app/organicmaps/core/jni_helper.hpp"
|
||||
#include "app/organicmaps/sdk/core/jni_helper.hpp"
|
||||
|
||||
#include <functional>
|
||||
#include <iostream>
|
||||
@@ -70,7 +70,7 @@ extern "C"
|
||||
}
|
||||
|
||||
JNIEXPORT jint JNICALL
|
||||
Java_app_organicmaps_DownloadResourcesLegacyActivity_nativeGetBytesToDownload(JNIEnv * env, jclass clazz)
|
||||
Java_app_organicmaps_sdk_DownloadResourcesLegacyActivity_nativeGetBytesToDownload(JNIEnv * env, jclass clazz)
|
||||
{
|
||||
// clear all
|
||||
g_filesToDownload.clear();
|
||||
@@ -149,7 +149,7 @@ extern "C"
|
||||
}
|
||||
|
||||
JNIEXPORT jint JNICALL
|
||||
Java_app_organicmaps_DownloadResourcesLegacyActivity_nativeStartNextFileDownload(JNIEnv * env, jclass clazz, jobject listener)
|
||||
Java_app_organicmaps_sdk_DownloadResourcesLegacyActivity_nativeStartNextFileDownload(JNIEnv * env, jclass clazz, jobject listener)
|
||||
{
|
||||
if (g_filesToDownload.empty())
|
||||
return ERR_NO_MORE_FILES;
|
||||
@@ -171,14 +171,14 @@ extern "C"
|
||||
curFile.GetRemoteSize(),
|
||||
std::bind(&DownloadFileFinished, ptr, _1),
|
||||
std::bind(&DownloadFileProgress, ptr, _1),
|
||||
512 * 1024, false));
|
||||
0, false));
|
||||
});
|
||||
|
||||
return ERR_FILE_IN_PROGRESS;
|
||||
}
|
||||
|
||||
JNIEXPORT void JNICALL
|
||||
Java_app_organicmaps_DownloadResourcesLegacyActivity_nativeCancelCurrentFile(JNIEnv * env, jclass clazz)
|
||||
Java_app_organicmaps_sdk_DownloadResourcesLegacyActivity_nativeCancelCurrentFile(JNIEnv * env, jclass clazz)
|
||||
{
|
||||
LOG(LDEBUG, ("cancelCurrentFile, currentRequest=", g_currentRequest));
|
||||
g_currentRequest.reset();
|
||||
@@ -1,19 +1,19 @@
|
||||
#include "app/organicmaps/Framework.hpp"
|
||||
#include "app/organicmaps/sdk/Framework.hpp"
|
||||
|
||||
#include "app/organicmaps/core/jni_helper.hpp"
|
||||
#include "app/organicmaps/UserMarkHelper.hpp"
|
||||
#include "app/organicmaps/opengl/androidoglcontextfactory.hpp"
|
||||
#include "app/organicmaps/platform/AndroidPlatform.hpp"
|
||||
#include "app/organicmaps/sdk/core/jni_helper.hpp"
|
||||
#include "app/organicmaps/sdk/UserMarkHelper.hpp"
|
||||
#include "app/organicmaps/sdk/opengl/androidoglcontextfactory.hpp"
|
||||
#include "app/organicmaps/sdk/platform/AndroidPlatform.hpp"
|
||||
#include "app/organicmaps/sdk/routing/JunctionInfo.hpp"
|
||||
#include "app/organicmaps/sdk/routing/RouteMarkData.hpp"
|
||||
#include "app/organicmaps/sdk/routing/RouteMarkType.hpp"
|
||||
#include "app/organicmaps/sdk/routing/RouteRecommendationType.hpp"
|
||||
#include "app/organicmaps/sdk/routing/RoutingInfo.hpp"
|
||||
#include "app/organicmaps/sdk/routing/TransitRouteInfo.hpp"
|
||||
#include "app/organicmaps/util/Distance.hpp"
|
||||
#include "app/organicmaps/util/FeatureIdBuilder.hpp"
|
||||
#include "app/organicmaps/util/NetworkPolicy.hpp"
|
||||
#include "app/organicmaps/vulkan/android_vulkan_context_factory.hpp"
|
||||
#include "app/organicmaps/sdk/util/Distance.hpp"
|
||||
#include "app/organicmaps/sdk/util/FeatureIdBuilder.hpp"
|
||||
#include "app/organicmaps/sdk/util/NetworkPolicy.hpp"
|
||||
#include "app/organicmaps/sdk/vulkan/android_vulkan_context_factory.hpp"
|
||||
|
||||
#include "map/bookmark_helpers.hpp"
|
||||
#include "map/chart_generator.hpp"
|
||||
@@ -824,35 +824,35 @@ RoutingManager::LoadRouteHandler g_loadRouteHandler;
|
||||
|
||||
/// @name JNI EXPORTS
|
||||
JNIEXPORT jstring JNICALL
|
||||
Java_app_organicmaps_Framework_nativeGetAddress(JNIEnv * env, jclass clazz, jdouble lat, jdouble lon)
|
||||
Java_app_organicmaps_sdk_Framework_nativeGetAddress(JNIEnv * env, jclass clazz, jdouble lat, jdouble lon)
|
||||
{
|
||||
auto const info = frm()->GetAddressAtPoint(mercator::FromLatLon(lat, lon));
|
||||
return jni::ToJavaString(env, info.FormatAddress());
|
||||
}
|
||||
|
||||
JNIEXPORT void JNICALL
|
||||
Java_app_organicmaps_Framework_nativeClearApiPoints(JNIEnv * env, jclass clazz)
|
||||
Java_app_organicmaps_sdk_Framework_nativeClearApiPoints(JNIEnv * env, jclass clazz)
|
||||
{
|
||||
frm()->GetBookmarkManager().GetEditSession().ClearGroup(UserMark::Type::API);
|
||||
}
|
||||
|
||||
JNIEXPORT jint JNICALL
|
||||
Java_app_organicmaps_Framework_nativeParseAndSetApiUrl(JNIEnv * env, jclass clazz, jstring url)
|
||||
Java_app_organicmaps_sdk_Framework_nativeParseAndSetApiUrl(JNIEnv * env, jclass clazz, jstring url)
|
||||
{
|
||||
return static_cast<jint>(frm()->ParseAndSetApiURL(jni::ToNativeString(env, url)));
|
||||
}
|
||||
|
||||
JNIEXPORT jobject JNICALL
|
||||
Java_app_organicmaps_Framework_nativeGetParsedRoutingData(JNIEnv * env, jclass clazz)
|
||||
Java_app_organicmaps_sdk_Framework_nativeGetParsedRoutingData(JNIEnv * env, jclass clazz)
|
||||
{
|
||||
using namespace url_scheme;
|
||||
static jclass const pointClazz = jni::GetGlobalClassRef(env, "app/organicmaps/api/RoutePoint");
|
||||
static jclass const pointClazz = jni::GetGlobalClassRef(env, "app/organicmaps/sdk/api/RoutePoint");
|
||||
// Java signature : RoutePoint(double lat, double lon, String name)
|
||||
static jmethodID const pointConstructor = jni::GetConstructorID(env, pointClazz, "(DDLjava/lang/String;)V");
|
||||
|
||||
static jclass const routeDataClazz = jni::GetGlobalClassRef(env, "app/organicmaps/api/ParsedRoutingData");
|
||||
static jclass const routeDataClazz = jni::GetGlobalClassRef(env, "app/organicmaps/sdk/api/ParsedRoutingData");
|
||||
// Java signature : ParsedRoutingData(RoutePoint[] points, int routerType) {
|
||||
static jmethodID const routeDataConstructor = jni::GetConstructorID(env, routeDataClazz, "([Lapp/organicmaps/api/RoutePoint;I)V");
|
||||
static jmethodID const routeDataConstructor = jni::GetConstructorID(env, routeDataClazz, "([Lapp/organicmaps/sdk/api/RoutePoint;I)V");
|
||||
|
||||
auto const & routingData = frm()->GetParsedRoutingData();
|
||||
jobjectArray points = jni::ToJavaArray(env, pointClazz, routingData.m_points,
|
||||
@@ -868,10 +868,10 @@ Java_app_organicmaps_Framework_nativeGetParsedRoutingData(JNIEnv * env, jclass c
|
||||
}
|
||||
|
||||
JNIEXPORT jobject JNICALL
|
||||
Java_app_organicmaps_Framework_nativeGetParsedSearchRequest(JNIEnv * env, jclass clazz)
|
||||
Java_app_organicmaps_sdk_Framework_nativeGetParsedSearchRequest(JNIEnv * env, jclass clazz)
|
||||
{
|
||||
using namespace url_scheme;
|
||||
static jclass const cl = jni::GetGlobalClassRef(env, "app/organicmaps/api/ParsedSearchRequest");
|
||||
static jclass const cl = jni::GetGlobalClassRef(env, "app/organicmaps/sdk/api/ParsedSearchRequest");
|
||||
// Java signature : ParsedSearchRequest(String query, String locale, double lat, double lon, boolean isSearchOnMap)
|
||||
static jmethodID const ctor = jni::GetConstructorID(env, cl, "(Ljava/lang/String;Ljava/lang/String;DDZ)V");
|
||||
auto const & r = frm()->GetParsedSearchRequest();
|
||||
@@ -880,28 +880,28 @@ Java_app_organicmaps_Framework_nativeGetParsedSearchRequest(JNIEnv * env, jclass
|
||||
}
|
||||
|
||||
JNIEXPORT jstring JNICALL
|
||||
Java_app_organicmaps_Framework_nativeGetParsedAppName(JNIEnv * env, jclass)
|
||||
Java_app_organicmaps_sdk_Framework_nativeGetParsedAppName(JNIEnv * env, jclass)
|
||||
{
|
||||
std::string const & appName = frm()->GetParsedAppName();
|
||||
return (appName.empty()) ? nullptr : jni::ToJavaString(env, appName);
|
||||
}
|
||||
|
||||
JNIEXPORT jstring JNICALL
|
||||
Java_app_organicmaps_Framework_nativeGetParsedOAuth2Code(JNIEnv * env, jclass)
|
||||
Java_app_organicmaps_sdk_Framework_nativeGetParsedOAuth2Code(JNIEnv * env, jclass)
|
||||
{
|
||||
std::string const & code = frm()->GetParsedOAuth2Code();
|
||||
return jni::ToJavaString(env, code);
|
||||
}
|
||||
|
||||
JNIEXPORT jstring JNICALL
|
||||
Java_app_organicmaps_Framework_nativeGetParsedBackUrl(JNIEnv * env, jclass)
|
||||
Java_app_organicmaps_sdk_Framework_nativeGetParsedBackUrl(JNIEnv * env, jclass)
|
||||
{
|
||||
std::string const & backUrl = frm()->GetParsedBackUrl();
|
||||
return (backUrl.empty()) ? nullptr : jni::ToJavaString(env, backUrl);
|
||||
}
|
||||
|
||||
JNIEXPORT jdoubleArray JNICALL
|
||||
Java_app_organicmaps_Framework_nativeGetParsedCenterLatLon(JNIEnv * env, jclass)
|
||||
Java_app_organicmaps_sdk_Framework_nativeGetParsedCenterLatLon(JNIEnv * env, jclass)
|
||||
{
|
||||
ms::LatLon const center = frm()->GetParsedCenterLatLon();
|
||||
if (!center.IsValid())
|
||||
@@ -915,14 +915,14 @@ Java_app_organicmaps_Framework_nativeGetParsedCenterLatLon(JNIEnv * env, jclass)
|
||||
}
|
||||
|
||||
JNIEXPORT void JNICALL
|
||||
Java_app_organicmaps_Framework_nativePlacePageActivationListener(JNIEnv *env, jclass, jobject jListener)
|
||||
Java_app_organicmaps_sdk_Framework_nativePlacePageActivationListener(JNIEnv *env, jclass, jobject jListener)
|
||||
{
|
||||
LOG(LINFO, ("Set global map object listener"));
|
||||
g_placePageActivationListener = env->NewGlobalRef(jListener);
|
||||
// void onPlacePageActivated(MapObject object);
|
||||
jmethodID const activatedId = jni::GetMethodID(env, g_placePageActivationListener,
|
||||
"onPlacePageActivated",
|
||||
"(Lapp/organicmaps/widget/placepage/PlacePageData;)V");
|
||||
"(Lapp/organicmaps/sdk/widget/placepage/PlacePageData;)V");
|
||||
// void onPlacePageDeactivated();
|
||||
jmethodID const deactivateId = jni::GetMethodID(env, g_placePageActivationListener,
|
||||
"onPlacePageDeactivated", "()V");
|
||||
@@ -962,7 +962,7 @@ Java_app_organicmaps_Framework_nativePlacePageActivationListener(JNIEnv *env, jc
|
||||
}
|
||||
|
||||
JNIEXPORT void JNICALL
|
||||
Java_app_organicmaps_Framework_nativeRemovePlacePageActivationListener(JNIEnv *env, jclass, jobject jListener)
|
||||
Java_app_organicmaps_sdk_Framework_nativeRemovePlacePageActivationListener(JNIEnv *env, jclass, jobject jListener)
|
||||
{
|
||||
if (g_placePageActivationListener == nullptr)
|
||||
return;
|
||||
@@ -977,7 +977,7 @@ Java_app_organicmaps_Framework_nativeRemovePlacePageActivationListener(JNIEnv *e
|
||||
}
|
||||
|
||||
JNIEXPORT jstring JNICALL
|
||||
Java_app_organicmaps_Framework_nativeGetGe0Url(JNIEnv * env, jclass, jdouble lat, jdouble lon, jdouble zoomLevel, jstring name)
|
||||
Java_app_organicmaps_sdk_Framework_nativeGetGe0Url(JNIEnv * env, jclass, jdouble lat, jdouble lon, jdouble zoomLevel, jstring name)
|
||||
{
|
||||
::Framework * fr = frm();
|
||||
double const scale = (zoomLevel > 0 ? zoomLevel : fr->GetDrawScale());
|
||||
@@ -986,7 +986,7 @@ Java_app_organicmaps_Framework_nativeGetGe0Url(JNIEnv * env, jclass, jdouble lat
|
||||
}
|
||||
|
||||
JNIEXPORT jstring JNICALL
|
||||
Java_app_organicmaps_Framework_nativeGetGeoUri(JNIEnv * env, jclass, jdouble lat, jdouble lon, jdouble zoomLevel, jstring name)
|
||||
Java_app_organicmaps_sdk_Framework_nativeGetGeoUri(JNIEnv * env, jclass, jdouble lat, jdouble lon, jdouble zoomLevel, jstring name)
|
||||
{
|
||||
::Framework * fr = frm();
|
||||
double const scale = (zoomLevel > 0 ? zoomLevel : fr->GetDrawScale());
|
||||
@@ -995,16 +995,16 @@ Java_app_organicmaps_Framework_nativeGetGeoUri(JNIEnv * env, jclass, jdouble lat
|
||||
}
|
||||
|
||||
JNIEXPORT jobject JNICALL
|
||||
Java_app_organicmaps_Framework_nativeGetDistanceAndAzimuth(
|
||||
Java_app_organicmaps_sdk_Framework_nativeGetDistanceAndAzimuth(
|
||||
JNIEnv * env, jclass, jdouble merX, jdouble merY, jdouble cLat, jdouble cLon, jdouble north)
|
||||
{
|
||||
platform::Distance distance;
|
||||
double azimut = -1.0;
|
||||
frm()->GetDistanceAndAzimut(m2::PointD(merX, merY), cLat, cLon, north, distance, azimut);
|
||||
|
||||
static jclass const daClazz = jni::GetGlobalClassRef(env, "app/organicmaps/bookmarks/data/DistanceAndAzimut");
|
||||
static jclass const daClazz = jni::GetGlobalClassRef(env, "app/organicmaps/sdk/bookmarks/data/DistanceAndAzimut");
|
||||
// Java signature : DistanceAndAzimut(Distance distance, double azimuth)
|
||||
static jmethodID const methodID = jni::GetConstructorID(env, daClazz, "(Lapp/organicmaps/util/Distance;D)V");
|
||||
static jmethodID const methodID = jni::GetConstructorID(env, daClazz, "(Lapp/organicmaps/sdk/util/Distance;D)V");
|
||||
|
||||
return env->NewObject(daClazz, methodID,
|
||||
ToJavaDistance(env, distance),
|
||||
@@ -1012,16 +1012,16 @@ Java_app_organicmaps_Framework_nativeGetDistanceAndAzimuth(
|
||||
}
|
||||
|
||||
JNIEXPORT jobject JNICALL
|
||||
Java_app_organicmaps_Framework_nativeGetDistanceAndAzimuthFromLatLon(
|
||||
Java_app_organicmaps_sdk_Framework_nativeGetDistanceAndAzimuthFromLatLon(
|
||||
JNIEnv * env, jclass clazz, jdouble lat, jdouble lon, jdouble cLat, jdouble cLon, jdouble north)
|
||||
{
|
||||
double const merY = mercator::LatToY(lat);
|
||||
double const merX = mercator::LonToX(lon);
|
||||
return Java_app_organicmaps_Framework_nativeGetDistanceAndAzimuth(env, clazz, merX, merY, cLat, cLon, north);
|
||||
return Java_app_organicmaps_sdk_Framework_nativeGetDistanceAndAzimuth(env, clazz, merX, merY, cLat, cLon, north);
|
||||
}
|
||||
|
||||
JNIEXPORT jstring JNICALL
|
||||
Java_app_organicmaps_Framework_nativeFormatLatLon(JNIEnv * env, jclass, jdouble lat, jdouble lon, int coordsFormat)
|
||||
Java_app_organicmaps_sdk_Framework_nativeFormatLatLon(JNIEnv * env, jclass, jdouble lat, jdouble lon, int coordsFormat)
|
||||
{
|
||||
switch (static_cast<android::CoordinatesFormat>(coordsFormat))
|
||||
{
|
||||
@@ -1054,13 +1054,13 @@ Java_app_organicmaps_Framework_nativeFormatLatLon(JNIEnv * env, jclass, jdouble
|
||||
}
|
||||
|
||||
JNIEXPORT jstring JNICALL
|
||||
Java_app_organicmaps_Framework_nativeFormatAltitude(JNIEnv * env, jclass, jdouble alt)
|
||||
Java_app_organicmaps_sdk_Framework_nativeFormatAltitude(JNIEnv * env, jclass, jdouble alt)
|
||||
{
|
||||
return jni::ToJavaString(env, platform::Distance::FormatAltitude(alt));
|
||||
}
|
||||
|
||||
JNIEXPORT jstring JNICALL
|
||||
Java_app_organicmaps_Framework_nativeFormatSpeed(JNIEnv * env, jclass, jdouble speed)
|
||||
Java_app_organicmaps_sdk_Framework_nativeFormatSpeed(JNIEnv * env, jclass, jdouble speed)
|
||||
{
|
||||
auto const units = measurement_utils::GetMeasurementUnits();
|
||||
return jni::ToJavaString(env, measurement_utils::FormatSpeedNumeric(speed, units) + " " +
|
||||
@@ -1069,13 +1069,13 @@ Java_app_organicmaps_Framework_nativeFormatSpeed(JNIEnv * env, jclass, jdouble s
|
||||
|
||||
/*
|
||||
JNIEXPORT jobject JNICALL
|
||||
Java_app_organicmaps_Framework_nativeGetOutdatedCountriesString(JNIEnv * env, jclass)
|
||||
Java_app_organicmaps_sdk_Framework_nativeGetOutdatedCountriesString(JNIEnv * env, jclass)
|
||||
{
|
||||
return jni::ToJavaString(env, g_framework->GetOutdatedCountriesString());
|
||||
}
|
||||
|
||||
JNIEXPORT jobjectArray JNICALL
|
||||
Java_app_organicmaps_Framework_nativeGetOutdatedCountries(JNIEnv * env, jclass)
|
||||
Java_app_organicmaps_sdk_Framework_nativeGetOutdatedCountries(JNIEnv * env, jclass)
|
||||
{
|
||||
vector<Country const *> countries;
|
||||
Storage const & storage = g_framework->GetStorage();
|
||||
@@ -1089,44 +1089,44 @@ Java_app_organicmaps_Framework_nativeGetOutdatedCountries(JNIEnv * env, jclass)
|
||||
}
|
||||
|
||||
JNIEXPORT jint JNICALL
|
||||
Java_app_organicmaps_Framework_nativeToDoAfterUpdate(JNIEnv * env, jclass)
|
||||
Java_app_organicmaps_sdk_Framework_nativeToDoAfterUpdate(JNIEnv * env, jclass)
|
||||
{
|
||||
return g_framework->ToDoAfterUpdate();
|
||||
}
|
||||
|
||||
JNIEXPORT jboolean JNICALL
|
||||
Java_app_organicmaps_Framework_nativeIsDataVersionChanged(JNIEnv * env, jclass)
|
||||
Java_app_organicmaps_sdk_Framework_nativeIsDataVersionChanged(JNIEnv * env, jclass)
|
||||
{
|
||||
return frm()->IsDataVersionUpdated() ? JNI_TRUE : JNI_FALSE;
|
||||
}
|
||||
|
||||
JNIEXPORT void JNICALL
|
||||
Java_app_organicmaps_Framework_nativeUpdateSavedDataVersion(JNIEnv * env, jclass)
|
||||
Java_app_organicmaps_sdk_Framework_nativeUpdateSavedDataVersion(JNIEnv * env, jclass)
|
||||
{
|
||||
frm()->UpdateSavedDataVersion();
|
||||
}
|
||||
*/
|
||||
|
||||
JNIEXPORT jlong JNICALL
|
||||
Java_app_organicmaps_Framework_nativeGetDataVersion(JNIEnv * env, jclass)
|
||||
Java_app_organicmaps_sdk_Framework_nativeGetDataVersion(JNIEnv * env, jclass)
|
||||
{
|
||||
return frm()->GetCurrentDataVersion();
|
||||
}
|
||||
|
||||
JNIEXPORT jint JNICALL
|
||||
Java_app_organicmaps_Framework_nativeGetDrawScale(JNIEnv * env, jclass)
|
||||
Java_app_organicmaps_sdk_Framework_nativeGetDrawScale(JNIEnv * env, jclass)
|
||||
{
|
||||
return static_cast<jint>(frm()->GetDrawScale());
|
||||
}
|
||||
|
||||
JNIEXPORT void JNICALL
|
||||
Java_app_organicmaps_Framework_nativePokeSearchInViewport(JNIEnv * env, jclass)
|
||||
Java_app_organicmaps_sdk_Framework_nativePokeSearchInViewport(JNIEnv * env, jclass)
|
||||
{
|
||||
frm()->GetSearchAPI().PokeSearchInViewport();
|
||||
}
|
||||
|
||||
JNIEXPORT jdoubleArray JNICALL
|
||||
Java_app_organicmaps_Framework_nativeGetScreenRectCenter(JNIEnv * env, jclass)
|
||||
Java_app_organicmaps_sdk_Framework_nativeGetScreenRectCenter(JNIEnv * env, jclass)
|
||||
{
|
||||
m2::PointD const center = frm()->GetViewportCenter();
|
||||
|
||||
@@ -1138,43 +1138,43 @@ Java_app_organicmaps_Framework_nativeGetScreenRectCenter(JNIEnv * env, jclass)
|
||||
}
|
||||
|
||||
JNIEXPORT void JNICALL
|
||||
Java_app_organicmaps_Framework_nativeShowTrackRect(JNIEnv * env, jclass, jlong track)
|
||||
Java_app_organicmaps_sdk_Framework_nativeShowTrackRect(JNIEnv * env, jclass, jlong track)
|
||||
{
|
||||
frm()->ShowTrack(static_cast<kml::TrackId>(track));
|
||||
}
|
||||
|
||||
JNIEXPORT void JNICALL
|
||||
Java_app_organicmaps_Framework_nativeSaveRoute(JNIEnv *, jclass)
|
||||
Java_app_organicmaps_sdk_Framework_nativeSaveRoute(JNIEnv *, jclass)
|
||||
{
|
||||
frm()->SaveRoute();
|
||||
}
|
||||
|
||||
JNIEXPORT jstring JNICALL
|
||||
Java_app_organicmaps_Framework_nativeGetBookmarkDir(JNIEnv * env, jclass)
|
||||
Java_app_organicmaps_sdk_Framework_nativeGetBookmarkDir(JNIEnv * env, jclass)
|
||||
{
|
||||
return jni::ToJavaString(env, GetPlatform().SettingsDir().c_str());
|
||||
}
|
||||
|
||||
JNIEXPORT jstring JNICALL
|
||||
Java_app_organicmaps_Framework_nativeGetWritableDir(JNIEnv * env, jclass)
|
||||
Java_app_organicmaps_sdk_Framework_nativeGetWritableDir(JNIEnv * env, jclass)
|
||||
{
|
||||
return jni::ToJavaString(env, GetPlatform().WritableDir().c_str());
|
||||
}
|
||||
|
||||
JNIEXPORT jstring JNICALL
|
||||
Java_app_organicmaps_Framework_nativeGetSettingsDir(JNIEnv * env, jclass)
|
||||
Java_app_organicmaps_sdk_Framework_nativeGetSettingsDir(JNIEnv * env, jclass)
|
||||
{
|
||||
return jni::ToJavaString(env, GetPlatform().SettingsDir().c_str());
|
||||
}
|
||||
|
||||
JNIEXPORT jstring JNICALL
|
||||
Java_app_organicmaps_Framework_nativeGetDataFileExt(JNIEnv * env, jclass)
|
||||
Java_app_organicmaps_sdk_Framework_nativeGetDataFileExt(JNIEnv * env, jclass)
|
||||
{
|
||||
return jni::ToJavaString(env, DATA_FILE_EXTENSION);
|
||||
}
|
||||
|
||||
JNIEXPORT jobjectArray JNICALL
|
||||
Java_app_organicmaps_Framework_nativeGetMovableFilesExts(JNIEnv * env, jclass)
|
||||
Java_app_organicmaps_sdk_Framework_nativeGetMovableFilesExts(JNIEnv * env, jclass)
|
||||
{
|
||||
vector<string> exts = { DATA_FILE_EXTENSION, FONT_FILE_EXTENSION };
|
||||
platform::CountryIndexes::GetIndexesExts(exts);
|
||||
@@ -1182,7 +1182,7 @@ Java_app_organicmaps_Framework_nativeGetMovableFilesExts(JNIEnv * env, jclass)
|
||||
}
|
||||
|
||||
JNIEXPORT jobjectArray JNICALL
|
||||
Java_app_organicmaps_Framework_nativeGetBookmarksFilesExts(JNIEnv * env, jclass)
|
||||
Java_app_organicmaps_sdk_Framework_nativeGetBookmarksFilesExts(JNIEnv * env, jclass)
|
||||
{
|
||||
static std::array<std::string, 4> const kBookmarkExtensions = {
|
||||
std::string{kKmzExtension},
|
||||
@@ -1195,7 +1195,7 @@ Java_app_organicmaps_Framework_nativeGetBookmarksFilesExts(JNIEnv * env, jclass)
|
||||
}
|
||||
|
||||
JNIEXPORT void JNICALL
|
||||
Java_app_organicmaps_Framework_nativeChangeWritableDir(JNIEnv * env, jclass, jstring jNewPath)
|
||||
Java_app_organicmaps_sdk_Framework_nativeChangeWritableDir(JNIEnv * env, jclass, jstring jNewPath)
|
||||
{
|
||||
string newPath = jni::ToNativeString(env, jNewPath);
|
||||
g_framework->RemoveLocalMaps();
|
||||
@@ -1204,55 +1204,55 @@ Java_app_organicmaps_Framework_nativeChangeWritableDir(JNIEnv * env, jclass, jst
|
||||
}
|
||||
|
||||
JNIEXPORT jboolean JNICALL
|
||||
Java_app_organicmaps_Framework_nativeIsRoutingActive(JNIEnv * env, jclass)
|
||||
Java_app_organicmaps_sdk_Framework_nativeIsRoutingActive(JNIEnv * env, jclass)
|
||||
{
|
||||
return frm()->GetRoutingManager().IsRoutingActive();
|
||||
}
|
||||
|
||||
JNIEXPORT jboolean JNICALL
|
||||
Java_app_organicmaps_Framework_nativeIsRouteBuilding(JNIEnv * env, jclass)
|
||||
Java_app_organicmaps_sdk_Framework_nativeIsRouteBuilding(JNIEnv * env, jclass)
|
||||
{
|
||||
return frm()->GetRoutingManager().IsRouteBuilding();
|
||||
}
|
||||
|
||||
JNIEXPORT jboolean JNICALL
|
||||
Java_app_organicmaps_Framework_nativeIsRouteBuilt(JNIEnv * env, jclass)
|
||||
Java_app_organicmaps_sdk_Framework_nativeIsRouteBuilt(JNIEnv * env, jclass)
|
||||
{
|
||||
return frm()->GetRoutingManager().IsRouteBuilt();
|
||||
}
|
||||
|
||||
JNIEXPORT void JNICALL
|
||||
Java_app_organicmaps_Framework_nativeCloseRouting(JNIEnv * env, jclass)
|
||||
Java_app_organicmaps_sdk_Framework_nativeCloseRouting(JNIEnv * env, jclass)
|
||||
{
|
||||
frm()->GetRoutingManager().CloseRouting(true /* remove route points */);
|
||||
}
|
||||
|
||||
JNIEXPORT void JNICALL
|
||||
Java_app_organicmaps_Framework_nativeBuildRoute(JNIEnv * env, jclass)
|
||||
Java_app_organicmaps_sdk_Framework_nativeBuildRoute(JNIEnv * env, jclass)
|
||||
{
|
||||
frm()->GetRoutingManager().BuildRoute();
|
||||
}
|
||||
|
||||
JNIEXPORT void JNICALL
|
||||
Java_app_organicmaps_Framework_nativeRemoveRoute(JNIEnv * env, jclass)
|
||||
Java_app_organicmaps_sdk_Framework_nativeRemoveRoute(JNIEnv * env, jclass)
|
||||
{
|
||||
frm()->GetRoutingManager().RemoveRoute(false /* deactivateFollowing */);
|
||||
}
|
||||
|
||||
JNIEXPORT void JNICALL
|
||||
Java_app_organicmaps_Framework_nativeFollowRoute(JNIEnv * env, jclass)
|
||||
Java_app_organicmaps_sdk_Framework_nativeFollowRoute(JNIEnv * env, jclass)
|
||||
{
|
||||
frm()->GetRoutingManager().FollowRoute();
|
||||
}
|
||||
|
||||
JNIEXPORT void JNICALL
|
||||
Java_app_organicmaps_Framework_nativeDisableFollowing(JNIEnv * env, jclass)
|
||||
Java_app_organicmaps_sdk_Framework_nativeDisableFollowing(JNIEnv * env, jclass)
|
||||
{
|
||||
frm()->GetRoutingManager().DisableFollowMode();
|
||||
}
|
||||
|
||||
JNIEXPORT jobjectArray JNICALL
|
||||
Java_app_organicmaps_Framework_nativeGenerateNotifications(JNIEnv * env, jclass, jboolean announceStreets)
|
||||
Java_app_organicmaps_sdk_Framework_nativeGenerateNotifications(JNIEnv * env, jclass, jboolean announceStreets)
|
||||
{
|
||||
::Framework * fr = frm();
|
||||
if (!fr->GetRoutingManager().IsRoutingActive())
|
||||
@@ -1267,20 +1267,20 @@ Java_app_organicmaps_Framework_nativeGenerateNotifications(JNIEnv * env, jclass,
|
||||
}
|
||||
|
||||
JNIEXPORT void JNICALL
|
||||
Java_app_organicmaps_Framework_nativeSetSpeedCamManagerMode(JNIEnv * env, jclass, jint mode)
|
||||
Java_app_organicmaps_sdk_Framework_nativeSetSpeedCamManagerMode(JNIEnv * env, jclass, jint mode)
|
||||
{
|
||||
frm()->GetRoutingManager().GetSpeedCamManager().SetMode(
|
||||
static_cast<routing::SpeedCameraManagerMode>(mode));
|
||||
}
|
||||
|
||||
JNIEXPORT jint JNICALL
|
||||
Java_app_organicmaps_Framework_nativeGetSpeedCamManagerMode(JNIEnv * env, jclass)
|
||||
Java_app_organicmaps_sdk_Framework_nativeGetSpeedCamManagerMode(JNIEnv * env, jclass)
|
||||
{
|
||||
return static_cast<jint>(frm()->GetRoutingManager().GetSpeedCamManager().GetMode());
|
||||
}
|
||||
|
||||
JNIEXPORT jobject JNICALL
|
||||
Java_app_organicmaps_Framework_nativeGetRouteFollowingInfo(JNIEnv * env, jclass)
|
||||
Java_app_organicmaps_sdk_Framework_nativeGetRouteFollowingInfo(JNIEnv * env, jclass)
|
||||
{
|
||||
RoutingManager & rm = frm()->GetRoutingManager();
|
||||
if (!rm.IsRoutingActive())
|
||||
@@ -1295,9 +1295,9 @@ Java_app_organicmaps_Framework_nativeGetRouteFollowingInfo(JNIEnv * env, jclass)
|
||||
}
|
||||
|
||||
JNIEXPORT jobjectArray JNICALL
|
||||
Java_app_organicmaps_Framework_nativeGetRouteJunctionPoints(JNIEnv * env, jclass)
|
||||
Java_app_organicmaps_sdk_Framework_nativeGetRouteJunctionPoints(JNIEnv * env, jclass)
|
||||
{
|
||||
vector<m2::PointD> junctionPoints;
|
||||
vector<geometry::PointWithAltitude> junctionPoints;
|
||||
if (!frm()->GetRoutingManager().RoutingSession().GetRouteJunctionPoints(junctionPoints))
|
||||
{
|
||||
LOG(LWARNING, ("Can't get the route junction points"));
|
||||
@@ -1308,7 +1308,7 @@ Java_app_organicmaps_Framework_nativeGetRouteJunctionPoints(JNIEnv * env, jclass
|
||||
}
|
||||
|
||||
JNIEXPORT jintArray JNICALL
|
||||
Java_app_organicmaps_Framework_nativeGenerateRouteAltitudeChartBits(JNIEnv * env, jclass, jint width, jint height, jobject routeAltitudeLimits)
|
||||
Java_app_organicmaps_sdk_Framework_nativeGenerateRouteAltitudeChartBits(JNIEnv * env, jclass, jint width, jint height, jobject routeAltitudeLimits)
|
||||
{
|
||||
RoutingManager::DistanceAltitude altitudes;
|
||||
if (!frm()->GetRoutingManager().GetRouteAltitudesAndDistancesM(altitudes))
|
||||
@@ -1398,13 +1398,13 @@ Java_app_organicmaps_Framework_nativeGenerateRouteAltitudeChartBits(JNIEnv * env
|
||||
}
|
||||
|
||||
JNIEXPORT void JNICALL
|
||||
Java_app_organicmaps_Framework_nativeShowCountry(JNIEnv * env, jclass, jstring countryId, jboolean zoomToDownloadButton)
|
||||
Java_app_organicmaps_sdk_Framework_nativeShowCountry(JNIEnv * env, jclass, jstring countryId, jboolean zoomToDownloadButton)
|
||||
{
|
||||
g_framework->ShowNode(jni::ToNativeString(env, countryId), (bool) zoomToDownloadButton);
|
||||
}
|
||||
|
||||
JNIEXPORT void JNICALL
|
||||
Java_app_organicmaps_Framework_nativeSetRoutingListener(JNIEnv * env, jclass, jobject listener)
|
||||
Java_app_organicmaps_sdk_Framework_nativeSetRoutingListener(JNIEnv * env, jclass, jobject listener)
|
||||
{
|
||||
CHECK(g_framework, ("Framework isn't created yet!"));
|
||||
frm()->GetRoutingManager().SetRouteBuildingListener(
|
||||
@@ -1414,7 +1414,7 @@ Java_app_organicmaps_Framework_nativeSetRoutingListener(JNIEnv * env, jclass, jo
|
||||
}
|
||||
|
||||
JNIEXPORT void JNICALL
|
||||
Java_app_organicmaps_Framework_nativeSetRouteProgressListener(JNIEnv * env, jclass, jobject listener)
|
||||
Java_app_organicmaps_sdk_Framework_nativeSetRouteProgressListener(JNIEnv * env, jclass, jobject listener)
|
||||
{
|
||||
CHECK(g_framework, ("Framework isn't created yet!"));
|
||||
frm()->GetRoutingManager().SetRouteProgressListener(
|
||||
@@ -1422,7 +1422,7 @@ Java_app_organicmaps_Framework_nativeSetRouteProgressListener(JNIEnv * env, jcla
|
||||
}
|
||||
|
||||
JNIEXPORT void JNICALL
|
||||
Java_app_organicmaps_Framework_nativeSetRoutingRecommendationListener(JNIEnv * env, jclass,
|
||||
Java_app_organicmaps_sdk_Framework_nativeSetRoutingRecommendationListener(JNIEnv * env, jclass,
|
||||
jobject listener)
|
||||
{
|
||||
CHECK(g_framework, ("Framework isn't created yet!"));
|
||||
@@ -1431,7 +1431,7 @@ Java_app_organicmaps_Framework_nativeSetRoutingRecommendationListener(JNIEnv * e
|
||||
}
|
||||
|
||||
JNIEXPORT void JNICALL
|
||||
Java_app_organicmaps_Framework_nativeSetRoutingLoadPointsListener(
|
||||
Java_app_organicmaps_sdk_Framework_nativeSetRoutingLoadPointsListener(
|
||||
JNIEnv *, jclass, jobject listener)
|
||||
{
|
||||
CHECK(g_framework, ("Framework isn't created yet!"));
|
||||
@@ -1442,19 +1442,19 @@ Java_app_organicmaps_Framework_nativeSetRoutingLoadPointsListener(
|
||||
}
|
||||
|
||||
JNIEXPORT void JNICALL
|
||||
Java_app_organicmaps_Framework_nativeDeactivatePopup(JNIEnv * env, jclass)
|
||||
Java_app_organicmaps_sdk_Framework_nativeDeactivatePopup(JNIEnv * env, jclass)
|
||||
{
|
||||
return g_framework->DeactivatePopup();
|
||||
}
|
||||
|
||||
JNIEXPORT void JNICALL
|
||||
Java_app_organicmaps_Framework_nativeDeactivateMapSelectionCircle(JNIEnv * env, jclass)
|
||||
Java_app_organicmaps_sdk_Framework_nativeDeactivateMapSelectionCircle(JNIEnv * env, jclass)
|
||||
{
|
||||
return g_framework->DeactivateMapSelectionCircle();
|
||||
}
|
||||
|
||||
JNIEXPORT void JNICALL
|
||||
Java_app_organicmaps_Framework_nativeAddRoutePoint(JNIEnv * env, jclass, jstring title,
|
||||
Java_app_organicmaps_sdk_Framework_nativeAddRoutePoint(JNIEnv * env, jclass, jstring title,
|
||||
jstring subtitle, jobject markType,
|
||||
jint intermediateIndex,
|
||||
jboolean isMyPosition,
|
||||
@@ -1473,64 +1473,64 @@ Java_app_organicmaps_Framework_nativeAddRoutePoint(JNIEnv * env, jclass, jstring
|
||||
}
|
||||
|
||||
JNIEXPORT void JNICALL
|
||||
Java_app_organicmaps_Framework_nativeRemoveRoutePoints(JNIEnv * env, jclass)
|
||||
Java_app_organicmaps_sdk_Framework_nativeRemoveRoutePoints(JNIEnv * env, jclass)
|
||||
{
|
||||
frm()->GetRoutingManager().RemoveRoutePoints();
|
||||
}
|
||||
|
||||
JNIEXPORT void JNICALL
|
||||
Java_app_organicmaps_Framework_nativeRemoveRoutePoint(JNIEnv * env, jclass, jobject markType, jint intermediateIndex)
|
||||
Java_app_organicmaps_sdk_Framework_nativeRemoveRoutePoint(JNIEnv * env, jclass, jobject markType, jint intermediateIndex)
|
||||
{
|
||||
frm()->GetRoutingManager().RemoveRoutePoint(GetRouteMarkType(env, markType),
|
||||
static_cast<size_t>(intermediateIndex));
|
||||
}
|
||||
|
||||
JNIEXPORT void JNICALL
|
||||
Java_app_organicmaps_Framework_nativeRemoveIntermediateRoutePoints(JNIEnv * env, jclass)
|
||||
Java_app_organicmaps_sdk_Framework_nativeRemoveIntermediateRoutePoints(JNIEnv * env, jclass)
|
||||
{
|
||||
frm()->GetRoutingManager().RemoveIntermediateRoutePoints();
|
||||
}
|
||||
|
||||
JNIEXPORT jboolean JNICALL
|
||||
Java_app_organicmaps_Framework_nativeCouldAddIntermediatePoint(JNIEnv * env, jclass)
|
||||
Java_app_organicmaps_sdk_Framework_nativeCouldAddIntermediatePoint(JNIEnv * env, jclass)
|
||||
{
|
||||
return frm()->GetRoutingManager().CouldAddIntermediatePoint();
|
||||
}
|
||||
|
||||
JNIEXPORT jobjectArray JNICALL
|
||||
Java_app_organicmaps_Framework_nativeGetRoutePoints(JNIEnv * env, jclass)
|
||||
Java_app_organicmaps_sdk_Framework_nativeGetRoutePoints(JNIEnv * env, jclass)
|
||||
{
|
||||
return CreateRouteMarkDataArray(env, frm()->GetRoutingManager().GetRoutePoints());
|
||||
}
|
||||
|
||||
JNIEXPORT void JNICALL
|
||||
Java_app_organicmaps_Framework_nativeMoveRoutePoint(JNIEnv * env, jclass,
|
||||
Java_app_organicmaps_sdk_Framework_nativeMoveRoutePoint(JNIEnv * env, jclass,
|
||||
jint currentIndex, jint targetIndex)
|
||||
{
|
||||
frm()->GetRoutingManager().MoveRoutePoint(currentIndex, targetIndex);
|
||||
}
|
||||
|
||||
JNIEXPORT jobject JNICALL
|
||||
Java_app_organicmaps_Framework_nativeGetTransitRouteInfo(JNIEnv * env, jclass)
|
||||
Java_app_organicmaps_sdk_Framework_nativeGetTransitRouteInfo(JNIEnv * env, jclass)
|
||||
{
|
||||
return CreateTransitRouteInfo(env, frm()->GetRoutingManager().GetTransitRouteInfo());
|
||||
}
|
||||
|
||||
JNIEXPORT void JNICALL
|
||||
Java_app_organicmaps_Framework_nativeReloadWorldMaps(JNIEnv * env, jclass)
|
||||
Java_app_organicmaps_sdk_Framework_nativeReloadWorldMaps(JNIEnv * env, jclass)
|
||||
{
|
||||
g_framework->ReloadWorldMaps();
|
||||
}
|
||||
|
||||
JNIEXPORT jboolean JNICALL
|
||||
Java_app_organicmaps_Framework_nativeIsDayTime(JNIEnv * env, jclass, jlong utcTimeSeconds, jdouble lat, jdouble lon)
|
||||
Java_app_organicmaps_sdk_Framework_nativeIsDayTime(JNIEnv * env, jclass, jlong utcTimeSeconds, jdouble lat, jdouble lon)
|
||||
{
|
||||
DayTimeType const dt = GetDayTime(static_cast<time_t>(utcTimeSeconds), lat, lon);
|
||||
return (dt == DayTimeType::Day || dt == DayTimeType::PolarDay);
|
||||
}
|
||||
|
||||
JNIEXPORT void JNICALL
|
||||
Java_app_organicmaps_Framework_nativeSet3dMode(JNIEnv * env, jclass, jboolean allow, jboolean allowBuildings)
|
||||
Java_app_organicmaps_sdk_Framework_nativeSet3dMode(JNIEnv * env, jclass, jboolean allow, jboolean allowBuildings)
|
||||
{
|
||||
bool const allow3d = static_cast<bool>(allow);
|
||||
bool const allow3dBuildings = static_cast<bool>(allowBuildings);
|
||||
@@ -1540,7 +1540,7 @@ Java_app_organicmaps_Framework_nativeSet3dMode(JNIEnv * env, jclass, jboolean al
|
||||
}
|
||||
|
||||
JNIEXPORT void JNICALL
|
||||
Java_app_organicmaps_Framework_nativeGet3dMode(JNIEnv * env, jclass, jobject result)
|
||||
Java_app_organicmaps_sdk_Framework_nativeGet3dMode(JNIEnv * env, jclass, jobject result)
|
||||
{
|
||||
bool enabled;
|
||||
bool buildings;
|
||||
@@ -1556,7 +1556,7 @@ Java_app_organicmaps_Framework_nativeGet3dMode(JNIEnv * env, jclass, jobject res
|
||||
}
|
||||
|
||||
JNIEXPORT void JNICALL
|
||||
Java_app_organicmaps_Framework_nativeSetAutoZoomEnabled(JNIEnv * env, jclass, jboolean enabled)
|
||||
Java_app_organicmaps_sdk_Framework_nativeSetAutoZoomEnabled(JNIEnv * env, jclass, jboolean enabled)
|
||||
{
|
||||
bool const autoZoomEnabled = static_cast<bool>(enabled);
|
||||
frm()->SaveAutoZoom(autoZoomEnabled);
|
||||
@@ -1564,19 +1564,19 @@ Java_app_organicmaps_Framework_nativeSetAutoZoomEnabled(JNIEnv * env, jclass, jb
|
||||
}
|
||||
|
||||
JNIEXPORT void JNICALL
|
||||
Java_app_organicmaps_Framework_nativeSetTransitSchemeEnabled(JNIEnv * env, jclass, jboolean enabled)
|
||||
Java_app_organicmaps_sdk_Framework_nativeSetTransitSchemeEnabled(JNIEnv * env, jclass, jboolean enabled)
|
||||
{
|
||||
frm()->GetTransitManager().EnableTransitSchemeMode(static_cast<bool>(enabled));
|
||||
}
|
||||
|
||||
JNIEXPORT jboolean JNICALL
|
||||
Java_app_organicmaps_Framework_nativeIsTransitSchemeEnabled(JNIEnv * env, jclass)
|
||||
Java_app_organicmaps_sdk_Framework_nativeIsTransitSchemeEnabled(JNIEnv * env, jclass)
|
||||
{
|
||||
return static_cast<jboolean>(frm()->LoadTransitSchemeEnabled());
|
||||
}
|
||||
|
||||
JNIEXPORT void JNICALL
|
||||
Java_app_organicmaps_Framework_nativeSetIsolinesLayerEnabled(JNIEnv * env, jclass, jboolean enabled)
|
||||
Java_app_organicmaps_sdk_Framework_nativeSetIsolinesLayerEnabled(JNIEnv * env, jclass, jboolean enabled)
|
||||
{
|
||||
auto const isolinesEnabled = static_cast<bool>(enabled);
|
||||
frm()->GetIsolinesManager().SetEnabled(isolinesEnabled);
|
||||
@@ -1584,44 +1584,44 @@ Java_app_organicmaps_Framework_nativeSetIsolinesLayerEnabled(JNIEnv * env, jclas
|
||||
}
|
||||
|
||||
JNIEXPORT jboolean JNICALL
|
||||
Java_app_organicmaps_Framework_nativeIsIsolinesLayerEnabled(JNIEnv * env, jclass)
|
||||
Java_app_organicmaps_sdk_Framework_nativeIsIsolinesLayerEnabled(JNIEnv * env, jclass)
|
||||
{
|
||||
return static_cast<jboolean>(frm()->LoadIsolinesEnabled());
|
||||
}
|
||||
|
||||
JNIEXPORT void JNICALL
|
||||
Java_app_organicmaps_Framework_nativeSetOutdoorsLayerEnabled(JNIEnv * env, jclass, jboolean enabled)
|
||||
Java_app_organicmaps_sdk_Framework_nativeSetOutdoorsLayerEnabled(JNIEnv * env, jclass, jboolean enabled)
|
||||
{
|
||||
frm()->SaveOutdoorsEnabled(enabled);
|
||||
}
|
||||
|
||||
JNIEXPORT jboolean JNICALL
|
||||
Java_app_organicmaps_Framework_nativeIsOutdoorsLayerEnabled(JNIEnv * env, jclass)
|
||||
Java_app_organicmaps_sdk_Framework_nativeIsOutdoorsLayerEnabled(JNIEnv * env, jclass)
|
||||
{
|
||||
return static_cast<jboolean>(frm()->LoadOutdoorsEnabled());
|
||||
}
|
||||
|
||||
JNIEXPORT void JNICALL
|
||||
Java_app_organicmaps_Framework_nativeSaveSettingSchemeEnabled(JNIEnv * env, jclass, jboolean enabled)
|
||||
Java_app_organicmaps_sdk_Framework_nativeSaveSettingSchemeEnabled(JNIEnv * env, jclass, jboolean enabled)
|
||||
{
|
||||
frm()->SaveTransitSchemeEnabled(static_cast<bool>(enabled));
|
||||
}
|
||||
|
||||
JNIEXPORT jboolean JNICALL
|
||||
Java_app_organicmaps_Framework_nativeGetAutoZoomEnabled(JNIEnv *, jclass)
|
||||
Java_app_organicmaps_sdk_Framework_nativeGetAutoZoomEnabled(JNIEnv *, jclass)
|
||||
{
|
||||
return frm()->LoadAutoZoom();
|
||||
}
|
||||
|
||||
// static void nativeZoomToPoint(double lat, double lon, int zoom, boolean animate);
|
||||
JNIEXPORT void JNICALL
|
||||
Java_app_organicmaps_Framework_nativeZoomToPoint(JNIEnv * env, jclass, jdouble lat, jdouble lon, jint zoom, jboolean animate)
|
||||
Java_app_organicmaps_sdk_Framework_nativeZoomToPoint(JNIEnv * env, jclass, jdouble lat, jdouble lon, jint zoom, jboolean animate)
|
||||
{
|
||||
g_framework->Scale(m2::PointD(mercator::FromLatLon(lat, lon)), zoom, animate);
|
||||
}
|
||||
|
||||
JNIEXPORT jobject JNICALL
|
||||
Java_app_organicmaps_Framework_nativeDeleteBookmarkFromMapObject(JNIEnv * env, jclass)
|
||||
Java_app_organicmaps_sdk_Framework_nativeDeleteBookmarkFromMapObject(JNIEnv * env, jclass)
|
||||
{
|
||||
if (!frm()->HasPlacePageInfo())
|
||||
return nullptr;
|
||||
@@ -1640,7 +1640,7 @@ Java_app_organicmaps_Framework_nativeDeleteBookmarkFromMapObject(JNIEnv * env, j
|
||||
}
|
||||
|
||||
JNIEXPORT jstring JNICALL
|
||||
Java_app_organicmaps_Framework_nativeGetPoiContactUrl(JNIEnv *env, jclass, jint id)
|
||||
Java_app_organicmaps_sdk_Framework_nativeGetPoiContactUrl(JNIEnv *env, jclass, jint id)
|
||||
{
|
||||
auto const metaID = static_cast<osm::MapObject::MetadataID>(id);
|
||||
string_view const value = g_framework->GetPlacePageInfo().GetMetadata(metaID);
|
||||
@@ -1650,14 +1650,14 @@ Java_app_organicmaps_Framework_nativeGetPoiContactUrl(JNIEnv *env, jclass, jint
|
||||
}
|
||||
|
||||
JNIEXPORT jboolean JNICALL
|
||||
Java_app_organicmaps_Framework_nativeIsDownloadedMapAtScreenCenter(JNIEnv *, jclass)
|
||||
Java_app_organicmaps_sdk_Framework_nativeIsDownloadedMapAtScreenCenter(JNIEnv *, jclass)
|
||||
{
|
||||
::Framework * fr = frm();
|
||||
return storage::IsPointCoveredByDownloadedMaps(fr->GetViewportCenter(), fr->GetStorage(), fr->GetCountryInfoGetter());
|
||||
}
|
||||
|
||||
JNIEXPORT jstring JNICALL
|
||||
Java_app_organicmaps_Framework_nativeGetActiveObjectFormattedCuisine(JNIEnv * env, jclass)
|
||||
Java_app_organicmaps_sdk_Framework_nativeGetActiveObjectFormattedCuisine(JNIEnv * env, jclass)
|
||||
{
|
||||
::Framework * frm = g_framework->NativeFramework();
|
||||
if (!frm->HasPlacePageInfo())
|
||||
@@ -1667,75 +1667,75 @@ Java_app_organicmaps_Framework_nativeGetActiveObjectFormattedCuisine(JNIEnv * en
|
||||
}
|
||||
|
||||
JNIEXPORT void JNICALL
|
||||
Java_app_organicmaps_Framework_nativeSetVisibleRect(JNIEnv * env, jclass, jint left, jint top, jint right, jint bottom)
|
||||
Java_app_organicmaps_sdk_Framework_nativeSetVisibleRect(JNIEnv * env, jclass, jint left, jint top, jint right, jint bottom)
|
||||
{
|
||||
frm()->SetVisibleViewport(m2::RectD(left, top, right, bottom));
|
||||
}
|
||||
|
||||
JNIEXPORT jboolean JNICALL
|
||||
Java_app_organicmaps_Framework_nativeIsRouteFinished(JNIEnv * env, jclass)
|
||||
Java_app_organicmaps_sdk_Framework_nativeIsRouteFinished(JNIEnv * env, jclass)
|
||||
{
|
||||
return frm()->GetRoutingManager().IsRouteFinished();
|
||||
}
|
||||
|
||||
JNIEXPORT void JNICALL
|
||||
Java_app_organicmaps_Framework_nativeRunFirstLaunchAnimation(JNIEnv * env, jclass)
|
||||
Java_app_organicmaps_sdk_Framework_nativeRunFirstLaunchAnimation(JNIEnv * env, jclass)
|
||||
{
|
||||
frm()->RunFirstLaunchAnimation();
|
||||
}
|
||||
|
||||
JNIEXPORT jint JNICALL
|
||||
Java_app_organicmaps_Framework_nativeOpenRoutePointsTransaction(JNIEnv * env, jclass)
|
||||
Java_app_organicmaps_sdk_Framework_nativeOpenRoutePointsTransaction(JNIEnv * env, jclass)
|
||||
{
|
||||
return frm()->GetRoutingManager().OpenRoutePointsTransaction();
|
||||
}
|
||||
|
||||
JNIEXPORT void JNICALL
|
||||
Java_app_organicmaps_Framework_nativeApplyRoutePointsTransaction(JNIEnv * env, jclass,
|
||||
Java_app_organicmaps_sdk_Framework_nativeApplyRoutePointsTransaction(JNIEnv * env, jclass,
|
||||
jint transactionId)
|
||||
{
|
||||
frm()->GetRoutingManager().ApplyRoutePointsTransaction(transactionId);
|
||||
}
|
||||
|
||||
JNIEXPORT void JNICALL
|
||||
Java_app_organicmaps_Framework_nativeCancelRoutePointsTransaction(JNIEnv * env, jclass,
|
||||
Java_app_organicmaps_sdk_Framework_nativeCancelRoutePointsTransaction(JNIEnv * env, jclass,
|
||||
jint transactionId)
|
||||
{
|
||||
frm()->GetRoutingManager().CancelRoutePointsTransaction(transactionId);
|
||||
}
|
||||
|
||||
JNIEXPORT jint JNICALL
|
||||
Java_app_organicmaps_Framework_nativeInvalidRoutePointsTransactionId(JNIEnv * env, jclass)
|
||||
Java_app_organicmaps_sdk_Framework_nativeInvalidRoutePointsTransactionId(JNIEnv * env, jclass)
|
||||
{
|
||||
return frm()->GetRoutingManager().InvalidRoutePointsTransactionId();
|
||||
}
|
||||
|
||||
JNIEXPORT jboolean JNICALL
|
||||
Java_app_organicmaps_Framework_nativeHasSavedRoutePoints(JNIEnv *, jclass)
|
||||
Java_app_organicmaps_sdk_Framework_nativeHasSavedRoutePoints(JNIEnv *, jclass)
|
||||
{
|
||||
return frm()->GetRoutingManager().HasSavedRoutePoints();
|
||||
}
|
||||
|
||||
JNIEXPORT void JNICALL
|
||||
Java_app_organicmaps_Framework_nativeLoadRoutePoints(JNIEnv *, jclass)
|
||||
Java_app_organicmaps_sdk_Framework_nativeLoadRoutePoints(JNIEnv *, jclass)
|
||||
{
|
||||
frm()->GetRoutingManager().LoadRoutePoints(g_loadRouteHandler);
|
||||
}
|
||||
|
||||
JNIEXPORT void JNICALL
|
||||
Java_app_organicmaps_Framework_nativeSaveRoutePoints(JNIEnv *, jclass)
|
||||
Java_app_organicmaps_sdk_Framework_nativeSaveRoutePoints(JNIEnv *, jclass)
|
||||
{
|
||||
frm()->GetRoutingManager().SaveRoutePoints();
|
||||
}
|
||||
|
||||
JNIEXPORT void JNICALL
|
||||
Java_app_organicmaps_Framework_nativeDeleteSavedRoutePoints(JNIEnv *, jclass)
|
||||
Java_app_organicmaps_sdk_Framework_nativeDeleteSavedRoutePoints(JNIEnv *, jclass)
|
||||
{
|
||||
frm()->GetRoutingManager().DeleteSavedRoutePoints();
|
||||
}
|
||||
|
||||
JNIEXPORT void JNICALL
|
||||
Java_app_organicmaps_Framework_nativeShowFeature(JNIEnv * env, jclass, jobject featureId)
|
||||
Java_app_organicmaps_sdk_Framework_nativeShowFeature(JNIEnv * env, jclass, jobject featureId)
|
||||
{
|
||||
auto const f = g_framework->BuildFeatureId(env, featureId);
|
||||
|
||||
@@ -1744,13 +1744,13 @@ Java_app_organicmaps_Framework_nativeShowFeature(JNIEnv * env, jclass, jobject f
|
||||
}
|
||||
|
||||
JNIEXPORT void JNICALL
|
||||
Java_app_organicmaps_Framework_nativeMakeCrash(JNIEnv *env, jclass type)
|
||||
Java_app_organicmaps_sdk_Framework_nativeMakeCrash(JNIEnv *env, jclass type)
|
||||
{
|
||||
CHECK(false, ("Diagnostic native crash!"));
|
||||
}
|
||||
|
||||
JNIEXPORT void JNICALL
|
||||
Java_app_organicmaps_Framework_nativeSetPowerManagerFacility(JNIEnv *, jclass,
|
||||
Java_app_organicmaps_sdk_Framework_nativeSetPowerManagerFacility(JNIEnv *, jclass,
|
||||
jint facilityType, jboolean state)
|
||||
{
|
||||
frm()->GetPowerManager().SetFacility(static_cast<power_management::Facility>(facilityType),
|
||||
@@ -1758,32 +1758,32 @@ Java_app_organicmaps_Framework_nativeSetPowerManagerFacility(JNIEnv *, jclass,
|
||||
}
|
||||
|
||||
JNIEXPORT jint JNICALL
|
||||
Java_app_organicmaps_Framework_nativeGetPowerManagerScheme(JNIEnv *, jclass)
|
||||
Java_app_organicmaps_sdk_Framework_nativeGetPowerManagerScheme(JNIEnv *, jclass)
|
||||
{
|
||||
return static_cast<jint>(frm()->GetPowerManager().GetScheme());
|
||||
}
|
||||
|
||||
JNIEXPORT void JNICALL
|
||||
Java_app_organicmaps_Framework_nativeSetPowerManagerScheme(JNIEnv *, jclass, jint schemeType)
|
||||
Java_app_organicmaps_sdk_Framework_nativeSetPowerManagerScheme(JNIEnv *, jclass, jint schemeType)
|
||||
{
|
||||
frm()->GetPowerManager().SetScheme(static_cast<power_management::Scheme>(schemeType));
|
||||
}
|
||||
|
||||
JNIEXPORT void JNICALL
|
||||
Java_app_organicmaps_Framework_nativeSetViewportCenter(JNIEnv *, jclass, jdouble lat, jdouble lon, jint zoom)
|
||||
Java_app_organicmaps_sdk_Framework_nativeSetViewportCenter(JNIEnv *, jclass, jdouble lat, jdouble lon, jint zoom)
|
||||
{
|
||||
// isAnim = true because of previous nativeSetChoosePositionMode animations.
|
||||
frm()->SetViewportCenter(mercator::FromLatLon(lat, lon), static_cast<int>(zoom), true /* isAnim */);
|
||||
}
|
||||
|
||||
JNIEXPORT void JNICALL
|
||||
Java_app_organicmaps_Framework_nativeStopLocationFollow(JNIEnv *, jclass)
|
||||
Java_app_organicmaps_sdk_Framework_nativeStopLocationFollow(JNIEnv *, jclass)
|
||||
{
|
||||
frm()->StopLocationFollow();
|
||||
}
|
||||
|
||||
JNIEXPORT void JNICALL
|
||||
Java_app_organicmaps_Framework_nativeSetSearchViewport(JNIEnv *, jclass, jdouble lat,
|
||||
Java_app_organicmaps_sdk_Framework_nativeSetSearchViewport(JNIEnv *, jclass, jdouble lat,
|
||||
jdouble lon, jint zoom)
|
||||
{
|
||||
auto const center = mercator::FromLatLon(static_cast<double>(lat),
|
||||
@@ -1793,85 +1793,15 @@ Java_app_organicmaps_Framework_nativeSetSearchViewport(JNIEnv *, jclass, jdouble
|
||||
}
|
||||
|
||||
JNIEXPORT jboolean JNICALL
|
||||
Java_app_organicmaps_Framework_nativeHasPlacePageInfo(JNIEnv *, jclass)
|
||||
Java_app_organicmaps_sdk_Framework_nativeHasPlacePageInfo(JNIEnv *, jclass)
|
||||
{
|
||||
return static_cast<jboolean>(frm()->HasPlacePageInfo());
|
||||
}
|
||||
|
||||
JNIEXPORT void JNICALL
|
||||
Java_app_organicmaps_Framework_nativeMemoryWarning(JNIEnv *, jclass)
|
||||
Java_app_organicmaps_sdk_Framework_nativeMemoryWarning(JNIEnv *, jclass)
|
||||
{
|
||||
return frm()->MemoryWarning();
|
||||
}
|
||||
|
||||
JNIEXPORT jboolean JNICALL
|
||||
Java_app_organicmaps_Framework_nativeShouldShowProducts(JNIEnv * env, jclass)
|
||||
{
|
||||
return frm()->ShouldShowProducts();
|
||||
}
|
||||
|
||||
JNIEXPORT jobject JNICALL
|
||||
Java_app_organicmaps_Framework_nativeGetProductsConfiguration(JNIEnv * env, jclass)
|
||||
{
|
||||
auto config = frm()->GetProductsConfiguration();
|
||||
if (!config) return nullptr;
|
||||
|
||||
static jclass const productClass = jni::GetGlobalClassRef(
|
||||
env,
|
||||
"app/organicmaps/products/Product"
|
||||
);
|
||||
static jmethodID const productConstructor = jni::GetConstructorID(
|
||||
env,
|
||||
productClass,
|
||||
"(Ljava/lang/String;Ljava/lang/String;)V"
|
||||
);
|
||||
|
||||
jobjectArray products = jni::ToJavaArray(
|
||||
env,
|
||||
productClass,
|
||||
config->GetProducts(),
|
||||
[](JNIEnv * env, products::ProductsConfig::Product const & product)
|
||||
{
|
||||
jni::TScopedLocalRef const title(env, jni::ToJavaString(env, product.GetTitle()));
|
||||
jni::TScopedLocalRef const link(env, jni::ToJavaString(env, product.GetLink()));
|
||||
|
||||
return env->NewObject(
|
||||
productClass,
|
||||
productConstructor,
|
||||
title.get(),
|
||||
link.get()
|
||||
);
|
||||
});
|
||||
|
||||
static jclass const productsConfigClass = jni::GetGlobalClassRef(
|
||||
env,
|
||||
"app/organicmaps/products/ProductsConfig"
|
||||
);
|
||||
static jmethodID const productsConfigConstructor = jni::GetConstructorID(
|
||||
env,
|
||||
productsConfigClass,
|
||||
"(Ljava/lang/String;[Lapp/organicmaps/products/Product;)V"
|
||||
);
|
||||
|
||||
jni::TScopedLocalRef const placePagePrompt(env, jni::ToJavaString(env, config->GetPlacePagePrompt()));
|
||||
return env->NewObject(productsConfigClass, productsConfigConstructor, placePagePrompt.get(), products);
|
||||
}
|
||||
|
||||
JNIEXPORT void JNICALL
|
||||
Java_app_organicmaps_Framework_nativeDidCloseProductsPopup(JNIEnv * env, jclass, jstring reason)
|
||||
{
|
||||
frm()->DidCloseProductsPopup(frm()->FromString(jni::ToNativeString(env, reason)));
|
||||
}
|
||||
|
||||
JNIEXPORT void JNICALL
|
||||
Java_app_organicmaps_Framework_nativeDidSelectProduct(JNIEnv * env, jclass, jstring title, jstring link)
|
||||
{
|
||||
products::ProductsConfig::Product product(
|
||||
jni::ToNativeString(env, title),
|
||||
jni::ToNativeString(env, link)
|
||||
);
|
||||
|
||||
frm()->DidSelectProduct(product);
|
||||
}
|
||||
|
||||
} // extern "C"
|
||||
@@ -1,9 +1,9 @@
|
||||
#include "Framework.hpp"
|
||||
#include "map/gps_tracker.hpp"
|
||||
|
||||
#include "app/organicmaps/core/jni_helper.hpp"
|
||||
#include "app/organicmaps/sdk/core/jni_helper.hpp"
|
||||
|
||||
#include "app/organicmaps/platform/AndroidPlatform.hpp"
|
||||
#include "app/organicmaps/sdk/platform/AndroidPlatform.hpp"
|
||||
|
||||
extern "C"
|
||||
{
|
||||
@@ -18,7 +18,7 @@ static void LocationStateModeChanged(location::EMyPositionMode mode,
|
||||
|
||||
// public static void nativeSwitchToNextMode();
|
||||
JNIEXPORT void JNICALL
|
||||
Java_app_organicmaps_location_LocationState_nativeSwitchToNextMode(JNIEnv * env, jclass clazz)
|
||||
Java_app_organicmaps_sdk_location_LocationState_nativeSwitchToNextMode(JNIEnv * env, jclass clazz)
|
||||
{
|
||||
ASSERT(g_framework, ());
|
||||
g_framework->SwitchMyPositionNextMode();
|
||||
@@ -26,7 +26,7 @@ Java_app_organicmaps_location_LocationState_nativeSwitchToNextMode(JNIEnv * env,
|
||||
|
||||
// private static int nativeGetMode();
|
||||
JNIEXPORT jint JNICALL
|
||||
Java_app_organicmaps_location_LocationState_nativeGetMode(JNIEnv * env, jclass clazz)
|
||||
Java_app_organicmaps_sdk_location_LocationState_nativeGetMode(JNIEnv * env, jclass clazz)
|
||||
{
|
||||
// GetMyPositionMode() is initialized only after drape creation.
|
||||
// https://github.com/organicmaps/organicmaps/issues/1128#issuecomment-1784435190
|
||||
@@ -36,7 +36,7 @@ Java_app_organicmaps_location_LocationState_nativeGetMode(JNIEnv * env, jclass c
|
||||
|
||||
// public static void nativeSetListener(ModeChangeListener listener);
|
||||
JNIEXPORT void JNICALL
|
||||
Java_app_organicmaps_location_LocationState_nativeSetListener(JNIEnv * env, jclass clazz,
|
||||
Java_app_organicmaps_sdk_location_LocationState_nativeSetListener(JNIEnv * env, jclass clazz,
|
||||
jobject listener)
|
||||
{
|
||||
ASSERT(g_framework, ());
|
||||
@@ -46,21 +46,21 @@ Java_app_organicmaps_location_LocationState_nativeSetListener(JNIEnv * env, jcla
|
||||
|
||||
// public static void nativeRemoveListener();
|
||||
JNIEXPORT void JNICALL
|
||||
Java_app_organicmaps_location_LocationState_nativeRemoveListener(JNIEnv * env, jclass clazz)
|
||||
Java_app_organicmaps_sdk_location_LocationState_nativeRemoveListener(JNIEnv * env, jclass clazz)
|
||||
{
|
||||
ASSERT(g_framework, ());
|
||||
g_framework->SetMyPositionModeListener(location::TMyPositionModeChanged());
|
||||
}
|
||||
|
||||
JNIEXPORT void JNICALL
|
||||
Java_app_organicmaps_location_LocationState_nativeOnLocationError(JNIEnv * env, jclass clazz, int errorCode)
|
||||
Java_app_organicmaps_sdk_location_LocationState_nativeOnLocationError(JNIEnv * env, jclass clazz, int errorCode)
|
||||
{
|
||||
ASSERT(g_framework, ());
|
||||
g_framework->OnLocationError(errorCode);
|
||||
}
|
||||
|
||||
JNIEXPORT void JNICALL
|
||||
Java_app_organicmaps_location_LocationState_nativeLocationUpdated(JNIEnv * env, jclass clazz, jlong time,
|
||||
Java_app_organicmaps_sdk_location_LocationState_nativeLocationUpdated(JNIEnv * env, jclass clazz, jlong time,
|
||||
jdouble lat, jdouble lon, jfloat accuracy,
|
||||
jdouble altitude, jfloat speed, jfloat bearing)
|
||||
{
|
||||
@@ -1,8 +1,8 @@
|
||||
#include "Framework.hpp"
|
||||
|
||||
#include "app/organicmaps/core/jni_helper.hpp"
|
||||
#include "app/organicmaps/sdk/core/jni_helper.hpp"
|
||||
|
||||
#include "app/organicmaps/platform/AndroidPlatform.hpp"
|
||||
#include "app/organicmaps/sdk/platform/AndroidPlatform.hpp"
|
||||
|
||||
#include "storage/storage_defines.hpp"
|
||||
|
||||
@@ -23,7 +23,7 @@ void OnRenderingInitializationFinished(std::shared_ptr<jobject> const & listener
|
||||
extern "C"
|
||||
{
|
||||
JNIEXPORT jboolean JNICALL
|
||||
Java_app_organicmaps_Map_nativeCreateEngine(JNIEnv * env, jclass,
|
||||
Java_app_organicmaps_sdk_Map_nativeCreateEngine(JNIEnv * env, jclass,
|
||||
jobject surface, jint density,
|
||||
jboolean firstLaunch,
|
||||
jboolean isLaunchByDeepLink,
|
||||
@@ -35,25 +35,25 @@ Java_app_organicmaps_Map_nativeCreateEngine(JNIEnv * env, jclass,
|
||||
}
|
||||
|
||||
JNIEXPORT jboolean JNICALL
|
||||
Java_app_organicmaps_Map_nativeIsEngineCreated(JNIEnv *, jclass)
|
||||
Java_app_organicmaps_sdk_Map_nativeIsEngineCreated(JNIEnv *, jclass)
|
||||
{
|
||||
return g_framework->IsDrapeEngineCreated();
|
||||
}
|
||||
|
||||
JNIEXPORT void JNICALL
|
||||
Java_app_organicmaps_Map_nativeUpdateEngineDpi(JNIEnv *, jclass, jint dpi)
|
||||
Java_app_organicmaps_sdk_Map_nativeUpdateEngineDpi(JNIEnv *, jclass, jint dpi)
|
||||
{
|
||||
return g_framework->UpdateDpi(dpi);
|
||||
}
|
||||
|
||||
JNIEXPORT void JNICALL
|
||||
Java_app_organicmaps_Map_nativeExecuteMapApiRequest(JNIEnv * env, jclass)
|
||||
Java_app_organicmaps_sdk_Map_nativeExecuteMapApiRequest(JNIEnv * env, jclass)
|
||||
{
|
||||
return g_framework->ExecuteMapApiRequest();
|
||||
}
|
||||
|
||||
JNIEXPORT void JNICALL
|
||||
Java_app_organicmaps_Map_nativeSetRenderingInitializationFinishedListener(
|
||||
Java_app_organicmaps_sdk_Map_nativeSetRenderingInitializationFinishedListener(
|
||||
JNIEnv *, jclass, jobject listener)
|
||||
{
|
||||
if (listener)
|
||||
@@ -68,68 +68,68 @@ Java_app_organicmaps_Map_nativeSetRenderingInitializationFinishedListener(
|
||||
}
|
||||
|
||||
JNIEXPORT jboolean JNICALL
|
||||
Java_app_organicmaps_Map_nativeAttachSurface(JNIEnv * env, jclass, jobject surface)
|
||||
Java_app_organicmaps_sdk_Map_nativeAttachSurface(JNIEnv * env, jclass, jobject surface)
|
||||
{
|
||||
return g_framework->AttachSurface(env, surface);
|
||||
}
|
||||
|
||||
JNIEXPORT void JNICALL
|
||||
Java_app_organicmaps_Map_nativeDetachSurface(JNIEnv *, jclass, jboolean destroySurface)
|
||||
Java_app_organicmaps_sdk_Map_nativeDetachSurface(JNIEnv *, jclass, jboolean destroySurface)
|
||||
{
|
||||
g_framework->DetachSurface(destroySurface);
|
||||
}
|
||||
|
||||
JNIEXPORT void JNICALL
|
||||
Java_app_organicmaps_Map_nativeSurfaceChanged(JNIEnv * env, jclass, jobject surface, jint w, jint h)
|
||||
Java_app_organicmaps_sdk_Map_nativeSurfaceChanged(JNIEnv * env, jclass, jobject surface, jint w, jint h)
|
||||
{
|
||||
g_framework->Resize(env, surface, w, h);
|
||||
}
|
||||
|
||||
JNIEXPORT jboolean JNICALL
|
||||
Java_app_organicmaps_Map_nativeDestroySurfaceOnDetach(JNIEnv *, jclass)
|
||||
Java_app_organicmaps_sdk_Map_nativeDestroySurfaceOnDetach(JNIEnv *, jclass)
|
||||
{
|
||||
return g_framework->DestroySurfaceOnDetach();
|
||||
}
|
||||
|
||||
JNIEXPORT void JNICALL
|
||||
Java_app_organicmaps_Map_nativePauseSurfaceRendering(JNIEnv *, jclass)
|
||||
Java_app_organicmaps_sdk_Map_nativePauseSurfaceRendering(JNIEnv *, jclass)
|
||||
{
|
||||
g_framework->PauseSurfaceRendering();
|
||||
}
|
||||
|
||||
JNIEXPORT void JNICALL
|
||||
Java_app_organicmaps_Map_nativeResumeSurfaceRendering(JNIEnv *, jclass)
|
||||
Java_app_organicmaps_sdk_Map_nativeResumeSurfaceRendering(JNIEnv *, jclass)
|
||||
{
|
||||
g_framework->ResumeSurfaceRendering();
|
||||
}
|
||||
|
||||
JNIEXPORT void JNICALL
|
||||
Java_app_organicmaps_Map_nativeUpdateMyPositionRoutingOffset(JNIEnv * env, jclass clazz, int offsetY)
|
||||
Java_app_organicmaps_sdk_Map_nativeUpdateMyPositionRoutingOffset(JNIEnv * env, jclass clazz, int offsetY)
|
||||
{
|
||||
g_framework->UpdateMyPositionRoutingOffset(offsetY);
|
||||
}
|
||||
|
||||
JNIEXPORT void JNICALL
|
||||
Java_app_organicmaps_Map_nativeApplyWidgets(JNIEnv *, jclass)
|
||||
Java_app_organicmaps_sdk_Map_nativeApplyWidgets(JNIEnv *, jclass)
|
||||
{
|
||||
g_framework->ApplyWidgets();
|
||||
}
|
||||
|
||||
JNIEXPORT void JNICALL
|
||||
Java_app_organicmaps_Map_nativeCleanWidgets(JNIEnv *, jclass)
|
||||
Java_app_organicmaps_sdk_Map_nativeCleanWidgets(JNIEnv *, jclass)
|
||||
{
|
||||
g_framework->CleanWidgets();
|
||||
}
|
||||
|
||||
JNIEXPORT void JNICALL
|
||||
Java_app_organicmaps_Map_nativeSetupWidget(
|
||||
Java_app_organicmaps_sdk_Map_nativeSetupWidget(
|
||||
JNIEnv *, jclass, jint widget, jfloat x, jfloat y, jint anchor)
|
||||
{
|
||||
g_framework->SetupWidget(static_cast<gui::EWidget>(widget), x, y, static_cast<dp::Anchor>(anchor));
|
||||
}
|
||||
|
||||
JNIEXPORT void JNICALL
|
||||
Java_app_organicmaps_Map_nativeCompassUpdated(JNIEnv *, jclass, jdouble north, jboolean forceRedraw)
|
||||
Java_app_organicmaps_sdk_Map_nativeCompassUpdated(JNIEnv *, jclass, jdouble north, jboolean forceRedraw)
|
||||
{
|
||||
location::CompassInfo info;
|
||||
info.m_bearing = north;
|
||||
@@ -138,33 +138,33 @@ Java_app_organicmaps_Map_nativeCompassUpdated(JNIEnv *, jclass, jdouble north, j
|
||||
}
|
||||
|
||||
JNIEXPORT void JNICALL
|
||||
Java_app_organicmaps_Map_nativeScalePlus(JNIEnv *, jclass)
|
||||
Java_app_organicmaps_sdk_Map_nativeScalePlus(JNIEnv *, jclass)
|
||||
{
|
||||
g_framework->Scale(::Framework::SCALE_MAG);
|
||||
}
|
||||
|
||||
JNIEXPORT void JNICALL
|
||||
Java_app_organicmaps_Map_nativeScaleMinus(JNIEnv *, jclass)
|
||||
Java_app_organicmaps_sdk_Map_nativeScaleMinus(JNIEnv *, jclass)
|
||||
{
|
||||
g_framework->Scale(::Framework::SCALE_MIN);
|
||||
}
|
||||
|
||||
JNIEXPORT void JNICALL
|
||||
Java_app_organicmaps_Map_nativeOnScroll(
|
||||
Java_app_organicmaps_sdk_Map_nativeOnScroll(
|
||||
JNIEnv *, jclass, jdouble distanceX, jdouble distanceY)
|
||||
{
|
||||
g_framework->Scroll(distanceX, distanceY);
|
||||
}
|
||||
|
||||
JNIEXPORT void JNICALL
|
||||
Java_app_organicmaps_Map_nativeOnScale(
|
||||
Java_app_organicmaps_sdk_Map_nativeOnScale(
|
||||
JNIEnv *, jclass, jdouble factor, jdouble focusX, jdouble focusY, jboolean isAnim)
|
||||
{
|
||||
g_framework->Scale(factor, {focusX, focusY}, isAnim);
|
||||
}
|
||||
|
||||
JNIEXPORT void JNICALL
|
||||
Java_app_organicmaps_Map_nativeOnTouch(JNIEnv *, jclass, jint action,
|
||||
Java_app_organicmaps_sdk_Map_nativeOnTouch(JNIEnv *, jclass, jint action,
|
||||
jint id1, jfloat x1, jfloat y1,
|
||||
jint id2, jfloat x2, jfloat y2,
|
||||
jint maskedPointer)
|
||||
@@ -175,14 +175,14 @@ Java_app_organicmaps_Map_nativeOnTouch(JNIEnv *, jclass, jint action,
|
||||
}
|
||||
|
||||
JNIEXPORT void JNICALL
|
||||
Java_app_organicmaps_Map_nativeStorageConnected(JNIEnv *, jclass)
|
||||
Java_app_organicmaps_sdk_Map_nativeStorageConnected(JNIEnv *, jclass)
|
||||
{
|
||||
android::Platform::Instance().OnExternalStorageStatusChanged(true);
|
||||
g_framework->AddLocalMaps();
|
||||
}
|
||||
|
||||
JNIEXPORT void JNICALL
|
||||
Java_app_organicmaps_Map_nativeStorageDisconnected(JNIEnv *, jclass)
|
||||
Java_app_organicmaps_sdk_Map_nativeStorageDisconnected(JNIEnv *, jclass)
|
||||
{
|
||||
android::Platform::Instance().OnExternalStorageStatusChanged(false);
|
||||
g_framework->RemoveLocalMaps();
|
||||
@@ -1,7 +1,7 @@
|
||||
#include "Framework.hpp"
|
||||
|
||||
#include "app/organicmaps/core/jni_helper.hpp"
|
||||
#include "app/organicmaps/core/jni_java_methods.hpp"
|
||||
#include "app/organicmaps/sdk/core/jni_helper.hpp"
|
||||
#include "app/organicmaps/sdk/core/jni_java_methods.hpp"
|
||||
|
||||
#include "coding/internal/file_data.hpp"
|
||||
|
||||
@@ -70,7 +70,7 @@ struct CountryItemBuilder
|
||||
|
||||
CountryItemBuilder(JNIEnv *env)
|
||||
{
|
||||
m_class = jni::GetGlobalClassRef(env, "app/organicmaps/downloader/CountryItem");
|
||||
m_class = jni::GetGlobalClassRef(env, "app/organicmaps/sdk/downloader/CountryItem");
|
||||
m_ctor = jni::GetConstructorID(env, m_class, "(Ljava/lang/String;)V");
|
||||
|
||||
m_Id = env->GetFieldID(m_class, "id", "Ljava/lang/String;");
|
||||
@@ -112,55 +112,55 @@ extern "C"
|
||||
|
||||
// static String nativeGetRoot();
|
||||
JNIEXPORT jstring JNICALL
|
||||
Java_app_organicmaps_downloader_MapManager_nativeGetRoot(JNIEnv * env, jclass clazz)
|
||||
Java_app_organicmaps_sdk_downloader_MapManager_nativeGetRoot(JNIEnv * env, jclass clazz)
|
||||
{
|
||||
return jni::ToJavaString(env, GetStorage().GetRootId());
|
||||
}
|
||||
|
||||
// static boolean nativeMoveFile(String oldFile, String newFile);
|
||||
JNIEXPORT jboolean JNICALL
|
||||
Java_app_organicmaps_downloader_MapManager_nativeMoveFile(JNIEnv * env, jclass clazz, jstring oldFile, jstring newFile)
|
||||
Java_app_organicmaps_sdk_downloader_MapManager_nativeMoveFile(JNIEnv * env, jclass clazz, jstring oldFile, jstring newFile)
|
||||
{
|
||||
return base::MoveFileX(jni::ToNativeString(env, oldFile), jni::ToNativeString(env, newFile));
|
||||
}
|
||||
|
||||
// static boolean nativeHasSpaceToDownloadAmount(long bytes);
|
||||
JNIEXPORT jboolean JNICALL
|
||||
Java_app_organicmaps_downloader_MapManager_nativeHasSpaceToDownloadAmount(JNIEnv * env, jclass clazz, jlong bytes)
|
||||
Java_app_organicmaps_sdk_downloader_MapManager_nativeHasSpaceToDownloadAmount(JNIEnv * env, jclass clazz, jlong bytes)
|
||||
{
|
||||
return storage::IsEnoughSpaceForDownload(bytes);
|
||||
}
|
||||
|
||||
// static boolean nativeHasSpaceToDownloadCountry(String root);
|
||||
JNIEXPORT jboolean JNICALL
|
||||
Java_app_organicmaps_downloader_MapManager_nativeHasSpaceToDownloadCountry(JNIEnv * env, jclass clazz, jstring root)
|
||||
Java_app_organicmaps_sdk_downloader_MapManager_nativeHasSpaceToDownloadCountry(JNIEnv * env, jclass clazz, jstring root)
|
||||
{
|
||||
return storage::IsEnoughSpaceForDownload(jni::ToNativeString(env, root), GetStorage());
|
||||
}
|
||||
|
||||
// static boolean nativeHasSpaceToUpdate(String root);
|
||||
JNIEXPORT jboolean JNICALL
|
||||
Java_app_organicmaps_downloader_MapManager_nativeHasSpaceToUpdate(JNIEnv * env, jclass clazz, jstring root)
|
||||
Java_app_organicmaps_sdk_downloader_MapManager_nativeHasSpaceToUpdate(JNIEnv * env, jclass clazz, jstring root)
|
||||
{
|
||||
return IsEnoughSpaceForUpdate(jni::ToNativeString(env, root), GetStorage());
|
||||
}
|
||||
|
||||
// static int nativeGetDownloadedCount();
|
||||
JNIEXPORT jint JNICALL
|
||||
Java_app_organicmaps_downloader_MapManager_nativeGetDownloadedCount(JNIEnv * env, jclass clazz)
|
||||
Java_app_organicmaps_sdk_downloader_MapManager_nativeGetDownloadedCount(JNIEnv * env, jclass clazz)
|
||||
{
|
||||
return static_cast<jint>(GetStorage().GetDownloadedFilesCount());
|
||||
}
|
||||
|
||||
// static @Nullable UpdateInfo nativeGetUpdateInfo(@Nullable String root);
|
||||
JNIEXPORT jobject JNICALL
|
||||
Java_app_organicmaps_downloader_MapManager_nativeGetUpdateInfo(JNIEnv * env, jclass clazz, jstring root)
|
||||
Java_app_organicmaps_sdk_downloader_MapManager_nativeGetUpdateInfo(JNIEnv * env, jclass clazz, jstring root)
|
||||
{
|
||||
storage::Storage::UpdateInfo info;
|
||||
if (!GetStorage().GetUpdateInfo(GetRootId(env, root), info))
|
||||
return nullptr;
|
||||
|
||||
static jclass const infoClass = jni::GetGlobalClassRef(env, "app/organicmaps/downloader/UpdateInfo");
|
||||
static jclass const infoClass = jni::GetGlobalClassRef(env, "app/organicmaps/sdk/downloader/UpdateInfo");
|
||||
ASSERT(infoClass, (jni::DescribeException()));
|
||||
static jmethodID const ctor = jni::GetConstructorID(env, infoClass, "(IJ)V");
|
||||
ASSERT(ctor, (jni::DescribeException()));
|
||||
@@ -269,7 +269,7 @@ static void PutItemsToList(
|
||||
|
||||
// static void nativeListItems(@Nullable String root, double lat, double lon, boolean hasLocation, boolean myMapsMode, List<CountryItem> result);
|
||||
JNIEXPORT void JNICALL
|
||||
Java_app_organicmaps_downloader_MapManager_nativeListItems(JNIEnv * env, jclass clazz, jstring parent, jdouble lat, jdouble lon, jboolean hasLocation, jboolean myMapsMode, jobject result)
|
||||
Java_app_organicmaps_sdk_downloader_MapManager_nativeListItems(JNIEnv * env, jclass clazz, jstring parent, jdouble lat, jdouble lon, jboolean hasLocation, jboolean myMapsMode, jobject result)
|
||||
{
|
||||
if (hasLocation && !myMapsMode)
|
||||
{
|
||||
@@ -292,7 +292,7 @@ Java_app_organicmaps_downloader_MapManager_nativeListItems(JNIEnv * env, jclass
|
||||
|
||||
// static void nativeUpdateItem(CountryItem item);
|
||||
JNIEXPORT void JNICALL
|
||||
Java_app_organicmaps_downloader_MapManager_nativeGetAttributes(JNIEnv * env, jclass, jobject item)
|
||||
Java_app_organicmaps_sdk_downloader_MapManager_nativeGetAttributes(JNIEnv * env, jclass, jobject item)
|
||||
{
|
||||
auto const & ciBuilder = CountryItemBuilder::Instance(env);
|
||||
jstring id = static_cast<jstring>(env->GetObjectField(item, ciBuilder.m_Id));
|
||||
@@ -305,7 +305,7 @@ Java_app_organicmaps_downloader_MapManager_nativeGetAttributes(JNIEnv * env, jcl
|
||||
|
||||
// static void nativeGetStatus(String root);
|
||||
JNIEXPORT jint JNICALL
|
||||
Java_app_organicmaps_downloader_MapManager_nativeGetStatus(JNIEnv * env, jclass clazz, jstring root)
|
||||
Java_app_organicmaps_sdk_downloader_MapManager_nativeGetStatus(JNIEnv * env, jclass clazz, jstring root)
|
||||
{
|
||||
storage::NodeStatuses ns;
|
||||
GetStorage().GetNodeStatuses(jni::ToNativeString(env, root), ns);
|
||||
@@ -314,7 +314,7 @@ Java_app_organicmaps_downloader_MapManager_nativeGetStatus(JNIEnv * env, jclass
|
||||
|
||||
// static void nativeGetError(String root);
|
||||
JNIEXPORT jint JNICALL
|
||||
Java_app_organicmaps_downloader_MapManager_nativeGetError(JNIEnv * env, jclass clazz, jstring root)
|
||||
Java_app_organicmaps_sdk_downloader_MapManager_nativeGetError(JNIEnv * env, jclass clazz, jstring root)
|
||||
{
|
||||
storage::NodeStatuses ns;
|
||||
GetStorage().GetNodeStatuses(jni::ToNativeString(env, root), ns);
|
||||
@@ -323,21 +323,21 @@ Java_app_organicmaps_downloader_MapManager_nativeGetError(JNIEnv * env, jclass c
|
||||
|
||||
// static String nativeGetName(String root);
|
||||
JNIEXPORT jstring JNICALL
|
||||
Java_app_organicmaps_downloader_MapManager_nativeGetName(JNIEnv * env, jclass clazz, jstring root)
|
||||
Java_app_organicmaps_sdk_downloader_MapManager_nativeGetName(JNIEnv * env, jclass clazz, jstring root)
|
||||
{
|
||||
return jni::ToJavaString(env, GetStorage().GetNodeLocalName(jni::ToNativeString(env, root)));
|
||||
}
|
||||
|
||||
// static @Nullable String nativeFindCountry(double lat, double lon);
|
||||
JNIEXPORT jstring JNICALL
|
||||
Java_app_organicmaps_downloader_MapManager_nativeFindCountry(JNIEnv * env, jclass clazz, jdouble lat, jdouble lon)
|
||||
Java_app_organicmaps_sdk_downloader_MapManager_nativeFindCountry(JNIEnv * env, jclass clazz, jdouble lat, jdouble lon)
|
||||
{
|
||||
return jni::ToJavaString(env, g_framework->NativeFramework()->GetCountryInfoGetter().GetRegionCountryId(mercator::FromLatLon(lat, lon)));
|
||||
}
|
||||
|
||||
// static boolean nativeIsDownloading();
|
||||
JNIEXPORT jboolean JNICALL
|
||||
Java_app_organicmaps_downloader_MapManager_nativeIsDownloading(JNIEnv * env, jclass clazz)
|
||||
Java_app_organicmaps_sdk_downloader_MapManager_nativeIsDownloading(JNIEnv * env, jclass clazz)
|
||||
{
|
||||
return static_cast<jboolean>(GetStorage().IsDownloadInProgress());
|
||||
}
|
||||
@@ -365,7 +365,7 @@ static void EndBatchingCallbacks(JNIEnv * env)
|
||||
for (TBatchedData const & dataItem : key.second)
|
||||
{
|
||||
// Create StorageCallbackData instance…
|
||||
static jclass batchDataClass = jni::GetGlobalClassRef(env, "app/organicmaps/downloader/MapManager$StorageCallbackData");
|
||||
static jclass batchDataClass = jni::GetGlobalClassRef(env, "app/organicmaps/sdk/downloader/MapManager$StorageCallbackData");
|
||||
static jmethodID batchDataCtor = jni::GetConstructorID(env, batchDataClass, "(Ljava/lang/String;IIZ)V");
|
||||
|
||||
jni::TScopedLocalRef const id(env, jni::ToJavaString(env, dataItem.m_countryId));
|
||||
@@ -388,7 +388,7 @@ static void EndBatchingCallbacks(JNIEnv * env)
|
||||
|
||||
// static void nativeDownload(String root);
|
||||
JNIEXPORT void JNICALL
|
||||
Java_app_organicmaps_downloader_MapManager_nativeDownload(JNIEnv * env, jclass clazz, jstring root)
|
||||
Java_app_organicmaps_sdk_downloader_MapManager_nativeDownload(JNIEnv * env, jclass clazz, jstring root)
|
||||
{
|
||||
StartBatchingCallbacks();
|
||||
GetStorage().DownloadNode(jni::ToNativeString(env, root));
|
||||
@@ -397,7 +397,7 @@ Java_app_organicmaps_downloader_MapManager_nativeDownload(JNIEnv * env, jclass c
|
||||
|
||||
// static boolean nativeRetry(String root);
|
||||
JNIEXPORT void JNICALL
|
||||
Java_app_organicmaps_downloader_MapManager_nativeRetry(JNIEnv * env, jclass clazz, jstring root)
|
||||
Java_app_organicmaps_sdk_downloader_MapManager_nativeRetry(JNIEnv * env, jclass clazz, jstring root)
|
||||
{
|
||||
StartBatchingCallbacks();
|
||||
GetStorage().RetryDownloadNode(jni::ToNativeString(env, root));
|
||||
@@ -406,7 +406,7 @@ Java_app_organicmaps_downloader_MapManager_nativeRetry(JNIEnv * env, jclass claz
|
||||
|
||||
// static void nativeUpdate(String root);
|
||||
JNIEXPORT void JNICALL
|
||||
Java_app_organicmaps_downloader_MapManager_nativeUpdate(JNIEnv * env, jclass clazz, jstring root)
|
||||
Java_app_organicmaps_sdk_downloader_MapManager_nativeUpdate(JNIEnv * env, jclass clazz, jstring root)
|
||||
{
|
||||
StartBatchingCallbacks();
|
||||
GetStorage().UpdateNode(GetRootId(env, root));
|
||||
@@ -415,7 +415,7 @@ Java_app_organicmaps_downloader_MapManager_nativeUpdate(JNIEnv * env, jclass cla
|
||||
|
||||
// static void nativeCancel(String root);
|
||||
JNIEXPORT void JNICALL
|
||||
Java_app_organicmaps_downloader_MapManager_nativeCancel(JNIEnv * env, jclass clazz, jstring root)
|
||||
Java_app_organicmaps_sdk_downloader_MapManager_nativeCancel(JNIEnv * env, jclass clazz, jstring root)
|
||||
{
|
||||
StartBatchingCallbacks();
|
||||
GetStorage().CancelDownloadNode(GetRootId(env, root));
|
||||
@@ -424,7 +424,7 @@ Java_app_organicmaps_downloader_MapManager_nativeCancel(JNIEnv * env, jclass cla
|
||||
|
||||
// static void nativeDelete(String root);
|
||||
JNIEXPORT void JNICALL
|
||||
Java_app_organicmaps_downloader_MapManager_nativeDelete(JNIEnv * env, jclass clazz, jstring root)
|
||||
Java_app_organicmaps_sdk_downloader_MapManager_nativeDelete(JNIEnv * env, jclass clazz, jstring root)
|
||||
{
|
||||
StartBatchingCallbacks();
|
||||
auto const countryId = jni::ToNativeString(env, root);
|
||||
@@ -457,7 +457,7 @@ static void ProgressChangedCallback(std::shared_ptr<jobject> const & listenerRef
|
||||
|
||||
// static int nativeSubscribe(StorageCallback listener);
|
||||
JNIEXPORT jint JNICALL
|
||||
Java_app_organicmaps_downloader_MapManager_nativeSubscribe(JNIEnv * env, jclass clazz, jobject listener)
|
||||
Java_app_organicmaps_sdk_downloader_MapManager_nativeSubscribe(JNIEnv * env, jclass clazz, jobject listener)
|
||||
{
|
||||
return GetStorage().Subscribe(std::bind(&StatusChangedCallback, jni::make_global_ref(listener), std::placeholders::_1),
|
||||
std::bind(&ProgressChangedCallback, jni::make_global_ref(listener), std::placeholders::_1, std::placeholders::_2));
|
||||
@@ -465,14 +465,14 @@ Java_app_organicmaps_downloader_MapManager_nativeSubscribe(JNIEnv * env, jclass
|
||||
|
||||
// static void nativeUnsubscribe(int slot);
|
||||
JNIEXPORT void JNICALL
|
||||
Java_app_organicmaps_downloader_MapManager_nativeUnsubscribe(JNIEnv * env, jclass clazz, jint slot)
|
||||
Java_app_organicmaps_sdk_downloader_MapManager_nativeUnsubscribe(JNIEnv * env, jclass clazz, jint slot)
|
||||
{
|
||||
GetStorage().Unsubscribe(slot);
|
||||
}
|
||||
|
||||
// static void nativeSubscribeOnCountryChanged(CurrentCountryChangedListener listener);
|
||||
JNIEXPORT void JNICALL
|
||||
Java_app_organicmaps_downloader_MapManager_nativeSubscribeOnCountryChanged(JNIEnv * env, jclass clazz, jobject listener)
|
||||
Java_app_organicmaps_sdk_downloader_MapManager_nativeSubscribeOnCountryChanged(JNIEnv * env, jclass clazz, jobject listener)
|
||||
{
|
||||
ASSERT(!g_countryChangedListener, ());
|
||||
g_countryChangedListener = env->NewGlobalRef(listener);
|
||||
@@ -492,7 +492,7 @@ Java_app_organicmaps_downloader_MapManager_nativeSubscribeOnCountryChanged(JNIEn
|
||||
|
||||
// static void nativeUnsubscribeOnCountryChanged();
|
||||
JNIEXPORT void JNICALL
|
||||
Java_app_organicmaps_downloader_MapManager_nativeUnsubscribeOnCountryChanged(JNIEnv * env, jclass clazz)
|
||||
Java_app_organicmaps_sdk_downloader_MapManager_nativeUnsubscribeOnCountryChanged(JNIEnv * env, jclass clazz)
|
||||
{
|
||||
g_framework->NativeFramework()->SetCurrentCountryChangedListener(nullptr);
|
||||
|
||||
@@ -502,14 +502,14 @@ Java_app_organicmaps_downloader_MapManager_nativeUnsubscribeOnCountryChanged(JNI
|
||||
|
||||
// static boolean nativeHasUnsavedEditorChanges(String root);
|
||||
JNIEXPORT jboolean JNICALL
|
||||
Java_app_organicmaps_downloader_MapManager_nativeHasUnsavedEditorChanges(JNIEnv * env, jclass clazz, jstring root)
|
||||
Java_app_organicmaps_sdk_downloader_MapManager_nativeHasUnsavedEditorChanges(JNIEnv * env, jclass clazz, jstring root)
|
||||
{
|
||||
return g_framework->NativeFramework()->HasUnsavedEdits(jni::ToNativeString(env, root));
|
||||
}
|
||||
|
||||
// static void nativeGetPathTo(String root, List<String> result);
|
||||
JNIEXPORT void JNICALL
|
||||
Java_app_organicmaps_downloader_MapManager_nativeGetPathTo(JNIEnv * env, jclass clazz, jstring root, jobject result)
|
||||
Java_app_organicmaps_sdk_downloader_MapManager_nativeGetPathTo(JNIEnv * env, jclass clazz, jstring root, jobject result)
|
||||
{
|
||||
auto const listAddMethod = jni::ListBuilder::Instance(env).m_add;
|
||||
|
||||
@@ -521,7 +521,7 @@ Java_app_organicmaps_downloader_MapManager_nativeGetPathTo(JNIEnv * env, jclass
|
||||
|
||||
// static int nativeGetOverallProgress(String[] countries);
|
||||
JNIEXPORT jint JNICALL
|
||||
Java_app_organicmaps_downloader_MapManager_nativeGetOverallProgress(JNIEnv * env, jclass clazz, jobjectArray jcountries)
|
||||
Java_app_organicmaps_sdk_downloader_MapManager_nativeGetOverallProgress(JNIEnv * env, jclass clazz, jobjectArray jcountries)
|
||||
{
|
||||
int const size = env->GetArrayLength(jcountries);
|
||||
storage::CountriesVec countries;
|
||||
@@ -544,28 +544,28 @@ Java_app_organicmaps_downloader_MapManager_nativeGetOverallProgress(JNIEnv * env
|
||||
|
||||
// static boolean nativeIsAutoretryFailed();
|
||||
JNIEXPORT jboolean JNICALL
|
||||
Java_app_organicmaps_downloader_MapManager_nativeIsAutoretryFailed(JNIEnv * env, jclass clazz)
|
||||
Java_app_organicmaps_sdk_downloader_MapManager_nativeIsAutoretryFailed(JNIEnv * env, jclass clazz)
|
||||
{
|
||||
return g_framework->IsAutoRetryDownloadFailed();
|
||||
}
|
||||
|
||||
// static boolean nativeIsDownloadOn3gEnabled();
|
||||
JNIEXPORT jboolean JNICALL
|
||||
Java_app_organicmaps_downloader_MapManager_nativeIsDownloadOn3gEnabled(JNIEnv * env, jclass clazz)
|
||||
Java_app_organicmaps_sdk_downloader_MapManager_nativeIsDownloadOn3gEnabled(JNIEnv * env, jclass clazz)
|
||||
{
|
||||
return g_framework->IsDownloadOn3gEnabled();
|
||||
}
|
||||
|
||||
// static void nativeEnableDownloadOn3g();
|
||||
JNIEXPORT void JNICALL
|
||||
Java_app_organicmaps_downloader_MapManager_nativeEnableDownloadOn3g(JNIEnv * env, jclass clazz)
|
||||
Java_app_organicmaps_sdk_downloader_MapManager_nativeEnableDownloadOn3g(JNIEnv * env, jclass clazz)
|
||||
{
|
||||
g_framework->EnableDownloadOn3g();
|
||||
}
|
||||
|
||||
// static @Nullable String nativeGetSelectedCountry();
|
||||
JNIEXPORT jstring JNICALL
|
||||
Java_app_organicmaps_downloader_MapManager_nativeGetSelectedCountry(JNIEnv * env, jclass clazz)
|
||||
Java_app_organicmaps_sdk_downloader_MapManager_nativeGetSelectedCountry(JNIEnv * env, jclass clazz)
|
||||
{
|
||||
if (!g_framework->NativeFramework()->HasPlacePageInfo())
|
||||
return nullptr;
|
||||
@@ -1,6 +1,6 @@
|
||||
#include "app/organicmaps/core/jni_helper.hpp"
|
||||
#include "app/organicmaps/sdk/core/jni_helper.hpp"
|
||||
|
||||
#include "app/organicmaps/Framework.hpp"
|
||||
#include "app/organicmaps/sdk/Framework.hpp"
|
||||
|
||||
#include "indexer/map_style.hpp"
|
||||
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
#include "app/organicmaps/Framework.hpp"
|
||||
#include "app/organicmaps/sdk/Framework.hpp"
|
||||
|
||||
#include "app/organicmaps/platform/AndroidPlatform.hpp"
|
||||
#include "app/organicmaps/sdk/platform/AndroidPlatform.hpp"
|
||||
|
||||
#include "app/organicmaps/core/jni_helper.hpp"
|
||||
#include "app/organicmaps/sdk/core/jni_helper.hpp"
|
||||
|
||||
extern "C"
|
||||
{
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
#include "app/organicmaps/core/jni_helper.hpp"
|
||||
#include "app/organicmaps/sdk/core/jni_helper.hpp"
|
||||
|
||||
#include "app/organicmaps/Framework.hpp"
|
||||
#include "app/organicmaps/sdk/Framework.hpp"
|
||||
|
||||
#include "indexer/map_style.hpp"
|
||||
|
||||
@@ -17,7 +17,7 @@ JNIEXPORT void JNICALL Java_app_organicmaps_sdk_Router_nativeSet(JNIEnv *, jclas
|
||||
case 2: type = Type::Bicycle; break;
|
||||
case 3: type = Type::Transit; break;
|
||||
case 4: type = Type::Ruler; break;
|
||||
default: assert(false); break;
|
||||
default: ASSERT(false, (routerType)); return;
|
||||
}
|
||||
frm()->GetRoutingManager().SetRouter(type);
|
||||
}
|
||||
|
||||
@@ -2,14 +2,14 @@
|
||||
|
||||
#include "map/gps_tracker.hpp"
|
||||
|
||||
#include "app/organicmaps/core/jni_helper.hpp"
|
||||
#include "app/organicmaps/sdk/core/jni_helper.hpp"
|
||||
|
||||
#include <chrono>
|
||||
|
||||
extern "C"
|
||||
{
|
||||
JNIEXPORT void JNICALL
|
||||
Java_app_organicmaps_location_TrackRecorder_nativeSetEnabled(JNIEnv * env, jclass clazz, jboolean enable)
|
||||
Java_app_organicmaps_sdk_location_TrackRecorder_nativeSetEnabled(JNIEnv * env, jclass clazz, jboolean enable)
|
||||
{
|
||||
GpsTracker::Instance().SetEnabled(enable);
|
||||
Framework * const f = frm();
|
||||
@@ -22,37 +22,37 @@ extern "C"
|
||||
}
|
||||
|
||||
JNIEXPORT jboolean JNICALL
|
||||
Java_app_organicmaps_location_TrackRecorder_nativeIsEnabled(JNIEnv * env, jclass clazz)
|
||||
Java_app_organicmaps_sdk_location_TrackRecorder_nativeIsEnabled(JNIEnv * env, jclass clazz)
|
||||
{
|
||||
return GpsTracker::Instance().IsEnabled();
|
||||
}
|
||||
|
||||
JNIEXPORT void JNICALL
|
||||
Java_app_organicmaps_location_TrackRecorder_nativeStartTrackRecording(JNIEnv * env, jclass clazz)
|
||||
Java_app_organicmaps_sdk_location_TrackRecorder_nativeStartTrackRecording(JNIEnv * env, jclass clazz)
|
||||
{
|
||||
frm()->StartTrackRecording();
|
||||
}
|
||||
|
||||
JNIEXPORT void JNICALL
|
||||
Java_app_organicmaps_location_TrackRecorder_nativeStopTrackRecording(JNIEnv * env, jclass clazz)
|
||||
Java_app_organicmaps_sdk_location_TrackRecorder_nativeStopTrackRecording(JNIEnv * env, jclass clazz)
|
||||
{
|
||||
frm()->StopTrackRecording();
|
||||
}
|
||||
|
||||
JNIEXPORT void JNICALL
|
||||
Java_app_organicmaps_location_TrackRecorder_nativeSaveTrackRecordingWithName(JNIEnv * env, jclass clazz, jstring name)
|
||||
Java_app_organicmaps_sdk_location_TrackRecorder_nativeSaveTrackRecordingWithName(JNIEnv * env, jclass clazz, jstring name)
|
||||
{
|
||||
frm()->SaveTrackRecordingWithName(jni::ToNativeString(env, name));
|
||||
}
|
||||
|
||||
JNIEXPORT jboolean JNICALL
|
||||
Java_app_organicmaps_location_TrackRecorder_nativeIsTrackRecordingEmpty(JNIEnv * env, jclass clazz)
|
||||
Java_app_organicmaps_sdk_location_TrackRecorder_nativeIsTrackRecordingEmpty(JNIEnv * env, jclass clazz)
|
||||
{
|
||||
return frm()->IsTrackRecordingEmpty();
|
||||
}
|
||||
|
||||
JNIEXPORT jboolean JNICALL
|
||||
Java_app_organicmaps_location_TrackRecorder_nativeIsTrackRecordingEnabled(JNIEnv * env, jclass clazz)
|
||||
Java_app_organicmaps_sdk_location_TrackRecorder_nativeIsTrackRecordingEnabled(JNIEnv * env, jclass clazz)
|
||||
{
|
||||
return frm()->IsTrackRecordingEnabled();
|
||||
}
|
||||
@@ -1,8 +1,8 @@
|
||||
#include "Framework.hpp"
|
||||
|
||||
#include "app/organicmaps/core/jni_helper.hpp"
|
||||
#include "app/organicmaps/sdk/core/jni_helper.hpp"
|
||||
|
||||
#include "app/organicmaps/platform/AndroidPlatform.hpp"
|
||||
#include "app/organicmaps/sdk/platform/AndroidPlatform.hpp"
|
||||
|
||||
extern "C"
|
||||
{
|
||||
@@ -13,35 +13,35 @@ static void TrafficStateChanged(TrafficManager::TrafficState state, std::shared_
|
||||
}
|
||||
|
||||
JNIEXPORT void JNICALL
|
||||
Java_app_organicmaps_maplayer_traffic_TrafficState_nativeSetListener(JNIEnv * env, jclass clazz, jobject listener)
|
||||
Java_app_organicmaps_sdk_maplayer_traffic_TrafficState_nativeSetListener(JNIEnv * env, jclass clazz, jobject listener)
|
||||
{
|
||||
CHECK(g_framework, ("Framework isn't created yet!"));
|
||||
g_framework->SetTrafficStateListener(std::bind(&TrafficStateChanged, std::placeholders::_1, jni::make_global_ref(listener)));
|
||||
}
|
||||
|
||||
JNIEXPORT void JNICALL
|
||||
Java_app_organicmaps_maplayer_traffic_TrafficState_nativeRemoveListener(JNIEnv * env, jclass clazz)
|
||||
Java_app_organicmaps_sdk_maplayer_traffic_TrafficState_nativeRemoveListener(JNIEnv * env, jclass clazz)
|
||||
{
|
||||
CHECK(g_framework, ("Framework isn't created yet!"));
|
||||
g_framework->SetTrafficStateListener(TrafficManager::TrafficStateChangedFn());
|
||||
}
|
||||
|
||||
JNIEXPORT void JNICALL
|
||||
Java_app_organicmaps_maplayer_traffic_TrafficState_nativeEnable(JNIEnv * env, jclass clazz)
|
||||
Java_app_organicmaps_sdk_maplayer_traffic_TrafficState_nativeEnable(JNIEnv * env, jclass clazz)
|
||||
{
|
||||
CHECK(g_framework, ("Framework isn't created yet!"));
|
||||
g_framework->EnableTraffic();
|
||||
}
|
||||
|
||||
JNIEXPORT jboolean JNICALL
|
||||
Java_app_organicmaps_maplayer_traffic_TrafficState_nativeIsEnabled(JNIEnv * env, jclass clazz)
|
||||
Java_app_organicmaps_sdk_maplayer_traffic_TrafficState_nativeIsEnabled(JNIEnv * env, jclass clazz)
|
||||
{
|
||||
CHECK(g_framework, ("Framework isn't created yet!"));
|
||||
return static_cast<jboolean>(g_framework->IsTrafficEnabled());
|
||||
}
|
||||
|
||||
JNIEXPORT void JNICALL
|
||||
Java_app_organicmaps_maplayer_traffic_TrafficState_nativeDisable(JNIEnv * env, jclass clazz)
|
||||
Java_app_organicmaps_sdk_maplayer_traffic_TrafficState_nativeDisable(JNIEnv * env, jclass clazz)
|
||||
{
|
||||
CHECK(g_framework, ("Framework isn't created yet!"));
|
||||
g_framework->DisableTraffic();
|
||||
@@ -49,7 +49,7 @@ jobject CreateMapObject(JNIEnv * env, place_page::Info const & info, int mapObje
|
||||
static jmethodID const ctorId = jni::GetConstructorID(
|
||||
env, g_mapObjectClazz,
|
||||
"("
|
||||
"Lapp/organicmaps/bookmarks/data/FeatureId;" // featureId
|
||||
"Lapp/organicmaps/sdk/bookmarks/data/FeatureId;" // featureId
|
||||
"I" // mapObjectType
|
||||
"Ljava/lang/String;" // title
|
||||
"Ljava/lang/String;" // secondaryTitle
|
||||
@@ -104,7 +104,7 @@ jobject CreateBookmark(JNIEnv *env, const place_page::Info &info,
|
||||
// @Nullable String[] rawTypes)
|
||||
static jmethodID const ctorId =
|
||||
jni::GetConstructorID(env, g_bookmarkClazz,
|
||||
"(Lapp/organicmaps/bookmarks/data/FeatureId;JJLjava/lang/String;"
|
||||
"(Lapp/organicmaps/sdk/bookmarks/data/FeatureId;JJLjava/lang/String;"
|
||||
"Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;"
|
||||
"Lapp/organicmaps/sdk/routing/RoutePointInfo;"
|
||||
"ILapp/organicmaps/sdk/search/Popularity;Ljava/lang/String;"
|
||||
@@ -137,7 +137,7 @@ jobject CreateBookmark(JNIEnv *env, const place_page::Info &info,
|
||||
jobject CreateElevationPoint(JNIEnv * env, ElevationInfo::Point const & point)
|
||||
{
|
||||
static jclass const pointClass =
|
||||
jni::GetGlobalClassRef(env, "app/organicmaps/bookmarks/data/ElevationInfo$Point");
|
||||
jni::GetGlobalClassRef(env, "app/organicmaps/sdk/bookmarks/data/ElevationInfo$Point");
|
||||
// public Point(double distance, int altitude)
|
||||
static jmethodID const pointCtorId =
|
||||
jni::GetConstructorID(env, pointClass, "(DI)V");
|
||||
@@ -149,7 +149,7 @@ jobjectArray ToElevationPointArray(JNIEnv * env, ElevationInfo::Points const & p
|
||||
{
|
||||
CHECK(!points.empty(), ("Elevation points must be non empty!"));
|
||||
static jclass const pointClass =
|
||||
jni::GetGlobalClassRef(env, "app/organicmaps/bookmarks/data/ElevationInfo$Point");
|
||||
jni::GetGlobalClassRef(env, "app/organicmaps/sdk/bookmarks/data/ElevationInfo$Point");
|
||||
return jni::ToJavaArray(env, pointClass, points,
|
||||
[](JNIEnv * env, ElevationInfo::Point const & item)
|
||||
{
|
||||
@@ -164,7 +164,7 @@ jobject CreateElevationInfo(JNIEnv * env, ElevationInfo const & info)
|
||||
// long m_duration)
|
||||
static jmethodID const ctorId =
|
||||
jni::GetConstructorID(env, g_elevationInfoClazz, "(JLjava/lang/String;Ljava/lang/String;"
|
||||
"[Lapp/organicmaps/bookmarks/data/ElevationInfo$Point;"
|
||||
"[Lapp/organicmaps/sdk/bookmarks/data/ElevationInfo$Point;"
|
||||
"IIIIIJ)V");
|
||||
jni::TScopedLocalObjectArrayRef jPoints(env, ToElevationPointArray(env, info.GetPoints()));
|
||||
// TODO (KK): elevation info should have only the elevation data - see the https://github.com/organicmaps/organicmaps/pull/10063
|
||||
@@ -2,8 +2,8 @@
|
||||
|
||||
#include <jni.h>
|
||||
|
||||
#include "app/organicmaps/core/jni_helper.hpp"
|
||||
#include "app/organicmaps/Framework.hpp"
|
||||
#include "app/organicmaps/sdk/core/jni_helper.hpp"
|
||||
#include "app/organicmaps/sdk/Framework.hpp"
|
||||
|
||||
#include <vector>
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
#include "app/organicmaps/core/jni_helper.hpp"
|
||||
#include "app/organicmaps/Framework.hpp"
|
||||
#include "app/organicmaps/UserMarkHelper.hpp"
|
||||
#include "app/organicmaps/util/Distance.hpp"
|
||||
#include "app/organicmaps/sdk/core/jni_helper.hpp"
|
||||
#include "app/organicmaps/sdk/Framework.hpp"
|
||||
#include "app/organicmaps/sdk/UserMarkHelper.hpp"
|
||||
#include "app/organicmaps/sdk/util/Distance.hpp"
|
||||
|
||||
#include "map/bookmark_helpers.hpp"
|
||||
#include "map/place_page_info.hpp"
|
||||
@@ -51,9 +51,9 @@ void PrepareClassRefs(JNIEnv * env)
|
||||
return;
|
||||
|
||||
g_bookmarkManagerClass =
|
||||
jni::GetGlobalClassRef(env, "app/organicmaps/bookmarks/data/BookmarkManager");
|
||||
jni::GetGlobalClassRef(env, "app/organicmaps/sdk/bookmarks/data/BookmarkManager");
|
||||
g_bookmarkManagerInstanceField = jni::GetStaticFieldID(env, g_bookmarkManagerClass, "INSTANCE",
|
||||
"Lapp/organicmaps/bookmarks/data/BookmarkManager;");
|
||||
"Lapp/organicmaps/sdk/bookmarks/data/BookmarkManager;");
|
||||
|
||||
jobject bookmarkManagerInstance = env->GetStaticObjectField(g_bookmarkManagerClass,
|
||||
g_bookmarkManagerInstanceField);
|
||||
@@ -68,27 +68,27 @@ void PrepareClassRefs(JNIEnv * env)
|
||||
"(ZLjava/lang/String;Z)V");
|
||||
g_onPreparedFileForSharingMethod =
|
||||
jni::GetMethodID(env, bookmarkManagerInstance, "onPreparedFileForSharing",
|
||||
"(Lapp/organicmaps/bookmarks/data/BookmarkSharingResult;)V");
|
||||
"(Lapp/organicmaps/sdk/bookmarks/data/BookmarkSharingResult;)V");
|
||||
|
||||
g_longClass = jni::GetGlobalClassRef(env,"java/lang/Long");
|
||||
g_longConstructor = jni::GetConstructorID(env, g_longClass, "(J)V");
|
||||
g_sortedBlockClass =
|
||||
jni::GetGlobalClassRef(env, "app/organicmaps/bookmarks/data/SortedBlock");
|
||||
jni::GetGlobalClassRef(env, "app/organicmaps/sdk/bookmarks/data/SortedBlock");
|
||||
g_sortedBlockConstructor =
|
||||
jni::GetConstructorID(env, g_sortedBlockClass,
|
||||
"(Ljava/lang/String;[Ljava/lang/Long;[Ljava/lang/Long;)V");
|
||||
|
||||
|
||||
g_onBookmarksSortingCompleted = jni::GetMethodID(env, bookmarkManagerInstance,
|
||||
"onBookmarksSortingCompleted", "([Lapp/organicmaps/bookmarks/data/SortedBlock;J)V");
|
||||
"onBookmarksSortingCompleted", "([Lapp/organicmaps/sdk/bookmarks/data/SortedBlock;J)V");
|
||||
g_onBookmarksSortingCancelled = jni::GetMethodID(env, bookmarkManagerInstance,
|
||||
"onBookmarksSortingCancelled", "(J)V");
|
||||
g_bookmarkInfoClass =
|
||||
jni::GetGlobalClassRef(env, "app/organicmaps/bookmarks/data/BookmarkInfo");
|
||||
jni::GetGlobalClassRef(env, "app/organicmaps/sdk/bookmarks/data/BookmarkInfo");
|
||||
g_bookmarkInfoConstructor =
|
||||
jni::GetConstructorID(env, g_bookmarkInfoClass, "(JJ)V" );
|
||||
g_bookmarkCategoryClass =
|
||||
jni::GetGlobalClassRef(env, "app/organicmaps/bookmarks/data/BookmarkCategory");
|
||||
jni::GetGlobalClassRef(env, "app/organicmaps/sdk/bookmarks/data/BookmarkCategory");
|
||||
|
||||
//public BookmarkCategory(long id,
|
||||
// String name,
|
||||
@@ -183,7 +183,7 @@ void OnAsyncLoadingFileError(JNIEnv * env, std::string const & fileName, bool is
|
||||
|
||||
void OnPreparedFileForSharing(JNIEnv * env, BookmarkManager::SharingResult const & result)
|
||||
{
|
||||
static jclass const classBookmarkSharingResult = jni::GetGlobalClassRef(env, "app/organicmaps/bookmarks/data/BookmarkSharingResult");
|
||||
static jclass const classBookmarkSharingResult = jni::GetGlobalClassRef(env, "app/organicmaps/sdk/bookmarks/data/BookmarkSharingResult");
|
||||
// BookmarkSharingResult(long[] categoriesIds, @Code int code, @NonNull String sharingPath, @NonNull String mimeType, @NonNull String errorString)
|
||||
static jmethodID const ctorBookmarkSharingResult = jni::GetConstructorID(env, classBookmarkSharingResult, "([JILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V");
|
||||
|
||||
@@ -297,21 +297,21 @@ jobjectArray MakeCategories(JNIEnv * env, kml::GroupIdCollection const & ids)
|
||||
extern "C"
|
||||
{
|
||||
JNIEXPORT void JNICALL
|
||||
Java_app_organicmaps_bookmarks_data_BookmarkManager_nativeShowBookmarkOnMap(
|
||||
Java_app_organicmaps_sdk_bookmarks_data_BookmarkManager_nativeShowBookmarkOnMap(
|
||||
JNIEnv *, jobject, jlong bmkId)
|
||||
{
|
||||
frm()->ShowBookmark(static_cast<kml::MarkId>(bmkId));
|
||||
}
|
||||
|
||||
JNIEXPORT void JNICALL
|
||||
Java_app_organicmaps_bookmarks_data_BookmarkManager_nativeShowBookmarkCategoryOnMap(
|
||||
Java_app_organicmaps_sdk_bookmarks_data_BookmarkManager_nativeShowBookmarkCategoryOnMap(
|
||||
JNIEnv *, jobject, jlong catId)
|
||||
{
|
||||
frm()->ShowBookmarkCategory(static_cast<kml::MarkGroupId>(catId), true /* animated */);
|
||||
}
|
||||
|
||||
JNIEXPORT void JNICALL
|
||||
Java_app_organicmaps_bookmarks_data_BookmarkManager_nativeLoadBookmarks(JNIEnv * env, jclass)
|
||||
Java_app_organicmaps_sdk_bookmarks_data_BookmarkManager_nativeLoadBookmarks(JNIEnv * env, jclass)
|
||||
{
|
||||
PrepareClassRefs(env);
|
||||
BookmarkManager::AsyncLoadingCallbacks callbacks;
|
||||
@@ -327,7 +327,7 @@ Java_app_organicmaps_bookmarks_data_BookmarkManager_nativeLoadBookmarks(JNIEnv *
|
||||
}
|
||||
|
||||
JNIEXPORT jlong JNICALL
|
||||
Java_app_organicmaps_bookmarks_data_BookmarkManager_nativeCreateCategory(
|
||||
Java_app_organicmaps_sdk_bookmarks_data_BookmarkManager_nativeCreateCategory(
|
||||
JNIEnv * env, jobject, jstring name)
|
||||
{
|
||||
auto const categoryId = frm()->GetBookmarkManager().CreateBookmarkCategory(ToNativeString(env, name));
|
||||
@@ -336,7 +336,7 @@ Java_app_organicmaps_bookmarks_data_BookmarkManager_nativeCreateCategory(
|
||||
}
|
||||
|
||||
JNIEXPORT jboolean JNICALL
|
||||
Java_app_organicmaps_bookmarks_data_BookmarkManager_nativeDeleteCategory(
|
||||
Java_app_organicmaps_sdk_bookmarks_data_BookmarkManager_nativeDeleteCategory(
|
||||
JNIEnv *, jobject, jlong catId)
|
||||
{
|
||||
auto const categoryId = static_cast<kml::MarkGroupId>(catId);
|
||||
@@ -345,20 +345,20 @@ Java_app_organicmaps_bookmarks_data_BookmarkManager_nativeDeleteCategory(
|
||||
}
|
||||
|
||||
JNIEXPORT void JNICALL
|
||||
Java_app_organicmaps_bookmarks_data_BookmarkManager_nativeDeleteBookmark(JNIEnv *, jobject, jlong bmkId)
|
||||
Java_app_organicmaps_sdk_bookmarks_data_BookmarkManager_nativeDeleteBookmark(JNIEnv *, jobject, jlong bmkId)
|
||||
{
|
||||
frm()->GetBookmarkManager().GetEditSession().DeleteBookmark(static_cast<kml::MarkId>(bmkId));
|
||||
}
|
||||
|
||||
JNIEXPORT void JNICALL
|
||||
Java_app_organicmaps_bookmarks_data_BookmarkManager_nativeDeleteTrack(
|
||||
Java_app_organicmaps_sdk_bookmarks_data_BookmarkManager_nativeDeleteTrack(
|
||||
JNIEnv *, jobject, jlong trkId)
|
||||
{
|
||||
frm()->GetBookmarkManager().GetEditSession().DeleteTrack(static_cast<kml::TrackId>(trkId));
|
||||
}
|
||||
|
||||
JNIEXPORT jobject JNICALL
|
||||
Java_app_organicmaps_bookmarks_data_BookmarkManager_nativeAddBookmarkToLastEditedCategory(
|
||||
Java_app_organicmaps_sdk_bookmarks_data_BookmarkManager_nativeAddBookmarkToLastEditedCategory(
|
||||
JNIEnv * env, jobject, double lat, double lon)
|
||||
{
|
||||
if (!frm()->HasPlacePageInfo())
|
||||
@@ -389,48 +389,48 @@ Java_app_organicmaps_bookmarks_data_BookmarkManager_nativeAddBookmarkToLastEdite
|
||||
}
|
||||
|
||||
JNIEXPORT jlong JNICALL
|
||||
Java_app_organicmaps_bookmarks_data_BookmarkManager_nativeGetLastEditedCategory(
|
||||
Java_app_organicmaps_sdk_bookmarks_data_BookmarkManager_nativeGetLastEditedCategory(
|
||||
JNIEnv *, jobject)
|
||||
{
|
||||
return static_cast<jlong>(frm()->LastEditedBMCategory());
|
||||
}
|
||||
|
||||
JNIEXPORT jint JNICALL
|
||||
Java_app_organicmaps_bookmarks_data_BookmarkManager_nativeGetLastEditedColor(
|
||||
Java_app_organicmaps_sdk_bookmarks_data_BookmarkManager_nativeGetLastEditedColor(
|
||||
JNIEnv *, jobject)
|
||||
{
|
||||
return static_cast<jint>(frm()->LastEditedBMColor());
|
||||
}
|
||||
|
||||
JNIEXPORT void JNICALL
|
||||
Java_app_organicmaps_bookmarks_data_BookmarkManager_nativeLoadBookmarksFile(JNIEnv * env, jclass,
|
||||
Java_app_organicmaps_sdk_bookmarks_data_BookmarkManager_nativeLoadBookmarksFile(JNIEnv * env, jclass,
|
||||
jstring path, jboolean isTemporaryFile)
|
||||
{
|
||||
frm()->AddBookmarksFile(ToNativeString(env, path), isTemporaryFile);
|
||||
}
|
||||
|
||||
JNIEXPORT jboolean JNICALL
|
||||
Java_app_organicmaps_bookmarks_data_BookmarkManager_nativeIsAsyncBookmarksLoadingInProgress(JNIEnv *, jclass)
|
||||
Java_app_organicmaps_sdk_bookmarks_data_BookmarkManager_nativeIsAsyncBookmarksLoadingInProgress(JNIEnv *, jclass)
|
||||
{
|
||||
return static_cast<jboolean>(frm()->GetBookmarkManager().IsAsyncLoadingInProgress());
|
||||
}
|
||||
|
||||
JNIEXPORT jboolean JNICALL
|
||||
Java_app_organicmaps_bookmarks_data_BookmarkManager_nativeIsVisible(
|
||||
Java_app_organicmaps_sdk_bookmarks_data_BookmarkManager_nativeIsVisible(
|
||||
JNIEnv *, jobject, jlong catId)
|
||||
{
|
||||
return static_cast<jboolean>(frm()->GetBookmarkManager().IsVisible(static_cast<kml::MarkGroupId>(catId)));
|
||||
}
|
||||
|
||||
JNIEXPORT void JNICALL
|
||||
Java_app_organicmaps_bookmarks_data_BookmarkManager_nativeSetVisibility(
|
||||
Java_app_organicmaps_sdk_bookmarks_data_BookmarkManager_nativeSetVisibility(
|
||||
JNIEnv *, jobject, jlong catId, jboolean isVisible)
|
||||
{
|
||||
frm()->GetBookmarkManager().GetEditSession().SetIsVisible(static_cast<kml::MarkGroupId>(catId), isVisible);
|
||||
}
|
||||
|
||||
JNIEXPORT void JNICALL
|
||||
Java_app_organicmaps_bookmarks_data_BookmarkManager_nativeSetCategoryName(
|
||||
Java_app_organicmaps_sdk_bookmarks_data_BookmarkManager_nativeSetCategoryName(
|
||||
JNIEnv * env, jobject, jlong catId, jstring name)
|
||||
{
|
||||
frm()->GetBookmarkManager().GetEditSession().SetCategoryName(static_cast<kml::MarkGroupId>(catId),
|
||||
@@ -438,7 +438,7 @@ Java_app_organicmaps_bookmarks_data_BookmarkManager_nativeSetCategoryName(
|
||||
}
|
||||
|
||||
JNIEXPORT void JNICALL
|
||||
Java_app_organicmaps_bookmarks_data_BookmarkManager_nativeSetCategoryDescription(JNIEnv * env,
|
||||
Java_app_organicmaps_sdk_bookmarks_data_BookmarkManager_nativeSetCategoryDescription(JNIEnv * env,
|
||||
jobject,
|
||||
jlong catId,
|
||||
jstring desc)
|
||||
@@ -448,7 +448,7 @@ Java_app_organicmaps_bookmarks_data_BookmarkManager_nativeSetCategoryDescription
|
||||
}
|
||||
|
||||
JNIEXPORT void JNICALL
|
||||
Java_app_organicmaps_bookmarks_data_BookmarkManager_nativeSetCategoryTags(
|
||||
Java_app_organicmaps_sdk_bookmarks_data_BookmarkManager_nativeSetCategoryTags(
|
||||
JNIEnv * env, jobject, jlong catId, jobjectArray tagsIds)
|
||||
{
|
||||
auto const size = env->GetArrayLength(tagsIds);
|
||||
@@ -465,7 +465,7 @@ Java_app_organicmaps_bookmarks_data_BookmarkManager_nativeSetCategoryTags(
|
||||
}
|
||||
|
||||
JNIEXPORT void JNICALL
|
||||
Java_app_organicmaps_bookmarks_data_BookmarkManager_nativeSetCategoryAccessRules(
|
||||
Java_app_organicmaps_sdk_bookmarks_data_BookmarkManager_nativeSetCategoryAccessRules(
|
||||
JNIEnv *, jobject, jlong catId, jint accessRules)
|
||||
{
|
||||
frm()->GetBookmarkManager().GetEditSession().SetCategoryAccessRules(
|
||||
@@ -473,7 +473,7 @@ Java_app_organicmaps_bookmarks_data_BookmarkManager_nativeSetCategoryAccessRules
|
||||
}
|
||||
|
||||
JNIEXPORT void JNICALL
|
||||
Java_app_organicmaps_bookmarks_data_BookmarkManager_nativeSetCategoryCustomProperty(
|
||||
Java_app_organicmaps_sdk_bookmarks_data_BookmarkManager_nativeSetCategoryCustomProperty(
|
||||
JNIEnv * env, jobject, jlong catId, jstring key, jstring value)
|
||||
{
|
||||
frm()->GetBookmarkManager().GetEditSession().SetCategoryCustomProperty(
|
||||
@@ -481,7 +481,7 @@ Java_app_organicmaps_bookmarks_data_BookmarkManager_nativeSetCategoryCustomPrope
|
||||
}
|
||||
|
||||
JNIEXPORT jobject JNICALL
|
||||
Java_app_organicmaps_bookmarks_data_BookmarkManager_nativeUpdateBookmarkPlacePage(
|
||||
Java_app_organicmaps_sdk_bookmarks_data_BookmarkManager_nativeUpdateBookmarkPlacePage(
|
||||
JNIEnv * env, jobject, jlong bmkId)
|
||||
{
|
||||
if (!frm()->HasPlacePageInfo())
|
||||
@@ -496,7 +496,7 @@ Java_app_organicmaps_bookmarks_data_BookmarkManager_nativeUpdateBookmarkPlacePag
|
||||
}
|
||||
|
||||
JNIEXPORT jobject JNICALL
|
||||
Java_app_organicmaps_bookmarks_data_BookmarkManager_nativeGetBookmarkInfo(
|
||||
Java_app_organicmaps_sdk_bookmarks_data_BookmarkManager_nativeGetBookmarkInfo(
|
||||
JNIEnv * env, jobject, jlong bmkId)
|
||||
{
|
||||
auto const bookmark = frm()->GetBookmarkManager().GetBookmark(static_cast<kml::MarkId>(bmkId));
|
||||
@@ -508,7 +508,7 @@ Java_app_organicmaps_bookmarks_data_BookmarkManager_nativeGetBookmarkInfo(
|
||||
}
|
||||
|
||||
JNIEXPORT jlong JNICALL
|
||||
Java_app_organicmaps_bookmarks_data_BookmarkManager_nativeGetBookmarkIdByPosition(
|
||||
Java_app_organicmaps_sdk_bookmarks_data_BookmarkManager_nativeGetBookmarkIdByPosition(
|
||||
JNIEnv *, jobject, jlong catId, jint positionInCategory)
|
||||
{
|
||||
auto const & ids = frm()->GetBookmarkManager().GetUserMarkIds(static_cast<kml::MarkGroupId>(catId));
|
||||
@@ -522,12 +522,12 @@ Java_app_organicmaps_bookmarks_data_BookmarkManager_nativeGetBookmarkIdByPositio
|
||||
static uint32_t shift(uint32_t v, uint8_t bitCount) { return v << bitCount; }
|
||||
|
||||
JNIEXPORT jobject JNICALL
|
||||
Java_app_organicmaps_bookmarks_data_BookmarkManager_nativeGetTrack(
|
||||
Java_app_organicmaps_sdk_bookmarks_data_BookmarkManager_nativeGetTrack(
|
||||
JNIEnv * env, jobject, jlong trackId, jclass trackClazz)
|
||||
{
|
||||
// Track(long trackId, long categoryId, String name, String lengthString, int color)
|
||||
static jmethodID const cId = jni::GetConstructorID(env, trackClazz,
|
||||
"(JJLjava/lang/String;Lapp/organicmaps/util/Distance;I)V");
|
||||
"(JJLjava/lang/String;Lapp/organicmaps/sdk/util/Distance;I)V");
|
||||
auto const * nTrack = frm()->GetBookmarkManager().GetTrack(static_cast<kml::TrackId>(trackId));
|
||||
|
||||
ASSERT(nTrack, ("Track must not be null with id:)", trackId));
|
||||
@@ -545,7 +545,7 @@ Java_app_organicmaps_bookmarks_data_BookmarkManager_nativeGetTrack(
|
||||
}
|
||||
|
||||
JNIEXPORT jlong JNICALL
|
||||
Java_app_organicmaps_bookmarks_data_BookmarkManager_nativeGetTrackIdByPosition(
|
||||
Java_app_organicmaps_sdk_bookmarks_data_BookmarkManager_nativeGetTrackIdByPosition(
|
||||
JNIEnv *, jobject, jlong catId, jint positionInCategory)
|
||||
{
|
||||
auto const & ids = frm()->GetBookmarkManager().GetTrackIds(static_cast<kml::MarkGroupId>(catId));
|
||||
@@ -557,42 +557,42 @@ Java_app_organicmaps_bookmarks_data_BookmarkManager_nativeGetTrackIdByPosition(
|
||||
}
|
||||
|
||||
JNIEXPORT jboolean JNICALL
|
||||
Java_app_organicmaps_bookmarks_data_BookmarkManager_nativeIsUsedCategoryName(
|
||||
Java_app_organicmaps_sdk_bookmarks_data_BookmarkManager_nativeIsUsedCategoryName(
|
||||
JNIEnv * env, jclass, jstring name)
|
||||
{
|
||||
return static_cast<jboolean>(frm()->GetBookmarkManager().IsUsedCategoryName(ToNativeString(env, name)));
|
||||
}
|
||||
|
||||
JNIEXPORT void JNICALL
|
||||
Java_app_organicmaps_bookmarks_data_BookmarkManager_nativePrepareForSearch(
|
||||
Java_app_organicmaps_sdk_bookmarks_data_BookmarkManager_nativePrepareForSearch(
|
||||
JNIEnv *, jclass, jlong catId)
|
||||
{
|
||||
frm()->GetBookmarkManager().PrepareForSearch(static_cast<kml::MarkGroupId>(catId));
|
||||
}
|
||||
|
||||
JNIEXPORT jboolean JNICALL
|
||||
Java_app_organicmaps_bookmarks_data_BookmarkManager_nativeAreAllCategoriesInvisible(
|
||||
Java_app_organicmaps_sdk_bookmarks_data_BookmarkManager_nativeAreAllCategoriesInvisible(
|
||||
JNIEnv *, jclass)
|
||||
{
|
||||
return static_cast<jboolean>(frm()->GetBookmarkManager().AreAllCategoriesInvisible());
|
||||
}
|
||||
|
||||
JNIEXPORT jboolean JNICALL
|
||||
Java_app_organicmaps_bookmarks_data_BookmarkManager_nativeAreAllCategoriesVisible(
|
||||
Java_app_organicmaps_sdk_bookmarks_data_BookmarkManager_nativeAreAllCategoriesVisible(
|
||||
JNIEnv *, jclass)
|
||||
{
|
||||
return static_cast<jboolean>(frm()->GetBookmarkManager().AreAllCategoriesVisible());
|
||||
}
|
||||
|
||||
JNIEXPORT void JNICALL
|
||||
Java_app_organicmaps_bookmarks_data_BookmarkManager_nativeSetAllCategoriesVisibility(
|
||||
Java_app_organicmaps_sdk_bookmarks_data_BookmarkManager_nativeSetAllCategoriesVisibility(
|
||||
JNIEnv *, jclass, jboolean visible)
|
||||
{
|
||||
frm()->GetBookmarkManager().SetAllCategoriesVisibility(static_cast<bool>(visible));
|
||||
}
|
||||
|
||||
JNIEXPORT void JNICALL
|
||||
Java_app_organicmaps_bookmarks_data_BookmarkManager_nativePrepareTrackFileForSharing(JNIEnv * env, jclass, jlong trackId, jint kmlFileType)
|
||||
Java_app_organicmaps_sdk_bookmarks_data_BookmarkManager_nativePrepareTrackFileForSharing(JNIEnv * env, jclass, jlong trackId, jint kmlFileType)
|
||||
{
|
||||
frm()->GetBookmarkManager().PrepareTrackFileForSharing(static_cast<kml::TrackId>(trackId), [env](BookmarkManager::SharingResult const & result)
|
||||
{
|
||||
@@ -601,7 +601,7 @@ Java_app_organicmaps_bookmarks_data_BookmarkManager_nativePrepareTrackFileForSha
|
||||
}
|
||||
|
||||
JNIEXPORT void JNICALL
|
||||
Java_app_organicmaps_bookmarks_data_BookmarkManager_nativePrepareFileForSharing(JNIEnv * env, jclass, jlongArray catIds, jint kmlFileType)
|
||||
Java_app_organicmaps_sdk_bookmarks_data_BookmarkManager_nativePrepareFileForSharing(JNIEnv * env, jclass, jlongArray catIds, jint kmlFileType)
|
||||
{
|
||||
auto const size = env->GetArrayLength(catIds);
|
||||
kml::GroupIdCollection catIdsVector(size);
|
||||
@@ -614,7 +614,7 @@ Java_app_organicmaps_bookmarks_data_BookmarkManager_nativePrepareFileForSharing(
|
||||
}
|
||||
|
||||
JNIEXPORT jboolean JNICALL
|
||||
Java_app_organicmaps_bookmarks_data_BookmarkManager_nativeIsCategoryEmpty(
|
||||
Java_app_organicmaps_sdk_bookmarks_data_BookmarkManager_nativeIsCategoryEmpty(
|
||||
JNIEnv *, jclass, jlong catId)
|
||||
{
|
||||
return static_cast<jboolean>(frm()->GetBookmarkManager().IsCategoryEmpty(
|
||||
@@ -622,27 +622,27 @@ Java_app_organicmaps_bookmarks_data_BookmarkManager_nativeIsCategoryEmpty(
|
||||
}
|
||||
|
||||
JNIEXPORT void JNICALL
|
||||
Java_app_organicmaps_bookmarks_data_BookmarkManager_nativeSetNotificationsEnabled(
|
||||
Java_app_organicmaps_sdk_bookmarks_data_BookmarkManager_nativeSetNotificationsEnabled(
|
||||
JNIEnv *, jclass, jboolean enabled)
|
||||
{
|
||||
frm()->GetBookmarkManager().SetNotificationsEnabled(static_cast<bool>(enabled));
|
||||
}
|
||||
|
||||
JNIEXPORT jboolean JNICALL
|
||||
Java_app_organicmaps_bookmarks_data_BookmarkManager_nativeAreNotificationsEnabled(
|
||||
Java_app_organicmaps_sdk_bookmarks_data_BookmarkManager_nativeAreNotificationsEnabled(
|
||||
JNIEnv *, jclass)
|
||||
{
|
||||
return static_cast<jboolean>(frm()->GetBookmarkManager().AreNotificationsEnabled());
|
||||
}
|
||||
|
||||
JNIEXPORT jobject JNICALL
|
||||
Java_app_organicmaps_bookmarks_data_BookmarkManager_nativeGetBookmarkCategory(JNIEnv *env, jobject, jlong id)
|
||||
Java_app_organicmaps_sdk_bookmarks_data_BookmarkManager_nativeGetBookmarkCategory(JNIEnv *env, jobject, jlong id)
|
||||
{
|
||||
return MakeCategory(env, static_cast<kml::MarkGroupId>(id));
|
||||
}
|
||||
|
||||
JNIEXPORT jobjectArray JNICALL
|
||||
Java_app_organicmaps_bookmarks_data_BookmarkManager_nativeGetBookmarkCategories(JNIEnv *env, jobject)
|
||||
Java_app_organicmaps_sdk_bookmarks_data_BookmarkManager_nativeGetBookmarkCategories(JNIEnv *env, jobject)
|
||||
{
|
||||
auto const & bm = frm()->GetBookmarkManager();
|
||||
auto const & ids = bm.GetSortedBmGroupIdList();
|
||||
@@ -651,7 +651,7 @@ Java_app_organicmaps_bookmarks_data_BookmarkManager_nativeGetBookmarkCategories(
|
||||
}
|
||||
|
||||
JNIEXPORT jint JNICALL
|
||||
Java_app_organicmaps_bookmarks_data_BookmarkManager_nativeGetBookmarkCategoriesCount(JNIEnv *env, jobject)
|
||||
Java_app_organicmaps_sdk_bookmarks_data_BookmarkManager_nativeGetBookmarkCategoriesCount(JNIEnv *env, jobject)
|
||||
{
|
||||
auto const & bm = frm()->GetBookmarkManager();
|
||||
auto const count = bm.GetBmGroupsCount();
|
||||
@@ -660,7 +660,7 @@ Java_app_organicmaps_bookmarks_data_BookmarkManager_nativeGetBookmarkCategoriesC
|
||||
}
|
||||
|
||||
JNIEXPORT jobjectArray JNICALL
|
||||
Java_app_organicmaps_bookmarks_data_BookmarkManager_nativeGetChildrenCategories(JNIEnv *env, jobject, jlong parentId)
|
||||
Java_app_organicmaps_sdk_bookmarks_data_BookmarkManager_nativeGetChildrenCategories(JNIEnv *env, jobject, jlong parentId)
|
||||
{
|
||||
auto const & bm = frm()->GetBookmarkManager();
|
||||
auto const ids = bm.GetChildrenCategories(static_cast<kml::MarkGroupId>(parentId));
|
||||
@@ -669,7 +669,7 @@ Java_app_organicmaps_bookmarks_data_BookmarkManager_nativeGetChildrenCategories(
|
||||
}
|
||||
|
||||
JNIEXPORT jboolean JNICALL
|
||||
Java_app_organicmaps_bookmarks_data_BookmarkManager_nativeHasLastSortingType(
|
||||
Java_app_organicmaps_sdk_bookmarks_data_BookmarkManager_nativeHasLastSortingType(
|
||||
JNIEnv *, jobject, jlong catId)
|
||||
{
|
||||
auto const & bm = frm()->GetBookmarkManager();
|
||||
@@ -678,7 +678,7 @@ Java_app_organicmaps_bookmarks_data_BookmarkManager_nativeHasLastSortingType(
|
||||
}
|
||||
|
||||
JNIEXPORT jint JNICALL
|
||||
Java_app_organicmaps_bookmarks_data_BookmarkManager_nativeGetLastSortingType(
|
||||
Java_app_organicmaps_sdk_bookmarks_data_BookmarkManager_nativeGetLastSortingType(
|
||||
JNIEnv *, jobject, jlong catId)
|
||||
{
|
||||
auto const & bm = frm()->GetBookmarkManager();
|
||||
@@ -690,7 +690,7 @@ Java_app_organicmaps_bookmarks_data_BookmarkManager_nativeGetLastSortingType(
|
||||
}
|
||||
|
||||
JNIEXPORT void JNICALL
|
||||
Java_app_organicmaps_bookmarks_data_BookmarkManager_nativeSetLastSortingType(
|
||||
Java_app_organicmaps_sdk_bookmarks_data_BookmarkManager_nativeSetLastSortingType(
|
||||
JNIEnv *, jobject, jlong catId, jint type)
|
||||
{
|
||||
auto & bm = frm()->GetBookmarkManager();
|
||||
@@ -699,7 +699,7 @@ Java_app_organicmaps_bookmarks_data_BookmarkManager_nativeSetLastSortingType(
|
||||
}
|
||||
|
||||
JNIEXPORT void JNICALL
|
||||
Java_app_organicmaps_bookmarks_data_BookmarkManager_nativeResetLastSortingType(
|
||||
Java_app_organicmaps_sdk_bookmarks_data_BookmarkManager_nativeResetLastSortingType(
|
||||
JNIEnv *, jobject, jlong catId)
|
||||
{
|
||||
auto & bm = frm()->GetBookmarkManager();
|
||||
@@ -707,7 +707,7 @@ Java_app_organicmaps_bookmarks_data_BookmarkManager_nativeResetLastSortingType(
|
||||
}
|
||||
|
||||
JNIEXPORT jintArray JNICALL
|
||||
Java_app_organicmaps_bookmarks_data_BookmarkManager_nativeGetAvailableSortingTypes(JNIEnv *env,
|
||||
Java_app_organicmaps_sdk_bookmarks_data_BookmarkManager_nativeGetAvailableSortingTypes(JNIEnv *env,
|
||||
jobject, jlong catId, jboolean hasMyPosition)
|
||||
{
|
||||
auto const & bm = frm()->GetBookmarkManager();
|
||||
@@ -724,7 +724,7 @@ Java_app_organicmaps_bookmarks_data_BookmarkManager_nativeGetAvailableSortingTyp
|
||||
}
|
||||
|
||||
JNIEXPORT void JNICALL
|
||||
Java_app_organicmaps_bookmarks_data_BookmarkManager_nativeGetSortedCategory(JNIEnv *env,
|
||||
Java_app_organicmaps_sdk_bookmarks_data_BookmarkManager_nativeGetSortedCategory(JNIEnv *env,
|
||||
jobject, jlong catId, jint sortingType, jboolean hasMyPosition, jdouble lat, jdouble lon,
|
||||
jlong timestamp)
|
||||
{
|
||||
@@ -741,14 +741,14 @@ Java_app_organicmaps_bookmarks_data_BookmarkManager_nativeGetSortedCategory(JNIE
|
||||
}
|
||||
|
||||
JNIEXPORT jstring JNICALL
|
||||
Java_app_organicmaps_bookmarks_data_BookmarkManager_nativeGetBookmarkName(
|
||||
Java_app_organicmaps_sdk_bookmarks_data_BookmarkManager_nativeGetBookmarkName(
|
||||
JNIEnv * env, jclass, jlong bmk)
|
||||
{
|
||||
return jni::ToJavaString(env, getBookmark(bmk)->GetPreferredName());
|
||||
}
|
||||
|
||||
JNIEXPORT jstring JNICALL
|
||||
Java_app_organicmaps_bookmarks_data_BookmarkManager_nativeGetBookmarkFeatureType(
|
||||
Java_app_organicmaps_sdk_bookmarks_data_BookmarkManager_nativeGetBookmarkFeatureType(
|
||||
JNIEnv * env, jclass, jlong bmk)
|
||||
{
|
||||
return jni::ToJavaString(env,
|
||||
@@ -756,14 +756,14 @@ Java_app_organicmaps_bookmarks_data_BookmarkManager_nativeGetBookmarkFeatureType
|
||||
}
|
||||
|
||||
JNIEXPORT jstring JNICALL
|
||||
Java_app_organicmaps_bookmarks_data_BookmarkManager_nativeGetBookmarkDescription(
|
||||
Java_app_organicmaps_sdk_bookmarks_data_BookmarkManager_nativeGetBookmarkDescription(
|
||||
JNIEnv * env, jclass, jlong bmk)
|
||||
{
|
||||
return jni::ToJavaString(env, getBookmark(bmk)->GetDescription());
|
||||
}
|
||||
|
||||
JNIEXPORT jint JNICALL
|
||||
Java_app_organicmaps_bookmarks_data_BookmarkManager_nativeGetBookmarkColor(
|
||||
Java_app_organicmaps_sdk_bookmarks_data_BookmarkManager_nativeGetBookmarkColor(
|
||||
JNIEnv *, jclass, jlong bmk)
|
||||
{
|
||||
auto const * mark = getBookmark(bmk);
|
||||
@@ -772,7 +772,7 @@ Java_app_organicmaps_bookmarks_data_BookmarkManager_nativeGetBookmarkColor(
|
||||
}
|
||||
|
||||
JNIEXPORT jint JNICALL
|
||||
Java_app_organicmaps_bookmarks_data_BookmarkManager_nativeGetBookmarkIcon(
|
||||
Java_app_organicmaps_sdk_bookmarks_data_BookmarkManager_nativeGetBookmarkIcon(
|
||||
JNIEnv *, jclass, jlong bmk)
|
||||
{
|
||||
auto const * mark = getBookmark(bmk);
|
||||
@@ -781,7 +781,7 @@ Java_app_organicmaps_bookmarks_data_BookmarkManager_nativeGetBookmarkIcon(
|
||||
}
|
||||
|
||||
JNIEXPORT void JNICALL
|
||||
Java_app_organicmaps_bookmarks_data_BookmarkManager_nativeSetBookmarkParams(
|
||||
Java_app_organicmaps_sdk_bookmarks_data_BookmarkManager_nativeSetBookmarkParams(
|
||||
JNIEnv * env, jclass, jlong bmk,
|
||||
jstring name, jint color, jstring descr)
|
||||
{
|
||||
@@ -802,7 +802,7 @@ Java_app_organicmaps_bookmarks_data_BookmarkManager_nativeSetBookmarkParams(
|
||||
constexpr static uint8_t ExtractByte(uint32_t number, uint8_t byteIdx) { return (number >> (8 * byteIdx)) & 0xFF; }
|
||||
|
||||
JNIEXPORT void JNICALL
|
||||
Java_app_organicmaps_bookmarks_data_BookmarkManager_nativeSetTrackParams(
|
||||
Java_app_organicmaps_sdk_bookmarks_data_BookmarkManager_nativeSetTrackParams(
|
||||
JNIEnv * env, jclass, jlong trackId,
|
||||
jstring name, jint color, jstring descr)
|
||||
{
|
||||
@@ -821,14 +821,14 @@ Java_app_organicmaps_bookmarks_data_BookmarkManager_nativeSetTrackParams(
|
||||
}
|
||||
|
||||
JNIEXPORT jstring JNICALL
|
||||
Java_app_organicmaps_bookmarks_data_BookmarkManager_nativeGetTrackDescription(
|
||||
Java_app_organicmaps_sdk_bookmarks_data_BookmarkManager_nativeGetTrackDescription(
|
||||
JNIEnv * env, jclass, jlong trackId)
|
||||
{
|
||||
return jni::ToJavaString(env, frm()->GetBookmarkManager().GetTrack(static_cast<kml::TrackId>(trackId))->GetDescription());
|
||||
}
|
||||
|
||||
JNIEXPORT void JNICALL
|
||||
Java_app_organicmaps_bookmarks_data_BookmarkManager_nativeChangeBookmarkCategory(
|
||||
Java_app_organicmaps_sdk_bookmarks_data_BookmarkManager_nativeChangeBookmarkCategory(
|
||||
JNIEnv *, jclass, jlong oldCat, jlong newCat, jlong bmk)
|
||||
{
|
||||
g_framework->MoveBookmark(static_cast<kml::MarkId>(bmk), static_cast<kml::MarkGroupId>(oldCat),
|
||||
@@ -836,7 +836,7 @@ Java_app_organicmaps_bookmarks_data_BookmarkManager_nativeChangeBookmarkCategory
|
||||
}
|
||||
|
||||
JNIEXPORT void JNICALL
|
||||
Java_app_organicmaps_bookmarks_data_BookmarkManager_nativeChangeTrackCategory(
|
||||
Java_app_organicmaps_sdk_bookmarks_data_BookmarkManager_nativeChangeTrackCategory(
|
||||
JNIEnv *, jclass, jlong oldCat, jlong newCat, jlong trackId)
|
||||
{
|
||||
g_framework->MoveTrack(static_cast<kml::TrackId>(trackId), static_cast<kml::MarkGroupId>(oldCat),
|
||||
@@ -844,7 +844,7 @@ Java_app_organicmaps_bookmarks_data_BookmarkManager_nativeChangeTrackCategory(
|
||||
}
|
||||
|
||||
JNIEXPORT void JNICALL
|
||||
Java_app_organicmaps_bookmarks_data_BookmarkManager_nativeChangeTrackColor(
|
||||
Java_app_organicmaps_sdk_bookmarks_data_BookmarkManager_nativeChangeTrackColor(
|
||||
JNIEnv *, jclass, jlong trackId, jint color)
|
||||
{
|
||||
uint8_t alpha = ExtractByte(color, 3);
|
||||
@@ -852,28 +852,28 @@ Java_app_organicmaps_bookmarks_data_BookmarkManager_nativeChangeTrackColor(
|
||||
}
|
||||
|
||||
JNIEXPORT jobject JNICALL
|
||||
Java_app_organicmaps_bookmarks_data_BookmarkManager_nativeGetBookmarkXY(
|
||||
Java_app_organicmaps_sdk_bookmarks_data_BookmarkManager_nativeGetBookmarkXY(
|
||||
JNIEnv * env, jclass, jlong bmk)
|
||||
{
|
||||
return jni::GetNewParcelablePointD(env, getBookmark(bmk)->GetPivot());
|
||||
}
|
||||
|
||||
JNIEXPORT jdouble JNICALL
|
||||
Java_app_organicmaps_bookmarks_data_BookmarkManager_nativeGetBookmarkScale(
|
||||
Java_app_organicmaps_sdk_bookmarks_data_BookmarkManager_nativeGetBookmarkScale(
|
||||
JNIEnv *, jclass, jlong bmk)
|
||||
{
|
||||
return getBookmark(bmk)->GetScale();
|
||||
}
|
||||
|
||||
JNIEXPORT jstring JNICALL
|
||||
Java_app_organicmaps_bookmarks_data_BookmarkManager_nativeEncode2Ge0Url(
|
||||
Java_app_organicmaps_sdk_bookmarks_data_BookmarkManager_nativeEncode2Ge0Url(
|
||||
JNIEnv * env, jclass, jlong bmk, jboolean addName)
|
||||
{
|
||||
return jni::ToJavaString(env, frm()->CodeGe0url(getBookmark(bmk), addName));
|
||||
}
|
||||
|
||||
JNIEXPORT jstring JNICALL
|
||||
Java_app_organicmaps_bookmarks_data_BookmarkManager_nativeGetBookmarkAddress(
|
||||
Java_app_organicmaps_sdk_bookmarks_data_BookmarkManager_nativeGetBookmarkAddress(
|
||||
JNIEnv * env, jclass, jlong bmkId)
|
||||
{
|
||||
auto const address = frm()->GetAddressAtPoint(getBookmark(bmkId)->GetPivot()).FormatAddress();
|
||||
@@ -881,7 +881,7 @@ Java_app_organicmaps_bookmarks_data_BookmarkManager_nativeGetBookmarkAddress(
|
||||
}
|
||||
|
||||
JNIEXPORT jdouble JNICALL
|
||||
Java_app_organicmaps_bookmarks_data_BookmarkManager_nativeGetElevationCurPositionDistance(
|
||||
Java_app_organicmaps_sdk_bookmarks_data_BookmarkManager_nativeGetElevationCurPositionDistance(
|
||||
JNIEnv *, jclass, jlong trackId)
|
||||
{
|
||||
auto const & bm = frm()->GetBookmarkManager();
|
||||
@@ -889,7 +889,7 @@ Java_app_organicmaps_bookmarks_data_BookmarkManager_nativeGetElevationCurPositio
|
||||
}
|
||||
|
||||
JNIEXPORT void JNICALL
|
||||
Java_app_organicmaps_bookmarks_data_BookmarkManager_nativeSetElevationCurrentPositionChangedListener(
|
||||
Java_app_organicmaps_sdk_bookmarks_data_BookmarkManager_nativeSetElevationCurrentPositionChangedListener(
|
||||
JNIEnv * env, jclass)
|
||||
{
|
||||
frm()->GetBookmarkManager().SetElevationMyPositionChangedCallback(
|
||||
@@ -897,14 +897,14 @@ Java_app_organicmaps_bookmarks_data_BookmarkManager_nativeSetElevationCurrentPos
|
||||
}
|
||||
|
||||
JNIEXPORT void JNICALL
|
||||
Java_app_organicmaps_bookmarks_data_BookmarkManager_nativeRemoveElevationCurrentPositionChangedListener(
|
||||
Java_app_organicmaps_sdk_bookmarks_data_BookmarkManager_nativeRemoveElevationCurrentPositionChangedListener(
|
||||
JNIEnv *, jclass)
|
||||
{
|
||||
frm()->GetBookmarkManager().SetElevationMyPositionChangedCallback(nullptr);
|
||||
}
|
||||
|
||||
JNIEXPORT void JNICALL
|
||||
Java_app_organicmaps_bookmarks_data_BookmarkManager_nativeSetElevationActivePoint(
|
||||
Java_app_organicmaps_sdk_bookmarks_data_BookmarkManager_nativeSetElevationActivePoint(
|
||||
JNIEnv *, jclass, jlong trackId, jdouble distanceInMeters)
|
||||
{
|
||||
auto & bm = frm()->GetBookmarkManager();
|
||||
@@ -914,7 +914,7 @@ Java_app_organicmaps_bookmarks_data_BookmarkManager_nativeSetElevationActivePoin
|
||||
}
|
||||
|
||||
JNIEXPORT jdouble JNICALL
|
||||
Java_app_organicmaps_bookmarks_data_BookmarkManager_nativeGetElevationActivePointDistance(
|
||||
Java_app_organicmaps_sdk_bookmarks_data_BookmarkManager_nativeGetElevationActivePointDistance(
|
||||
JNIEnv *, jclass, jlong trackId)
|
||||
{
|
||||
auto & bm = frm()->GetBookmarkManager();
|
||||
@@ -922,21 +922,21 @@ Java_app_organicmaps_bookmarks_data_BookmarkManager_nativeGetElevationActivePoin
|
||||
}
|
||||
|
||||
JNIEXPORT void JNICALL
|
||||
Java_app_organicmaps_bookmarks_data_BookmarkManager_nativeSetElevationActiveChangedListener(
|
||||
Java_app_organicmaps_sdk_bookmarks_data_BookmarkManager_nativeSetElevationActiveChangedListener(
|
||||
JNIEnv *env, jclass)
|
||||
{
|
||||
frm()->GetBookmarkManager().SetElevationActivePointChangedCallback(std::bind(&OnElevationActivePointChanged, env));
|
||||
}
|
||||
|
||||
JNIEXPORT void JNICALL
|
||||
Java_app_organicmaps_bookmarks_data_BookmarkManager_nativeRemoveElevationActiveChangedListener(
|
||||
Java_app_organicmaps_sdk_bookmarks_data_BookmarkManager_nativeRemoveElevationActiveChangedListener(
|
||||
JNIEnv *, jclass)
|
||||
{
|
||||
frm()->GetBookmarkManager().SetElevationActivePointChangedCallback(nullptr);
|
||||
}
|
||||
|
||||
JNIEXPORT jboolean JNICALL
|
||||
Java_app_organicmaps_widget_placepage_PlacePageButtonFactory_nativeHasRecentlyDeletedBookmark(JNIEnv *, jclass)
|
||||
Java_app_organicmaps_sdk_widget_placepage_PlacePageButtonFactory_nativeHasRecentlyDeletedBookmark(JNIEnv *, jclass)
|
||||
{
|
||||
return frm()->GetBookmarkManager().HasRecentlyDeletedBookmark();
|
||||
}
|
||||
@@ -52,17 +52,17 @@ JNI_OnLoad(JavaVM * jvm, void *)
|
||||
jni::InitAssertLog();
|
||||
|
||||
JNIEnv * env = jni::GetEnv();
|
||||
g_mapObjectClazz = jni::GetGlobalClassRef(env, "app/organicmaps/bookmarks/data/MapObject");
|
||||
g_featureIdClazz = jni::GetGlobalClassRef(env, "app/organicmaps/bookmarks/data/FeatureId");
|
||||
g_bookmarkClazz = jni::GetGlobalClassRef(env, "app/organicmaps/bookmarks/data/Bookmark");
|
||||
g_httpClientClazz = jni::GetGlobalClassRef(env, "app/organicmaps/util/HttpClient");
|
||||
g_httpParamsClazz = jni::GetGlobalClassRef(env, "app/organicmaps/util/HttpClient$Params");
|
||||
g_platformSocketClazz = jni::GetGlobalClassRef(env, "app/organicmaps/location/PlatformSocket");
|
||||
g_utilsClazz = jni::GetGlobalClassRef(env, "app/organicmaps/util/Utils");
|
||||
g_loggerClazz = jni::GetGlobalClassRef(env, "app/organicmaps/util/log/Logger");
|
||||
g_keyValueClazz = jni::GetGlobalClassRef(env, "app/organicmaps/util/KeyValue");
|
||||
g_networkPolicyClazz = jni::GetGlobalClassRef(env, "app/organicmaps/util/NetworkPolicy");
|
||||
g_elevationInfoClazz = jni::GetGlobalClassRef(env, "app/organicmaps/bookmarks/data/ElevationInfo");
|
||||
g_mapObjectClazz = jni::GetGlobalClassRef(env, "app/organicmaps/sdk/bookmarks/data/MapObject");
|
||||
g_featureIdClazz = jni::GetGlobalClassRef(env, "app/organicmaps/sdk/bookmarks/data/FeatureId");
|
||||
g_bookmarkClazz = jni::GetGlobalClassRef(env, "app/organicmaps/sdk/bookmarks/data/Bookmark");
|
||||
g_httpClientClazz = jni::GetGlobalClassRef(env, "app/organicmaps/sdk/util/HttpClient");
|
||||
g_httpParamsClazz = jni::GetGlobalClassRef(env, "app/organicmaps/sdk/util/HttpClient$Params");
|
||||
g_platformSocketClazz = jni::GetGlobalClassRef(env, "app/organicmaps/sdk/location/PlatformSocket");
|
||||
g_utilsClazz = jni::GetGlobalClassRef(env, "app/organicmaps/sdk/util/Utils");
|
||||
g_loggerClazz = jni::GetGlobalClassRef(env, "app/organicmaps/sdk/util/log/Logger");
|
||||
g_keyValueClazz = jni::GetGlobalClassRef(env, "app/organicmaps/sdk/util/KeyValue");
|
||||
g_networkPolicyClazz = jni::GetGlobalClassRef(env, "app/organicmaps/sdk/util/NetworkPolicy");
|
||||
g_elevationInfoClazz = jni::GetGlobalClassRef(env, "app/organicmaps/sdk/bookmarks/data/ElevationInfo");
|
||||
|
||||
return JNI_VERSION_1_6;
|
||||
}
|
||||
@@ -269,7 +269,7 @@ std::string DescribeException()
|
||||
|
||||
jobject GetNewParcelablePointD(JNIEnv * env, m2::PointD const & point)
|
||||
{
|
||||
jclass klass = env->FindClass("app/organicmaps/bookmarks/data/ParcelablePointD");
|
||||
jclass klass = env->FindClass("app/organicmaps/sdk/bookmarks/data/ParcelablePointD");
|
||||
ASSERT ( klass, () );
|
||||
jmethodID methodID = GetConstructorID(env, klass, "(DD)V");
|
||||
|
||||
@@ -3,9 +3,9 @@
|
||||
#include "base/exception.hpp"
|
||||
#include "base/logging.hpp"
|
||||
|
||||
#include "app/organicmaps/core/jni_helper.hpp"
|
||||
#include "app/organicmaps/core/logging.hpp"
|
||||
#include "app/organicmaps/core/ScopedEnv.hpp"
|
||||
#include "app/organicmaps/sdk/core/jni_helper.hpp"
|
||||
#include "app/organicmaps/sdk/core/logging.hpp"
|
||||
#include "app/organicmaps/sdk/core/ScopedEnv.hpp"
|
||||
|
||||
#include <android/log.h>
|
||||
#include <cassert>
|
||||
@@ -1,7 +1,7 @@
|
||||
#include <jni.h>
|
||||
|
||||
#include "app/organicmaps/core/jni_helper.hpp"
|
||||
#include "app/organicmaps/Framework.hpp"
|
||||
#include "app/organicmaps/sdk/core/jni_helper.hpp"
|
||||
#include "app/organicmaps/sdk/Framework.hpp"
|
||||
|
||||
#include "editor/osm_editor.hpp"
|
||||
|
||||
@@ -66,38 +66,38 @@ extern "C"
|
||||
using osm::Editor;
|
||||
|
||||
JNIEXPORT void JNICALL
|
||||
Java_app_organicmaps_editor_Editor_nativeInit(JNIEnv * env, jclass)
|
||||
Java_app_organicmaps_sdk_editor_Editor_nativeInit(JNIEnv * env, jclass)
|
||||
{
|
||||
g_localNameClazz = jni::GetGlobalClassRef(env, "app/organicmaps/editor/data/LocalizedName");
|
||||
g_localNameClazz = jni::GetGlobalClassRef(env, "app/organicmaps/sdk/editor/data/LocalizedName");
|
||||
// LocalizedName(int code, @NonNull String name, @NonNull String lang, @NonNull String langName)
|
||||
g_localNameCtor = jni::GetConstructorID(env, g_localNameClazz, "(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V");
|
||||
g_localNameFieldCode = env->GetFieldID(g_localNameClazz, "code", "I");
|
||||
g_localNameFieldName = env->GetFieldID(g_localNameClazz, "name", "Ljava/lang/String;");
|
||||
|
||||
g_localStreetClazz = jni::GetGlobalClassRef(env, "app/organicmaps/editor/data/LocalizedStreet");
|
||||
g_localStreetClazz = jni::GetGlobalClassRef(env, "app/organicmaps/sdk/editor/data/LocalizedStreet");
|
||||
// LocalizedStreet(@NonNull String defaultName, @NonNull String localizedName)
|
||||
g_localStreetCtor = jni::GetConstructorID(env, g_localStreetClazz, "(Ljava/lang/String;Ljava/lang/String;)V");
|
||||
g_localStreetFieldDef = env->GetFieldID(g_localStreetClazz, "defaultName", "Ljava/lang/String;");
|
||||
g_localStreetFieldLoc = env->GetFieldID(g_localStreetClazz, "localizedName", "Ljava/lang/String;");
|
||||
|
||||
g_namesDataSourceClassID = jni::GetGlobalClassRef(env, "app/organicmaps/editor/data/NamesDataSource");
|
||||
g_namesDataSourceConstructorID = jni::GetConstructorID(env, g_namesDataSourceClassID, "([Lapp/organicmaps/editor/data/LocalizedName;I)V");
|
||||
g_namesDataSourceClassID = jni::GetGlobalClassRef(env, "app/organicmaps/sdk/editor/data/NamesDataSource");
|
||||
g_namesDataSourceConstructorID = jni::GetConstructorID(env, g_namesDataSourceClassID, "([Lapp/organicmaps/sdk/editor/data/LocalizedName;I)V");
|
||||
}
|
||||
|
||||
JNIEXPORT jstring JNICALL
|
||||
Java_app_organicmaps_editor_Editor_nativeGetOpeningHours(JNIEnv * env, jclass)
|
||||
Java_app_organicmaps_sdk_editor_Editor_nativeGetOpeningHours(JNIEnv * env, jclass)
|
||||
{
|
||||
return jni::ToJavaString(env, g_editableMapObject.GetOpeningHours());
|
||||
}
|
||||
|
||||
JNIEXPORT void JNICALL
|
||||
Java_app_organicmaps_editor_Editor_nativeSetOpeningHours(JNIEnv * env, jclass, jstring value)
|
||||
Java_app_organicmaps_sdk_editor_Editor_nativeSetOpeningHours(JNIEnv * env, jclass, jstring value)
|
||||
{
|
||||
g_editableMapObject.SetOpeningHours(jni::ToNativeString(env, value));
|
||||
}
|
||||
|
||||
JNIEXPORT jstring JNICALL
|
||||
Java_app_organicmaps_editor_Editor_nativeGetMetadata(JNIEnv * env, jclass, jint id)
|
||||
Java_app_organicmaps_sdk_editor_Editor_nativeGetMetadata(JNIEnv * env, jclass, jint id)
|
||||
{
|
||||
auto const metaID = static_cast<osm::MapObject::MetadataID>(id);
|
||||
ASSERT_LESS(metaID, osm::MapObject::MetadataID::FMD_COUNT, ());
|
||||
@@ -113,7 +113,7 @@ Java_app_organicmaps_editor_Editor_nativeGetMetadata(JNIEnv * env, jclass, jint
|
||||
}
|
||||
|
||||
JNIEXPORT jboolean JNICALL
|
||||
Java_app_organicmaps_editor_Editor_nativeIsMetadataValid(JNIEnv * env, jclass, jint id, jstring value)
|
||||
Java_app_organicmaps_sdk_editor_Editor_nativeIsMetadataValid(JNIEnv * env, jclass, jint id, jstring value)
|
||||
{
|
||||
auto const metaID = static_cast<osm::MapObject::MetadataID>(id);
|
||||
ASSERT_LESS(metaID, osm::MapObject::MetadataID::FMD_COUNT, ());
|
||||
@@ -121,7 +121,7 @@ Java_app_organicmaps_editor_Editor_nativeIsMetadataValid(JNIEnv * env, jclass, j
|
||||
}
|
||||
|
||||
JNIEXPORT void JNICALL
|
||||
Java_app_organicmaps_editor_Editor_nativeSetMetadata(JNIEnv * env, jclass, jint id, jstring value)
|
||||
Java_app_organicmaps_sdk_editor_Editor_nativeSetMetadata(JNIEnv * env, jclass, jint id, jstring value)
|
||||
{
|
||||
auto const metaID = static_cast<osm::MapObject::MetadataID>(id);
|
||||
ASSERT_LESS(metaID, osm::MapObject::MetadataID::FMD_COUNT, ());
|
||||
@@ -129,32 +129,32 @@ Java_app_organicmaps_editor_Editor_nativeSetMetadata(JNIEnv * env, jclass, jint
|
||||
}
|
||||
|
||||
JNIEXPORT jint JNICALL
|
||||
Java_app_organicmaps_editor_Editor_nativeGetStars(JNIEnv * env, jclass)
|
||||
Java_app_organicmaps_sdk_editor_Editor_nativeGetStars(JNIEnv * env, jclass)
|
||||
{
|
||||
return g_editableMapObject.GetStars();
|
||||
}
|
||||
|
||||
JNIEXPORT jint JNICALL
|
||||
Java_app_organicmaps_editor_Editor_nativeGetMaxEditableBuildingLevels(JNIEnv *, jclass)
|
||||
Java_app_organicmaps_sdk_editor_Editor_nativeGetMaxEditableBuildingLevels(JNIEnv *, jclass)
|
||||
{
|
||||
return osm::EditableMapObject::kMaximumLevelsEditableByUsers;
|
||||
}
|
||||
|
||||
JNIEXPORT jboolean JNICALL
|
||||
Java_app_organicmaps_editor_Editor_nativeHasWifi(JNIEnv *, jclass)
|
||||
Java_app_organicmaps_sdk_editor_Editor_nativeHasWifi(JNIEnv *, jclass)
|
||||
{
|
||||
return g_editableMapObject.GetInternet() == feature::Internet::Wlan;
|
||||
}
|
||||
|
||||
JNIEXPORT void JNICALL
|
||||
Java_app_organicmaps_editor_Editor_nativeSetHasWifi(JNIEnv *, jclass, jboolean hasWifi)
|
||||
Java_app_organicmaps_sdk_editor_Editor_nativeSetHasWifi(JNIEnv *, jclass, jboolean hasWifi)
|
||||
{
|
||||
if (hasWifi != (g_editableMapObject.GetInternet() == feature::Internet::Wlan))
|
||||
g_editableMapObject.SetInternet(hasWifi ? feature::Internet::Wlan : feature::Internet::Unknown);
|
||||
}
|
||||
|
||||
JNIEXPORT jboolean JNICALL
|
||||
Java_app_organicmaps_editor_Editor_nativeSaveEditedFeature(JNIEnv *, jclass)
|
||||
Java_app_organicmaps_sdk_editor_Editor_nativeSaveEditedFeature(JNIEnv *, jclass)
|
||||
{
|
||||
switch (g_framework->NativeFramework()->SaveEditedMapObject(g_editableMapObject))
|
||||
{
|
||||
@@ -169,7 +169,7 @@ Java_app_organicmaps_editor_Editor_nativeSaveEditedFeature(JNIEnv *, jclass)
|
||||
}
|
||||
|
||||
JNIEXPORT jboolean JNICALL
|
||||
Java_app_organicmaps_editor_Editor_nativeShouldShowEditPlace(JNIEnv *, jclass)
|
||||
Java_app_organicmaps_sdk_editor_Editor_nativeShouldShowEditPlace(JNIEnv *, jclass)
|
||||
{
|
||||
::Framework * frm = g_framework->NativeFramework();
|
||||
if (!frm->HasPlacePageInfo())
|
||||
@@ -179,7 +179,7 @@ Java_app_organicmaps_editor_Editor_nativeShouldShowEditPlace(JNIEnv *, jclass)
|
||||
}
|
||||
|
||||
JNIEXPORT jboolean JNICALL
|
||||
Java_app_organicmaps_editor_Editor_nativeShouldShowAddBusiness(JNIEnv *, jclass)
|
||||
Java_app_organicmaps_sdk_editor_Editor_nativeShouldShowAddBusiness(JNIEnv *, jclass)
|
||||
{
|
||||
::Framework * frm = g_framework->NativeFramework();
|
||||
if (!frm->HasPlacePageInfo())
|
||||
@@ -189,7 +189,7 @@ Java_app_organicmaps_editor_Editor_nativeShouldShowAddBusiness(JNIEnv *, jclass)
|
||||
}
|
||||
|
||||
JNIEXPORT jboolean JNICALL
|
||||
Java_app_organicmaps_editor_Editor_nativeShouldShowAddPlace(JNIEnv *, jclass)
|
||||
Java_app_organicmaps_sdk_editor_Editor_nativeShouldShowAddPlace(JNIEnv *, jclass)
|
||||
{
|
||||
::Framework * frm = g_framework->NativeFramework();
|
||||
if (!frm->HasPlacePageInfo())
|
||||
@@ -199,7 +199,7 @@ Java_app_organicmaps_editor_Editor_nativeShouldShowAddPlace(JNIEnv *, jclass)
|
||||
}
|
||||
|
||||
JNIEXPORT jboolean JNICALL
|
||||
Java_app_organicmaps_editor_Editor_nativeShouldEnableEditPlace(JNIEnv *, jclass)
|
||||
Java_app_organicmaps_sdk_editor_Editor_nativeShouldEnableEditPlace(JNIEnv *, jclass)
|
||||
{
|
||||
::Framework * frm = g_framework->NativeFramework();
|
||||
if (!frm->HasPlacePageInfo())
|
||||
@@ -209,7 +209,7 @@ Java_app_organicmaps_editor_Editor_nativeShouldEnableEditPlace(JNIEnv *, jclass)
|
||||
}
|
||||
|
||||
JNIEXPORT jboolean JNICALL
|
||||
Java_app_organicmaps_editor_Editor_nativeShouldEnableAddPlace(JNIEnv *, jclass)
|
||||
Java_app_organicmaps_sdk_editor_Editor_nativeShouldEnableAddPlace(JNIEnv *, jclass)
|
||||
{
|
||||
::Framework * frm = g_framework->NativeFramework();
|
||||
if (!frm->HasPlacePageInfo())
|
||||
@@ -219,7 +219,7 @@ Java_app_organicmaps_editor_Editor_nativeShouldEnableAddPlace(JNIEnv *, jclass)
|
||||
}
|
||||
|
||||
JNIEXPORT jintArray JNICALL
|
||||
Java_app_organicmaps_editor_Editor_nativeGetEditableProperties(JNIEnv * env, jclass clazz)
|
||||
Java_app_organicmaps_sdk_editor_Editor_nativeGetEditableProperties(JNIEnv * env, jclass clazz)
|
||||
{
|
||||
auto const & editable = g_editableMapObject.GetEditableProperties();
|
||||
size_t const size = editable.size();
|
||||
@@ -233,31 +233,31 @@ Java_app_organicmaps_editor_Editor_nativeGetEditableProperties(JNIEnv * env, jcl
|
||||
}
|
||||
|
||||
JNIEXPORT jboolean JNICALL
|
||||
Java_app_organicmaps_editor_Editor_nativeIsAddressEditable(JNIEnv * env, jclass clazz)
|
||||
Java_app_organicmaps_sdk_editor_Editor_nativeIsAddressEditable(JNIEnv * env, jclass clazz)
|
||||
{
|
||||
return g_editableMapObject.IsAddressEditable();
|
||||
}
|
||||
|
||||
JNIEXPORT jboolean JNICALL
|
||||
Java_app_organicmaps_editor_Editor_nativeIsNameEditable(JNIEnv * env, jclass clazz)
|
||||
Java_app_organicmaps_sdk_editor_Editor_nativeIsNameEditable(JNIEnv * env, jclass clazz)
|
||||
{
|
||||
return g_editableMapObject.IsNameEditable();
|
||||
}
|
||||
|
||||
JNIEXPORT jboolean JNICALL
|
||||
Java_app_organicmaps_editor_Editor_nativeIsPointType(JNIEnv * env, jclass clazz)
|
||||
Java_app_organicmaps_sdk_editor_Editor_nativeIsPointType(JNIEnv * env, jclass clazz)
|
||||
{
|
||||
return g_editableMapObject.IsPointType();
|
||||
}
|
||||
|
||||
JNIEXPORT jboolean JNICALL
|
||||
Java_app_organicmaps_editor_Editor_nativeIsBuilding(JNIEnv * env, jclass clazz)
|
||||
Java_app_organicmaps_sdk_editor_Editor_nativeIsBuilding(JNIEnv * env, jclass clazz)
|
||||
{
|
||||
return g_editableMapObject.IsBuilding();
|
||||
}
|
||||
|
||||
JNIEXPORT jobject JNICALL
|
||||
Java_app_organicmaps_editor_Editor_nativeGetNamesDataSource(JNIEnv * env, jclass)
|
||||
Java_app_organicmaps_sdk_editor_Editor_nativeGetNamesDataSource(JNIEnv * env, jclass)
|
||||
{
|
||||
auto const namesDataSource = g_editableMapObject.GetNamesDataSource();
|
||||
|
||||
@@ -268,7 +268,7 @@ Java_app_organicmaps_editor_Editor_nativeGetNamesDataSource(JNIEnv * env, jclass
|
||||
}
|
||||
|
||||
JNIEXPORT void JNICALL
|
||||
Java_app_organicmaps_editor_Editor_nativeSetNames(JNIEnv * env, jclass, jobjectArray names)
|
||||
Java_app_organicmaps_sdk_editor_Editor_nativeSetNames(JNIEnv * env, jclass, jobjectArray names)
|
||||
{
|
||||
int const length = env->GetArrayLength(names);
|
||||
for (int i = 0; i < length; i++)
|
||||
@@ -280,29 +280,29 @@ Java_app_organicmaps_editor_Editor_nativeSetNames(JNIEnv * env, jclass, jobjectA
|
||||
}
|
||||
|
||||
JNIEXPORT jobject JNICALL
|
||||
Java_app_organicmaps_editor_Editor_nativeGetStreet(JNIEnv * env, jclass)
|
||||
Java_app_organicmaps_sdk_editor_Editor_nativeGetStreet(JNIEnv * env, jclass)
|
||||
{
|
||||
return ToJavaStreet(env, g_editableMapObject.GetStreet());
|
||||
}
|
||||
|
||||
JNIEXPORT void JNICALL
|
||||
Java_app_organicmaps_editor_Editor_nativeSetStreet(JNIEnv * env, jclass, jobject street)
|
||||
Java_app_organicmaps_sdk_editor_Editor_nativeSetStreet(JNIEnv * env, jclass, jobject street)
|
||||
{
|
||||
g_editableMapObject.SetStreet({jni::ToNativeString(env, (jstring) env->GetObjectField(street, g_localStreetFieldDef)),
|
||||
jni::ToNativeString(env, (jstring) env->GetObjectField(street, g_localStreetFieldLoc))});
|
||||
}
|
||||
JNIEXPORT jobjectArray JNICALL
|
||||
Java_app_organicmaps_editor_Editor_nativeGetNearbyStreets(JNIEnv * env, jclass clazz)
|
||||
Java_app_organicmaps_sdk_editor_Editor_nativeGetNearbyStreets(JNIEnv * env, jclass clazz)
|
||||
{
|
||||
return jni::ToJavaArray(env, g_localStreetClazz, g_editableMapObject.GetNearbyStreets(), ToJavaStreet);
|
||||
}
|
||||
|
||||
JNIEXPORT jobjectArray JNICALL
|
||||
Java_app_organicmaps_editor_Editor_nativeGetSupportedLanguages(JNIEnv * env, jclass clazz, jboolean includeServiceLangs)
|
||||
Java_app_organicmaps_sdk_editor_Editor_nativeGetSupportedLanguages(JNIEnv * env, jclass clazz, jboolean includeServiceLangs)
|
||||
{
|
||||
using TLang = StringUtf8Multilang::Lang;
|
||||
//public Language(@NonNull String code, @NonNull String name)
|
||||
static jclass const langClass = jni::GetGlobalClassRef(env, "app/organicmaps/editor/data/Language");
|
||||
static jclass const langClass = jni::GetGlobalClassRef(env, "app/organicmaps/sdk/editor/data/Language");
|
||||
static jmethodID const langCtor = jni::GetConstructorID(env, langClass, "(Ljava/lang/String;Ljava/lang/String;)V");
|
||||
|
||||
return jni::ToJavaArray(env, langClass, StringUtf8Multilang::GetSupportedLanguages(includeServiceLangs),
|
||||
@@ -315,25 +315,25 @@ Java_app_organicmaps_editor_Editor_nativeGetSupportedLanguages(JNIEnv * env, jcl
|
||||
}
|
||||
|
||||
JNIEXPORT jstring JNICALL
|
||||
Java_app_organicmaps_editor_Editor_nativeGetHouseNumber(JNIEnv * env, jclass)
|
||||
Java_app_organicmaps_sdk_editor_Editor_nativeGetHouseNumber(JNIEnv * env, jclass)
|
||||
{
|
||||
return jni::ToJavaString(env, g_editableMapObject.GetHouseNumber());
|
||||
}
|
||||
|
||||
JNIEXPORT void JNICALL
|
||||
Java_app_organicmaps_editor_Editor_nativeSetHouseNumber(JNIEnv * env, jclass, jstring houseNumber)
|
||||
Java_app_organicmaps_sdk_editor_Editor_nativeSetHouseNumber(JNIEnv * env, jclass, jstring houseNumber)
|
||||
{
|
||||
g_editableMapObject.SetHouseNumber(jni::ToNativeString(env, houseNumber));
|
||||
}
|
||||
|
||||
JNIEXPORT jboolean JNICALL
|
||||
Java_app_organicmaps_editor_Editor_nativeHasSomethingToUpload(JNIEnv * env, jclass clazz)
|
||||
Java_app_organicmaps_sdk_editor_Editor_nativeHasSomethingToUpload(JNIEnv * env, jclass clazz)
|
||||
{
|
||||
return Editor::Instance().HaveMapEditsOrNotesToUpload();
|
||||
}
|
||||
|
||||
JNIEXPORT void JNICALL
|
||||
Java_app_organicmaps_editor_Editor_nativeUploadChanges(JNIEnv * env, jclass clazz, jstring token, jstring appVersion, jstring appId)
|
||||
Java_app_organicmaps_sdk_editor_Editor_nativeUploadChanges(JNIEnv * env, jclass clazz, jstring token, jstring appVersion, jstring appId)
|
||||
{
|
||||
// TODO: Handle upload status in callback
|
||||
Editor::Instance().UploadChanges(jni::ToNativeString(env, token),
|
||||
@@ -342,7 +342,7 @@ Java_app_organicmaps_editor_Editor_nativeUploadChanges(JNIEnv * env, jclass claz
|
||||
}
|
||||
|
||||
JNIEXPORT jlongArray JNICALL
|
||||
Java_app_organicmaps_editor_Editor_nativeGetStats(JNIEnv * env, jclass clazz)
|
||||
Java_app_organicmaps_sdk_editor_Editor_nativeGetStats(JNIEnv * env, jclass clazz)
|
||||
{
|
||||
auto const stats = Editor::Instance().GetStats();
|
||||
jlongArray result = env->NewLongArray(3);
|
||||
@@ -353,13 +353,13 @@ Java_app_organicmaps_editor_Editor_nativeGetStats(JNIEnv * env, jclass clazz)
|
||||
}
|
||||
|
||||
JNIEXPORT void JNICALL
|
||||
Java_app_organicmaps_editor_Editor_nativeClearLocalEdits(JNIEnv * env, jclass clazz)
|
||||
Java_app_organicmaps_sdk_editor_Editor_nativeClearLocalEdits(JNIEnv * env, jclass clazz)
|
||||
{
|
||||
Editor::Instance().ClearAllLocalEdits();
|
||||
}
|
||||
|
||||
JNIEXPORT void JNICALL
|
||||
Java_app_organicmaps_editor_Editor_nativeStartEdit(JNIEnv *, jclass)
|
||||
Java_app_organicmaps_sdk_editor_Editor_nativeStartEdit(JNIEnv *, jclass)
|
||||
{
|
||||
::Framework * frm = g_framework->NativeFramework();
|
||||
if (!frm->HasPlacePageInfo())
|
||||
@@ -374,7 +374,7 @@ Java_app_organicmaps_editor_Editor_nativeStartEdit(JNIEnv *, jclass)
|
||||
}
|
||||
|
||||
JNIEXPORT void JNICALL
|
||||
Java_app_organicmaps_editor_Editor_nativeCreateMapObject(JNIEnv * env, jclass,
|
||||
Java_app_organicmaps_sdk_editor_Editor_nativeCreateMapObject(JNIEnv * env, jclass,
|
||||
jstring featureType)
|
||||
{
|
||||
::Framework * frm = g_framework->NativeFramework();
|
||||
@@ -385,7 +385,7 @@ Java_app_organicmaps_editor_Editor_nativeCreateMapObject(JNIEnv * env, jclass,
|
||||
|
||||
// static void nativeCreateNote(String text);
|
||||
JNIEXPORT void JNICALL
|
||||
Java_app_organicmaps_editor_Editor_nativeCreateNote(JNIEnv * env, jclass clazz, jstring text)
|
||||
Java_app_organicmaps_sdk_editor_Editor_nativeCreateNote(JNIEnv * env, jclass clazz, jstring text)
|
||||
{
|
||||
g_framework->NativeFramework()->CreateNote(
|
||||
g_editableMapObject, osm::Editor::NoteProblemType::General, jni::ToNativeString(env, text));
|
||||
@@ -393,7 +393,7 @@ Java_app_organicmaps_editor_Editor_nativeCreateNote(JNIEnv * env, jclass clazz,
|
||||
|
||||
// static void nativePlaceDoesNotExist(String comment);
|
||||
JNIEXPORT void JNICALL
|
||||
Java_app_organicmaps_editor_Editor_nativePlaceDoesNotExist(JNIEnv * env, jclass clazz, jstring comment)
|
||||
Java_app_organicmaps_sdk_editor_Editor_nativePlaceDoesNotExist(JNIEnv * env, jclass clazz, jstring comment)
|
||||
{
|
||||
g_framework->NativeFramework()->CreateNote(g_editableMapObject,
|
||||
osm::Editor::NoteProblemType::PlaceDoesNotExist,
|
||||
@@ -401,13 +401,13 @@ Java_app_organicmaps_editor_Editor_nativePlaceDoesNotExist(JNIEnv * env, jclass
|
||||
}
|
||||
|
||||
JNIEXPORT void JNICALL
|
||||
Java_app_organicmaps_editor_Editor_nativeRollbackMapObject(JNIEnv * env, jclass clazz)
|
||||
Java_app_organicmaps_sdk_editor_Editor_nativeRollbackMapObject(JNIEnv * env, jclass clazz)
|
||||
{
|
||||
g_framework->NativeFramework()->RollBackChanges(g_editableMapObject.GetID());
|
||||
}
|
||||
|
||||
JNIEXPORT jobjectArray JNICALL
|
||||
Java_app_organicmaps_editor_Editor_nativeGetAllCreatableFeatureTypes(JNIEnv * env, jclass clazz,
|
||||
Java_app_organicmaps_sdk_editor_Editor_nativeGetAllCreatableFeatureTypes(JNIEnv * env, jclass clazz,
|
||||
jstring jLang)
|
||||
{
|
||||
std::string const & lang = jni::ToNativeString(env, jLang);
|
||||
@@ -418,7 +418,7 @@ Java_app_organicmaps_editor_Editor_nativeGetAllCreatableFeatureTypes(JNIEnv * en
|
||||
}
|
||||
|
||||
JNIEXPORT jobjectArray JNICALL
|
||||
Java_app_organicmaps_editor_Editor_nativeSearchCreatableFeatureTypes(JNIEnv * env, jclass clazz,
|
||||
Java_app_organicmaps_sdk_editor_Editor_nativeSearchCreatableFeatureTypes(JNIEnv * env, jclass clazz,
|
||||
jstring query,
|
||||
jstring jLang)
|
||||
{
|
||||
@@ -430,7 +430,7 @@ Java_app_organicmaps_editor_Editor_nativeSearchCreatableFeatureTypes(JNIEnv * en
|
||||
}
|
||||
|
||||
JNIEXPORT jobjectArray JNICALL
|
||||
Java_app_organicmaps_editor_Editor_nativeGetCuisines(JNIEnv * env, jclass clazz)
|
||||
Java_app_organicmaps_sdk_editor_Editor_nativeGetCuisines(JNIEnv * env, jclass clazz)
|
||||
{
|
||||
osm::AllCuisines const & cuisines = osm::Cuisines::Instance().AllSupportedCuisines();
|
||||
std::vector<std::string> keys;
|
||||
@@ -441,13 +441,13 @@ Java_app_organicmaps_editor_Editor_nativeGetCuisines(JNIEnv * env, jclass clazz)
|
||||
}
|
||||
|
||||
JNIEXPORT jobjectArray JNICALL
|
||||
Java_app_organicmaps_editor_Editor_nativeGetSelectedCuisines(JNIEnv * env, jclass clazz)
|
||||
Java_app_organicmaps_sdk_editor_Editor_nativeGetSelectedCuisines(JNIEnv * env, jclass clazz)
|
||||
{
|
||||
return jni::ToJavaStringArray(env, g_editableMapObject.GetCuisines());
|
||||
}
|
||||
|
||||
JNIEXPORT jobjectArray JNICALL
|
||||
Java_app_organicmaps_editor_Editor_nativeFilterCuisinesKeys(JNIEnv * env, jclass thiz, jstring jSubstr)
|
||||
Java_app_organicmaps_sdk_editor_Editor_nativeFilterCuisinesKeys(JNIEnv * env, jclass thiz, jstring jSubstr)
|
||||
{
|
||||
std::string const substr = jni::ToNativeString(env, jSubstr);
|
||||
bool const noFilter = substr.length() == 0;
|
||||
@@ -467,7 +467,7 @@ Java_app_organicmaps_editor_Editor_nativeFilterCuisinesKeys(JNIEnv * env, jclass
|
||||
}
|
||||
|
||||
JNIEXPORT jobjectArray JNICALL
|
||||
Java_app_organicmaps_editor_Editor_nativeTranslateCuisines(JNIEnv * env, jclass clazz, jobjectArray jKeys)
|
||||
Java_app_organicmaps_sdk_editor_Editor_nativeTranslateCuisines(JNIEnv * env, jclass clazz, jobjectArray jKeys)
|
||||
{
|
||||
int const length = env->GetArrayLength(jKeys);
|
||||
auto const & cuisines = osm::Cuisines::Instance();
|
||||
@@ -482,7 +482,7 @@ Java_app_organicmaps_editor_Editor_nativeTranslateCuisines(JNIEnv * env, jclass
|
||||
}
|
||||
|
||||
JNIEXPORT void JNICALL
|
||||
Java_app_organicmaps_editor_Editor_nativeSetSelectedCuisines(JNIEnv * env, jclass clazz, jobjectArray jKeys)
|
||||
Java_app_organicmaps_sdk_editor_Editor_nativeSetSelectedCuisines(JNIEnv * env, jclass clazz, jobjectArray jKeys)
|
||||
{
|
||||
int const length = env->GetArrayLength(jKeys);
|
||||
std::vector<std::string> cuisines;
|
||||
@@ -493,38 +493,38 @@ Java_app_organicmaps_editor_Editor_nativeSetSelectedCuisines(JNIEnv * env, jclas
|
||||
}
|
||||
|
||||
JNIEXPORT jstring JNICALL
|
||||
Java_app_organicmaps_editor_Editor_nativeGetFormattedCuisine(JNIEnv * env, jclass clazz)
|
||||
Java_app_organicmaps_sdk_editor_Editor_nativeGetFormattedCuisine(JNIEnv * env, jclass clazz)
|
||||
{
|
||||
return jni::ToJavaString(env, g_editableMapObject.FormatCuisines());
|
||||
}
|
||||
|
||||
JNIEXPORT jstring JNICALL
|
||||
Java_app_organicmaps_editor_Editor_nativeGetMwmName(JNIEnv * env, jclass clazz)
|
||||
Java_app_organicmaps_sdk_editor_Editor_nativeGetMwmName(JNIEnv * env, jclass clazz)
|
||||
{
|
||||
return jni::ToJavaString(env, g_editableMapObject.GetID().GetMwmName());
|
||||
}
|
||||
|
||||
JNIEXPORT jlong JNICALL
|
||||
Java_app_organicmaps_editor_Editor_nativeGetMwmVersion(JNIEnv * env, jclass clazz)
|
||||
Java_app_organicmaps_sdk_editor_Editor_nativeGetMwmVersion(JNIEnv * env, jclass clazz)
|
||||
{
|
||||
return g_editableMapObject.GetID().GetMwmVersion();
|
||||
}
|
||||
|
||||
// static boolean nativeIsHouseValid(String houseNumber);
|
||||
JNIEXPORT jboolean JNICALL
|
||||
Java_app_organicmaps_editor_Editor_nativeIsHouseValid(JNIEnv * env, jclass clazz, jstring houseNumber)
|
||||
Java_app_organicmaps_sdk_editor_Editor_nativeIsHouseValid(JNIEnv * env, jclass clazz, jstring houseNumber)
|
||||
{
|
||||
return osm::EditableMapObject::ValidateHouseNumber(jni::ToNativeString(env, houseNumber));
|
||||
}
|
||||
|
||||
JNIEXPORT jboolean JNICALL
|
||||
Java_app_organicmaps_editor_Editor_nativeIsNameValid(JNIEnv * env, jclass clazz, jstring name)
|
||||
Java_app_organicmaps_sdk_editor_Editor_nativeIsNameValid(JNIEnv * env, jclass clazz, jstring name)
|
||||
{
|
||||
return osm::EditableMapObject::ValidateName(jni::ToNativeString(env, name));
|
||||
}
|
||||
|
||||
JNIEXPORT jstring JNICALL
|
||||
Java_app_organicmaps_editor_Editor_nativeGetCategory(JNIEnv * env, jclass clazz)
|
||||
Java_app_organicmaps_sdk_editor_Editor_nativeGetCategory(JNIEnv * env, jclass clazz)
|
||||
{
|
||||
auto types = g_editableMapObject.GetTypes();
|
||||
types.SortBySpec();
|
||||
@@ -534,20 +534,20 @@ Java_app_organicmaps_editor_Editor_nativeGetCategory(JNIEnv * env, jclass clazz)
|
||||
// @FeatureStatus
|
||||
// static native int nativeGetMapObjectStatus();
|
||||
JNIEXPORT jint JNICALL
|
||||
Java_app_organicmaps_editor_Editor_nativeGetMapObjectStatus(JNIEnv * env, jclass clazz)
|
||||
Java_app_organicmaps_sdk_editor_Editor_nativeGetMapObjectStatus(JNIEnv * env, jclass clazz)
|
||||
{
|
||||
return static_cast<jint>(osm::Editor::Instance().GetFeatureStatus(g_editableMapObject.GetID()));
|
||||
}
|
||||
|
||||
JNIEXPORT jboolean JNICALL
|
||||
Java_app_organicmaps_editor_Editor_nativeIsMapObjectUploaded(JNIEnv * env, jclass clazz)
|
||||
Java_app_organicmaps_sdk_editor_Editor_nativeIsMapObjectUploaded(JNIEnv * env, jclass clazz)
|
||||
{
|
||||
return osm::Editor::Instance().IsFeatureUploaded(g_editableMapObject.GetID().m_mwmId, g_editableMapObject.GetID().m_index);
|
||||
}
|
||||
|
||||
// static nativeMakeLocalizedName(String langCode, String name);
|
||||
JNIEXPORT jobject JNICALL
|
||||
Java_app_organicmaps_editor_Editor_nativeMakeLocalizedName(JNIEnv * env, jclass clazz, jstring code, jstring name)
|
||||
Java_app_organicmaps_sdk_editor_Editor_nativeMakeLocalizedName(JNIEnv * env, jclass clazz, jstring code, jstring name)
|
||||
{
|
||||
osm::LocalizedName localizedName(jni::ToNativeString(env, code), jni::ToNativeString(env, name));
|
||||
return ToJavaName(env, localizedName);
|
||||
@@ -1,7 +1,7 @@
|
||||
#include <jni.h>
|
||||
|
||||
#include "app/organicmaps/core/jni_helper.hpp"
|
||||
#include "app/organicmaps/platform/AndroidPlatform.hpp"
|
||||
#include "app/organicmaps/sdk/core/jni_helper.hpp"
|
||||
#include "app/organicmaps/sdk/platform/AndroidPlatform.hpp"
|
||||
|
||||
#include "editor/opening_hours_ui.hpp"
|
||||
#include "editor/ui2oh.hpp"
|
||||
@@ -44,7 +44,7 @@ jfieldID g_fidWeekdays;
|
||||
jobject JavaHoursMinutes(JNIEnv * env, jlong hours, jlong minutes)
|
||||
{
|
||||
static const jclass dateUtilsClass = jni::GetGlobalClassRef(env,
|
||||
"app/organicmaps/util/DateUtils");
|
||||
"app/organicmaps/sdk/util/DateUtils");
|
||||
static jmethodID const is24HourFormatMethod =
|
||||
jni::GetStaticMethodID(env,
|
||||
dateUtilsClass,
|
||||
@@ -182,9 +182,9 @@ TimeTableSet NativeTimetableSet(JNIEnv * env, jobjectArray jTimetables)
|
||||
extern "C"
|
||||
{
|
||||
JNIEXPORT void JNICALL
|
||||
Java_app_organicmaps_editor_OpeningHours_nativeInit(JNIEnv * env, jclass clazz)
|
||||
Java_app_organicmaps_sdk_editor_OpeningHours_nativeInit(JNIEnv * env, jclass clazz)
|
||||
{
|
||||
g_clazzHoursMinutes = jni::GetGlobalClassRef(env, "app/organicmaps/editor/data/HoursMinutes");
|
||||
g_clazzHoursMinutes = jni::GetGlobalClassRef(env, "app/organicmaps/sdk/editor/data/HoursMinutes");
|
||||
// Java signature : HoursMinutes(@IntRange(from = 0, to = 24) long hours, @IntRange(from = 0, to = 60) long minutes)
|
||||
g_ctorHoursMinutes = env->GetMethodID(g_clazzHoursMinutes, "<init>", "(JJZ)V");
|
||||
ASSERT(g_ctorHoursMinutes, (jni::DescribeException()));
|
||||
@@ -193,24 +193,24 @@ Java_app_organicmaps_editor_OpeningHours_nativeInit(JNIEnv * env, jclass clazz)
|
||||
g_fidMinutes = env->GetFieldID(g_clazzHoursMinutes, "minutes", "J");
|
||||
ASSERT(g_fidMinutes, (jni::DescribeException()));
|
||||
|
||||
g_clazzTimespan = jni::GetGlobalClassRef(env, "app/organicmaps/editor/data/Timespan");
|
||||
g_clazzTimespan = jni::GetGlobalClassRef(env, "app/organicmaps/sdk/editor/data/Timespan");
|
||||
// Java signature : Timespan(HoursMinutes start, HoursMinutes end)
|
||||
g_ctorTimespan =
|
||||
env->GetMethodID(g_clazzTimespan, "<init>","(Lapp/organicmaps/editor/data/HoursMinutes;Lapp/organicmaps/editor/data/HoursMinutes;)V");
|
||||
env->GetMethodID(g_clazzTimespan, "<init>","(Lapp/organicmaps/sdk/editor/data/HoursMinutes;Lapp/organicmaps/sdk/editor/data/HoursMinutes;)V");
|
||||
ASSERT(g_ctorTimespan, (jni::DescribeException()));
|
||||
g_fidStart = env->GetFieldID(g_clazzTimespan, "start", "Lapp/organicmaps/editor/data/HoursMinutes;");
|
||||
g_fidStart = env->GetFieldID(g_clazzTimespan, "start", "Lapp/organicmaps/sdk/editor/data/HoursMinutes;");
|
||||
ASSERT(g_fidStart, (jni::DescribeException()));
|
||||
g_fidEnd = env->GetFieldID(g_clazzTimespan, "end", "Lapp/organicmaps/editor/data/HoursMinutes;");
|
||||
g_fidEnd = env->GetFieldID(g_clazzTimespan, "end", "Lapp/organicmaps/sdk/editor/data/HoursMinutes;");
|
||||
ASSERT(g_fidEnd, (jni::DescribeException()));
|
||||
|
||||
g_clazzTimetable = jni::GetGlobalClassRef(env, "app/organicmaps/editor/data/Timetable");
|
||||
g_clazzTimetable = jni::GetGlobalClassRef(env, "app/organicmaps/sdk/editor/data/Timetable");
|
||||
// Java signature : Timetable(Timespan workingTime, Timespan[] closedHours, boolean isFullday, int weekdays[])
|
||||
g_ctorTimetable =
|
||||
env->GetMethodID(g_clazzTimetable, "<init>","(Lapp/organicmaps/editor/data/Timespan;[Lapp/organicmaps/editor/data/Timespan;Z[I)V");
|
||||
env->GetMethodID(g_clazzTimetable, "<init>","(Lapp/organicmaps/sdk/editor/data/Timespan;[Lapp/organicmaps/sdk/editor/data/Timespan;Z[I)V");
|
||||
ASSERT(g_ctorTimetable, (jni::DescribeException()));
|
||||
g_fidWorkingTimespan = env->GetFieldID(g_clazzTimetable, "workingTimespan", "Lapp/organicmaps/editor/data/Timespan;");
|
||||
g_fidWorkingTimespan = env->GetFieldID(g_clazzTimetable, "workingTimespan", "Lapp/organicmaps/sdk/editor/data/Timespan;");
|
||||
ASSERT(g_fidWorkingTimespan, (jni::DescribeException()));
|
||||
g_fidClosedTimespans = env->GetFieldID(g_clazzTimetable, "closedTimespans", "[Lapp/organicmaps/editor/data/Timespan;");
|
||||
g_fidClosedTimespans = env->GetFieldID(g_clazzTimetable, "closedTimespans", "[Lapp/organicmaps/sdk/editor/data/Timespan;");
|
||||
ASSERT(g_fidClosedTimespans, (jni::DescribeException()));
|
||||
g_fidIsFullday = env->GetFieldID(g_clazzTimetable, "isFullday", "Z");
|
||||
ASSERT(g_fidIsFullday, (jni::DescribeException()));
|
||||
@@ -219,21 +219,21 @@ Java_app_organicmaps_editor_OpeningHours_nativeInit(JNIEnv * env, jclass clazz)
|
||||
}
|
||||
|
||||
JNIEXPORT jobjectArray JNICALL
|
||||
Java_app_organicmaps_editor_OpeningHours_nativeGetDefaultTimetables(JNIEnv * env, jclass clazz)
|
||||
Java_app_organicmaps_sdk_editor_OpeningHours_nativeGetDefaultTimetables(JNIEnv * env, jclass clazz)
|
||||
{
|
||||
TimeTableSet tts;
|
||||
return JavaTimetables(env, tts);
|
||||
}
|
||||
|
||||
JNIEXPORT jobject JNICALL
|
||||
Java_app_organicmaps_editor_OpeningHours_nativeGetComplementTimetable(JNIEnv * env, jclass clazz, jobjectArray timetables)
|
||||
Java_app_organicmaps_sdk_editor_OpeningHours_nativeGetComplementTimetable(JNIEnv * env, jclass clazz, jobjectArray timetables)
|
||||
{
|
||||
TimeTableSet const tts = NativeTimetableSet(env, timetables);
|
||||
return JavaTimetable(env, tts.GetComplementTimeTable());
|
||||
}
|
||||
|
||||
JNIEXPORT jobjectArray JNICALL
|
||||
Java_app_organicmaps_editor_OpeningHours_nativeRemoveWorkingDay(JNIEnv * env, jclass clazz,
|
||||
Java_app_organicmaps_sdk_editor_OpeningHours_nativeRemoveWorkingDay(JNIEnv * env, jclass clazz,
|
||||
jobjectArray timetables, jint ttIndex, jint dayIndex)
|
||||
{
|
||||
TimeTableSet tts = NativeTimetableSet(env, timetables);
|
||||
@@ -244,7 +244,7 @@ Java_app_organicmaps_editor_OpeningHours_nativeRemoveWorkingDay(JNIEnv * env, jc
|
||||
}
|
||||
|
||||
JNIEXPORT jobjectArray JNICALL
|
||||
Java_app_organicmaps_editor_OpeningHours_nativeAddWorkingDay(JNIEnv * env, jclass clazz,
|
||||
Java_app_organicmaps_sdk_editor_OpeningHours_nativeAddWorkingDay(JNIEnv * env, jclass clazz,
|
||||
jobjectArray timetables, jint ttIndex, jint dayIndex)
|
||||
{
|
||||
TimeTableSet tts = NativeTimetableSet(env, timetables);
|
||||
@@ -255,7 +255,7 @@ Java_app_organicmaps_editor_OpeningHours_nativeAddWorkingDay(JNIEnv * env, jclas
|
||||
}
|
||||
|
||||
JNIEXPORT jobject JNICALL
|
||||
Java_app_organicmaps_editor_OpeningHours_nativeSetIsFullday(JNIEnv * env, jclass clazz,
|
||||
Java_app_organicmaps_sdk_editor_OpeningHours_nativeSetIsFullday(JNIEnv * env, jclass clazz,
|
||||
jobject jTimetable, jboolean jIsFullday)
|
||||
{
|
||||
TimeTable tt = NativeTimetable(env, jTimetable);
|
||||
@@ -270,7 +270,7 @@ Java_app_organicmaps_editor_OpeningHours_nativeSetIsFullday(JNIEnv * env, jclass
|
||||
}
|
||||
|
||||
JNIEXPORT jobject JNICALL
|
||||
Java_app_organicmaps_editor_OpeningHours_nativeSetOpeningTime(JNIEnv * env, jclass clazz,
|
||||
Java_app_organicmaps_sdk_editor_OpeningHours_nativeSetOpeningTime(JNIEnv * env, jclass clazz,
|
||||
jobject jTimetable, jobject jOpeningTime)
|
||||
{
|
||||
TimeTable tt = NativeTimetable(env, jTimetable);
|
||||
@@ -279,7 +279,7 @@ Java_app_organicmaps_editor_OpeningHours_nativeSetOpeningTime(JNIEnv * env, jcla
|
||||
}
|
||||
|
||||
JNIEXPORT jobject JNICALL
|
||||
Java_app_organicmaps_editor_OpeningHours_nativeAddClosedSpan(JNIEnv * env, jclass clazz,
|
||||
Java_app_organicmaps_sdk_editor_OpeningHours_nativeAddClosedSpan(JNIEnv * env, jclass clazz,
|
||||
jobject jTimetable, jobject jClosedSpan)
|
||||
{
|
||||
TimeTable tt = NativeTimetable(env, jTimetable);
|
||||
@@ -288,7 +288,7 @@ Java_app_organicmaps_editor_OpeningHours_nativeAddClosedSpan(JNIEnv * env, jclas
|
||||
}
|
||||
|
||||
JNIEXPORT jobject JNICALL
|
||||
Java_app_organicmaps_editor_OpeningHours_nativeRemoveClosedSpan(JNIEnv * env, jclass clazz,
|
||||
Java_app_organicmaps_sdk_editor_OpeningHours_nativeRemoveClosedSpan(JNIEnv * env, jclass clazz,
|
||||
jobject jTimetable, jint jClosedSpanIndex)
|
||||
{
|
||||
TimeTable tt = NativeTimetable(env, jTimetable);
|
||||
@@ -297,7 +297,7 @@ Java_app_organicmaps_editor_OpeningHours_nativeRemoveClosedSpan(JNIEnv * env, jc
|
||||
}
|
||||
|
||||
JNIEXPORT jobjectArray JNICALL
|
||||
Java_app_organicmaps_editor_OpeningHours_nativeTimetablesFromString(JNIEnv * env, jclass clazz, jstring jSource)
|
||||
Java_app_organicmaps_sdk_editor_OpeningHours_nativeTimetablesFromString(JNIEnv * env, jclass clazz, jstring jSource)
|
||||
{
|
||||
TimeTableSet tts;
|
||||
std::string const source = jni::ToNativeString(env, jSource);
|
||||
@@ -308,7 +308,7 @@ Java_app_organicmaps_editor_OpeningHours_nativeTimetablesFromString(JNIEnv * env
|
||||
}
|
||||
|
||||
JNIEXPORT jstring JNICALL
|
||||
Java_app_organicmaps_editor_OpeningHours_nativeTimetablesToString(JNIEnv * env, jclass clazz, jobjectArray jTts)
|
||||
Java_app_organicmaps_sdk_editor_OpeningHours_nativeTimetablesToString(JNIEnv * env, jclass clazz, jobjectArray jTts)
|
||||
{
|
||||
TimeTableSet tts = NativeTimetableSet(env, jTts);
|
||||
std::stringstream sstr;
|
||||
@@ -317,8 +317,34 @@ Java_app_organicmaps_editor_OpeningHours_nativeTimetablesToString(JNIEnv * env,
|
||||
}
|
||||
|
||||
JNIEXPORT jboolean JNICALL
|
||||
Java_app_organicmaps_editor_OpeningHours_nativeIsTimetableStringValid(JNIEnv * env, jclass clazz, jstring jSource)
|
||||
Java_app_organicmaps_sdk_editor_OpeningHours_nativeIsTimetableStringValid(JNIEnv * env, jclass clazz, jstring jSource)
|
||||
{
|
||||
return OpeningHours(jni::ToNativeString(env, jSource)).IsValid();
|
||||
}
|
||||
|
||||
|
||||
JNIEXPORT jobject JNICALL
|
||||
Java_app_organicmaps_sdk_editor_OpeningHours_nativeCurrentState(JNIEnv * env, jclass clazz, jobjectArray jTts)
|
||||
{
|
||||
TimeTableSet tts = NativeTimetableSet(env, jTts);
|
||||
time_t const now = time(nullptr);
|
||||
|
||||
/// @todo We should check closed/open time for specific feature's timezone.
|
||||
OpeningHours::InfoT ohInfo = MakeOpeningHours(tts).GetInfo(now);
|
||||
jclass ohStateClass = jni::GetGlobalClassRef(env, "app/organicmaps/editor/OhState");
|
||||
jclass ruleStateClass = jni::GetGlobalClassRef(env, "app/organicmaps/editor/OhState$State");
|
||||
|
||||
static const std::unordered_map<RuleState, const char*> ruleState = {
|
||||
{RuleState::Open, "Open"},
|
||||
{RuleState::Closed, "Closed"},
|
||||
{RuleState::Unknown, "Unknown"}
|
||||
};
|
||||
|
||||
jfieldID stateField = env->GetStaticFieldID(ruleStateClass, ruleState.at(ohInfo.state), "Lapp/organicmaps/editor/OhState$State;");
|
||||
jobject stateObj = env->GetStaticObjectField(ruleStateClass, stateField);
|
||||
jmethodID constructor = env->GetMethodID(ohStateClass, "<init>", "(Lapp/organicmaps/editor/OhState$State;JJ)V");
|
||||
jobject javaOhState = env->NewObject(ohStateClass, constructor, stateObj, (jlong) ohInfo.nextTimeOpen, (jlong) ohInfo.nextTimeClosed);
|
||||
|
||||
return javaOhState;
|
||||
}
|
||||
} // extern "C"
|
||||
@@ -1,7 +1,7 @@
|
||||
#include <jni.h>
|
||||
|
||||
#include "app/organicmaps/core/jni_helper.hpp"
|
||||
#include "app/organicmaps/Framework.hpp"
|
||||
#include "app/organicmaps/sdk/core/jni_helper.hpp"
|
||||
#include "app/organicmaps/sdk/Framework.hpp"
|
||||
|
||||
#include "base/logging.hpp"
|
||||
#include "base/string_utils.hpp"
|
||||
@@ -17,17 +17,9 @@ using namespace jni;
|
||||
|
||||
bool LoadOsmUserPreferences(std::string const & oauthToken, UserPreferences & outPrefs)
|
||||
{
|
||||
try
|
||||
{
|
||||
ServerApi06 const api(OsmOAuth::ServerAuth(oauthToken));
|
||||
outPrefs = api.GetUserPreferences();
|
||||
return true;
|
||||
}
|
||||
catch (std::exception const & ex)
|
||||
{
|
||||
LOG(LWARNING, ("Can't load user preferences from server: ", ex.what()));
|
||||
}
|
||||
return false;
|
||||
ServerApi06 const api(OsmOAuth::ServerAuth(oauthToken));
|
||||
outPrefs = api.GetUserPreferences();
|
||||
return (outPrefs.m_id != 0);
|
||||
}
|
||||
} // namespace
|
||||
|
||||
@@ -35,14 +27,14 @@ extern "C"
|
||||
{
|
||||
|
||||
JNIEXPORT jstring JNICALL
|
||||
Java_app_organicmaps_editor_OsmOAuth_nativeGetOAuth2Url(JNIEnv * env, jclass)
|
||||
Java_app_organicmaps_sdk_editor_OsmOAuth_nativeGetOAuth2Url(JNIEnv * env, jclass)
|
||||
{
|
||||
auto const auth = OsmOAuth::ServerAuth();
|
||||
return ToJavaString(env, auth.BuildOAuth2Url());
|
||||
}
|
||||
|
||||
JNIEXPORT jstring JNICALL
|
||||
Java_app_organicmaps_editor_OsmOAuth_nativeAuthWithPassword(JNIEnv * env, jclass clazz,
|
||||
Java_app_organicmaps_sdk_editor_OsmOAuth_nativeAuthWithPassword(JNIEnv * env, jclass clazz,
|
||||
jstring login, jstring password)
|
||||
{
|
||||
OsmOAuth auth = OsmOAuth::ServerAuth();
|
||||
@@ -60,7 +52,7 @@ Java_app_organicmaps_editor_OsmOAuth_nativeAuthWithPassword(JNIEnv * env, jclass
|
||||
}
|
||||
|
||||
JNIEXPORT jstring JNICALL
|
||||
Java_app_organicmaps_editor_OsmOAuth_nativeAuthWithOAuth2Code(JNIEnv * env, jclass, jstring oauth2code)
|
||||
Java_app_organicmaps_sdk_editor_OsmOAuth_nativeAuthWithOAuth2Code(JNIEnv * env, jclass, jstring oauth2code)
|
||||
{
|
||||
OsmOAuth auth = OsmOAuth::ServerAuth();
|
||||
try
|
||||
@@ -81,7 +73,7 @@ Java_app_organicmaps_editor_OsmOAuth_nativeAuthWithOAuth2Code(JNIEnv * env, jcla
|
||||
}
|
||||
|
||||
JNIEXPORT jstring JNICALL
|
||||
Java_app_organicmaps_editor_OsmOAuth_nativeGetOsmUsername(JNIEnv * env, jclass, jstring oauthToken)
|
||||
Java_app_organicmaps_sdk_editor_OsmOAuth_nativeGetOsmUsername(JNIEnv * env, jclass, jstring oauthToken)
|
||||
{
|
||||
UserPreferences prefs;
|
||||
if (LoadOsmUserPreferences(jni::ToNativeString(env, oauthToken), prefs))
|
||||
@@ -90,7 +82,7 @@ Java_app_organicmaps_editor_OsmOAuth_nativeGetOsmUsername(JNIEnv * env, jclass,
|
||||
}
|
||||
|
||||
JNIEXPORT jint JNICALL
|
||||
Java_app_organicmaps_editor_OsmOAuth_nativeGetOsmChangesetsCount(JNIEnv * env, jclass, jstring oauthToken)
|
||||
Java_app_organicmaps_sdk_editor_OsmOAuth_nativeGetOsmChangesetsCount(JNIEnv * env, jclass, jstring oauthToken)
|
||||
{
|
||||
UserPreferences prefs;
|
||||
if (LoadOsmUserPreferences(jni::ToNativeString(env, oauthToken), prefs))
|
||||
@@ -99,7 +91,7 @@ Java_app_organicmaps_editor_OsmOAuth_nativeGetOsmChangesetsCount(JNIEnv * env, j
|
||||
}
|
||||
|
||||
JNIEXPORT jstring JNICALL
|
||||
Java_app_organicmaps_editor_OsmOAuth_nativeGetOsmProfilePictureUrl(JNIEnv * env, jclass, jstring oauthToken)
|
||||
Java_app_organicmaps_sdk_editor_OsmOAuth_nativeGetOsmProfilePictureUrl(JNIEnv * env, jclass, jstring oauthToken)
|
||||
{
|
||||
UserPreferences prefs;
|
||||
if (LoadOsmUserPreferences(jni::ToNativeString(env, oauthToken), prefs))
|
||||
@@ -108,13 +100,13 @@ Java_app_organicmaps_editor_OsmOAuth_nativeGetOsmProfilePictureUrl(JNIEnv * env,
|
||||
}
|
||||
|
||||
JNIEXPORT jstring JNICALL
|
||||
Java_app_organicmaps_editor_OsmOAuth_nativeGetHistoryUrl(JNIEnv * env, jclass, jstring user)
|
||||
Java_app_organicmaps_sdk_editor_OsmOAuth_nativeGetHistoryUrl(JNIEnv * env, jclass, jstring user)
|
||||
{
|
||||
return jni::ToJavaString(env, OsmOAuth::ServerAuth().GetHistoryURL(jni::ToNativeString(env, user)));
|
||||
}
|
||||
|
||||
JNIEXPORT jstring JNICALL
|
||||
Java_app_organicmaps_editor_OsmOAuth_nativeGetNotesUrl(JNIEnv * env, jclass, jstring user)
|
||||
Java_app_organicmaps_sdk_editor_OsmOAuth_nativeGetNotesUrl(JNIEnv * env, jclass, jstring user)
|
||||
{
|
||||
return jni::ToJavaString(env, OsmOAuth::ServerAuth().GetNotesURL(jni::ToNativeString(env, user)));
|
||||
}
|
||||
@@ -1,7 +1,7 @@
|
||||
#include <jni.h>
|
||||
#include "app/organicmaps/Framework.hpp"
|
||||
#include "app/organicmaps/core/jni_helper.hpp"
|
||||
#include "app/organicmaps/platform/AndroidPlatform.hpp"
|
||||
#include "app/organicmaps/sdk/Framework.hpp"
|
||||
#include "app/organicmaps/sdk/core/jni_helper.hpp"
|
||||
#include "app/organicmaps/sdk/platform/AndroidPlatform.hpp"
|
||||
|
||||
using namespace std::placeholders;
|
||||
|
||||
@@ -19,7 +19,7 @@ static void IsolinesStateChanged(IsolinesManager::IsolinesState state,
|
||||
|
||||
|
||||
JNIEXPORT void JNICALL
|
||||
Java_app_organicmaps_maplayer_isolines_IsolinesManager_nativeAddListener(JNIEnv *env, jclass clazz, jobject listener)
|
||||
Java_app_organicmaps_sdk_maplayer_isolines_IsolinesManager_nativeAddListener(JNIEnv *env, jclass clazz, jobject listener)
|
||||
{
|
||||
CHECK(g_framework, ("Framework isn't created yet!"));
|
||||
g_framework->SetIsolinesListener(std::bind(&IsolinesStateChanged,
|
||||
@@ -28,14 +28,14 @@ Java_app_organicmaps_maplayer_isolines_IsolinesManager_nativeAddListener(JNIEnv
|
||||
}
|
||||
|
||||
JNIEXPORT void JNICALL
|
||||
Java_app_organicmaps_maplayer_isolines_IsolinesManager_nativeRemoveListener(JNIEnv * env, jclass clazz)
|
||||
Java_app_organicmaps_sdk_maplayer_isolines_IsolinesManager_nativeRemoveListener(JNIEnv * env, jclass clazz)
|
||||
{
|
||||
CHECK(g_framework, ("Framework isn't created yet!"));
|
||||
g_framework->SetIsolinesListener(nullptr);
|
||||
}
|
||||
|
||||
JNIEXPORT jboolean JNICALL
|
||||
Java_app_organicmaps_maplayer_isolines_IsolinesManager_nativeShouldShowNotification(JNIEnv *env,
|
||||
Java_app_organicmaps_sdk_maplayer_isolines_IsolinesManager_nativeShouldShowNotification(JNIEnv *env,
|
||||
jclass clazz)
|
||||
{
|
||||
CHECK(g_framework, ("Framework isn't created yet!"));
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user