diff --git a/android/MapsWithMePro/AndroidManifest.xml b/android/MapsWithMePro/AndroidManifest.xml index effd20b2b0..8de4324ee6 100644 --- a/android/MapsWithMePro/AndroidManifest.xml +++ b/android/MapsWithMePro/AndroidManifest.xml @@ -25,19 +25,52 @@ - + android:label="@string/app_name" + android:name="com.mapswithme.maps.MWMApplication"> + + + + + + + + + + + + + + + + + + + + + + + + + + + + NativeFramework()->AddBookmarksFile(jni::ToNativeString(env, path)); + } } diff --git a/android/jni/com/mapswithme/maps/bookmarks/data/BookmarkManager.cpp b/android/jni/com/mapswithme/maps/bookmarks/data/BookmarkManager.cpp index 0be31223e7..6b2ad4adf9 100644 --- a/android/jni/com/mapswithme/maps/bookmarks/data/BookmarkManager.cpp +++ b/android/jni/com/mapswithme/maps/bookmarks/data/BookmarkManager.cpp @@ -2,6 +2,9 @@ #include "../../../core/jni_helper.hpp" +#include "../../../../../../../coding/zip_creator.hpp" + + namespace { ::Framework * frm() { return g_framework->NativeFramework(); } @@ -83,5 +86,20 @@ extern "C" { BookmarkAndCategory const bac = frm()->GetBookmark(m2::PointD(px, py)); return jni::GetNewPoint(env, m2::PointI(bac.first, bac.second)); - } + } + + JNIEXPORT jstring JNICALL + Java_com_mapswithme_maps_bookmarks_data_BookmarkManager_saveToKMZFile( + JNIEnv * env, jobject thiz, jint catID, jstring tmpPath) + { + BookmarkCategory * pCat = frm()->GetBmCategory(catID); + if (pCat) + { + string const name = pCat->GetName(); + if (CreateZipFromPathDeflatedAndDefaultCompression(pCat->GetFileName(), jni::ToNativeString(env, tmpPath) + name + ".kmz")) + return jni::ToJavaString(env, name); + } + + return 0; + } } diff --git a/android/res/layout/bookmarks_list.xml b/android/res/layout/bookmarks_list.xml index e7e1b6dae9..045074fb3f 100644 --- a/android/res/layout/bookmarks_list.xml +++ b/android/res/layout/bookmarks_list.xml @@ -23,6 +23,13 @@ android:layout_height="wrap_content" android:text="@string/bookmarks" /> +