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

Commit 90f619b1 authored by Ned Burns's avatar Ned Burns
Browse files

Cache value of NotificationUtils.useNewInterruptionModel()

Spamming the system with these calls appears to be linked to ANRs

Test: atest
Bug: 129770115
Change-Id: I8907b90d0bba7db18a6e0ccf05fc9915162bdeb6
parent 10f78591
Loading
Loading
Loading
Loading
+13 −3
Original line number Diff line number Diff line
@@ -18,6 +18,7 @@ package com.android.systemui.statusbar.notification;

import static android.provider.Settings.Secure.NOTIFICATION_NEW_INTERRUPTION_MODEL;

import android.annotation.Nullable;
import android.content.Context;
import android.graphics.Color;
import android.provider.Settings;
@@ -33,6 +34,9 @@ import com.android.systemui.R;
public class NotificationUtils {
    private static final int[] sLocationBase = new int[2];
    private static final int[] sLocationOffset = new int[2];

    @Nullable private static Boolean sUseNewInterruptionModel = null;

    public static boolean isGrayscale(ImageView v, ContrastColorUtil colorUtil) {
        Object isGrayscale = v.getTag(R.id.icon_is_grayscale);
        if (isGrayscale != null) {
@@ -72,9 +76,15 @@ public class NotificationUtils {
        return (int) (dimensionPixelSize * factor);
    }

    /** Returns the value of the new interruption model setting. */
    /**
     * Returns the value of the new interruption model setting. This result is cached and cannot
     * change except through reboots/process restarts.
     */
    public static boolean useNewInterruptionModel(Context context) {
        return Settings.Secure.getInt(context.getContentResolver(),
        if (sUseNewInterruptionModel == null) {
            sUseNewInterruptionModel = Settings.Secure.getInt(context.getContentResolver(),
                    NOTIFICATION_NEW_INTERRUPTION_MODEL, 1) != 0;
        }
        return sUseNewInterruptionModel;
    }
}