Limit the number of concurrent notifs appear on screen
To avoid an ANR in notification history
Test: Manual; with an app with 10k recent notifications
Bug: 183712803
Change-Id: Ia1340accadf43620c7b5a2c94ca1032cfe49ea59
diff --git a/res/layout/notification_history_app_layout.xml b/res/layout/notification_history_app_layout.xml
index 8f66628..24a43c6 100644
--- a/res/layout/notification_history_app_layout.xml
+++ b/res/layout/notification_history_app_layout.xml
@@ -78,13 +78,14 @@
android:layout_height="1dp"
android:background="?android:attr/listDivider"/>
- <com.android.settings.notification.history.NotificationHistoryRecyclerView
- android:id="@+id/notification_list"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:clipChildren="true"
- android:clipToPadding="true"
- android:importantForAccessibility="yes"
- android:scrollbars="none"/>
+ <com.android.settings.notification.history.NotificationHistoryRecyclerView
+ android:id="@+id/notification_list"
+ android:layout_width="match_parent"
+ android:layout_height="500dp"
+ android:clipChildren="true"
+ android:clipToPadding="true"
+ android:clipToOutline="true"
+ android:importantForAccessibility="yes"
+ android:scrollbars="none"/>
</LinearLayout>
\ No newline at end of file
diff --git a/src/com/android/settings/notification/history/NotificationHistoryAdapter.java b/src/com/android/settings/notification/history/NotificationHistoryAdapter.java
index 0683ef7..dfa8a30 100644
--- a/src/com/android/settings/notification/history/NotificationHistoryAdapter.java
+++ b/src/com/android/settings/notification/history/NotificationHistoryAdapter.java
@@ -72,6 +72,11 @@
}
@Override
+ public long getItemId(int position) {
+ return mValues.get(position).hashCode();
+ }
+
+ @Override
public void onBindViewHolder(final @NonNull NotificationHistoryViewHolder holder,
int position) {
final HistoricalNotification hn = mValues.get(position);
diff --git a/src/com/android/settings/notification/history/NotificationHistoryRecyclerView.java b/src/com/android/settings/notification/history/NotificationHistoryRecyclerView.java
index 06c74bc..224c31d 100644
--- a/src/com/android/settings/notification/history/NotificationHistoryRecyclerView.java
+++ b/src/com/android/settings/notification/history/NotificationHistoryRecyclerView.java
@@ -40,7 +40,6 @@
ItemTouchHelper touchHelper = new ItemTouchHelper(
new DismissTouchHelper(0, ItemTouchHelper.START | ItemTouchHelper.END));
touchHelper.attachToRecyclerView(this);
- setNestedScrollingEnabled(false);
}
public void setOnItemSwipeDeleteListener(OnItemSwipeDeleteListener listener) {