Compare commits

..

1 Commits

Author SHA1 Message Date
Konstantin Pastbin
1fe3526bf4 [fdroid] Release version 2025.06.30-22
Signed-off-by: Konstantin Pastbin <konstantin.pastbin@gmail.com>
2025-07-01 01:22:02 +07:00
1963 changed files with 92464 additions and 68265 deletions

4
.gitignore vendored
View File

@@ -27,10 +27,6 @@ data/edits.xml
data/World.mwm
data/WorldCoasts.mwm
# generated when running tests. NOT the lowercase 'testing' which should be kept.
Testing
!testing
# Compiled Python
*.pyc

View File

@@ -103,29 +103,12 @@ if (${CMAKE_BUILD_TYPE} STREQUAL "Debug")
elseif (${CMAKE_BUILD_TYPE} MATCHES "Rel")
add_definitions(-DRELEASE)
if (NOT MSVC)
add_compile_options(-Ofast $<$<CXX_COMPILER_ID:GNU>:-flto=auto>) # Also enables -ffast-math
add_compile_options(-Ofast) # 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)
@@ -259,10 +242,6 @@ 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()

View File

@@ -7,11 +7,9 @@ CoMaps contributors:
(in alphabetic order)
--------------------------------------------------------------------------------
Bastian Greshake Tzovaras
clover sage
Harry Bond <me@hbond.xyz>
vikiawv
Yannik Bloscheck
--------------------------------------------------------------------------------
Organic Maps (formerly OMaps) contributors:

163
README.md
View File

