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

Commit 17fa983f authored by Devarshi Bhatt's avatar Devarshi Bhatt
Browse files

Move Zen mode registerContentObserver calls to background handler.

Test: manual CPU profile
Bug: 324515627
Flag: ACONFIG com.android.systemui.register_zen_mode_content_observer_background DEVELOPMENT
Change-Id: Idec5d0f44030c5ea374b53d586cf01c67095ad7e
parent b23955e7
Loading
Loading
Loading
Loading
+10 −0
Original line number Diff line number Diff line
@@ -469,3 +469,13 @@ flag {
        purpose: PURPOSE_BUGFIX
    }
}

flag {
    name: "register_zen_mode_content_observer_background"
    namespace: "systemui"
    description: "Decide whether to register zen mode content observers in the background thread."
    bug: "324515627"
    metadata {
        purpose: PURPOSE_BUGFIX
    }
}
+15 −2
Original line number Diff line number Diff line
@@ -16,6 +16,8 @@

package com.android.systemui.statusbar.policy;

import static com.android.systemui.Flags.registerZenModeContentObserverBackground;

import android.app.AlarmManager;
import android.app.Flags;
import android.app.NotificationManager;
@@ -45,6 +47,7 @@ import com.android.internal.annotations.VisibleForTesting;
import com.android.systemui.Dumpable;
import com.android.systemui.broadcast.BroadcastDispatcher;
import com.android.systemui.dagger.SysUISingleton;
import com.android.systemui.dagger.qualifiers.Background;
import com.android.systemui.dagger.qualifiers.Main;
import com.android.systemui.dump.DumpManager;
import com.android.systemui.settings.UserTracker;
@@ -104,6 +107,7 @@ public class ZenModeControllerImpl implements ZenModeController, Dumpable {
    public ZenModeControllerImpl(
            Context context,
            @Main Handler handler,
            @Background Handler bgHandler,
            BroadcastDispatcher broadcastDispatcher,
            DumpManager dumpManager,
            GlobalSettings globalSettings,
@@ -134,9 +138,18 @@ public class ZenModeControllerImpl implements ZenModeController, Dumpable {
            }
        };
        mNoMan = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
        if (registerZenModeContentObserverBackground()) {
            bgHandler.post(() -> {
                globalSettings.registerContentObserver(Global.ZEN_MODE, modeContentObserver);
                globalSettings.registerContentObserver(Global.ZEN_MODE_CONFIG_ETAG,
                        configContentObserver);
            });
        } else {
            globalSettings.registerContentObserver(Global.ZEN_MODE, modeContentObserver);
            globalSettings.registerContentObserver(Global.ZEN_MODE_CONFIG_ETAG,
                    configContentObserver);
        }
        updateZenMode(getModeSettingValueFromProvider());
        globalSettings.registerContentObserver(Global.ZEN_MODE_CONFIG_ETAG, configContentObserver);
        updateZenModeConfig();
        updateConsolidatedNotificationPolicy();
        mAlarmManager = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
+1 −0
Original line number Diff line number Diff line
@@ -79,6 +79,7 @@ public class ZenModeControllerImplTest extends SysuiTestCase {
        mController = new ZenModeControllerImpl(
                mContext,
                Handler.createAsync(TestableLooper.get(this).getLooper()),
                Handler.createAsync(TestableLooper.get(this).getLooper()),
                mBroadcastDispatcher,
                mDumpManager,
                mGlobalSettings,