From a8535737ecfff4ef61d83f218dac7918cf81972a Mon Sep 17 00:00:00 2001 From: alexzatsepin Date: Fri, 31 Mar 2017 16:20:01 +0300 Subject: [PATCH] [andorid] Added animation to CTA button in banner [android] Changed handling clicks in banner logic --- android/res/layout/place_page_banner.xml | 1 + .../mapswithme/maps/ads/FacebookNativeAd.java | 1 - .../mapswithme/maps/ads/MyTargetNativeAd.java | 4 +++- .../maps/bookmarks/data/MapObject.java | 4 ++-- .../maps/widget/placepage/BannerController.java | 17 ++++++++++++++--- 5 files changed, 20 insertions(+), 7 deletions(-) diff --git a/android/res/layout/place_page_banner.xml b/android/res/layout/place_page_banner.xml index 3563318a38..b356bfc328 100644 --- a/android/res/layout/place_page_banner.xml +++ b/android/res/layout/place_page_banner.xml @@ -10,6 +10,7 @@ android:paddingTop="@dimen/margin_half" android:background="?bannerBackground" android:clipToPadding="false" + android:clickable="true" tools:layout_height="wrap_content"> clickableViews = new ArrayList<>(); - clickableViews.add(bannerView.findViewById(R.id.tv__banner_title)); clickableViews.add(bannerView.findViewById(R.id.tv__action_small)); clickableViews.add(bannerView.findViewById(R.id.tv__action_large)); mAd.registerViewForInteraction(bannerView, clickableViews); diff --git a/android/src/com/mapswithme/maps/ads/MyTargetNativeAd.java b/android/src/com/mapswithme/maps/ads/MyTargetNativeAd.java index 1171da3086..b81de558fc 100644 --- a/android/src/com/mapswithme/maps/ads/MyTargetNativeAd.java +++ b/android/src/com/mapswithme/maps/ads/MyTargetNativeAd.java @@ -4,6 +4,7 @@ import android.support.annotation.NonNull; import android.view.View; import android.widget.ImageView; +import com.mapswithme.maps.R; import com.my.target.ads.CustomParams; import com.my.target.nativeads.NativeAd; import com.my.target.nativeads.banners.NativePromoBanner; @@ -67,7 +68,8 @@ class MyTargetNativeAd extends CachedMwmNativeAd @Override public void registerView(@NonNull View bannerView) { - mAd.registerView(bannerView); + mAd.registerView(bannerView.findViewById(R.id.tv__action_small)); + mAd.registerView(bannerView.findViewById(R.id.tv__action_large)); } @NonNull diff --git a/android/src/com/mapswithme/maps/bookmarks/data/MapObject.java b/android/src/com/mapswithme/maps/bookmarks/data/MapObject.java index a65112c28b..76c67c2669 100644 --- a/android/src/com/mapswithme/maps/bookmarks/data/MapObject.java +++ b/android/src/com/mapswithme/maps/bookmarks/data/MapObject.java @@ -155,8 +155,8 @@ public class MapObject implements Parcelable { List banners = new ArrayList<>(); banners.add(getBanner()); -/* Banner banner = new Banner("1", 2); - banners.add(banner);*/ +// Banner banner = new Banner("1", 2); +// banners.add(banner); return banners; } diff --git a/android/src/com/mapswithme/maps/widget/placepage/BannerController.java b/android/src/com/mapswithme/maps/widget/placepage/BannerController.java index 4025a1d1d2..3a04a9c33d 100644 --- a/android/src/com/mapswithme/maps/widget/placepage/BannerController.java +++ b/android/src/com/mapswithme/maps/widget/placepage/BannerController.java @@ -1,9 +1,9 @@ package com.mapswithme.maps.widget.placepage; +import android.animation.ObjectAnimator; import android.content.res.Resources; import android.support.annotation.NonNull; import android.support.annotation.Nullable; -import android.text.TextUtils; import android.view.MotionEvent; import android.view.View; import android.view.ViewGroup; @@ -94,6 +94,18 @@ final class BannerController loader.setAdListener(new MyNativeAdsListener()); mAdsLoader = loader; mAdTracker = tracker; + mFrame.setOnClickListener(new View.OnClickListener() + { + @Override + public void onClick(View v) + { + View view = mOpened ? mFrame.findViewById(R.id.tv__action_large) + : mFrame.findViewById(R.id.tv__action_small); + ObjectAnimator anim = ObjectAnimator.ofFloat(view, "alpha", 0.3f, 1f); + anim.setDuration(700); + anim.start(); + } + }); } private void setErrorStatus(boolean value) @@ -248,8 +260,7 @@ final class BannerController boolean isActionButtonTouched(@NonNull MotionEvent event) { - return isTouched(mActionSmall, event) || isTouched(mActionLarge, event) - || isTouched(mTitle, event); + return isTouched(mFrame, event); } interface BannerListener