diff --git a/android/jni/com/mapswithme/maps/UserMarkHelper.cpp b/android/jni/com/mapswithme/maps/UserMarkHelper.cpp index b17dbbdd25..ba4491f18e 100644 --- a/android/jni/com/mapswithme/maps/UserMarkHelper.cpp +++ b/android/jni/com/mapswithme/maps/UserMarkHelper.cpp @@ -22,16 +22,14 @@ void InjectMetadata(JNIEnv * env, jclass const clazz, jobject const mapObject, f } } -jobject CreateBanner(JNIEnv * env, bool hasBanner, string const & bannerTitleId, - string const & bannerMessageId, string const & bannerIconId, - string const & bannerUrl) +jobject CreateBanner(JNIEnv * env, string const & bannerTitleId, string const & bannerMessageId, + string const & bannerIconId, string const & bannerUrl) { static jmethodID const bannerCtorId = jni::GetConstructorID( env, g_bannerClazz, - "(ZLjava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V"); + "(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V"); - return env->NewObject(g_bannerClazz, bannerCtorId, hasBanner, - jni::ToJavaString(env, bannerTitleId), + return env->NewObject(g_bannerClazz, bannerCtorId, jni::ToJavaString(env, bannerTitleId), jni::ToJavaString(env, bannerMessageId), jni::ToJavaString(env, bannerIconId), jni::ToJavaString(env, bannerUrl)); } @@ -49,8 +47,9 @@ jobject CreateMapObject(JNIEnv * env, int mapObjectType, string const & title, "(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;DDLjava/lang/" "String;Lcom/mapswithme/maps/bookmarks/data/Banner;)V"); - jobject jbanner = - CreateBanner(env, hasBanner, bannerTitleId, bannerMessageId, bannerIconId, bannerUrl); + jobject jbanner; + if (hasBanner) + jbanner = CreateBanner(env, bannerTitleId, bannerMessageId, bannerIconId, bannerUrl); jobject mapObject = env->NewObject(g_mapObjectClazz, ctorId, mapObjectType, jni::ToJavaString(env, title), @@ -70,9 +69,10 @@ jobject CreateMapObject(JNIEnv * env, place_page::Info const & info) static jmethodID const ctorId = jni::GetConstructorID( env, g_bookmarkClazz, "(IILjava/lang/String;Lcom/mapswithme/maps/bookmarks/data/Banner;)V"); - jobject jbanner = - CreateBanner(env, info.HasBanner(), info.GetBannerTitleId(), info.GetBannerMessageId(), - info.GetBannerIconId(), info.GetBannerUrl()); + jobject jbanner; + if (info.HasBanner()) + jbanner = CreateBanner(env, info.GetBannerTitleId(), info.GetBannerMessageId(), + info.GetBannerIconId(), info.GetBannerUrl()); auto const & bac = info.GetBookmarkAndCategory(); BookmarkCategory * cat = g_framework->NativeFramework()->GetBmCategory(bac.m_categoryIndex); diff --git a/android/src/com/mapswithme/maps/bookmarks/data/Banner.java b/android/src/com/mapswithme/maps/bookmarks/data/Banner.java index b0dd1acb24..84799969fc 100644 --- a/android/src/com/mapswithme/maps/bookmarks/data/Banner.java +++ b/android/src/com/mapswithme/maps/bookmarks/data/Banner.java @@ -2,12 +2,11 @@ package com.mapswithme.maps.bookmarks.data; import android.os.Parcel; import android.os.Parcelable; -import android.support.annotation.NonNull; import android.support.annotation.Nullable; public final class Banner implements Parcelable { - public static final Banner EMPTY = new Banner(false, "", "", "", ""); + public static final Banner EMPTY = new Banner("", "", "", ""); public static final Creator CREATOR = new Creator() { @@ -24,7 +23,6 @@ public final class Banner implements Parcelable } }; - private final boolean mIsActive; @Nullable private final String mTitle; @Nullable @@ -34,10 +32,9 @@ public final class Banner implements Parcelable @Nullable private final String mUrl; - public Banner(boolean isActive, @Nullable String title, @Nullable String message, + public Banner(@Nullable String title, @Nullable String message, @Nullable String iconUrl, @Nullable String url) { - mIsActive = isActive; mTitle = title; mMessage = message; //TODO: uncomment this when cpp banner implementation will be done @@ -48,18 +45,12 @@ public final class Banner implements Parcelable protected Banner(Parcel in) { - mIsActive = in.readByte() != 0; mTitle = in.readString(); mMessage = in.readString(); mIconUrl = in.readString(); mUrl = in.readString(); } - public boolean isActive() - { - return mIsActive; - } - @Nullable public String getTitle() { @@ -93,7 +84,6 @@ public final class Banner implements Parcelable @Override public void writeToParcel(Parcel dest, int flags) { - dest.writeByte((byte) (mIsActive ? 1 : 0)); dest.writeString(mTitle); dest.writeString(mMessage); dest.writeString(mIconUrl); diff --git a/android/src/com/mapswithme/maps/bookmarks/data/Bookmark.java b/android/src/com/mapswithme/maps/bookmarks/data/Bookmark.java index bb34a49e8c..44979ab664 100644 --- a/android/src/com/mapswithme/maps/bookmarks/data/Bookmark.java +++ b/android/src/com/mapswithme/maps/bookmarks/data/Bookmark.java @@ -4,6 +4,7 @@ import android.annotation.SuppressLint; import android.os.Parcel; import android.support.annotation.IntRange; import android.support.annotation.NonNull; +import android.support.annotation.Nullable; import com.mapswithme.maps.Framework; import com.mapswithme.util.Constants; @@ -19,7 +20,7 @@ public class Bookmark extends MapObject private double mMerY; Bookmark(@IntRange(from = 0) int categoryId, @IntRange(from = 0) int bookmarkId, String title, - @NonNull Banner banner) + @Nullable Banner banner) { super(BOOKMARK, title, "", "", 0, 0, "", banner); diff --git a/android/src/com/mapswithme/maps/bookmarks/data/MapObject.java b/android/src/com/mapswithme/maps/bookmarks/data/MapObject.java index 5a007863fe..31adbda518 100644 --- a/android/src/com/mapswithme/maps/bookmarks/data/MapObject.java +++ b/android/src/com/mapswithme/maps/bookmarks/data/MapObject.java @@ -4,6 +4,7 @@ import android.os.Parcel; import android.os.Parcelable; import android.support.annotation.IntDef; import android.support.annotation.NonNull; +import android.support.annotation.Nullable; import android.text.TextUtils; import java.lang.annotation.Retention; @@ -32,16 +33,17 @@ public class MapObject implements Parcelable protected String mAddress; protected Metadata mMetadata; protected String mApiId; - @NonNull + @Nullable protected Banner mBanner; public MapObject(@MapObjectType int mapObjectType, String title, String subtitle, String address, - double lat, double lon, String apiId, @NonNull Banner banner) + double lat, double lon, String apiId, @Nullable Banner banner) { this(mapObjectType, title, subtitle, address, lat, lon, new Metadata(), apiId, banner); } - public MapObject(@MapObjectType int mapObjectType, String title, String subtitle, String address, double lat, double lon, Metadata metadata, String apiId, @NonNull Banner banner) + public MapObject(@MapObjectType int mapObjectType, String title, String subtitle, String address, + double lat, double lon, Metadata metadata, String apiId, @Nullable Banner banner) { mMapObjectType = mapObjectType; mTitle = title; @@ -130,7 +132,7 @@ public class MapObject implements Parcelable return mApiId; } - @NonNull + @Nullable public Banner getBanner() { return mBanner; diff --git a/android/src/com/mapswithme/maps/widget/placepage/BannerController.java b/android/src/com/mapswithme/maps/widget/placepage/BannerController.java index 3843d999e8..ab3e5f85d5 100644 --- a/android/src/com/mapswithme/maps/widget/placepage/BannerController.java +++ b/android/src/com/mapswithme/maps/widget/placepage/BannerController.java @@ -63,17 +63,21 @@ final class BannerController implements View.OnClickListener mAdMarker = bannerView.findViewById(R.id.tv__banner); } - void updateData(@NonNull Banner banner) + void updateData(@Nullable Banner banner) { mBanner = banner; + boolean showBanner = banner != null && ConnectionState.isConnected() + && isShowcaseSwitchedOnLocal(); + UiUtils.showIf(showBanner, mFrame); + if (!showBanner) + return; + loadIcon(banner); if (mTitle != null) mTitle.setText(banner.getTitle()); if (mMessage != null) mMessage.setText(banner.getMessage()); - boolean showBanner = banner.isActive() && ConnectionState.isConnected() - && isShowcaseSwitchedOnLocal(); - UiUtils.showIf(showBanner, mFrame); + if (UiUtils.isLandscape(mFrame.getContext())) open(); } diff --git a/android/src/com/mapswithme/util/SharedPropertiesUtils.java b/android/src/com/mapswithme/util/SharedPropertiesUtils.java index f130826ca9..6b354be0dc 100644 --- a/android/src/com/mapswithme/util/SharedPropertiesUtils.java +++ b/android/src/com/mapswithme/util/SharedPropertiesUtils.java @@ -1,15 +1,15 @@ package com.mapswithme.util; +import android.preference.PreferenceManager; + import com.mapswithme.maps.MwmApplication; import com.mapswithme.maps.R; -import static com.mapswithme.maps.MwmApplication.prefs; - public final class SharedPropertiesUtils { public static boolean isShowcaseSwitchedOnLocal() { - return prefs() + return PreferenceManager.getDefaultSharedPreferences(MwmApplication.get()) .getBoolean(MwmApplication.get().getString(R.string.pref_showcase_switched_on), false); }