From 3632afb9f6538094a40403cf0a261ed744c09cae Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=90=D0=BB=D0=B5=D0=BA=D1=81=D0=B0=D0=BD=D0=B4=D1=80=20?= =?UTF-8?q?=D0=97=D0=B0=D1=86=D0=B5=D0=BF=D0=B8=D0=BD?= Date: Thu, 6 Feb 2020 14:05:39 +0300 Subject: [PATCH] [android] Added 'has place page info' checks everywhere before calling GetPlacePageInfo method --- android/jni/com/mapswithme/maps/Framework.cpp | 8 ++++++++ android/jni/com/mapswithme/maps/editor/Editor.cpp | 15 +++++++++++++++ .../mapswithme/maps/metrics/UserActionsLogger.cpp | 8 ++++++++ 3 files changed, 31 insertions(+) diff --git a/android/jni/com/mapswithme/maps/Framework.cpp b/android/jni/com/mapswithme/maps/Framework.cpp index 82f7e71fd9..dabe78c992 100644 --- a/android/jni/com/mapswithme/maps/Framework.cpp +++ b/android/jni/com/mapswithme/maps/Framework.cpp @@ -845,6 +845,10 @@ std::string Framework::GetPromoCityUrl(JNIEnv * env, jobject policy, jdouble lat void Framework::LogLocalAdsEvent(local_ads::EventType type, double lat, double lon, uint16_t accuracy) { + ::Framework * frm = g_framework->NativeFramework(); + if (!frm->HasPlacePageInfo()) + return; + auto const & info = g_framework->GetPlacePageInfo(); auto const & featureID = info.GetID(); auto const & mwmInfo = featureID.m_mwmId.GetInfo(); @@ -1818,6 +1822,10 @@ Java_com_mapswithme_maps_Framework_nativeIsDownloadedMapAtScreenCenter(JNIEnv *, JNIEXPORT jstring JNICALL Java_com_mapswithme_maps_Framework_nativeGetActiveObjectFormattedCuisine(JNIEnv * env, jclass) { + ::Framework * frm = g_framework->NativeFramework(); + if (!frm->HasPlacePageInfo()) + return {}; + return jni::ToJavaString(env, g_framework->GetPlacePageInfo().FormatCuisines()); } diff --git a/android/jni/com/mapswithme/maps/editor/Editor.cpp b/android/jni/com/mapswithme/maps/editor/Editor.cpp index b466601709..2dd7f710db 100644 --- a/android/jni/com/mapswithme/maps/editor/Editor.cpp +++ b/android/jni/com/mapswithme/maps/editor/Editor.cpp @@ -245,18 +245,30 @@ Java_com_mapswithme_maps_editor_Editor_nativeSaveEditedFeature(JNIEnv *, jclass) JNIEXPORT jboolean JNICALL Java_com_mapswithme_maps_editor_Editor_nativeShouldShowEditPlace(JNIEnv *, jclass) { + ::Framework * frm = g_framework->NativeFramework(); + if (!frm->HasPlacePageInfo()) + return static_cast(false); + return g_framework->GetPlacePageInfo().ShouldShowEditPlace(); } JNIEXPORT jboolean JNICALL Java_com_mapswithme_maps_editor_Editor_nativeShouldShowAddPlace(JNIEnv *, jclass) { + ::Framework * frm = g_framework->NativeFramework(); + if (!frm->HasPlacePageInfo()) + return static_cast(false); + return g_framework->GetPlacePageInfo().ShouldShowAddPlace(); } JNIEXPORT jboolean JNICALL Java_com_mapswithme_maps_editor_Editor_nativeShouldShowAddBusiness(JNIEnv *, jclass) { + ::Framework * frm = g_framework->NativeFramework(); + if (!frm->HasPlacePageInfo()) + return static_cast(false); + return g_framework->GetPlacePageInfo().ShouldShowAddBusiness(); } @@ -417,6 +429,9 @@ JNIEXPORT void JNICALL Java_com_mapswithme_maps_editor_Editor_nativeStartEdit(JNIEnv *, jclass) { ::Framework * frm = g_framework->NativeFramework(); + if (!frm->HasPlacePageInfo()) + return; + place_page::Info const & info = g_framework->GetPlacePageInfo(); CHECK(frm->GetEditableMapObject(info.GetID(), g_editableMapObject), ("Invalid feature in the place page.")); } diff --git a/android/jni/com/mapswithme/maps/metrics/UserActionsLogger.cpp b/android/jni/com/mapswithme/maps/metrics/UserActionsLogger.cpp index 95bfe5eef8..0bd2dad4bf 100644 --- a/android/jni/com/mapswithme/maps/metrics/UserActionsLogger.cpp +++ b/android/jni/com/mapswithme/maps/metrics/UserActionsLogger.cpp @@ -13,6 +13,10 @@ namespace { void RegisterEventIfPossible(eye::MapObject::Event::Type const type) { + ::Framework * frm = g_framework->NativeFramework(); + if (!frm->HasPlacePageInfo()) + return; + auto & info = g_framework->GetPlacePageInfo(); auto const userPos = g_framework->NativeFramework()->GetCurrentPosition(); @@ -21,6 +25,10 @@ void RegisterEventIfPossible(eye::MapObject::Event::Type const type) void RegisterTransitionToBooking() { + ::Framework * frm = g_framework->NativeFramework(); + if (!frm->HasPlacePageInfo()) + return; + auto & info = g_framework->GetPlacePageInfo(); eye::Eye::Event::TransitionToBooking(info.GetMercator()); }