Merge "Cache resources for unseen footer treatment" into udc-dev
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/FooterView.java b/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/FooterView.java
index 49f17b6..6bbeebf 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/FooterView.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/FooterView.java
@@ -17,8 +17,6 @@
package com.android.systemui.statusbar.notification.row;
import android.annotation.ColorInt;
-import android.annotation.DrawableRes;
-import android.annotation.StringRes;
import android.content.Context;
import android.content.res.ColorStateList;
import android.content.res.Configuration;
@@ -50,8 +48,8 @@
// Footer label
private TextView mSeenNotifsFooterTextView;
- private @StringRes int mSeenNotifsFilteredText;
- private int mUnlockIconSize;
+ private String mSeenNotifsFilteredText;
+ private Drawable mSeenNotifsFilteredIcon;
public FooterView(Context context, AttributeSet attrs) {
super(context, attrs);
@@ -87,30 +85,12 @@
mManageButton = findViewById(R.id.manage_text);
mSeenNotifsFooterTextView = findViewById(R.id.unlock_prompt_footer);
updateResources();
- updateText();
+ updateContent();
updateColors();
}
- public void setFooterLabelTextAndIcon(@StringRes int text, @DrawableRes int icon) {
- mSeenNotifsFilteredText = text;
- if (mSeenNotifsFilteredText != 0) {
- mSeenNotifsFooterTextView.setText(mSeenNotifsFilteredText);
- } else {
- mSeenNotifsFooterTextView.setText(null);
- }
- Drawable drawable;
- if (icon == 0) {
- drawable = null;
- } else {
- drawable = getResources().getDrawable(icon);
- drawable.setBounds(0, 0, mUnlockIconSize, mUnlockIconSize);
- }
- mSeenNotifsFooterTextView.setCompoundDrawablesRelative(drawable, null, null, null);
- updateFooterVisibilityMode();
- }
-
- private void updateFooterVisibilityMode() {
- if (mSeenNotifsFilteredText != 0) {
+ public void setFooterLabelVisible(boolean isVisible) {
+ if (isVisible) {
mManageButton.setVisibility(View.GONE);
mClearAllButton.setVisibility(View.GONE);
mSeenNotifsFooterTextView.setVisibility(View.VISIBLE);
@@ -141,10 +121,10 @@
return;
}
mShowHistory = showHistory;
- updateText();
+ updateContent();
}
- private void updateText() {
+ private void updateContent() {
if (mShowHistory) {
mManageButton.setText(mManageNotificationHistoryText);
mManageButton.setContentDescription(mManageNotificationHistoryText);
@@ -152,6 +132,9 @@
mManageButton.setText(mManageNotificationText);
mManageButton.setContentDescription(mManageNotificationText);
}
+ mSeenNotifsFooterTextView.setText(mSeenNotifsFilteredText);
+ mSeenNotifsFooterTextView
+ .setCompoundDrawablesRelative(mSeenNotifsFilteredIcon, null, null, null);
}
public boolean isHistoryShown() {
@@ -166,7 +149,7 @@
mClearAllButton.setContentDescription(
mContext.getString(R.string.accessibility_clear_all));
updateResources();
- updateText();
+ updateContent();
}
/**
@@ -190,8 +173,11 @@
mManageNotificationText = getContext().getString(R.string.manage_notifications_text);
mManageNotificationHistoryText = getContext()
.getString(R.string.manage_notifications_history_text);
- mUnlockIconSize = getResources()
+ int unlockIconSize = getResources()
.getDimensionPixelSize(R.dimen.notifications_unseen_footer_icon_size);
+ mSeenNotifsFilteredText = getContext().getString(R.string.unlock_to_see_notif_text);
+ mSeenNotifsFilteredIcon = getContext().getDrawable(R.drawable.ic_friction_lock_closed);
+ mSeenNotifsFilteredIcon.setBounds(0, 0, unlockIconSize, unlockIconSize);
}
@Override
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/NotificationStackScrollLayout.java b/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/NotificationStackScrollLayout.java
index 587783d..5c322d7 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/NotificationStackScrollLayout.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/NotificationStackScrollLayout.java
@@ -4746,13 +4746,7 @@
mFooterView.setVisible(visible, animate);
mFooterView.setSecondaryVisible(showDismissView, animate);
mFooterView.showHistory(showHistory);
- if (mHasFilteredOutSeenNotifications) {
- mFooterView.setFooterLabelTextAndIcon(
- R.string.unlock_to_see_notif_text,
- R.drawable.ic_friction_lock_closed);
- } else {
- mFooterView.setFooterLabelTextAndIcon(0, 0);
- }
+ mFooterView.setFooterLabelVisible(mHasFilteredOutSeenNotifications);
}
@ShadeViewRefactor(RefactorComponent.SHADE_VIEW)
diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/row/FooterViewTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/row/FooterViewTest.java
index 819a75b..90cb734 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/row/FooterViewTest.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/row/FooterViewTest.java
@@ -24,12 +24,12 @@
import static org.mockito.Mockito.mock;
+import android.testing.AndroidTestingRunner;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.TextView;
import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
import com.android.systemui.R;
import com.android.systemui.SysuiTestCase;
@@ -39,7 +39,7 @@
import org.junit.runner.RunWith;
@SmallTest
-@RunWith(AndroidJUnit4.class)
+@RunWith(AndroidTestingRunner.class)
public class FooterViewTest extends SysuiTestCase {
FooterView mView;
@@ -102,14 +102,21 @@
}
@Test
- public void testSetFooterLabelTextAndIcon() {
- mView.setFooterLabelTextAndIcon(
- R.string.unlock_to_see_notif_text,
- R.drawable.ic_friction_lock_closed);
+ public void testSetFooterLabelVisible() {
+ mView.setFooterLabelVisible(true);
assertThat(mView.findViewById(R.id.manage_text).getVisibility()).isEqualTo(View.GONE);
assertThat(mView.findSecondaryView().getVisibility()).isEqualTo(View.GONE);
assertThat(mView.findViewById(R.id.unlock_prompt_footer).getVisibility())
.isEqualTo(View.VISIBLE);
}
+
+ @Test
+ public void testSetFooterLabelInvisible() {
+ mView.setFooterLabelVisible(false);
+ assertThat(mView.findViewById(R.id.manage_text).getVisibility()).isEqualTo(View.VISIBLE);
+ assertThat(mView.findSecondaryView().getVisibility()).isEqualTo(View.VISIBLE);
+ assertThat(mView.findViewById(R.id.unlock_prompt_footer).getVisibility())
+ .isEqualTo(View.GONE);
+ }
}