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

Commit 99dd8db8 authored by shaozhongqi's avatar shaozhongqi Committed by Luca Stefani
Browse files

NotificationService causes watchdog issues and improves performance



NotificationComparator will visit settings.db every time it compares ,
and indirectly calling IntArrayMemory is very time consuming, so the solution is optimized

Test: manual - atest NotificationManagerServiceTest and check the logs...

Bug:145560121

Change-Id: Ic66c87d65790b408846cb7ed7ab131c58482fe16
Signed-off-by: default avatarshaozhongqi <shaozhongqi@xiaomi.com>
parent eea25361
Loading
Loading
Loading
Loading
+3 −9
Original line number Diff line number Diff line
@@ -23,7 +23,6 @@ import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.provider.Settings;
import android.telecom.TelecomManager;

import com.android.internal.util.NotificationMessagingUtil;
@@ -55,15 +54,10 @@ public class NotificationComparator
        final boolean isLeftHighImportance = leftImportance >= IMPORTANCE_DEFAULT;
        final boolean isRightHighImportance = rightImportance >= IMPORTANCE_DEFAULT;

        // With new interruption model, prefer importance bucket above all other criteria
        // (to ensure buckets are contiguous)
        if (Settings.Secure.getInt(mContext.getContentResolver(),
                Settings.Secure.NOTIFICATION_NEW_INTERRUPTION_MODEL, 1) == 1) {
        if (isLeftHighImportance != isRightHighImportance) {
            // by importance bucket, high importance higher than low importance
            return -1 * Boolean.compare(isLeftHighImportance, isRightHighImportance);
        }
        }

        // first all colorized notifications
        boolean leftImportantColorized = isImportantColorized(left);