Hide header if no items present
Test: atest
Fixes: 157093918
Change-Id: If4f86ff71fc5e961e36e5485186d247546355174
diff --git a/src/com/android/settings/notification/AppBubbleListPreferenceController.java b/src/com/android/settings/notification/AppBubbleListPreferenceController.java
index 33842b6..31f185b 100644
--- a/src/com/android/settings/notification/AppBubbleListPreferenceController.java
+++ b/src/com/android/settings/notification/AppBubbleListPreferenceController.java
@@ -32,6 +32,7 @@
import android.widget.ImageView;
import androidx.preference.Preference;
+import androidx.preference.PreferenceCategory;
import androidx.preference.PreferenceViewHolder;
import com.android.settings.R;
@@ -55,6 +56,13 @@
}
@Override
+ public void updateState(Preference preference) {
+ // loading convos is async; hide header until we know we have conversations to show
+ preference.setVisible(false);
+ super.updateState(preference);
+ }
+
+ @Override
public void onResume(NotificationBackend.AppRow appRow,
@Nullable NotificationChannel channel, @Nullable NotificationChannelGroup group,
Drawable conversationDrawable,
@@ -134,6 +142,15 @@
return pref;
}
+ @Override
+ protected void populateList() {
+ super.populateList();
+ if (mPreference == null) {
+ return;
+ }
+ mPreference.setVisible(mPreference.getPreferenceCount() > 0);
+ }
+
/** Simple preference with a 'x' button at the end. */
@VisibleForTesting
public static class ConversationPreference extends Preference implements View.OnClickListener {
diff --git a/src/com/android/settings/notification/app/AppConversationListPreferenceController.java b/src/com/android/settings/notification/app/AppConversationListPreferenceController.java
index 20b16d7..2054a16 100644
--- a/src/com/android/settings/notification/app/AppConversationListPreferenceController.java
+++ b/src/com/android/settings/notification/app/AppConversationListPreferenceController.java
@@ -116,7 +116,7 @@
return R.string.conversations_category_title;
}
- private void populateList() {
+ protected void populateList() {
if (mPreference == null) {
return;
}