forked from organicmaps/organicmaps
[android][promo] promo after booking jni
This commit is contained in:
parent
ff6627d234
commit
abf5ddff23
6 changed files with 70 additions and 0 deletions
|
@ -810,6 +810,15 @@ void Framework::GetPromoCityGallery(JNIEnv * env, jobject policy,
|
|||
api->GetCityGallery(point, languages::GetCurrentNorm(), utm, onSuccess, onError);
|
||||
}
|
||||
|
||||
promo::AfterBooking Framework::GetPromoAfterBooking(JNIEnv * env, jobject policy)
|
||||
{
|
||||
auto api = NativeFramework()->GetPromoApi(ToNativeNetworkPolicy(env, policy));
|
||||
if (api == nullptr)
|
||||
return {};
|
||||
|
||||
return api->GetAfterBooking(languages::GetCurrentNorm());
|
||||
}
|
||||
|
||||
void Framework::LogLocalAdsEvent(local_ads::EventType type, double lat, double lon, uint16_t accuracy)
|
||||
{
|
||||
auto const & info = g_framework->GetPlacePageInfo();
|
||||
|
|
|
@ -224,6 +224,7 @@ namespace android
|
|||
m2::PointD const & point, UTM utm,
|
||||
promo::CityGalleryCallback const & onSuccess,
|
||||
promo::OnError const & onError);
|
||||
promo::AfterBooking GetPromoAfterBooking(JNIEnv * env, jobject policy);
|
||||
|
||||
void LogLocalAdsEvent(local_ads::EventType event, double lat, double lon, uint16_t accuracy);
|
||||
|
||||
|
|
|
@ -24,6 +24,8 @@ jclass g_promoClass = nullptr;
|
|||
jfieldID g_promoInstanceField = nullptr;
|
||||
jmethodID g_onGalleryReceived = nullptr;
|
||||
jmethodID g_onErrorReceived = nullptr;
|
||||
jclass g_afterBooking = nullptr;
|
||||
jmethodID g_afterBookingConstructor = nullptr;
|
||||
uint64_t g_lastRequestId = 0;
|
||||
|
||||
void PrepareClassRefs(JNIEnv * env)
|
||||
|
@ -59,6 +61,9 @@ void PrepareClassRefs(JNIEnv * env)
|
|||
g_onGalleryReceived = jni::GetMethodID(env, promoInstance, "onCityGalleryReceived",
|
||||
"(Lcom/mapswithme/maps/promo/PromoCityGallery;)V");
|
||||
g_onErrorReceived = jni::GetMethodID(env, promoInstance, "onErrorReceived", "()V");
|
||||
g_afterBooking = jni::GetGlobalClassRef(env, "com/mapswithme/maps/promo/PromoAfterBooking");
|
||||
g_afterBookingConstructor = jni::GetConstructorID(env, g_afterBooking,
|
||||
"(Ljava/lang/String;Ljava/lang/String;)V");
|
||||
}
|
||||
|
||||
void OnSuccess(uint64_t requestId, promo::CityGallery const & gallery)
|
||||
|
@ -136,4 +141,21 @@ Java_com_mapswithme_maps_promo_Promo_nativeRequestCityGallery(JNIEnv * env, jcla
|
|||
std::bind(OnSuccess, g_lastRequestId, _1),
|
||||
std::bind(OnError, g_lastRequestId));
|
||||
}
|
||||
|
||||
JNIEXPORT jobject JNICALL
|
||||
Java_com_mapswithme_maps_promo_Promo_nativeGetPromoAfterBooking(JNIEnv * env, jclass,
|
||||
jobject policy)
|
||||
{
|
||||
PrepareClassRefs(env);
|
||||
|
||||
auto const result = g_framework->GetPromoAfterBooking(env, policy);
|
||||
|
||||
if (result.IsEmpty())
|
||||
return nullptr;
|
||||
|
||||
jni::TScopedLocalRef promoUrl(env, jni::ToJavaString(env, result.m_promoUrl));
|
||||
jni::TScopedLocalRef pictureUrl(env, jni::ToJavaString(env, result.m_pictureUrl));
|
||||
jni::TScopedLocalRef author(env,
|
||||
env->NewObject(g_afterBooking, g_afterBookingConstructor, promoUrl.get(), pictureUrl.get()));
|
||||
}
|
||||
} // extern "C"
|
||||
|
|
|
@ -52,4 +52,6 @@ public enum Promo
|
|||
|
||||
public native void nativeRequestCityGallery(@NonNull NetworkPolicy policy,
|
||||
double lat, double lon, @UTM.UTMType int utm);
|
||||
@Nullable
|
||||
public static native PromoAfterBooking nativeGetPromoAfterBooking(@NonNull NetworkPolicy policy);
|
||||
}
|
||||
|
|
31
android/src/com/mapswithme/maps/promo/PromoAfterBooking.java
Normal file
31
android/src/com/mapswithme/maps/promo/PromoAfterBooking.java
Normal file
|
@ -0,0 +1,31 @@
|
|||
package com.mapswithme.maps.promo;
|
||||
|
||||
import android.support.annotation.NonNull;
|
||||
|
||||
public class PromoAfterBooking
|
||||
{
|
||||
@NonNull
|
||||
private String mGuidesUrl;
|
||||
@NonNull
|
||||
private String mImageUrl;
|
||||
|
||||
// Called from JNI.
|
||||
@SuppressWarnings("unused")
|
||||
public PromoAfterBooking(@NonNull String guidesUrl, @NonNull String imageUrl)
|
||||
{
|
||||
mGuidesUrl = guidesUrl;
|
||||
mImageUrl = imageUrl;
|
||||
}
|
||||
|
||||
@NonNull
|
||||
public String getGuidesUrl()
|
||||
{
|
||||
return mGuidesUrl;
|
||||
}
|
||||
|
||||
@NonNull
|
||||
public String getImageUrl()
|
||||
{
|
||||
return mImageUrl;
|
||||
}
|
||||
}
|
|
@ -46,6 +46,11 @@ struct CityGallery
|
|||
|
||||
struct AfterBooking
|
||||
{
|
||||
bool IsEmpty() const
|
||||
{
|
||||
return m_promoUrl.empty() || m_pictureUrl.empty();
|
||||
}
|
||||
|
||||
std::string m_promoUrl;
|
||||
std::string m_pictureUrl;
|
||||
};
|
||||
|
|
Loading…
Add table
Reference in a new issue