Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 04e109bf authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Automerger Merge Worker
Browse files

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

Change-Id: I3d4b28cb79c6c9c1640d41210d23780355a50ce8
parents 7d14d57b f81538b3
Loading
Loading
Loading
Loading
+2 −1
Original line number Original line Diff line number Diff line
@@ -699,7 +699,8 @@ public class NotificationEntryManager implements
                            entry,
                            entry,
                            oldImportances.get(entry.getKey()),
                            oldImportances.get(entry.getKey()),
                            oldAdjustments.get(entry.getKey()),
                            oldAdjustments.get(entry.getKey()),
                            NotificationUiAdjustment.extractFromNotificationEntry(entry));
                            NotificationUiAdjustment.extractFromNotificationEntry(entry),
                            mInflationCallback);
        }
        }


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