diff --git a/android/app/src/main/java/app/organicmaps/sdk/editor/Editor.java b/android/app/src/main/java/app/organicmaps/sdk/editor/Editor.java index 7bc120164..10cd2dc55 100644 --- a/android/app/src/main/java/app/organicmaps/sdk/editor/Editor.java +++ b/android/app/src/main/java/app/organicmaps/sdk/editor/Editor.java @@ -161,6 +161,7 @@ public final class Editor public static native void nativeCreateNote(String text); public static native void nativePlaceDoesNotExist(@NonNull String comment); public static native void nativeRollbackMapObject(); + public static native void nativeCreateStandaloneNote(double lat, double lon, String text); /** * @return all cuisines keys. diff --git a/android/app/src/main/res/values/strings.xml b/android/app/src/main/res/values/strings.xml index c1a3ef167..478174903 100644 --- a/android/app/src/main/res/values/strings.xml +++ b/android/app/src/main/res/values/strings.xml @@ -610,6 +610,9 @@ Enter a valid Mastodon username or web address Enter a valid Bluesky username or web address Add Place to OpenStreetMap + Leave Note to OpenStreetMap + Describe the issue, add details, or suggest an improvement. + Please enter a note text. Do you want to send it to all users? diff --git a/android/sdk/src/main/cpp/app/organicmaps/sdk/editor/Editor.cpp b/android/sdk/src/main/cpp/app/organicmaps/sdk/editor/Editor.cpp index 4efb0db64..433775a75 100644 --- a/android/sdk/src/main/cpp/app/organicmaps/sdk/editor/Editor.cpp +++ b/android/sdk/src/main/cpp/app/organicmaps/sdk/editor/Editor.cpp @@ -391,6 +391,12 @@ Java_app_organicmaps_sdk_editor_Editor_nativeCreateNote(JNIEnv * env, jclass cla g_editableMapObject, osm::Editor::NoteProblemType::General, jni::ToNativeString(env, text)); } +JNIEXPORT void JNICALL +Java_app_organicmaps_editor_Editor_nativeCreateStandaloneNote(JNIEnv * env, jclass clazz, jdouble lat, jdouble lon,jstring text) +{ + osm::Editor::Instance().CreateStandaloneNote(ms::LatLon(lat, lon), jni::ToNativeString(env, text)); +} + // static void nativePlaceDoesNotExist(String comment); JNIEXPORT void JNICALL Java_app_organicmaps_sdk_editor_Editor_nativePlaceDoesNotExist(JNIEnv * env, jclass clazz, jstring comment) diff --git a/libs/editor/osm_editor.cpp b/libs/editor/osm_editor.cpp index 6c9783a8e..73789240a 100644 --- a/libs/editor/osm_editor.cpp +++ b/libs/editor/osm_editor.cpp @@ -1184,6 +1184,12 @@ void Editor::CreateNote(ms::LatLon const & latLon, FeatureID const & fid, m_notes->CreateNote(latLon, sstr.str()); } +void Editor::CreateStandaloneNote(ms::LatLon const & latLon, std::string const & noteText) +{ + CHECK_THREAD_CHECKER(MainThreadChecker,("")); + m_notes->CreateNote(latLon, noteText + "\n"); +} + void Editor::MarkFeatureWithStatus(FeaturesContainer & editableFeatures, FeatureID const & fid, FeatureStatus status) { diff --git a/libs/editor/osm_editor.hpp b/libs/editor/osm_editor.hpp index da4006857..a44511964 100644 --- a/libs/editor/osm_editor.hpp +++ b/libs/editor/osm_editor.hpp @@ -170,6 +170,8 @@ public: Stats GetStats() const; + void CreateStandaloneNote(ms::LatLon const & latLon, std::string const & noteText); + // Don't use this function to determine if a feature in editor was created. // Use GetFeatureStatus(fid) instead. This function is used when a feature is // not yet saved, and we have to know if it was modified or created.