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

Commit 70a32892 authored by Jeff DeCew's avatar Jeff DeCew
Browse files

FooterView color logic cleanup

Bug reports showed that when night mode eneded due to schedule, the text color was updated but not the background color.  Just from analyzing the code, this appears to be due to onConfigurationChanged not being called on the footer view, but NSSL.onUiModeChanged was calling into FooterView.setTextColor.  So logically, this seems like a likely fix, even though I can't repro the bug.

Fixes: 190135611
Test: manual theme change continues to update footer colors.
Test: manual language change updates footer text.
Change-Id: If6fdb527eee244561dcd3975d859de93609662a5
parent c20398b8
Loading
Loading
Loading
Loading
+13 −18
Original line number Diff line number Diff line
@@ -16,7 +16,6 @@

package com.android.systemui.statusbar.notification.row;

import android.annotation.ColorInt;
import android.content.Context;
import android.content.res.Configuration;
import android.content.res.Resources;
@@ -28,15 +27,12 @@ import com.android.systemui.statusbar.notification.stack.ExpandableViewState;
import com.android.systemui.statusbar.notification.stack.ViewState;

public class FooterView extends StackScrollerDecorView {
    private final int mClearAllTopPadding;
    private FooterViewButton mDismissButton;
    private FooterViewButton mManageButton;
    private boolean mShowHistory;

    public FooterView(Context context, AttributeSet attrs) {
        super(context, attrs);
        mClearAllTopPadding = context.getResources().getDimensionPixelSize(
                R.dimen.clear_all_padding_top);
    }

    @Override
@@ -55,11 +51,6 @@ public class FooterView extends StackScrollerDecorView {
        mManageButton = findViewById(R.id.manage_text);
    }

    public void setTextColor(@ColorInt int color) {
        mManageButton.setTextColor(color);
        mDismissButton.setTextColor(color);
    }

    public void setManageButtonClickListener(OnClickListener listener) {
        mManageButton.setOnClickListener(listener);
    }
@@ -95,21 +86,25 @@ public class FooterView extends StackScrollerDecorView {
    @Override
    protected void onConfigurationChanged(Configuration newConfig) {
        super.onConfigurationChanged(newConfig);
        int textColor = getResources().getColor(R.color.notif_pill_text);
        Resources.Theme theme = getContext().getTheme();
        mDismissButton.setBackground(
                getResources().getDrawable(R.drawable.notif_footer_btn_background, theme));
        mDismissButton.setTextColor(textColor);
        mManageButton.setBackground(
                getResources().getDrawable(R.drawable.notif_footer_btn_background, theme));
        mManageButton = findViewById(R.id.manage_text);
        updateColors();
        mDismissButton.setText(R.string.clear_all_notifications_text);
        mManageButton.setTextColor(textColor);
        mDismissButton.setContentDescription(
                mContext.getString(R.string.accessibility_clear_all));
        showHistory(mShowHistory);
    }

    /**
     * Update the text and background colors for the current color palette and night mode setting.
     */
    public void updateColors() {
        Resources.Theme theme = mContext.getTheme();
        int textColor = getResources().getColor(R.color.notif_pill_text, theme);
        mDismissButton.setBackground(theme.getDrawable(R.drawable.notif_footer_btn_background));
        mDismissButton.setTextColor(textColor);
        mManageButton.setBackground(theme.getDrawable(R.drawable.notif_footer_btn_background));
        mManageButton.setTextColor(textColor);
    }

    @Override
    public ExpandableViewState createExpandableViewState() {
        return new FooterViewState();
+1 −1
Original line number Diff line number Diff line
@@ -4231,7 +4231,7 @@ public class NotificationStackScrollLayout extends ViewGroup implements Dumpable
        final @ColorInt int textColor =
                Utils.getColorAttrDefaultColor(mContext, android.R.attr.textColorPrimary);
        mSectionsManager.setHeaderForegroundColor(textColor);
        mFooterView.setTextColor(textColor);
        mFooterView.updateColors();
        mEmptyShadeView.setTextColor(textColor);
    }