forked from organicmaps/organicmaps
[android] Added removal button in PP banner
This commit is contained in:
parent
f48d58f856
commit
799cf4e476
13 changed files with 138 additions and 48 deletions
|
@ -1,7 +1,7 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<shape xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:shape="rectangle">
|
||||
<solid android:color="@color/bg_banner_button"/>
|
||||
<solid android:color="@color/black_12"/>
|
||||
<corners android:radius="@dimen/cardview_default_radius"/>
|
||||
<padding
|
||||
android:left="@dimen/margin_eighth"
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
<shape xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:shape="rectangle">
|
||||
<corners android:radius="@dimen/placepage_banner_small_action_corner"/>
|
||||
<solid android:color="@color/bg_banner_button"/>
|
||||
<solid android:color="@color/black_12"/>
|
||||
<padding
|
||||
android:left="@dimen/margin_half"
|
||||
android:right="@dimen/margin_half"
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
<shape xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:shape="rectangle">
|
||||
<corners android:radius="@dimen/placepage_banner_small_action_corner"/>
|
||||
<solid android:color="@color/bg_banner_button_night"/>
|
||||
<solid android:color="@color/white_12"/>
|
||||
<padding
|
||||
android:left="@dimen/margin_half"
|
||||
android:right="@dimen/margin_half"
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<shape xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:shape="rectangle">
|
||||
<solid android:color="@color/bg_banner_button_night"/>
|
||||
<solid android:color="@color/white_12"/>
|
||||
<corners android:radius="@dimen/cardview_default_radius"/>
|
||||
<padding
|
||||
android:left="@dimen/margin_eighth"
|
||||
|
|
|
@ -1,7 +1,18 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<shape
|
||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:shape="rectangle">
|
||||
<solid android:color="@color/bg_banner_button"/>
|
||||
<corners android:radius="@dimen/cardview_default_radius"/>
|
||||
</shape>
|
||||
<selector
|
||||
xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<item android:state_pressed="true">
|
||||
<shape
|
||||
android:shape="rectangle">
|
||||
<solid android:color="@color/black_24"/>
|
||||
<corners android:radius="@dimen/button_small_corner_radius"/>
|
||||
</shape>
|
||||
</item>
|
||||
<item>
|
||||
<shape
|
||||
android:shape="rectangle">
|
||||
<solid android:color="@color/black_12"/>
|
||||
<corners android:radius="@dimen/button_small_corner_radius"/>
|
||||
</shape>
|
||||
</item>
|
||||
</selector>
|
||||
|
|
|
@ -1,7 +1,18 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<shape
|
||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:shape="rectangle">
|
||||
<solid android:color="@color/bg_banner_button_night"/>
|
||||
<corners android:radius="@dimen/cardview_default_radius"/>
|
||||
</shape>
|
||||
<selector
|
||||
xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<item android:state_pressed="true">
|
||||
<shape
|
||||
android:shape="rectangle">
|
||||
<solid android:color="@color/white_24"/>
|
||||
<corners android:radius="@dimen/cardview_default_radius"/>
|
||||
</shape>
|
||||
</item>
|
||||
<item>
|
||||
<shape
|
||||
android:shape="rectangle">
|
||||
<solid android:color="@color/white_12"/>
|
||||
<corners android:radius="@dimen/cardview_default_radius"/>
|
||||
</shape>
|
||||
</item>
|
||||
</selector>
|
||||
|
|
18
android/res/drawable/bg_pp_banner_remove_button.xml
Normal file
18
android/res/drawable/bg_pp_banner_remove_button.xml
Normal file
|
@ -0,0 +1,18 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<selector
|
||||
xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<item android:state_pressed="true">
|
||||
<shape
|
||||
android:shape="rectangle">
|
||||
<solid android:color="@color/black_20"/>
|
||||
<corners android:radius="@dimen/cardview_default_radius"/>
|
||||
</shape>
|
||||
</item>
|
||||
<item>
|
||||
<shape
|
||||
android:shape="rectangle">
|
||||
<solid android:color="@color/black_8"/>
|
||||
<corners android:radius="@dimen/cardview_default_radius"/>
|
||||
</shape>
|
||||
</item>
|
||||
</selector>
|
18
android/res/drawable/bg_pp_banner_remove_button_night.xml
Normal file
18
android/res/drawable/bg_pp_banner_remove_button_night.xml
Normal file
|
@ -0,0 +1,18 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<selector
|
||||
xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<item android:state_pressed="true">
|
||||
<shape
|
||||
android:shape="rectangle">
|
||||
<solid android:color="@color/white_20"/>
|
||||
<corners android:radius="@dimen/cardview_default_radius"/>
|
||||
</shape>
|
||||
</item>
|
||||
<item>
|
||||
<shape
|
||||
android:shape="rectangle">
|
||||
<solid android:color="@color/white_8"/>
|
||||
<corners android:radius="@dimen/cardview_default_radius"/>
|
||||
</shape>
|
||||
</item>
|
||||
</selector>
|
|
@ -97,25 +97,52 @@
|
|||
android:layout_toRightOf="@+id/iv__banner_icon"
|
||||
android:layout_toEndOf="@+id/iv__banner_icon"/>
|
||||
</RelativeLayout>
|
||||
<TextView
|
||||
android:id="@+id/tv__action_large"
|
||||
<LinearLayout
|
||||
android:id="@+id/action_container"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:minHeight="@dimen/placepage_banner_button_height"
|
||||
android:orientation="horizontal"
|
||||
android:layout_marginLeft="@dimen/margin_half_plus"
|
||||
android:layout_marginRight="@dimen/margin_half_plus"
|
||||
android:layout_below="@id/data_frame"
|
||||
android:textAppearance="@style/MwmTextAppearance.Body3"
|
||||
android:textAllCaps="true"
|
||||
android:background="?bannerButtonBackground"
|
||||
android:foreground="?clickableBackground"
|
||||
android:gravity="center"
|
||||
android:visibility="gone"
|
||||
tools:text="Заказать"
|
||||
tools:visibility="visible"
|
||||
android:layout_marginBottom="@dimen/margin_half"
|
||||
android:fontFamily="@string/robotoMedium"
|
||||
tools:targetApi="jelly_bean"/>
|
||||
android:layout_below="@id/data_frame">
|
||||
<TextView
|
||||
android:id="@+id/tv__action_remove"
|
||||
android:layout_width="@dimen/dp_0"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_weight="1"
|
||||
android:layout_marginRight="@dimen/margin_half"
|
||||
android:layout_marginEnd="@dimen/margin_half"
|
||||
android:minHeight="@dimen/placepage_banner_button_height"
|
||||
android:textAppearance="@style/MwmTextAppearance.Body3"
|
||||
android:textAllCaps="true"
|
||||
android:background="?bannerRemoveButtonBackground"
|
||||
android:gravity="center"
|
||||
android:visibility="visible"
|
||||
android:text="String is needed"
|
||||
android:ellipsize="end"
|
||||
android:singleLine="true"
|
||||
tools:visibility="visible"
|
||||
android:fontFamily="@string/robotoMedium"
|
||||
tools:targetApi="jelly_bean"/>
|
||||
<TextView
|
||||
android:id="@+id/tv__action_large"
|
||||
android:layout_width="@dimen/dp_0"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_weight="1"
|
||||
android:minHeight="@dimen/placepage_banner_button_height"
|
||||
android:textAppearance="@style/MwmTextAppearance.Body3"
|
||||
android:textAllCaps="true"
|
||||
android:background="?bannerButtonBackground"
|
||||
android:gravity="center"
|
||||
android:visibility="visible"
|
||||
android:ellipsize="end"
|
||||
android:singleLine="true"
|
||||
tools:text="Заказать"
|
||||
tools:visibility="visible"
|
||||
android:fontFamily="@string/robotoMedium"
|
||||
tools:targetApi="jelly_bean"/>
|
||||
</LinearLayout>
|
||||
<ImageButton
|
||||
android:id="@+id/remove_btn"
|
||||
android:layout_width="@dimen/placepage_banner_remove_button_size"
|
||||
|
|
|
@ -23,6 +23,7 @@
|
|||
<color name="black_8">#14000000</color> <!-- 8% black -->
|
||||
<color name="black_11">#1C000000</color> <!-- 11% black -->
|
||||
<color name="black_12">#1E000000</color> <!-- 12% black -->
|
||||
<color name="black_20">#33000000</color> <!-- 20% black -->
|
||||
<color name="black_24">#3D000000</color> <!-- 24% black -->
|
||||
<color name="black_38">#61000000</color> <!-- 38% black -->
|
||||
<color name="black_60">#99000000</color> <!-- 60% black -->
|
||||
|
@ -33,6 +34,7 @@
|
|||
<color name="white_8">#14FFFFFF</color> <!-- 8% white -->
|
||||
<color name="white_11">#1CFFFFFF</color> <!-- 11% white -->
|
||||
<color name="white_12">#1EFFFFFF</color> <!-- 12% white -->
|
||||
<color name="white_20">#33FFFFFF</color> <!-- 20% white -->
|
||||
<color name="white_24">#3DFFFFFF</color> <!-- 24% white -->
|
||||
<color name="white_38">#61FFFFFF</color> <!-- 38% white -->
|
||||
<color name="white_60">#99FFFFFF</color> <!-- 60% white -->
|
||||
|
@ -169,13 +171,8 @@
|
|||
<color name="bg_banner_color_night">#FF484C50</color>
|
||||
<color name="text_banner_color">#28000000</color>
|
||||
<color name="text_banner_color_night">#28FFFFFF</color>
|
||||
<color name="bg_banner_button">@color/black_12</color>
|
||||
<color name="bg_banner_button_night">@color/white_12</color>
|
||||
<color name="text_ads_color">#FFFFFBF2</color>
|
||||
<color name="text_ads_color_night">#FFFFFBF2</color>
|
||||
<color name="banner_action_btn_start_anim_night">#FF888A82</color>
|
||||
<color name="banner_action_btn_end_anim">#FFD9D2C3</color>
|
||||
<color name="banner_action_btn_end_anim_night">#FF71736C</color>
|
||||
<color name="megafon_button">@color/bg_brand_partner19</color>
|
||||
<color name="megafon_button_pressed">@color/bg_brand_partner19_pressed</color>
|
||||
|
||||
|
|
|
@ -74,6 +74,7 @@
|
|||
<attr name="bannerBackground" format="reference"/>
|
||||
<attr name="bannerButtonBackground" format="reference"/>
|
||||
<attr name="bannerButtonBackgroundColor" format="color"/>
|
||||
<attr name="bannerRemoveButtonBackground" format="reference"/>
|
||||
<attr name="adsBackground" format="reference"/>
|
||||
<attr name="adsText" format="color"/>
|
||||
<attr name="adsActionBackground" format="reference"/>
|
||||
|
|
|
@ -92,7 +92,8 @@
|
|||
<item name="bannerText">@color/text_banner_color</item>
|
||||
<item name="bannerBackground">@drawable/bg_pp_banner</item>
|
||||
<item name="bannerButtonBackground">@drawable/bg_pp_banner_large_button</item>
|
||||
<item name="bannerButtonBackgroundColor">@color/bg_banner_button</item>
|
||||
<item name="bannerButtonBackgroundColor">@color/black_12</item>
|
||||
<item name="bannerRemoveButtonBackground">@drawable/bg_pp_banner_remove_button</item>
|
||||
<item name="adsBackground">@drawable/bg_ads</item>
|
||||
<item name="adsText">@color/text_ads_color</item>
|
||||
<item name="adsActionBackground">@drawable/bg_ads_action</item>
|
||||
|
@ -228,7 +229,8 @@
|
|||
<item name="bannerText">@color/text_banner_color_night</item>
|
||||
<item name="bannerBackground">@drawable/bg_pp_banner_night</item>
|
||||
<item name="bannerButtonBackground">@drawable/bg_pp_banner_large_button_night</item>
|
||||
<item name="bannerButtonBackgroundColor">@color/bg_banner_button_night</item>
|
||||
<item name="bannerButtonBackgroundColor">@color/white_12</item>
|
||||
<item name="bannerRemoveButtonBackground">@drawable/bg_pp_banner_remove_button_night</item>
|
||||
<item name="adsBackground">@drawable/bg_ads_night</item>
|
||||
<item name="adsText">@color/text_ads_color_night</item>
|
||||
<item name="adsActionBackground">@drawable/bg_ads_action_night</item>
|
||||
|
|
|
@ -88,6 +88,9 @@ final class BannerController
|
|||
private TextView mActionSmall;
|
||||
@SuppressWarnings("NullableProblems")
|
||||
@NonNull
|
||||
private View mActionContainer;
|
||||
@SuppressWarnings("NullableProblems")
|
||||
@NonNull
|
||||
private TextView mActionLarge;
|
||||
@SuppressWarnings("NullableProblems")
|
||||
@NonNull
|
||||
|
@ -136,7 +139,10 @@ final class BannerController
|
|||
mTitle = mBannerView.findViewById(R.id.tv__banner_title);
|
||||
mMessage = mBannerView.findViewById(R.id.tv__banner_message);
|
||||
mActionSmall = mBannerView.findViewById(R.id.tv__action_small);
|
||||
mActionLarge = mBannerView.findViewById(R.id.tv__action_large);
|
||||
mActionContainer = mBannerView.findViewById(R.id.action_container);
|
||||
mActionLarge = mActionContainer.findViewById(R.id.tv__action_large);
|
||||
View actionRemove = mActionContainer.findViewById(R.id.tv__action_remove);
|
||||
actionRemove.setOnClickListener(v -> handleAdsRemoval());
|
||||
mAdChoices = mBannerView.findViewById(R.id.ad_choices_icon);
|
||||
mAdChoices.setOnClickListener(v -> handlePrivacyInfoUrl());
|
||||
mAdChoicesLabel = mBannerView.findViewById(R.id.ad_choices_label);
|
||||
|
@ -182,18 +188,18 @@ final class BannerController
|
|||
if ((mAdsLoader.isAdLoading() || hasErrorOccurred())
|
||||
&& mCurrentAd == null)
|
||||
{
|
||||
UiUtils.hide(mIcon, mTitle, mMessage, mActionSmall, mActionLarge, mAdChoices, mAdChoicesLabel,
|
||||
mAdRemovalButton);
|
||||
UiUtils.hide(mIcon, mTitle, mMessage, mActionSmall, mActionContainer, mAdChoices,
|
||||
mAdChoicesLabel, mAdRemovalButton);
|
||||
}
|
||||
else if (mCurrentAd != null)
|
||||
{
|
||||
UiUtils.showIf(mCurrentAd.getType().showAdChoiceIcon(), mAdChoices);
|
||||
UiUtils.show(mIcon, mTitle, mMessage, mActionSmall, mActionLarge, mAdChoicesLabel,
|
||||
UiUtils.show(mIcon, mTitle, mMessage, mActionSmall, mActionContainer, mAdChoicesLabel,
|
||||
mAdRemovalButton);
|
||||
if (mOpened)
|
||||
UiUtils.hide(mActionSmall);
|
||||
else
|
||||
UiUtils.hide(mActionLarge, mIcon);
|
||||
UiUtils.hide(mActionContainer, mIcon);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -351,17 +357,16 @@ final class BannerController
|
|||
|
||||
private void animateActionButton()
|
||||
{
|
||||
View view = mOpened ? mBannerView.findViewById(R.id.tv__action_large)
|
||||
: mBannerView.findViewById(R.id.tv__action_small);
|
||||
View view = mOpened ? mActionLarge : mActionSmall;
|
||||
ObjectAnimator animator;
|
||||
if (mOpened)
|
||||
{
|
||||
Context context = mBannerView.getContext();
|
||||
Resources res = context.getResources();
|
||||
int colorFrom = ThemeUtils.isNightTheme() ? res.getColor(R.color.banner_action_btn_start_anim_night)
|
||||
: res.getColor(R.color.bg_banner_button);
|
||||
int colorTo = ThemeUtils.isNightTheme() ? res.getColor(R.color.banner_action_btn_end_anim_night)
|
||||
: res.getColor(R.color.banner_action_btn_end_anim);
|
||||
int colorFrom = ThemeUtils.isNightTheme() ? res.getColor(R.color.white_12)
|
||||
: res.getColor(R.color.black_12);
|
||||
int colorTo = ThemeUtils.isNightTheme() ? res.getColor(R.color.white_24)
|
||||
: res.getColor(R.color.black_24);
|
||||
animator = ObjectAnimator.ofObject(view, "backgroundColor", new ArgbEvaluator(),
|
||||
colorFrom, colorTo, colorFrom);
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue