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

Commit 2c2e3604 authored by Kevin Han's avatar Kevin Han Committed by Automerger Merge Worker
Browse files

Merge "Don't throw exception for inflation after removal" into rvc-dev am:...

Merge "Don't throw exception for inflation after removal" into rvc-dev am: ae720053 am: c2e9ce12

Change-Id: Ib3887e3e1aa1f9640158416b039af6c7305e6eb0
parents 2bd5def3 c2e9ce12
Loading
Loading
Loading
Loading
+7 −2
Original line number Original line Diff line number Diff line
@@ -18,6 +18,7 @@ package com.android.systemui.statusbar.notification.row;


import android.annotation.MainThread;
import android.annotation.MainThread;
import android.util.ArrayMap;
import android.util.ArrayMap;
import android.util.Log;


import androidx.annotation.NonNull;
import androidx.annotation.NonNull;


@@ -66,8 +67,10 @@ public abstract class BindStage<Params> extends BindRequester {
    public final Params getStageParams(@NonNull NotificationEntry entry) {
    public final Params getStageParams(@NonNull NotificationEntry entry) {
        Params params = mContentParams.get(entry);
        Params params = mContentParams.get(entry);
        if (params == null) {
        if (params == null) {
            throw new IllegalStateException(
            // TODO: This should throw an exception but there are some cases of re-entrant calls
                    String.format("Entry does not have any stage parameters. key: %s",
            // in NotificationEntryManager (e.g. b/155324756) that cause removal in update that
            // lead to inflation after the notification is "removed".
            Log.wtf(TAG, String.format("Entry does not have any stage parameters. key: %s",
                            entry.getKey()));
                            entry.getKey()));
        }
        }
        return params;
        return params;
@@ -92,6 +95,8 @@ public abstract class BindStage<Params> extends BindRequester {
     */
     */
    protected abstract Params newStageParams();
    protected abstract Params newStageParams();


    private static final String TAG = "BindStage";

    /**
    /**
     * Interface for callback.
     * Interface for callback.
     */
     */
+3 −5
Original line number Original line Diff line number Diff line
@@ -115,6 +115,9 @@ public final class NotifBindPipeline {
        mLogger.logManagedRow(entry.getKey());
        mLogger.logManagedRow(entry.getKey());


        final BindEntry bindEntry = getBindEntry(entry);
        final BindEntry bindEntry = getBindEntry(entry);
        if (bindEntry == null) {
            return;
        }
        bindEntry.row = row;
        bindEntry.row = row;
        if (bindEntry.invalidated) {
        if (bindEntry.invalidated) {
            requestPipelineRun(entry);
            requestPipelineRun(entry);
@@ -223,11 +226,6 @@ public final class NotifBindPipeline {


    private @NonNull BindEntry getBindEntry(NotificationEntry entry) {
    private @NonNull BindEntry getBindEntry(NotificationEntry entry) {
        final BindEntry bindEntry = mBindEntries.get(entry);
        final BindEntry bindEntry = mBindEntries.get(entry);
        if (bindEntry == null) {
            throw new IllegalStateException(
                    String.format("Attempting bind on an inactive notification. key: %s",
                            entry.getKey()));
        }
        return bindEntry;
        return bindEntry;
    }
    }