mirror of
https://codeberg.org/comaps/comaps
synced 2025-12-29 01:03:46 +00:00
[android] Load icon types from core
Signed-off-by: Andrei Shkrob <github@shkrob.dev>
This commit is contained in:
committed by
Konstantin Pastbin
parent
d9335c0b6c
commit
2ded7e5e2b
@@ -43,6 +43,8 @@ set(SRC
|
||||
app/organicmaps/sdk/core/jni_java_methods.cpp
|
||||
app/organicmaps/sdk/core/logging.cpp
|
||||
app/organicmaps/sdk/bookmarks/data/BookmarkManager.cpp
|
||||
app/organicmaps/sdk/bookmarks/data/Icon.cpp
|
||||
app/organicmaps/sdk/bookmarks/data/Icon.hpp
|
||||
app/organicmaps/sdk/bookmarks/data/PredefinedColors.cpp
|
||||
app/organicmaps/sdk/bookmarks/data/PredefinedColors.hpp
|
||||
app/organicmaps/sdk/DownloadResourcesLegacyActivity.cpp
|
||||
|
||||
@@ -0,0 +1,37 @@
|
||||
#include <jni.h>
|
||||
|
||||
#include "app/organicmaps/sdk/core/jni_helper.hpp"
|
||||
|
||||
#include "kml/types.hpp"
|
||||
|
||||
extern "C"
|
||||
{
|
||||
JNIEXPORT jobjectArray JNICALL Java_app_organicmaps_sdk_bookmarks_data_Icon_nativeGetBookmarkIconNames(JNIEnv * env,
|
||||
jclass)
|
||||
{
|
||||
std::vector<std::string> icons;
|
||||
for (uint16_t i = 0; i < static_cast<uint16_t>(kml::BookmarkIcon::Count); ++i)
|
||||
icons.emplace_back(kml::DebugPrint(static_cast<kml::BookmarkIcon>(i)));
|
||||
return jni::ToJavaStringArray(env, icons);
|
||||
}
|
||||
}
|
||||
|
||||
namespace
|
||||
{
|
||||
JNINativeMethod const iconMethods[] = {
|
||||
{"nativeGetBookmarkIconNames", "()[Ljava/lang/String;",
|
||||
reinterpret_cast<void *>(&Java_app_organicmaps_sdk_bookmarks_data_Icon_nativeGetBookmarkIconNames)},
|
||||
};
|
||||
}
|
||||
|
||||
namespace icon
|
||||
{
|
||||
jint registerNativeMethods(JNIEnv * env)
|
||||
{
|
||||
jclass clazz = env->FindClass("app/organicmaps/sdk/bookmarks/data/Icon");
|
||||
if (clazz == nullptr)
|
||||
return JNI_ERR;
|
||||
|
||||
return env->RegisterNatives(clazz, iconMethods, std::size(iconMethods));
|
||||
}
|
||||
} // namespace icon
|
||||
@@ -0,0 +1,8 @@
|
||||
#pragma once
|
||||
|
||||
#include <jni.h>
|
||||
|
||||
namespace icon
|
||||
{
|
||||
jint registerNativeMethods(JNIEnv * env);
|
||||
} // namespace icon
|
||||
@@ -21,7 +21,7 @@ Java_app_organicmaps_sdk_bookmarks_data_PredefinedColors_nativeGetPredefinedColo
|
||||
|
||||
namespace
|
||||
{
|
||||
JNINativeMethod const methods[] = {
|
||||
JNINativeMethod const predefinedColorsMethods[] = {
|
||||
{"nativeGetPredefinedColors", "()[I",
|
||||
reinterpret_cast<void *>(&Java_app_organicmaps_sdk_bookmarks_data_PredefinedColors_nativeGetPredefinedColors)},
|
||||
};
|
||||
@@ -35,6 +35,6 @@ jint registerNativeMethods(JNIEnv * env)
|
||||
if (clazz == nullptr)
|
||||
return JNI_ERR;
|
||||
|
||||
return env->RegisterNatives(clazz, methods, std::size(methods));
|
||||
return env->RegisterNatives(clazz, predefinedColorsMethods, std::size(predefinedColorsMethods));
|
||||
}
|
||||
} // namespace predefined_colors
|
||||
|
||||
@@ -5,4 +5,4 @@
|
||||
namespace predefined_colors
|
||||
{
|
||||
jint registerNativeMethods(JNIEnv * env);
|
||||
}
|
||||
} // namespace predefined_colors
|
||||
|
||||
@@ -7,6 +7,7 @@
|
||||
#include "base/string_utils.hpp"
|
||||
|
||||
#include "app/organicmaps/sdk/bookmarks/data/PredefinedColors.hpp"
|
||||
#include "app/organicmaps/sdk/bookmarks/data/Icon.hpp"
|
||||
|
||||
#include <vector>
|
||||
|
||||
@@ -70,6 +71,8 @@ JNIEXPORT jint JNICALL JNI_OnLoad(JavaVM * jvm, void *)
|
||||
{
|
||||
if (predefined_colors::registerNativeMethods(env) != JNI_OK)
|
||||
return JNI_ERR;
|
||||
if (icon::registerNativeMethods(env) != JNI_OK)
|
||||
return JNI_ERR;
|
||||
}
|
||||
|
||||
return JNI_VERSION_1_6;
|
||||
|
||||
Reference in New Issue
Block a user