diff --git a/android/jni/com/mapswithme/maps/MapManager.cpp b/android/jni/com/mapswithme/maps/MapManager.cpp index 824fd9e196..bdbc805764 100644 --- a/android/jni/com/mapswithme/maps/MapManager.cpp +++ b/android/jni/com/mapswithme/maps/MapManager.cpp @@ -5,6 +5,7 @@ #include "coding/internal/file_data.hpp" #include "storage/storage.hpp" +#include "storage/storage_helpers.hpp" #include "base/thread_checker.hpp" @@ -96,6 +97,20 @@ Java_com_mapswithme_maps_downloader_MapManager_nativeHasSpaceForMigration(JNIEnv return g_framework->HasSpaceForMigration(); } +// static boolean nativeHasSpaceToDownloadAmount(String root); +JNIEXPORT jboolean JNICALL +Java_com_mapswithme_maps_downloader_MapManager_nativeHasSpaceToDownloadAmount(JNIEnv * env, jclass clazz, jlong size) +{ + return IsEnoughSpaceForDownload(size); +} + +// static boolean nativeHasSpaceForDownloadCountry(long size); +JNIEXPORT jboolean JNICALL +Java_com_mapswithme_maps_downloader_MapManager_nativeHasSpaceToDownloadCountry(JNIEnv * env, jclass clazz, jstring root) +{ + return IsEnoughSpaceForDownload(jni::ToNativeString(env, root), GetStorage()); +} + // static native boolean nativeIsLegacyMode(); JNIEXPORT jboolean JNICALL Java_com_mapswithme_maps_downloader_MapManager_nativeIsLegacyMode(JNIEnv * env, jclass clazz) diff --git a/android/src/com/mapswithme/maps/downloader/BottomPanel.java b/android/src/com/mapswithme/maps/downloader/BottomPanel.java index bb2c2bd7d2..76f4b66cac 100644 --- a/android/src/com/mapswithme/maps/downloader/BottomPanel.java +++ b/android/src/com/mapswithme/maps/downloader/BottomPanel.java @@ -23,13 +23,18 @@ class BottomPanel @Override public void onClick(View v) { - MapManager.nativeDownload(mFragment.getAdapter().getCurrentParent()); - - Statistics.INSTANCE.trackEvent(Statistics.EventName.DOWNLOADER_ACTION, - Statistics.params().add(Statistics.EventParam.ACTION, "download") - .add(Statistics.EventParam.FROM, "downloader") - .add("is_auto", "false") - .add("scenario", "download_group")); + MapManager.warn3gAndDownload(mFragment.getActivity(), mFragment.getAdapter().getCurrentParent(), new Runnable() + { + @Override + public void run() + { + Statistics.INSTANCE.trackEvent(Statistics.EventName.DOWNLOADER_ACTION, + Statistics.params().add(Statistics.EventParam.ACTION, "download") + .add(Statistics.EventParam.FROM, "downloader") + .add("is_auto", "false") + .add("scenario", "download_group")); + } + }); } }; @@ -38,13 +43,21 @@ class BottomPanel @Override public void onClick(View v) { - MapManager.nativeUpdate(mFragment.getAdapter().getCurrentParent()); + final String country = mFragment.getAdapter().getCurrentParent(); + MapManager.warnOn3g(mFragment.getActivity(), country, new Runnable() + { + @Override + public void run() + { + MapManager.nativeUpdate(country); - Statistics.INSTANCE.trackEvent(Statistics.EventName.DOWNLOADER_ACTION, - Statistics.params().add(Statistics.EventParam.ACTION, "update") - .add(Statistics.EventParam.FROM, "downloader") - .add("is_auto", "false") - .add("scenario", "update_all")); + Statistics.INSTANCE.trackEvent(Statistics.EventName.DOWNLOADER_ACTION, + Statistics.params().add(Statistics.EventParam.ACTION, "update") + .add(Statistics.EventParam.FROM, "downloader") + .add("is_auto", "false") + .add("scenario", "update_all")); + } + }); } }; diff --git a/android/src/com/mapswithme/maps/downloader/DownloaderAdapter.java b/android/src/com/mapswithme/maps/downloader/DownloaderAdapter.java index 1d159a2352..f077b3545a 100644 --- a/android/src/com/mapswithme/maps/downloader/DownloaderAdapter.java +++ b/android/src/com/mapswithme/maps/downloader/DownloaderAdapter.java @@ -174,19 +174,28 @@ class DownloaderAdapter extends RecyclerView.Adapter