Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 41a3197e authored by Edgar Wang's avatar Edgar Wang
Browse files

Allow customize icon of BannerMessagePreference before Android S

Synced with UX, we decided to allow user to customize the icon of
BannerMessage which could provide more ability to make UX consistency.

Bug: 205244609
Test: robotest
Change-Id: Iea29c48730c943c5436e42a1effd11fe3601356a
parent 22d2a97d
Loading
Loading
Loading
Loading
+15 −14
Original line number Diff line number Diff line
@@ -152,10 +152,22 @@ public class BannerMessagePreference extends Preference {
        mPositiveButtonInfo.mButton = (Button) holder.findViewById(R.id.banner_positive_btn);
        mNegativeButtonInfo.mButton = (Button) holder.findViewById(R.id.banner_negative_btn);

        if (IS_AT_LEAST_S) {
        final Resources.Theme theme = context.getTheme();
        @ColorInt final int accentColor =
                context.getResources().getColor(mAttentionLevel.getAccentColorResId(), theme);

        final ImageView iconView = (ImageView) holder.findViewById(R.id.banner_icon);
        if (iconView != null) {
            Drawable icon = getIcon();
            iconView.setImageDrawable(
                    icon == null
                            ? getContext().getDrawable(R.drawable.ic_warning)
                            : icon);
            iconView.setColorFilter(
                    new PorterDuffColorFilter(accentColor, PorterDuff.Mode.SRC_IN));
        }

        if (IS_AT_LEAST_S) {
            @ColorInt final int backgroundColor =
                    context.getResources().getColor(
                            mAttentionLevel.getBackgroundColorResId(), theme);
@@ -174,16 +186,6 @@ public class BannerMessagePreference extends Preference {
            subtitleView.setText(mSubtitle);
            subtitleView.setVisibility(mSubtitle == null ? View.GONE : View.VISIBLE);

            final ImageView iconView = (ImageView) holder.findViewById(R.id.banner_icon);
            if (iconView != null) {
                Drawable icon = getIcon();
                iconView.setImageDrawable(
                        icon == null
                                ? getContext().getDrawable(R.drawable.ic_warning)
                                : icon);
                iconView.setColorFilter(
                        new PorterDuffColorFilter(accentColor, PorterDuff.Mode.SRC_IN));
            }
        } else {
            holder.setDividerAllowedAbove(true);
            holder.setDividerAllowedBelow(true);
@@ -323,7 +325,6 @@ public class BannerMessagePreference extends Preference {
    /**
     * Sets the attention level. This will update the color theme of the preference.
     */
    @RequiresApi(Build.VERSION_CODES.S)
    public BannerMessagePreference setAttentionLevel(AttentionLevel attentionLevel) {
        if (attentionLevel == mAttentionLevel) {
            return this;