Compare commits

..

1 Commits

Author SHA1 Message Date
Konstantin Pastbin
a0b3d54774 [android] Add intermediate GS cert to fix comaps-cdn.s3-website.cloud.ru maps downloads
Signed-off-by: Konstantin Pastbin <konstantin.pastbin@gmail.com>
2025-07-23 20:14:45 +07:00
714 changed files with 5045 additions and 9706 deletions

4
.gitignore vendored
View File

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

View File

@@ -103,29 +103,12 @@ if (${CMAKE_BUILD_TYPE} STREQUAL "Debug")
elseif (${CMAKE_BUILD_TYPE} MATCHES "Rel") elseif (${CMAKE_BUILD_TYPE} MATCHES "Rel")
add_definitions(-DRELEASE) add_definitions(-DRELEASE)
if (NOT MSVC) 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() endif()
else() else()
message(FATAL_ERROR "Unknown build type: " ${CMAKE_BUILD_TYPE}) message(FATAL_ERROR "Unknown build type: " ${CMAKE_BUILD_TYPE})
endif() 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}) message(STATUS "Build type: " ${CMAKE_BUILD_TYPE})
if (PLATFORM_LINUX OR PLATFORM_ANDROID) if (PLATFORM_LINUX OR PLATFORM_ANDROID)
@@ -259,10 +242,6 @@ if (PLATFORM_DESKTOP)
add_subdirectory(qt) add_subdirectory(qt)
omim_add_tool_subdirectory(skin_generator) omim_add_tool_subdirectory(skin_generator)
endif() 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) add_subdirectory(dev_sandbox)
endif() endif()

View File

@@ -76,18 +76,10 @@ android {
dataBinding = true dataBinding = true
buildConfig = 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 // All properties are read from gradle.properties file
compileSdk propCompileSdkVersion.toInteger() compileSdk propCompileSdkVersion.toInteger()
ndkVersion '28.2.13676358' ndkVersion '27.2.12479018'
defaultConfig { defaultConfig {
// Default package name is taken from the manifest and should be app.comaps // Default package name is taken from the manifest and should be app.comaps

View File

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

View File

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

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_COARSE_LOCATION;
import static android.Manifest.permission.ACCESS_FINE_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.app.PendingIntent;
import android.content.Context; 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.Priority;
import com.google.android.gms.location.SettingsClient; import com.google.android.gms.location.SettingsClient;
import app.organicmaps.sdk.util.LocationUtils; import app.organicmaps.util.LocationUtils;
import app.organicmaps.sdk.util.log.Logger; import app.organicmaps.util.log.Logger;
class GoogleFusedLocationProvider extends BaseLocationProvider class GoogleFusedLocationProvider extends BaseLocationProvider
{ {

View File

@@ -1,13 +1,12 @@
package app.organicmaps.sdk.location; package app.organicmaps.location;
import android.content.Context; import android.content.Context;
import androidx.annotation.NonNull; import androidx.annotation.NonNull;
import com.google.android.gms.common.ConnectionResult; import com.google.android.gms.common.ConnectionResult;
import com.google.android.gms.common.GoogleApiAvailability; import com.google.android.gms.common.GoogleApiAvailability;
import app.organicmaps.util.Config;
import app.organicmaps.sdk.util.Config; import app.organicmaps.util.log.Logger;
import app.organicmaps.sdk.util.log.Logger;
public class LocationProviderFactory public class LocationProviderFactory
{ {

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 @@
Comaps - Pribatuki nabigatu

View File

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

View File

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

View File

@@ -5,21 +5,21 @@ project(organicmaps C CXX)
set(SRC set(SRC
# JNI headers # JNI headers
../../../../../private.h ../../../../../private.h
app/organicmaps/sdk/core/jni_helper.hpp app/organicmaps/core/jni_helper.hpp
app/organicmaps/sdk/core/jni_java_methods.hpp app/organicmaps/core/jni_java_methods.hpp
app/organicmaps/sdk/core/logging.hpp app/organicmaps/core/logging.hpp
app/organicmaps/sdk/core/ScopedEnv.hpp app/organicmaps/core/ScopedEnv.hpp
app/organicmaps/sdk/core/ScopedLocalRef.hpp app/organicmaps/core/ScopedLocalRef.hpp
app/organicmaps/sdk/Framework.hpp app/organicmaps/Framework.hpp
app/organicmaps/sdk/opengl/android_gl_utils.hpp app/organicmaps/opengl/android_gl_utils.hpp
app/organicmaps/sdk/opengl/androidoglcontext.hpp app/organicmaps/opengl/androidoglcontext.hpp
app/organicmaps/sdk/opengl/androidoglcontextfactory.hpp app/organicmaps/opengl/androidoglcontextfactory.hpp
app/organicmaps/sdk/opengl/gl3stub.h app/organicmaps/opengl/gl3stub.h
app/organicmaps/sdk/platform/GuiThread.hpp app/organicmaps/platform/GuiThread.hpp
app/organicmaps/sdk/platform/AndroidPlatform.hpp app/organicmaps/platform/AndroidPlatform.hpp
app/organicmaps/sdk/util/Distance.hpp app/organicmaps/util/Distance.hpp
app/organicmaps/sdk/util/FeatureIdBuilder.hpp app/organicmaps/util/FeatureIdBuilder.hpp
app/organicmaps/sdk/vulkan/android_vulkan_context_factory.hpp app/organicmaps/vulkan/android_vulkan_context_factory.hpp
# JNI sources # JNI sources
app/organicmaps/sdk/search/DisplayedCategories.cpp app/organicmaps/sdk/search/DisplayedCategories.cpp
@@ -39,47 +39,47 @@ set(SRC
app/organicmaps/sdk/MapStyle.cpp app/organicmaps/sdk/MapStyle.cpp
app/organicmaps/sdk/OrganicMaps.cpp app/organicmaps/sdk/OrganicMaps.cpp
app/organicmaps/sdk/Router.cpp app/organicmaps/sdk/Router.cpp
app/organicmaps/sdk/core/jni_helper.cpp app/organicmaps/core/jni_helper.cpp
app/organicmaps/sdk/core/jni_java_methods.cpp app/organicmaps/core/jni_java_methods.cpp
app/organicmaps/sdk/core/logging.cpp app/organicmaps/core/logging.cpp
app/organicmaps/sdk/bookmarks/data/BookmarkManager.cpp app/organicmaps/bookmarks/data/BookmarkManager.cpp
app/organicmaps/sdk/DownloadResourcesLegacyActivity.cpp app/organicmaps/DownloadResourcesLegacyActivity.cpp
app/organicmaps/sdk/editor/Editor.cpp app/organicmaps/editor/Editor.cpp
app/organicmaps/sdk/editor/OpeningHours.cpp app/organicmaps/editor/OpeningHours.cpp
app/organicmaps/sdk/editor/OsmOAuth.cpp app/organicmaps/editor/OsmOAuth.cpp
app/organicmaps/sdk/Framework.cpp app/organicmaps/Framework.cpp
app/organicmaps/sdk/isolines/IsolinesManager.cpp app/organicmaps/isolines/IsolinesManager.cpp
app/organicmaps/sdk/LocationState.cpp app/organicmaps/LocationState.cpp
app/organicmaps/sdk/Map.cpp app/organicmaps/Map.cpp
app/organicmaps/sdk/MapManager.cpp app/organicmaps/MapManager.cpp
app/organicmaps/sdk/settings/UnitLocale.cpp app/organicmaps/settings/UnitLocale.cpp
app/organicmaps/sdk/settings/MapLanguageCode.cpp app/organicmaps/settings/MapLanguageCode.cpp
app/organicmaps/sdk/sound/tts.cpp app/organicmaps/sound/tts.cpp
app/organicmaps/sdk/subway/SubwayManager.cpp app/organicmaps/subway/SubwayManager.cpp
app/organicmaps/sdk/TrackRecorder.cpp app/organicmaps/TrackRecorder.cpp
app/organicmaps/sdk/TrafficState.cpp app/organicmaps/TrafficState.cpp
app/organicmaps/sdk/UserMarkHelper.cpp app/organicmaps/UserMarkHelper.cpp
app/organicmaps/sdk/opengl/android_gl_utils.cpp app/organicmaps/opengl/android_gl_utils.cpp
app/organicmaps/sdk/opengl/androidoglcontext.cpp app/organicmaps/opengl/androidoglcontext.cpp
app/organicmaps/sdk/opengl/androidoglcontextfactory.cpp app/organicmaps/opengl/androidoglcontextfactory.cpp
app/organicmaps/sdk/opengl/gl3stub.cpp app/organicmaps/opengl/gl3stub.cpp
app/organicmaps/sdk/platform/GuiThread.cpp app/organicmaps/platform/GuiThread.cpp
app/organicmaps/sdk/platform/HttpThread.cpp app/organicmaps/platform/HttpThread.cpp
app/organicmaps/sdk/platform/Language.cpp app/organicmaps/platform/Language.cpp
app/organicmaps/sdk/platform/Localization.cpp app/organicmaps/platform/Localization.cpp
app/organicmaps/sdk/platform/AndroidPlatform.cpp app/organicmaps/platform/AndroidPlatform.cpp
app/organicmaps/sdk/platform/PThreadImpl.cpp app/organicmaps/platform/PThreadImpl.cpp
app/organicmaps/sdk/platform/SecureStorage.cpp app/organicmaps/platform/SecureStorage.cpp
app/organicmaps/sdk/platform/SocketImpl.cpp app/organicmaps/platform/SocketImpl.cpp
app/organicmaps/sdk/util/Config.cpp app/organicmaps/util/Config.cpp
app/organicmaps/sdk/util/GeoUtils.cpp app/organicmaps/util/GeoUtils.cpp
app/organicmaps/sdk/util/HttpClient.cpp app/organicmaps/util/HttpClient.cpp
app/organicmaps/sdk/util/Language.cpp app/organicmaps/util/Language.cpp
app/organicmaps/sdk/util/LogsManager.cpp app/organicmaps/util/LogsManager.cpp
app/organicmaps/sdk/util/NetworkPolicy.cpp app/organicmaps/util/NetworkPolicy.cpp
app/organicmaps/sdk/util/StringUtils.cpp app/organicmaps/util/StringUtils.cpp
app/organicmaps/sdk/util/UiThread.cpp app/organicmaps/util/UiThread.cpp
app/organicmaps/sdk/vulkan/android_vulkan_context_factory.cpp app/organicmaps/vulkan/android_vulkan_context_factory.cpp
) )
omim_add_library(${PROJECT_NAME} SHARED ${SRC}) omim_add_library(${PROJECT_NAME} SHARED ${SRC})

View File

@@ -16,7 +16,7 @@
#include "base/logging.hpp" #include "base/logging.hpp"
#include "base/string_utils.hpp" #include "base/string_utils.hpp"
#include "app/organicmaps/sdk/core/jni_helper.hpp" #include "app/organicmaps/core/jni_helper.hpp"
#include <functional> #include <functional>
#include <iostream> #include <iostream>
@@ -70,7 +70,7 @@ extern "C"
} }
JNIEXPORT jint JNICALL JNIEXPORT jint JNICALL
Java_app_organicmaps_sdk_DownloadResourcesLegacyActivity_nativeGetBytesToDownload(JNIEnv * env, jclass clazz) Java_app_organicmaps_DownloadResourcesLegacyActivity_nativeGetBytesToDownload(JNIEnv * env, jclass clazz)
{ {
// clear all // clear all
g_filesToDownload.clear(); g_filesToDownload.clear();
@@ -149,7 +149,7 @@ extern "C"
} }
JNIEXPORT jint JNICALL 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()) if (g_filesToDownload.empty())
return ERR_NO_MORE_FILES; return ERR_NO_MORE_FILES;
@@ -178,7 +178,7 @@ extern "C"
} }
JNIEXPORT void JNICALL 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)); LOG(LDEBUG, ("cancelCurrentFile, currentRequest=", g_currentRequest));
g_currentRequest.reset(); 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/core/jni_helper.hpp"
#include "app/organicmaps/sdk/UserMarkHelper.hpp" #include "app/organicmaps/UserMarkHelper.hpp"
#include "app/organicmaps/sdk/opengl/androidoglcontextfactory.hpp" #include "app/organicmaps/opengl/androidoglcontextfactory.hpp"
#include "app/organicmaps/sdk/platform/AndroidPlatform.hpp" #include "app/organicmaps/platform/AndroidPlatform.hpp"
#include "app/organicmaps/sdk/routing/JunctionInfo.hpp" #include "app/organicmaps/sdk/routing/JunctionInfo.hpp"
#include "app/organicmaps/sdk/routing/RouteMarkData.hpp" #include "app/organicmaps/sdk/routing/RouteMarkData.hpp"
#include "app/organicmaps/sdk/routing/RouteMarkType.hpp" #include "app/organicmaps/sdk/routing/RouteMarkType.hpp"
#include "app/organicmaps/sdk/routing/RouteRecommendationType.hpp" #include "app/organicmaps/sdk/routing/RouteRecommendationType.hpp"
#include "app/organicmaps/sdk/routing/RoutingInfo.hpp" #include "app/organicmaps/sdk/routing/RoutingInfo.hpp"
#include "app/organicmaps/sdk/routing/TransitRouteInfo.hpp" #include "app/organicmaps/sdk/routing/TransitRouteInfo.hpp"
#include "app/organicmaps/sdk/util/Distance.hpp" #include "app/organicmaps/util/Distance.hpp"
#include "app/organicmaps/sdk/util/FeatureIdBuilder.hpp" #include "app/organicmaps/util/FeatureIdBuilder.hpp"
#include "app/organicmaps/sdk/util/NetworkPolicy.hpp" #include "app/organicmaps/util/NetworkPolicy.hpp"
#include "app/organicmaps/sdk/vulkan/android_vulkan_context_factory.hpp" #include "app/organicmaps/vulkan/android_vulkan_context_factory.hpp"
#include "map/bookmark_helpers.hpp" #include "map/bookmark_helpers.hpp"
#include "map/chart_generator.hpp" #include "map/chart_generator.hpp"
@@ -824,35 +824,35 @@ RoutingManager::LoadRouteHandler g_loadRouteHandler;
/// @name JNI EXPORTS /// @name JNI EXPORTS
JNIEXPORT jstring JNICALL 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)); auto const info = frm()->GetAddressAtPoint(mercator::FromLatLon(lat, lon));
return jni::ToJavaString(env, info.FormatAddress()); return jni::ToJavaString(env, info.FormatAddress());
} }
JNIEXPORT void JNICALL 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); frm()->GetBookmarkManager().GetEditSession().ClearGroup(UserMark::Type::API);
} }
JNIEXPORT jint JNICALL 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))); return static_cast<jint>(frm()->ParseAndSetApiURL(jni::ToNativeString(env, url)));
} }
JNIEXPORT jobject JNICALL 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; 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) // Java signature : RoutePoint(double lat, double lon, String name)
static jmethodID const pointConstructor = jni::GetConstructorID(env, pointClazz, "(DDLjava/lang/String;)V"); 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) { // 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(); auto const & routingData = frm()->GetParsedRoutingData();
jobjectArray points = jni::ToJavaArray(env, pointClazz, routingData.m_points, 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 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; 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) // 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"); static jmethodID const ctor = jni::GetConstructorID(env, cl, "(Ljava/lang/String;Ljava/lang/String;DDZ)V");
auto const & r = frm()->GetParsedSearchRequest(); auto const & r = frm()->GetParsedSearchRequest();
@@ -880,28 +880,28 @@ Java_app_organicmaps_sdk_Framework_nativeGetParsedSearchRequest(JNIEnv * env, jc
} }
JNIEXPORT jstring JNICALL 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(); std::string const & appName = frm()->GetParsedAppName();
return (appName.empty()) ? nullptr : jni::ToJavaString(env, appName); return (appName.empty()) ? nullptr : jni::ToJavaString(env, appName);
} }
JNIEXPORT jstring JNICALL 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(); std::string const & code = frm()->GetParsedOAuth2Code();
return jni::ToJavaString(env, code); return jni::ToJavaString(env, code);
} }
JNIEXPORT jstring JNICALL 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(); std::string const & backUrl = frm()->GetParsedBackUrl();
return (backUrl.empty()) ? nullptr : jni::ToJavaString(env, backUrl); return (backUrl.empty()) ? nullptr : jni::ToJavaString(env, backUrl);
} }
JNIEXPORT jdoubleArray JNICALL 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(); ms::LatLon const center = frm()->GetParsedCenterLatLon();
if (!center.IsValid()) if (!center.IsValid())
@@ -915,14 +915,14 @@ Java_app_organicmaps_sdk_Framework_nativeGetParsedCenterLatLon(JNIEnv * env, jcl
} }
JNIEXPORT void JNICALL 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")); LOG(LINFO, ("Set global map object listener"));
g_placePageActivationListener = env->NewGlobalRef(jListener); g_placePageActivationListener = env->NewGlobalRef(jListener);
// void onPlacePageActivated(MapObject object); // void onPlacePageActivated(MapObject object);
jmethodID const activatedId = jni::GetMethodID(env, g_placePageActivationListener, jmethodID const activatedId = jni::GetMethodID(env, g_placePageActivationListener,
"onPlacePageActivated", "onPlacePageActivated",
"(Lapp/organicmaps/sdk/widget/placepage/PlacePageData;)V"); "(Lapp/organicmaps/widget/placepage/PlacePageData;)V");
// void onPlacePageDeactivated(); // void onPlacePageDeactivated();
jmethodID const deactivateId = jni::GetMethodID(env, g_placePageActivationListener, jmethodID const deactivateId = jni::GetMethodID(env, g_placePageActivationListener,
"onPlacePageDeactivated", "()V"); "onPlacePageDeactivated", "()V");
@@ -962,7 +962,7 @@ Java_app_organicmaps_sdk_Framework_nativePlacePageActivationListener(JNIEnv *env
} }
JNIEXPORT void JNICALL 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) if (g_placePageActivationListener == nullptr)
return; return;
@@ -977,7 +977,7 @@ Java_app_organicmaps_sdk_Framework_nativeRemovePlacePageActivationListener(JNIEn
} }
JNIEXPORT jstring JNICALL 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(); ::Framework * fr = frm();
double const scale = (zoomLevel > 0 ? zoomLevel : fr->GetDrawScale()); 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 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(); ::Framework * fr = frm();
double const scale = (zoomLevel > 0 ? zoomLevel : fr->GetDrawScale()); 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 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) JNIEnv * env, jclass, jdouble merX, jdouble merY, jdouble cLat, jdouble cLon, jdouble north)
{ {
platform::Distance distance; platform::Distance distance;
double azimut = -1.0; double azimut = -1.0;
frm()->GetDistanceAndAzimut(m2::PointD(merX, merY), cLat, cLon, north, distance, azimut); 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) // 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, return env->NewObject(daClazz, methodID,
ToJavaDistance(env, distance), ToJavaDistance(env, distance),
@@ -1012,16 +1012,16 @@ Java_app_organicmaps_sdk_Framework_nativeGetDistanceAndAzimuth(
} }
JNIEXPORT jobject JNICALL 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) JNIEnv * env, jclass clazz, jdouble lat, jdouble lon, jdouble cLat, jdouble cLon, jdouble north)
{ {
double const merY = mercator::LatToY(lat); double const merY = mercator::LatToY(lat);
double const merX = mercator::LonToX(lon); 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 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)) switch (static_cast<android::CoordinatesFormat>(coordsFormat))
{ {
@@ -1054,13 +1054,13 @@ Java_app_organicmaps_sdk_Framework_nativeFormatLatLon(JNIEnv * env, jclass, jdou
} }
JNIEXPORT jstring JNICALL 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)); return jni::ToJavaString(env, platform::Distance::FormatAltitude(alt));
} }
JNIEXPORT jstring JNICALL 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(); auto const units = measurement_utils::GetMeasurementUnits();
return jni::ToJavaString(env, measurement_utils::FormatSpeedNumeric(speed, units) + " " + 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 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()); return jni::ToJavaString(env, g_framework->GetOutdatedCountriesString());
} }
JNIEXPORT jobjectArray JNICALL JNIEXPORT jobjectArray JNICALL
Java_app_organicmaps_sdk_Framework_nativeGetOutdatedCountries(JNIEnv * env, jclass) Java_app_organicmaps_Framework_nativeGetOutdatedCountries(JNIEnv * env, jclass)
{ {
vector<Country const *> countries; vector<Country const *> countries;
Storage const & storage = g_framework->GetStorage(); Storage const & storage = g_framework->GetStorage();
@@ -1089,44 +1089,44 @@ Java_app_organicmaps_sdk_Framework_nativeGetOutdatedCountries(JNIEnv * env, jcla
} }
JNIEXPORT jint JNICALL JNIEXPORT jint JNICALL
Java_app_organicmaps_sdk_Framework_nativeToDoAfterUpdate(JNIEnv * env, jclass) Java_app_organicmaps_Framework_nativeToDoAfterUpdate(JNIEnv * env, jclass)
{ {
return g_framework->ToDoAfterUpdate(); return g_framework->ToDoAfterUpdate();
} }
JNIEXPORT jboolean JNICALL 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; return frm()->IsDataVersionUpdated() ? JNI_TRUE : JNI_FALSE;
} }
JNIEXPORT void JNICALL JNIEXPORT void JNICALL
Java_app_organicmaps_sdk_Framework_nativeUpdateSavedDataVersion(JNIEnv * env, jclass) Java_app_organicmaps_Framework_nativeUpdateSavedDataVersion(JNIEnv * env, jclass)
{ {
frm()->UpdateSavedDataVersion(); frm()->UpdateSavedDataVersion();
} }
*/ */
JNIEXPORT jlong JNICALL JNIEXPORT jlong JNICALL
Java_app_organicmaps_sdk_Framework_nativeGetDataVersion(JNIEnv * env, jclass) Java_app_organicmaps_Framework_nativeGetDataVersion(JNIEnv * env, jclass)
{ {
return frm()->GetCurrentDataVersion(); return frm()->GetCurrentDataVersion();
} }
JNIEXPORT jint JNICALL 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()); return static_cast<jint>(frm()->GetDrawScale());
} }
JNIEXPORT void JNICALL JNIEXPORT void JNICALL
Java_app_organicmaps_sdk_Framework_nativePokeSearchInViewport(JNIEnv * env, jclass) Java_app_organicmaps_Framework_nativePokeSearchInViewport(JNIEnv * env, jclass)
{ {
frm()->GetSearchAPI().PokeSearchInViewport(); frm()->GetSearchAPI().PokeSearchInViewport();
} }
JNIEXPORT jdoubleArray JNICALL 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(); m2::PointD const center = frm()->GetViewportCenter();
@@ -1138,43 +1138,43 @@ Java_app_organicmaps_sdk_Framework_nativeGetScreenRectCenter(JNIEnv * env, jclas
} }
JNIEXPORT void JNICALL 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)); frm()->ShowTrack(static_cast<kml::TrackId>(track));
} }
JNIEXPORT void JNICALL JNIEXPORT void JNICALL
Java_app_organicmaps_sdk_Framework_nativeSaveRoute(JNIEnv *, jclass) Java_app_organicmaps_Framework_nativeSaveRoute(JNIEnv *, jclass)
{ {
frm()->SaveRoute(); frm()->SaveRoute();
} }
JNIEXPORT jstring JNICALL 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()); return jni::ToJavaString(env, GetPlatform().SettingsDir().c_str());
} }
JNIEXPORT jstring JNICALL 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()); return jni::ToJavaString(env, GetPlatform().WritableDir().c_str());
} }
JNIEXPORT jstring JNICALL 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()); return jni::ToJavaString(env, GetPlatform().SettingsDir().c_str());
} }
JNIEXPORT jstring JNICALL 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); return jni::ToJavaString(env, DATA_FILE_EXTENSION);
} }
JNIEXPORT jobjectArray JNICALL 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 }; vector<string> exts = { DATA_FILE_EXTENSION, FONT_FILE_EXTENSION };
platform::CountryIndexes::GetIndexesExts(exts); platform::CountryIndexes::GetIndexesExts(exts);
@@ -1182,7 +1182,7 @@ Java_app_organicmaps_sdk_Framework_nativeGetMovableFilesExts(JNIEnv * env, jclas
} }
JNIEXPORT jobjectArray JNICALL 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 = { static std::array<std::string, 4> const kBookmarkExtensions = {
std::string{kKmzExtension}, std::string{kKmzExtension},
@@ -1195,7 +1195,7 @@ Java_app_organicmaps_sdk_Framework_nativeGetBookmarksFilesExts(JNIEnv * env, jcl
} }
JNIEXPORT void JNICALL 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); string newPath = jni::ToNativeString(env, jNewPath);
g_framework->RemoveLocalMaps(); g_framework->RemoveLocalMaps();
@@ -1204,55 +1204,55 @@ Java_app_organicmaps_sdk_Framework_nativeChangeWritableDir(JNIEnv * env, jclass,
} }
JNIEXPORT jboolean JNICALL JNIEXPORT jboolean JNICALL
Java_app_organicmaps_sdk_Framework_nativeIsRoutingActive(JNIEnv * env, jclass) Java_app_organicmaps_Framework_nativeIsRoutingActive(JNIEnv * env, jclass)
{ {
return frm()->GetRoutingManager().IsRoutingActive(); return frm()->GetRoutingManager().IsRoutingActive();
} }
JNIEXPORT jboolean JNICALL JNIEXPORT jboolean JNICALL
Java_app_organicmaps_sdk_Framework_nativeIsRouteBuilding(JNIEnv * env, jclass) Java_app_organicmaps_Framework_nativeIsRouteBuilding(JNIEnv * env, jclass)
{ {
return frm()->GetRoutingManager().IsRouteBuilding(); return frm()->GetRoutingManager().IsRouteBuilding();
} }
JNIEXPORT jboolean JNICALL JNIEXPORT jboolean JNICALL
Java_app_organicmaps_sdk_Framework_nativeIsRouteBuilt(JNIEnv * env, jclass) Java_app_organicmaps_Framework_nativeIsRouteBuilt(JNIEnv * env, jclass)
{ {
return frm()->GetRoutingManager().IsRouteBuilt(); return frm()->GetRoutingManager().IsRouteBuilt();
} }
JNIEXPORT void JNICALL 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 */); frm()->GetRoutingManager().CloseRouting(true /* remove route points */);
} }
JNIEXPORT void JNICALL JNIEXPORT void JNICALL
Java_app_organicmaps_sdk_Framework_nativeBuildRoute(JNIEnv * env, jclass) Java_app_organicmaps_Framework_nativeBuildRoute(JNIEnv * env, jclass)
{ {
frm()->GetRoutingManager().BuildRoute(); frm()->GetRoutingManager().BuildRoute();
} }
JNIEXPORT void JNICALL 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 */); frm()->GetRoutingManager().RemoveRoute(false /* deactivateFollowing */);
} }
JNIEXPORT void JNICALL JNIEXPORT void JNICALL
Java_app_organicmaps_sdk_Framework_nativeFollowRoute(JNIEnv * env, jclass) Java_app_organicmaps_Framework_nativeFollowRoute(JNIEnv * env, jclass)
{ {
frm()->GetRoutingManager().FollowRoute(); frm()->GetRoutingManager().FollowRoute();
} }
JNIEXPORT void JNICALL JNIEXPORT void JNICALL
Java_app_organicmaps_sdk_Framework_nativeDisableFollowing(JNIEnv * env, jclass) Java_app_organicmaps_Framework_nativeDisableFollowing(JNIEnv * env, jclass)
{ {
frm()->GetRoutingManager().DisableFollowMode(); frm()->GetRoutingManager().DisableFollowMode();
} }
JNIEXPORT jobjectArray JNICALL 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(); ::Framework * fr = frm();
if (!fr->GetRoutingManager().IsRoutingActive()) if (!fr->GetRoutingManager().IsRoutingActive())
@@ -1267,20 +1267,20 @@ Java_app_organicmaps_sdk_Framework_nativeGenerateNotifications(JNIEnv * env, jcl
} }
JNIEXPORT void JNICALL 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( frm()->GetRoutingManager().GetSpeedCamManager().SetMode(
static_cast<routing::SpeedCameraManagerMode>(mode)); static_cast<routing::SpeedCameraManagerMode>(mode));
} }
JNIEXPORT jint JNICALL 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()); return static_cast<jint>(frm()->GetRoutingManager().GetSpeedCamManager().GetMode());
} }
JNIEXPORT jobject JNICALL JNIEXPORT jobject JNICALL
Java_app_organicmaps_sdk_Framework_nativeGetRouteFollowingInfo(JNIEnv * env, jclass) Java_app_organicmaps_Framework_nativeGetRouteFollowingInfo(JNIEnv * env, jclass)
{ {
RoutingManager & rm = frm()->GetRoutingManager(); RoutingManager & rm = frm()->GetRoutingManager();
if (!rm.IsRoutingActive()) if (!rm.IsRoutingActive())
@@ -1295,9 +1295,9 @@ Java_app_organicmaps_sdk_Framework_nativeGetRouteFollowingInfo(JNIEnv * env, jcl
} }
JNIEXPORT jobjectArray JNICALL 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)) if (!frm()->GetRoutingManager().RoutingSession().GetRouteJunctionPoints(junctionPoints))
{ {
LOG(LWARNING, ("Can't get the route junction points")); 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 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; RoutingManager::DistanceAltitude altitudes;
if (!frm()->GetRoutingManager().GetRouteAltitudesAndDistancesM(altitudes)) if (!frm()->GetRoutingManager().GetRouteAltitudesAndDistancesM(altitudes))
@@ -1398,13 +1398,13 @@ Java_app_organicmaps_sdk_Framework_nativeGenerateRouteAltitudeChartBits(JNIEnv *
} }
JNIEXPORT void JNICALL 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); g_framework->ShowNode(jni::ToNativeString(env, countryId), (bool) zoomToDownloadButton);
} }
JNIEXPORT void JNICALL 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!")); CHECK(g_framework, ("Framework isn't created yet!"));
frm()->GetRoutingManager().SetRouteBuildingListener( frm()->GetRoutingManager().SetRouteBuildingListener(
@@ -1414,7 +1414,7 @@ Java_app_organicmaps_sdk_Framework_nativeSetRoutingListener(JNIEnv * env, jclass
} }
JNIEXPORT void JNICALL 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!")); CHECK(g_framework, ("Framework isn't created yet!"));
frm()->GetRoutingManager().SetRouteProgressListener( frm()->GetRoutingManager().SetRouteProgressListener(
@@ -1422,7 +1422,7 @@ Java_app_organicmaps_sdk_Framework_nativeSetRouteProgressListener(JNIEnv * env,
} }
JNIEXPORT void JNICALL JNIEXPORT void JNICALL
Java_app_organicmaps_sdk_Framework_nativeSetRoutingRecommendationListener(JNIEnv * env, jclass, Java_app_organicmaps_Framework_nativeSetRoutingRecommendationListener(JNIEnv * env, jclass,
jobject listener) jobject listener)
{ {
CHECK(g_framework, ("Framework isn't created yet!")); CHECK(g_framework, ("Framework isn't created yet!"));
@@ -1431,7 +1431,7 @@ Java_app_organicmaps_sdk_Framework_nativeSetRoutingRecommendationListener(JNIEnv
} }
JNIEXPORT void JNICALL JNIEXPORT void JNICALL
Java_app_organicmaps_sdk_Framework_nativeSetRoutingLoadPointsListener( Java_app_organicmaps_Framework_nativeSetRoutingLoadPointsListener(
JNIEnv *, jclass, jobject listener) JNIEnv *, jclass, jobject listener)
{ {
CHECK(g_framework, ("Framework isn't created yet!")); CHECK(g_framework, ("Framework isn't created yet!"));
@@ -1442,19 +1442,19 @@ Java_app_organicmaps_sdk_Framework_nativeSetRoutingLoadPointsListener(
} }
JNIEXPORT void JNICALL JNIEXPORT void JNICALL
Java_app_organicmaps_sdk_Framework_nativeDeactivatePopup(JNIEnv * env, jclass) Java_app_organicmaps_Framework_nativeDeactivatePopup(JNIEnv * env, jclass)
{ {
return g_framework->DeactivatePopup(); return g_framework->DeactivatePopup();
} }
JNIEXPORT void JNICALL JNIEXPORT void JNICALL
Java_app_organicmaps_sdk_Framework_nativeDeactivateMapSelectionCircle(JNIEnv * env, jclass) Java_app_organicmaps_Framework_nativeDeactivateMapSelectionCircle(JNIEnv * env, jclass)
{ {
return g_framework->DeactivateMapSelectionCircle(); return g_framework->DeactivateMapSelectionCircle();
} }
JNIEXPORT void JNICALL 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, jstring subtitle, jobject markType,
jint intermediateIndex, jint intermediateIndex,
jboolean isMyPosition, jboolean isMyPosition,
@@ -1473,64 +1473,64 @@ Java_app_organicmaps_sdk_Framework_nativeAddRoutePoint(JNIEnv * env, jclass, jst
} }
JNIEXPORT void JNICALL JNIEXPORT void JNICALL
Java_app_organicmaps_sdk_Framework_nativeRemoveRoutePoints(JNIEnv * env, jclass) Java_app_organicmaps_Framework_nativeRemoveRoutePoints(JNIEnv * env, jclass)
{ {
frm()->GetRoutingManager().RemoveRoutePoints(); frm()->GetRoutingManager().RemoveRoutePoints();
} }
JNIEXPORT void JNICALL 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), frm()->GetRoutingManager().RemoveRoutePoint(GetRouteMarkType(env, markType),
static_cast<size_t>(intermediateIndex)); static_cast<size_t>(intermediateIndex));
} }
JNIEXPORT void JNICALL JNIEXPORT void JNICALL
Java_app_organicmaps_sdk_Framework_nativeRemoveIntermediateRoutePoints(JNIEnv * env, jclass) Java_app_organicmaps_Framework_nativeRemoveIntermediateRoutePoints(JNIEnv * env, jclass)
{ {
frm()->GetRoutingManager().RemoveIntermediateRoutePoints(); frm()->GetRoutingManager().RemoveIntermediateRoutePoints();
} }
JNIEXPORT jboolean JNICALL JNIEXPORT jboolean JNICALL
Java_app_organicmaps_sdk_Framework_nativeCouldAddIntermediatePoint(JNIEnv * env, jclass) Java_app_organicmaps_Framework_nativeCouldAddIntermediatePoint(JNIEnv * env, jclass)
{ {
return frm()->GetRoutingManager().CouldAddIntermediatePoint(); return frm()->GetRoutingManager().CouldAddIntermediatePoint();
} }
JNIEXPORT jobjectArray JNICALL 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()); return CreateRouteMarkDataArray(env, frm()->GetRoutingManager().GetRoutePoints());
} }
JNIEXPORT void JNICALL JNIEXPORT void JNICALL
Java_app_organicmaps_sdk_Framework_nativeMoveRoutePoint(JNIEnv * env, jclass, Java_app_organicmaps_Framework_nativeMoveRoutePoint(JNIEnv * env, jclass,
jint currentIndex, jint targetIndex) jint currentIndex, jint targetIndex)
{ {
frm()->GetRoutingManager().MoveRoutePoint(currentIndex, targetIndex); frm()->GetRoutingManager().MoveRoutePoint(currentIndex, targetIndex);
} }
JNIEXPORT jobject JNICALL 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()); return CreateTransitRouteInfo(env, frm()->GetRoutingManager().GetTransitRouteInfo());
} }
JNIEXPORT void JNICALL JNIEXPORT void JNICALL
Java_app_organicmaps_sdk_Framework_nativeReloadWorldMaps(JNIEnv * env, jclass) Java_app_organicmaps_Framework_nativeReloadWorldMaps(JNIEnv * env, jclass)
{ {
g_framework->ReloadWorldMaps(); g_framework->ReloadWorldMaps();
} }
JNIEXPORT jboolean JNICALL 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); DayTimeType const dt = GetDayTime(static_cast<time_t>(utcTimeSeconds), lat, lon);
return (dt == DayTimeType::Day || dt == DayTimeType::PolarDay); return (dt == DayTimeType::Day || dt == DayTimeType::PolarDay);
} }
JNIEXPORT void JNICALL 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 allow3d = static_cast<bool>(allow);
bool const allow3dBuildings = static_cast<bool>(allowBuildings); bool const allow3dBuildings = static_cast<bool>(allowBuildings);
@@ -1540,7 +1540,7 @@ Java_app_organicmaps_sdk_Framework_nativeSet3dMode(JNIEnv * env, jclass, jboolea
} }
JNIEXPORT void JNICALL 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 enabled;
bool buildings; bool buildings;
@@ -1556,7 +1556,7 @@ Java_app_organicmaps_sdk_Framework_nativeGet3dMode(JNIEnv * env, jclass, jobject
} }
JNIEXPORT void JNICALL 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); bool const autoZoomEnabled = static_cast<bool>(enabled);
frm()->SaveAutoZoom(autoZoomEnabled); frm()->SaveAutoZoom(autoZoomEnabled);
@@ -1564,19 +1564,19 @@ Java_app_organicmaps_sdk_Framework_nativeSetAutoZoomEnabled(JNIEnv * env, jclass
} }
JNIEXPORT void JNICALL 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)); frm()->GetTransitManager().EnableTransitSchemeMode(static_cast<bool>(enabled));
} }
JNIEXPORT jboolean JNICALL 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()); return static_cast<jboolean>(frm()->LoadTransitSchemeEnabled());
} }
JNIEXPORT void JNICALL 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); auto const isolinesEnabled = static_cast<bool>(enabled);
frm()->GetIsolinesManager().SetEnabled(isolinesEnabled); frm()->GetIsolinesManager().SetEnabled(isolinesEnabled);
@@ -1584,44 +1584,44 @@ Java_app_organicmaps_sdk_Framework_nativeSetIsolinesLayerEnabled(JNIEnv * env, j
} }
JNIEXPORT jboolean JNICALL 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()); return static_cast<jboolean>(frm()->LoadIsolinesEnabled());
} }
JNIEXPORT void JNICALL 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); frm()->SaveOutdoorsEnabled(enabled);
} }
JNIEXPORT jboolean JNICALL 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()); return static_cast<jboolean>(frm()->LoadOutdoorsEnabled());
} }
JNIEXPORT void JNICALL 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)); frm()->SaveTransitSchemeEnabled(static_cast<bool>(enabled));
} }
JNIEXPORT jboolean JNICALL JNIEXPORT jboolean JNICALL
Java_app_organicmaps_sdk_Framework_nativeGetAutoZoomEnabled(JNIEnv *, jclass) Java_app_organicmaps_Framework_nativeGetAutoZoomEnabled(JNIEnv *, jclass)
{ {
return frm()->LoadAutoZoom(); return frm()->LoadAutoZoom();
} }
// static void nativeZoomToPoint(double lat, double lon, int zoom, boolean animate); // static void nativeZoomToPoint(double lat, double lon, int zoom, boolean animate);
JNIEXPORT void JNICALL 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); g_framework->Scale(m2::PointD(mercator::FromLatLon(lat, lon)), zoom, animate);
} }
JNIEXPORT jobject JNICALL JNIEXPORT jobject JNICALL
Java_app_organicmaps_sdk_Framework_nativeDeleteBookmarkFromMapObject(JNIEnv * env, jclass) Java_app_organicmaps_Framework_nativeDeleteBookmarkFromMapObject(JNIEnv * env, jclass)
{ {
if (!frm()->HasPlacePageInfo()) if (!frm()->HasPlacePageInfo())
return nullptr; return nullptr;
@@ -1640,7 +1640,7 @@ Java_app_organicmaps_sdk_Framework_nativeDeleteBookmarkFromMapObject(JNIEnv * en
} }
JNIEXPORT jstring JNICALL 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); auto const metaID = static_cast<osm::MapObject::MetadataID>(id);
string_view const value = g_framework->GetPlacePageInfo().GetMetadata(metaID); 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 JNIEXPORT jboolean JNICALL
Java_app_organicmaps_sdk_Framework_nativeIsDownloadedMapAtScreenCenter(JNIEnv *, jclass) Java_app_organicmaps_Framework_nativeIsDownloadedMapAtScreenCenter(JNIEnv *, jclass)
{ {
::Framework * fr = frm(); ::Framework * fr = frm();
return storage::IsPointCoveredByDownloadedMaps(fr->GetViewportCenter(), fr->GetStorage(), fr->GetCountryInfoGetter()); return storage::IsPointCoveredByDownloadedMaps(fr->GetViewportCenter(), fr->GetStorage(), fr->GetCountryInfoGetter());
} }
JNIEXPORT jstring JNICALL 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(); ::Framework * frm = g_framework->NativeFramework();
if (!frm->HasPlacePageInfo()) if (!frm->HasPlacePageInfo())
@@ -1667,75 +1667,75 @@ Java_app_organicmaps_sdk_Framework_nativeGetActiveObjectFormattedCuisine(JNIEnv
} }
JNIEXPORT void JNICALL 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)); frm()->SetVisibleViewport(m2::RectD(left, top, right, bottom));
} }
JNIEXPORT jboolean JNICALL JNIEXPORT jboolean JNICALL
Java_app_organicmaps_sdk_Framework_nativeIsRouteFinished(JNIEnv * env, jclass) Java_app_organicmaps_Framework_nativeIsRouteFinished(JNIEnv * env, jclass)
{ {
return frm()->GetRoutingManager().IsRouteFinished(); return frm()->GetRoutingManager().IsRouteFinished();
} }
JNIEXPORT void JNICALL JNIEXPORT void JNICALL
Java_app_organicmaps_sdk_Framework_nativeRunFirstLaunchAnimation(JNIEnv * env, jclass) Java_app_organicmaps_Framework_nativeRunFirstLaunchAnimation(JNIEnv * env, jclass)
{ {
frm()->RunFirstLaunchAnimation(); frm()->RunFirstLaunchAnimation();
} }
JNIEXPORT jint JNICALL JNIEXPORT jint JNICALL
Java_app_organicmaps_sdk_Framework_nativeOpenRoutePointsTransaction(JNIEnv * env, jclass) Java_app_organicmaps_Framework_nativeOpenRoutePointsTransaction(JNIEnv * env, jclass)
{ {
return frm()->GetRoutingManager().OpenRoutePointsTransaction(); return frm()->GetRoutingManager().OpenRoutePointsTransaction();
} }
JNIEXPORT void JNICALL JNIEXPORT void JNICALL
Java_app_organicmaps_sdk_Framework_nativeApplyRoutePointsTransaction(JNIEnv * env, jclass, Java_app_organicmaps_Framework_nativeApplyRoutePointsTransaction(JNIEnv * env, jclass,
jint transactionId) jint transactionId)
{ {
frm()->GetRoutingManager().ApplyRoutePointsTransaction(transactionId); frm()->GetRoutingManager().ApplyRoutePointsTransaction(transactionId);
} }
JNIEXPORT void JNICALL JNIEXPORT void JNICALL
Java_app_organicmaps_sdk_Framework_nativeCancelRoutePointsTransaction(JNIEnv * env, jclass, Java_app_organicmaps_Framework_nativeCancelRoutePointsTransaction(JNIEnv * env, jclass,
jint transactionId) jint transactionId)
{ {
frm()->GetRoutingManager().CancelRoutePointsTransaction(transactionId); frm()->GetRoutingManager().CancelRoutePointsTransaction(transactionId);
} }
JNIEXPORT jint JNICALL JNIEXPORT jint JNICALL
Java_app_organicmaps_sdk_Framework_nativeInvalidRoutePointsTransactionId(JNIEnv * env, jclass) Java_app_organicmaps_Framework_nativeInvalidRoutePointsTransactionId(JNIEnv * env, jclass)
{ {
return frm()->GetRoutingManager().InvalidRoutePointsTransactionId(); return frm()->GetRoutingManager().InvalidRoutePointsTransactionId();
} }
JNIEXPORT jboolean JNICALL JNIEXPORT jboolean JNICALL
Java_app_organicmaps_sdk_Framework_nativeHasSavedRoutePoints(JNIEnv *, jclass) Java_app_organicmaps_Framework_nativeHasSavedRoutePoints(JNIEnv *, jclass)
{ {
return frm()->GetRoutingManager().HasSavedRoutePoints(); return frm()->GetRoutingManager().HasSavedRoutePoints();
} }
JNIEXPORT void JNICALL JNIEXPORT void JNICALL
Java_app_organicmaps_sdk_Framework_nativeLoadRoutePoints(JNIEnv *, jclass) Java_app_organicmaps_Framework_nativeLoadRoutePoints(JNIEnv *, jclass)
{ {
frm()->GetRoutingManager().LoadRoutePoints(g_loadRouteHandler); frm()->GetRoutingManager().LoadRoutePoints(g_loadRouteHandler);
} }
JNIEXPORT void JNICALL JNIEXPORT void JNICALL
Java_app_organicmaps_sdk_Framework_nativeSaveRoutePoints(JNIEnv *, jclass) Java_app_organicmaps_Framework_nativeSaveRoutePoints(JNIEnv *, jclass)
{ {
frm()->GetRoutingManager().SaveRoutePoints(); frm()->GetRoutingManager().SaveRoutePoints();
} }
JNIEXPORT void JNICALL JNIEXPORT void JNICALL
Java_app_organicmaps_sdk_Framework_nativeDeleteSavedRoutePoints(JNIEnv *, jclass) Java_app_organicmaps_Framework_nativeDeleteSavedRoutePoints(JNIEnv *, jclass)
{ {
frm()->GetRoutingManager().DeleteSavedRoutePoints(); frm()->GetRoutingManager().DeleteSavedRoutePoints();
} }
JNIEXPORT void JNICALL 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); 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 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!")); CHECK(false, ("Diagnostic native crash!"));
} }
JNIEXPORT void JNICALL JNIEXPORT void JNICALL
Java_app_organicmaps_sdk_Framework_nativeSetPowerManagerFacility(JNIEnv *, jclass, Java_app_organicmaps_Framework_nativeSetPowerManagerFacility(JNIEnv *, jclass,
jint facilityType, jboolean state) jint facilityType, jboolean state)
{ {
frm()->GetPowerManager().SetFacility(static_cast<power_management::Facility>(facilityType), frm()->GetPowerManager().SetFacility(static_cast<power_management::Facility>(facilityType),
@@ -1758,32 +1758,32 @@ Java_app_organicmaps_sdk_Framework_nativeSetPowerManagerFacility(JNIEnv *, jclas
} }
JNIEXPORT jint JNICALL 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()); return static_cast<jint>(frm()->GetPowerManager().GetScheme());
} }
JNIEXPORT void JNICALL 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)); frm()->GetPowerManager().SetScheme(static_cast<power_management::Scheme>(schemeType));
} }
JNIEXPORT void JNICALL 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. // isAnim = true because of previous nativeSetChoosePositionMode animations.
frm()->SetViewportCenter(mercator::FromLatLon(lat, lon), static_cast<int>(zoom), true /* isAnim */); frm()->SetViewportCenter(mercator::FromLatLon(lat, lon), static_cast<int>(zoom), true /* isAnim */);
} }
JNIEXPORT void JNICALL JNIEXPORT void JNICALL
Java_app_organicmaps_sdk_Framework_nativeStopLocationFollow(JNIEnv *, jclass) Java_app_organicmaps_Framework_nativeStopLocationFollow(JNIEnv *, jclass)
{ {
frm()->StopLocationFollow(); frm()->StopLocationFollow();
} }
JNIEXPORT void JNICALL 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) jdouble lon, jint zoom)
{ {
auto const center = mercator::FromLatLon(static_cast<double>(lat), auto const center = mercator::FromLatLon(static_cast<double>(lat),
@@ -1793,13 +1793,13 @@ Java_app_organicmaps_sdk_Framework_nativeSetSearchViewport(JNIEnv *, jclass, jdo
} }
JNIEXPORT jboolean JNICALL JNIEXPORT jboolean JNICALL
Java_app_organicmaps_sdk_Framework_nativeHasPlacePageInfo(JNIEnv *, jclass) Java_app_organicmaps_Framework_nativeHasPlacePageInfo(JNIEnv *, jclass)
{ {
return static_cast<jboolean>(frm()->HasPlacePageInfo()); return static_cast<jboolean>(frm()->HasPlacePageInfo());
} }
JNIEXPORT void JNICALL JNIEXPORT void JNICALL
Java_app_organicmaps_sdk_Framework_nativeMemoryWarning(JNIEnv *, jclass) Java_app_organicmaps_Framework_nativeMemoryWarning(JNIEnv *, jclass)
{ {
return frm()->MemoryWarning(); return frm()->MemoryWarning();
} }

View File

@@ -1,9 +1,9 @@
#include "Framework.hpp" #include "Framework.hpp"
#include "map/gps_tracker.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" extern "C"
{ {
@@ -18,7 +18,7 @@ static void LocationStateModeChanged(location::EMyPositionMode mode,
// public static void nativeSwitchToNextMode(); // public static void nativeSwitchToNextMode();
JNIEXPORT void JNICALL 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, ()); ASSERT(g_framework, ());
g_framework->SwitchMyPositionNextMode(); g_framework->SwitchMyPositionNextMode();
@@ -26,7 +26,7 @@ Java_app_organicmaps_sdk_location_LocationState_nativeSwitchToNextMode(JNIEnv *
// private static int nativeGetMode(); // private static int nativeGetMode();
JNIEXPORT jint JNICALL 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. // GetMyPositionMode() is initialized only after drape creation.
// https://github.com/organicmaps/organicmaps/issues/1128#issuecomment-1784435190 // 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); // public static void nativeSetListener(ModeChangeListener listener);
JNIEXPORT void JNICALL 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) jobject listener)
{ {
ASSERT(g_framework, ()); ASSERT(g_framework, ());
@@ -46,21 +46,21 @@ Java_app_organicmaps_sdk_location_LocationState_nativeSetListener(JNIEnv * env,
// public static void nativeRemoveListener(); // public static void nativeRemoveListener();
JNIEXPORT void JNICALL 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, ()); ASSERT(g_framework, ());
g_framework->SetMyPositionModeListener(location::TMyPositionModeChanged()); g_framework->SetMyPositionModeListener(location::TMyPositionModeChanged());
} }
JNIEXPORT void JNICALL 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, ()); ASSERT(g_framework, ());
g_framework->OnLocationError(errorCode); g_framework->OnLocationError(errorCode);
} }
JNIEXPORT void JNICALL 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 lat, jdouble lon, jfloat accuracy,
jdouble altitude, jfloat speed, jfloat bearing) jdouble altitude, jfloat speed, jfloat bearing)
{ {

View File

@@ -1,8 +1,8 @@
#include "Framework.hpp" #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" #include "storage/storage_defines.hpp"
@@ -23,7 +23,7 @@ void OnRenderingInitializationFinished(std::shared_ptr<jobject> const & listener
extern "C" extern "C"
{ {
JNIEXPORT jboolean JNICALL JNIEXPORT jboolean JNICALL
Java_app_organicmaps_sdk_Map_nativeCreateEngine(JNIEnv * env, jclass, Java_app_organicmaps_Map_nativeCreateEngine(JNIEnv * env, jclass,
jobject surface, jint density, jobject surface, jint density,
jboolean firstLaunch, jboolean firstLaunch,
jboolean isLaunchByDeepLink, jboolean isLaunchByDeepLink,
@@ -35,25 +35,25 @@ Java_app_organicmaps_sdk_Map_nativeCreateEngine(JNIEnv * env, jclass,
} }
JNIEXPORT jboolean JNICALL JNIEXPORT jboolean JNICALL
Java_app_organicmaps_sdk_Map_nativeIsEngineCreated(JNIEnv *, jclass) Java_app_organicmaps_Map_nativeIsEngineCreated(JNIEnv *, jclass)
{ {
return g_framework->IsDrapeEngineCreated(); return g_framework->IsDrapeEngineCreated();
} }
JNIEXPORT void JNICALL 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); return g_framework->UpdateDpi(dpi);
} }
JNIEXPORT void JNICALL JNIEXPORT void JNICALL
Java_app_organicmaps_sdk_Map_nativeExecuteMapApiRequest(JNIEnv * env, jclass) Java_app_organicmaps_Map_nativeExecuteMapApiRequest(JNIEnv * env, jclass)
{ {
return g_framework->ExecuteMapApiRequest(); return g_framework->ExecuteMapApiRequest();
} }
JNIEXPORT void JNICALL JNIEXPORT void JNICALL
Java_app_organicmaps_sdk_Map_nativeSetRenderingInitializationFinishedListener( Java_app_organicmaps_Map_nativeSetRenderingInitializationFinishedListener(
JNIEnv *, jclass, jobject listener) JNIEnv *, jclass, jobject listener)
{ {
if (listener) if (listener)
@@ -68,68 +68,68 @@ Java_app_organicmaps_sdk_Map_nativeSetRenderingInitializationFinishedListener(
} }
JNIEXPORT jboolean JNICALL 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); return g_framework->AttachSurface(env, surface);
} }
JNIEXPORT void JNICALL 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); g_framework->DetachSurface(destroySurface);
} }
JNIEXPORT void JNICALL 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); g_framework->Resize(env, surface, w, h);
} }
JNIEXPORT jboolean JNICALL JNIEXPORT jboolean JNICALL
Java_app_organicmaps_sdk_Map_nativeDestroySurfaceOnDetach(JNIEnv *, jclass) Java_app_organicmaps_Map_nativeDestroySurfaceOnDetach(JNIEnv *, jclass)
{ {
return g_framework->DestroySurfaceOnDetach(); return g_framework->DestroySurfaceOnDetach();
} }
JNIEXPORT void JNICALL JNIEXPORT void JNICALL
Java_app_organicmaps_sdk_Map_nativePauseSurfaceRendering(JNIEnv *, jclass) Java_app_organicmaps_Map_nativePauseSurfaceRendering(JNIEnv *, jclass)
{ {
g_framework->PauseSurfaceRendering(); g_framework->PauseSurfaceRendering();
} }
JNIEXPORT void JNICALL JNIEXPORT void JNICALL
Java_app_organicmaps_sdk_Map_nativeResumeSurfaceRendering(JNIEnv *, jclass) Java_app_organicmaps_Map_nativeResumeSurfaceRendering(JNIEnv *, jclass)
{ {
g_framework->ResumeSurfaceRendering(); g_framework->ResumeSurfaceRendering();
} }
JNIEXPORT void JNICALL 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); g_framework->UpdateMyPositionRoutingOffset(offsetY);
} }
JNIEXPORT void JNICALL JNIEXPORT void JNICALL
Java_app_organicmaps_sdk_Map_nativeApplyWidgets(JNIEnv *, jclass) Java_app_organicmaps_Map_nativeApplyWidgets(JNIEnv *, jclass)
{ {
g_framework->ApplyWidgets(); g_framework->ApplyWidgets();
} }
JNIEXPORT void JNICALL JNIEXPORT void JNICALL
Java_app_organicmaps_sdk_Map_nativeCleanWidgets(JNIEnv *, jclass) Java_app_organicmaps_Map_nativeCleanWidgets(JNIEnv *, jclass)
{ {
g_framework->CleanWidgets(); g_framework->CleanWidgets();
} }
JNIEXPORT void JNICALL JNIEXPORT void JNICALL
Java_app_organicmaps_sdk_Map_nativeSetupWidget( Java_app_organicmaps_Map_nativeSetupWidget(
JNIEnv *, jclass, jint widget, jfloat x, jfloat y, jint anchor) 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)); g_framework->SetupWidget(static_cast<gui::EWidget>(widget), x, y, static_cast<dp::Anchor>(anchor));
} }
JNIEXPORT void JNICALL 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; location::CompassInfo info;
info.m_bearing = north; info.m_bearing = north;
@@ -138,33 +138,33 @@ Java_app_organicmaps_sdk_Map_nativeCompassUpdated(JNIEnv *, jclass, jdouble nort
} }
JNIEXPORT void JNICALL JNIEXPORT void JNICALL
Java_app_organicmaps_sdk_Map_nativeScalePlus(JNIEnv *, jclass) Java_app_organicmaps_Map_nativeScalePlus(JNIEnv *, jclass)
{ {
g_framework->Scale(::Framework::SCALE_MAG); g_framework->Scale(::Framework::SCALE_MAG);
} }
JNIEXPORT void JNICALL JNIEXPORT void JNICALL
Java_app_organicmaps_sdk_Map_nativeScaleMinus(JNIEnv *, jclass) Java_app_organicmaps_Map_nativeScaleMinus(JNIEnv *, jclass)
{ {
g_framework->Scale(::Framework::SCALE_MIN); g_framework->Scale(::Framework::SCALE_MIN);
} }
JNIEXPORT void JNICALL JNIEXPORT void JNICALL
Java_app_organicmaps_sdk_Map_nativeOnScroll( Java_app_organicmaps_Map_nativeOnScroll(
JNIEnv *, jclass, jdouble distanceX, jdouble distanceY) JNIEnv *, jclass, jdouble distanceX, jdouble distanceY)
{ {
g_framework->Scroll(distanceX, distanceY); g_framework->Scroll(distanceX, distanceY);
} }
JNIEXPORT void JNICALL JNIEXPORT void JNICALL
Java_app_organicmaps_sdk_Map_nativeOnScale( Java_app_organicmaps_Map_nativeOnScale(
JNIEnv *, jclass, jdouble factor, jdouble focusX, jdouble focusY, jboolean isAnim) JNIEnv *, jclass, jdouble factor, jdouble focusX, jdouble focusY, jboolean isAnim)
{ {
g_framework->Scale(factor, {focusX, focusY}, isAnim); g_framework->Scale(factor, {focusX, focusY}, isAnim);
} }
JNIEXPORT void JNICALL 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 id1, jfloat x1, jfloat y1,
jint id2, jfloat x2, jfloat y2, jint id2, jfloat x2, jfloat y2,
jint maskedPointer) jint maskedPointer)
@@ -175,14 +175,14 @@ Java_app_organicmaps_sdk_Map_nativeOnTouch(JNIEnv *, jclass, jint action,
} }
JNIEXPORT void JNICALL JNIEXPORT void JNICALL
Java_app_organicmaps_sdk_Map_nativeStorageConnected(JNIEnv *, jclass) Java_app_organicmaps_Map_nativeStorageConnected(JNIEnv *, jclass)
{ {
android::Platform::Instance().OnExternalStorageStatusChanged(true); android::Platform::Instance().OnExternalStorageStatusChanged(true);
g_framework->AddLocalMaps(); g_framework->AddLocalMaps();
} }
JNIEXPORT void JNICALL JNIEXPORT void JNICALL
Java_app_organicmaps_sdk_Map_nativeStorageDisconnected(JNIEnv *, jclass) Java_app_organicmaps_Map_nativeStorageDisconnected(JNIEnv *, jclass)
{ {
android::Platform::Instance().OnExternalStorageStatusChanged(false); android::Platform::Instance().OnExternalStorageStatusChanged(false);
g_framework->RemoveLocalMaps(); g_framework->RemoveLocalMaps();

View File

@@ -1,7 +1,7 @@
#include "Framework.hpp" #include "Framework.hpp"
#include "app/organicmaps/sdk/core/jni_helper.hpp" #include "app/organicmaps/core/jni_helper.hpp"
#include "app/organicmaps/sdk/core/jni_java_methods.hpp" #include "app/organicmaps/core/jni_java_methods.hpp"
#include "coding/internal/file_data.hpp" #include "coding/internal/file_data.hpp"
@@ -70,7 +70,7 @@ struct CountryItemBuilder
CountryItemBuilder(JNIEnv *env) 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_ctor = jni::GetConstructorID(env, m_class, "(Ljava/lang/String;)V");
m_Id = env->GetFieldID(m_class, "id", "Ljava/lang/String;"); m_Id = env->GetFieldID(m_class, "id", "Ljava/lang/String;");
@@ -112,55 +112,55 @@ extern "C"
// static String nativeGetRoot(); // static String nativeGetRoot();
JNIEXPORT jstring JNICALL 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()); return jni::ToJavaString(env, GetStorage().GetRootId());
} }
// static boolean nativeMoveFile(String oldFile, String newFile); // static boolean nativeMoveFile(String oldFile, String newFile);
JNIEXPORT jboolean JNICALL 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)); return base::MoveFileX(jni::ToNativeString(env, oldFile), jni::ToNativeString(env, newFile));
} }
// static boolean nativeHasSpaceToDownloadAmount(long bytes); // static boolean nativeHasSpaceToDownloadAmount(long bytes);
JNIEXPORT jboolean JNICALL 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); return storage::IsEnoughSpaceForDownload(bytes);
} }
// static boolean nativeHasSpaceToDownloadCountry(String root); // static boolean nativeHasSpaceToDownloadCountry(String root);
JNIEXPORT jboolean JNICALL 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()); return storage::IsEnoughSpaceForDownload(jni::ToNativeString(env, root), GetStorage());
} }
// static boolean nativeHasSpaceToUpdate(String root); // static boolean nativeHasSpaceToUpdate(String root);
JNIEXPORT jboolean JNICALL 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()); return IsEnoughSpaceForUpdate(jni::ToNativeString(env, root), GetStorage());
} }
// static int nativeGetDownloadedCount(); // static int nativeGetDownloadedCount();
JNIEXPORT jint JNICALL 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()); return static_cast<jint>(GetStorage().GetDownloadedFilesCount());
} }
// static @Nullable UpdateInfo nativeGetUpdateInfo(@Nullable String root); // static @Nullable UpdateInfo nativeGetUpdateInfo(@Nullable String root);
JNIEXPORT jobject JNICALL 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; storage::Storage::UpdateInfo info;
if (!GetStorage().GetUpdateInfo(GetRootId(env, root), info)) if (!GetStorage().GetUpdateInfo(GetRootId(env, root), info))
return nullptr; 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())); ASSERT(infoClass, (jni::DescribeException()));
static jmethodID const ctor = jni::GetConstructorID(env, infoClass, "(IJ)V"); static jmethodID const ctor = jni::GetConstructorID(env, infoClass, "(IJ)V");
ASSERT(ctor, (jni::DescribeException())); 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); // static void nativeListItems(@Nullable String root, double lat, double lon, boolean hasLocation, boolean myMapsMode, List<CountryItem> result);
JNIEXPORT void JNICALL 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) if (hasLocation && !myMapsMode)
{ {
@@ -292,7 +292,7 @@ Java_app_organicmaps_sdk_downloader_MapManager_nativeListItems(JNIEnv * env, jcl
// static void nativeUpdateItem(CountryItem item); // static void nativeUpdateItem(CountryItem item);
JNIEXPORT void JNICALL 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); auto const & ciBuilder = CountryItemBuilder::Instance(env);
jstring id = static_cast<jstring>(env->GetObjectField(item, ciBuilder.m_Id)); 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); // static void nativeGetStatus(String root);
JNIEXPORT jint JNICALL 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; storage::NodeStatuses ns;
GetStorage().GetNodeStatuses(jni::ToNativeString(env, root), 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); // static void nativeGetError(String root);
JNIEXPORT jint JNICALL 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; storage::NodeStatuses ns;
GetStorage().GetNodeStatuses(jni::ToNativeString(env, root), 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); // static String nativeGetName(String root);
JNIEXPORT jstring JNICALL 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))); return jni::ToJavaString(env, GetStorage().GetNodeLocalName(jni::ToNativeString(env, root)));
} }
// static @Nullable String nativeFindCountry(double lat, double lon); // static @Nullable String nativeFindCountry(double lat, double lon);
JNIEXPORT jstring JNICALL 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))); return jni::ToJavaString(env, g_framework->NativeFramework()->GetCountryInfoGetter().GetRegionCountryId(mercator::FromLatLon(lat, lon)));
} }
// static boolean nativeIsDownloading(); // static boolean nativeIsDownloading();
JNIEXPORT jboolean JNICALL 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()); return static_cast<jboolean>(GetStorage().IsDownloadInProgress());
} }
@@ -365,7 +365,7 @@ static void EndBatchingCallbacks(JNIEnv * env)
for (TBatchedData const & dataItem : key.second) for (TBatchedData const & dataItem : key.second)
{ {
// Create StorageCallbackData instance… // 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"); static jmethodID batchDataCtor = jni::GetConstructorID(env, batchDataClass, "(Ljava/lang/String;IIZ)V");
jni::TScopedLocalRef const id(env, jni::ToJavaString(env, dataItem.m_countryId)); 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); // static void nativeDownload(String root);
JNIEXPORT void JNICALL 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(); StartBatchingCallbacks();
GetStorage().DownloadNode(jni::ToNativeString(env, root)); 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); // static boolean nativeRetry(String root);
JNIEXPORT void JNICALL 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(); StartBatchingCallbacks();
GetStorage().RetryDownloadNode(jni::ToNativeString(env, root)); 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); // static void nativeUpdate(String root);
JNIEXPORT void JNICALL 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(); StartBatchingCallbacks();
GetStorage().UpdateNode(GetRootId(env, root)); GetStorage().UpdateNode(GetRootId(env, root));
@@ -415,7 +415,7 @@ Java_app_organicmaps_sdk_downloader_MapManager_nativeUpdate(JNIEnv * env, jclass
// static void nativeCancel(String root); // static void nativeCancel(String root);
JNIEXPORT void JNICALL 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(); StartBatchingCallbacks();
GetStorage().CancelDownloadNode(GetRootId(env, root)); GetStorage().CancelDownloadNode(GetRootId(env, root));
@@ -424,7 +424,7 @@ Java_app_organicmaps_sdk_downloader_MapManager_nativeCancel(JNIEnv * env, jclass
// static void nativeDelete(String root); // static void nativeDelete(String root);
JNIEXPORT void JNICALL 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(); StartBatchingCallbacks();
auto const countryId = jni::ToNativeString(env, root); 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); // static int nativeSubscribe(StorageCallback listener);
JNIEXPORT jint JNICALL 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), 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)); 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); // static void nativeUnsubscribe(int slot);
JNIEXPORT void JNICALL 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); GetStorage().Unsubscribe(slot);
} }
// static void nativeSubscribeOnCountryChanged(CurrentCountryChangedListener listener); // static void nativeSubscribeOnCountryChanged(CurrentCountryChangedListener listener);
JNIEXPORT void JNICALL 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, ()); ASSERT(!g_countryChangedListener, ());
g_countryChangedListener = env->NewGlobalRef(listener); g_countryChangedListener = env->NewGlobalRef(listener);
@@ -492,7 +492,7 @@ Java_app_organicmaps_sdk_downloader_MapManager_nativeSubscribeOnCountryChanged(J
// static void nativeUnsubscribeOnCountryChanged(); // static void nativeUnsubscribeOnCountryChanged();
JNIEXPORT void JNICALL 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); g_framework->NativeFramework()->SetCurrentCountryChangedListener(nullptr);
@@ -502,14 +502,14 @@ Java_app_organicmaps_sdk_downloader_MapManager_nativeUnsubscribeOnCountryChanged
// static boolean nativeHasUnsavedEditorChanges(String root); // static boolean nativeHasUnsavedEditorChanges(String root);
JNIEXPORT jboolean JNICALL 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)); return g_framework->NativeFramework()->HasUnsavedEdits(jni::ToNativeString(env, root));
} }
// static void nativeGetPathTo(String root, List<String> result); // static void nativeGetPathTo(String root, List<String> result);
JNIEXPORT void JNICALL 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; 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); // static int nativeGetOverallProgress(String[] countries);
JNIEXPORT jint JNICALL 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); int const size = env->GetArrayLength(jcountries);
storage::CountriesVec countries; storage::CountriesVec countries;
@@ -544,28 +544,28 @@ Java_app_organicmaps_sdk_downloader_MapManager_nativeGetOverallProgress(JNIEnv *
// static boolean nativeIsAutoretryFailed(); // static boolean nativeIsAutoretryFailed();
JNIEXPORT jboolean JNICALL 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(); return g_framework->IsAutoRetryDownloadFailed();
} }
// static boolean nativeIsDownloadOn3gEnabled(); // static boolean nativeIsDownloadOn3gEnabled();
JNIEXPORT jboolean JNICALL 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(); return g_framework->IsDownloadOn3gEnabled();
} }
// static void nativeEnableDownloadOn3g(); // static void nativeEnableDownloadOn3g();
JNIEXPORT void JNICALL 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(); g_framework->EnableDownloadOn3g();
} }
// static @Nullable String nativeGetSelectedCountry(); // static @Nullable String nativeGetSelectedCountry();
JNIEXPORT jstring JNICALL 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()) if (!g_framework->NativeFramework()->HasPlacePageInfo())
return nullptr; return nullptr;

