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: 197449800
Test: manual theme change continues to update footer colors.
Test: manual language change updates footer text.
Change-Id: If6fdb527eee244561dcd3975d859de93609662a5
(cherry picked from commit 70a328921b)
This commit is contained in:
Jeff DeCew
2021-08-13 16:15:37 -04:00
committed by Selim Cinek
parent a7d0e74359
commit 7846db0d32
2 changed files with 14 additions and 19 deletions

View File

@@ -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();

View File

@@ -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);
}