mirror of
https://codeberg.org/comaps/comaps
synced 2025-12-19 13:03:36 +00:00
[android] Fix predefined colors again
Signed-off-by: Andrei Shkrob <github@shkrob.dev>
This commit is contained in:
committed by
Konstantin Pastbin
parent
4052f0481e
commit
ac453e36ac
@@ -360,7 +360,7 @@ JNIEXPORT jlong JNICALL Java_app_organicmaps_sdk_bookmarks_data_BookmarkManager_
|
|||||||
JNIEXPORT jint JNICALL Java_app_organicmaps_sdk_bookmarks_data_BookmarkManager_nativeGetLastEditedColor(JNIEnv *,
|
JNIEXPORT jint JNICALL Java_app_organicmaps_sdk_bookmarks_data_BookmarkManager_nativeGetLastEditedColor(JNIEnv *,
|
||||||
jobject)
|
jobject)
|
||||||
{
|
{
|
||||||
return static_cast<jint>(frm()->LastEditedBMColor());
|
return static_cast<jint>(kml::kColorIndexMap[E2I(frm()->LastEditedBMColor())]);
|
||||||
}
|
}
|
||||||
|
|
||||||
JNIEXPORT void JNICALL Java_app_organicmaps_sdk_bookmarks_data_BookmarkManager_nativeLoadBookmarksFile(
|
JNIEXPORT void JNICALL Java_app_organicmaps_sdk_bookmarks_data_BookmarkManager_nativeLoadBookmarksFile(
|
||||||
@@ -705,7 +705,7 @@ JNIEXPORT jint JNICALL Java_app_organicmaps_sdk_bookmarks_data_BookmarkManager_n
|
|||||||
jlong bmk)
|
jlong bmk)
|
||||||
{
|
{
|
||||||
auto const * mark = getBookmark(bmk);
|
auto const * mark = getBookmark(bmk);
|
||||||
return static_cast<jint>(mark != nullptr ? mark->GetColor() : frm()->LastEditedBMColor());
|
return static_cast<jint>(kml::kColorIndexMap[E2I(mark != nullptr ? mark->GetColor() : frm()->LastEditedBMColor())]);
|
||||||
}
|
}
|
||||||
|
|
||||||
JNIEXPORT jint JNICALL Java_app_organicmaps_sdk_bookmarks_data_BookmarkManager_nativeGetBookmarkIcon(JNIEnv *, jclass,
|
JNIEXPORT jint JNICALL Java_app_organicmaps_sdk_bookmarks_data_BookmarkManager_nativeGetBookmarkIcon(JNIEnv *, jclass,
|
||||||
@@ -727,7 +727,7 @@ JNIEXPORT void JNICALL Java_app_organicmaps_sdk_bookmarks_data_BookmarkManager_n
|
|||||||
kml::SetDefaultStr(bmData.m_customName, bmName);
|
kml::SetDefaultStr(bmData.m_customName, bmName);
|
||||||
if (descr)
|
if (descr)
|
||||||
kml::SetDefaultStr(bmData.m_description, jni::ToNativeString(env, descr));
|
kml::SetDefaultStr(bmData.m_description, jni::ToNativeString(env, descr));
|
||||||
bmData.m_color.m_predefinedColor = static_cast<kml::PredefinedColor>(color);
|
bmData.m_color.m_predefinedColor = kml::kOrderedPredefinedColors[color];
|
||||||
|
|
||||||
g_framework->ReplaceBookmark(static_cast<kml::MarkId>(bmk), bmData);
|
g_framework->ReplaceBookmark(static_cast<kml::MarkId>(bmk), bmData);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -66,6 +66,21 @@ static_assert(kOrderedPredefinedColors.size() == static_cast<size_t>(PredefinedC
|
|||||||
"kOrderedPredefinedColors size must match PredefinedColor::Count");
|
"kOrderedPredefinedColors size must match PredefinedColor::Count");
|
||||||
static_assert(base::HasUniqueElements(kOrderedPredefinedColors), "All values must be unique");
|
static_assert(base::HasUniqueElements(kOrderedPredefinedColors), "All values must be unique");
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Maps PredefinedColor to its index in kOrderedPredefinedColors.
|
||||||
|
*
|
||||||
|
* @code
|
||||||
|
* kOrderedPredefinedColors[kColorIndexMap[base::E2I(PredefinedColor::Red)]] == PredefinedColor::Red
|
||||||
|
* @endcode
|
||||||
|
*/
|
||||||
|
std::array constexpr kColorIndexMap = [] consteval
|
||||||
|
{
|
||||||
|
std::array<int, static_cast<std::size_t>(PredefinedColor::Count)> map{};
|
||||||
|
for (std::size_t i = 0; i < kOrderedPredefinedColors.size(); ++i)
|
||||||
|
map[static_cast<std::size_t>(kOrderedPredefinedColors[i])] = static_cast<int>(i);
|
||||||
|
return map;
|
||||||
|
}();
|
||||||
|
|
||||||
inline std::string DebugPrint(PredefinedColor color)
|
inline std::string DebugPrint(PredefinedColor color)
|
||||||
{
|
{
|
||||||
switch (color)
|
switch (color)
|
||||||
|
|||||||
Reference in New Issue
Block a user