View File

@@ -2,14 +2,14 @@
#include "map/gps_tracker.hpp" #include "map/gps_tracker.hpp"
#include "app/organicmaps/sdk/core/jni_helper.hpp" #include "app/organicmaps/core/jni_helper.hpp"
#include <chrono> #include <chrono>
extern "C" extern "C"
{ {
JNIEXPORT void JNICALL 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); GpsTracker::Instance().SetEnabled(enable);
Framework * const f = frm(); Framework * const f = frm();
@@ -22,37 +22,37 @@ extern "C"
} }
JNIEXPORT jboolean JNICALL 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(); return GpsTracker::Instance().IsEnabled();
} }
JNIEXPORT void JNICALL 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(); frm()->StartTrackRecording();
} }
JNIEXPORT void JNICALL 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(); frm()->StopTrackRecording();
} }
JNIEXPORT void JNICALL 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)); frm()->SaveTrackRecordingWithName(jni::ToNativeString(env, name));
} }
JNIEXPORT jboolean JNICALL 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(); return frm()->IsTrackRecordingEmpty();
} }
JNIEXPORT jboolean JNICALL 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(); return frm()->IsTrackRecordingEnabled();
} }

View File

@@ -1,8 +1,8 @@
#include "Framework.hpp" #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" extern "C"
{ {
@@ -13,35 +13,35 @@ static void TrafficStateChanged(TrafficManager::TrafficState state, std::shared_
} }
JNIEXPORT void JNICALL 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!")); CHECK(g_framework, ("Framework isn't created yet!"));
g_framework->SetTrafficStateListener(std::bind(&TrafficStateChanged, std::placeholders::_1, jni::make_global_ref(listener))); g_framework->SetTrafficStateListener(std::bind(&TrafficStateChanged, std::placeholders::_1, jni::make_global_ref(listener)));
} }
JNIEXPORT void JNICALL 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!")); CHECK(g_framework, ("Framework isn't created yet!"));
g_framework->SetTrafficStateListener(TrafficManager::TrafficStateChangedFn()); g_framework->SetTrafficStateListener(TrafficManager::TrafficStateChangedFn());
} }
JNIEXPORT void JNICALL 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!")); CHECK(g_framework, ("Framework isn't created yet!"));
g_framework->EnableTraffic(); g_framework->EnableTraffic();
} }
JNIEXPORT jboolean JNICALL 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!")); CHECK(g_framework, ("Framework isn't created yet!"));
return static_cast<jboolean>(g_framework->IsTrafficEnabled()); return static_cast<jboolean>(g_framework->IsTrafficEnabled());
} }
JNIEXPORT void JNICALL 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!")); CHECK(g_framework, ("Framework isn't created yet!"));
g_framework->DisableTraffic(); 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( static jmethodID const ctorId = jni::GetConstructorID(
env, g_mapObjectClazz, env, g_mapObjectClazz,
"(" "("
"Lapp/organicmaps/sdk/bookmarks/data/FeatureId;" // featureId "Lapp/organicmaps/bookmarks/data/FeatureId;" // featureId
"I" // mapObjectType "I" // mapObjectType
"Ljava/lang/String;" // title "Ljava/lang/String;" // title
"Ljava/lang/String;" // secondaryTitle "Ljava/lang/String;" // secondaryTitle
@@ -104,7 +104,7 @@ jobject CreateBookmark(JNIEnv *env, const place_page::Info &info,
// @Nullable String[] rawTypes) // @Nullable String[] rawTypes)
static jmethodID const ctorId = static jmethodID const ctorId =
jni::GetConstructorID(env, g_bookmarkClazz, 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;" "Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;"
"Lapp/organicmaps/sdk/routing/RoutePointInfo;" "Lapp/organicmaps/sdk/routing/RoutePointInfo;"
"ILapp/organicmaps/sdk/search/Popularity;Ljava/lang/String;" "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) jobject CreateElevationPoint(JNIEnv * env, ElevationInfo::Point const & point)
{ {
static jclass const pointClass = 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) // public Point(double distance, int altitude)
static jmethodID const pointCtorId = static jmethodID const pointCtorId =
jni::GetConstructorID(env, pointClass, "(DI)V"); 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!")); CHECK(!points.empty(), ("Elevation points must be non empty!"));
static jclass const pointClass = 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, return jni::ToJavaArray(env, pointClass, points,
[](JNIEnv * env, ElevationInfo::Point const & item) [](JNIEnv * env, ElevationInfo::Point const & item)
{ {
@@ -164,7 +164,7 @@ jobject CreateElevationInfo(JNIEnv * env, ElevationInfo const & info)
// long m_duration) // long m_duration)
static jmethodID const ctorId = static jmethodID const ctorId =
jni::GetConstructorID(env, g_elevationInfoClazz, "(JLjava/lang/String;Ljava/lang/String;" 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"); "IIIIIJ)V");
jni::TScopedLocalObjectArrayRef jPoints(env, ToElevationPointArray(env, info.GetPoints())); 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 // 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 <jni.h>
#include "app/organicmaps/sdk/core/jni_helper.hpp" #include "app/organicmaps/core/jni_helper.hpp"
#include "app/organicmaps/sdk/Framework.hpp" #include "app/organicmaps/Framework.hpp"
#include <vector> #include <vector>

View File

@@ -1,7 +1,7 @@
#include "app/organicmaps/sdk/core/jni_helper.hpp" #include "app/organicmaps/core/jni_helper.hpp"
#include "app/organicmaps/sdk/Framework.hpp" #include "app/organicmaps/Framework.hpp"
#include "app/organicmaps/sdk/UserMarkHelper.hpp" #include "app/organicmaps/UserMarkHelper.hpp"
#include "app/organicmaps/sdk/util/Distance.hpp" #include "app/organicmaps/util/Distance.hpp"
#include "map/bookmark_helpers.hpp" #include "map/bookmark_helpers.hpp"
#include "map/place_page_info.hpp" #include "map/place_page_info.hpp"
@@ -51,9 +51,9 @@ void PrepareClassRefs(JNIEnv * env)
return; return;
g_bookmarkManagerClass = 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", 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, jobject bookmarkManagerInstance = env->GetStaticObjectField(g_bookmarkManagerClass,
g_bookmarkManagerInstanceField); g_bookmarkManagerInstanceField);
@@ -68,27 +68,27 @@ void PrepareClassRefs(JNIEnv * env)
"(ZLjava/lang/String;Z)V"); "(ZLjava/lang/String;Z)V");
g_onPreparedFileForSharingMethod = g_onPreparedFileForSharingMethod =
jni::GetMethodID(env, bookmarkManagerInstance, "onPreparedFileForSharing", 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_longClass = jni::GetGlobalClassRef(env,"java/lang/Long");
g_longConstructor = jni::GetConstructorID(env, g_longClass, "(J)V"); g_longConstructor = jni::GetConstructorID(env, g_longClass, "(J)V");
g_sortedBlockClass = g_sortedBlockClass =
jni::GetGlobalClassRef(env, "app/organicmaps/sdk/bookmarks/data/SortedBlock"); jni::GetGlobalClassRef(env, "app/organicmaps/bookmarks/data/SortedBlock");
g_sortedBlockConstructor = g_sortedBlockConstructor =
jni::GetConstructorID(env, g_sortedBlockClass, jni::GetConstructorID(env, g_sortedBlockClass,
"(Ljava/lang/String;[Ljava/lang/Long;[Ljava/lang/Long;)V"); "(Ljava/lang/String;[Ljava/lang/Long;[Ljava/lang/Long;)V");
g_onBookmarksSortingCompleted = jni::GetMethodID(env, bookmarkManagerInstance, 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, g_onBookmarksSortingCancelled = jni::GetMethodID(env, bookmarkManagerInstance,
"onBookmarksSortingCancelled", "(J)V"); "onBookmarksSortingCancelled", "(J)V");
g_bookmarkInfoClass = g_bookmarkInfoClass =
jni::GetGlobalClassRef(env, "app/organicmaps/sdk/bookmarks/data/BookmarkInfo"); jni::GetGlobalClassRef(env, "app/organicmaps/bookmarks/data/BookmarkInfo");
g_bookmarkInfoConstructor = g_bookmarkInfoConstructor =
jni::GetConstructorID(env, g_bookmarkInfoClass, "(JJ)V" ); jni::GetConstructorID(env, g_bookmarkInfoClass, "(JJ)V" );
g_bookmarkCategoryClass = g_bookmarkCategoryClass =
jni::GetGlobalClassRef(env, "app/organicmaps/sdk/bookmarks/data/BookmarkCategory"); jni::GetGlobalClassRef(env, "app/organicmaps/bookmarks/data/BookmarkCategory");
//public BookmarkCategory(long id, //public BookmarkCategory(long id,
// String name, // String name,
@@ -183,7 +183,7 @@ void OnAsyncLoadingFileError(JNIEnv * env, std::string const & fileName, bool is
void OnPreparedFileForSharing(JNIEnv * env, BookmarkManager::SharingResult const & result) 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) // 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"); 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" extern "C"
{ {
JNIEXPORT void JNICALL JNIEXPORT void JNICALL
Java_app_organicmaps_sdk_bookmarks_data_BookmarkManager_nativeShowBookmarkOnMap( Java_app_organicmaps_bookmarks_data_BookmarkManager_nativeShowBookmarkOnMap(
JNIEnv *, jobject, jlong bmkId) JNIEnv *, jobject, jlong bmkId)
{ {
frm()->ShowBookmark(static_cast<kml::MarkId>(bmkId)); frm()->ShowBookmark(static_cast<kml::MarkId>(bmkId));
} }
JNIEXPORT void JNICALL JNIEXPORT void JNICALL
Java_app_organicmaps_sdk_bookmarks_data_BookmarkManager_nativeShowBookmarkCategoryOnMap( Java_app_organicmaps_bookmarks_data_BookmarkManager_nativeShowBookmarkCategoryOnMap(
JNIEnv *, jobject, jlong catId) JNIEnv *, jobject, jlong catId)
{ {
frm()->ShowBookmarkCategory(static_cast<kml::MarkGroupId>(catId), true /* animated */); frm()->ShowBookmarkCategory(static_cast<kml::MarkGroupId>(catId), true /* animated */);
} }
JNIEXPORT void JNICALL 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); PrepareClassRefs(env);
BookmarkManager::AsyncLoadingCallbacks callbacks; BookmarkManager::AsyncLoadingCallbacks callbacks;
@@ -327,7 +327,7 @@ Java_app_organicmaps_sdk_bookmarks_data_BookmarkManager_nativeLoadBookmarks(JNIE
} }
JNIEXPORT jlong JNICALL JNIEXPORT jlong JNICALL
Java_app_organicmaps_sdk_bookmarks_data_BookmarkManager_nativeCreateCategory( Java_app_organicmaps_bookmarks_data_BookmarkManager_nativeCreateCategory(
JNIEnv * env, jobject, jstring name) JNIEnv * env, jobject, jstring name)
{ {
auto const categoryId = frm()->GetBookmarkManager().CreateBookmarkCategory(ToNativeString(env, 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 JNIEXPORT jboolean JNICALL
Java_app_organicmaps_sdk_bookmarks_data_BookmarkManager_nativeDeleteCategory( Java_app_organicmaps_bookmarks_data_BookmarkManager_nativeDeleteCategory(
JNIEnv *, jobject, jlong catId) JNIEnv *, jobject, jlong catId)
{ {
auto const categoryId = static_cast<kml::MarkGroupId>(catId); auto const categoryId = static_cast<kml::MarkGroupId>(catId);
@@ -345,20 +345,20 @@ Java_app_organicmaps_sdk_bookmarks_data_BookmarkManager_nativeDeleteCategory(
} }
JNIEXPORT void JNICALL 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)); frm()->GetBookmarkManager().GetEditSession().DeleteBookmark(static_cast<kml::MarkId>(bmkId));
} }
JNIEXPORT void JNICALL JNIEXPORT void JNICALL
Java_app_organicmaps_sdk_bookmarks_data_BookmarkManager_nativeDeleteTrack( Java_app_organicmaps_bookmarks_data_BookmarkManager_nativeDeleteTrack(
JNIEnv *, jobject, jlong trkId) JNIEnv *, jobject, jlong trkId)
{ {
frm()->GetBookmarkManager().GetEditSession().DeleteTrack(static_cast<kml::TrackId>(trkId)); frm()->GetBookmarkManager().GetEditSession().DeleteTrack(static_cast<kml::TrackId>(trkId));
} }
JNIEXPORT jobject JNICALL 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) JNIEnv * env, jobject, double lat, double lon)
{ {
if (!frm()->HasPlacePageInfo()) if (!frm()->HasPlacePageInfo())
@@ -389,48 +389,48 @@ Java_app_organicmaps_sdk_bookmarks_data_BookmarkManager_nativeAddBookmarkToLastE
} }
JNIEXPORT jlong JNICALL JNIEXPORT jlong JNICALL
Java_app_organicmaps_sdk_bookmarks_data_BookmarkManager_nativeGetLastEditedCategory( Java_app_organicmaps_bookmarks_data_BookmarkManager_nativeGetLastEditedCategory(
JNIEnv *, jobject) JNIEnv *, jobject)
{ {
return static_cast<jlong>(frm()->LastEditedBMCategory()); return static_cast<jlong>(frm()->LastEditedBMCategory());
} }
JNIEXPORT jint JNICALL JNIEXPORT jint JNICALL
Java_app_organicmaps_sdk_bookmarks_data_BookmarkManager_nativeGetLastEditedColor( Java_app_organicmaps_bookmarks_data_BookmarkManager_nativeGetLastEditedColor(
JNIEnv *, jobject) JNIEnv *, jobject)
{ {
return static_cast<jint>(frm()->LastEditedBMColor()); return static_cast<jint>(frm()->LastEditedBMColor());
} }
JNIEXPORT void JNICALL 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) jstring path, jboolean isTemporaryFile)
{ {
frm()->AddBookmarksFile(ToNativeString(env, path), isTemporaryFile); frm()->AddBookmarksFile(ToNativeString(env, path), isTemporaryFile);
} }
JNIEXPORT jboolean JNICALL 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()); return static_cast<jboolean>(frm()->GetBookmarkManager().IsAsyncLoadingInProgress());
} }
JNIEXPORT jboolean JNICALL JNIEXPORT jboolean JNICALL
Java_app_organicmaps_sdk_bookmarks_data_BookmarkManager_nativeIsVisible( Java_app_organicmaps_bookmarks_data_BookmarkManager_nativeIsVisible(
JNIEnv *, jobject, jlong catId) JNIEnv *, jobject, jlong catId)
{ {
return static_cast<jboolean>(frm()->GetBookmarkManager().IsVisible(static_cast<kml::MarkGroupId>(catId))); return static_cast<jboolean>(frm()->GetBookmarkManager().IsVisible(static_cast<kml::MarkGroupId>(catId)));
} }
JNIEXPORT void JNICALL JNIEXPORT void JNICALL
Java_app_organicmaps_sdk_bookmarks_data_BookmarkManager_nativeSetVisibility( Java_app_organicmaps_bookmarks_data_BookmarkManager_nativeSetVisibility(
JNIEnv *, jobject, jlong catId, jboolean isVisible) JNIEnv *, jobject, jlong catId, jboolean isVisible)
{ {
frm()->GetBookmarkManager().GetEditSession().SetIsVisible(static_cast<kml::MarkGroupId>(catId), isVisible); frm()->GetBookmarkManager().GetEditSession().SetIsVisible(static_cast<kml::MarkGroupId>(catId), isVisible);
} }
JNIEXPORT void JNICALL 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) JNIEnv * env, jobject, jlong catId, jstring name)
{ {
frm()->GetBookmarkManager().GetEditSession().SetCategoryName(static_cast<kml::MarkGroupId>(catId), frm()->GetBookmarkManager().GetEditSession().SetCategoryName(static_cast<kml::MarkGroupId>(catId),
@@ -438,7 +438,7 @@ Java_app_organicmaps_sdk_bookmarks_data_BookmarkManager_nativeSetCategoryName(
} }
JNIEXPORT void JNICALL JNIEXPORT void JNICALL
Java_app_organicmaps_sdk_bookmarks_data_BookmarkManager_nativeSetCategoryDescription(JNIEnv * env, Java_app_organicmaps_bookmarks_data_BookmarkManager_nativeSetCategoryDescription(JNIEnv * env,
jobject, jobject,
jlong catId, jlong catId,
jstring desc) jstring desc)
@@ -448,7 +448,7 @@ Java_app_organicmaps_sdk_bookmarks_data_BookmarkManager_nativeSetCategoryDescrip
} }
JNIEXPORT void JNICALL 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) JNIEnv * env, jobject, jlong catId, jobjectArray tagsIds)
{ {
auto const size = env->GetArrayLength(tagsIds); auto const size = env->GetArrayLength(tagsIds);
@@ -465,7 +465,7 @@ Java_app_organicmaps_sdk_bookmarks_data_BookmarkManager_nativeSetCategoryTags(
} }
JNIEXPORT void JNICALL JNIEXPORT void JNICALL
Java_app_organicmaps_sdk_bookmarks_data_BookmarkManager_nativeSetCategoryAccessRules( Java_app_organicmaps_bookmarks_data_BookmarkManager_nativeSetCategoryAccessRules(
JNIEnv *, jobject, jlong catId, jint accessRules) JNIEnv *, jobject, jlong catId, jint accessRules)
{ {
frm()->GetBookmarkManager().GetEditSession().SetCategoryAccessRules( frm()->GetBookmarkManager().GetEditSession().SetCategoryAccessRules(
@@ -473,7 +473,7 @@ Java_app_organicmaps_sdk_bookmarks_data_BookmarkManager_nativeSetCategoryAccessR
} }
JNIEXPORT void JNICALL 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) JNIEnv * env, jobject, jlong catId, jstring key, jstring value)
{ {
frm()->GetBookmarkManager().GetEditSession().SetCategoryCustomProperty( frm()->GetBookmarkManager().GetEditSession().SetCategoryCustomProperty(
@@ -481,7 +481,7 @@ Java_app_organicmaps_sdk_bookmarks_data_BookmarkManager_nativeSetCategoryCustomP
} }
JNIEXPORT jobject JNICALL JNIEXPORT jobject JNICALL
Java_app_organicmaps_sdk_bookmarks_data_BookmarkManager_nativeUpdateBookmarkPlacePage( Java_app_organicmaps_bookmarks_data_BookmarkManager_nativeUpdateBookmarkPlacePage(
JNIEnv * env, jobject, jlong bmkId) JNIEnv * env, jobject, jlong bmkId)
{ {
if (!frm()->HasPlacePageInfo()) if (!frm()->HasPlacePageInfo())
@@ -496,7 +496,7 @@ Java_app_organicmaps_sdk_bookmarks_data_BookmarkManager_nativeUpdateBookmarkPlac
} }
JNIEXPORT jobject JNICALL JNIEXPORT jobject JNICALL
Java_app_organicmaps_sdk_bookmarks_data_BookmarkManager_nativeGetBookmarkInfo( Java_app_organicmaps_bookmarks_data_BookmarkManager_nativeGetBookmarkInfo(
JNIEnv * env, jobject, jlong bmkId) JNIEnv * env, jobject, jlong bmkId)
{ {
auto const bookmark = frm()->GetBookmarkManager().GetBookmark(static_cast<kml::MarkId>(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 JNIEXPORT jlong JNICALL
Java_app_organicmaps_sdk_bookmarks_data_BookmarkManager_nativeGetBookmarkIdByPosition( Java_app_organicmaps_bookmarks_data_BookmarkManager_nativeGetBookmarkIdByPosition(
JNIEnv *, jobject, jlong catId, jint positionInCategory) JNIEnv *, jobject, jlong catId, jint positionInCategory)
{ {
auto const & ids = frm()->GetBookmarkManager().GetUserMarkIds(static_cast<kml::MarkGroupId>(catId)); 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; } static uint32_t shift(uint32_t v, uint8_t bitCount) { return v << bitCount; }
JNIEXPORT jobject JNICALL 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) JNIEnv * env, jobject, jlong trackId, jclass trackClazz)
{ {
// Track(long trackId, long categoryId, String name, String lengthString, int color) // Track(long trackId, long categoryId, String name, String lengthString, int color)
static jmethodID const cId = jni::GetConstructorID(env, trackClazz, 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)); auto const * nTrack = frm()->GetBookmarkManager().GetTrack(static_cast<kml::TrackId>(trackId));
ASSERT(nTrack, ("Track must not be null with id:)", 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 JNIEXPORT jlong JNICALL
Java_app_organicmaps_sdk_bookmarks_data_BookmarkManager_nativeGetTrackIdByPosition( Java_app_organicmaps_bookmarks_data_BookmarkManager_nativeGetTrackIdByPosition(
JNIEnv *, jobject, jlong catId, jint positionInCategory) JNIEnv *, jobject, jlong catId, jint positionInCategory)
{ {
auto const & ids = frm()->GetBookmarkManager().GetTrackIds(static_cast<kml::MarkGroupId>(catId)); 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 JNIEXPORT jboolean JNICALL
Java_app_organicmaps_sdk_bookmarks_data_BookmarkManager_nativeIsUsedCategoryName( Java_app_organicmaps_bookmarks_data_BookmarkManager_nativeIsUsedCategoryName(
JNIEnv * env, jclass, jstring name) JNIEnv * env, jclass, jstring name)
{ {
return static_cast<jboolean>(frm()->GetBookmarkManager().IsUsedCategoryName(ToNativeString(env, name))); return static_cast<jboolean>(frm()->GetBookmarkManager().IsUsedCategoryName(ToNativeString(env, name)));
} }
JNIEXPORT void JNICALL JNIEXPORT void JNICALL
Java_app_organicmaps_sdk_bookmarks_data_BookmarkManager_nativePrepareForSearch( Java_app_organicmaps_bookmarks_data_BookmarkManager_nativePrepareForSearch(
JNIEnv *, jclass, jlong catId) JNIEnv *, jclass, jlong catId)
{ {
frm()->GetBookmarkManager().PrepareForSearch(static_cast<kml::MarkGroupId>(catId)); frm()->GetBookmarkManager().PrepareForSearch(static_cast<kml::MarkGroupId>(catId));
} }
JNIEXPORT jboolean JNICALL JNIEXPORT jboolean JNICALL
Java_app_organicmaps_sdk_bookmarks_data_BookmarkManager_nativeAreAllCategoriesInvisible( Java_app_organicmaps_bookmarks_data_BookmarkManager_nativeAreAllCategoriesInvisible(
JNIEnv *, jclass) JNIEnv *, jclass)
{ {
return static_cast<jboolean>(frm()->GetBookmarkManager().AreAllCategoriesInvisible()); return static_cast<jboolean>(frm()->GetBookmarkManager().AreAllCategoriesInvisible());
} }
JNIEXPORT jboolean JNICALL JNIEXPORT jboolean JNICALL
Java_app_organicmaps_sdk_bookmarks_data_BookmarkManager_nativeAreAllCategoriesVisible( Java_app_organicmaps_bookmarks_data_BookmarkManager_nativeAreAllCategoriesVisible(
JNIEnv *, jclass) JNIEnv *, jclass)
{ {
return static_cast<jboolean>(frm()->GetBookmarkManager().AreAllCategoriesVisible()); return static_cast<jboolean>(frm()->GetBookmarkManager().AreAllCategoriesVisible());
} }
JNIEXPORT void JNICALL JNIEXPORT void JNICALL
Java_app_organicmaps_sdk_bookmarks_data_BookmarkManager_nativeSetAllCategoriesVisibility( Java_app_organicmaps_bookmarks_data_BookmarkManager_nativeSetAllCategoriesVisibility(
JNIEnv *, jclass, jboolean visible) JNIEnv *, jclass, jboolean visible)
{ {
frm()->GetBookmarkManager().SetAllCategoriesVisibility(static_cast<bool>(visible)); frm()->GetBookmarkManager().SetAllCategoriesVisibility(static_cast<bool>(visible));
} }
JNIEXPORT void JNICALL 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) 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 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); auto const size = env->GetArrayLength(catIds);
kml::GroupIdCollection catIdsVector(size); kml::GroupIdCollection catIdsVector(size);
@@ -614,7 +614,7 @@ Java_app_organicmaps_sdk_bookmarks_data_BookmarkManager_nativePrepareFileForShar
} }
JNIEXPORT jboolean JNICALL JNIEXPORT jboolean JNICALL
Java_app_organicmaps_sdk_bookmarks_data_BookmarkManager_nativeIsCategoryEmpty( Java_app_organicmaps_bookmarks_data_BookmarkManager_nativeIsCategoryEmpty(
JNIEnv *, jclass, jlong catId) JNIEnv *, jclass, jlong catId)
{ {
return static_cast<jboolean>(frm()->GetBookmarkManager().IsCategoryEmpty( return static_cast<jboolean>(frm()->GetBookmarkManager().IsCategoryEmpty(
@@ -622,27 +622,27 @@ Java_app_organicmaps_sdk_bookmarks_data_BookmarkManager_nativeIsCategoryEmpty(
} }
JNIEXPORT void JNICALL JNIEXPORT void JNICALL
Java_app_organicmaps_sdk_bookmarks_data_BookmarkManager_nativeSetNotificationsEnabled( Java_app_organicmaps_bookmarks_data_BookmarkManager_nativeSetNotificationsEnabled(
JNIEnv *, jclass, jboolean enabled) JNIEnv *, jclass, jboolean enabled)
{ {
frm()->GetBookmarkManager().SetNotificationsEnabled(static_cast<bool>(enabled)); frm()->GetBookmarkManager().SetNotificationsEnabled(static_cast<bool>(enabled));
} }
JNIEXPORT jboolean JNICALL JNIEXPORT jboolean JNICALL
Java_app_organicmaps_sdk_bookmarks_data_BookmarkManager_nativeAreNotificationsEnabled( Java_app_organicmaps_bookmarks_data_BookmarkManager_nativeAreNotificationsEnabled(
JNIEnv *, jclass) JNIEnv *, jclass)
{ {
return static_cast<jboolean>(frm()->GetBookmarkManager().AreNotificationsEnabled()); return static_cast<jboolean>(frm()->GetBookmarkManager().AreNotificationsEnabled());
} }
JNIEXPORT jobject JNICALL 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)); return MakeCategory(env, static_cast<kml::MarkGroupId>(id));
} }
JNIEXPORT jobjectArray JNICALL 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 & bm = frm()->GetBookmarkManager();
auto const & ids = bm.GetSortedBmGroupIdList(); auto const & ids = bm.GetSortedBmGroupIdList();
@@ -651,7 +651,7 @@ Java_app_organicmaps_sdk_bookmarks_data_BookmarkManager_nativeGetBookmarkCategor
} }
JNIEXPORT jint JNICALL 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 & bm = frm()->GetBookmarkManager();
auto const count = bm.GetBmGroupsCount(); auto const count = bm.GetBmGroupsCount();
@@ -660,7 +660,7 @@ Java_app_organicmaps_sdk_bookmarks_data_BookmarkManager_nativeGetBookmarkCategor
} }
JNIEXPORT jobjectArray JNICALL 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 & bm = frm()->GetBookmarkManager();
auto const ids = bm.GetChildrenCategories(static_cast<kml::MarkGroupId>(parentId)); 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 JNIEXPORT jboolean JNICALL
Java_app_organicmaps_sdk_bookmarks_data_BookmarkManager_nativeHasLastSortingType( Java_app_organicmaps_bookmarks_data_BookmarkManager_nativeHasLastSortingType(
JNIEnv *, jobject, jlong catId) JNIEnv *, jobject, jlong catId)
{ {
auto const & bm = frm()->GetBookmarkManager(); auto const & bm = frm()->GetBookmarkManager();
@@ -678,7 +678,7 @@ Java_app_organicmaps_sdk_bookmarks_data_BookmarkManager_nativeHasLastSortingType
} }
JNIEXPORT jint JNICALL JNIEXPORT jint JNICALL
Java_app_organicmaps_sdk_bookmarks_data_BookmarkManager_nativeGetLastSortingType( Java_app_organicmaps_bookmarks_data_BookmarkManager_nativeGetLastSortingType(
JNIEnv *, jobject, jlong catId) JNIEnv *, jobject, jlong catId)
{ {
auto const & bm = frm()->GetBookmarkManager(); auto const & bm = frm()->GetBookmarkManager();
@@ -690,7 +690,7 @@ Java_app_organicmaps_sdk_bookmarks_data_BookmarkManager_nativeGetLastSortingType
} }
JNIEXPORT void JNICALL JNIEXPORT void JNICALL
Java_app_organicmaps_sdk_bookmarks_data_BookmarkManager_nativeSetLastSortingType( Java_app_organicmaps_bookmarks_data_BookmarkManager_nativeSetLastSortingType(
JNIEnv *, jobject, jlong catId, jint type) JNIEnv *, jobject, jlong catId, jint type)
{ {
auto & bm = frm()->GetBookmarkManager(); auto & bm = frm()->GetBookmarkManager();
@@ -699,7 +699,7 @@ Java_app_organicmaps_sdk_bookmarks_data_BookmarkManager_nativeSetLastSortingType
} }
JNIEXPORT void JNICALL JNIEXPORT void JNICALL
Java_app_organicmaps_sdk_bookmarks_data_BookmarkManager_nativeResetLastSortingType( Java_app_organicmaps_bookmarks_data_BookmarkManager_nativeResetLastSortingType(
JNIEnv *, jobject, jlong catId) JNIEnv *, jobject, jlong catId)
{ {
auto & bm = frm()->GetBookmarkManager(); auto & bm = frm()->GetBookmarkManager();
@@ -707,7 +707,7 @@ Java_app_organicmaps_sdk_bookmarks_data_BookmarkManager_nativeResetLastSortingTy
} }
JNIEXPORT jintArray JNICALL 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) jobject, jlong catId, jboolean hasMyPosition)
{ {
auto const & bm = frm()->GetBookmarkManager(); auto const & bm = frm()->GetBookmarkManager();
@@ -724,7 +724,7 @@ Java_app_organicmaps_sdk_bookmarks_data_BookmarkManager_nativeGetAvailableSortin
} }
JNIEXPORT void JNICALL 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, jobject, jlong catId, jint sortingType, jboolean hasMyPosition, jdouble lat, jdouble lon,
jlong timestamp) jlong timestamp)
{ {
@@ -741,14 +741,14 @@ Java_app_organicmaps_sdk_bookmarks_data_BookmarkManager_nativeGetSortedCategory(
} }
JNIEXPORT jstring JNICALL JNIEXPORT jstring JNICALL
Java_app_organicmaps_sdk_bookmarks_data_BookmarkManager_nativeGetBookmarkName( Java_app_organicmaps_bookmarks_data_BookmarkManager_nativeGetBookmarkName(
JNIEnv * env, jclass, jlong bmk) JNIEnv * env, jclass, jlong bmk)
{ {
return jni::ToJavaString(env, getBookmark(bmk)->GetPreferredName()); return jni::ToJavaString(env, getBookmark(bmk)->GetPreferredName());
} }
JNIEXPORT jstring JNICALL JNIEXPORT jstring JNICALL
Java_app_organicmaps_sdk_bookmarks_data_BookmarkManager_nativeGetBookmarkFeatureType( Java_app_organicmaps_bookmarks_data_BookmarkManager_nativeGetBookmarkFeatureType(
JNIEnv * env, jclass, jlong bmk) JNIEnv * env, jclass, jlong bmk)
{ {
return jni::ToJavaString(env, return jni::ToJavaString(env,
@@ -756,14 +756,14 @@ Java_app_organicmaps_sdk_bookmarks_data_BookmarkManager_nativeGetBookmarkFeature
} }
JNIEXPORT jstring JNICALL JNIEXPORT jstring JNICALL
Java_app_organicmaps_sdk_bookmarks_data_BookmarkManager_nativeGetBookmarkDescription( Java_app_organicmaps_bookmarks_data_BookmarkManager_nativeGetBookmarkDescription(
JNIEnv * env, jclass, jlong bmk) JNIEnv * env, jclass, jlong bmk)
{ {
return jni::ToJavaString(env, getBookmark(bmk)->GetDescription()); return jni::ToJavaString(env, getBookmark(bmk)->GetDescription());
} }
JNIEXPORT jint JNICALL JNIEXPORT jint JNICALL
Java_app_organicmaps_sdk_bookmarks_data_BookmarkManager_nativeGetBookmarkColor( Java_app_organicmaps_bookmarks_data_BookmarkManager_nativeGetBookmarkColor(
JNIEnv *, jclass, jlong bmk) JNIEnv *, jclass, jlong bmk)
{ {
auto const * mark = getBookmark(bmk); auto const * mark = getBookmark(bmk);
@@ -772,7 +772,7 @@ Java_app_organicmaps_sdk_bookmarks_data_BookmarkManager_nativeGetBookmarkColor(
} }
JNIEXPORT jint JNICALL JNIEXPORT jint JNICALL
Java_app_organicmaps_sdk_bookmarks_data_BookmarkManager_nativeGetBookmarkIcon( Java_app_organicmaps_bookmarks_data_BookmarkManager_nativeGetBookmarkIcon(
JNIEnv *, jclass, jlong bmk) JNIEnv *, jclass, jlong bmk)
{ {
auto const * mark = getBookmark(bmk); auto const * mark = getBookmark(bmk);
@@ -781,7 +781,7 @@ Java_app_organicmaps_sdk_bookmarks_data_BookmarkManager_nativeGetBookmarkIcon(
} }
JNIEXPORT void JNICALL JNIEXPORT void JNICALL
Java_app_organicmaps_sdk_bookmarks_data_BookmarkManager_nativeSetBookmarkParams( Java_app_organicmaps_bookmarks_data_BookmarkManager_nativeSetBookmarkParams(
JNIEnv * env, jclass, jlong bmk, JNIEnv * env, jclass, jlong bmk,
jstring name, jint color, jstring descr) 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; } constexpr static uint8_t ExtractByte(uint32_t number, uint8_t byteIdx) { return (number >> (8 * byteIdx)) & 0xFF; }
JNIEXPORT void JNICALL JNIEXPORT void JNICALL
Java_app_organicmaps_sdk_bookmarks_data_BookmarkManager_nativeSetTrackParams( Java_app_organicmaps_bookmarks_data_BookmarkManager_nativeSetTrackParams(
JNIEnv * env, jclass, jlong trackId, JNIEnv * env, jclass, jlong trackId,
jstring name, jint color, jstring descr) jstring name, jint color, jstring descr)
{ {
@@ -821,14 +821,14 @@ Java_app_organicmaps_sdk_bookmarks_data_BookmarkManager_nativeSetTrackParams(
} }
JNIEXPORT jstring JNICALL JNIEXPORT jstring JNICALL
Java_app_organicmaps_sdk_bookmarks_data_BookmarkManager_nativeGetTrackDescription( Java_app_organicmaps_bookmarks_data_BookmarkManager_nativeGetTrackDescription(
JNIEnv * env, jclass, jlong trackId) JNIEnv * env, jclass, jlong trackId)
{ {
return jni::ToJavaString(env, frm()->GetBookmarkManager().GetTrack(static_cast<kml::TrackId>(trackId))->GetDescription()); return jni::ToJavaString(env, frm()->GetBookmarkManager().GetTrack(static_cast<kml::TrackId>(trackId))->GetDescription());
} }
JNIEXPORT void JNICALL 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) JNIEnv *, jclass, jlong oldCat, jlong newCat, jlong bmk)
{ {
g_framework->MoveBookmark(static_cast<kml::MarkId>(bmk), static_cast<kml::MarkGroupId>(oldCat), 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 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) JNIEnv *, jclass, jlong oldCat, jlong newCat, jlong trackId)
{ {
g_framework->MoveTrack(static_cast<kml::TrackId>(trackId), static_cast<kml::MarkGroupId>(oldCat), 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 JNIEXPORT void JNICALL
Java_app_organicmaps_sdk_bookmarks_data_BookmarkManager_nativeChangeTrackColor( Java_app_organicmaps_bookmarks_data_BookmarkManager_nativeChangeTrackColor(
JNIEnv *, jclass, jlong trackId, jint color) JNIEnv *, jclass, jlong trackId, jint color)
{ {
uint8_t alpha = ExtractByte(color, 3); uint8_t alpha = ExtractByte(color, 3);
@@ -852,28 +852,28 @@ Java_app_organicmaps_sdk_bookmarks_data_BookmarkManager_nativeChangeTrackColor(
} }
JNIEXPORT jobject JNICALL JNIEXPORT jobject JNICALL
Java_app_organicmaps_sdk_bookmarks_data_BookmarkManager_nativeGetBookmarkXY( Java_app_organicmaps_bookmarks_data_BookmarkManager_nativeGetBookmarkXY(
JNIEnv * env, jclass, jlong bmk) JNIEnv * env, jclass, jlong bmk)
{ {
return jni::GetNewParcelablePointD(env, getBookmark(bmk)->GetPivot()); return jni::GetNewParcelablePointD(env, getBookmark(bmk)->GetPivot());
} }
JNIEXPORT jdouble JNICALL JNIEXPORT jdouble JNICALL
Java_app_organicmaps_sdk_bookmarks_data_BookmarkManager_nativeGetBookmarkScale( Java_app_organicmaps_bookmarks_data_BookmarkManager_nativeGetBookmarkScale(
JNIEnv *, jclass, jlong bmk) JNIEnv *, jclass, jlong bmk)
{ {
return getBookmark(bmk)->GetScale(); return getBookmark(bmk)->GetScale();
} }
JNIEXPORT jstring JNICALL 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) JNIEnv * env, jclass, jlong bmk, jboolean addName)
{ {
return jni::ToJavaString(env, frm()->CodeGe0url(getBookmark(bmk), addName)); return jni::ToJavaString(env, frm()->CodeGe0url(getBookmark(bmk), addName));
} }
JNIEXPORT jstring JNICALL JNIEXPORT jstring JNICALL
Java_app_organicmaps_sdk_bookmarks_data_BookmarkManager_nativeGetBookmarkAddress( Java_app_organicmaps_bookmarks_data_BookmarkManager_nativeGetBookmarkAddress(
JNIEnv * env, jclass, jlong bmkId) JNIEnv * env, jclass, jlong bmkId)
{ {
auto const address = frm()->GetAddressAtPoint(getBookmark(bmkId)->GetPivot()).FormatAddress(); auto const address = frm()->GetAddressAtPoint(getBookmark(bmkId)->GetPivot()).FormatAddress();
@@ -881,7 +881,7 @@ Java_app_organicmaps_sdk_bookmarks_data_BookmarkManager_nativeGetBookmarkAddress
} }
JNIEXPORT jdouble JNICALL JNIEXPORT jdouble JNICALL
Java_app_organicmaps_sdk_bookmarks_data_BookmarkManager_nativeGetElevationCurPositionDistance( Java_app_organicmaps_bookmarks_data_BookmarkManager_nativeGetElevationCurPositionDistance(
JNIEnv *, jclass, jlong trackId) JNIEnv *, jclass, jlong trackId)
{ {
auto const & bm = frm()->GetBookmarkManager(); auto const & bm = frm()->GetBookmarkManager();
@@ -889,7 +889,7 @@ Java_app_organicmaps_sdk_bookmarks_data_BookmarkManager_nativeGetElevationCurPos
} }
JNIEXPORT void JNICALL JNIEXPORT void JNICALL
Java_app_organicmaps_sdk_bookmarks_data_BookmarkManager_nativeSetElevationCurrentPositionChangedListener( Java_app_organicmaps_bookmarks_data_BookmarkManager_nativeSetElevationCurrentPositionChangedListener(
JNIEnv * env, jclass) JNIEnv * env, jclass)
{ {
frm()->GetBookmarkManager().SetElevationMyPositionChangedCallback( frm()->GetBookmarkManager().SetElevationMyPositionChangedCallback(
@@ -897,14 +897,14 @@ Java_app_organicmaps_sdk_bookmarks_data_BookmarkManager_nativeSetElevationCurren
} }
JNIEXPORT void JNICALL JNIEXPORT void JNICALL
Java_app_organicmaps_sdk_bookmarks_data_BookmarkManager_nativeRemoveElevationCurrentPositionChangedListener( Java_app_organicmaps_bookmarks_data_BookmarkManager_nativeRemoveElevationCurrentPositionChangedListener(
JNIEnv *, jclass) JNIEnv *, jclass)
{ {
frm()->GetBookmarkManager().SetElevationMyPositionChangedCallback(nullptr); frm()->GetBookmarkManager().SetElevationMyPositionChangedCallback(nullptr);
} }
JNIEXPORT void JNICALL JNIEXPORT void JNICALL
Java_app_organicmaps_sdk_bookmarks_data_BookmarkManager_nativeSetElevationActivePoint( Java_app_organicmaps_bookmarks_data_BookmarkManager_nativeSetElevationActivePoint(
JNIEnv *, jclass, jlong trackId, jdouble distanceInMeters) JNIEnv *, jclass, jlong trackId, jdouble distanceInMeters)
{ {
auto & bm = frm()->GetBookmarkManager(); auto & bm = frm()->GetBookmarkManager();
@@ -914,7 +914,7 @@ Java_app_organicmaps_sdk_bookmarks_data_BookmarkManager_nativeSetElevationActive
} }
JNIEXPORT jdouble JNICALL JNIEXPORT jdouble JNICALL
Java_app_organicmaps_sdk_bookmarks_data_BookmarkManager_nativeGetElevationActivePointDistance( Java_app_organicmaps_bookmarks_data_BookmarkManager_nativeGetElevationActivePointDistance(
JNIEnv *, jclass, jlong trackId) JNIEnv *, jclass, jlong trackId)
{ {
auto & bm = frm()->GetBookmarkManager(); auto & bm = frm()->GetBookmarkManager();
@@ -922,21 +922,21 @@ Java_app_organicmaps_sdk_bookmarks_data_BookmarkManager_nativeGetElevationActive
} }
JNIEXPORT void JNICALL JNIEXPORT void JNICALL
Java_app_organicmaps_sdk_bookmarks_data_BookmarkManager_nativeSetElevationActiveChangedListener( Java_app_organicmaps_bookmarks_data_BookmarkManager_nativeSetElevationActiveChangedListener(
JNIEnv *env, jclass) JNIEnv *env, jclass)
{ {
frm()->GetBookmarkManager().SetElevationActivePointChangedCallback(std::bind(&OnElevationActivePointChanged, env)); frm()->GetBookmarkManager().SetElevationActivePointChangedCallback(std::bind(&OnElevationActivePointChanged, env));
} }
JNIEXPORT void JNICALL JNIEXPORT void JNICALL
Java_app_organicmaps_sdk_bookmarks_data_BookmarkManager_nativeRemoveElevationActiveChangedListener( Java_app_organicmaps_bookmarks_data_BookmarkManager_nativeRemoveElevationActiveChangedListener(
JNIEnv *, jclass) JNIEnv *, jclass)
{ {
frm()->GetBookmarkManager().SetElevationActivePointChangedCallback(nullptr); frm()->GetBookmarkManager().SetElevationActivePointChangedCallback(nullptr);
} }
JNIEXPORT jboolean JNICALL 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(); return frm()->GetBookmarkManager().HasRecentlyDeletedBookmark();
} }

View File

@@ -52,17 +52,17 @@ JNI_OnLoad(JavaVM * jvm, void *)
jni::InitAssertLog(); jni::InitAssertLog();
JNIEnv * env = jni::GetEnv(); JNIEnv * env = jni::GetEnv();
g_mapObjectClazz = jni::GetGlobalClassRef(env, "app/organicmaps/sdk/bookmarks/data/MapObject"); g_mapObjectClazz = jni::GetGlobalClassRef(env, "app/organicmaps/bookmarks/data/MapObject");
g_featureIdClazz = jni::GetGlobalClassRef(env, "app/organicmaps/sdk/bookmarks/data/FeatureId"); g_featureIdClazz = jni::GetGlobalClassRef(env, "app/organicmaps/bookmarks/data/FeatureId");
g_bookmarkClazz = jni::GetGlobalClassRef(env, "app/organicmaps/sdk/bookmarks/data/Bookmark"); g_bookmarkClazz = jni::GetGlobalClassRef(env, "app/organicmaps/bookmarks/data/Bookmark");
g_httpClientClazz = jni::GetGlobalClassRef(env, "app/organicmaps/sdk/util/HttpClient"); g_httpClientClazz = jni::GetGlobalClassRef(env, "app/organicmaps/util/HttpClient");
g_httpParamsClazz = jni::GetGlobalClassRef(env, "app/organicmaps/sdk/util/HttpClient$Params"); g_httpParamsClazz = jni::GetGlobalClassRef(env, "app/organicmaps/util/HttpClient$Params");
g_platformSocketClazz = jni::GetGlobalClassRef(env, "app/organicmaps/sdk/location/PlatformSocket"); g_platformSocketClazz = jni::GetGlobalClassRef(env, "app/organicmaps/location/PlatformSocket");
g_utilsClazz = jni::GetGlobalClassRef(env, "app/organicmaps/sdk/util/Utils"); g_utilsClazz = jni::GetGlobalClassRef(env, "app/organicmaps/util/Utils");
g_loggerClazz = jni::GetGlobalClassRef(env, "app/organicmaps/sdk/util/log/Logger"); g_loggerClazz = jni::GetGlobalClassRef(env, "app/organicmaps/util/log/Logger");
g_keyValueClazz = jni::GetGlobalClassRef(env, "app/organicmaps/sdk/util/KeyValue"); g_keyValueClazz = jni::GetGlobalClassRef(env, "app/organicmaps/util/KeyValue");
g_networkPolicyClazz = jni::GetGlobalClassRef(env, "app/organicmaps/sdk/util/NetworkPolicy"); g_networkPolicyClazz = jni::GetGlobalClassRef(env, "app/organicmaps/util/NetworkPolicy");
g_elevationInfoClazz = jni::GetGlobalClassRef(env, "app/organicmaps/sdk/bookmarks/data/ElevationInfo"); g_elevationInfoClazz = jni::GetGlobalClassRef(env, "app/organicmaps/bookmarks/data/ElevationInfo");
return JNI_VERSION_1_6; return JNI_VERSION_1_6;
} }
@@ -269,7 +269,7 @@ std::string DescribeException()
jobject GetNewParcelablePointD(JNIEnv * env, m2::PointD const & point) 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, () ); ASSERT ( klass, () );
jmethodID methodID = GetConstructorID(env, klass, "(DD)V"); jmethodID methodID = GetConstructorID(env, klass, "(DD)V");

View File

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

View File

@@ -1,7 +1,7 @@
#include <jni.h> #include <jni.h>
#include "app/organicmaps/sdk/core/jni_helper.hpp" #include "app/organicmaps/core/jni_helper.hpp"
#include "app/organicmaps/sdk/Framework.hpp" #include "app/organicmaps/Framework.hpp"
#include "editor/osm_editor.hpp" #include "editor/osm_editor.hpp"
@@ -66,38 +66,38 @@ extern "C"
using osm::Editor; using osm::Editor;
JNIEXPORT void JNICALL 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) // 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_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_localNameFieldCode = env->GetFieldID(g_localNameClazz, "code", "I");
g_localNameFieldName = env->GetFieldID(g_localNameClazz, "name", "Ljava/lang/String;"); 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) // LocalizedStreet(@NonNull String defaultName, @NonNull String localizedName)
g_localStreetCtor = jni::GetConstructorID(env, g_localStreetClazz, "(Ljava/lang/String;Ljava/lang/String;)V"); 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_localStreetFieldDef = env->GetFieldID(g_localStreetClazz, "defaultName", "Ljava/lang/String;");
g_localStreetFieldLoc = env->GetFieldID(g_localStreetClazz, "localizedName", "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_namesDataSourceClassID = jni::GetGlobalClassRef(env, "app/organicmaps/editor/data/NamesDataSource");
g_namesDataSourceConstructorID = jni::GetConstructorID(env, g_namesDataSourceClassID, "([Lapp/organicmaps/sdk/editor/data/LocalizedName;I)V"); g_namesDataSourceConstructorID = jni::GetConstructorID(env, g_namesDataSourceClassID, "([Lapp/organicmaps/editor/data/LocalizedName;I)V");
} }
JNIEXPORT jstring JNICALL 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()); return jni::ToJavaString(env, g_editableMapObject.GetOpeningHours());
} }
JNIEXPORT void JNICALL 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)); g_editableMapObject.SetOpeningHours(jni::ToNativeString(env, value));
} }
JNIEXPORT jstring JNICALL 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); auto const metaID = static_cast<osm::MapObject::MetadataID>(id);
ASSERT_LESS(metaID, osm::MapObject::MetadataID::FMD_COUNT, ()); 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 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); auto const metaID = static_cast<osm::MapObject::MetadataID>(id);
ASSERT_LESS(metaID, osm::MapObject::MetadataID::FMD_COUNT, ()); 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 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); auto const metaID = static_cast<osm::MapObject::MetadataID>(id);
ASSERT_LESS(metaID, osm::MapObject::MetadataID::FMD_COUNT, ()); 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 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(); return g_editableMapObject.GetStars();
} }
JNIEXPORT jint JNICALL JNIEXPORT jint JNICALL
Java_app_organicmaps_sdk_editor_Editor_nativeGetMaxEditableBuildingLevels(JNIEnv *, jclass) Java_app_organicmaps_editor_Editor_nativeGetMaxEditableBuildingLevels(JNIEnv *, jclass)
{ {
return osm::EditableMapObject::kMaximumLevelsEditableByUsers; return osm::EditableMapObject::kMaximumLevelsEditableByUsers;
} }
JNIEXPORT jboolean JNICALL 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; return g_editableMapObject.GetInternet() == feature::Internet::Wlan;
} }
JNIEXPORT void JNICALL 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)) if (hasWifi != (g_editableMapObject.GetInternet() == feature::Internet::Wlan))
g_editableMapObject.SetInternet(hasWifi ? feature::Internet::Wlan : feature::Internet::Unknown); g_editableMapObject.SetInternet(hasWifi ? feature::Internet::Wlan : feature::Internet::Unknown);
} }
JNIEXPORT jboolean JNICALL 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)) switch (g_framework->NativeFramework()->SaveEditedMapObject(g_editableMapObject))
{ {
@@ -169,7 +169,7 @@ Java_app_organicmaps_sdk_editor_Editor_nativeSaveEditedFeature(JNIEnv *, jclass)
} }
JNIEXPORT jboolean JNICALL 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(); ::Framework * frm = g_framework->NativeFramework();
if (!frm->HasPlacePageInfo()) if (!frm->HasPlacePageInfo())
@@ -179,7 +179,7 @@ Java_app_organicmaps_sdk_editor_Editor_nativeShouldShowEditPlace(JNIEnv *, jclas
} }
JNIEXPORT jboolean JNICALL 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(); ::Framework * frm = g_framework->NativeFramework();
if (!frm->HasPlacePageInfo()) if (!frm->HasPlacePageInfo())
@@ -189,7 +189,7 @@ Java_app_organicmaps_sdk_editor_Editor_nativeShouldShowAddBusiness(JNIEnv *, jcl
} }
JNIEXPORT jboolean JNICALL 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(); ::Framework * frm = g_framework->NativeFramework();
if (!frm->HasPlacePageInfo()) if (!frm->HasPlacePageInfo())
@@ -199,7 +199,7 @@ Java_app_organicmaps_sdk_editor_Editor_nativeShouldShowAddPlace(JNIEnv *, jclass
} }
JNIEXPORT jboolean JNICALL 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(); ::Framework * frm = g_framework->NativeFramework();
if (!frm->HasPlacePageInfo()) if (!frm->HasPlacePageInfo())
@@ -209,7 +209,7 @@ Java_app_organicmaps_sdk_editor_Editor_nativeShouldEnableEditPlace(JNIEnv *, jcl
} }
JNIEXPORT jboolean JNICALL 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(); ::Framework * frm = g_framework->NativeFramework();
if (!frm->HasPlacePageInfo()) if (!frm->HasPlacePageInfo())
@@ -219,7 +219,7 @@ Java_app_organicmaps_sdk_editor_Editor_nativeShouldEnableAddPlace(JNIEnv *, jcla
} }
JNIEXPORT jintArray JNICALL 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(); auto const & editable = g_editableMapObject.GetEditableProperties();
size_t const size = editable.size(); size_t const size = editable.size();
@@ -233,31 +233,31 @@ Java_app_organicmaps_sdk_editor_Editor_nativeGetEditableProperties(JNIEnv * env,
} }
JNIEXPORT jboolean JNICALL 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(); return g_editableMapObject.IsAddressEditable();
} }
JNIEXPORT jboolean JNICALL 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(); return g_editableMapObject.IsNameEditable();
} }
JNIEXPORT jboolean JNICALL 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(); return g_editableMapObject.IsPointType();
} }
JNIEXPORT jboolean JNICALL 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(); return g_editableMapObject.IsBuilding();
} }
JNIEXPORT jobject JNICALL 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(); auto const namesDataSource = g_editableMapObject.GetNamesDataSource();
@@ -268,7 +268,7 @@ Java_app_organicmaps_sdk_editor_Editor_nativeGetNamesDataSource(JNIEnv * env, jc
} }
JNIEXPORT void JNICALL 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); int const length = env->GetArrayLength(names);
for (int i = 0; i < length; i++) 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 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()); return ToJavaStreet(env, g_editableMapObject.GetStreet());
} }
JNIEXPORT void JNICALL 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)), g_editableMapObject.SetStreet({jni::ToNativeString(env, (jstring) env->GetObjectField(street, g_localStreetFieldDef)),
jni::ToNativeString(env, (jstring) env->GetObjectField(street, g_localStreetFieldLoc))}); jni::ToNativeString(env, (jstring) env->GetObjectField(street, g_localStreetFieldLoc))});
} }
JNIEXPORT jobjectArray JNICALL 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); return jni::ToJavaArray(env, g_localStreetClazz, g_editableMapObject.GetNearbyStreets(), ToJavaStreet);
} }
JNIEXPORT jobjectArray JNICALL 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; using TLang = StringUtf8Multilang::Lang;
//public Language(@NonNull String code, @NonNull String name) //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"); static jmethodID const langCtor = jni::GetConstructorID(env, langClass, "(Ljava/lang/String;Ljava/lang/String;)V");
return jni::ToJavaArray(env, langClass, StringUtf8Multilang::GetSupportedLanguages(includeServiceLangs), return jni::ToJavaArray(env, langClass, StringUtf8Multilang::GetSupportedLanguages(includeServiceLangs),
@@ -315,25 +315,25 @@ Java_app_organicmaps_sdk_editor_Editor_nativeGetSupportedLanguages(JNIEnv * env,
} }
JNIEXPORT jstring JNICALL 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()); return jni::ToJavaString(env, g_editableMapObject.GetHouseNumber());
} }
JNIEXPORT void JNICALL 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)); g_editableMapObject.SetHouseNumber(jni::ToNativeString(env, houseNumber));
} }
JNIEXPORT jboolean JNICALL 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(); return Editor::Instance().HaveMapEditsOrNotesToUpload();
} }
JNIEXPORT void JNICALL 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 // TODO: Handle upload status in callback
Editor::Instance().UploadChanges(jni::ToNativeString(env, token), Editor::Instance().UploadChanges(jni::ToNativeString(env, token),
@@ -342,7 +342,7 @@ Java_app_organicmaps_sdk_editor_Editor_nativeUploadChanges(JNIEnv * env, jclass
} }
JNIEXPORT jlongArray JNICALL 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(); auto const stats = Editor::Instance().GetStats();
jlongArray result = env->NewLongArray(3); jlongArray result = env->NewLongArray(3);
@@ -353,13 +353,13 @@ Java_app_organicmaps_sdk_editor_Editor_nativeGetStats(JNIEnv * env, jclass clazz
} }
JNIEXPORT void JNICALL 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(); Editor::Instance().ClearAllLocalEdits();
} }
JNIEXPORT void JNICALL 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(); ::Framework * frm = g_framework->NativeFramework();
if (!frm->HasPlacePageInfo()) if (!frm->HasPlacePageInfo())
@@ -374,7 +374,7 @@ Java_app_organicmaps_sdk_editor_Editor_nativeStartEdit(JNIEnv *, jclass)
} }
JNIEXPORT void JNICALL JNIEXPORT void JNICALL
Java_app_organicmaps_sdk_editor_Editor_nativeCreateMapObject(JNIEnv * env, jclass, Java_app_organicmaps_editor_Editor_nativeCreateMapObject(JNIEnv * env, jclass,
jstring featureType) jstring featureType)
{ {
::Framework * frm = g_framework->NativeFramework(); ::Framework * frm = g_framework->NativeFramework();
@@ -385,7 +385,7 @@ Java_app_organicmaps_sdk_editor_Editor_nativeCreateMapObject(JNIEnv * env, jclas
// static void nativeCreateNote(String text); // static void nativeCreateNote(String text);
JNIEXPORT void JNICALL 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_framework->NativeFramework()->CreateNote(
g_editableMapObject, osm::Editor::NoteProblemType::General, jni::ToNativeString(env, text)); 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); // static void nativePlaceDoesNotExist(String comment);
JNIEXPORT void JNICALL 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, g_framework->NativeFramework()->CreateNote(g_editableMapObject,
osm::Editor::NoteProblemType::PlaceDoesNotExist, osm::Editor::NoteProblemType::PlaceDoesNotExist,
@@ -401,13 +401,13 @@ Java_app_organicmaps_sdk_editor_Editor_nativePlaceDoesNotExist(JNIEnv * env, jcl
} }
JNIEXPORT void JNICALL 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()); g_framework->NativeFramework()->RollBackChanges(g_editableMapObject.GetID());
} }
JNIEXPORT jobjectArray JNICALL 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) jstring jLang)
{ {
std::string const & lang = jni::ToNativeString(env, jLang); std::string const & lang = jni::ToNativeString(env, jLang);
@@ -418,7 +418,7 @@ Java_app_organicmaps_sdk_editor_Editor_nativeGetAllCreatableFeatureTypes(JNIEnv
} }
JNIEXPORT jobjectArray JNICALL 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 query,
jstring jLang) jstring jLang)
{ {
@@ -430,7 +430,7 @@ Java_app_organicmaps_sdk_editor_Editor_nativeSearchCreatableFeatureTypes(JNIEnv
} }
JNIEXPORT jobjectArray JNICALL 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(); osm::AllCuisines const & cuisines = osm::Cuisines::Instance().AllSupportedCuisines();
std::vector<std::string> keys; std::vector<std::string> keys;
@@ -441,13 +441,13 @@ Java_app_organicmaps_sdk_editor_Editor_nativeGetCuisines(JNIEnv * env, jclass cl
} }
JNIEXPORT jobjectArray JNICALL 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()); return jni::ToJavaStringArray(env, g_editableMapObject.GetCuisines());
} }
JNIEXPORT jobjectArray JNICALL 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); std::string const substr = jni::ToNativeString(env, jSubstr);
bool const noFilter = substr.length() == 0; bool const noFilter = substr.length() == 0;
@@ -467,7 +467,7 @@ Java_app_organicmaps_sdk_editor_Editor_nativeFilterCuisinesKeys(JNIEnv * env, jc
} }
JNIEXPORT jobjectArray JNICALL 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); int const length = env->GetArrayLength(jKeys);
auto const & cuisines = osm::Cuisines::Instance(); auto const & cuisines = osm::Cuisines::Instance();
@@ -482,7 +482,7 @@ Java_app_organicmaps_sdk_editor_Editor_nativeTranslateCuisines(JNIEnv * env, jcl
} }
JNIEXPORT void JNICALL 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); int const length = env->GetArrayLength(jKeys);
std::vector<std::string> cuisines; std::vector<std::string> cuisines;
@@ -493,38 +493,38 @@ Java_app_organicmaps_sdk_editor_Editor_nativeSetSelectedCuisines(JNIEnv * env, j
} }
JNIEXPORT jstring JNICALL 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()); return jni::ToJavaString(env, g_editableMapObject.FormatCuisines());
} }
JNIEXPORT jstring JNICALL 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()); return jni::ToJavaString(env, g_editableMapObject.GetID().GetMwmName());
} }
JNIEXPORT jlong JNICALL 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(); return g_editableMapObject.GetID().GetMwmVersion();
} }
// static boolean nativeIsHouseValid(String houseNumber); // static boolean nativeIsHouseValid(String houseNumber);
JNIEXPORT jboolean JNICALL 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)); return osm::EditableMapObject::ValidateHouseNumber(jni::ToNativeString(env, houseNumber));
} }
JNIEXPORT jboolean JNICALL 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)); return osm::EditableMapObject::ValidateName(jni::ToNativeString(env, name));
} }
JNIEXPORT jstring JNICALL 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(); auto types = g_editableMapObject.GetTypes();
types.SortBySpec(); types.SortBySpec();
@@ -534,20 +534,20 @@ Java_app_organicmaps_sdk_editor_Editor_nativeGetCategory(JNIEnv * env, jclass cl
// @FeatureStatus // @FeatureStatus
// static native int nativeGetMapObjectStatus(); // static native int nativeGetMapObjectStatus();
JNIEXPORT jint JNICALL 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())); return static_cast<jint>(osm::Editor::Instance().GetFeatureStatus(g_editableMapObject.GetID()));
} }
JNIEXPORT jboolean JNICALL 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); return osm::Editor::Instance().IsFeatureUploaded(g_editableMapObject.GetID().m_mwmId, g_editableMapObject.GetID().m_index);
} }
// static nativeMakeLocalizedName(String langCode, String name); // static nativeMakeLocalizedName(String langCode, String name);
JNIEXPORT jobject JNICALL 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)); osm::LocalizedName localizedName(jni::ToNativeString(env, code), jni::ToNativeString(env, name));
return ToJavaName(env, localizedName); return ToJavaName(env, localizedName);

