Merge "Fix NPE when ranking update causes reinflation" into rvc-dev am: f81538b396

Change-Id: I3d4b28cb79c6c9c1640d41210d23780355a50ce8
This commit is contained in:
TreeHugger Robot
2020-04-16 17:53:46 +00:00
committed by Automerger Merge Worker
3 changed files with 11 additions and 6 deletions

View File

@@ -699,7 +699,8 @@ public class NotificationEntryManager implements
entry,
oldImportances.get(entry.getKey()),
oldAdjustments.get(entry.getKey()),
NotificationUiAdjustment.extractFromNotificationEntry(entry));
NotificationUiAdjustment.extractFromNotificationEntry(entry),
mInflationCallback);
}
updateNotifications("updateNotificationRanking");

View File

@@ -51,5 +51,6 @@ public interface NotificationRowBinder {
NotificationEntry entry,
@Nullable Integer oldImportance,
NotificationUiAdjustment oldAdjustment,
NotificationUiAdjustment newAdjustment);
NotificationUiAdjustment newAdjustment,
NotificationRowContentBinder.InflationCallback callback);
}

View File

@@ -180,13 +180,14 @@ public class NotificationRowBinderImpl implements NotificationRowBinder {
NotificationEntry entry,
@Nullable Integer oldImportance,
NotificationUiAdjustment oldAdjustment,
NotificationUiAdjustment newAdjustment) {
NotificationUiAdjustment newAdjustment,
NotificationRowContentBinder.InflationCallback callback) {
if (NotificationUiAdjustment.needReinflate(oldAdjustment, newAdjustment)) {
if (entry.rowExists()) {
ExpandableNotificationRow row = entry.getRow();
row.reset();
updateRow(entry, row);
inflateContentViews(entry, row, null /* callback */);
inflateContentViews(entry, row, callback);
} else {
// Once the RowInflaterTask is done, it will pick up the updated entry, so
// no-op here.
@@ -221,7 +222,7 @@ public class NotificationRowBinderImpl implements NotificationRowBinder {
private void inflateContentViews(
NotificationEntry entry,
ExpandableNotificationRow row,
NotificationRowContentBinder.InflationCallback inflationCallback) {
@Nullable NotificationRowContentBinder.InflationCallback inflationCallback) {
final boolean useIncreasedCollapsedHeight =
mMessagingUtil.isImportantMessaging(entry.getSbn(), entry.getImportance());
final boolean isLowPriority = entry.isAmbient();
@@ -238,7 +239,9 @@ public class NotificationRowBinderImpl implements NotificationRowBinder {
mRowContentBindStage.requestRebind(entry, en -> {
row.setUsesIncreasedCollapsedHeight(useIncreasedCollapsedHeight);
row.setIsLowPriority(isLowPriority);
inflationCallback.onAsyncInflationFinished(en);
if (inflationCallback != null) {
inflationCallback.onAsyncInflationFinished(en);
}
});
}