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

Commit 202699b2 authored by shaozhongqi's avatar shaozhongqi
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 c8378180
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);