View File

@@ -1,7 +1,7 @@
#include <jni.h> #include <jni.h>
#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 "editor/opening_hours_ui.hpp" #include "editor/opening_hours_ui.hpp"
#include "editor/ui2oh.hpp" #include "editor/ui2oh.hpp"
@@ -44,7 +44,7 @@ jfieldID g_fidWeekdays;
jobject JavaHoursMinutes(JNIEnv * env, jlong hours, jlong minutes) jobject JavaHoursMinutes(JNIEnv * env, jlong hours, jlong minutes)
{ {
static const jclass dateUtilsClass = jni::GetGlobalClassRef(env, static const jclass dateUtilsClass = jni::GetGlobalClassRef(env,
"app/organicmaps/sdk/util/DateUtils"); "app/organicmaps/util/DateUtils");
static jmethodID const is24HourFormatMethod = static jmethodID const is24HourFormatMethod =
jni::GetStaticMethodID(env, jni::GetStaticMethodID(env,
dateUtilsClass, dateUtilsClass,
@@ -182,9 +182,9 @@ TimeTableSet NativeTimetableSet(JNIEnv * env, jobjectArray jTimetables)
extern "C" extern "C"
{ {
JNIEXPORT void JNICALL 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) // 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"); g_ctorHoursMinutes = env->GetMethodID(g_clazzHoursMinutes, "<init>", "(JJZ)V");
ASSERT(g_ctorHoursMinutes, (jni::DescribeException())); 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"); g_fidMinutes = env->GetFieldID(g_clazzHoursMinutes, "minutes", "J");
ASSERT(g_fidMinutes, (jni::DescribeException())); 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) // Java signature : Timespan(HoursMinutes start, HoursMinutes end)
g_ctorTimespan = 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())); 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())); 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())); 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[]) // Java signature : Timetable(Timespan workingTime, Timespan[] closedHours, boolean isFullday, int weekdays[])
g_ctorTimetable = 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())); 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())); 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())); ASSERT(g_fidClosedTimespans, (jni::DescribeException()));
g_fidIsFullday = env->GetFieldID(g_clazzTimetable, "isFullday", "Z"); g_fidIsFullday = env->GetFieldID(g_clazzTimetable, "isFullday", "Z");
ASSERT(g_fidIsFullday, (jni::DescribeException())); ASSERT(g_fidIsFullday, (jni::DescribeException()));
@@ -219,21 +219,21 @@ Java_app_organicmaps_sdk_editor_OpeningHours_nativeInit(JNIEnv * env, jclass cla
} }
JNIEXPORT jobjectArray JNICALL 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; TimeTableSet tts;
return JavaTimetables(env, tts); return JavaTimetables(env, tts);
} }
JNIEXPORT jobject JNICALL 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); TimeTableSet const tts = NativeTimetableSet(env, timetables);
return JavaTimetable(env, tts.GetComplementTimeTable()); return JavaTimetable(env, tts.GetComplementTimeTable());
} }
JNIEXPORT jobjectArray JNICALL 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) jobjectArray timetables, jint ttIndex, jint dayIndex)
{ {
TimeTableSet tts = NativeTimetableSet(env, timetables); TimeTableSet tts = NativeTimetableSet(env, timetables);
@@ -244,7 +244,7 @@ Java_app_organicmaps_sdk_editor_OpeningHours_nativeRemoveWorkingDay(JNIEnv * env
} }
JNIEXPORT jobjectArray JNICALL 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) jobjectArray timetables, jint ttIndex, jint dayIndex)
{ {
TimeTableSet tts = NativeTimetableSet(env, timetables); TimeTableSet tts = NativeTimetableSet(env, timetables);
@@ -255,7 +255,7 @@ Java_app_organicmaps_sdk_editor_OpeningHours_nativeAddWorkingDay(JNIEnv * env, j
} }
JNIEXPORT jobject JNICALL 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) jobject jTimetable, jboolean jIsFullday)
{ {
TimeTable tt = NativeTimetable(env, jTimetable); TimeTable tt = NativeTimetable(env, jTimetable);
@@ -270,7 +270,7 @@ Java_app_organicmaps_sdk_editor_OpeningHours_nativeSetIsFullday(JNIEnv * env, jc
} }
JNIEXPORT jobject JNICALL 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) jobject jTimetable, jobject jOpeningTime)
{ {
TimeTable tt = NativeTimetable(env, jTimetable); TimeTable tt = NativeTimetable(env, jTimetable);
@@ -279,7 +279,7 @@ Java_app_organicmaps_sdk_editor_OpeningHours_nativeSetOpeningTime(JNIEnv * env,
} }
JNIEXPORT jobject JNICALL 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) jobject jTimetable, jobject jClosedSpan)
{ {
TimeTable tt = NativeTimetable(env, jTimetable); TimeTable tt = NativeTimetable(env, jTimetable);
@@ -288,7 +288,7 @@ Java_app_organicmaps_sdk_editor_OpeningHours_nativeAddClosedSpan(JNIEnv * env, j
} }
JNIEXPORT jobject JNICALL 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) jobject jTimetable, jint jClosedSpanIndex)
{ {
TimeTable tt = NativeTimetable(env, jTimetable); TimeTable tt = NativeTimetable(env, jTimetable);
@@ -297,7 +297,7 @@ Java_app_organicmaps_sdk_editor_OpeningHours_nativeRemoveClosedSpan(JNIEnv * env
} }
JNIEXPORT jobjectArray JNICALL 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; TimeTableSet tts;
std::string const source = jni::ToNativeString(env, jSource); std::string const source = jni::ToNativeString(env, jSource);
@@ -308,7 +308,7 @@ Java_app_organicmaps_sdk_editor_OpeningHours_nativeTimetablesFromString(JNIEnv *
} }
JNIEXPORT jstring JNICALL 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); TimeTableSet tts = NativeTimetableSet(env, jTts);
std::stringstream sstr; std::stringstream sstr;
@@ -317,14 +317,14 @@ Java_app_organicmaps_sdk_editor_OpeningHours_nativeTimetablesToString(JNIEnv * e
} }
JNIEXPORT jboolean JNICALL 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(); return OpeningHours(jni::ToNativeString(env, jSource)).IsValid();
} }
JNIEXPORT jobject JNICALL JNIEXPORT jobject JNICALL
Java_app_organicmaps_sdk_editor_OpeningHours_nativeCurrentState(JNIEnv * env, jclass clazz, jobjectArray jTts) Java_app_organicmaps_editor_OpeningHours_nativeCurrentState(JNIEnv * env, jclass clazz, jobjectArray jTts)
{ {
TimeTableSet tts = NativeTimetableSet(env, jTts); TimeTableSet tts = NativeTimetableSet(env, jTts);
time_t const now = time(nullptr); time_t const now = time(nullptr);

View File

@@ -1,7 +1,7 @@
#include <jni.h> #include <jni.h>
#include "app/organicmaps/sdk/core/jni_helper.hpp" #include "app/organicmaps/core/jni_helper.hpp"
#include "app/organicmaps/sdk/Framework.hpp" #include "app/organicmaps/Framework.hpp"
#include "base/logging.hpp" #include "base/logging.hpp"
#include "base/string_utils.hpp" #include "base/string_utils.hpp"
@@ -27,14 +27,14 @@ extern "C"
{ {
JNIEXPORT jstring JNICALL 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(); auto const auth = OsmOAuth::ServerAuth();
return ToJavaString(env, auth.BuildOAuth2Url()); return ToJavaString(env, auth.BuildOAuth2Url());
} }
JNIEXPORT jstring JNICALL 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) jstring login, jstring password)
{ {
OsmOAuth auth = OsmOAuth::ServerAuth(); OsmOAuth auth = OsmOAuth::ServerAuth();
@@ -52,7 +52,7 @@ Java_app_organicmaps_sdk_editor_OsmOAuth_nativeAuthWithPassword(JNIEnv * env, jc
} }
JNIEXPORT jstring JNICALL 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(); OsmOAuth auth = OsmOAuth::ServerAuth();
try try
@@ -73,7 +73,7 @@ Java_app_organicmaps_sdk_editor_OsmOAuth_nativeAuthWithOAuth2Code(JNIEnv * env,
} }
JNIEXPORT jstring JNICALL 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; UserPreferences prefs;
if (LoadOsmUserPreferences(jni::ToNativeString(env, oauthToken), prefs)) if (LoadOsmUserPreferences(jni::ToNativeString(env, oauthToken), prefs))
@@ -82,7 +82,7 @@ Java_app_organicmaps_sdk_editor_OsmOAuth_nativeGetOsmUsername(JNIEnv * env, jcla
} }
JNIEXPORT jint JNICALL 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; UserPreferences prefs;
if (LoadOsmUserPreferences(jni::ToNativeString(env, oauthToken), prefs)) if (LoadOsmUserPreferences(jni::ToNativeString(env, oauthToken), prefs))
@@ -91,7 +91,7 @@ Java_app_organicmaps_sdk_editor_OsmOAuth_nativeGetOsmChangesetsCount(JNIEnv * en
} }
JNIEXPORT jstring JNICALL 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; UserPreferences prefs;
if (LoadOsmUserPreferences(jni::ToNativeString(env, oauthToken), prefs)) if (LoadOsmUserPreferences(jni::ToNativeString(env, oauthToken), prefs))
@@ -100,13 +100,13 @@ Java_app_organicmaps_sdk_editor_OsmOAuth_nativeGetOsmProfilePictureUrl(JNIEnv *
} }
JNIEXPORT jstring JNICALL 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))); return jni::ToJavaString(env, OsmOAuth::ServerAuth().GetHistoryURL(jni::ToNativeString(env, user)));
} }
JNIEXPORT jstring JNICALL 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))); return jni::ToJavaString(env, OsmOAuth::ServerAuth().GetNotesURL(jni::ToNativeString(env, user)));
} }

