mirror of
https://codeberg.org/comaps/comaps
synced 2025-12-19 04:53: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 *,
|
||||
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(
|
||||
@@ -705,7 +705,7 @@ JNIEXPORT jint JNICALL Java_app_organicmaps_sdk_bookmarks_data_BookmarkManager_n
|
||||
jlong 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,
|
||||
@@ -727,7 +727,7 @@ JNIEXPORT void JNICALL Java_app_organicmaps_sdk_bookmarks_data_BookmarkManager_n
|
||||
kml::SetDefaultStr(bmData.m_customName, bmName);
|
||||
if (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);
|
||||
}
|
||||
|
||||
@@ -66,6 +66,21 @@ static_assert(kOrderedPredefinedColors.size() == static_cast<size_t>(PredefinedC
|
||||
"kOrderedPredefinedColors size must match PredefinedColor::Count");
|
||||
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)
|
||||
{
|
||||
switch (color)
|
||||
|
||||
Reference in New Issue
Block a user