@@ -1,88 +1,62 @@
<!-- 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>
<!--<div align="center">
<img src="qt/res/logo.png" height="100"/>
</div>-->
<div align="center" >
<img src="docs/badges/logo.svg" width="150">
</div>
<!-- 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
[
![GitHub Actions Workflow Android Status](https://img.shields.io/github/actions/workflow/status/comaps/comaps/.github%2Fworkflows%2Fandroid-check.yaml?style=flat&label=Android%20Build&logo=android&logoColor=white)
](https://github.com/comaps/comaps/actions/workflows/android-check.yaml)
[
![GitHub Actions Workflow iOS Status](https://img.shields.io/github/actions/workflow/status/comaps/comaps/.github%2Fworkflows%2Fios-check.yaml?style=flat&label=iOS%20Build&logo=apple&logoColor=white)
](https://github.com/comaps/comaps/actions/workflows/ios-check.yaml)
[
![Donate via OpenCollective](https://img.shields.io/opencollective/all/comaps?logo=opencollective&color=blue&label=Open%20Collective%20Donors)
](https://opencollective.com/comaps)
[
![Donate via Liberapay](https://img.shields.io/liberapay/patrons/CoMaps.svg?logo=liberapay&label=Liberapay%20Patrons&color=efcc00&)
](https://liberapay.com/CoMaps)
<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.
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.
There are apps for Android and iOS (and ARM MacOS).
An alpha Linux / MacOS Qt desktop version, which is also suitable for Linux phones.
**Available for:** Android, iOS, ARM macOS, and alpha Linux/macOS desktop builds (also usable on Linux phones).
[<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)
<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">
<p float="left">
<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.
## ⚡️ Highlights
**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.
- **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
**Simple and Polished**: Essential, easy to use features that just work.
---
**Saves Your Battery and Space**: Doesnt drain your battery like other navigation apps. Compact maps save precious space on your phone.
## 🚀 Main Features
**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
- Downloadable detailed maps with places which are not available with Google Maps
@@ -112,52 +86,41 @@ A community-led free & open source maps app based on [OpenStreetMap](https://www
- Android Auto and CarPlay support
***Freedom Is Here Navigate the world with privacy and community at the forefront.***
*Freedom Is Here - Discover your journey, 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.
- 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!
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.
There is a dedicated Zulip chat for active contributors: [Zulip](https://comaps.zulipchat.com)
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: [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)
- **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 or request features on the [issue tracker](https://codeberg.org/comaps/comaps/issues)
- Report bugs and discuss features at [the issue tracker](https://codeberg.org/comaps/comaps/issues)
---
## How is development funded?
## 💸 Funding
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!
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
## 🔒 Privacy
The Android application was analysed by the [Exodus platform](https://reports.exodus-privacy.eu.org/fr/reports/app.comaps.google/latest/)
The Android app has been reviewed by [Exodus Privacy](https://reports.exodus-privacy.eu.org/en/reports/app.comaps.google/latest/).
## License and Copyright
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).
Licensed under the Apache License, Version 2.0. See
[LICENSE](LICENSE),
[NOTICE](NOTICE)
and [data/copyright.html](data/copyright.html)
for more information.

View File

@@ -1,4 +0,0 @@
<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>

Before

Width:  |  Height:  |  Size: 753 B

View File

@@ -65,29 +65,14 @@ 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 '28.2.13676358'
ndkVersion '27.2.12479018'
defaultConfig {
// Default package name is taken from the manifest and should be app.comaps

Binary file not shown.

After

Width:  |  Height:  |  Size: 34 KiB

View File

@@ -0,0 +1 @@
../../../../google/java/app/organicmaps/location

View File

@@ -1 +0,0 @@
../../../../../google/java/app/organicmaps/sdk/location

View File

@@ -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

View File

@@ -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

View File

@@ -1 +0,0 @@
Nem kortnavigation - Oplev mere af din rejse - Drevet af fællesskabet

View File

@@ -1 +0,0 @@
CoMaps - vandr, cykl og kør offline med privatliv

View File

@@ -1,4 +1,4 @@
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.
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.
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>Entdecke die Unabhängigkeit</b>
<b>Freiheit beginnt hier</b>
Entdecke deine Reise navigiere in der Welt mit Datenschutz!

View File

@@ -1,9 +1,6 @@
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
• 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

Binary file not shown.

Before

Width:  |  Height:  |  Size: 249 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 24 KiB

View File

@@ -1,10 +1,7 @@
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
• 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

View File

@@ -1,9 +1,6 @@
¡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
• 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

View File

@@ -1,7 +1,6 @@
Présentation du logo CoMaps !
Amélioration des courbes daltitude à 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 douverture lors de la sélection dun 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
• 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 laction active du bouton personnalisé dans le menu hamburger
Correction de certains plantages et bugs

View File

@@ -1 +1 @@
Navigation cartographique facile - Découvrez davantage de votre voyage - Propulsé par la communauté
Navigation facile - Découvrez plus lors de votre voyage - Fait par la communauté

View File

@@ -1,32 +0,0 @@
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!

View File

@@ -1 +0,0 @@
CoMaps - Túra, Bicikli, Vezetés offline diszkréten

View File

@@ -1,32 +0,0 @@
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!

View File

@@ -1 +0,0 @@
Eenvoudige kaartnavigatie - Ontdek meer van je reis - Gemaakt door de community

View File

@@ -1,9 +0,0 @@
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

View File

@@ -8,6 +8,7 @@ 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.

View File

@@ -1,9 +0,0 @@
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

View File

@@ -1,32 +1,55 @@
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!

View File

@@ -1 +0,0 @@
CoMaps - Drumeții, Ciclism, Condus Offline în confidențialitate

View File

@@ -1,6 +1,7 @@
Бесплатное и свободное картографическое приложение, основанное на данных OpenStreetMap и подкреплённое обязательствами по прозрачности, конфиденциальности и некоммерческой направленности. CoMaps — это ответвление от Organic Maps, которое, в свою очередь, является ответвлением от Maps.ME.
Подробнее о причинах проекта и его направлении читайте на сайте <b><i> codeberg.org/comaps </i><b>.
Подробнее о причинах проекта и его направлении читайте на <a href="https://codeberg.org/comaps">сайте</a>.
Присоединяйтесь к сообществу и помогите создать лучшее приложение с картами
• Используйте приложение и распространяйте информацию о нём
• Оставляйте отзывы и сообщайте о проблемах

View File

@@ -1,9 +1,6 @@
Представляем логотип CoMaps!
Линии высот для многих регионов с шагом 20м или 50м
Ссылки на изображения Panoramax к выбранным POI
Карты OpenStreetMap от 13 июля
Заливки цветом ко многим объектам и более ранняя заливка для существующих объектов
Показ часов работы при выборе POI
• Разные водно-болотные угодья отличаются цветом
• Обновлены цвета растительности и другие цвета на карте, изменены некоторые иконки
В стиле "Активный отдых" более четкие линии высот
• карты OpenStreetMap от 22 июня
автоматическое резервное копирование меток и треков
линии высот с шагом 100м для всех регионов, где линии с этим шагом отсутствовали
цветная заливка растительности и игровых площадок отображается раньше, добавлена заливка для кемпингов и других объектов
тропы и грунтовки отображаются позже в стиле по умолчанию - используйте стиль «Активный отдых» для обзора троп
выбранная функция настраиваемой кнопки больше не дублируется в пунктах меню

View File

@@ -1 +1 @@
Простая навигация по карте — Откройте больше за ваше путешествие От сообщества
Простая навигация по карте — Откройте больше за ваше путешествие. От сообщества

View File

@@ -1,17 +1,18 @@
Бесплатна апликација отвореног кода коју је обављала заједница и заснива се на О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>:
• Преузмите детаљне мапе са локацијама које нису доступне са Гоогле мапама

View File

@@ -1,9 +0,0 @@
Представљамо CoMaps лого!
• ажуриране изохипсе за многе регионе на кораке од 20 или 50 метара
• додате везе ка Panoramax сликама за изабране тачке интересовања (POI)
• подаци са OpenStreetMap-а од 13. јула
• додате боје за многе елементе и раније приказивање постојећих површина
• приказ стања радног времена при избору POI-ја
• мочваре подељене на неколико различитих типова
• ажуриране боје вегетације и других елемената на мапи, ажуриране поједине иконе
• на отвореном: наглашеније изохипсе

View File

@@ -1 +1 @@
Једноставна навигација - Сазнајте више о свом путовању - Ради на бази заједнице
Једноставна навигација - Сазнајте више о свом путовању - Покреће је заједница

View File

@@ -1 +1 @@
Kullanımı kolay harita - Yolculuğun ötesine geçin - topluluğun katkılarıyla
Kolayca gezinin - Seyahat etmenin ötesini bulun - Gönüllüler tarafından yapıldı

View File

@@ -1 +1 @@
CoMaps - Gizlilikle Yürüyün, Sürün, Gezin
CoMaps - İnternetsiz Seyahat Edin

View File

@@ -1 +0,0 @@
Định vị bản đồ dễ dàng - Khám phá thế giới quanh bạn - Đồng hành cùng cộng đồng

View File

@@ -1 +1 @@
version: 2025.03.02-7-FDroid+25030207
version: 2025.06.30-22-FDroid+25063022

View File

@@ -1,8 +1,8 @@
package app.organicmaps.sdk.location;
package app.organicmaps.location;
import static android.Manifest.permission.ACCESS_COARSE_LOCATION;
import static android.Manifest.permission.ACCESS_FINE_LOCATION;
import static app.organicmaps.sdk.util.concurrency.UiThread.runLater;
import static app.organicmaps.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.sdk.util.LocationUtils;
import app.organicmaps.sdk.util.log.Logger;
import app.organicmaps.util.LocationUtils;
import app.organicmaps.util.log.Logger;
class GoogleFusedLocationProvider extends BaseLocationProvider
{

View File

@@ -1,13 +1,12 @@
package app.organicmaps.sdk.location;
package app.organicmaps.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.sdk.util.Config;
import app.organicmaps.sdk.util.log.Logger;
import app.organicmaps.util.Config;
import app.organicmaps.util.log.Logger;
public class LocationProviderFactory
{

View File

@@ -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

View File

@@ -1 +0,0 @@
Nem kortnavigation - Oplev mere af din rejse - Drevet af fællesskabet

View File

@@ -1,4 +1,4 @@
Eine von der Community betriebene, kostenlose Open-Source Karten App, die auf OpenStreetMap-Daten basiert. Ein Gemeinschaftsprojekt mit Fokus auf Transparenz und non-profit.
Eine von der Community betriebene, kostenlose Open-Source Karten App, die auf OpenStreetMap-Daten basiert. Transparent, datensparsam und nicht gewinnorientiert.
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>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>Offline-orientiert</b>: Plane und navigiere im Ausland ohne Mobilfunkverbindung, finde Wegpunkte auf abgelegenen Wanderungen usw. Alle Funktionen sind für den Offline-Einsatz konzipiert.
‣ <b>Datenschutzfreundlich</b>: Die App wurde mit Fokus auf Privatsphäre entwickelt keine Personenidentifikation, kein Tracking, keine Erfassung persönlicher Daten, keine Werbung.
‣ <b>Spart Akku und Speicherplatz</b>: Verbraucht nicht unnötig Akku wie andere Navi-Apps. Kompakte Karten sparen Speicherplatz auf Deinem Gerät.
‣ <b>Kostenlos und von der Community entwickelt</b>: Menschen wie du haben geholfen, die App zu entwickeln durch das Hinzufügen von Orten zu OpenStreetMap, Testen von neuen Funktionen, 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>Entdecke die Unabhängigkeit</b>
<b>Freiheit beginnt hier</b>
Entdecke deine Reise navigiere in der Welt mit Datenschutz!

View File

@@ -0,0 +1 @@

View File

@@ -0,0 +1 @@

View File

@@ -1,35 +0,0 @@
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!

View File

@@ -1 +0,0 @@
Mapa nabigazio erraza - Ezagutu gehiago zure bidaiaz - Komunitatean egina

View File

@@ -1 +0,0 @@
Comaps - Pribatuki nabigatu

View File

@@ -1 +1 @@
Navigation cartographique facile - Propulsé par la communauté
Navigation facile - Découvrez plus lors de votre voyage - Fait par la communauté

View File

@@ -1,35 +0,0 @@
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!

View File

@@ -1 +0,0 @@
CoMaps -Navega con Privacidade

View File

@@ -1,36 +0,0 @@
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!

View File

@@ -1 +0,0 @@
CoMaps - Viaje com Privacidade

View File

@@ -1 +0,0 @@
CoMaps - Navighează liniștit

View File

@@ -1 +1 @@
Простая навигация по карте — Откройте больше за ваше путешествие От сообщества
Простая навигация по карте — Откройте больше за ваше путешествие. От сообщества

View File

@@ -1,6 +1,6 @@
Бесплатна апликација за мапе отвореног кода коју води заједница заснована на OpenStreetMap подацима и ојачана посвећеношћу транспарентности, приватности и непрофитности.
Придружите се заједници и помозите да направите најбољу навигацију
Придружите се заједници и помозите да направимо најбољу навигацију
• Користите апликацију и ширите информације о њој
• Оставите повратне информације и пријавите проблеме
• Ажурирајте мапе из апликације или на сајту OpenStreetMap
@@ -11,26 +11,26 @@
‣ <b>Офлајн фокусирана</b>: Планирајте путовање у иностранство без употребе мобилне телефоније, потражите правац тачке током дугог путовања, итд . Све функције апликације су дизајниране за рад у режиму без интернета.
‣ <b>Поштовање приватности</b>: Апликација је развијена с обзиром на приватност - не идентификује људе, не прати и не прикупља личне информације. Без реклама.
‣ <b>Штеди батерију и простор</b>: Не празни батерију, као остале навигациje. Компактне mape штедe драгоценi prostor на вашем телефону..
‣ <b>Бесплатно и изграђено од стране заједнице</b>: Људи попут вас помогли су у изради апликације додавањем места на OpenStreetMap, тестирањем и давањем повратних информација о функцијама и доприносом својим развојним вештинама и новцем.
‣ <b>Отворено и транспарентно доношење одлука и финансије, непрофитне и потпуно отвореног кода.</b>
‣ <b>Free and Built by the Community</b>: Такви људи, као што сте помогли да креирате апликацију, додајући места у OpenStreetMap, тестира и остављајући повратне информације о функцијама, као и стављајући своје вештине развоја и новац.
‣ <b>Отворено и транспарентно доношење одлука и финансија, непрофитни и потпуно отворени кода.</b>
<b>Главне карактеристике</b>:
<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>
Преузимање детаљне мапе са локацијама које нису доступне у 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
Подршка за Андроид Ауто
Молимо Вас да пријавите проблеме са апликацијом, предложите идеје и придружите се нашој заједници на <b><i>comaps.app</i></b> страни.
<b>Сад је слободно</b>
<b>Сад је слободна</b>
Откријте своје путовање, путујте светом с приватношћу и заједницом на челу!

View File

@@ -1 +1 @@
Једноставна навигација - Сазнајте више о свом путовању - Ради на бази заједнице
Једноставна навигација - Сазнајте више о свом путовању - Покреће је заједница

View File

@@ -1,36 +1,36 @@
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ı.
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ı.
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
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
<i>Geri bildirimleriniz ve 5 yıldızlı yorumlarınız bizim için en iyi destektir!</i>
‣ <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>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>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ı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
<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ı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
• Android Auto desteği
Lütfen <b><i>comaps.app</i></b> adresinden uygulama sorunlarını bildirin, önerilerinizi paylaşın ve topluluğumuza katılın.
Lütfen uygulama sorunlarını bildirin, fikir önerin ve <b><i>comaps.app</i></b> web sitesinde topluluğumuza katılın.
<b>Özgürlük Buradan Başlıyor</b>
Yolculuğunuzun ötesine geçin, gizlilik ve topluluğu ön planda tutarak dünyada gezinin!
<b>Özgürlük Burada</b>
Yolculuğunuzu keşfedin, gizlilik ve topluluk ön planda tutularak dünyayı keşfedin!

View File

@@ -1 +1 @@
Kullanımı kolay harita - Yolculuğun ötesine geçin - topluluğun katkılarıyla
Kolayca gezinin - Seyahat etmenin ötesini bulun - Gönüllüler tarafından yapıldı

View File

@@ -1,36 +0,0 @@
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!

View File

@@ -1 +0,0 @@
Định vị bản đồ dễ dàng - Khám phá thế giới quanh bạn - Đồng hành cùng cộng đồng

View File

@@ -1 +0,0 @@
CoMaps - Định vị riêng tư

View File

@@ -0,0 +1 @@
../../../../google/java/app/organicmaps/location

View File

@@ -1 +0,0 @@
../../../../../google/java/app/organicmaps/sdk/location

View File

@@ -20,9 +20,6 @@
<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" />

View File

@@ -5,21 +5,21 @@ project(organicmaps C CXX)
set(SRC
# JNI headers
../../../../../private.h
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
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
# 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/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
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
)
omim_add_library(${PROJECT_NAME} SHARED ${SRC})

View File

@@ -16,7 +16,7 @@
#include "base/logging.hpp"
#include "base/string_utils.hpp"
#include "app/organicmaps/sdk/core/jni_helper.hpp"
#include "app/organicmaps/core/jni_helper.hpp"
#include <functional>
#include <iostream>
@@ -70,7 +70,7 @@ extern "C"
}
JNIEXPORT jint JNICALL
Java_app_organicmaps_sdk_DownloadResourcesLegacyActivity_nativeGetBytesToDownload(JNIEnv * env, jclass clazz)
Java_app_organicmaps_DownloadResourcesLegacyActivity_nativeGetBytesToDownload(JNIEnv * env, jclass clazz)
{
// clear all
g_filesToDownload.clear();
@@ -149,7 +149,7 @@ extern "C"
}
JNIEXPORT jint JNICALL
Java_app_organicmaps_sdk_DownloadResourcesLegacyActivity_nativeStartNextFileDownload(JNIEnv * env, jclass clazz, jobject listener)
Java_app_organicmaps_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),
0, false));
512 * 1024, false));
});
return ERR_FILE_IN_PROGRESS;
}
JNIEXPORT void JNICALL
Java_app_organicmaps_sdk_DownloadResourcesLegacyActivity_nativeCancelCurrentFile(JNIEnv * env, jclass clazz)
Java_app_organicmaps_DownloadResourcesLegacyActivity_nativeCancelCurrentFile(JNIEnv * env, jclass clazz)
{
LOG(LDEBUG, ("cancelCurrentFile, currentRequest=", g_currentRequest));
g_currentRequest.reset();

View File

@@ -1,19 +1,19 @@
#include "app/organicmaps/sdk/Framework.hpp"
#include "app/organicmaps/Framework.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/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/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/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 "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 "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_sdk_Framework_nativeGetAddress(JNIEnv * env, jclass clazz, jdouble lat, jdouble lon)
Java_app_organicmaps_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_sdk_Framework_nativeClearApiPoints(JNIEnv * env, jclass clazz)
Java_app_organicmaps_Framework_nativeClearApiPoints(JNIEnv * env, jclass clazz)
{
frm()->GetBookmarkManager().GetEditSession().ClearGroup(UserMark::Type::API);
}
JNIEXPORT jint JNICALL
Java_app_organicmaps_sdk_Framework_nativeParseAndSetApiUrl(JNIEnv * env, jclass clazz, jstring url)
Java_app_organicmaps_Framework_nativeParseAndSetApiUrl(JNIEnv * env, jclass clazz, jstring url)
{
return static_cast<jint>(frm()->ParseAndSetApiURL(jni::ToNativeString(env, url)));
}
JNIEXPORT jobject JNICALL
Java_app_organicmaps_sdk_Framework_nativeGetParsedRoutingData(JNIEnv * env, jclass clazz)
Java_app_organicmaps_Framework_nativeGetParsedRoutingData(JNIEnv * env, jclass clazz)
{
using namespace url_scheme;
static jclass const pointClazz = jni::GetGlobalClassRef(env, "app/organicmaps/sdk/api/RoutePoint");
static jclass const pointClazz = jni::GetGlobalClassRef(env, "app/organicmaps/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/sdk/api/ParsedRoutingData");
static jclass const routeDataClazz = jni::GetGlobalClassRef(env, "app/organicmaps/api/ParsedRoutingData");
// Java signature : ParsedRoutingData(RoutePoint[] points, int routerType) {
static jmethodID const routeDataConstructor = jni::GetConstructorID(env, routeDataClazz, "([Lapp/organicmaps/sdk/api/RoutePoint;I)V");
static jmethodID const routeDataConstructor = jni::GetConstructorID(env, routeDataClazz, "([Lapp/organicmaps/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_sdk_Framework_nativeGetParsedRoutingData(JNIEnv * env, jcla
}
JNIEXPORT jobject JNICALL
Java_app_organicmaps_sdk_Framework_nativeGetParsedSearchRequest(JNIEnv * env, jclass clazz)
Java_app_organicmaps_Framework_nativeGetParsedSearchRequest(JNIEnv * env, jclass clazz)
{
using namespace url_scheme;
static jclass const cl = jni::GetGlobalClassRef(env, "app/organicmaps/sdk/api/ParsedSearchRequest");
static jclass const cl = jni::GetGlobalClassRef(env, "app/organicmaps/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_sdk_Framework_nativeGetParsedSearchRequest(JNIEnv * env, jc
}
JNIEXPORT jstring JNICALL
Java_app_organicmaps_sdk_Framework_nativeGetParsedAppName(JNIEnv * env, jclass)
Java_app_organicmaps_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_sdk_Framework_nativeGetParsedOAuth2Code(JNIEnv * env, jclass)
Java_app_organicmaps_Framework_nativeGetParsedOAuth2Code(JNIEnv * env, jclass)
{
std::string const & code = frm()->GetParsedOAuth2Code();
return jni::ToJavaString(env, code);
}
JNIEXPORT jstring JNICALL
Java_app_organicmaps_sdk_Framework_nativeGetParsedBackUrl(JNIEnv * env, jclass)
Java_app_organicmaps_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_sdk_Framework_nativeGetParsedCenterLatLon(JNIEnv * env, jclass)
Java_app_organicmaps_Framework_nativeGetParsedCenterLatLon(JNIEnv * env, jclass)
{
ms::LatLon const center = frm()->GetParsedCenterLatLon();
if (!center.IsValid())
@@ -915,14 +915,14 @@ Java_app_organicmaps_sdk_Framework_nativeGetParsedCenterLatLon(JNIEnv * env, jcl
}
JNIEXPORT void JNICALL
Java_app_organicmaps_sdk_Framework_nativePlacePageActivationListener(JNIEnv *env, jclass, jobject jListener)
Java_app_organicmaps_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/sdk/widget/placepage/PlacePageData;)V");
"(Lapp/organicmaps/widget/placepage/PlacePageData;)V");
// void onPlacePageDeactivated();
jmethodID const deactivateId = jni::GetMethodID(env, g_placePageActivationListener,
"onPlacePageDeactivated", "()V");
@@ -962,7 +962,7 @@ Java_app_organicmaps_sdk_Framework_nativePlacePageActivationListener(JNIEnv *env
}
JNIEXPORT void JNICALL
Java_app_organicmaps_sdk_Framework_nativeRemovePlacePageActivationListener(JNIEnv *env, jclass, jobject jListener)
Java_app_organicmaps_Framework_nativeRemovePlacePageActivationListener(JNIEnv *env, jclass, jobject jListener)
{
if (g_placePageActivationListener == nullptr)
return;
@@ -977,7 +977,7 @@ Java_app_organicmaps_sdk_Framework_nativeRemovePlacePageActivationListener(JNIEn
}
JNIEXPORT jstring JNICALL
Java_app_organicmaps_sdk_Framework_nativeGetGe0Url(JNIEnv * env, jclass, jdouble lat, jdouble lon, jdouble zoomLevel, jstring name)
Java_app_organicmaps_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_sdk_Framework_nativeGetGe0Url(JNIEnv * env, jclass, jdouble
}
JNIEXPORT jstring JNICALL
Java_app_organicmaps_sdk_Framework_nativeGetGeoUri(JNIEnv * env, jclass, jdouble lat, jdouble lon, jdouble zoomLevel, jstring name)
Java_app_organicmaps_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_sdk_Framework_nativeGetGeoUri(JNIEnv * env, jclass, jdouble
}
JNIEXPORT jobject JNICALL
Java_app_organicmaps_sdk_Framework_nativeGetDistanceAndAzimuth(
Java_app_organicmaps_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/sdk/bookmarks/data/DistanceAndAzimut");
static jclass const daClazz = jni::GetGlobalClassRef(env, "app/organicmaps/bookmarks/data/DistanceAndAzimut");
// Java signature : DistanceAndAzimut(Distance distance, double azimuth)
static jmethodID const methodID = jni::GetConstructorID(env, daClazz, "(Lapp/organicmaps/sdk/util/Distance;D)V");
static jmethodID const methodID = jni::GetConstructorID(env, daClazz, "(Lapp/organicmaps/util/Distance;D)V");
return env->NewObject(daClazz, methodID,
ToJavaDistance(env, distance),
@@ -1012,16 +1012,16 @@ Java_app_organicmaps_sdk_Framework_nativeGetDistanceAndAzimuth(
}
JNIEXPORT jobject JNICALL
Java_app_organicmaps_sdk_Framework_nativeGetDistanceAndAzimuthFromLatLon(
Java_app_organicmaps_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_sdk_Framework_nativeGetDistanceAndAzimuth(env, clazz, merX, merY, cLat, cLon, north);
return Java_app_organicmaps_Framework_nativeGetDistanceAndAzimuth(env, clazz, merX, merY, cLat, cLon, north);
}
JNIEXPORT jstring JNICALL
Java_app_organicmaps_sdk_Framework_nativeFormatLatLon(JNIEnv * env, jclass, jdouble lat, jdouble lon, int coordsFormat)
Java_app_organicmaps_Framework_nativeFormatLatLon(JNIEnv * env, jclass, jdouble lat, jdouble lon, int coordsFormat)
{
switch (static_cast<android::CoordinatesFormat>(coordsFormat))
{
@@ -1054,13 +1054,13 @@ Java_app_organicmaps_sdk_Framework_nativeFormatLatLon(JNIEnv * env, jclass, jdou
}
JNIEXPORT jstring JNICALL
Java_app_organicmaps_sdk_Framework_nativeFormatAltitude(JNIEnv * env, jclass, jdouble alt)
Java_app_organicmaps_Framework_nativeFormatAltitude(JNIEnv * env, jclass, jdouble alt)
{
return jni::ToJavaString(env, platform::Distance::FormatAltitude(alt));
}
JNIEXPORT jstring JNICALL
Java_app_organicmaps_sdk_Framework_nativeFormatSpeed(JNIEnv * env, jclass, jdouble speed)
Java_app_organicmaps_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_sdk_Framework_nativeFormatSpeed(JNIEnv * env, jclass, jdoub
/*
JNIEXPORT jobject JNICALL
Java_app_organicmaps_sdk_Framework_nativeGetOutdatedCountriesString(JNIEnv * env, jclass)
Java_app_organicmaps_Framework_nativeGetOutdatedCountriesString(JNIEnv * env, jclass)
{
return jni::ToJavaString(env, g_framework->GetOutdatedCountriesString());
}
JNIEXPORT jobjectArray JNICALL
Java_app_organicmaps_sdk_Framework_nativeGetOutdatedCountries(JNIEnv * env, jclass)
Java_app_organicmaps_Framework_nativeGetOutdatedCountries(JNIEnv * env, jclass)
{
vector<Country const *> countries;
Storage const & storage = g_framework->GetStorage();
@@ -1089,44 +1089,44 @@ Java_app_organicmaps_sdk_Framework_nativeGetOutdatedCountries(JNIEnv * env, jcla
}
JNIEXPORT jint JNICALL
Java_app_organicmaps_sdk_Framework_nativeToDoAfterUpdate(JNIEnv * env, jclass)
Java_app_organicmaps_Framework_nativeToDoAfterUpdate(JNIEnv * env, jclass)
{
return g_framework->ToDoAfterUpdate();
}
JNIEXPORT jboolean JNICALL
Java_app_organicmaps_sdk_Framework_nativeIsDataVersionChanged(JNIEnv * env, jclass)
Java_app_organicmaps_Framework_nativeIsDataVersionChanged(JNIEnv * env, jclass)
{
return frm()->IsDataVersionUpdated() ? JNI_TRUE : JNI_FALSE;
}
JNIEXPORT void JNICALL
Java_app_organicmaps_sdk_Framework_nativeUpdateSavedDataVersion(JNIEnv * env, jclass)
Java_app_organicmaps_Framework_nativeUpdateSavedDataVersion(JNIEnv * env, jclass)
{
frm()->UpdateSavedDataVersion();
}
*/
JNIEXPORT jlong JNICALL
Java_app_organicmaps_sdk_Framework_nativeGetDataVersion(JNIEnv * env, jclass)
Java_app_organicmaps_Framework_nativeGetDataVersion(JNIEnv * env, jclass)
{
return frm()->GetCurrentDataVersion();
}
JNIEXPORT jint JNICALL
Java_app_organicmaps_sdk_Framework_nativeGetDrawScale(JNIEnv * env, jclass)
Java_app_organicmaps_Framework_nativeGetDrawScale(JNIEnv * env, jclass)
{
return static_cast<jint>(frm()->GetDrawScale());
}
JNIEXPORT void JNICALL
Java_app_organicmaps_sdk_Framework_nativePokeSearchInViewport(JNIEnv * env, jclass)
Java_app_organicmaps_Framework_nativePokeSearchInViewport(JNIEnv * env, jclass)
{
frm()->GetSearchAPI().PokeSearchInViewport();
}
JNIEXPORT jdoubleArray JNICALL
Java_app_organicmaps_sdk_Framework_nativeGetScreenRectCenter(JNIEnv * env, jclass)
Java_app_organicmaps_Framework_nativeGetScreenRectCenter(JNIEnv * env, jclass)
{
m2::PointD const center = frm()->GetViewportCenter();
@@ -1138,43 +1138,43 @@ Java_app_organicmaps_sdk_Framework_nativeGetScreenRectCenter(JNIEnv * env, jclas
}
JNIEXPORT void JNICALL
Java_app_organicmaps_sdk_Framework_nativeShowTrackRect(JNIEnv * env, jclass, jlong track)
Java_app_organicmaps_Framework_nativeShowTrackRect(JNIEnv * env, jclass, jlong track)
{
frm()->ShowTrack(static_cast<kml::TrackId>(track));
}
JNIEXPORT void JNICALL
Java_app_organicmaps_sdk_Framework_nativeSaveRoute(JNIEnv *, jclass)
Java_app_organicmaps_Framework_nativeSaveRoute(JNIEnv *, jclass)
{
frm()->SaveRoute();
}
JNIEXPORT jstring JNICALL
Java_app_organicmaps_sdk_Framework_nativeGetBookmarkDir(JNIEnv * env, jclass)
Java_app_organicmaps_Framework_nativeGetBookmarkDir(JNIEnv * env, jclass)
{
return jni::ToJavaString(env, GetPlatform().SettingsDir().c_str());
}
JNIEXPORT jstring JNICALL
Java_app_organicmaps_sdk_Framework_nativeGetWritableDir(JNIEnv * env, jclass)
Java_app_organicmaps_Framework_nativeGetWritableDir(JNIEnv * env, jclass)
{
return jni::ToJavaString(env, GetPlatform().WritableDir().c_str());
}
JNIEXPORT jstring JNICALL
Java_app_organicmaps_sdk_Framework_nativeGetSettingsDir(JNIEnv * env, jclass)
Java_app_organicmaps_Framework_nativeGetSettingsDir(JNIEnv * env, jclass)
{
return jni::ToJavaString(env, GetPlatform().SettingsDir().c_str());
}
JNIEXPORT jstring JNICALL
Java_app_organicmaps_sdk_Framework_nativeGetDataFileExt(JNIEnv * env, jclass)
Java_app_organicmaps_Framework_nativeGetDataFileExt(JNIEnv * env, jclass)
{
return jni::ToJavaString(env, DATA_FILE_EXTENSION);
}
JNIEXPORT jobjectArray JNICALL
Java_app_organicmaps_sdk_Framework_nativeGetMovableFilesExts(JNIEnv * env, jclass)
Java_app_organicmaps_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_sdk_Framework_nativeGetMovableFilesExts(JNIEnv * env, jclas
}
JNIEXPORT jobjectArray JNICALL
Java_app_organicmaps_sdk_Framework_nativeGetBookmarksFilesExts(JNIEnv * env, jclass)
Java_app_organicmaps_Framework_nativeGetBookmarksFilesExts(JNIEnv * env, jclass)
{
static std::array<std::string, 4> const kBookmarkExtensions = {
std::string{kKmzExtension},
@@ -1195,7 +1195,7 @@ Java_app_organicmaps_sdk_Framework_nativeGetBookmarksFilesExts(JNIEnv * env, jcl
}
JNIEXPORT void JNICALL
Java_app_organicmaps_sdk_Framework_nativeChangeWritableDir(JNIEnv * env, jclass, jstring jNewPath)
Java_app_organicmaps_Framework_nativeChangeWritableDir(JNIEnv * env, jclass, jstring jNewPath)
{
string newPath = jni::ToNativeString(env, jNewPath);
g_framework->RemoveLocalMaps();
@@ -1204,55 +1204,55 @@ Java_app_organicmaps_sdk_Framework_nativeChangeWritableDir(JNIEnv * env, jclass,
}
JNIEXPORT jboolean JNICALL
Java_app_organicmaps_sdk_Framework_nativeIsRoutingActive(JNIEnv * env, jclass)
Java_app_organicmaps_Framework_nativeIsRoutingActive(JNIEnv * env, jclass)
{
return frm()->GetRoutingManager().IsRoutingActive();
}
JNIEXPORT jboolean JNICALL
Java_app_organicmaps_sdk_Framework_nativeIsRouteBuilding(JNIEnv * env, jclass)
Java_app_organicmaps_Framework_nativeIsRouteBuilding(JNIEnv * env, jclass)
{
return frm()->GetRoutingManager().IsRouteBuilding();
}
JNIEXPORT jboolean JNICALL
Java_app_organicmaps_sdk_Framework_nativeIsRouteBuilt(JNIEnv * env, jclass)
Java_app_organicmaps_Framework_nativeIsRouteBuilt(JNIEnv * env, jclass)
{
return frm()->GetRoutingManager().IsRouteBuilt();
}
JNIEXPORT void JNICALL
Java_app_organicmaps_sdk_Framework_nativeCloseRouting(JNIEnv * env, jclass)
Java_app_organicmaps_Framework_nativeCloseRouting(JNIEnv * env, jclass)
{
frm()->GetRoutingManager().CloseRouting(true /* remove route points */);
}
JNIEXPORT void JNICALL
Java_app_organicmaps_sdk_Framework_nativeBuildRoute(JNIEnv * env, jclass)
Java_app_organicmaps_Framework_nativeBuildRoute(JNIEnv * env, jclass)
{
frm()->GetRoutingManager().BuildRoute();
}
JNIEXPORT void JNICALL
Java_app_organicmaps_sdk_Framework_nativeRemoveRoute(JNIEnv * env, jclass)
Java_app_organicmaps_Framework_nativeRemoveRoute(JNIEnv * env, jclass)
{
frm()->GetRoutingManager().RemoveRoute(false /* deactivateFollowing */);
}
JNIEXPORT void JNICALL
Java_app_organicmaps_sdk_Framework_nativeFollowRoute(JNIEnv * env, jclass)
Java_app_organicmaps_Framework_nativeFollowRoute(JNIEnv * env, jclass)
{
frm()->GetRoutingManager().FollowRoute();
}
JNIEXPORT void JNICALL
Java_app_organicmaps_sdk_Framework_nativeDisableFollowing(JNIEnv * env, jclass)
Java_app_organicmaps_Framework_nativeDisableFollowing(JNIEnv * env, jclass)
{
frm()->GetRoutingManager().DisableFollowMode();
}
JNIEXPORT jobjectArray JNICALL
Java_app_organicmaps_sdk_Framework_nativeGenerateNotifications(JNIEnv * env, jclass, jboolean announceStreets)
Java_app_organicmaps_Framework_nativeGenerateNotifications(JNIEnv * env, jclass, jboolean announceStreets)
{
::Framework * fr = frm();
if (!fr->GetRoutingManager().IsRoutingActive())
@@ -1267,20 +1267,20 @@ Java_app_organicmaps_sdk_Framework_nativeGenerateNotifications(JNIEnv * env, jcl
}
JNIEXPORT void JNICALL
Java_app_organicmaps_sdk_Framework_nativeSetSpeedCamManagerMode(JNIEnv * env, jclass, jint mode)
Java_app_organicmaps_Framework_nativeSetSpeedCamManagerMode(JNIEnv * env, jclass, jint mode)
{
frm()->GetRoutingManager().GetSpeedCamManager().SetMode(
static_cast<routing::SpeedCameraManagerMode>(mode));
}
JNIEXPORT jint JNICALL
Java_app_organicmaps_sdk_Framework_nativeGetSpeedCamManagerMode(JNIEnv * env, jclass)
Java_app_organicmaps_Framework_nativeGetSpeedCamManagerMode(JNIEnv * env, jclass)
{
return static_cast<jint>(frm()->GetRoutingManager().GetSpeedCamManager().GetMode());
}
JNIEXPORT jobject JNICALL
Java_app_organicmaps_sdk_Framework_nativeGetRouteFollowingInfo(JNIEnv * env, jclass)
Java_app_organicmaps_Framework_nativeGetRouteFollowingInfo(JNIEnv * env, jclass)
{
RoutingManager & rm = frm()->GetRoutingManager();
if (!rm.IsRoutingActive())
@@ -1295,9 +1295,9 @@ Java_app_organicmaps_sdk_Framework_nativeGetRouteFollowingInfo(JNIEnv * env, jcl
}
JNIEXPORT jobjectArray JNICALL
Java_app_organicmaps_sdk_Framework_nativeGetRouteJunctionPoints(JNIEnv * env, jclass)
Java_app_organicmaps_Framework_nativeGetRouteJunctionPoints(JNIEnv * env, jclass)
{
vector<geometry::PointWithAltitude> junctionPoints;
vector<m2::PointD> junctionPoints;
if (!frm()->GetRoutingManager().RoutingSession().GetRouteJunctionPoints(junctionPoints))
{
LOG(LWARNING, ("Can't get the route junction points"));
@@ -1308,7 +1308,7 @@ Java_app_organicmaps_sdk_Framework_nativeGetRouteJunctionPoints(JNIEnv * env, jc
}
JNIEXPORT jintArray JNICALL
Java_app_organicmaps_sdk_Framework_nativeGenerateRouteAltitudeChartBits(JNIEnv * env, jclass, jint width, jint height, jobject routeAltitudeLimits)
Java_app_organicmaps_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_sdk_Framework_nativeGenerateRouteAltitudeChartBits(JNIEnv *
}
JNIEXPORT void JNICALL
Java_app_organicmaps_sdk_Framework_nativeShowCountry(JNIEnv * env, jclass, jstring countryId, jboolean zoomToDownloadButton)
Java_app_organicmaps_Framework_nativeShowCountry(JNIEnv * env, jclass, jstring countryId, jboolean zoomToDownloadButton)
{
g_framework->ShowNode(jni::ToNativeString(env, countryId), (bool) zoomToDownloadButton);
}
JNIEXPORT void JNICALL
Java_app_organicmaps_sdk_Framework_nativeSetRoutingListener(JNIEnv * env, jclass, jobject listener)
Java_app_organicmaps_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_sdk_Framework_nativeSetRoutingListener(JNIEnv * env, jclass
}
JNIEXPORT void JNICALL
Java_app_organicmaps_sdk_Framework_nativeSetRouteProgressListener(JNIEnv * env, jclass, jobject listener)
Java_app_organicmaps_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_sdk_Framework_nativeSetRouteProgressListener(JNIEnv * env,
}
JNIEXPORT void JNICALL
Java_app_organicmaps_sdk_Framework_nativeSetRoutingRecommendationListener(JNIEnv * env, jclass,
Java_app_organicmaps_Framework_nativeSetRoutingRecommendationListener(JNIEnv * env, jclass,
jobject listener)
{
CHECK(g_framework, ("Framework isn't created yet!"));
@@ -1431,7 +1431,7 @@ Java_app_organicmaps_sdk_Framework_nativeSetRoutingRecommendationListener(JNIEnv
}
JNIEXPORT void JNICALL
Java_app_organicmaps_sdk_Framework_nativeSetRoutingLoadPointsListener(
Java_app_organicmaps_Framework_nativeSetRoutingLoadPointsListener(
JNIEnv *, jclass, jobject listener)
{
CHECK(g_framework, ("Framework isn't created yet!"));
@@ -1442,19 +1442,19 @@ Java_app_organicmaps_sdk_Framework_nativeSetRoutingLoadPointsListener(
}
JNIEXPORT void JNICALL
Java_app_organicmaps_sdk_Framework_nativeDeactivatePopup(JNIEnv * env, jclass)
Java_app_organicmaps_Framework_nativeDeactivatePopup(JNIEnv * env, jclass)
{
return g_framework->DeactivatePopup();
}
JNIEXPORT void JNICALL
Java_app_organicmaps_sdk_Framework_nativeDeactivateMapSelectionCircle(JNIEnv * env, jclass)
Java_app_organicmaps_Framework_nativeDeactivateMapSelectionCircle(JNIEnv * env, jclass)
{
return g_framework->DeactivateMapSelectionCircle();
}
JNIEXPORT void JNICALL
Java_app_organicmaps_sdk_Framework_nativeAddRoutePoint(JNIEnv * env, jclass, jstring title,
Java_app_organicmaps_Framework_nativeAddRoutePoint(JNIEnv * env, jclass, jstring title,
jstring subtitle, jobject markType,
jint intermediateIndex,
jboolean isMyPosition,
@@ -1473,64 +1473,64 @@ Java_app_organicmaps_sdk_Framework_nativeAddRoutePoint(JNIEnv * env, jclass, jst
}
JNIEXPORT void JNICALL
Java_app_organicmaps_sdk_Framework_nativeRemoveRoutePoints(JNIEnv * env, jclass)
Java_app_organicmaps_Framework_nativeRemoveRoutePoints(JNIEnv * env, jclass)
{
frm()->GetRoutingManager().RemoveRoutePoints();
}
JNIEXPORT void JNICALL
Java_app_organicmaps_sdk_Framework_nativeRemoveRoutePoint(JNIEnv * env, jclass, jobject markType, jint intermediateIndex)
Java_app_organicmaps_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_sdk_Framework_nativeRemoveIntermediateRoutePoints(JNIEnv * env, jclass)
Java_app_organicmaps_Framework_nativeRemoveIntermediateRoutePoints(JNIEnv * env, jclass)
{
frm()->GetRoutingManager().RemoveIntermediateRoutePoints();
}
JNIEXPORT jboolean JNICALL
Java_app_organicmaps_sdk_Framework_nativeCouldAddIntermediatePoint(JNIEnv * env, jclass)
Java_app_organicmaps_Framework_nativeCouldAddIntermediatePoint(JNIEnv * env, jclass)
{
return frm()->GetRoutingManager().CouldAddIntermediatePoint();
}
JNIEXPORT jobjectArray JNICALL
Java_app_organicmaps_sdk_Framework_nativeGetRoutePoints(JNIEnv * env, jclass)
Java_app_organicmaps_Framework_nativeGetRoutePoints(JNIEnv * env, jclass)
{
return CreateRouteMarkDataArray(env, frm()->GetRoutingManager().GetRoutePoints());
}
JNIEXPORT void JNICALL
Java_app_organicmaps_sdk_Framework_nativeMoveRoutePoint(JNIEnv * env, jclass,
Java_app_organicmaps_Framework_nativeMoveRoutePoint(JNIEnv * env, jclass,
jint currentIndex, jint targetIndex)
{
frm()->GetRoutingManager().MoveRoutePoint(currentIndex, targetIndex);
}
JNIEXPORT jobject JNICALL
Java_app_organicmaps_sdk_Framework_nativeGetTransitRouteInfo(JNIEnv * env, jclass)
Java_app_organicmaps_Framework_nativeGetTransitRouteInfo(JNIEnv * env, jclass)
{
return CreateTransitRouteInfo(env, frm()->GetRoutingManager().GetTransitRouteInfo());
}
JNIEXPORT void JNICALL
Java_app_organicmaps_sdk_Framework_nativeReloadWorldMaps(JNIEnv * env, jclass)
Java_app_organicmaps_Framework_nativeReloadWorldMaps(JNIEnv * env, jclass)
{
g_framework->ReloadWorldMaps();
}
JNIEXPORT jboolean JNICALL
Java_app_organicmaps_sdk_Framework_nativeIsDayTime(JNIEnv * env, jclass, jlong utcTimeSeconds, jdouble lat, jdouble lon)
Java_app_organicmaps_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_sdk_Framework_nativeSet3dMode(JNIEnv * env, jclass, jboolean allow, jboolean allowBuildings)
Java_app_organicmaps_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_sdk_Framework_nativeSet3dMode(JNIEnv * env, jclass, jboolea
}
JNIEXPORT void JNICALL
Java_app_organicmaps_sdk_Framework_nativeGet3dMode(JNIEnv * env, jclass, jobject result)
Java_app_organicmaps_Framework_nativeGet3dMode(JNIEnv * env, jclass, jobject result)
{
bool enabled;
bool buildings;
@@ -1556,7 +1556,7 @@ Java_app_organicmaps_sdk_Framework_nativeGet3dMode(JNIEnv * env, jclass, jobject
}
JNIEXPORT void JNICALL
Java_app_organicmaps_sdk_Framework_nativeSetAutoZoomEnabled(JNIEnv * env, jclass, jboolean enabled)
Java_app_organicmaps_Framework_nativeSetAutoZoomEnabled(JNIEnv * env, jclass, jboolean enabled)
{
bool const autoZoomEnabled = static_cast<bool>(enabled);
frm()->SaveAutoZoom(autoZoomEnabled);
@@ -1564,19 +1564,19 @@ Java_app_organicmaps_sdk_Framework_nativeSetAutoZoomEnabled(JNIEnv * env, jclass
}
JNIEXPORT void JNICALL
Java_app_organicmaps_sdk_Framework_nativeSetTransitSchemeEnabled(JNIEnv * env, jclass, jboolean enabled)
Java_app_organicmaps_Framework_nativeSetTransitSchemeEnabled(JNIEnv * env, jclass, jboolean enabled)
{
frm()->GetTransitManager().EnableTransitSchemeMode(static_cast<bool>(enabled));
}
JNIEXPORT jboolean JNICALL
Java_app_organicmaps_sdk_Framework_nativeIsTransitSchemeEnabled(JNIEnv * env, jclass)
Java_app_organicmaps_Framework_nativeIsTransitSchemeEnabled(JNIEnv * env, jclass)
{
return static_cast<jboolean>(frm()->LoadTransitSchemeEnabled());
}
JNIEXPORT void JNICALL
Java_app_organicmaps_sdk_Framework_nativeSetIsolinesLayerEnabled(JNIEnv * env, jclass, jboolean enabled)
Java_app_organicmaps_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_sdk_Framework_nativeSetIsolinesLayerEnabled(JNIEnv * env, j
}
JNIEXPORT jboolean JNICALL
Java_app_organicmaps_sdk_Framework_nativeIsIsolinesLayerEnabled(JNIEnv * env, jclass)
Java_app_organicmaps_Framework_nativeIsIsolinesLayerEnabled(JNIEnv * env, jclass)
{
return static_cast<jboolean>(frm()->LoadIsolinesEnabled());
}
JNIEXPORT void JNICALL
Java_app_organicmaps_sdk_Framework_nativeSetOutdoorsLayerEnabled(JNIEnv * env, jclass, jboolean enabled)
Java_app_organicmaps_Framework_nativeSetOutdoorsLayerEnabled(JNIEnv * env, jclass, jboolean enabled)
{
frm()->SaveOutdoorsEnabled(enabled);
}
JNIEXPORT jboolean JNICALL
Java_app_organicmaps_sdk_Framework_nativeIsOutdoorsLayerEnabled(JNIEnv * env, jclass)
Java_app_organicmaps_Framework_nativeIsOutdoorsLayerEnabled(JNIEnv * env, jclass)
{
return static_cast<jboolean>(frm()->LoadOutdoorsEnabled());
}
JNIEXPORT void JNICALL
Java_app_organicmaps_sdk_Framework_nativeSaveSettingSchemeEnabled(JNIEnv * env, jclass, jboolean enabled)
Java_app_organicmaps_Framework_nativeSaveSettingSchemeEnabled(JNIEnv * env, jclass, jboolean enabled)
{
frm()->SaveTransitSchemeEnabled(static_cast<bool>(enabled));
}
JNIEXPORT jboolean JNICALL
Java_app_organicmaps_sdk_Framework_nativeGetAutoZoomEnabled(JNIEnv *, jclass)
Java_app_organicmaps_Framework_nativeGetAutoZoomEnabled(JNIEnv *, jclass)
{
return frm()->LoadAutoZoom();
}
// static void nativeZoomToPoint(double lat, double lon, int zoom, boolean animate);
JNIEXPORT void JNICALL
Java_app_organicmaps_sdk_Framework_nativeZoomToPoint(JNIEnv * env, jclass, jdouble lat, jdouble lon, jint zoom, jboolean animate)
Java_app_organicmaps_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_sdk_Framework_nativeDeleteBookmarkFromMapObject(JNIEnv * env, jclass)
Java_app_organicmaps_Framework_nativeDeleteBookmarkFromMapObject(JNIEnv * env, jclass)
{
if (!frm()->HasPlacePageInfo())
return nullptr;
@@ -1640,7 +1640,7 @@ Java_app_organicmaps_sdk_Framework_nativeDeleteBookmarkFromMapObject(JNIEnv * en
}
JNIEXPORT jstring JNICALL
Java_app_organicmaps_sdk_Framework_nativeGetPoiContactUrl(JNIEnv *env, jclass, jint id)
Java_app_organicmaps_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_sdk_Framework_nativeGetPoiContactUrl(JNIEnv *env, jclass, j
}
JNIEXPORT jboolean JNICALL
Java_app_organicmaps_sdk_Framework_nativeIsDownloadedMapAtScreenCenter(JNIEnv *, jclass)
Java_app_organicmaps_Framework_nativeIsDownloadedMapAtScreenCenter(JNIEnv *, jclass)
{
::Framework * fr = frm();
return storage::IsPointCoveredByDownloadedMaps(fr->GetViewportCenter(), fr->GetStorage(), fr->GetCountryInfoGetter());
}
JNIEXPORT jstring JNICALL
Java_app_organicmaps_sdk_Framework_nativeGetActiveObjectFormattedCuisine(JNIEnv * env, jclass)
Java_app_organicmaps_Framework_nativeGetActiveObjectFormattedCuisine(JNIEnv * env, jclass)
{
::Framework * frm = g_framework->NativeFramework();
if (!frm->HasPlacePageInfo())
@@ -1667,75 +1667,75 @@ Java_app_organicmaps_sdk_Framework_nativeGetActiveObjectFormattedCuisine(JNIEnv
}
JNIEXPORT void JNICALL
Java_app_organicmaps_sdk_Framework_nativeSetVisibleRect(JNIEnv * env, jclass, jint left, jint top, jint right, jint bottom)
Java_app_organicmaps_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_sdk_Framework_nativeIsRouteFinished(JNIEnv * env, jclass)
Java_app_organicmaps_Framework_nativeIsRouteFinished(JNIEnv * env, jclass)
{
return frm()->GetRoutingManager().IsRouteFinished();
}
JNIEXPORT void JNICALL
Java_app_organicmaps_sdk_Framework_nativeRunFirstLaunchAnimation(JNIEnv * env, jclass)
Java_app_organicmaps_Framework_nativeRunFirstLaunchAnimation(JNIEnv * env, jclass)
{
frm()->RunFirstLaunchAnimation();
}
JNIEXPORT jint JNICALL
Java_app_organicmaps_sdk_Framework_nativeOpenRoutePointsTransaction(JNIEnv * env, jclass)
Java_app_organicmaps_Framework_nativeOpenRoutePointsTransaction(JNIEnv * env, jclass)
{
return frm()->GetRoutingManager().OpenRoutePointsTransaction();
}
JNIEXPORT void JNICALL
Java_app_organicmaps_sdk_Framework_nativeApplyRoutePointsTransaction(JNIEnv * env, jclass,
Java_app_organicmaps_Framework_nativeApplyRoutePointsTransaction(JNIEnv * env, jclass,
jint transactionId)
{
frm()->GetRoutingManager().ApplyRoutePointsTransaction(transactionId);
}
JNIEXPORT void JNICALL
Java_app_organicmaps_sdk_Framework_nativeCancelRoutePointsTransaction(JNIEnv * env, jclass,
Java_app_organicmaps_Framework_nativeCancelRoutePointsTransaction(JNIEnv * env, jclass,
jint transactionId)
{
frm()->GetRoutingManager().CancelRoutePointsTransaction(transactionId);
}
JNIEXPORT jint JNICALL
Java_app_organicmaps_sdk_Framework_nativeInvalidRoutePointsTransactionId(JNIEnv * env, jclass)
Java_app_organicmaps_Framework_nativeInvalidRoutePointsTransactionId(JNIEnv * env, jclass)
{
return frm()->GetRoutingManager().InvalidRoutePointsTransactionId();
}
JNIEXPORT jboolean JNICALL
Java_app_organicmaps_sdk_Framework_nativeHasSavedRoutePoints(JNIEnv *, jclass)
Java_app_organicmaps_Framework_nativeHasSavedRoutePoints(JNIEnv *, jclass)
{
return frm()->GetRoutingManager().HasSavedRoutePoints();
}
JNIEXPORT void JNICALL
Java_app_organicmaps_sdk_Framework_nativeLoadRoutePoints(JNIEnv *, jclass)
Java_app_organicmaps_Framework_nativeLoadRoutePoints(JNIEnv *, jclass)
{
frm()->GetRoutingManager().LoadRoutePoints(g_loadRouteHandler);
}
JNIEXPORT void JNICALL
Java_app_organicmaps_sdk_Framework_nativeSaveRoutePoints(JNIEnv *, jclass)
Java_app_organicmaps_Framework_nativeSaveRoutePoints(JNIEnv *, jclass)
{
frm()->GetRoutingManager().SaveRoutePoints();
}
JNIEXPORT void JNICALL
Java_app_organicmaps_sdk_Framework_nativeDeleteSavedRoutePoints(JNIEnv *, jclass)
Java_app_organicmaps_Framework_nativeDeleteSavedRoutePoints(JNIEnv *, jclass)
{
frm()->GetRoutingManager().DeleteSavedRoutePoints();
}
JNIEXPORT void JNICALL
Java_app_organicmaps_sdk_Framework_nativeShowFeature(JNIEnv * env, jclass, jobject featureId)
Java_app_organicmaps_Framework_nativeShowFeature(JNIEnv * env, jclass, jobject featureId)
{
auto const f = g_framework->BuildFeatureId(env, featureId);
@@ -1744,13 +1744,13 @@ Java_app_organicmaps_sdk_Framework_nativeShowFeature(JNIEnv * env, jclass, jobje
}
JNIEXPORT void JNICALL
Java_app_organicmaps_sdk_Framework_nativeMakeCrash(JNIEnv *env, jclass type)
Java_app_organicmaps_Framework_nativeMakeCrash(JNIEnv *env, jclass type)
{
CHECK(false, ("Diagnostic native crash!"));
}
JNIEXPORT void JNICALL
Java_app_organicmaps_sdk_Framework_nativeSetPowerManagerFacility(JNIEnv *, jclass,
Java_app_organicmaps_Framework_nativeSetPowerManagerFacility(JNIEnv *, jclass,
jint facilityType, jboolean state)
{
frm()->GetPowerManager().SetFacility(static_cast<power_management::Facility>(facilityType),
@@ -1758,32 +1758,32 @@ Java_app_organicmaps_sdk_Framework_nativeSetPowerManagerFacility(JNIEnv *, jclas
}
JNIEXPORT jint JNICALL
Java_app_organicmaps_sdk_Framework_nativeGetPowerManagerScheme(JNIEnv *, jclass)
Java_app_organicmaps_Framework_nativeGetPowerManagerScheme(JNIEnv *, jclass)
{
return static_cast<jint>(frm()->GetPowerManager().GetScheme());
}
JNIEXPORT void JNICALL
Java_app_organicmaps_sdk_Framework_nativeSetPowerManagerScheme(JNIEnv *, jclass, jint schemeType)
Java_app_organicmaps_Framework_nativeSetPowerManagerScheme(JNIEnv *, jclass, jint schemeType)
{
frm()->GetPowerManager().SetScheme(static_cast<power_management::Scheme>(schemeType));
}
JNIEXPORT void JNICALL
Java_app_organicmaps_sdk_Framework_nativeSetViewportCenter(JNIEnv *, jclass, jdouble lat, jdouble lon, jint zoom)
Java_app_organicmaps_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_sdk_Framework_nativeStopLocationFollow(JNIEnv *, jclass)
Java_app_organicmaps_Framework_nativeStopLocationFollow(JNIEnv *, jclass)
{
frm()->StopLocationFollow();
}
JNIEXPORT void JNICALL
Java_app_organicmaps_sdk_Framework_nativeSetSearchViewport(JNIEnv *, jclass, jdouble lat,
Java_app_organicmaps_Framework_nativeSetSearchViewport(JNIEnv *, jclass, jdouble lat,
jdouble lon, jint zoom)
{
auto const center = mercator::FromLatLon(static_cast<double>(lat),
@@ -1793,15 +1793,85 @@ Java_app_organicmaps_sdk_Framework_nativeSetSearchViewport(JNIEnv *, jclass, jdo
}
JNIEXPORT jboolean JNICALL
Java_app_organicmaps_sdk_Framework_nativeHasPlacePageInfo(JNIEnv *, jclass)
Java_app_organicmaps_Framework_nativeHasPlacePageInfo(JNIEnv *, jclass)
{
return static_cast<jboolean>(frm()->HasPlacePageInfo());
}
JNIEXPORT void JNICALL
Java_app_organicmaps_sdk_Framework_nativeMemoryWarning(JNIEnv *, jclass)
Java_app_organicmaps_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"

View File

@@ -1,9 +1,9 @@
#include "Framework.hpp"
#include "map/gps_tracker.hpp"
#include "app/organicmaps/sdk/core/jni_helper.hpp"
#include "app/organicmaps/core/jni_helper.hpp"
#include "app/organicmaps/sdk/platform/AndroidPlatform.hpp"
#include "app/organicmaps/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_sdk_location_LocationState_nativeSwitchToNextMode(JNIEnv * env, jclass clazz)
Java_app_organicmaps_location_LocationState_nativeSwitchToNextMode(JNIEnv * env, jclass clazz)
{
ASSERT(g_framework, ());
g_framework->SwitchMyPositionNextMode();
@@ -26,7 +26,7 @@ Java_app_organicmaps_sdk_location_LocationState_nativeSwitchToNextMode(JNIEnv *
// private static int nativeGetMode();
JNIEXPORT jint JNICALL
Java_app_organicmaps_sdk_location_LocationState_nativeGetMode(JNIEnv * env, jclass clazz)
Java_app_organicmaps_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_sdk_location_LocationState_nativeGetMode(JNIEnv * env, jcla
// public static void nativeSetListener(ModeChangeListener listener);
JNIEXPORT void JNICALL
Java_app_organicmaps_sdk_location_LocationState_nativeSetListener(JNIEnv * env, jclass clazz,
Java_app_organicmaps_location_LocationState_nativeSetListener(JNIEnv * env, jclass clazz,
jobject listener)
{
ASSERT(g_framework, ());
@@ -46,21 +46,21 @@ Java_app_organicmaps_sdk_location_LocationState_nativeSetListener(JNIEnv * env,
// public static void nativeRemoveListener();
JNIEXPORT void JNICALL
Java_app_organicmaps_sdk_location_LocationState_nativeRemoveListener(JNIEnv * env, jclass clazz)
Java_app_organicmaps_location_LocationState_nativeRemoveListener(JNIEnv * env, jclass clazz)
{
ASSERT(g_framework, ());
g_framework->SetMyPositionModeListener(location::TMyPositionModeChanged());
}
JNIEXPORT void JNICALL
Java_app_organicmaps_sdk_location_LocationState_nativeOnLocationError(JNIEnv * env, jclass clazz, int errorCode)
Java_app_organicmaps_location_LocationState_nativeOnLocationError(JNIEnv * env, jclass clazz, int errorCode)
{
ASSERT(g_framework, ());
g_framework->OnLocationError(errorCode);
}
JNIEXPORT void JNICALL
Java_app_organicmaps_sdk_location_LocationState_nativeLocationUpdated(JNIEnv * env, jclass clazz, jlong time,
Java_app_organicmaps_location_LocationState_nativeLocationUpdated(JNIEnv * env, jclass clazz, jlong time,
jdouble lat, jdouble lon, jfloat accuracy,
jdouble altitude, jfloat speed, jfloat bearing)
{

View File

@@ -1,8 +1,8 @@
#include "Framework.hpp"
#include "app/organicmaps/sdk/core/jni_helper.hpp"
#include "app/organicmaps/core/jni_helper.hpp"
#include "app/organicmaps/sdk/platform/AndroidPlatform.hpp"
#include "app/organicmaps/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_sdk_Map_nativeCreateEngine(JNIEnv * env, jclass,
Java_app_organicmaps_Map_nativeCreateEngine(JNIEnv * env, jclass,
jobject surface, jint density,
jboolean firstLaunch,
jboolean isLaunchByDeepLink,
@@ -35,25 +35,25 @@ Java_app_organicmaps_sdk_Map_nativeCreateEngine(JNIEnv * env, jclass,
}
JNIEXPORT jboolean JNICALL
Java_app_organicmaps_sdk_Map_nativeIsEngineCreated(JNIEnv *, jclass)
Java_app_organicmaps_Map_nativeIsEngineCreated(JNIEnv *, jclass)
{
return g_framework->IsDrapeEngineCreated();
}
JNIEXPORT void JNICALL
Java_app_organicmaps_sdk_Map_nativeUpdateEngineDpi(JNIEnv *, jclass, jint dpi)
Java_app_organicmaps_Map_nativeUpdateEngineDpi(JNIEnv *, jclass, jint dpi)
{
return g_framework->UpdateDpi(dpi);
}
JNIEXPORT void JNICALL
Java_app_organicmaps_sdk_Map_nativeExecuteMapApiRequest(JNIEnv * env, jclass)
Java_app_organicmaps_Map_nativeExecuteMapApiRequest(JNIEnv * env, jclass)
{
return g_framework->ExecuteMapApiRequest();
}
JNIEXPORT void JNICALL
Java_app_organicmaps_sdk_Map_nativeSetRenderingInitializationFinishedListener(
Java_app_organicmaps_Map_nativeSetRenderingInitializationFinishedListener(
JNIEnv *, jclass, jobject listener)
{
if (listener)
@@ -68,68 +68,68 @@ Java_app_organicmaps_sdk_Map_nativeSetRenderingInitializationFinishedListener(
}
JNIEXPORT jboolean JNICALL
Java_app_organicmaps_sdk_Map_nativeAttachSurface(JNIEnv * env, jclass, jobject surface)
Java_app_organicmaps_Map_nativeAttachSurface(JNIEnv * env, jclass, jobject surface)
{
return g_framework->AttachSurface(env, surface);
}
JNIEXPORT void JNICALL
Java_app_organicmaps_sdk_Map_nativeDetachSurface(JNIEnv *, jclass, jboolean destroySurface)
Java_app_organicmaps_Map_nativeDetachSurface(JNIEnv *, jclass, jboolean destroySurface)
{
g_framework->DetachSurface(destroySurface);
}
JNIEXPORT void JNICALL
Java_app_organicmaps_sdk_Map_nativeSurfaceChanged(JNIEnv * env, jclass, jobject surface, jint w, jint h)
Java_app_organicmaps_Map_nativeSurfaceChanged(JNIEnv * env, jclass, jobject surface, jint w, jint h)
{
g_framework->Resize(env, surface, w, h);
}
JNIEXPORT jboolean JNICALL
Java_app_organicmaps_sdk_Map_nativeDestroySurfaceOnDetach(JNIEnv *, jclass)
Java_app_organicmaps_Map_nativeDestroySurfaceOnDetach(JNIEnv *, jclass)
{
return g_framework->DestroySurfaceOnDetach();
}
JNIEXPORT void JNICALL
Java_app_organicmaps_sdk_Map_nativePauseSurfaceRendering(JNIEnv *, jclass)
Java_app_organicmaps_Map_nativePauseSurfaceRendering(JNIEnv *, jclass)
{
g_framework->PauseSurfaceRendering();
}
JNIEXPORT void JNICALL
Java_app_organicmaps_sdk_Map_nativeResumeSurfaceRendering(JNIEnv *, jclass)
Java_app_organicmaps_Map_nativeResumeSurfaceRendering(JNIEnv *, jclass)
{
g_framework->ResumeSurfaceRendering();
}
JNIEXPORT void JNICALL
Java_app_organicmaps_sdk_Map_nativeUpdateMyPositionRoutingOffset(JNIEnv * env, jclass clazz, int offsetY)
Java_app_organicmaps_Map_nativeUpdateMyPositionRoutingOffset(JNIEnv * env, jclass clazz, int offsetY)
{
g_framework->UpdateMyPositionRoutingOffset(offsetY);
}
JNIEXPORT void JNICALL
Java_app_organicmaps_sdk_Map_nativeApplyWidgets(JNIEnv *, jclass)
Java_app_organicmaps_Map_nativeApplyWidgets(JNIEnv *, jclass)
{
g_framework->ApplyWidgets();
}
JNIEXPORT void JNICALL
Java_app_organicmaps_sdk_Map_nativeCleanWidgets(JNIEnv *, jclass)
Java_app_organicmaps_Map_nativeCleanWidgets(JNIEnv *, jclass)
{
g_framework->CleanWidgets();
}
JNIEXPORT void JNICALL
Java_app_organicmaps_sdk_Map_nativeSetupWidget(
Java_app_organicmaps_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_sdk_Map_nativeCompassUpdated(JNIEnv *, jclass, jdouble north, jboolean forceRedraw)
Java_app_organicmaps_Map_nativeCompassUpdated(JNIEnv *, jclass, jdouble north, jboolean forceRedraw)
{
location::CompassInfo info;
info.m_bearing = north;
@@ -138,33 +138,33 @@ Java_app_organicmaps_sdk_Map_nativeCompassUpdated(JNIEnv *, jclass, jdouble nort
}
JNIEXPORT void JNICALL
Java_app_organicmaps_sdk_Map_nativeScalePlus(JNIEnv *, jclass)
Java_app_organicmaps_Map_nativeScalePlus(JNIEnv *, jclass)
{
g_framework->Scale(::Framework::SCALE_MAG);
}
JNIEXPORT void JNICALL
Java_app_organicmaps_sdk_Map_nativeScaleMinus(JNIEnv *, jclass)
Java_app_organicmaps_Map_nativeScaleMinus(JNIEnv *, jclass)
{
g_framework->Scale(::Framework::SCALE_MIN);
}
JNIEXPORT void JNICALL
Java_app_organicmaps_sdk_Map_nativeOnScroll(
Java_app_organicmaps_Map_nativeOnScroll(
JNIEnv *, jclass, jdouble distanceX, jdouble distanceY)
{
g_framework->Scroll(distanceX, distanceY);
}
JNIEXPORT void JNICALL
Java_app_organicmaps_sdk_Map_nativeOnScale(
Java_app_organicmaps_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_sdk_Map_nativeOnTouch(JNIEnv *, jclass, jint action,
Java_app_organicmaps_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_sdk_Map_nativeOnTouch(JNIEnv *, jclass, jint action,
}
JNIEXPORT void JNICALL
Java_app_organicmaps_sdk_Map_nativeStorageConnected(JNIEnv *, jclass)
Java_app_organicmaps_Map_nativeStorageConnected(JNIEnv *, jclass)
{
android::Platform::Instance().OnExternalStorageStatusChanged(true);
g_framework->AddLocalMaps();
}
JNIEXPORT void JNICALL
Java_app_organicmaps_sdk_Map_nativeStorageDisconnected(JNIEnv *, jclass)
Java_app_organicmaps_Map_nativeStorageDisconnected(JNIEnv *, jclass)
{
android::Platform::Instance().OnExternalStorageStatusChanged(false);
g_framework->RemoveLocalMaps();

View File

@@ -1,7 +1,7 @@
#include "Framework.hpp"
#include "app/organicmaps/sdk/core/jni_helper.hpp"
#include "app/organicmaps/sdk/core/jni_java_methods.hpp"
#include "app/organicmaps/core/jni_helper.hpp"
#include "app/organicmaps/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/sdk/downloader/CountryItem");
m_class = jni::GetGlobalClassRef(env, "app/organicmaps/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_sdk_downloader_MapManager_nativeGetRoot(JNIEnv * env, jclass clazz)
Java_app_organicmaps_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_sdk_downloader_MapManager_nativeMoveFile(JNIEnv * env, jclass clazz, jstring oldFile, jstring newFile)
Java_app_organicmaps_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_sdk_downloader_MapManager_nativeHasSpaceToDownloadAmount(JNIEnv * env, jclass clazz, jlong bytes)
Java_app_organicmaps_downloader_MapManager_nativeHasSpaceToDownloadAmount(JNIEnv * env, jclass clazz, jlong bytes)
{
return storage::IsEnoughSpaceForDownload(bytes);
}
// static boolean nativeHasSpaceToDownloadCountry(String root);
JNIEXPORT jboolean JNICALL
Java_app_organicmaps_sdk_downloader_MapManager_nativeHasSpaceToDownloadCountry(JNIEnv * env, jclass clazz, jstring root)
Java_app_organicmaps_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_sdk_downloader_MapManager_nativeHasSpaceToUpdate(JNIEnv * env, jclass clazz, jstring root)
Java_app_organicmaps_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_sdk_downloader_MapManager_nativeGetDownloadedCount(JNIEnv * env, jclass clazz)
Java_app_organicmaps_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_sdk_downloader_MapManager_nativeGetUpdateInfo(JNIEnv * env, jclass clazz, jstring root)
Java_app_organicmaps_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/sdk/downloader/UpdateInfo");
static jclass const infoClass = jni::GetGlobalClassRef(env, "app/organicmaps/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_sdk_downloader_MapManager_nativeListItems(JNIEnv * env, jclass clazz, jstring parent, jdouble lat, jdouble lon, jboolean hasLocation, jboolean myMapsMode, jobject result)
Java_app_organicmaps_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_sdk_downloader_MapManager_nativeListItems(JNIEnv * env, jcl
// static void nativeUpdateItem(CountryItem item);
JNIEXPORT void JNICALL
Java_app_organicmaps_sdk_downloader_MapManager_nativeGetAttributes(JNIEnv * env, jclass, jobject item)
Java_app_organicmaps_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_sdk_downloader_MapManager_nativeGetAttributes(JNIEnv * env,
// static void nativeGetStatus(String root);
JNIEXPORT jint JNICALL
Java_app_organicmaps_sdk_downloader_MapManager_nativeGetStatus(JNIEnv * env, jclass clazz, jstring root)
Java_app_organicmaps_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_sdk_downloader_MapManager_nativeGetStatus(JNIEnv * env, jcl
// static void nativeGetError(String root);
JNIEXPORT jint JNICALL
Java_app_organicmaps_sdk_downloader_MapManager_nativeGetError(JNIEnv * env, jclass clazz, jstring root)
Java_app_organicmaps_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_sdk_downloader_MapManager_nativeGetError(JNIEnv * env, jcla
// static String nativeGetName(String root);
JNIEXPORT jstring JNICALL
Java_app_organicmaps_sdk_downloader_MapManager_nativeGetName(JNIEnv * env, jclass clazz, jstring root)
Java_app_organicmaps_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_sdk_downloader_MapManager_nativeFindCountry(JNIEnv * env, jclass clazz, jdouble lat, jdouble lon)
Java_app_organicmaps_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_sdk_downloader_MapManager_nativeIsDownloading(JNIEnv * env, jclass clazz)
Java_app_organicmaps_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/sdk/downloader/MapManager$StorageCallbackData");
static jclass batchDataClass = jni::GetGlobalClassRef(env, "app/organicmaps/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_sdk_downloader_MapManager_nativeDownload(JNIEnv * env, jclass clazz, jstring root)
Java_app_organicmaps_downloader_MapManager_nativeDownload(JNIEnv * env, jclass clazz, jstring root)
{
StartBatchingCallbacks();
GetStorage().DownloadNode(jni::ToNativeString(env, root));
@@ -397,7 +397,7 @@ Java_app_organicmaps_sdk_downloader_MapManager_nativeDownload(JNIEnv * env, jcla
// static boolean nativeRetry(String root);
JNIEXPORT void JNICALL
Java_app_organicmaps_sdk_downloader_MapManager_nativeRetry(JNIEnv * env, jclass clazz, jstring root)
Java_app_organicmaps_downloader_MapManager_nativeRetry(JNIEnv * env, jclass clazz, jstring root)
{
StartBatchingCallbacks();
GetStorage().RetryDownloadNode(jni::ToNativeString(env, root));
@@ -406,7 +406,7 @@ Java_app_organicmaps_sdk_downloader_MapManager_nativeRetry(JNIEnv * env, jclass
// static void nativeUpdate(String root);
JNIEXPORT void JNICALL
Java_app_organicmaps_sdk_downloader_MapManager_nativeUpdate(JNIEnv * env, jclass clazz, jstring root)
Java_app_organicmaps_downloader_MapManager_nativeUpdate(JNIEnv * env, jclass clazz, jstring root)
{
StartBatchingCallbacks();
GetStorage().UpdateNode(GetRootId(env, root));
@@ -415,7 +415,7 @@ Java_app_organicmaps_sdk_downloader_MapManager_nativeUpdate(JNIEnv * env, jclass
// static void nativeCancel(String root);
JNIEXPORT void JNICALL
Java_app_organicmaps_sdk_downloader_MapManager_nativeCancel(JNIEnv * env, jclass clazz, jstring root)
Java_app_organicmaps_downloader_MapManager_nativeCancel(JNIEnv * env, jclass clazz, jstring root)
{
StartBatchingCallbacks();
GetStorage().CancelDownloadNode(GetRootId(env, root));
@@ -424,7 +424,7 @@ Java_app_organicmaps_sdk_downloader_MapManager_nativeCancel(JNIEnv * env, jclass
// static void nativeDelete(String root);
JNIEXPORT void JNICALL
Java_app_organicmaps_sdk_downloader_MapManager_nativeDelete(JNIEnv * env, jclass clazz, jstring root)
Java_app_organicmaps_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_sdk_downloader_MapManager_nativeSubscribe(JNIEnv * env, jclass clazz, jobject listener)
Java_app_organicmaps_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_sdk_downloader_MapManager_nativeSubscribe(JNIEnv * env, jcl
// static void nativeUnsubscribe(int slot);
JNIEXPORT void JNICALL
Java_app_organicmaps_sdk_downloader_MapManager_nativeUnsubscribe(JNIEnv * env, jclass clazz, jint slot)
Java_app_organicmaps_downloader_MapManager_nativeUnsubscribe(JNIEnv * env, jclass clazz, jint slot)
{
GetStorage().Unsubscribe(slot);
}
// static void nativeSubscribeOnCountryChanged(CurrentCountryChangedListener listener);
JNIEXPORT void JNICALL
Java_app_organicmaps_sdk_downloader_MapManager_nativeSubscribeOnCountryChanged(JNIEnv * env, jclass clazz, jobject listener)
Java_app_organicmaps_downloader_MapManager_nativeSubscribeOnCountryChanged(JNIEnv * env, jclass clazz, jobject listener)
{
ASSERT(!g_countryChangedListener, ());
g_countryChangedListener = env->NewGlobalRef(listener);
@@ -492,7 +492,7 @@ Java_app_organicmaps_sdk_downloader_MapManager_nativeSubscribeOnCountryChanged(J
// static void nativeUnsubscribeOnCountryChanged();
JNIEXPORT void JNICALL
Java_app_organicmaps_sdk_downloader_MapManager_nativeUnsubscribeOnCountryChanged(JNIEnv * env, jclass clazz)
Java_app_organicmaps_downloader_MapManager_nativeUnsubscribeOnCountryChanged(JNIEnv * env, jclass clazz)
{
g_framework->NativeFramework()->SetCurrentCountryChangedListener(nullptr);
@@ -502,14 +502,14 @@ Java_app_organicmaps_sdk_downloader_MapManager_nativeUnsubscribeOnCountryChanged
// static boolean nativeHasUnsavedEditorChanges(String root);
JNIEXPORT jboolean JNICALL
Java_app_organicmaps_sdk_downloader_MapManager_nativeHasUnsavedEditorChanges(JNIEnv * env, jclass clazz, jstring root)
Java_app_organicmaps_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_sdk_downloader_MapManager_nativeGetPathTo(JNIEnv * env, jclass clazz, jstring root, jobject result)
Java_app_organicmaps_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_sdk_downloader_MapManager_nativeGetPathTo(JNIEnv * env, jcl
// static int nativeGetOverallProgress(String[] countries);
JNIEXPORT jint JNICALL
Java_app_organicmaps_sdk_downloader_MapManager_nativeGetOverallProgress(JNIEnv * env, jclass clazz, jobjectArray jcountries)
Java_app_organicmaps_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_sdk_downloader_MapManager_nativeGetOverallProgress(JNIEnv *
// static boolean nativeIsAutoretryFailed();
JNIEXPORT jboolean JNICALL
Java_app_organicmaps_sdk_downloader_MapManager_nativeIsAutoretryFailed(JNIEnv * env, jclass clazz)
Java_app_organicmaps_downloader_MapManager_nativeIsAutoretryFailed(JNIEnv * env, jclass clazz)
{
return g_framework->IsAutoRetryDownloadFailed();
}
// static boolean nativeIsDownloadOn3gEnabled();
JNIEXPORT jboolean JNICALL
Java_app_organicmaps_sdk_downloader_MapManager_nativeIsDownloadOn3gEnabled(JNIEnv * env, jclass clazz)
Java_app_organicmaps_downloader_MapManager_nativeIsDownloadOn3gEnabled(JNIEnv * env, jclass clazz)
{
return g_framework->IsDownloadOn3gEnabled();
}
// static void nativeEnableDownloadOn3g();
JNIEXPORT void JNICALL
Java_app_organicmaps_sdk_downloader_MapManager_nativeEnableDownloadOn3g(JNIEnv * env, jclass clazz)
Java_app_organicmaps_downloader_MapManager_nativeEnableDownloadOn3g(JNIEnv * env, jclass clazz)
{
g_framework->EnableDownloadOn3g();
}
// static @Nullable String nativeGetSelectedCountry();
JNIEXPORT jstring JNICALL
Java_app_organicmaps_sdk_downloader_MapManager_nativeGetSelectedCountry(JNIEnv * env, jclass clazz)
Java_app_organicmaps_downloader_MapManager_nativeGetSelectedCountry(JNIEnv * env, jclass clazz)
{
if (!g_framework->NativeFramework()->HasPlacePageInfo())
return nullptr;

View File

@@ -2,14 +2,14 @@
#include "map/gps_tracker.hpp"
#include "app/organicmaps/sdk/core/jni_helper.hpp"
#include "app/organicmaps/core/jni_helper.hpp"
#include <chrono>
extern "C"
{
JNIEXPORT void JNICALL
Java_app_organicmaps_sdk_location_TrackRecorder_nativeSetEnabled(JNIEnv * env, jclass clazz, jboolean enable)
Java_app_organicmaps_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_sdk_location_TrackRecorder_nativeIsEnabled(JNIEnv * env, jclass clazz)
Java_app_organicmaps_location_TrackRecorder_nativeIsEnabled(JNIEnv * env, jclass clazz)
{
return GpsTracker::Instance().IsEnabled();
}
JNIEXPORT void JNICALL
Java_app_organicmaps_sdk_location_TrackRecorder_nativeStartTrackRecording(JNIEnv * env, jclass clazz)
Java_app_organicmaps_location_TrackRecorder_nativeStartTrackRecording(JNIEnv * env, jclass clazz)
{
frm()->StartTrackRecording();
}
JNIEXPORT void JNICALL
Java_app_organicmaps_sdk_location_TrackRecorder_nativeStopTrackRecording(JNIEnv * env, jclass clazz)
Java_app_organicmaps_location_TrackRecorder_nativeStopTrackRecording(JNIEnv * env, jclass clazz)
{
frm()->StopTrackRecording();
}
JNIEXPORT void JNICALL
Java_app_organicmaps_sdk_location_TrackRecorder_nativeSaveTrackRecordingWithName(JNIEnv * env, jclass clazz, jstring name)
Java_app_organicmaps_location_TrackRecorder_nativeSaveTrackRecordingWithName(JNIEnv * env, jclass clazz, jstring name)
{
frm()->SaveTrackRecordingWithName(jni::ToNativeString(env, name));
}
JNIEXPORT jboolean JNICALL
Java_app_organicmaps_sdk_location_TrackRecorder_nativeIsTrackRecordingEmpty(JNIEnv * env, jclass clazz)
Java_app_organicmaps_location_TrackRecorder_nativeIsTrackRecordingEmpty(JNIEnv * env, jclass clazz)
{
return frm()->IsTrackRecordingEmpty();
}
JNIEXPORT jboolean JNICALL
Java_app_organicmaps_sdk_location_TrackRecorder_nativeIsTrackRecordingEnabled(JNIEnv * env, jclass clazz)
Java_app_organicmaps_location_TrackRecorder_nativeIsTrackRecordingEnabled(JNIEnv * env, jclass clazz)
{
return frm()->IsTrackRecordingEnabled();
}

View File

@@ -1,8 +1,8 @@
#include "Framework.hpp"
#include "app/organicmaps/sdk/core/jni_helper.hpp"
#include "app/organicmaps/core/jni_helper.hpp"
#include "app/organicmaps/sdk/platform/AndroidPlatform.hpp"
#include "app/organicmaps/platform/AndroidPlatform.hpp"
extern "C"
{
@@ -13,35 +13,35 @@ static void TrafficStateChanged(TrafficManager::TrafficState state, std::shared_
}
JNIEXPORT void JNICALL
Java_app_organicmaps_sdk_maplayer_traffic_TrafficState_nativeSetListener(JNIEnv * env, jclass clazz, jobject listener)
Java_app_organicmaps_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_sdk_maplayer_traffic_TrafficState_nativeRemoveListener(JNIEnv * env, jclass clazz)
Java_app_organicmaps_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_sdk_maplayer_traffic_TrafficState_nativeEnable(JNIEnv * env, jclass clazz)
Java_app_organicmaps_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_sdk_maplayer_traffic_TrafficState_nativeIsEnabled(JNIEnv * env, jclass clazz)
Java_app_organicmaps_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_sdk_maplayer_traffic_TrafficState_nativeDisable(JNIEnv * env, jclass clazz)
Java_app_organicmaps_maplayer_traffic_TrafficState_nativeDisable(JNIEnv * env, jclass clazz)
{
CHECK(g_framework, ("Framework isn't created yet!"));
g_framework->DisableTraffic();

View File

@@ -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/sdk/bookmarks/data/FeatureId;" // featureId
"Lapp/organicmaps/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/sdk/bookmarks/data/FeatureId;JJLjava/lang/String;"
"(Lapp/organicmaps/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/sdk/bookmarks/data/ElevationInfo$Point");
jni::GetGlobalClassRef(env, "app/organicmaps/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/sdk/bookmarks/data/ElevationInfo$Point");
jni::GetGlobalClassRef(env, "app/organicmaps/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/sdk/bookmarks/data/ElevationInfo$Point;"
"[Lapp/organicmaps/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

View File

@@ -2,8 +2,8 @@
#include <jni.h>
#include "app/organicmaps/sdk/core/jni_helper.hpp"
#include "app/organicmaps/sdk/Framework.hpp"
#include "app/organicmaps/core/jni_helper.hpp"
#include "app/organicmaps/Framework.hpp"
#include <vector>

View File

@@ -1,7 +1,7 @@
#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 "app/organicmaps/core/jni_helper.hpp"
#include "app/organicmaps/Framework.hpp"
#include "app/organicmaps/UserMarkHelper.hpp"
#include "app/organicmaps/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/sdk/bookmarks/data/BookmarkManager");
jni::GetGlobalClassRef(env, "app/organicmaps/bookmarks/data/BookmarkManager");
g_bookmarkManagerInstanceField = jni::GetStaticFieldID(env, g_bookmarkManagerClass, "INSTANCE",
"Lapp/organicmaps/sdk/bookmarks/data/BookmarkManager;");
"Lapp/organicmaps/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/sdk/bookmarks/data/BookmarkSharingResult;)V");
"(Lapp/organicmaps/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/sdk/bookmarks/data/SortedBlock");
jni::GetGlobalClassRef(env, "app/organicmaps/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/sdk/bookmarks/data/SortedBlock;J)V");
"onBookmarksSortingCompleted", "([Lapp/organicmaps/bookmarks/data/SortedBlock;J)V");
g_onBookmarksSortingCancelled = jni::GetMethodID(env, bookmarkManagerInstance,
"onBookmarksSortingCancelled", "(J)V");
g_bookmarkInfoClass =
jni::GetGlobalClassRef(env, "app/organicmaps/sdk/bookmarks/data/BookmarkInfo");
jni::GetGlobalClassRef(env, "app/organicmaps/bookmarks/data/BookmarkInfo");
g_bookmarkInfoConstructor =
jni::GetConstructorID(env, g_bookmarkInfoClass, "(JJ)V" );
g_bookmarkCategoryClass =
jni::GetGlobalClassRef(env, "app/organicmaps/sdk/bookmarks/data/BookmarkCategory");
jni::GetGlobalClassRef(env, "app/organicmaps/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/sdk/bookmarks/data/BookmarkSharingResult");
static jclass const classBookmarkSharingResult = jni::GetGlobalClassRef(env, "app/organicmaps/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_sdk_bookmarks_data_BookmarkManager_nativeShowBookmarkOnMap(
Java_app_organicmaps_bookmarks_data_BookmarkManager_nativeShowBookmarkOnMap(
JNIEnv *, jobject, jlong bmkId)
{
frm()->ShowBookmark(static_cast<kml::MarkId>(bmkId));
}
JNIEXPORT void JNICALL
Java_app_organicmaps_sdk_bookmarks_data_BookmarkManager_nativeShowBookmarkCategoryOnMap(
Java_app_organicmaps_bookmarks_data_BookmarkManager_nativeShowBookmarkCategoryOnMap(
JNIEnv *, jobject, jlong catId)
{
frm()->ShowBookmarkCategory(static_cast<kml::MarkGroupId>(catId), true /* animated */);
}
JNIEXPORT void JNICALL
Java_app_organicmaps_sdk_bookmarks_data_BookmarkManager_nativeLoadBookmarks(JNIEnv * env, jclass)
Java_app_organicmaps_bookmarks_data_BookmarkManager_nativeLoadBookmarks(JNIEnv * env, jclass)
{
PrepareClassRefs(env);
BookmarkManager::AsyncLoadingCallbacks callbacks;
@@ -327,7 +327,7 @@ Java_app_organicmaps_sdk_bookmarks_data_BookmarkManager_nativeLoadBookmarks(JNIE
}
JNIEXPORT jlong JNICALL
Java_app_organicmaps_sdk_bookmarks_data_BookmarkManager_nativeCreateCategory(
Java_app_organicmaps_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_sdk_bookmarks_data_BookmarkManager_nativeCreateCategory(
}
JNIEXPORT jboolean JNICALL
Java_app_organicmaps_sdk_bookmarks_data_BookmarkManager_nativeDeleteCategory(
Java_app_organicmaps_bookmarks_data_BookmarkManager_nativeDeleteCategory(
JNIEnv *, jobject, jlong catId)
{
auto const categoryId = static_cast<kml::MarkGroupId>(catId);
@@ -345,20 +345,20 @@ Java_app_organicmaps_sdk_bookmarks_data_BookmarkManager_nativeDeleteCategory(
}
JNIEXPORT void JNICALL
Java_app_organicmaps_sdk_bookmarks_data_BookmarkManager_nativeDeleteBookmark(JNIEnv *, jobject, jlong bmkId)
Java_app_organicmaps_bookmarks_data_BookmarkManager_nativeDeleteBookmark(JNIEnv *, jobject, jlong bmkId)
{
frm()->GetBookmarkManager().GetEditSession().DeleteBookmark(static_cast<kml::MarkId>(bmkId));
}
JNIEXPORT void JNICALL
Java_app_organicmaps_sdk_bookmarks_data_BookmarkManager_nativeDeleteTrack(
Java_app_organicmaps_bookmarks_data_BookmarkManager_nativeDeleteTrack(
JNIEnv *, jobject, jlong trkId)
{
frm()->GetBookmarkManager().GetEditSession().DeleteTrack(static_cast<kml::TrackId>(trkId));
}
JNIEXPORT jobject JNICALL
Java_app_organicmaps_sdk_bookmarks_data_BookmarkManager_nativeAddBookmarkToLastEditedCategory(
Java_app_organicmaps_bookmarks_data_BookmarkManager_nativeAddBookmarkToLastEditedCategory(
JNIEnv * env, jobject, double lat, double lon)
{
if (!frm()->HasPlacePageInfo())
@@ -389,48 +389,48 @@ Java_app_organicmaps_sdk_bookmarks_data_BookmarkManager_nativeAddBookmarkToLastE
}
JNIEXPORT jlong JNICALL
Java_app_organicmaps_sdk_bookmarks_data_BookmarkManager_nativeGetLastEditedCategory(
Java_app_organicmaps_bookmarks_data_BookmarkManager_nativeGetLastEditedCategory(
JNIEnv *, jobject)
{
return static_cast<jlong>(frm()->LastEditedBMCategory());
}
JNIEXPORT jint JNICALL
Java_app_organicmaps_sdk_bookmarks_data_BookmarkManager_nativeGetLastEditedColor(
Java_app_organicmaps_bookmarks_data_BookmarkManager_nativeGetLastEditedColor(
JNIEnv *, jobject)
{
return static_cast<jint>(frm()->LastEditedBMColor());
}
JNIEXPORT void JNICALL
Java_app_organicmaps_sdk_bookmarks_data_BookmarkManager_nativeLoadBookmarksFile(JNIEnv * env, jclass,
Java_app_organicmaps_bookmarks_data_BookmarkManager_nativeLoadBookmarksFile(JNIEnv * env, jclass,
jstring path, jboolean isTemporaryFile)
{
frm()->AddBookmarksFile(ToNativeString(env, path), isTemporaryFile);
}
JNIEXPORT jboolean JNICALL
Java_app_organicmaps_sdk_bookmarks_data_BookmarkManager_nativeIsAsyncBookmarksLoadingInProgress(JNIEnv *, jclass)
Java_app_organicmaps_bookmarks_data_BookmarkManager_nativeIsAsyncBookmarksLoadingInProgress(JNIEnv *, jclass)
{
return static_cast<jboolean>(frm()->GetBookmarkManager().IsAsyncLoadingInProgress());
}
JNIEXPORT jboolean JNICALL
Java_app_organicmaps_sdk_bookmarks_data_BookmarkManager_nativeIsVisible(
Java_app_organicmaps_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_sdk_bookmarks_data_BookmarkManager_nativeSetVisibility(
Java_app_organicmaps_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_sdk_bookmarks_data_BookmarkManager_nativeSetCategoryName(
Java_app_organicmaps_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_sdk_bookmarks_data_BookmarkManager_nativeSetCategoryName(
}
JNIEXPORT void JNICALL
Java_app_organicmaps_sdk_bookmarks_data_BookmarkManager_nativeSetCategoryDescription(JNIEnv * env,
Java_app_organicmaps_bookmarks_data_BookmarkManager_nativeSetCategoryDescription(JNIEnv * env,
jobject,
jlong catId,
jstring desc)
@@ -448,7 +448,7 @@ Java_app_organicmaps_sdk_bookmarks_data_BookmarkManager_nativeSetCategoryDescrip
}
JNIEXPORT void JNICALL
Java_app_organicmaps_sdk_bookmarks_data_BookmarkManager_nativeSetCategoryTags(
Java_app_organicmaps_bookmarks_data_BookmarkManager_nativeSetCategoryTags(
JNIEnv * env, jobject, jlong catId, jobjectArray tagsIds)
{
auto const size = env->GetArrayLength(tagsIds);
@@ -465,7 +465,7 @@ Java_app_organicmaps_sdk_bookmarks_data_BookmarkManager_nativeSetCategoryTags(
}
JNIEXPORT void JNICALL
Java_app_organicmaps_sdk_bookmarks_data_BookmarkManager_nativeSetCategoryAccessRules(
Java_app_organicmaps_bookmarks_data_BookmarkManager_nativeSetCategoryAccessRules(
JNIEnv *, jobject, jlong catId, jint accessRules)
{
frm()->GetBookmarkManager().GetEditSession().SetCategoryAccessRules(
@@ -473,7 +473,7 @@ Java_app_organicmaps_sdk_bookmarks_data_BookmarkManager_nativeSetCategoryAccessR
}
JNIEXPORT void JNICALL
Java_app_organicmaps_sdk_bookmarks_data_BookmarkManager_nativeSetCategoryCustomProperty(
Java_app_organicmaps_bookmarks_data_BookmarkManager_nativeSetCategoryCustomProperty(
JNIEnv * env, jobject, jlong catId, jstring key, jstring value)
{
frm()->GetBookmarkManager().GetEditSession().SetCategoryCustomProperty(
@@ -481,7 +481,7 @@ Java_app_organicmaps_sdk_bookmarks_data_BookmarkManager_nativeSetCategoryCustomP
}
JNIEXPORT jobject JNICALL
Java_app_organicmaps_sdk_bookmarks_data_BookmarkManager_nativeUpdateBookmarkPlacePage(
Java_app_organicmaps_bookmarks_data_BookmarkManager_nativeUpdateBookmarkPlacePage(
JNIEnv * env, jobject, jlong bmkId)
{
if (!frm()->HasPlacePageInfo())
@@ -496,7 +496,7 @@ Java_app_organicmaps_sdk_bookmarks_data_BookmarkManager_nativeUpdateBookmarkPlac
}
JNIEXPORT jobject JNICALL
Java_app_organicmaps_sdk_bookmarks_data_BookmarkManager_nativeGetBookmarkInfo(
Java_app_organicmaps_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_sdk_bookmarks_data_BookmarkManager_nativeGetBookmarkInfo(
}
JNIEXPORT jlong JNICALL
Java_app_organicmaps_sdk_bookmarks_data_BookmarkManager_nativeGetBookmarkIdByPosition(
Java_app_organicmaps_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_sdk_bookmarks_data_BookmarkManager_nativeGetBookmarkIdByPos
static uint32_t shift(uint32_t v, uint8_t bitCount) { return v << bitCount; }
JNIEXPORT jobject JNICALL
Java_app_organicmaps_sdk_bookmarks_data_BookmarkManager_nativeGetTrack(
Java_app_organicmaps_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/sdk/util/Distance;I)V");
"(JJLjava/lang/String;Lapp/organicmaps/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_sdk_bookmarks_data_BookmarkManager_nativeGetTrack(
}
JNIEXPORT jlong JNICALL
Java_app_organicmaps_sdk_bookmarks_data_BookmarkManager_nativeGetTrackIdByPosition(
Java_app_organicmaps_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_sdk_bookmarks_data_BookmarkManager_nativeGetTrackIdByPositi
}
JNIEXPORT jboolean JNICALL
Java_app_organicmaps_sdk_bookmarks_data_BookmarkManager_nativeIsUsedCategoryName(
Java_app_organicmaps_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_sdk_bookmarks_data_BookmarkManager_nativePrepareForSearch(
Java_app_organicmaps_bookmarks_data_BookmarkManager_nativePrepareForSearch(
JNIEnv *, jclass, jlong catId)
{
frm()->GetBookmarkManager().PrepareForSearch(static_cast<kml::MarkGroupId>(catId));
}
JNIEXPORT jboolean JNICALL
Java_app_organicmaps_sdk_bookmarks_data_BookmarkManager_nativeAreAllCategoriesInvisible(
Java_app_organicmaps_bookmarks_data_BookmarkManager_nativeAreAllCategoriesInvisible(
JNIEnv *, jclass)
{
return static_cast<jboolean>(frm()->GetBookmarkManager().AreAllCategoriesInvisible());
}
JNIEXPORT jboolean JNICALL
Java_app_organicmaps_sdk_bookmarks_data_BookmarkManager_nativeAreAllCategoriesVisible(
Java_app_organicmaps_bookmarks_data_BookmarkManager_nativeAreAllCategoriesVisible(
JNIEnv *, jclass)
{
return static_cast<jboolean>(frm()->GetBookmarkManager().AreAllCategoriesVisible());
}
JNIEXPORT void JNICALL
Java_app_organicmaps_sdk_bookmarks_data_BookmarkManager_nativeSetAllCategoriesVisibility(
Java_app_organicmaps_bookmarks_data_BookmarkManager_nativeSetAllCategoriesVisibility(
JNIEnv *, jclass, jboolean visible)
{
frm()->GetBookmarkManager().SetAllCategoriesVisibility(static_cast<bool>(visible));
}
JNIEXPORT void JNICALL
Java_app_organicmaps_sdk_bookmarks_data_BookmarkManager_nativePrepareTrackFileForSharing(JNIEnv * env, jclass, jlong trackId, jint kmlFileType)
Java_app_organicmaps_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_sdk_bookmarks_data_BookmarkManager_nativePrepareTrackFileFo
}
JNIEXPORT void JNICALL
Java_app_organicmaps_sdk_bookmarks_data_BookmarkManager_nativePrepareFileForSharing(JNIEnv * env, jclass, jlongArray catIds, jint kmlFileType)
Java_app_organicmaps_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_sdk_bookmarks_data_BookmarkManager_nativePrepareFileForShar
}
JNIEXPORT jboolean JNICALL
Java_app_organicmaps_sdk_bookmarks_data_BookmarkManager_nativeIsCategoryEmpty(
Java_app_organicmaps_bookmarks_data_BookmarkManager_nativeIsCategoryEmpty(
JNIEnv *, jclass, jlong catId)
{
return static_cast<jboolean>(frm()->GetBookmarkManager().IsCategoryEmpty(
@@ -622,27 +622,27 @@ Java_app_organicmaps_sdk_bookmarks_data_BookmarkManager_nativeIsCategoryEmpty(
}
JNIEXPORT void JNICALL
Java_app_organicmaps_sdk_bookmarks_data_BookmarkManager_nativeSetNotificationsEnabled(
Java_app_organicmaps_bookmarks_data_BookmarkManager_nativeSetNotificationsEnabled(
JNIEnv *, jclass, jboolean enabled)
{
frm()->GetBookmarkManager().SetNotificationsEnabled(static_cast<bool>(enabled));
}
JNIEXPORT jboolean JNICALL
Java_app_organicmaps_sdk_bookmarks_data_BookmarkManager_nativeAreNotificationsEnabled(
Java_app_organicmaps_bookmarks_data_BookmarkManager_nativeAreNotificationsEnabled(
JNIEnv *, jclass)
{
return static_cast<jboolean>(frm()->GetBookmarkManager().AreNotificationsEnabled());
}
JNIEXPORT jobject JNICALL
Java_app_organicmaps_sdk_bookmarks_data_BookmarkManager_nativeGetBookmarkCategory(JNIEnv *env, jobject, jlong id)
Java_app_organicmaps_bookmarks_data_BookmarkManager_nativeGetBookmarkCategory(JNIEnv *env, jobject, jlong id)
{
return MakeCategory(env, static_cast<kml::MarkGroupId>(id));
}
JNIEXPORT jobjectArray JNICALL
Java_app_organicmaps_sdk_bookmarks_data_BookmarkManager_nativeGetBookmarkCategories(JNIEnv *env, jobject)
Java_app_organicmaps_bookmarks_data_BookmarkManager_nativeGetBookmarkCategories(JNIEnv *env, jobject)
{
auto const & bm = frm()->GetBookmarkManager();
auto const & ids = bm.GetSortedBmGroupIdList();
@@ -651,7 +651,7 @@ Java_app_organicmaps_sdk_bookmarks_data_BookmarkManager_nativeGetBookmarkCategor
}
JNIEXPORT jint JNICALL
Java_app_organicmaps_sdk_bookmarks_data_BookmarkManager_nativeGetBookmarkCategoriesCount(JNIEnv *env, jobject)
Java_app_organicmaps_bookmarks_data_BookmarkManager_nativeGetBookmarkCategoriesCount(JNIEnv *env, jobject)
{
auto const & bm = frm()->GetBookmarkManager();
auto const count = bm.GetBmGroupsCount();
@@ -660,7 +660,7 @@ Java_app_organicmaps_sdk_bookmarks_data_BookmarkManager_nativeGetBookmarkCategor
}
JNIEXPORT jobjectArray JNICALL
Java_app_organicmaps_sdk_bookmarks_data_BookmarkManager_nativeGetChildrenCategories(JNIEnv *env, jobject, jlong parentId)
Java_app_organicmaps_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_sdk_bookmarks_data_BookmarkManager_nativeGetChildrenCategor
}
JNIEXPORT jboolean JNICALL
Java_app_organicmaps_sdk_bookmarks_data_BookmarkManager_nativeHasLastSortingType(
Java_app_organicmaps_bookmarks_data_BookmarkManager_nativeHasLastSortingType(
JNIEnv *, jobject, jlong catId)
{
auto const & bm = frm()->GetBookmarkManager();
@@ -678,7 +678,7 @@ Java_app_organicmaps_sdk_bookmarks_data_BookmarkManager_nativeHasLastSortingType
}
JNIEXPORT jint JNICALL
Java_app_organicmaps_sdk_bookmarks_data_BookmarkManager_nativeGetLastSortingType(
Java_app_organicmaps_bookmarks_data_BookmarkManager_nativeGetLastSortingType(
JNIEnv *, jobject, jlong catId)
{
auto const & bm = frm()->GetBookmarkManager();
@@ -690,7 +690,7 @@ Java_app_organicmaps_sdk_bookmarks_data_BookmarkManager_nativeGetLastSortingType
}
JNIEXPORT void JNICALL
Java_app_organicmaps_sdk_bookmarks_data_BookmarkManager_nativeSetLastSortingType(
Java_app_organicmaps_bookmarks_data_BookmarkManager_nativeSetLastSortingType(
JNIEnv *, jobject, jlong catId, jint type)
{
auto & bm = frm()->GetBookmarkManager();
@@ -699,7 +699,7 @@ Java_app_organicmaps_sdk_bookmarks_data_BookmarkManager_nativeSetLastSortingType
}
JNIEXPORT void JNICALL
Java_app_organicmaps_sdk_bookmarks_data_BookmarkManager_nativeResetLastSortingType(
Java_app_organicmaps_bookmarks_data_BookmarkManager_nativeResetLastSortingType(
JNIEnv *, jobject, jlong catId)
{
auto & bm = frm()->GetBookmarkManager();
@@ -707,7 +707,7 @@ Java_app_organicmaps_sdk_bookmarks_data_BookmarkManager_nativeResetLastSortingTy
}
JNIEXPORT jintArray JNICALL
Java_app_organicmaps_sdk_bookmarks_data_BookmarkManager_nativeGetAvailableSortingTypes(JNIEnv *env,
Java_app_organicmaps_bookmarks_data_BookmarkManager_nativeGetAvailableSortingTypes(JNIEnv *env,
jobject, jlong catId, jboolean hasMyPosition)
{
auto const & bm = frm()->GetBookmarkManager();
@@ -724,7 +724,7 @@ Java_app_organicmaps_sdk_bookmarks_data_BookmarkManager_nativeGetAvailableSortin
}
JNIEXPORT void JNICALL
Java_app_organicmaps_sdk_bookmarks_data_BookmarkManager_nativeGetSortedCategory(JNIEnv *env,
Java_app_organicmaps_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_sdk_bookmarks_data_BookmarkManager_nativeGetSortedCategory(
}
JNIEXPORT jstring JNICALL
Java_app_organicmaps_sdk_bookmarks_data_BookmarkManager_nativeGetBookmarkName(
Java_app_organicmaps_bookmarks_data_BookmarkManager_nativeGetBookmarkName(
JNIEnv * env, jclass, jlong bmk)
{
return jni::ToJavaString(env, getBookmark(bmk)->GetPreferredName());
}
JNIEXPORT jstring JNICALL
Java_app_organicmaps_sdk_bookmarks_data_BookmarkManager_nativeGetBookmarkFeatureType(
Java_app_organicmaps_bookmarks_data_BookmarkManager_nativeGetBookmarkFeatureType(
JNIEnv * env, jclass, jlong bmk)
{
return jni::ToJavaString(env,
@@ -756,14 +756,14 @@ Java_app_organicmaps_sdk_bookmarks_data_BookmarkManager_nativeGetBookmarkFeature
}
JNIEXPORT jstring JNICALL
Java_app_organicmaps_sdk_bookmarks_data_BookmarkManager_nativeGetBookmarkDescription(
Java_app_organicmaps_bookmarks_data_BookmarkManager_nativeGetBookmarkDescription(
JNIEnv * env, jclass, jlong bmk)
{
return jni::ToJavaString(env, getBookmark(bmk)->GetDescription());
}
JNIEXPORT jint JNICALL
Java_app_organicmaps_sdk_bookmarks_data_BookmarkManager_nativeGetBookmarkColor(
Java_app_organicmaps_bookmarks_data_BookmarkManager_nativeGetBookmarkColor(
JNIEnv *, jclass, jlong bmk)
{
auto const * mark = getBookmark(bmk);
@@ -772,7 +772,7 @@ Java_app_organicmaps_sdk_bookmarks_data_BookmarkManager_nativeGetBookmarkColor(
}
JNIEXPORT jint JNICALL
Java_app_organicmaps_sdk_bookmarks_data_BookmarkManager_nativeGetBookmarkIcon(
Java_app_organicmaps_bookmarks_data_BookmarkManager_nativeGetBookmarkIcon(
JNIEnv *, jclass, jlong bmk)
{
auto const * mark = getBookmark(bmk);
@@ -781,7 +781,7 @@ Java_app_organicmaps_sdk_bookmarks_data_BookmarkManager_nativeGetBookmarkIcon(
}
JNIEXPORT void JNICALL
Java_app_organicmaps_sdk_bookmarks_data_BookmarkManager_nativeSetBookmarkParams(
Java_app_organicmaps_bookmarks_data_BookmarkManager_nativeSetBookmarkParams(
JNIEnv * env, jclass, jlong bmk,
jstring name, jint color, jstring descr)
{
@@ -802,7 +802,7 @@ Java_app_organicmaps_sdk_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_sdk_bookmarks_data_BookmarkManager_nativeSetTrackParams(
Java_app_organicmaps_bookmarks_data_BookmarkManager_nativeSetTrackParams(
JNIEnv * env, jclass, jlong trackId,
jstring name, jint color, jstring descr)
{
@@ -821,14 +821,14 @@ Java_app_organicmaps_sdk_bookmarks_data_BookmarkManager_nativeSetTrackParams(
}
JNIEXPORT jstring JNICALL
Java_app_organicmaps_sdk_bookmarks_data_BookmarkManager_nativeGetTrackDescription(
Java_app_organicmaps_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_sdk_bookmarks_data_BookmarkManager_nativeChangeBookmarkCategory(
Java_app_organicmaps_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_sdk_bookmarks_data_BookmarkManager_nativeChangeBookmarkCate
}
JNIEXPORT void JNICALL
Java_app_organicmaps_sdk_bookmarks_data_BookmarkManager_nativeChangeTrackCategory(
Java_app_organicmaps_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_sdk_bookmarks_data_BookmarkManager_nativeChangeTrackCategor
}
JNIEXPORT void JNICALL
Java_app_organicmaps_sdk_bookmarks_data_BookmarkManager_nativeChangeTrackColor(
Java_app_organicmaps_bookmarks_data_BookmarkManager_nativeChangeTrackColor(
JNIEnv *, jclass, jlong trackId, jint color)
{
uint8_t alpha = ExtractByte(color, 3);
@@ -852,28 +852,28 @@ Java_app_organicmaps_sdk_bookmarks_data_BookmarkManager_nativeChangeTrackColor(
}
JNIEXPORT jobject JNICALL
Java_app_organicmaps_sdk_bookmarks_data_BookmarkManager_nativeGetBookmarkXY(
Java_app_organicmaps_bookmarks_data_BookmarkManager_nativeGetBookmarkXY(
JNIEnv * env, jclass, jlong bmk)
{
return jni::GetNewParcelablePointD(env, getBookmark(bmk)->GetPivot());
}
JNIEXPORT jdouble JNICALL
Java_app_organicmaps_sdk_bookmarks_data_BookmarkManager_nativeGetBookmarkScale(
Java_app_organicmaps_bookmarks_data_BookmarkManager_nativeGetBookmarkScale(
JNIEnv *, jclass, jlong bmk)
{
return getBookmark(bmk)->GetScale();
}
JNIEXPORT jstring JNICALL
Java_app_organicmaps_sdk_bookmarks_data_BookmarkManager_nativeEncode2Ge0Url(
Java_app_organicmaps_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_sdk_bookmarks_data_BookmarkManager_nativeGetBookmarkAddress(
Java_app_organicmaps_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_sdk_bookmarks_data_BookmarkManager_nativeGetBookmarkAddress
}
JNIEXPORT jdouble JNICALL
Java_app_organicmaps_sdk_bookmarks_data_BookmarkManager_nativeGetElevationCurPositionDistance(
Java_app_organicmaps_bookmarks_data_BookmarkManager_nativeGetElevationCurPositionDistance(
JNIEnv *, jclass, jlong trackId)
{
auto const & bm = frm()->GetBookmarkManager();
@@ -889,7 +889,7 @@ Java_app_organicmaps_sdk_bookmarks_data_BookmarkManager_nativeGetElevationCurPos
}
JNIEXPORT void JNICALL
Java_app_organicmaps_sdk_bookmarks_data_BookmarkManager_nativeSetElevationCurrentPositionChangedListener(
Java_app_organicmaps_bookmarks_data_BookmarkManager_nativeSetElevationCurrentPositionChangedListener(
JNIEnv * env, jclass)
{
frm()->GetBookmarkManager().SetElevationMyPositionChangedCallback(
@@ -897,14 +897,14 @@ Java_app_organicmaps_sdk_bookmarks_data_BookmarkManager_nativeSetElevationCurren
}
JNIEXPORT void JNICALL
Java_app_organicmaps_sdk_bookmarks_data_BookmarkManager_nativeRemoveElevationCurrentPositionChangedListener(
Java_app_organicmaps_bookmarks_data_BookmarkManager_nativeRemoveElevationCurrentPositionChangedListener(
JNIEnv *, jclass)
{
frm()->GetBookmarkManager().SetElevationMyPositionChangedCallback(nullptr);
}
JNIEXPORT void JNICALL
Java_app_organicmaps_sdk_bookmarks_data_BookmarkManager_nativeSetElevationActivePoint(
Java_app_organicmaps_bookmarks_data_BookmarkManager_nativeSetElevationActivePoint(
JNIEnv *, jclass, jlong trackId, jdouble distanceInMeters)
{
auto & bm = frm()->GetBookmarkManager();
@@ -914,7 +914,7 @@ Java_app_organicmaps_sdk_bookmarks_data_BookmarkManager_nativeSetElevationActive
}
JNIEXPORT jdouble JNICALL
Java_app_organicmaps_sdk_bookmarks_data_BookmarkManager_nativeGetElevationActivePointDistance(
Java_app_organicmaps_bookmarks_data_BookmarkManager_nativeGetElevationActivePointDistance(
JNIEnv *, jclass, jlong trackId)
{
auto & bm = frm()->GetBookmarkManager();
@@ -922,21 +922,21 @@ Java_app_organicmaps_sdk_bookmarks_data_BookmarkManager_nativeGetElevationActive
}
JNIEXPORT void JNICALL
Java_app_organicmaps_sdk_bookmarks_data_BookmarkManager_nativeSetElevationActiveChangedListener(
Java_app_organicmaps_bookmarks_data_BookmarkManager_nativeSetElevationActiveChangedListener(
JNIEnv *env, jclass)
{
frm()->GetBookmarkManager().SetElevationActivePointChangedCallback(std::bind(&OnElevationActivePointChanged, env));
}
JNIEXPORT void JNICALL
Java_app_organicmaps_sdk_bookmarks_data_BookmarkManager_nativeRemoveElevationActiveChangedListener(
Java_app_organicmaps_bookmarks_data_BookmarkManager_nativeRemoveElevationActiveChangedListener(
JNIEnv *, jclass)
{
frm()->GetBookmarkManager().SetElevationActivePointChangedCallback(nullptr);
}
JNIEXPORT jboolean JNICALL
Java_app_organicmaps_sdk_widget_placepage_PlacePageButtonFactory_nativeHasRecentlyDeletedBookmark(JNIEnv *, jclass)
Java_app_organicmaps_widget_placepage_PlacePageButtonFactory_nativeHasRecentlyDeletedBookmark(JNIEnv *, jclass)
{
return frm()->GetBookmarkManager().HasRecentlyDeletedBookmark();
}

View File

@@ -52,17 +52,17 @@ JNI_OnLoad(JavaVM * jvm, void *)
jni::InitAssertLog();
JNIEnv * env = jni::GetEnv();
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");
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");
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/sdk/bookmarks/data/ParcelablePointD");
jclass klass = env->FindClass("app/organicmaps/bookmarks/data/ParcelablePointD");
ASSERT ( klass, () );
jmethodID methodID = GetConstructorID(env, klass, "(DD)V");

View File

@@ -3,9 +3,9 @@
#include "base/exception.hpp"
#include "base/logging.hpp"
#include "app/organicmaps/sdk/core/jni_helper.hpp"
#include "app/organicmaps/sdk/core/logging.hpp"
#include "app/organicmaps/sdk/core/ScopedEnv.hpp"
#include "app/organicmaps/core/jni_helper.hpp"
#include "app/organicmaps/core/logging.hpp"
#include "app/organicmaps/core/ScopedEnv.hpp"
#include <android/log.h>
#include <cassert>

View File

@@ -1,7 +1,7 @@
#include <jni.h>
#include "app/organicmaps/sdk/core/jni_helper.hpp"
#include "app/organicmaps/sdk/Framework.hpp"
#include "app/organicmaps/core/jni_helper.hpp"
#include "app/organicmaps/Framework.hpp"
#include "editor/osm_editor.hpp"
@@ -66,38 +66,38 @@ extern "C"
using osm::Editor;
JNIEXPORT void JNICALL
Java_app_organicmaps_sdk_editor_Editor_nativeInit(JNIEnv * env, jclass)
Java_app_organicmaps_editor_Editor_nativeInit(JNIEnv * env, jclass)
{
g_localNameClazz = jni::GetGlobalClassRef(env, "app/organicmaps/sdk/editor/data/LocalizedName");
g_localNameClazz = jni::GetGlobalClassRef(env, "app/organicmaps/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/sdk/editor/data/LocalizedStreet");
g_localStreetClazz = jni::GetGlobalClassRef(env, "app/organicmaps/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/sdk/editor/data/NamesDataSource");
g_namesDataSourceConstructorID = jni::GetConstructorID(env, g_namesDataSourceClassID, "([Lapp/organicmaps/sdk/editor/data/LocalizedName;I)V");
g_namesDataSourceClassID = jni::GetGlobalClassRef(env, "app/organicmaps/editor/data/NamesDataSource");
g_namesDataSourceConstructorID = jni::GetConstructorID(env, g_namesDataSourceClassID, "([Lapp/organicmaps/editor/data/LocalizedName;I)V");
}
JNIEXPORT jstring JNICALL
Java_app_organicmaps_sdk_editor_Editor_nativeGetOpeningHours(JNIEnv * env, jclass)
Java_app_organicmaps_editor_Editor_nativeGetOpeningHours(JNIEnv * env, jclass)
{
return jni::ToJavaString(env, g_editableMapObject.GetOpeningHours());
}
JNIEXPORT void JNICALL
Java_app_organicmaps_sdk_editor_Editor_nativeSetOpeningHours(JNIEnv * env, jclass, jstring value)
Java_app_organicmaps_editor_Editor_nativeSetOpeningHours(JNIEnv * env, jclass, jstring value)
{
g_editableMapObject.SetOpeningHours(jni::ToNativeString(env, value));
}
JNIEXPORT jstring JNICALL
Java_app_organicmaps_sdk_editor_Editor_nativeGetMetadata(JNIEnv * env, jclass, jint id)
Java_app_organicmaps_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_sdk_editor_Editor_nativeGetMetadata(JNIEnv * env, jclass, j
}
JNIEXPORT jboolean JNICALL
Java_app_organicmaps_sdk_editor_Editor_nativeIsMetadataValid(JNIEnv * env, jclass, jint id, jstring value)
Java_app_organicmaps_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_sdk_editor_Editor_nativeIsMetadataValid(JNIEnv * env, jclas
}
JNIEXPORT void JNICALL
Java_app_organicmaps_sdk_editor_Editor_nativeSetMetadata(JNIEnv * env, jclass, jint id, jstring value)
Java_app_organicmaps_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_sdk_editor_Editor_nativeSetMetadata(JNIEnv * env, jclass, j
}
JNIEXPORT jint JNICALL
Java_app_organicmaps_sdk_editor_Editor_nativeGetStars(JNIEnv * env, jclass)
Java_app_organicmaps_editor_Editor_nativeGetStars(JNIEnv * env, jclass)
{
return g_editableMapObject.GetStars();
}
JNIEXPORT jint JNICALL
Java_app_organicmaps_sdk_editor_Editor_nativeGetMaxEditableBuildingLevels(JNIEnv *, jclass)
Java_app_organicmaps_editor_Editor_nativeGetMaxEditableBuildingLevels(JNIEnv *, jclass)
{
return osm::EditableMapObject::kMaximumLevelsEditableByUsers;
}
JNIEXPORT jboolean JNICALL
Java_app_organicmaps_sdk_editor_Editor_nativeHasWifi(JNIEnv *, jclass)
Java_app_organicmaps_editor_Editor_nativeHasWifi(JNIEnv *, jclass)
{
return g_editableMapObject.GetInternet() == feature::Internet::Wlan;
}
JNIEXPORT void JNICALL
Java_app_organicmaps_sdk_editor_Editor_nativeSetHasWifi(JNIEnv *, jclass, jboolean hasWifi)
Java_app_organicmaps_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_sdk_editor_Editor_nativeSaveEditedFeature(JNIEnv *, jclass)
Java_app_organicmaps_editor_Editor_nativeSaveEditedFeature(JNIEnv *, jclass)
{
switch (g_framework->NativeFramework()->SaveEditedMapObject(g_editableMapObject))
{
@@ -169,7 +169,7 @@ Java_app_organicmaps_sdk_editor_Editor_nativeSaveEditedFeature(JNIEnv *, jclass)
}
JNIEXPORT jboolean JNICALL
Java_app_organicmaps_sdk_editor_Editor_nativeShouldShowEditPlace(JNIEnv *, jclass)
Java_app_organicmaps_editor_Editor_nativeShouldShowEditPlace(JNIEnv *, jclass)
{
::Framework * frm = g_framework->NativeFramework();
if (!frm->HasPlacePageInfo())
@@ -179,7 +179,7 @@ Java_app_organicmaps_sdk_editor_Editor_nativeShouldShowEditPlace(JNIEnv *, jclas
}
JNIEXPORT jboolean JNICALL
Java_app_organicmaps_sdk_editor_Editor_nativeShouldShowAddBusiness(JNIEnv *, jclass)
Java_app_organicmaps_editor_Editor_nativeShouldShowAddBusiness(JNIEnv *, jclass)
{
::Framework * frm = g_framework->NativeFramework();
if (!frm->HasPlacePageInfo())
@@ -189,7 +189,7 @@ Java_app_organicmaps_sdk_editor_Editor_nativeShouldShowAddBusiness(JNIEnv *, jcl
}
JNIEXPORT jboolean JNICALL
Java_app_organicmaps_sdk_editor_Editor_nativeShouldShowAddPlace(JNIEnv *, jclass)
Java_app_organicmaps_editor_Editor_nativeShouldShowAddPlace(JNIEnv *, jclass)
{
::Framework * frm = g_framework->NativeFramework();
if (!frm->HasPlacePageInfo())
@@ -199,7 +199,7 @@ Java_app_organicmaps_sdk_editor_Editor_nativeShouldShowAddPlace(JNIEnv *, jclass
}
JNIEXPORT jboolean JNICALL
Java_app_organicmaps_sdk_editor_Editor_nativeShouldEnableEditPlace(JNIEnv *, jclass)
Java_app_organicmaps_editor_Editor_nativeShouldEnableEditPlace(JNIEnv *, jclass)
{
::Framework * frm = g_framework->NativeFramework();
if (!frm->HasPlacePageInfo())
@@ -209,7 +209,7 @@ Java_app_organicmaps_sdk_editor_Editor_nativeShouldEnableEditPlace(JNIEnv *, jcl
}
JNIEXPORT jboolean JNICALL
Java_app_organicmaps_sdk_editor_Editor_nativeShouldEnableAddPlace(JNIEnv *, jclass)
Java_app_organicmaps_editor_Editor_nativeShouldEnableAddPlace(JNIEnv *, jclass)
{
::Framework * frm = g_framework->NativeFramework();
if (!frm->HasPlacePageInfo())
@@ -219,7 +219,7 @@ Java_app_organicmaps_sdk_editor_Editor_nativeShouldEnableAddPlace(JNIEnv *, jcla
}
JNIEXPORT jintArray JNICALL
Java_app_organicmaps_sdk_editor_Editor_nativeGetEditableProperties(JNIEnv * env, jclass clazz)
Java_app_organicmaps_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_sdk_editor_Editor_nativeGetEditableProperties(JNIEnv * env,
}
JNIEXPORT jboolean JNICALL
Java_app_organicmaps_sdk_editor_Editor_nativeIsAddressEditable(JNIEnv * env, jclass clazz)
Java_app_organicmaps_editor_Editor_nativeIsAddressEditable(JNIEnv * env, jclass clazz)
{
return g_editableMapObject.IsAddressEditable();
}
JNIEXPORT jboolean JNICALL
Java_app_organicmaps_sdk_editor_Editor_nativeIsNameEditable(JNIEnv * env, jclass clazz)
Java_app_organicmaps_editor_Editor_nativeIsNameEditable(JNIEnv * env, jclass clazz)
{
return g_editableMapObject.IsNameEditable();
}
JNIEXPORT jboolean JNICALL
Java_app_organicmaps_sdk_editor_Editor_nativeIsPointType(JNIEnv * env, jclass clazz)
Java_app_organicmaps_editor_Editor_nativeIsPointType(JNIEnv * env, jclass clazz)
{
return g_editableMapObject.IsPointType();
}
JNIEXPORT jboolean JNICALL
Java_app_organicmaps_sdk_editor_Editor_nativeIsBuilding(JNIEnv * env, jclass clazz)
Java_app_organicmaps_editor_Editor_nativeIsBuilding(JNIEnv * env, jclass clazz)
{
return g_editableMapObject.IsBuilding();
}
JNIEXPORT jobject JNICALL
Java_app_organicmaps_sdk_editor_Editor_nativeGetNamesDataSource(JNIEnv * env, jclass)
Java_app_organicmaps_editor_Editor_nativeGetNamesDataSource(JNIEnv * env, jclass)
{
auto const namesDataSource = g_editableMapObject.GetNamesDataSource();
@@ -268,7 +268,7 @@ Java_app_organicmaps_sdk_editor_Editor_nativeGetNamesDataSource(JNIEnv * env, jc
}
JNIEXPORT void JNICALL
Java_app_organicmaps_sdk_editor_Editor_nativeSetNames(JNIEnv * env, jclass, jobjectArray names)
Java_app_organicmaps_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_sdk_editor_Editor_nativeSetNames(JNIEnv * env, jclass, jobj
}
JNIEXPORT jobject JNICALL
Java_app_organicmaps_sdk_editor_Editor_nativeGetStreet(JNIEnv * env, jclass)
Java_app_organicmaps_editor_Editor_nativeGetStreet(JNIEnv * env, jclass)
{
return ToJavaStreet(env, g_editableMapObject.GetStreet());
}
JNIEXPORT void JNICALL
Java_app_organicmaps_sdk_editor_Editor_nativeSetStreet(JNIEnv * env, jclass, jobject street)
Java_app_organicmaps_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_sdk_editor_Editor_nativeGetNearbyStreets(JNIEnv * env, jclass clazz)
Java_app_organicmaps_editor_Editor_nativeGetNearbyStreets(JNIEnv * env, jclass clazz)
{
return jni::ToJavaArray(env, g_localStreetClazz, g_editableMapObject.GetNearbyStreets(), ToJavaStreet);
}
JNIEXPORT jobjectArray JNICALL
Java_app_organicmaps_sdk_editor_Editor_nativeGetSupportedLanguages(JNIEnv * env, jclass clazz, jboolean includeServiceLangs)
Java_app_organicmaps_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/sdk/editor/data/Language");
static jclass const langClass = jni::GetGlobalClassRef(env, "app/organicmaps/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_sdk_editor_Editor_nativeGetSupportedLanguages(JNIEnv * env,
}
JNIEXPORT jstring JNICALL
Java_app_organicmaps_sdk_editor_Editor_nativeGetHouseNumber(JNIEnv * env, jclass)
Java_app_organicmaps_editor_Editor_nativeGetHouseNumber(JNIEnv * env, jclass)
{
return jni::ToJavaString(env, g_editableMapObject.GetHouseNumber());
}
JNIEXPORT void JNICALL
Java_app_organicmaps_sdk_editor_Editor_nativeSetHouseNumber(JNIEnv * env, jclass, jstring houseNumber)
Java_app_organicmaps_editor_Editor_nativeSetHouseNumber(JNIEnv * env, jclass, jstring houseNumber)
{
g_editableMapObject.SetHouseNumber(jni::ToNativeString(env, houseNumber));
}
JNIEXPORT jboolean JNICALL
Java_app_organicmaps_sdk_editor_Editor_nativeHasSomethingToUpload(JNIEnv * env, jclass clazz)
Java_app_organicmaps_editor_Editor_nativeHasSomethingToUpload(JNIEnv * env, jclass clazz)
{
return Editor::Instance().HaveMapEditsOrNotesToUpload();
}
JNIEXPORT void JNICALL
Java_app_organicmaps_sdk_editor_Editor_nativeUploadChanges(JNIEnv * env, jclass clazz, jstring token, jstring appVersion, jstring appId)
Java_app_organicmaps_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_sdk_editor_Editor_nativeUploadChanges(JNIEnv * env, jclass
}
JNIEXPORT jlongArray JNICALL
Java_app_organicmaps_sdk_editor_Editor_nativeGetStats(JNIEnv * env, jclass clazz)
Java_app_organicmaps_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_sdk_editor_Editor_nativeGetStats(JNIEnv * env, jclass clazz
}
JNIEXPORT void JNICALL
Java_app_organicmaps_sdk_editor_Editor_nativeClearLocalEdits(JNIEnv * env, jclass clazz)
Java_app_organicmaps_editor_Editor_nativeClearLocalEdits(JNIEnv * env, jclass clazz)
{
Editor::Instance().ClearAllLocalEdits();
}
JNIEXPORT void JNICALL
Java_app_organicmaps_sdk_editor_Editor_nativeStartEdit(JNIEnv *, jclass)
Java_app_organicmaps_editor_Editor_nativeStartEdit(JNIEnv *, jclass)
{
::Framework * frm = g_framework->NativeFramework();
if (!frm->HasPlacePageInfo())
@@ -374,7 +374,7 @@ Java_app_organicmaps_sdk_editor_Editor_nativeStartEdit(JNIEnv *, jclass)
}
JNIEXPORT void JNICALL
Java_app_organicmaps_sdk_editor_Editor_nativeCreateMapObject(JNIEnv * env, jclass,
Java_app_organicmaps_editor_Editor_nativeCreateMapObject(JNIEnv * env, jclass,
jstring featureType)
{
::Framework * frm = g_framework->NativeFramework();
@@ -385,7 +385,7 @@ Java_app_organicmaps_sdk_editor_Editor_nativeCreateMapObject(JNIEnv * env, jclas
// static void nativeCreateNote(String text);
JNIEXPORT void JNICALL
Java_app_organicmaps_sdk_editor_Editor_nativeCreateNote(JNIEnv * env, jclass clazz, jstring text)
Java_app_organicmaps_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_sdk_editor_Editor_nativeCreateNote(JNIEnv * env, jclass cla
// static void nativePlaceDoesNotExist(String comment);
JNIEXPORT void JNICALL
Java_app_organicmaps_sdk_editor_Editor_nativePlaceDoesNotExist(JNIEnv * env, jclass clazz, jstring comment)
Java_app_organicmaps_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_sdk_editor_Editor_nativePlaceDoesNotExist(JNIEnv * env, jcl
}
JNIEXPORT void JNICALL
Java_app_organicmaps_sdk_editor_Editor_nativeRollbackMapObject(JNIEnv * env, jclass clazz)
Java_app_organicmaps_editor_Editor_nativeRollbackMapObject(JNIEnv * env, jclass clazz)
{
g_framework->NativeFramework()->RollBackChanges(g_editableMapObject.GetID());
}
JNIEXPORT jobjectArray JNICALL
Java_app_organicmaps_sdk_editor_Editor_nativeGetAllCreatableFeatureTypes(JNIEnv * env, jclass clazz,
Java_app_organicmaps_editor_Editor_nativeGetAllCreatableFeatureTypes(JNIEnv * env, jclass clazz,
jstring jLang)
{
std::string const & lang = jni::ToNativeString(env, jLang);
@@ -418,7 +418,7 @@ Java_app_organicmaps_sdk_editor_Editor_nativeGetAllCreatableFeatureTypes(JNIEnv
}
JNIEXPORT jobjectArray JNICALL
Java_app_organicmaps_sdk_editor_Editor_nativeSearchCreatableFeatureTypes(JNIEnv * env, jclass clazz,
Java_app_organicmaps_editor_Editor_nativeSearchCreatableFeatureTypes(JNIEnv * env, jclass clazz,
jstring query,
jstring jLang)
{
@@ -430,7 +430,7 @@ Java_app_organicmaps_sdk_editor_Editor_nativeSearchCreatableFeatureTypes(JNIEnv
}
JNIEXPORT jobjectArray JNICALL
Java_app_organicmaps_sdk_editor_Editor_nativeGetCuisines(JNIEnv * env, jclass clazz)
Java_app_organicmaps_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_sdk_editor_Editor_nativeGetCuisines(JNIEnv * env, jclass cl
}
JNIEXPORT jobjectArray JNICALL
Java_app_organicmaps_sdk_editor_Editor_nativeGetSelectedCuisines(JNIEnv * env, jclass clazz)
Java_app_organicmaps_editor_Editor_nativeGetSelectedCuisines(JNIEnv * env, jclass clazz)
{
return jni::ToJavaStringArray(env, g_editableMapObject.GetCuisines());
}
JNIEXPORT jobjectArray JNICALL
Java_app_organicmaps_sdk_editor_Editor_nativeFilterCuisinesKeys(JNIEnv * env, jclass thiz, jstring jSubstr)
Java_app_organicmaps_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_sdk_editor_Editor_nativeFilterCuisinesKeys(JNIEnv * env, jc
}
JNIEXPORT jobjectArray JNICALL
Java_app_organicmaps_sdk_editor_Editor_nativeTranslateCuisines(JNIEnv * env, jclass clazz, jobjectArray jKeys)
Java_app_organicmaps_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_sdk_editor_Editor_nativeTranslateCuisines(JNIEnv * env, jcl
}
JNIEXPORT void JNICALL
Java_app_organicmaps_sdk_editor_Editor_nativeSetSelectedCuisines(JNIEnv * env, jclass clazz, jobjectArray jKeys)
Java_app_organicmaps_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_sdk_editor_Editor_nativeSetSelectedCuisines(JNIEnv * env, j
}
JNIEXPORT jstring JNICALL
Java_app_organicmaps_sdk_editor_Editor_nativeGetFormattedCuisine(JNIEnv * env, jclass clazz)
Java_app_organicmaps_editor_Editor_nativeGetFormattedCuisine(JNIEnv * env, jclass clazz)
{
return jni::ToJavaString(env, g_editableMapObject.FormatCuisines());
}
JNIEXPORT jstring JNICALL
Java_app_organicmaps_sdk_editor_Editor_nativeGetMwmName(JNIEnv * env, jclass clazz)
Java_app_organicmaps_editor_Editor_nativeGetMwmName(JNIEnv * env, jclass clazz)
{
return jni::ToJavaString(env, g_editableMapObject.GetID().GetMwmName());
}
JNIEXPORT jlong JNICALL
Java_app_organicmaps_sdk_editor_Editor_nativeGetMwmVersion(JNIEnv * env, jclass clazz)
Java_app_organicmaps_editor_Editor_nativeGetMwmVersion(JNIEnv * env, jclass clazz)
{
return g_editableMapObject.GetID().GetMwmVersion();
}
// static boolean nativeIsHouseValid(String houseNumber);
JNIEXPORT jboolean JNICALL
Java_app_organicmaps_sdk_editor_Editor_nativeIsHouseValid(JNIEnv * env, jclass clazz, jstring houseNumber)
Java_app_organicmaps_editor_Editor_nativeIsHouseValid(JNIEnv * env, jclass clazz, jstring houseNumber)
{
return osm::EditableMapObject::ValidateHouseNumber(jni::ToNativeString(env, houseNumber));
}
JNIEXPORT jboolean JNICALL
Java_app_organicmaps_sdk_editor_Editor_nativeIsNameValid(JNIEnv * env, jclass clazz, jstring name)
Java_app_organicmaps_editor_Editor_nativeIsNameValid(JNIEnv * env, jclass clazz, jstring name)
{
return osm::EditableMapObject::ValidateName(jni::ToNativeString(env, name));
}
JNIEXPORT jstring JNICALL
Java_app_organicmaps_sdk_editor_Editor_nativeGetCategory(JNIEnv * env, jclass clazz)
Java_app_organicmaps_editor_Editor_nativeGetCategory(JNIEnv * env, jclass clazz)
{
auto types = g_editableMapObject.GetTypes();
types.SortBySpec();
@@ -534,20 +534,20 @@ Java_app_organicmaps_sdk_editor_Editor_nativeGetCategory(JNIEnv * env, jclass cl
// @FeatureStatus
// static native int nativeGetMapObjectStatus();
JNIEXPORT jint JNICALL
Java_app_organicmaps_sdk_editor_Editor_nativeGetMapObjectStatus(JNIEnv * env, jclass clazz)
Java_app_organicmaps_editor_Editor_nativeGetMapObjectStatus(JNIEnv * env, jclass clazz)
{
return static_cast<jint>(osm::Editor::Instance().GetFeatureStatus(g_editableMapObject.GetID()));
}
JNIEXPORT jboolean JNICALL
Java_app_organicmaps_sdk_editor_Editor_nativeIsMapObjectUploaded(JNIEnv * env, jclass clazz)
Java_app_organicmaps_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_sdk_editor_Editor_nativeMakeLocalizedName(JNIEnv * env, jclass clazz, jstring code, jstring name)
Java_app_organicmaps_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);

View File

@@ -1,7 +1,7 @@
#include <jni.h>
#include "app/organicmaps/sdk/core/jni_helper.hpp"
#include "app/organicmaps/sdk/platform/AndroidPlatform.hpp"
#include "app/organicmaps/core/jni_helper.hpp"
#include "app/organicmaps/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/sdk/util/DateUtils");
"app/organicmaps/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_sdk_editor_OpeningHours_nativeInit(JNIEnv * env, jclass clazz)
Java_app_organicmaps_editor_OpeningHours_nativeInit(JNIEnv * env, jclass clazz)
{
g_clazzHoursMinutes = jni::GetGlobalClassRef(env, "app/organicmaps/sdk/editor/data/HoursMinutes");
g_clazzHoursMinutes = jni::GetGlobalClassRef(env, "app/organicmaps/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_sdk_editor_OpeningHours_nativeInit(JNIEnv * env, jclass cla
g_fidMinutes = env->GetFieldID(g_clazzHoursMinutes, "minutes", "J");
ASSERT(g_fidMinutes, (jni::DescribeException()));
g_clazzTimespan = jni::GetGlobalClassRef(env, "app/organicmaps/sdk/editor/data/Timespan");
g_clazzTimespan = jni::GetGlobalClassRef(env, "app/organicmaps/editor/data/Timespan");
// Java signature : Timespan(HoursMinutes start, HoursMinutes end)
g_ctorTimespan =
env->GetMethodID(g_clazzTimespan, "<init>","(Lapp/organicmaps/sdk/editor/data/HoursMinutes;Lapp/organicmaps/sdk/editor/data/HoursMinutes;)V");
env->GetMethodID(g_clazzTimespan, "<init>","(Lapp/organicmaps/editor/data/HoursMinutes;Lapp/organicmaps/editor/data/HoursMinutes;)V");
ASSERT(g_ctorTimespan, (jni::DescribeException()));
g_fidStart = env->GetFieldID(g_clazzTimespan, "start", "Lapp/organicmaps/sdk/editor/data/HoursMinutes;");
g_fidStart = env->GetFieldID(g_clazzTimespan, "start", "Lapp/organicmaps/editor/data/HoursMinutes;");
ASSERT(g_fidStart, (jni::DescribeException()));
g_fidEnd = env->GetFieldID(g_clazzTimespan, "end", "Lapp/organicmaps/sdk/editor/data/HoursMinutes;");
g_fidEnd = env->GetFieldID(g_clazzTimespan, "end", "Lapp/organicmaps/editor/data/HoursMinutes;");
ASSERT(g_fidEnd, (jni::DescribeException()));
g_clazzTimetable = jni::GetGlobalClassRef(env, "app/organicmaps/sdk/editor/data/Timetable");
g_clazzTimetable = jni::GetGlobalClassRef(env, "app/organicmaps/editor/data/Timetable");
// Java signature : Timetable(Timespan workingTime, Timespan[] closedHours, boolean isFullday, int weekdays[])
g_ctorTimetable =
env->GetMethodID(g_clazzTimetable, "<init>","(Lapp/organicmaps/sdk/editor/data/Timespan;[Lapp/organicmaps/sdk/editor/data/Timespan;Z[I)V");
env->GetMethodID(g_clazzTimetable, "<init>","(Lapp/organicmaps/editor/data/Timespan;[Lapp/organicmaps/editor/data/Timespan;Z[I)V");
ASSERT(g_ctorTimetable, (jni::DescribeException()));
g_fidWorkingTimespan = env->GetFieldID(g_clazzTimetable, "workingTimespan", "Lapp/organicmaps/sdk/editor/data/Timespan;");
g_fidWorkingTimespan = env->GetFieldID(g_clazzTimetable, "workingTimespan", "Lapp/organicmaps/editor/data/Timespan;");
ASSERT(g_fidWorkingTimespan, (jni::DescribeException()));
g_fidClosedTimespans = env->GetFieldID(g_clazzTimetable, "closedTimespans", "[Lapp/organicmaps/sdk/editor/data/Timespan;");
g_fidClosedTimespans = env->GetFieldID(g_clazzTimetable, "closedTimespans", "[Lapp/organicmaps/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_sdk_editor_OpeningHours_nativeInit(JNIEnv * env, jclass cla
}
JNIEXPORT jobjectArray JNICALL
Java_app_organicmaps_sdk_editor_OpeningHours_nativeGetDefaultTimetables(JNIEnv * env, jclass clazz)
Java_app_organicmaps_editor_OpeningHours_nativeGetDefaultTimetables(JNIEnv * env, jclass clazz)
{
TimeTableSet tts;
return JavaTimetables(env, tts);
}
JNIEXPORT jobject JNICALL
Java_app_organicmaps_sdk_editor_OpeningHours_nativeGetComplementTimetable(JNIEnv * env, jclass clazz, jobjectArray timetables)
Java_app_organicmaps_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_sdk_editor_OpeningHours_nativeRemoveWorkingDay(JNIEnv * env, jclass clazz,
Java_app_organicmaps_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_sdk_editor_OpeningHours_nativeRemoveWorkingDay(JNIEnv * env
}
JNIEXPORT jobjectArray JNICALL
Java_app_organicmaps_sdk_editor_OpeningHours_nativeAddWorkingDay(JNIEnv * env, jclass clazz,
Java_app_organicmaps_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_sdk_editor_OpeningHours_nativeAddWorkingDay(JNIEnv * env, j
}
JNIEXPORT jobject JNICALL
Java_app_organicmaps_sdk_editor_OpeningHours_nativeSetIsFullday(JNIEnv * env, jclass clazz,
Java_app_organicmaps_editor_OpeningHours_nativeSetIsFullday(JNIEnv * env, jclass clazz,
jobject jTimetable, jboolean jIsFullday)
{
TimeTable tt = NativeTimetable(env, jTimetable);
@@ -270,7 +270,7 @@ Java_app_organicmaps_sdk_editor_OpeningHours_nativeSetIsFullday(JNIEnv * env, jc
}
JNIEXPORT jobject JNICALL
Java_app_organicmaps_sdk_editor_OpeningHours_nativeSetOpeningTime(JNIEnv * env, jclass clazz,
Java_app_organicmaps_editor_OpeningHours_nativeSetOpeningTime(JNIEnv * env, jclass clazz,
jobject jTimetable, jobject jOpeningTime)
{
TimeTable tt = NativeTimetable(env, jTimetable);
@@ -279,7 +279,7 @@ Java_app_organicmaps_sdk_editor_OpeningHours_nativeSetOpeningTime(JNIEnv * env,
}
JNIEXPORT jobject JNICALL
Java_app_organicmaps_sdk_editor_OpeningHours_nativeAddClosedSpan(JNIEnv * env, jclass clazz,
Java_app_organicmaps_editor_OpeningHours_nativeAddClosedSpan(JNIEnv * env, jclass clazz,
jobject jTimetable, jobject jClosedSpan)
{
TimeTable tt = NativeTimetable(env, jTimetable);
@@ -288,7 +288,7 @@ Java_app_organicmaps_sdk_editor_OpeningHours_nativeAddClosedSpan(JNIEnv * env, j
}
JNIEXPORT jobject JNICALL
Java_app_organicmaps_sdk_editor_OpeningHours_nativeRemoveClosedSpan(JNIEnv * env, jclass clazz,
Java_app_organicmaps_editor_OpeningHours_nativeRemoveClosedSpan(JNIEnv * env, jclass clazz,
jobject jTimetable, jint jClosedSpanIndex)
{
TimeTable tt = NativeTimetable(env, jTimetable);
@@ -297,7 +297,7 @@ Java_app_organicmaps_sdk_editor_OpeningHours_nativeRemoveClosedSpan(JNIEnv * env
}
JNIEXPORT jobjectArray JNICALL
Java_app_organicmaps_sdk_editor_OpeningHours_nativeTimetablesFromString(JNIEnv * env, jclass clazz, jstring jSource)
Java_app_organicmaps_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_sdk_editor_OpeningHours_nativeTimetablesFromString(JNIEnv *
}
JNIEXPORT jstring JNICALL
Java_app_organicmaps_sdk_editor_OpeningHours_nativeTimetablesToString(JNIEnv * env, jclass clazz, jobjectArray jTts)
Java_app_organicmaps_editor_OpeningHours_nativeTimetablesToString(JNIEnv * env, jclass clazz, jobjectArray jTts)
{
TimeTableSet tts = NativeTimetableSet(env, jTts);
std::stringstream sstr;
@@ -317,34 +317,8 @@ Java_app_organicmaps_sdk_editor_OpeningHours_nativeTimetablesToString(JNIEnv * e
}
JNIEXPORT jboolean JNICALL
Java_app_organicmaps_sdk_editor_OpeningHours_nativeIsTimetableStringValid(JNIEnv * env, jclass clazz, jstring jSource)
Java_app_organicmaps_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"

View File

@@ -1,7 +1,7 @@
#include <jni.h>
#include "app/organicmaps/sdk/core/jni_helper.hpp"
#include "app/organicmaps/sdk/Framework.hpp"
#include "app/organicmaps/core/jni_helper.hpp"
#include "app/organicmaps/Framework.hpp"
#include "base/logging.hpp"
#include "base/string_utils.hpp"
@@ -17,9 +17,17 @@ using namespace jni;
bool LoadOsmUserPreferences(std::string const & oauthToken, UserPreferences & outPrefs)
{
ServerApi06 const api(OsmOAuth::ServerAuth(oauthToken));
outPrefs = api.GetUserPreferences();
return (outPrefs.m_id != 0);
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;
}
} // namespace
@@ -27,14 +35,14 @@ extern "C"
{
JNIEXPORT jstring JNICALL
Java_app_organicmaps_sdk_editor_OsmOAuth_nativeGetOAuth2Url(JNIEnv * env, jclass)
Java_app_organicmaps_editor_OsmOAuth_nativeGetOAuth2Url(JNIEnv * env, jclass)
{
auto const auth = OsmOAuth::ServerAuth();
return ToJavaString(env, auth.BuildOAuth2Url());
}
JNIEXPORT jstring JNICALL
Java_app_organicmaps_sdk_editor_OsmOAuth_nativeAuthWithPassword(JNIEnv * env, jclass clazz,
Java_app_organicmaps_editor_OsmOAuth_nativeAuthWithPassword(JNIEnv * env, jclass clazz,
jstring login, jstring password)
{
OsmOAuth auth = OsmOAuth::ServerAuth();
@@ -52,7 +60,7 @@ Java_app_organicmaps_sdk_editor_OsmOAuth_nativeAuthWithPassword(JNIEnv * env, jc
}
JNIEXPORT jstring JNICALL
Java_app_organicmaps_sdk_editor_OsmOAuth_nativeAuthWithOAuth2Code(JNIEnv * env, jclass, jstring oauth2code)
Java_app_organicmaps_editor_OsmOAuth_nativeAuthWithOAuth2Code(JNIEnv * env, jclass, jstring oauth2code)
{
OsmOAuth auth = OsmOAuth::ServerAuth();
try
@@ -73,7 +81,7 @@ Java_app_organicmaps_sdk_editor_OsmOAuth_nativeAuthWithOAuth2Code(JNIEnv * env,
}
JNIEXPORT jstring JNICALL
Java_app_organicmaps_sdk_editor_OsmOAuth_nativeGetOsmUsername(JNIEnv * env, jclass, jstring oauthToken)
Java_app_organicmaps_editor_OsmOAuth_nativeGetOsmUsername(JNIEnv * env, jclass, jstring oauthToken)
{
UserPreferences prefs;
if (LoadOsmUserPreferences(jni::ToNativeString(env, oauthToken), prefs))
@@ -82,7 +90,7 @@ Java_app_organicmaps_sdk_editor_OsmOAuth_nativeGetOsmUsername(JNIEnv * env, jcla
}
JNIEXPORT jint JNICALL
Java_app_organicmaps_sdk_editor_OsmOAuth_nativeGetOsmChangesetsCount(JNIEnv * env, jclass, jstring oauthToken)
Java_app_organicmaps_editor_OsmOAuth_nativeGetOsmChangesetsCount(JNIEnv * env, jclass, jstring oauthToken)
{
UserPreferences prefs;
if (LoadOsmUserPreferences(jni::ToNativeString(env, oauthToken), prefs))
@@ -91,7 +99,7 @@ Java_app_organicmaps_sdk_editor_OsmOAuth_nativeGetOsmChangesetsCount(JNIEnv * en
}
JNIEXPORT jstring JNICALL
Java_app_organicmaps_sdk_editor_OsmOAuth_nativeGetOsmProfilePictureUrl(JNIEnv * env, jclass, jstring oauthToken)
Java_app_organicmaps_editor_OsmOAuth_nativeGetOsmProfilePictureUrl(JNIEnv * env, jclass, jstring oauthToken)
{
UserPreferences prefs;
if (LoadOsmUserPreferences(jni::ToNativeString(env, oauthToken), prefs))
@@ -100,13 +108,13 @@ Java_app_organicmaps_sdk_editor_OsmOAuth_nativeGetOsmProfilePictureUrl(JNIEnv *
}
JNIEXPORT jstring JNICALL
Java_app_organicmaps_sdk_editor_OsmOAuth_nativeGetHistoryUrl(JNIEnv * env, jclass, jstring user)
Java_app_organicmaps_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_sdk_editor_OsmOAuth_nativeGetNotesUrl(JNIEnv * env, jclass, jstring user)
Java_app_organicmaps_editor_OsmOAuth_nativeGetNotesUrl(JNIEnv * env, jclass, jstring user)
{
return jni::ToJavaString(env, OsmOAuth::ServerAuth().GetNotesURL(jni::ToNativeString(env, user)));
}

View File

@@ -1,7 +1,7 @@
#include <jni.h>
#include "app/organicmaps/sdk/Framework.hpp"
#include "app/organicmaps/sdk/core/jni_helper.hpp"
#include "app/organicmaps/sdk/platform/AndroidPlatform.hpp"
#include "app/organicmaps/Framework.hpp"
#include "app/organicmaps/core/jni_helper.hpp"
#include "app/organicmaps/platform/AndroidPlatform.hpp"
using namespace std::placeholders;
@@ -19,7 +19,7 @@ static void IsolinesStateChanged(IsolinesManager::IsolinesState state,
JNIEXPORT void JNICALL
Java_app_organicmaps_sdk_maplayer_isolines_IsolinesManager_nativeAddListener(JNIEnv *env, jclass clazz, jobject listener)
Java_app_organicmaps_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_sdk_maplayer_isolines_IsolinesManager_nativeAddListener(JNI
}
JNIEXPORT void JNICALL
Java_app_organicmaps_sdk_maplayer_isolines_IsolinesManager_nativeRemoveListener(JNIEnv * env, jclass clazz)
Java_app_organicmaps_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_sdk_maplayer_isolines_IsolinesManager_nativeShouldShowNotification(JNIEnv *env,
Java_app_organicmaps_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