From afadfe7f83f667c9b2677966778921ee751b04b4 Mon Sep 17 00:00:00 2001 From: "r.kuznetsov" Date: Tue, 16 Oct 2018 17:24:17 +0300 Subject: [PATCH] Added RuTaxi banner checker --- android/jni/com/mapswithme/maps/Framework.cpp | 6 ++++++ android/src/com/mapswithme/maps/Framework.java | 2 ++ map/framework.cpp | 18 ++++++++++++++++++ map/framework.hpp | 1 + 4 files changed, 27 insertions(+) diff --git a/android/jni/com/mapswithme/maps/Framework.cpp b/android/jni/com/mapswithme/maps/Framework.cpp index df7aadccb4..2fb8caccc4 100644 --- a/android/jni/com/mapswithme/maps/Framework.cpp +++ b/android/jni/com/mapswithme/maps/Framework.cpp @@ -1749,6 +1749,12 @@ Java_com_mapswithme_maps_Framework_nativeHasMegafonDownloaderBanner(JNIEnv * env languages::GetCurrentNorm())); } +JNIEXPORT jboolean JNICALL +Java_com_mapswithme_maps_Framework_nativeHasRuTaxiCategoryBanner(JNIEnv * env, jclass) +{ + return static_cast(frm()->HasRuTaxiCategoryBanner()); +} + JNIEXPORT jstring JNICALL Java_com_mapswithme_maps_Framework_nativeGetMegafonDownloaderBannerUrl(JNIEnv * env, jclass) { diff --git a/android/src/com/mapswithme/maps/Framework.java b/android/src/com/mapswithme/maps/Framework.java index 350b8110bd..742758c0bd 100644 --- a/android/src/com/mapswithme/maps/Framework.java +++ b/android/src/com/mapswithme/maps/Framework.java @@ -475,6 +475,8 @@ public class Framework @NonNull public static native String nativeGetMegafonDownloaderBannerUrl(); + public static native boolean nativeHasRuTaxiCategoryBanner(); + public static native void nativeMakeCrash(); public static native void nativeValidatePurchase(@NonNull String serverId, diff --git a/map/framework.cpp b/map/framework.cpp index 6f6058b8b8..355b9f3b8d 100644 --- a/map/framework.cpp +++ b/map/framework.cpp @@ -3379,6 +3379,24 @@ void Framework::DisableAdProvider(ads::Banner::Type const type, ads::Banner::Pla m_adsEngine.get()->DisableAdProvider(type, place); } +bool Framework::HasRuTaxiCategoryBanner() +{ + auto const & purchase = GetPurchase(); + if (purchase && purchase->IsSubscriptionActive(SubscriptionType::RemoveAds)) + return false; + + auto const position = GetCurrentPosition(); + if (!position) + return false; + + auto const taxiEngine = GetTaxiEngine(platform::GetCurrentNetworkPolicy()); + if (!taxiEngine) + return false; + + auto const providers = taxiEngine->GetProvidersAtPos(MercatorBounds::ToLatLon(position.get())); + return std::find(providers.begin(), providers.end(), taxi::Provider::Rutaxi) != providers.end(); +} + void Framework::RunUITask(function fn) { GetPlatform().RunTask(Platform::Thread::Gui, move(fn)); diff --git a/map/framework.hpp b/map/framework.hpp index 2315f0bf87..840a0edcf2 100644 --- a/map/framework.hpp +++ b/map/framework.hpp @@ -355,6 +355,7 @@ public: ads::Engine const & GetAdsEngine() const; void DisableAdProvider(ads::Banner::Type const type, ads::Banner::Place const place); + bool HasRuTaxiCategoryBanner(); public: // SearchAPI::Delegate overrides: