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

Commit c7d4dcad authored by Jeff Sharkey's avatar Jeff Sharkey Committed by Automerger Merge Worker
Browse files

Merge "Offer a NOTIFY_NO_DELAY flag for notifications." into rvc-dev am:...

Merge "Offer a NOTIFY_NO_DELAY flag for notifications." into rvc-dev am: de7f0607 am: 12e7da60 am: 8ced8d88

Change-Id: I2d5ba74cbbda54cc73d1100c86992c73ec9ea9aa
parents f6be9e76 8ced8d88
Loading
Loading
Loading
Loading
+13 −0
Original line number Diff line number Diff line
@@ -686,6 +686,19 @@ public abstract class ContentResolver implements ContentInterface {
     */
    public static final int NOTIFY_DELETE = 1 << 4;

    /**
     * Flag for {@link #notifyChange(Uri, ContentObserver, int)}: typically set
     * by a {@link ContentProvider} to indicate that this notification should
     * not be subject to any delays when dispatching to apps running in the
     * background.
     * <p>
     * Using this flag may negatively impact system health and performance, and
     * should be used sparingly.
     *
     * @hide
     */
    public static final int NOTIFY_NO_DELAY = 1 << 15;

    /**
     * No exception, throttled by app standby normally.
     * @hide
+2 −1
Original line number Diff line number Diff line
@@ -569,9 +569,10 @@ public final class ContentService extends IContentService.Stub {
                // Immediately dispatch notifications to foreground apps that
                // are important to the user; all other background observers are
                // delayed to avoid stampeding
                final boolean noDelay = (key.flags & ContentResolver.NOTIFY_NO_DELAY) != 0;
                final int procState = LocalServices.getService(ActivityManagerInternal.class)
                        .getUidProcessState(key.uid);
                if (procState <= ActivityManager.PROCESS_STATE_IMPORTANT_FOREGROUND) {
                if (procState <= ActivityManager.PROCESS_STATE_IMPORTANT_FOREGROUND || noDelay) {
                    task.run();
                } else {
                    BackgroundThread.getHandler().postDelayed(task, BACKGROUND_OBSERVER_DELAY);