forked from organicmaps/organicmaps
[android] Check if feature is available for edit.
This commit is contained in:
parent
b854f46c26
commit
a52445c5dc
1 changed files with 14 additions and 5 deletions
|
@ -28,20 +28,26 @@ using osm::Editor;
|
|||
JNIEXPORT void JNICALL
|
||||
Java_com_mapswithme_maps_editor_Editor_nativeSetMetadata(JNIEnv * env, jclass clazz, jint type, jstring value)
|
||||
{
|
||||
auto & metadata = activeFeature()->GetMetadata();
|
||||
auto * feature = activeFeature();
|
||||
CHECK(feature, ("Feature is not editable!"));
|
||||
auto & metadata = feature->GetMetadata();
|
||||
metadata.Set(static_cast<Metadata::EType>(type), jni::ToNativeString(env, value));
|
||||
}
|
||||
|
||||
JNIEXPORT void JNICALL
|
||||
Java_com_mapswithme_maps_editor_Editor_nativeEditFeature(JNIEnv * env, jclass clazz, jstring street, jstring houseNumber)
|
||||
{
|
||||
Editor::Instance().EditFeature(*activeFeature(), jni::ToNativeString(env, street), jni::ToNativeString(env, houseNumber));
|
||||
auto * feature = activeFeature();
|
||||
CHECK(feature, ("Feature is not editable!"));
|
||||
Editor::Instance().EditFeature(*feature, jni::ToNativeString(env, street), jni::ToNativeString(env, houseNumber));
|
||||
}
|
||||
|
||||
JNIEXPORT jintArray JNICALL
|
||||
Java_com_mapswithme_maps_editor_Editor_nativeGetEditableMetadata(JNIEnv * env, jclass clazz)
|
||||
{
|
||||
auto const & editableTypes = Editor::Instance().EditableMetadataForType(*activeFeature());
|
||||
auto const * feature = activeFeature();
|
||||
auto const editableTypes = feature ? Editor::Instance().EditableMetadataForType(*feature)
|
||||
: vector<Metadata::EType>{};
|
||||
int const size = editableTypes.size();
|
||||
jintArray jEditableTypes = env->NewIntArray(size);
|
||||
jint * arr = env->GetIntArrayElements(jEditableTypes, 0);
|
||||
|
@ -55,19 +61,22 @@ Java_com_mapswithme_maps_editor_Editor_nativeGetEditableMetadata(JNIEnv * env, j
|
|||
JNIEXPORT jboolean JNICALL
|
||||
Java_com_mapswithme_maps_editor_Editor_nativeIsAddressEditable(JNIEnv * env, jclass clazz)
|
||||
{
|
||||
return Editor::Instance().IsAddressEditable(*activeFeature());
|
||||
auto const * feature = activeFeature();
|
||||
return feature && Editor::Instance().IsAddressEditable(*feature);
|
||||
}
|
||||
|
||||
JNIEXPORT jboolean JNICALL
|
||||
Java_com_mapswithme_maps_editor_Editor_nativeIsNameEditable(JNIEnv * env, jclass clazz)
|
||||
{
|
||||
return Editor::Instance().IsNameEditable(*activeFeature());
|
||||
auto const * feature = activeFeature();
|
||||
return feature && Editor::Instance().IsNameEditable(*feature);
|
||||
}
|
||||
|
||||
JNIEXPORT void JNICALL
|
||||
Java_com_mapswithme_maps_editor_Editor_nativeSetName(JNIEnv * env, jclass clazz, jstring name)
|
||||
{
|
||||
auto * feature = activeFeature();
|
||||
CHECK(feature, ("Feature is not editable!"));
|
||||
auto names = feature->GetNames();
|
||||
names.AddString(StringUtf8Multilang::DEFAULT_CODE, jni::ToNativeString(env, name));
|
||||
feature->SetNames(names);
|
||||
|
|
Loading…
Add table
Reference in a new issue