View File

@@ -1,7 +1,7 @@
#include <jni.h> #include <jni.h>
#include "app/organicmaps/sdk/Framework.hpp" #include "app/organicmaps/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"
using namespace std::placeholders; using namespace std::placeholders;
@@ -19,7 +19,7 @@ static void IsolinesStateChanged(IsolinesManager::IsolinesState state,
JNIEXPORT void JNICALL 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!")); CHECK(g_framework, ("Framework isn't created yet!"));
g_framework->SetIsolinesListener(std::bind(&IsolinesStateChanged, g_framework->SetIsolinesListener(std::bind(&IsolinesStateChanged,
@@ -28,14 +28,14 @@ Java_app_organicmaps_sdk_maplayer_isolines_IsolinesManager_nativeAddListener(JNI
} }
JNIEXPORT void JNICALL 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!")); CHECK(g_framework, ("Framework isn't created yet!"));
g_framework->SetIsolinesListener(nullptr); g_framework->SetIsolinesListener(nullptr);
} }
JNIEXPORT jboolean JNICALL JNIEXPORT jboolean JNICALL
Java_app_organicmaps_sdk_maplayer_isolines_IsolinesManager_nativeShouldShowNotification(JNIEnv *env, Java_app_organicmaps_maplayer_isolines_IsolinesManager_nativeShouldShowNotification(JNIEnv *env,
jclass clazz) jclass clazz)
{ {
CHECK(g_framework, ("Framework isn't created yet!")); CHECK(g_framework, ("Framework isn't created yet!"));

View File

@@ -1,7 +1,7 @@
#include "androidoglcontextfactory.hpp" #include "androidoglcontextfactory.hpp"
#include "android_gl_utils.hpp" #include "android_gl_utils.hpp"
#include "app/organicmaps/sdk/platform/AndroidPlatform.hpp" #include "app/organicmaps/platform/AndroidPlatform.hpp"
#include "base/assert.hpp" #include "base/assert.hpp"
#include "base/logging.hpp" #include "base/logging.hpp"

View File

@@ -1,6 +1,6 @@
#pragma once #pragma once
#include "app/organicmaps/sdk/core/jni_helper.hpp" #include "app/organicmaps/core/jni_helper.hpp"
#include "androidoglcontext.hpp" #include "androidoglcontext.hpp"
#include "drape/graphics_context_factory.hpp" #include "drape/graphics_context_factory.hpp"

View File

@@ -1,9 +1,9 @@
#include "app/organicmaps/sdk/platform/AndroidPlatform.hpp" #include "app/organicmaps/platform/AndroidPlatform.hpp"
#include "app/organicmaps/sdk/platform/GuiThread.hpp" #include "app/organicmaps/platform/GuiThread.hpp"
#include "app/organicmaps/sdk/core/jni_helper.hpp" #include "app/organicmaps/core/jni_helper.hpp"
#include "app/organicmaps/sdk/util/NetworkPolicy.hpp" #include "app/organicmaps/util/NetworkPolicy.hpp"
#include "platform/network_policy.hpp" #include "platform/network_policy.hpp"
#include "platform/settings.hpp" #include "platform/settings.hpp"
@@ -22,7 +22,7 @@ std::string Platform::GetMemoryInfo() const
if (env == nullptr) if (env == nullptr)
return std::string(); return std::string();
static std::shared_ptr<jobject> classLogsManager = jni::make_global_ref(env->FindClass("app/organicmaps/sdk/util/log/LogsManager")); static std::shared_ptr<jobject> classLogsManager = jni::make_global_ref(env->FindClass("app/organicmaps/util/log/LogsManager"));
ASSERT(classLogsManager, ()); ASSERT(classLogsManager, ());
jobject context = android::Platform::Instance().GetContext(); jobject context = android::Platform::Instance().GetContext();
@@ -79,7 +79,7 @@ Platform::EConnectionType Platform::ConnectionStatus()
if (env == nullptr) if (env == nullptr)
return EConnectionType::CONNECTION_NONE; return EConnectionType::CONNECTION_NONE;
static std::shared_ptr<jobject> clazzConnectionState = jni::make_global_ref(env->FindClass("app/organicmaps/sdk/util/ConnectionState")); static std::shared_ptr<jobject> clazzConnectionState = jni::make_global_ref(env->FindClass("app/organicmaps/util/ConnectionState"));
ASSERT(clazzConnectionState, ()); ASSERT(clazzConnectionState, ());
static jmethodID const getConnectionMethodId = jni::GetStaticMethodID(env, static_cast<jclass>(*clazzConnectionState), "getConnectionState", "()B"); static jmethodID const getConnectionMethodId = jni::GetStaticMethodID(env, static_cast<jclass>(*clazzConnectionState), "getConnectionState", "()B");
@@ -93,7 +93,7 @@ Platform::ChargingStatus Platform::GetChargingStatus()
return Platform::ChargingStatus::Unknown; return Platform::ChargingStatus::Unknown;
static jclass const clazzBatteryState = static jclass const clazzBatteryState =
jni::GetGlobalClassRef(env, "app/organicmaps/sdk/util/BatteryState"); jni::GetGlobalClassRef(env, "app/organicmaps/util/BatteryState");
ASSERT(clazzBatteryState, ()); ASSERT(clazzBatteryState, ());
static jmethodID const getChargingMethodId = static jmethodID const getChargingMethodId =
@@ -110,7 +110,7 @@ uint8_t Platform::GetBatteryLevel()
return 100; return 100;
static auto const clazzBatteryState = static auto const clazzBatteryState =
jni::GetGlobalClassRef(env, "app/organicmaps/sdk/util/BatteryState"); jni::GetGlobalClassRef(env, "app/organicmaps/util/BatteryState");
ASSERT(clazzBatteryState, ()); ASSERT(clazzBatteryState, ());
static auto const getLevelMethodId = static auto const getLevelMethodId =
@@ -197,7 +197,7 @@ void Platform::AndroidSecureStorage::Init(JNIEnv * env)
if (m_secureStorageClass != nullptr) if (m_secureStorageClass != nullptr)
return; return;
m_secureStorageClass = jni::GetGlobalClassRef(env, "app/organicmaps/sdk/util/SecureStorage"); m_secureStorageClass = jni::GetGlobalClassRef(env, "app/organicmaps/util/SecureStorage");
ASSERT(m_secureStorageClass, ()); ASSERT(m_secureStorageClass, ());
} }

View File

@@ -1,6 +1,6 @@
#include "app/organicmaps/sdk/platform/GuiThread.hpp" #include "app/organicmaps/platform/GuiThread.hpp"
#include "app/organicmaps/sdk/core/jni_helper.hpp" #include "app/organicmaps/core/jni_helper.hpp"
#include <memory> #include <memory>
@@ -10,7 +10,7 @@ GuiThread::GuiThread()
{ {
JNIEnv * env = jni::GetEnv(); JNIEnv * env = jni::GetEnv();
m_class = jni::GetGlobalClassRef(env, "app/organicmaps/sdk/util/concurrency/UiThread"); m_class = jni::GetGlobalClassRef(env, "app/organicmaps/util/concurrency/UiThread");
ASSERT(m_class, ()); ASSERT(m_class, ());
m_method = env->GetStaticMethodID(m_class, "forwardToMainThread", "(J)V"); m_method = env->GetStaticMethodID(m_class, "forwardToMainThread", "(J)V");

View File

@@ -1,5 +1,5 @@
#include "AndroidPlatform.hpp" #include "AndroidPlatform.hpp"
#include "app/organicmaps/sdk/core/jni_helper.hpp" #include "app/organicmaps/core/jni_helper.hpp"
#include "base/logging.hpp" #include "base/logging.hpp"
#include "platform/http_thread_callback.hpp" #include "platform/http_thread_callback.hpp"
@@ -19,7 +19,7 @@ public:
std::string const & pb) std::string const & pb)
{ {
JNIEnv * env = jni::GetEnv(); JNIEnv * env = jni::GetEnv();
static jclass const klass = jni::GetGlobalClassRef(env, "app/organicmaps/sdk/downloader/ChunkTask"); static jclass const klass = jni::GetGlobalClassRef(env, "app/organicmaps/downloader/ChunkTask");
m_klass = klass; m_klass = klass;
// public ChunkTask(long httpCallbackID, String url, long beg, long end, // public ChunkTask(long httpCallbackID, String url, long beg, long end,
// long expectedFileSize, byte[] postBody, String userAgent) // long expectedFileSize, byte[] postBody, String userAgent)
@@ -80,7 +80,7 @@ namespace downloader
extern "C" extern "C"
{ {
JNIEXPORT jboolean JNICALL JNIEXPORT jboolean JNICALL
Java_app_organicmaps_sdk_downloader_ChunkTask_nativeOnWrite(JNIEnv * env, jclass clazz, jlong httpCallbackID, jlong beg, jbyteArray data, jlong size) Java_app_organicmaps_downloader_ChunkTask_nativeOnWrite(JNIEnv * env, jclass clazz, jlong httpCallbackID, jlong beg, jbyteArray data, jlong size)
{ {
downloader::IHttpThreadCallback * cb = reinterpret_cast<downloader::IHttpThreadCallback*>(httpCallbackID); downloader::IHttpThreadCallback * cb = reinterpret_cast<downloader::IHttpThreadCallback*>(httpCallbackID);
jbyte * buf = env->GetByteArrayElements(data, 0); jbyte * buf = env->GetByteArrayElements(data, 0);
@@ -101,7 +101,7 @@ Java_app_organicmaps_sdk_downloader_ChunkTask_nativeOnWrite(JNIEnv * env, jclass
} }
JNIEXPORT void JNICALL JNIEXPORT void JNICALL
Java_app_organicmaps_sdk_downloader_ChunkTask_nativeOnFinish(JNIEnv * env, jclass clazz, jlong httpCallbackID, jlong httpCode, jlong beg, jlong end) Java_app_organicmaps_downloader_ChunkTask_nativeOnFinish(JNIEnv * env, jclass clazz, jlong httpCallbackID, jlong httpCode, jlong beg, jlong end)
{ {
downloader::IHttpThreadCallback * cb = reinterpret_cast<downloader::IHttpThreadCallback*>(httpCallbackID); downloader::IHttpThreadCallback * cb = reinterpret_cast<downloader::IHttpThreadCallback*>(httpCallbackID);
cb->OnFinish(static_cast<long>(httpCode), beg, end); cb->OnFinish(static_cast<long>(httpCode), beg, end);

View File

@@ -1,5 +1,5 @@
#include "android/app/src/main/cpp/app/organicmaps/sdk/core/jni_helper.hpp" #include "android/app/src/main/cpp/app/organicmaps/core/jni_helper.hpp"
#include "android/app/src/main/cpp/app/organicmaps/sdk/core/ScopedLocalRef.hpp" #include "android/app/src/main/cpp/app/organicmaps/core/ScopedLocalRef.hpp"
#include "platform/locale.hpp" #include "platform/locale.hpp"
@@ -21,7 +21,7 @@ std::string GetAndroidSystemLanguage()
return DEFAULT_LANG; return DEFAULT_LANG;
} }
static jclass const languageClass = jni::GetGlobalClassRef(env, "app/organicmaps/sdk/util/Language"); static jclass const languageClass = jni::GetGlobalClassRef(env, "app/organicmaps/util/Language");
static jmethodID const getDefaultLocaleId = jni::GetStaticMethodID(env, languageClass, "getDefaultLocale", "()Ljava/lang/String;"); static jmethodID const getDefaultLocaleId = jni::GetStaticMethodID(env, languageClass, "getDefaultLocale", "()Ljava/lang/String;");
jni::TScopedLocalRef localeRef(env, env->CallStaticObjectMethod(languageClass, getDefaultLocaleId)); jni::TScopedLocalRef localeRef(env, env->CallStaticObjectMethod(languageClass, getDefaultLocaleId));

View File

@@ -1,8 +1,8 @@
#include <jni.h> #include <jni.h>
#include "app/organicmaps/sdk/core/jni_helper.hpp" #include "app/organicmaps/core/jni_helper.hpp"
#include "app/organicmaps/sdk/core/ScopedLocalRef.hpp" #include "app/organicmaps/core/ScopedLocalRef.hpp"
#include "app/organicmaps/sdk/platform/AndroidPlatform.hpp" #include "app/organicmaps/platform/AndroidPlatform.hpp"
#include "platform/localization.hpp" #include "platform/localization.hpp"

View File

@@ -1,4 +1,4 @@
#include "app/organicmaps/sdk/core/jni_helper.hpp" #include "app/organicmaps/core/jni_helper.hpp"
/// Implements bodies of base/thread.hpp functions for Android /// Implements bodies of base/thread.hpp functions for Android

View File

@@ -1,4 +1,4 @@
#include "app/organicmaps/sdk/core/jni_helper.hpp" #include "app/organicmaps/core/jni_helper.hpp"
#include "platform/socket.hpp" #include "platform/socket.hpp"

View File

@@ -1,6 +1,6 @@
#include "app/organicmaps/sdk/core/jni_helper.hpp" #include "app/organicmaps/core/jni_helper.hpp"
#include "app/organicmaps/sdk/Framework.hpp" #include "app/organicmaps/Framework.hpp"
#include "indexer/map_style.hpp" #include "indexer/map_style.hpp"

View File

@@ -1,6 +1,6 @@
#include "app/organicmaps/sdk/core/jni_helper.hpp" #include "app/organicmaps/core/jni_helper.hpp"
#include "app/organicmaps/sdk/Framework.hpp" #include "app/organicmaps/Framework.hpp"
#include "indexer/map_style.hpp" #include "indexer/map_style.hpp"

View File

@@ -1,8 +1,8 @@
#include "app/organicmaps/sdk/Framework.hpp" #include "app/organicmaps/Framework.hpp"
#include "app/organicmaps/sdk/platform/AndroidPlatform.hpp" #include "app/organicmaps/platform/AndroidPlatform.hpp"
#include "app/organicmaps/sdk/core/jni_helper.hpp" #include "app/organicmaps/core/jni_helper.hpp"
extern "C" extern "C"
{ {

View File

@@ -1,6 +1,6 @@
#include "app/organicmaps/sdk/core/jni_helper.hpp" #include "app/organicmaps/core/jni_helper.hpp"
#include "app/organicmaps/sdk/Framework.hpp" #include "app/organicmaps/Framework.hpp"
#include "indexer/map_style.hpp" #include "indexer/map_style.hpp"
@@ -17,7 +17,7 @@ JNIEXPORT void JNICALL Java_app_organicmaps_sdk_Router_nativeSet(JNIEnv *, jclas
case 2: type = Type::Bicycle; break; case 2: type = Type::Bicycle; break;
case 3: type = Type::Transit; break; case 3: type = Type::Transit; break;
case 4: type = Type::Ruler; break; case 4: type = Type::Ruler; break;
default: ASSERT(false, (routerType)); return; default: assert(false); break;
} }
frm()->GetRoutingManager().SetRouter(type); frm()->GetRoutingManager().SetRouter(type);
} }

View File

@@ -1,21 +1,20 @@
#pragma once #pragma once
#include "app/organicmaps/sdk/core/jni_helper.hpp" #include "app/organicmaps/core/jni_helper.hpp"
#include "geometry/point_with_altitude.hpp" #include "geometry/point2d.hpp"
#include <vector> #include <vector>
jobjectArray CreateJunctionInfoArray(JNIEnv * env, std::vector<geometry::PointWithAltitude> const & junctionPoints) jobjectArray CreateJunctionInfoArray(JNIEnv * env, std::vector<m2::PointD> const & junctionPoints)
{ {
static jclass const junctionClazz = jni::GetGlobalClassRef(env, "app/organicmaps/sdk/routing/JunctionInfo"); static jclass const junctionClazz = jni::GetGlobalClassRef(env, "app/organicmaps/sdk/routing/JunctionInfo");
// Java signature : JunctionInfo(double lat, double lon) // Java signature : JunctionInfo(double lat, double lon)
static jmethodID const junctionConstructor = jni::GetConstructorID(env, junctionClazz, "(DD)V"); static jmethodID const junctionConstructor = jni::GetConstructorID(env, junctionClazz, "(DD)V");
return jni::ToJavaArray(env, junctionClazz, junctionPoints, return jni::ToJavaArray(env, junctionClazz, junctionPoints,
[](JNIEnv * env, geometry::PointWithAltitude const & pointWithAltitude) [](JNIEnv * env, m2::PointD const & point)
{ {
auto & point = pointWithAltitude.GetPoint();
return env->NewObject(junctionClazz, junctionConstructor, mercator::YToLat(point.y), return env->NewObject(junctionClazz, junctionConstructor, mercator::YToLat(point.y),
mercator::XToLon(point.x)); mercator::XToLon(point.x));
}); });

View File

@@ -1,6 +1,6 @@
#pragma once #pragma once
#include "app/organicmaps/sdk/core/jni_helper.hpp" #include "app/organicmaps/core/jni_helper.hpp"
#include "geometry/point2d.hpp" #include "geometry/point2d.hpp"

View File

@@ -1,6 +1,6 @@
#pragma once #pragma once
#include "app/organicmaps/sdk/core/jni_helper.hpp" #include "app/organicmaps/core/jni_helper.hpp"
#include "map/place_page_info.hpp" #include "map/place_page_info.hpp"

View File

@@ -1,6 +1,6 @@
#pragma once #pragma once
#include "app/organicmaps/sdk/core/jni_helper.hpp" #include "app/organicmaps/core/jni_helper.hpp"
jobject GetRebuildAfterPointsLoading(JNIEnv * env) jobject GetRebuildAfterPointsLoading(JNIEnv * env)
{ {

View File

@@ -1,8 +1,8 @@
#pragma once #pragma once
#include "app/organicmaps/sdk/core/jni_helper.hpp" #include "app/organicmaps/core/jni_helper.hpp"
#include "app/organicmaps/sdk/routing/SingleLaneInfo.hpp" #include "app/organicmaps/sdk/routing/SingleLaneInfo.hpp"
#include "app/organicmaps/sdk/util/Distance.hpp" #include "app/organicmaps/util/Distance.hpp"
#include "map/routing_manager.hpp" #include "map/routing_manager.hpp"
@@ -16,7 +16,7 @@ jobject CreateRoutingInfo(JNIEnv * env, routing::FollowingInfo const & info, Rou
// int totalTime, SingleLaneInfo[] lanes) // int totalTime, SingleLaneInfo[] lanes)
static jmethodID const ctorRouteInfoID = static jmethodID const ctorRouteInfoID =
jni::GetConstructorID(env, klass, jni::GetConstructorID(env, klass,
"(Lapp/organicmaps/sdk/util/Distance;Lapp/organicmaps/sdk/util/Distance;" "(Lapp/organicmaps/util/Distance;Lapp/organicmaps/util/Distance;"
"Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;DIIIII" "Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;DIIIII"
"[Lapp/organicmaps/sdk/routing/SingleLaneInfo;DZZ)V"); "[Lapp/organicmaps/sdk/routing/SingleLaneInfo;DZZ)V");

View File

@@ -1,6 +1,6 @@
#include <jni.h> #include <jni.h>
#include "app/organicmaps/sdk/Framework.hpp" #include <android/app/src/main/cpp/app/organicmaps/Framework.hpp>
#include "app/organicmaps/sdk/core/jni_helper.hpp" #include <android/app/src/main/cpp/app/organicmaps/core/jni_helper.hpp>
#include "routing/routing_options.hpp" #include "routing/routing_options.hpp"
routing::RoutingOptions::Road makeValue(jint option) routing::RoutingOptions::Road makeValue(jint option)

View File

@@ -1,6 +1,6 @@
#pragma once #pragma once
#include "app/organicmaps/sdk/core/jni_helper.hpp" #include "app/organicmaps/core/jni_helper.hpp"
#include "routing/following_info.hpp" #include "routing/following_info.hpp"

View File

@@ -1,6 +1,6 @@
#pragma once #pragma once
#include "app/organicmaps/sdk/core/jni_helper.hpp" #include "app/organicmaps/core/jni_helper.hpp"
#include "app/organicmaps/sdk/routing/TransitStepInfo.hpp" #include "app/organicmaps/sdk/routing/TransitStepInfo.hpp"

View File

@@ -1,6 +1,6 @@
#pragma once #pragma once
#include "app/organicmaps/sdk/core/jni_helper.hpp" #include "app/organicmaps/core/jni_helper.hpp"
#include "map/transit/transit_display.hpp" #include "map/transit/transit_display.hpp"

View File

@@ -1,5 +1,5 @@
#include "app/organicmaps/sdk/Framework.hpp" #include "app/organicmaps/Framework.hpp"
#include "app/organicmaps/sdk/core/jni_helper.hpp" #include "app/organicmaps/core/jni_helper.hpp"
#include "search/displayed_categories.hpp" #include "search/displayed_categories.hpp"
@@ -9,13 +9,7 @@ JNIEXPORT jobjectArray JNICALL Java_app_organicmaps_sdk_search_DisplayedCategori
{ {
::Framework * fr = g_framework->NativeFramework(); ::Framework * fr = g_framework->NativeFramework();
ASSERT(fr, ()); ASSERT(fr, ());
search::DisplayedCategories const & categories = fr->GetDisplayedCategories(); search::DisplayedCategories categories = fr->GetDisplayedCategories();
return jni::ToJavaStringArray(env, categories.GetKeys()); return jni::ToJavaStringArray(env, categories.GetKeys());
} }
JNIEXPORT jboolean JNICALL Java_app_organicmaps_sdk_search_DisplayedCategories_nativeIsLangSupported(
JNIEnv * env, jclass, jstring langCode)
{
return search::DisplayedCategories::IsLanguageSupported(jni::ToNativeString(env, langCode));
}
} // extern "C" } // extern "C"

View File

@@ -1,7 +1,7 @@
#include "app/organicmaps/sdk/Framework.hpp" #include "app/organicmaps/Framework.hpp"
#include "app/organicmaps/sdk/UserMarkHelper.hpp" #include "app/organicmaps/UserMarkHelper.hpp"
#include "app/organicmaps/sdk/platform/AndroidPlatform.hpp" #include "app/organicmaps/platform/AndroidPlatform.hpp"
#include "app/organicmaps/sdk/util/Distance.hpp" #include "app/organicmaps/util/Distance.hpp"
#include "map/bookmarks_search_params.hpp" #include "map/bookmarks_search_params.hpp"
#include "map/everywhere_search_params.hpp" #include "map/everywhere_search_params.hpp"
@@ -253,8 +253,8 @@ extern "C"
boolean hasPopularityHigherPriority) boolean hasPopularityHigherPriority)
*/ */
g_descriptionConstructor = jni::GetConstructorID(env, g_descriptionClass, g_descriptionConstructor = jni::GetConstructorID(env, g_descriptionClass,
"(Lapp/organicmaps/sdk/bookmarks/data/FeatureId;" "(Lapp/organicmaps/bookmarks/data/FeatureId;"
"Ljava/lang/String;Ljava/lang/String;Lapp/organicmaps/sdk/util/Distance;" "Ljava/lang/String;Ljava/lang/String;Lapp/organicmaps/util/Distance;"
"Ljava/lang/String;IIIZ)V"); "Ljava/lang/String;IIIZ)V");
g_popularityClass = jni::GetGlobalClassRef(env, "app/organicmaps/sdk/search/Popularity"); g_popularityClass = jni::GetGlobalClassRef(env, "app/organicmaps/sdk/search/Popularity");

View File

@@ -1,6 +1,6 @@
#include "app/organicmaps/sdk/Framework.hpp" #include "app/organicmaps/Framework.hpp"
#include "app/organicmaps/sdk/core/jni_helper.hpp" #include "app/organicmaps/core/jni_helper.hpp"
#include "app/organicmaps/sdk/core/jni_java_methods.hpp" #include "app/organicmaps/core/jni_java_methods.hpp"
#include "search/result.hpp" #include "search/result.hpp"

View File

@@ -1,20 +0,0 @@
#include "app/organicmaps/sdk/Framework.hpp"
#include "platform/settings.hpp"
#include "app/organicmaps/sdk/core/jni_helper.hpp"
extern "C"
{
JNIEXPORT void JNICALL
Java_app_organicmaps_sdk_settings_MapLanguageCode_setMapLanguageCode(JNIEnv * env, jobject, jstring languageCode)
{
g_framework->SetMapLanguageCode(jni::ToNativeString(env, languageCode));
}
JNIEXPORT jstring JNICALL
Java_app_organicmaps_sdk_settings_MapLanguageCode_getMapLanguageCode(JNIEnv * env, jobject)
{
return jni::ToJavaString(env, g_framework->GetMapLanguageCode());
}
}

View File

@@ -1,12 +0,0 @@
#include "app/organicmaps/sdk/core/jni_helper.hpp"
#include "app/organicmaps/sdk/platform/GuiThread.hpp"
extern "C"
{
// static void nativeProcessTask(long taskPointer);
JNIEXPORT void JNICALL
Java_app_organicmaps_sdk_util_concurrency_UiThread_nativeProcessTask(JNIEnv * env, jclass clazz, jlong taskPointer)
{
android::GuiThread::ProcessTask(taskPointer);
}
}

View File

@@ -0,0 +1,20 @@
#include "app/organicmaps/Framework.hpp"
#include "platform/settings.hpp"
#include "app/organicmaps/core/jni_helper.hpp"
extern "C"
{
JNIEXPORT void JNICALL
Java_app_organicmaps_settings_MapLanguageCode_setMapLanguageCode(JNIEnv * env, jobject, jstring languageCode)
{
g_framework->SetMapLanguageCode(jni::ToNativeString(env, languageCode));
}
JNIEXPORT jstring JNICALL
Java_app_organicmaps_settings_MapLanguageCode_getMapLanguageCode(JNIEnv * env, jobject)
{
return jni::ToJavaString(env, g_framework->GetMapLanguageCode());
}
}

View File

@@ -1,4 +1,4 @@
#include "app/organicmaps/sdk/Framework.hpp" #include "app/organicmaps/Framework.hpp"
#include "platform/measurement_utils.hpp" #include "platform/measurement_utils.hpp"
#include "platform/settings.hpp" #include "platform/settings.hpp"
@@ -6,7 +6,7 @@
extern "C" extern "C"
{ {
JNIEXPORT void JNICALL JNIEXPORT void JNICALL
Java_app_organicmaps_sdk_settings_UnitLocale_setCurrentUnits(JNIEnv * env, jobject thiz, jint units) Java_app_organicmaps_settings_UnitLocale_setCurrentUnits(JNIEnv * env, jobject thiz, jint units)
{ {
measurement_utils::Units const u = static_cast<measurement_utils::Units>(units); measurement_utils::Units const u = static_cast<measurement_utils::Units>(units);
settings::Set(settings::kMeasurementUnits, u); settings::Set(settings::kMeasurementUnits, u);
@@ -14,7 +14,7 @@ extern "C"
} }
JNIEXPORT jint JNICALL JNIEXPORT jint JNICALL
Java_app_organicmaps_sdk_settings_UnitLocale_getCurrentUnits(JNIEnv * env, jobject thiz) Java_app_organicmaps_settings_UnitLocale_getCurrentUnits(JNIEnv * env, jobject thiz)
{ {
measurement_utils::Units u; measurement_utils::Units u;
return static_cast<jint>( return static_cast<jint>(

View File

@@ -1,29 +1,29 @@
#include "app/organicmaps/sdk/Framework.hpp" #include "app/organicmaps/Framework.hpp"
#include "app/organicmaps/sdk/core/jni_helper.hpp" #include "app/organicmaps/core/jni_helper.hpp"
extern "C" extern "C"
{ {
JNIEXPORT void JNICALL JNIEXPORT void JNICALL
Java_app_organicmaps_sdk_sound_TtsPlayer_nativeEnableTurnNotifications(JNIEnv *, jclass, jboolean enable) Java_app_organicmaps_sound_TtsPlayer_nativeEnableTurnNotifications(JNIEnv *, jclass, jboolean enable)
{ {
return frm()->GetRoutingManager().EnableTurnNotifications(static_cast<bool>(enable)); return frm()->GetRoutingManager().EnableTurnNotifications(static_cast<bool>(enable));
} }
JNIEXPORT jboolean JNICALL JNIEXPORT jboolean JNICALL
Java_app_organicmaps_sdk_sound_TtsPlayer_nativeAreTurnNotificationsEnabled(JNIEnv *, jclass) Java_app_organicmaps_sound_TtsPlayer_nativeAreTurnNotificationsEnabled(JNIEnv *, jclass)
{ {
return static_cast<jboolean>(frm()->GetRoutingManager().AreTurnNotificationsEnabled()); return static_cast<jboolean>(frm()->GetRoutingManager().AreTurnNotificationsEnabled());
} }
JNIEXPORT void JNICALL JNIEXPORT void JNICALL
Java_app_organicmaps_sdk_sound_TtsPlayer_nativeSetTurnNotificationsLocale(JNIEnv * env, jclass, jstring jLocale) Java_app_organicmaps_sound_TtsPlayer_nativeSetTurnNotificationsLocale(JNIEnv * env, jclass, jstring jLocale)
{ {
frm()->GetRoutingManager().SetTurnNotificationsLocale(jni::ToNativeString(env, jLocale)); frm()->GetRoutingManager().SetTurnNotificationsLocale(jni::ToNativeString(env, jLocale));
} }
JNIEXPORT jstring JNICALL JNIEXPORT jstring JNICALL
Java_app_organicmaps_sdk_sound_TtsPlayer_nativeGetTurnNotificationsLocale(JNIEnv * env, jclass) Java_app_organicmaps_sound_TtsPlayer_nativeGetTurnNotificationsLocale(JNIEnv * env, jclass)
{ {
return jni::ToJavaString(env, frm()->GetRoutingManager().GetTurnNotificationsLocale()); return jni::ToJavaString(env, frm()->GetRoutingManager().GetTurnNotificationsLocale());
} }

View File

@@ -1,7 +1,7 @@
#include <jni.h> #include <jni.h>
#include "app/organicmaps/sdk/Framework.hpp" #include <android/app/src/main/cpp/app/organicmaps/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" extern "C"
{ {
@@ -15,7 +15,7 @@ static void TransitSchemeStateChanged(TransitReadManager::TransitSchemeState sta
} }
JNIEXPORT void JNICALL JNIEXPORT void JNICALL
Java_app_organicmaps_sdk_maplayer_subway_SubwayManager_nativeAddListener(JNIEnv *env, jclass clazz, jobject listener) Java_app_organicmaps_maplayer_subway_SubwayManager_nativeAddListener(JNIEnv *env, jclass clazz, jobject listener)
{ {
CHECK(g_framework, ("Framework isn't created yet!")); CHECK(g_framework, ("Framework isn't created yet!"));
g_framework->SetTransitSchemeListener(std::bind(&TransitSchemeStateChanged, g_framework->SetTransitSchemeListener(std::bind(&TransitSchemeStateChanged,
@@ -24,7 +24,7 @@ Java_app_organicmaps_sdk_maplayer_subway_SubwayManager_nativeAddListener(JNIEnv
} }
JNIEXPORT void JNICALL JNIEXPORT void JNICALL
Java_app_organicmaps_sdk_maplayer_subway_SubwayManager_nativeRemoveListener(JNIEnv * env, jclass clazz) Java_app_organicmaps_maplayer_subway_SubwayManager_nativeRemoveListener(JNIEnv * env, jclass clazz)
{ {
CHECK(g_framework, ("Framework isn't created yet!")); CHECK(g_framework, ("Framework isn't created yet!"));
g_framework->SetTransitSchemeListener(TransitReadManager::TransitStateChangedFn()); g_framework->SetTransitSchemeListener(TransitReadManager::TransitStateChangedFn());

View File

@@ -1,24 +1,24 @@
#include "app/organicmaps/sdk/core/jni_helper.hpp" #include "app/organicmaps/core/jni_helper.hpp"
#include "app/organicmaps/sdk/Framework.hpp" #include "app/organicmaps/Framework.hpp"
#include "platform/settings.hpp" #include "platform/settings.hpp"
extern "C" extern "C"
{ {
JNIEXPORT jboolean JNICALL JNIEXPORT jboolean JNICALL
Java_app_organicmaps_sdk_util_Config_nativeHasConfigValue(JNIEnv * env, jclass thiz, jstring name) Java_app_organicmaps_util_Config_nativeHasConfigValue(JNIEnv * env, jclass thiz, jstring name)
{ {
std::string value; std::string value;
return settings::Get(jni::ToNativeString(env, name), value); return settings::Get(jni::ToNativeString(env, name), value);
} }
JNIEXPORT void JNICALL JNIEXPORT void JNICALL
Java_app_organicmaps_sdk_util_Config_nativeDeleteConfigValue(JNIEnv * env, jclass thiz, jstring name) Java_app_organicmaps_util_Config_nativeDeleteConfigValue(JNIEnv * env, jclass thiz, jstring name)
{ {
settings::Delete(jni::ToNativeString(env, name)); settings::Delete(jni::ToNativeString(env, name));
} }
JNIEXPORT jboolean JNICALL JNIEXPORT jboolean JNICALL
Java_app_organicmaps_sdk_util_Config_nativeGetBoolean(JNIEnv * env, jclass thiz, jstring name, jboolean defaultVal) Java_app_organicmaps_util_Config_nativeGetBoolean(JNIEnv * env, jclass thiz, jstring name, jboolean defaultVal)
{ {
bool val; bool val;
if (settings::Get(jni::ToNativeString(env, name), val)) if (settings::Get(jni::ToNativeString(env, name), val))
@@ -28,13 +28,13 @@ extern "C"
} }
JNIEXPORT void JNICALL JNIEXPORT void JNICALL
Java_app_organicmaps_sdk_util_Config_nativeSetBoolean(JNIEnv * env, jclass thiz, jstring name, jboolean val) Java_app_organicmaps_util_Config_nativeSetBoolean(JNIEnv * env, jclass thiz, jstring name, jboolean val)
{ {
(void)settings::Set(jni::ToNativeString(env, name), static_cast<bool>(val)); (void)settings::Set(jni::ToNativeString(env, name), static_cast<bool>(val));
} }
JNIEXPORT jint JNICALL JNIEXPORT jint JNICALL
Java_app_organicmaps_sdk_util_Config_nativeGetInt(JNIEnv * env, jclass thiz, jstring name, jint defaultValue) Java_app_organicmaps_util_Config_nativeGetInt(JNIEnv * env, jclass thiz, jstring name, jint defaultValue)
{ {
int32_t value; int32_t value;
if (settings::Get(jni::ToNativeString(env, name), value)) if (settings::Get(jni::ToNativeString(env, name), value))
@@ -44,13 +44,13 @@ extern "C"
} }
JNIEXPORT void JNICALL JNIEXPORT void JNICALL
Java_app_organicmaps_sdk_util_Config_nativeSetInt(JNIEnv * env, jclass thiz, jstring name, jint value) Java_app_organicmaps_util_Config_nativeSetInt(JNIEnv * env, jclass thiz, jstring name, jint value)
{ {
(void)settings::Set(jni::ToNativeString(env, name), static_cast<int32_t>(value)); (void)settings::Set(jni::ToNativeString(env, name), static_cast<int32_t>(value));
} }
JNIEXPORT jlong JNICALL JNIEXPORT jlong JNICALL
Java_app_organicmaps_sdk_util_Config_nativeGetLong(JNIEnv * env, jclass thiz, jstring name, jlong defaultValue) Java_app_organicmaps_util_Config_nativeGetLong(JNIEnv * env, jclass thiz, jstring name, jlong defaultValue)
{ {
int64_t value; int64_t value;
if (settings::Get(jni::ToNativeString(env, name), value)) if (settings::Get(jni::ToNativeString(env, name), value))
@@ -60,13 +60,13 @@ extern "C"
} }
JNIEXPORT void JNICALL JNIEXPORT void JNICALL
Java_app_organicmaps_sdk_util_Config_nativeSetLong(JNIEnv * env, jclass thiz, jstring name, jlong value) Java_app_organicmaps_util_Config_nativeSetLong(JNIEnv * env, jclass thiz, jstring name, jlong value)
{ {
(void)settings::Set(jni::ToNativeString(env, name), static_cast<int64_t>(value)); (void)settings::Set(jni::ToNativeString(env, name), static_cast<int64_t>(value));
} }
JNIEXPORT jdouble JNICALL JNIEXPORT jdouble JNICALL
Java_app_organicmaps_sdk_util_Config_nativeGetDouble(JNIEnv * env, jclass thiz, jstring name, jdouble defaultValue) Java_app_organicmaps_util_Config_nativeGetDouble(JNIEnv * env, jclass thiz, jstring name, jdouble defaultValue)
{ {
double value; double value;
if (settings::Get(jni::ToNativeString(env, name), value)) if (settings::Get(jni::ToNativeString(env, name), value))
@@ -76,13 +76,13 @@ extern "C"
} }
JNIEXPORT void JNICALL JNIEXPORT void JNICALL
Java_app_organicmaps_sdk_util_Config_nativeSetDouble(JNIEnv * env, jclass thiz, jstring name, jdouble value) Java_app_organicmaps_util_Config_nativeSetDouble(JNIEnv * env, jclass thiz, jstring name, jdouble value)
{ {
(void)settings::Set(jni::ToNativeString(env, name), static_cast<double>(value)); (void)settings::Set(jni::ToNativeString(env, name), static_cast<double>(value));
} }
JNIEXPORT jstring JNICALL JNIEXPORT jstring JNICALL
Java_app_organicmaps_sdk_util_Config_nativeGetString(JNIEnv * env, jclass thiz, jstring name, jstring defaultValue) Java_app_organicmaps_util_Config_nativeGetString(JNIEnv * env, jclass thiz, jstring name, jstring defaultValue)
{ {
std::string value; std::string value;
if (settings::Get(jni::ToNativeString(env, name), value)) if (settings::Get(jni::ToNativeString(env, name), value))
@@ -92,32 +92,32 @@ extern "C"
} }
JNIEXPORT void JNICALL JNIEXPORT void JNICALL
Java_app_organicmaps_sdk_util_Config_nativeSetString(JNIEnv * env, jclass thiz, jstring name, jstring value) Java_app_organicmaps_util_Config_nativeSetString(JNIEnv * env, jclass thiz, jstring name, jstring value)
{ {
(void)settings::Set(jni::ToNativeString(env, name), jni::ToNativeString(env, value)); (void)settings::Set(jni::ToNativeString(env, name), jni::ToNativeString(env, value));
} }
JNIEXPORT jboolean JNICALL JNIEXPORT jboolean JNICALL
Java_app_organicmaps_sdk_util_Config_nativeGetLargeFontsSize(JNIEnv * env, jclass thiz) Java_app_organicmaps_util_Config_nativeGetLargeFontsSize(JNIEnv * env, jclass thiz)
{ {
return frm()->LoadLargeFontsSize(); return frm()->LoadLargeFontsSize();
} }
JNIEXPORT void JNICALL JNIEXPORT void JNICALL
Java_app_organicmaps_sdk_util_Config_nativeSetLargeFontsSize(JNIEnv * env, jclass thiz, Java_app_organicmaps_util_Config_nativeSetLargeFontsSize(JNIEnv * env, jclass thiz,
jboolean value) jboolean value)
{ {
frm()->SetLargeFontsSize(value); frm()->SetLargeFontsSize(value);
} }
JNIEXPORT jboolean JNICALL JNIEXPORT jboolean JNICALL
Java_app_organicmaps_sdk_util_Config_nativeGetTransliteration(JNIEnv * env, jclass thiz) Java_app_organicmaps_util_Config_nativeGetTransliteration(JNIEnv * env, jclass thiz)
{ {
return frm()->LoadTransliteration(); return frm()->LoadTransliteration();
} }
JNIEXPORT void JNICALL JNIEXPORT void JNICALL
Java_app_organicmaps_sdk_util_Config_nativeSetTransliteration(JNIEnv * env, jclass thiz, Java_app_organicmaps_util_Config_nativeSetTransliteration(JNIEnv * env, jclass thiz,
jboolean value) jboolean value)
{ {
frm()->SaveTransliteration(value); frm()->SaveTransliteration(value);

View File

@@ -1,12 +1,12 @@
#pragma once #pragma once
#include "app/organicmaps/sdk/core/jni_helper.hpp" #include "app/organicmaps/core/jni_helper.hpp"
#include "platform/distance.hpp" #include "platform/distance.hpp"
inline jobject ToJavaDistance(JNIEnv * env, platform::Distance const & distance) inline jobject ToJavaDistance(JNIEnv * env, platform::Distance const & distance)
{ {
static jclass const distanceClass = jni::GetGlobalClassRef(env, "app/organicmaps/sdk/util/Distance"); static jclass const distanceClass = jni::GetGlobalClassRef(env, "app/organicmaps/util/Distance");
static jmethodID const distanceConstructor = jni::GetConstructorID(env, distanceClass, "(DLjava/lang/String;B)V"); static jmethodID const distanceConstructor = jni::GetConstructorID(env, distanceClass, "(DLjava/lang/String;B)V");

View File

@@ -1,6 +1,6 @@
#pragma once #pragma once
#include "app/organicmaps/sdk/core/jni_helper.hpp" #include "app/organicmaps/core/jni_helper.hpp"
#include "indexer/feature_decl.hpp" #include "indexer/feature_decl.hpp"
@@ -9,7 +9,7 @@ class FeatureIdBuilder
public: public:
explicit FeatureIdBuilder(JNIEnv * env) explicit FeatureIdBuilder(JNIEnv * env)
{ {
jclass clazz = env->FindClass("app/organicmaps/sdk/bookmarks/data/FeatureId"); jclass clazz = env->FindClass("app/organicmaps/bookmarks/data/FeatureId");
m_countryName = env->GetFieldID(clazz, "mMwmName", "Ljava/lang/String;"); m_countryName = env->GetFieldID(clazz, "mMwmName", "Ljava/lang/String;");
ASSERT(m_countryName, ()); ASSERT(m_countryName, ());
m_index = env->GetFieldID(clazz, "mFeatureIndex", "I"); m_index = env->GetFieldID(clazz, "mFeatureIndex", "I");

View File

@@ -1,11 +1,11 @@
#include "android/app/src/main/cpp/app/organicmaps/sdk/core/jni_helper.hpp" #include "android/app/src/main/cpp/app/organicmaps/core/jni_helper.hpp"
#include "geometry/mercator.hpp" #include "geometry/mercator.hpp"
extern "C" extern "C"
{ {
JNIEXPORT jobject JNICALL JNIEXPORT jobject JNICALL
Java_app_organicmaps_sdk_util_GeoUtils_nativeToLatLon( Java_app_organicmaps_util_GeoUtils_nativeToLatLon(
JNIEnv * env, jobject thiz, jdouble mercX, jdouble mercY) JNIEnv * env, jobject thiz, jdouble mercX, jdouble mercY)
{ {
auto const mercPoint = m2::PointD(static_cast<double>(mercX), static_cast<double>(mercY)); auto const mercPoint = m2::PointD(static_cast<double>(mercX), static_cast<double>(mercY));

View File

@@ -23,9 +23,9 @@ SOFTWARE.
*******************************************************************************/ *******************************************************************************/
#include <jni.h> #include <jni.h>
#include "app/organicmaps/sdk/core/jni_helper.hpp" #include "app/organicmaps/core/jni_helper.hpp"
#include "app/organicmaps/sdk/core/ScopedEnv.hpp" #include "app/organicmaps/core/ScopedEnv.hpp"
#include "app/organicmaps/sdk/core/ScopedLocalRef.hpp" #include "app/organicmaps/core/ScopedLocalRef.hpp"
#include "platform/http_client.hpp" #include "platform/http_client.hpp"
@@ -104,7 +104,7 @@ void SetHeaders(ScopedEnv & env, jobject const params, platform::HttpClient::Hea
return; return;
static jmethodID const setHeaders = env->GetMethodID( static jmethodID const setHeaders = env->GetMethodID(
g_httpParamsClazz, "setHeaders", "([Lapp/organicmaps/sdk/util/KeyValue;)V"); g_httpParamsClazz, "setHeaders", "([Lapp/organicmaps/util/KeyValue;)V");
RethrowOnJniException(env); RethrowOnJniException(env);
@@ -228,7 +228,7 @@ bool HttpClient::RunHttpRequest()
static jmethodID const httpClientClassRun = static jmethodID const httpClientClassRun =
env->GetStaticMethodID(g_httpClientClazz, "run", env->GetStaticMethodID(g_httpClientClazz, "run",
"(Lapp/organicmaps/sdk/util/HttpClient$Params;)Lapp/organicmaps/sdk/util/HttpClient$Params;"); "(Lapp/organicmaps/util/HttpClient$Params;)Lapp/organicmaps/util/HttpClient$Params;");
jni::ScopedLocalRef<jobject> const response(env.get(), env->CallStaticObjectMethod(g_httpClientClazz, jni::ScopedLocalRef<jobject> const response(env.get(), env->CallStaticObjectMethod(g_httpClientClazz,
httpClientClassRun, httpParamsObject.get())); httpClientClassRun, httpParamsObject.get()));

View File

@@ -1,10 +1,10 @@
#include "android/app/src/main/cpp/app/organicmaps/sdk/core/jni_helper.hpp" #include "android/app/src/main/cpp/app/organicmaps/core/jni_helper.hpp"
#include "platform/preferred_languages.hpp" #include "platform/preferred_languages.hpp"
extern "C" extern "C"
{ {
JNIEXPORT jstring JNICALL JNIEXPORT jstring JNICALL
Java_app_organicmaps_sdk_util_Language_nativeNormalize(JNIEnv *env, jclass type, jstring lang) Java_app_organicmaps_util_Language_nativeNormalize(JNIEnv *env, jclass type, jstring lang)
{ {
std::string locale = languages::Normalize(jni::ToNativeString(env, lang)); std::string locale = languages::Normalize(jni::ToNativeString(env, lang));
return jni::ToJavaString(env, locale); return jni::ToJavaString(env, locale);

View File

@@ -1,9 +1,9 @@
#include <jni.h> #include <jni.h>
#include "app/organicmaps/sdk/core/logging.hpp" #include "app/organicmaps/core/logging.hpp"
extern "C" { extern "C" {
JNIEXPORT void JNICALL JNIEXPORT void JNICALL
Java_app_organicmaps_sdk_util_log_LogsManager_nativeToggleCoreDebugLogs( Java_app_organicmaps_util_log_LogsManager_nativeToggleCoreDebugLogs(
JNIEnv * /*env*/, jclass /*clazz*/, jboolean enabled) JNIEnv * /*env*/, jclass /*clazz*/, jboolean enabled)
{ {
jni::ToggleDebugLogs(enabled); jni::ToggleDebugLogs(enabled);

View File

@@ -1,4 +1,4 @@
#include "app/organicmaps/sdk/core/jni_helper.hpp" #include "app/organicmaps/core/jni_helper.hpp"
namespace network_policy namespace network_policy
{ {

View File

@@ -1,6 +1,6 @@
#include "app/organicmaps/sdk/core/jni_helper.hpp" #include "app/organicmaps/core/jni_helper.hpp"
#include "app/organicmaps/sdk/core/jni_java_methods.hpp" #include "app/organicmaps/core/jni_java_methods.hpp"
#include "app/organicmaps/sdk/util/Distance.hpp" #include "app/organicmaps/util/Distance.hpp"
#include "indexer/search_string_utils.hpp" #include "indexer/search_string_utils.hpp"
@@ -21,19 +21,19 @@ jobject MakeJavaPair(JNIEnv * env, std::string const & first, std::string const
extern "C" extern "C"
{ {
JNIEXPORT jboolean JNICALL JNIEXPORT jboolean JNICALL
Java_app_organicmaps_sdk_util_StringUtils_nativeIsHtml(JNIEnv * env, jclass thiz, jstring text) Java_app_organicmaps_util_StringUtils_nativeIsHtml(JNIEnv * env, jclass thiz, jstring text)
{ {
return strings::IsHTML(jni::ToNativeString(env, text)); return strings::IsHTML(jni::ToNativeString(env, text));
} }
JNIEXPORT jboolean JNICALL JNIEXPORT jboolean JNICALL
Java_app_organicmaps_sdk_util_StringUtils_nativeContainsNormalized(JNIEnv * env, jclass thiz, jstring str, jstring substr) Java_app_organicmaps_util_StringUtils_nativeContainsNormalized(JNIEnv * env, jclass thiz, jstring str, jstring substr)
{ {
return search::ContainsNormalized(jni::ToNativeString(env, str), jni::ToNativeString(env, substr)); return search::ContainsNormalized(jni::ToNativeString(env, str), jni::ToNativeString(env, substr));
} }
JNIEXPORT jobjectArray JNICALL JNIEXPORT jobjectArray JNICALL
Java_app_organicmaps_sdk_util_StringUtils_nativeFilterContainsNormalized(JNIEnv * env, jclass thiz, jobjectArray src, jstring jSubstr) Java_app_organicmaps_util_StringUtils_nativeFilterContainsNormalized(JNIEnv * env, jclass thiz, jobjectArray src, jstring jSubstr)
{ {
std::string const substr = jni::ToNativeString(env, jSubstr); std::string const substr = jni::ToNativeString(env, jSubstr);
int const length = env->GetArrayLength(src); int const length = env->GetArrayLength(src);
@@ -49,13 +49,13 @@ Java_app_organicmaps_sdk_util_StringUtils_nativeFilterContainsNormalized(JNIEnv
return jni::ToJavaStringArray(env, filtered); return jni::ToJavaStringArray(env, filtered);
} }
JNIEXPORT jint JNICALL Java_app_organicmaps_sdk_util_StringUtils_nativeFormatSpeed( JNIEXPORT jint JNICALL Java_app_organicmaps_util_StringUtils_nativeFormatSpeed(
JNIEnv * env, jclass thiz, jdouble metersPerSecond) JNIEnv * env, jclass thiz, jdouble metersPerSecond)
{ {
return measurement_utils::FormatSpeed(metersPerSecond, measurement_utils::GetMeasurementUnits()); return measurement_utils::FormatSpeed(metersPerSecond, measurement_utils::GetMeasurementUnits());
} }
JNIEXPORT jobject JNICALL Java_app_organicmaps_sdk_util_StringUtils_nativeFormatSpeedAndUnits( JNIEXPORT jobject JNICALL Java_app_organicmaps_util_StringUtils_nativeFormatSpeedAndUnits(
JNIEnv * env, jclass thiz, jdouble metersPerSecond) JNIEnv * env, jclass thiz, jdouble metersPerSecond)
{ {
auto const units = measurement_utils::GetMeasurementUnits(); auto const units = measurement_utils::GetMeasurementUnits();
@@ -64,27 +64,27 @@ JNIEXPORT jobject JNICALL Java_app_organicmaps_sdk_util_StringUtils_nativeFormat
} }
JNIEXPORT jobject JNICALL JNIEXPORT jobject JNICALL
Java_app_organicmaps_sdk_util_StringUtils_nativeFormatDistance(JNIEnv * env, jclass, jdouble distanceInMeters) Java_app_organicmaps_util_StringUtils_nativeFormatDistance(JNIEnv * env, jclass, jdouble distanceInMeters)
{ {
return ToJavaDistance(env, platform::Distance::CreateFormatted(distanceInMeters)); return ToJavaDistance(env, platform::Distance::CreateFormatted(distanceInMeters));
} }
JNIEXPORT jobject JNICALL JNIEXPORT jobject JNICALL
Java_app_organicmaps_sdk_util_StringUtils_nativeGetLocalizedDistanceUnits(JNIEnv * env, jclass) Java_app_organicmaps_util_StringUtils_nativeGetLocalizedDistanceUnits(JNIEnv * env, jclass)
{ {
auto const localizedUnits = platform::GetLocalizedDistanceUnits(); auto const localizedUnits = platform::GetLocalizedDistanceUnits();
return MakeJavaPair(env, localizedUnits.m_high, localizedUnits.m_low); return MakeJavaPair(env, localizedUnits.m_high, localizedUnits.m_low);
} }
JNIEXPORT jobject JNICALL JNIEXPORT jobject JNICALL
Java_app_organicmaps_sdk_util_StringUtils_nativeGetLocalizedAltitudeUnits(JNIEnv * env, jclass) Java_app_organicmaps_util_StringUtils_nativeGetLocalizedAltitudeUnits(JNIEnv * env, jclass)
{ {
auto const localizedUnits = platform::GetLocalizedAltitudeUnits(); auto const localizedUnits = platform::GetLocalizedAltitudeUnits();
return MakeJavaPair(env, localizedUnits.m_high, localizedUnits.m_low); return MakeJavaPair(env, localizedUnits.m_high, localizedUnits.m_low);
} }
JNIEXPORT jstring JNICALL JNIEXPORT jstring JNICALL
Java_app_organicmaps_sdk_util_StringUtils_nativeGetLocalizedSpeedUnits(JNIEnv * env, jclass) Java_app_organicmaps_util_StringUtils_nativeGetLocalizedSpeedUnits(JNIEnv * env, jclass)
{ {
return jni::ToJavaString(env, platform::GetLocalizedSpeedUnits()); return jni::ToJavaString(env, platform::GetLocalizedSpeedUnits());
} }

View File

@@ -0,0 +1,12 @@
#include "app/organicmaps/core/jni_helper.hpp"
#include "app/organicmaps/platform/GuiThread.hpp"
extern "C"
{
// static void nativeProcessTask(long taskPointer);
JNIEXPORT void JNICALL
Java_app_organicmaps_util_concurrency_UiThread_nativeProcessTask(JNIEnv * env, jclass clazz, jlong taskPointer)
{
android::GuiThread::ProcessTask(taskPointer);
}
}

View File

@@ -1,6 +1,6 @@
#include "android_vulkan_context_factory.hpp" #include "android_vulkan_context_factory.hpp"
#include "app/organicmaps/sdk/platform/AndroidPlatform.hpp" #include "app/organicmaps/platform/AndroidPlatform.hpp"
#include "base/assert.hpp" #include "base/assert.hpp"
#include "base/logging.hpp" #include "base/logging.hpp"

View File

@@ -1,6 +1,6 @@
#pragma once #pragma once
#include "app/organicmaps/sdk/core/jni_helper.hpp" #include "app/organicmaps/core/jni_helper.hpp"
#include "drape/vulkan/vulkan_context_factory.hpp" #include "drape/vulkan/vulkan_context_factory.hpp"

View File

@@ -21,9 +21,8 @@ import com.github.mikephil.charting.formatter.ValueFormatter;
import com.github.mikephil.charting.highlight.Highlight; import com.github.mikephil.charting.highlight.Highlight;
import com.github.mikephil.charting.listener.OnChartValueSelectedListener; import com.github.mikephil.charting.listener.OnChartValueSelectedListener;
import app.organicmaps.sdk.Framework; import app.organicmaps.bookmarks.data.BookmarkManager;
import app.organicmaps.sdk.bookmarks.data.BookmarkManager; import app.organicmaps.bookmarks.data.ElevationInfo;
import app.organicmaps.sdk.bookmarks.data.ElevationInfo;
import app.organicmaps.widget.placepage.AxisValueFormatter; import app.organicmaps.widget.placepage.AxisValueFormatter;
import app.organicmaps.widget.placepage.CurrentLocationMarkerView; import app.organicmaps.widget.placepage.CurrentLocationMarkerView;
import app.organicmaps.widget.placepage.FloatingMarkerView; import app.organicmaps.widget.placepage.FloatingMarkerView;

View File

@@ -1,15 +1,5 @@
package app.organicmaps; package app.organicmaps;
import static app.organicmaps.sdk.DownloadResourcesLegacyActivity.ERR_DISK_ERROR;
import static app.organicmaps.sdk.DownloadResourcesLegacyActivity.ERR_DOWNLOAD_ERROR;
import static app.organicmaps.sdk.DownloadResourcesLegacyActivity.ERR_DOWNLOAD_SUCCESS;
import static app.organicmaps.sdk.DownloadResourcesLegacyActivity.ERR_NOT_ENOUGH_FREE_SPACE;
import static app.organicmaps.sdk.DownloadResourcesLegacyActivity.ERR_NO_MORE_FILES;
import static app.organicmaps.sdk.DownloadResourcesLegacyActivity.ERR_STORAGE_DISCONNECTED;
import static app.organicmaps.sdk.DownloadResourcesLegacyActivity.nativeCancelCurrentFile;
import static app.organicmaps.sdk.DownloadResourcesLegacyActivity.nativeGetBytesToDownload;
import static app.organicmaps.sdk.DownloadResourcesLegacyActivity.nativeStartNextFileDownload;
import android.annotation.SuppressLint; import android.annotation.SuppressLint;
import android.app.Dialog; import android.app.Dialog;
import android.content.ComponentName; import android.content.ComponentName;
@@ -22,21 +12,22 @@ import android.view.View;
import androidx.activity.result.ActivityResultLauncher; import androidx.activity.result.ActivityResultLauncher;
import androidx.activity.result.contract.ActivityResultContracts; import androidx.activity.result.contract.ActivityResultContracts;
import androidx.annotation.CallSuper; import androidx.annotation.CallSuper;
import androidx.annotation.Keep;
import androidx.annotation.NonNull; import androidx.annotation.NonNull;
import androidx.annotation.Nullable; import androidx.annotation.Nullable;
import androidx.annotation.StringRes; import androidx.annotation.StringRes;
import androidx.annotation.StyleRes; import androidx.annotation.StyleRes;
import androidx.core.view.ViewCompat; import androidx.core.view.ViewCompat;
import app.organicmaps.base.BaseMwmFragmentActivity; import app.organicmaps.base.BaseMwmFragmentActivity;
import app.organicmaps.sdk.Framework; import app.organicmaps.downloader.CountryItem;
import app.organicmaps.sdk.downloader.CountryItem; import app.organicmaps.downloader.MapManager;
import app.organicmaps.sdk.downloader.MapManager;
import app.organicmaps.intent.Factory; import app.organicmaps.intent.Factory;
import app.organicmaps.sdk.location.LocationListener; import app.organicmaps.location.LocationHelper;
import app.organicmaps.sdk.util.Config; import app.organicmaps.location.LocationListener;
import app.organicmaps.sdk.util.ConnectionState; import app.organicmaps.util.Config;
import app.organicmaps.sdk.util.StringUtils; import app.organicmaps.util.ConnectionState;
import app.organicmaps.sdk.util.UiUtils; import app.organicmaps.util.StringUtils;
import app.organicmaps.util.UiUtils;
import app.organicmaps.util.Utils; import app.organicmaps.util.Utils;
import app.organicmaps.util.WindowInsetUtils.PaddingInsetsListener; import app.organicmaps.util.WindowInsetUtils.PaddingInsetsListener;
@@ -54,6 +45,15 @@ public class DownloadResourcesLegacyActivity extends BaseMwmFragmentActivity
{ {
private static final String TAG = DownloadResourcesLegacyActivity.class.getSimpleName(); private static final String TAG = DownloadResourcesLegacyActivity.class.getSimpleName();
// Error codes, should match the same codes in JNI
private static final int ERR_DOWNLOAD_SUCCESS = 0;
private static final int ERR_DISK_ERROR = -1;
private static final int ERR_NOT_ENOUGH_FREE_SPACE = -2;
private static final int ERR_STORAGE_DISCONNECTED = -3;
private static final int ERR_DOWNLOAD_ERROR = -4;
private static final int ERR_NO_MORE_FILES = -5;
private static final int ERR_FILE_IN_PROGRESS = -6;
private MaterialTextView mTvMessage; private MaterialTextView mTvMessage;
private LinearProgressIndicator mProgress; private LinearProgressIndicator mProgress;
private MaterialButton mBtnDownload; private MaterialButton mBtnDownload;
@@ -81,6 +81,19 @@ public class DownloadResourcesLegacyActivity extends BaseMwmFragmentActivity
private int mCountryDownloadListenerSlot; private int mCountryDownloadListenerSlot;
private interface Listener
{
// Called by JNI.
@Keep
@SuppressWarnings("unused")
void onProgress(int percent);
// Called by JNI.
@Keep
@SuppressWarnings("unused")
void onFinish(int errorCode);
}
private final LocationListener mLocationListener = new LocationListener() private final LocationListener mLocationListener = new LocationListener()
{ {
@Override @Override
@@ -113,11 +126,11 @@ public class DownloadResourcesLegacyActivity extends BaseMwmFragmentActivity
mChbDownloadCountry.setText(checkBoxText); mChbDownloadCountry.setText(checkBoxText);
} }
MwmApplication.from(DownloadResourcesLegacyActivity.this).getLocationHelper().removeListener(this); LocationHelper.from(DownloadResourcesLegacyActivity.this).removeListener(this);
} }
}; };
private final app.organicmaps.sdk.DownloadResourcesLegacyActivity.Listener mResourcesDownloadListener = new app.organicmaps.sdk.DownloadResourcesLegacyActivity.Listener() private final Listener mResourcesDownloadListener = new Listener()
{ {
@Override @Override
public void onProgress(final int percent) public void onProgress(final int percent)
@@ -222,14 +235,14 @@ public class DownloadResourcesLegacyActivity extends BaseMwmFragmentActivity
{ {
super.onResume(); super.onResume();
if (!isFinishing()) if (!isFinishing())
MwmApplication.from(this).getLocationHelper().addListener(mLocationListener); LocationHelper.from(this).addListener(mLocationListener);
} }
@Override @Override
protected void onPause() protected void onPause()
{ {
super.onPause(); super.onPause();
MwmApplication.from(this).getLocationHelper().removeListener(mLocationListener); LocationHelper.from(this).removeListener(mLocationListener);
if (mAlertDialog != null && mAlertDialog.isShowing()) if (mAlertDialog != null && mAlertDialog.isShowing())
mAlertDialog.dismiss(); mAlertDialog.dismiss();
mAlertDialog = null; mAlertDialog = null;
@@ -445,4 +458,8 @@ public class DownloadResourcesLegacyActivity extends BaseMwmFragmentActivity
{ {
return R.style.MwmTheme_DownloadResourcesLegacy; return R.style.MwmTheme_DownloadResourcesLegacy;
} }
private static native int nativeGetBytesToDownload();
private static native int nativeStartNextFileDownload(Listener listener);
private static native void nativeCancelCurrentFile();
} }

View File

@@ -1,4 +1,4 @@
package app.organicmaps.sdk; package app.organicmaps;
import android.graphics.Bitmap; import android.graphics.Bitmap;
@@ -7,23 +7,24 @@ import androidx.annotation.NonNull;
import androidx.annotation.Nullable; import androidx.annotation.Nullable;
import androidx.annotation.Size; import androidx.annotation.Size;
import app.organicmaps.sdk.api.ParsedRoutingData; import app.organicmaps.api.ParsedRoutingData;
import app.organicmaps.sdk.api.ParsedSearchRequest; import app.organicmaps.api.ParsedSearchRequest;
import app.organicmaps.sdk.api.RequestType; import app.organicmaps.api.RequestType;
import app.organicmaps.sdk.bookmarks.data.DistanceAndAzimut; import app.organicmaps.bookmarks.data.DistanceAndAzimut;
import app.organicmaps.sdk.bookmarks.data.FeatureId; import app.organicmaps.bookmarks.data.FeatureId;
import app.organicmaps.sdk.bookmarks.data.MapObject; import app.organicmaps.bookmarks.data.MapObject;
import app.organicmaps.sdk.routing.JunctionInfo; import app.organicmaps.sdk.routing.JunctionInfo;
import app.organicmaps.sdk.routing.RouteMarkData; import app.organicmaps.sdk.routing.RouteMarkData;
import app.organicmaps.sdk.routing.RouteMarkType; import app.organicmaps.sdk.routing.RouteMarkType;
import app.organicmaps.sdk.routing.RoutingInfo; import app.organicmaps.sdk.routing.RoutingInfo;
import app.organicmaps.sdk.routing.TransitRouteInfo; import app.organicmaps.sdk.routing.TransitRouteInfo;
import app.organicmaps.sdk.PlacePageActivationListener;
import app.organicmaps.sdk.routing.RoutingListener; import app.organicmaps.sdk.routing.RoutingListener;
import app.organicmaps.sdk.routing.RoutingLoadPointsListener; import app.organicmaps.sdk.routing.RoutingLoadPointsListener;
import app.organicmaps.sdk.routing.RoutingProgressListener; import app.organicmaps.sdk.routing.RoutingProgressListener;
import app.organicmaps.sdk.routing.RoutingRecommendationListener; import app.organicmaps.sdk.routing.RoutingRecommendationListener;
import app.organicmaps.sdk.settings.SpeedCameraMode; import app.organicmaps.settings.SettingsPrefsFragment;
import app.organicmaps.sdk.util.Constants; import app.organicmaps.util.Constants;
import java.text.ParseException; import java.text.ParseException;
import java.text.SimpleDateFormat; import java.text.SimpleDateFormat;
@@ -87,7 +88,7 @@ public class Framework
return Bitmap.createBitmap(altitudeChartBits, width, height, Bitmap.Config.ARGB_8888); return Bitmap.createBitmap(altitudeChartBits, width, height, Bitmap.Config.ARGB_8888);
} }
public static void setSpeedCamerasMode(@NonNull SpeedCameraMode mode) public static void setSpeedCamerasMode(@NonNull SettingsPrefsFragment.SpeedCameraMode mode)
{ {
nativeSetSpeedCamManagerMode(mode.ordinal()); nativeSetSpeedCamManagerMode(mode.ordinal());
} }

View File

@@ -1,4 +1,4 @@
package app.organicmaps.sdk; package app.organicmaps;
import android.content.Context; import android.content.Context;
import android.graphics.Rect; import android.graphics.Rect;
@@ -7,16 +7,13 @@ import android.view.Surface;
import androidx.annotation.Nullable; import androidx.annotation.Nullable;
import app.organicmaps.BuildConfig; import app.organicmaps.display.DisplayType;
import app.organicmaps.MwmApplication; import app.organicmaps.location.LocationHelper;
import app.organicmaps.R; import app.organicmaps.util.Config;
import app.organicmaps.sdk.display.DisplayType; import app.organicmaps.util.ROMUtils;
import app.organicmaps.sdk.location.LocationHelper; import app.organicmaps.util.UiUtils;
import app.organicmaps.sdk.util.Config; import app.organicmaps.util.concurrency.UiThread;
import app.organicmaps.sdk.util.ROMUtils; import app.organicmaps.util.log.Logger;
import app.organicmaps.sdk.util.UiUtils;
import app.organicmaps.sdk.util.concurrency.UiThread;
import app.organicmaps.sdk.util.log.Logger;
public final class Map public final class Map
{ {
@@ -171,7 +168,7 @@ public final class Map
mRequireResize = false; mRequireResize = false;
setupWidgets(context, surfaceFrame.width(), surfaceFrame.height()); setupWidgets(context, surfaceFrame.width(), surfaceFrame.height());
final LocationHelper locationHelper = MwmApplication.from(context).getLocationHelper(); final LocationHelper locationHelper = LocationHelper.from(context);
final boolean firstStart = locationHelper.isInFirstRun(); final boolean firstStart = locationHelper.isInFirstRun();
if (!nativeCreateEngine(surface, surfaceDpi, firstStart, mLaunchByDeepLink, if (!nativeCreateEngine(surface, surfaceDpi, firstStart, mLaunchByDeepLink,
@@ -270,7 +267,7 @@ public final class Map
nativeResumeSurfaceRendering(); nativeResumeSurfaceRendering();
} }
public boolean isContextCreated() boolean isContextCreated()
{ {
return mSurfaceCreated; return mSurfaceCreated;
} }

View File

@@ -16,10 +16,8 @@ import androidx.annotation.Nullable;
import androidx.core.content.res.ConfigurationHelper; import androidx.core.content.res.ConfigurationHelper;
import app.organicmaps.base.BaseMwmFragment; import app.organicmaps.base.BaseMwmFragment;
import app.organicmaps.sdk.display.DisplayType; import app.organicmaps.display.DisplayType;
import app.organicmaps.sdk.Map; import app.organicmaps.util.log.Logger;
import app.organicmaps.sdk.MapRenderingListener;
import app.organicmaps.sdk.util.log.Logger;
import com.google.android.material.dialog.MaterialAlertDialogBuilder; import com.google.android.material.dialog.MaterialAlertDialogBuilder;

View File

@@ -7,9 +7,9 @@ import androidx.annotation.NonNull;
import androidx.annotation.Nullable; import androidx.annotation.Nullable;
import app.organicmaps.base.BaseMwmFragmentActivity; import app.organicmaps.base.BaseMwmFragmentActivity;
import app.organicmaps.sdk.display.DisplayChangedListener; import app.organicmaps.display.DisplayChangedListener;
import app.organicmaps.sdk.display.DisplayManager; import app.organicmaps.display.DisplayManager;
import app.organicmaps.sdk.display.DisplayType; import app.organicmaps.display.DisplayType;
public class MapPlaceholderActivity extends BaseMwmFragmentActivity implements DisplayChangedListener public class MapPlaceholderActivity extends BaseMwmFragmentActivity implements DisplayChangedListener
{ {

View File

@@ -1,4 +1,4 @@
package app.organicmaps.sdk; package app.organicmaps;
import androidx.annotation.Keep; import androidx.annotation.Keep;

View File

@@ -48,39 +48,38 @@ import app.organicmaps.backup.PeriodicBackupRunner;
import app.organicmaps.base.BaseMwmFragmentActivity; import app.organicmaps.base.BaseMwmFragmentActivity;
import app.organicmaps.base.OnBackPressListener; import app.organicmaps.base.OnBackPressListener;
import app.organicmaps.bookmarks.BookmarkCategoriesActivity; import app.organicmaps.bookmarks.BookmarkCategoriesActivity;
import app.organicmaps.sdk.Framework; import app.organicmaps.bookmarks.data.BookmarkManager;
import app.organicmaps.sdk.Map; import app.organicmaps.bookmarks.data.MapObject;
import app.organicmaps.sdk.MapRenderingListener; import app.organicmaps.display.DisplayChangedListener;
import app.organicmaps.sdk.bookmarks.data.BookmarkManager; import app.organicmaps.display.DisplayManager;
import app.organicmaps.sdk.bookmarks.data.MapObject; import app.organicmaps.display.DisplayType;
import app.organicmaps.sdk.display.DisplayChangedListener;
import app.organicmaps.sdk.display.DisplayManager;
import app.organicmaps.sdk.display.DisplayType;
import app.organicmaps.downloader.DownloaderActivity; import app.organicmaps.downloader.DownloaderActivity;
import app.organicmaps.downloader.DownloaderFragment; import app.organicmaps.downloader.DownloaderFragment;
import app.organicmaps.sdk.downloader.MapManager; import app.organicmaps.downloader.MapManager;
import app.organicmaps.downloader.OnmapDownloader; import app.organicmaps.downloader.OnmapDownloader;
import app.organicmaps.sdk.downloader.UpdateInfo; import app.organicmaps.downloader.UpdateInfo;
import app.organicmaps.sdk.editor.Editor; import app.organicmaps.editor.Editor;
import app.organicmaps.editor.EditorActivity; import app.organicmaps.editor.EditorActivity;
import app.organicmaps.editor.EditorHostFragment; import app.organicmaps.editor.EditorHostFragment;
import app.organicmaps.editor.FeatureCategoryActivity; import app.organicmaps.editor.FeatureCategoryActivity;
import app.organicmaps.editor.OsmLoginActivity; import app.organicmaps.editor.OsmLoginActivity;
import app.organicmaps.sdk.editor.OsmOAuth; import app.organicmaps.editor.OsmOAuth;
import app.organicmaps.editor.ReportFragment; import app.organicmaps.editor.ReportFragment;
import app.organicmaps.help.HelpActivity; import app.organicmaps.help.HelpActivity;
import app.organicmaps.intent.Factory; import app.organicmaps.intent.Factory;
import app.organicmaps.intent.IntentProcessor; import app.organicmaps.intent.IntentProcessor;
import app.organicmaps.sdk.location.LocationHelper; import app.organicmaps.location.LocationHelper;
import app.organicmaps.sdk.location.LocationListener; import app.organicmaps.location.LocationListener;
import app.organicmaps.sdk.location.LocationState; import app.organicmaps.location.LocationState;
import app.organicmaps.sdk.location.SensorListener; import app.organicmaps.location.SensorHelper;
import app.organicmaps.sdk.location.TrackRecorder; import app.organicmaps.location.SensorListener;
import app.organicmaps.location.TrackRecorder;
import app.organicmaps.location.TrackRecordingService; import app.organicmaps.location.TrackRecordingService;
import app.organicmaps.maplayer.MapButtonsController; import app.organicmaps.maplayer.MapButtonsController;
import app.organicmaps.maplayer.MapButtonsViewModel; import app.organicmaps.maplayer.MapButtonsViewModel;
import app.organicmaps.maplayer.ToggleMapLayerFragment; import app.organicmaps.maplayer.ToggleMapLayerFragment;
import app.organicmaps.sdk.maplayer.isolines.IsolinesState; import app.organicmaps.maplayer.isolines.IsolinesManager;
import app.organicmaps.maplayer.isolines.IsolinesState;
import app.organicmaps.routing.ManageRouteBottomSheet; import app.organicmaps.routing.ManageRouteBottomSheet;
import app.organicmaps.routing.NavigationController; import app.organicmaps.routing.NavigationController;
import app.organicmaps.routing.NavigationService; import app.organicmaps.routing.NavigationService;
@@ -99,27 +98,27 @@ import app.organicmaps.search.SearchActivity;
import app.organicmaps.sdk.search.SearchEngine; import app.organicmaps.sdk.search.SearchEngine;
import app.organicmaps.search.SearchFragment; import app.organicmaps.search.SearchFragment;
import app.organicmaps.settings.DrivingOptionsActivity; import app.organicmaps.settings.DrivingOptionsActivity;
import app.organicmaps.sdk.settings.RoadType; import app.organicmaps.settings.RoadType;
import app.organicmaps.settings.SettingsActivity; import app.organicmaps.settings.SettingsActivity;
import app.organicmaps.sdk.settings.UnitLocale; import app.organicmaps.settings.UnitLocale;
import app.organicmaps.leftbutton.LeftButton; import app.organicmaps.leftbutton.LeftButton;
import app.organicmaps.leftbutton.LeftButtonsHolder; import app.organicmaps.leftbutton.LeftButtonsHolder;
import app.organicmaps.leftbutton.LeftToggleButton; import app.organicmaps.leftbutton.LeftToggleButton;
import app.organicmaps.sdk.util.Config; import app.organicmaps.util.Config;
import app.organicmaps.sdk.util.LocationUtils; import app.organicmaps.util.LocationUtils;
import app.organicmaps.sdk.util.PowerManagment; import app.organicmaps.util.PowerManagment;
import app.organicmaps.util.SharingUtils; import app.organicmaps.util.SharingUtils;
import app.organicmaps.sdk.util.ThemeSwitcher; import app.organicmaps.util.ThemeSwitcher;
import app.organicmaps.util.ThemeUtils; import app.organicmaps.util.ThemeUtils;
import app.organicmaps.sdk.util.UiUtils; import app.organicmaps.util.UiUtils;
import app.organicmaps.util.Utils; import app.organicmaps.util.Utils;
import app.organicmaps.util.bottomsheet.MenuBottomSheetFragment; import app.organicmaps.util.bottomsheet.MenuBottomSheetFragment;
import app.organicmaps.util.bottomsheet.MenuBottomSheetItem; import app.organicmaps.util.bottomsheet.MenuBottomSheetItem;
import app.organicmaps.sdk.util.log.Logger; import app.organicmaps.util.log.Logger;
import app.organicmaps.widget.StackedButtonsDialog; import app.organicmaps.widget.StackedButtonsDialog;
import app.organicmaps.widget.menu.MainMenu; import app.organicmaps.widget.menu.MainMenu;
import app.organicmaps.widget.placepage.PlacePageController; import app.organicmaps.widget.placepage.PlacePageController;
import app.organicmaps.sdk.widget.placepage.PlacePageData; import app.organicmaps.widget.placepage.PlacePageData;
import app.organicmaps.widget.placepage.PlacePageViewModel; import app.organicmaps.widget.placepage.PlacePageViewModel;
import com.google.android.material.appbar.MaterialToolbar; import com.google.android.material.appbar.MaterialToolbar;
@@ -133,16 +132,15 @@ import static android.Manifest.permission.ACCESS_COARSE_LOCATION;
import static android.Manifest.permission.ACCESS_FINE_LOCATION; import static android.Manifest.permission.ACCESS_FINE_LOCATION;
import static android.Manifest.permission.POST_NOTIFICATIONS; import static android.Manifest.permission.POST_NOTIFICATIONS;
import static android.content.pm.PackageManager.PERMISSION_GRANTED; import static android.content.pm.PackageManager.PERMISSION_GRANTED;
import static app.organicmaps.sdk.location.LocationState.FOLLOW; import static app.organicmaps.location.LocationState.FOLLOW;
import static app.organicmaps.sdk.location.LocationState.FOLLOW_AND_ROTATE; import static app.organicmaps.location.LocationState.FOLLOW_AND_ROTATE;
import static app.organicmaps.sdk.location.LocationState.LOCATION_TAG; import static app.organicmaps.location.LocationState.LOCATION_TAG;
import static app.organicmaps.leftbutton.LeftButtonsHolder.BUTTON_ADD_PLACE_CODE; import static app.organicmaps.leftbutton.LeftButtonsHolder.BUTTON_ADD_PLACE_CODE;
import static app.organicmaps.leftbutton.LeftButtonsHolder.BUTTON_HELP_CODE; import static app.organicmaps.leftbutton.LeftButtonsHolder.BUTTON_HELP_CODE;
import static app.organicmaps.leftbutton.LeftButtonsHolder.BUTTON_RECORD_TRACK_CODE; import static app.organicmaps.leftbutton.LeftButtonsHolder.BUTTON_RECORD_TRACK_CODE;
import static app.organicmaps.leftbutton.LeftButtonsHolder.BUTTON_SETTINGS_CODE; import static app.organicmaps.leftbutton.LeftButtonsHolder.BUTTON_SETTINGS_CODE;
import static app.organicmaps.sdk.util.PowerManagment.POWER_MANAGEMENT_TAG; import static app.organicmaps.util.PowerManagment.POWER_MANAGEMENT_TAG;
import static app.organicmaps.sdk.util.concurrency.UiThread.runLater; import static app.organicmaps.util.concurrency.UiThread.runLater;
public class MwmActivity extends BaseMwmFragmentActivity public class MwmActivity extends BaseMwmFragmentActivity
implements PlacePageActivationListener, implements PlacePageActivationListener,
@@ -285,8 +283,10 @@ public class MwmActivity extends BaseMwmFragmentActivity
checkMeasurementSystem(); checkMeasurementSystem();
} }
// Called from JNI.
@Override @Override
@Keep @Keep
@SuppressWarnings("unused")
public void onRenderingInitializationFinished() public void onRenderingInitializationFinished()
{ {
ThemeSwitcher.INSTANCE.restart(true); ThemeSwitcher.INSTANCE.restart(true);
@@ -472,7 +472,7 @@ public class MwmActivity extends BaseMwmFragmentActivity
private void shareMyLocation() private void shareMyLocation()
{ {
final Location loc = MwmApplication.from(this).getLocationHelper().getSavedLocation(); final Location loc = LocationHelper.from(this).getSavedLocation();
if (loc != null) if (loc != null)
{ {
SharingUtils.shareLocation(this, loc); SharingUtils.shareLocation(this, loc);
@@ -1140,7 +1140,7 @@ public class MwmActivity extends BaseMwmFragmentActivity
LocationState.nativeSwitchToNextMode(); LocationState.nativeSwitchToNextMode();
} }
MapObject startPoint = MwmApplication.from(this).getLocationHelper().getMyPosition(); MapObject startPoint = LocationHelper.from(this).getMyPosition();
RoutingController.get().prepare(startPoint, endPoint); RoutingController.get().prepare(startPoint, endPoint);
// TODO: check for tablet. // TODO: check for tablet.
@@ -1295,7 +1295,7 @@ public class MwmActivity extends BaseMwmFragmentActivity
mNavigationController.refresh(); mNavigationController.refresh();
refreshLightStatusBar(); refreshLightStatusBar();
MwmApplication.from(this).getSensorHelper().addListener(this); SensorHelper.from(this).addListener(this);
} }
@Override @Override
@@ -1319,7 +1319,7 @@ public class MwmActivity extends BaseMwmFragmentActivity
{ {
if (mOnmapDownloader != null) if (mOnmapDownloader != null)
mOnmapDownloader.onPause(); mOnmapDownloader.onPause();
MwmApplication.from(this).getSensorHelper().removeListener(this); SensorHelper.from(this).removeListener(this);
dismissLocationErrorDialog(); dismissLocationErrorDialog();
dismissAlertDialog(); dismissAlertDialog();
super.onPause(); super.onPause();
@@ -1332,9 +1332,9 @@ public class MwmActivity extends BaseMwmFragmentActivity
Framework.nativePlacePageActivationListener(this); Framework.nativePlacePageActivationListener(this);
BookmarkManager.INSTANCE.addLoadingListener(this); BookmarkManager.INSTANCE.addLoadingListener(this);
RoutingController.get().attach(this); RoutingController.get().attach(this);
MwmApplication.from(getApplicationContext()).getIsolinesManager().attach(this::onIsolinesStateChanged); IsolinesManager.from(getApplicationContext()).attach(this::onIsolinesStateChanged);
LocationState.nativeSetListener(this); LocationState.nativeSetListener(this);
MwmApplication.from(this).getLocationHelper().addListener(this); LocationHelper.from(this).addListener(this);
mSearchController.attach(this); mSearchController.attach(this);
Utils.keepScreenOn(Config.isKeepScreenOnEnabled() || RoutingController.get().isNavigating(), getWindow()); Utils.keepScreenOn(Config.isKeepScreenOnEnabled() || RoutingController.get().isNavigating(), getWindow());
} }
@@ -1345,13 +1345,13 @@ public class MwmActivity extends BaseMwmFragmentActivity
super.onStop(); super.onStop();
Framework.nativeRemovePlacePageActivationListener(this); Framework.nativeRemovePlacePageActivationListener(this);
BookmarkManager.INSTANCE.removeLoadingListener(this); BookmarkManager.INSTANCE.removeLoadingListener(this);
MwmApplication.from(this).getLocationHelper().removeListener(this); LocationHelper.from(this).removeListener(this);
if (mDisplayManager.isDeviceDisplayUsed() && !RoutingController.get().isNavigating()) if (mDisplayManager.isDeviceDisplayUsed() && !RoutingController.get().isNavigating())
{ {
LocationState.nativeRemoveListener(); LocationState.nativeRemoveListener();
RoutingController.get().detach(); RoutingController.get().detach();
} }
MwmApplication.from(getApplicationContext()).getIsolinesManager().detach(); IsolinesManager.from(getApplicationContext()).detach();
mSearchController.detach(); mSearchController.detach();
Utils.keepScreenOn(false, getWindow()); Utils.keepScreenOn(false, getWindow());
@@ -1453,20 +1453,26 @@ public class MwmActivity extends BaseMwmFragmentActivity
return true; return true;
} }
// Called from JNI.
@Override @Override
@SuppressWarnings("unused")
public void onPlacePageActivated(@NonNull PlacePageData data) public void onPlacePageActivated(@NonNull PlacePageData data)
{ {
// This will open the place page // This will open the place page
mPlacePageViewModel.setMapObject((MapObject) data); mPlacePageViewModel.setMapObject((MapObject) data);
} }
// Called from JNI.
@Override @Override
@SuppressWarnings("unused")
public void onPlacePageDeactivated() public void onPlacePageDeactivated()
{ {
closePlacePage(); closePlacePage();
} }
// Called from JNI.
@Override @Override
@SuppressWarnings("unused")
public void onSwitchFullScreenMode() public void onSwitchFullScreenMode()
{ {
if ((mPanelAnimator != null && mPanelAnimator.isVisible()) || UiUtils.isVisible(mSearchController.getToolbar())) if ((mPanelAnimator != null && mPanelAnimator.isVisible()) || UiUtils.isVisible(mSearchController.getToolbar()))
@@ -1536,7 +1542,7 @@ public class MwmActivity extends BaseMwmFragmentActivity
mMapFragment.updateCompassOffset(offsetX, offsetY); mMapFragment.updateCompassOffset(offsetX, offsetY);
final double north = MwmApplication.from(this).getSensorHelper().getSavedNorth(); final double north = SensorHelper.from(this).getSavedNorth();
if (!Double.isNaN(north)) if (!Double.isNaN(north))
Map.onCompassUpdated(north, true); Map.onCompassUpdated(north, true);
} }
@@ -1621,7 +1627,7 @@ public class MwmActivity extends BaseMwmFragmentActivity
// +S+F-L -> Hide // +S+F-L -> Hide
// +S+F+L -> Hide // +S+F+L -> Hide
MapObject myPosition = MwmApplication.from(this).getLocationHelper().getMyPosition(); MapObject myPosition = LocationHelper.from(this).getMyPosition();
if (myPosition != null && controller.getEndPoint() == null) if (myPosition != null && controller.getEndPoint() == null)
{ {
@@ -1947,7 +1953,7 @@ public class MwmActivity extends BaseMwmFragmentActivity
(dialog, which) -> controller.swapPoints() : (dialog, which) -> controller.swapPoints() :
(dialog, which) -> { (dialog, which) -> {
// The current location may change while this dialog is still shown on the screen. // The current location may change while this dialog is still shown on the screen.
final MapObject myPosition = MwmApplication.from(this).getLocationHelper().getMyPosition(); final MapObject myPosition = LocationHelper.from(this).getMyPosition();
controller.setStartPoint(myPosition); controller.setStartPoint(myPosition);
} }
) )
@@ -1966,7 +1972,7 @@ public class MwmActivity extends BaseMwmFragmentActivity
if (controller.isPlanning() || controller.isBuilding() || controller.isErrorEncountered()) if (controller.isPlanning() || controller.isBuilding() || controller.isErrorEncountered())
showAddStartOrFinishFrame(controller, true); showAddStartOrFinishFrame(controller, true);
final LocationHelper locationHelper = MwmApplication.from(this).getLocationHelper(); final LocationHelper locationHelper = LocationHelper.from(this);
// Check if location was disabled by the user. // Check if location was disabled by the user.
if (LocationState.getMode() == LocationState.NOT_FOLLOW_NO_POSITION) if (LocationState.getMode() == LocationState.NOT_FOLLOW_NO_POSITION)
@@ -2285,7 +2291,7 @@ public class MwmActivity extends BaseMwmFragmentActivity
@Override @Override
public void onUseMyPositionAsStart() public void onUseMyPositionAsStart()
{ {
RoutingController.get().setStartPoint(MwmApplication.from(this).getLocationHelper().getMyPosition()); RoutingController.get().setStartPoint(LocationHelper.from(this).getMyPosition());
} }
@Override @Override

View File

@@ -1,6 +1,6 @@
package app.organicmaps; package app.organicmaps;
import static app.organicmaps.sdk.location.LocationState.LOCATION_TAG; import static app.organicmaps.location.LocationState.LOCATION_TAG;
import android.app.Activity; import android.app.Activity;
import android.app.Application; import android.app.Application;
@@ -22,23 +22,22 @@ import java.lang.ref.WeakReference;
import app.organicmaps.background.OsmUploadWork; import app.organicmaps.background.OsmUploadWork;
import app.organicmaps.downloader.Android7RootCertificateWorkaround; import app.organicmaps.downloader.Android7RootCertificateWorkaround;
import app.organicmaps.downloader.DownloaderNotifier; import app.organicmaps.downloader.DownloaderNotifier;
import app.organicmaps.sdk.display.DisplayManager; import app.organicmaps.display.DisplayManager;
import app.organicmaps.sdk.Map; import app.organicmaps.location.LocationHelper;
import app.organicmaps.sdk.location.LocationHelper; import app.organicmaps.location.LocationState;
import app.organicmaps.sdk.location.LocationState; import app.organicmaps.location.SensorHelper;
import app.organicmaps.sdk.location.SensorHelper; import app.organicmaps.location.TrackRecorder;
import app.organicmaps.sdk.location.TrackRecorder;
import app.organicmaps.location.TrackRecordingService; import app.organicmaps.location.TrackRecordingService;
import app.organicmaps.sdk.maplayer.isolines.IsolinesManager; import app.organicmaps.maplayer.isolines.IsolinesManager;
import app.organicmaps.sdk.maplayer.subway.SubwayManager; import app.organicmaps.maplayer.subway.SubwayManager;
import app.organicmaps.routing.NavigationService; import app.organicmaps.routing.NavigationService;
import app.organicmaps.routing.RoutingController; import app.organicmaps.routing.RoutingController;
import app.organicmaps.sdk.OrganicMaps; import app.organicmaps.sdk.OrganicMaps;
import app.organicmaps.sdk.util.Config; import app.organicmaps.util.Config;
import app.organicmaps.sdk.util.ConnectionState; import app.organicmaps.util.ConnectionState;
import app.organicmaps.util.Utils; import app.organicmaps.util.Utils;
import app.organicmaps.sdk.util.log.Logger; import app.organicmaps.util.log.Logger;
import app.organicmaps.sdk.util.log.LogsManager; import app.organicmaps.util.log.LogsManager;
public class MwmApplication extends Application implements Application.ActivityLifecycleCallbacks public class MwmApplication extends Application implements Application.ActivityLifecycleCallbacks
{ {
@@ -49,6 +48,22 @@ public class MwmApplication extends Application implements Application.ActivityL
@NonNull @NonNull
private OrganicMaps mOrganicMaps; private OrganicMaps mOrganicMaps;
@SuppressWarnings("NotNullFieldNotInitialized")
@NonNull
private SubwayManager mSubwayManager;
@SuppressWarnings("NotNullFieldNotInitialized")
@NonNull
private IsolinesManager mIsolinesManager;
@SuppressWarnings("NotNullFieldNotInitialized")
@NonNull
private LocationHelper mLocationHelper;
@SuppressWarnings("NotNullFieldNotInitialized")
@NonNull
private SensorHelper mSensorHelper;
@SuppressWarnings("NotNullFieldNotInitialized") @SuppressWarnings("NotNullFieldNotInitialized")
@NonNull @NonNull
private DisplayManager mDisplayManager; private DisplayManager mDisplayManager;
@@ -66,25 +81,25 @@ public class MwmApplication extends Application implements Application.ActivityL
@NonNull @NonNull
public SubwayManager getSubwayManager() public SubwayManager getSubwayManager()
{ {
return getOrganicMaps().getSubwayManager(); return mSubwayManager;
} }
@NonNull @NonNull
public IsolinesManager getIsolinesManager() public IsolinesManager getIsolinesManager()
{ {
return getOrganicMaps().getIsolinesManager(); return mIsolinesManager;
} }
@NonNull @NonNull
public LocationHelper getLocationHelper() public LocationHelper getLocationHelper()
{ {
return getOrganicMaps().getLocationHelper(); return mLocationHelper;
} }
@NonNull @NonNull
public SensorHelper getSensorHelper() public SensorHelper getSensorHelper()
{ {
return getOrganicMaps().getSensorHelper(); return mSensorHelper;
} }
@NonNull @NonNull
@@ -135,6 +150,10 @@ public class MwmApplication extends Application implements Application.ActivityL
TrackRecordingService.createNotificationChannel(this); TrackRecordingService.createNotificationChannel(this);
registerActivityLifecycleCallbacks(this); registerActivityLifecycleCallbacks(this);
mSubwayManager = new SubwayManager(this);
mIsolinesManager = new IsolinesManager(this);
mLocationHelper = new LocationHelper(this);
mSensorHelper = new SensorHelper(this);
mDisplayManager = new DisplayManager(); mDisplayManager = new DisplayManager();
} }
@@ -174,7 +193,7 @@ public class MwmApplication extends Application implements Application.ActivityL
{ {
Logger.d(TAG, "activity = " + activity); Logger.d(TAG, "activity = " + activity);
Utils.showOnLockScreen(Config.isShowOnLockScreenEnabled(), activity); Utils.showOnLockScreen(Config.isShowOnLockScreenEnabled(), activity);
getSensorHelper().setRotation(activity.getWindowManager().getDefaultDisplay().getRotation()); mSensorHelper.setRotation(activity.getWindowManager().getDefaultDisplay().getRotation());
mTopActivity = new WeakReference<>(activity); mTopActivity = new WeakReference<>(activity);
} }
@@ -205,7 +224,7 @@ public class MwmApplication extends Application implements Application.ActivityL
{ {
Logger.d(TAG); Logger.d(TAG);
getLocationHelper().resumeLocationInForeground(); mLocationHelper.resumeLocationInForeground();
} }
private void onBackground() private void onBackground()
@@ -225,7 +244,7 @@ public class MwmApplication extends Application implements Application.ActivityL
else else
{ {
Logger.i(LOCATION_TAG, "Stopping location in the background"); Logger.i(LOCATION_TAG, "Stopping location in the background");
getLocationHelper().stop(); mLocationHelper.stop();
} }
} }
} }

View File

@@ -13,7 +13,7 @@ import androidx.fragment.app.Fragment;
import org.chromium.base.ObserverList; import org.chromium.base.ObserverList;
import app.organicmaps.sdk.util.UiUtils; import app.organicmaps.util.UiUtils;
class PanelAnimator class PanelAnimator
{ {

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