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

Commit f1335286 authored by Jernej Virag's avatar Jernej Virag
Browse files

Move ReduceBrightColors content observer registration to bg thread

Use new async APIs to run the content observer off the main thread.

Bug: 352685735
Flag: com.android.systemui.register_content_observers_async
Test: built, ran unit tests
Change-Id: I26aa15e1eb3b8bf93bdebc59d2e4837535b6a803
parent 1d1a9c34
Loading
Loading
Loading
Loading
+27 −10
Original line number Diff line number Diff line
@@ -29,7 +29,6 @@ import android.provider.Settings;

import androidx.annotation.NonNull;

import com.android.server.display.feature.flags.Flags;
import com.android.systemui.dagger.SysUISingleton;
import com.android.systemui.dagger.qualifiers.Background;
import com.android.systemui.settings.UserTracker;
@@ -81,6 +80,12 @@ public class ReduceBrightColorsControllerImpl implements
                mAvailable = true;
                synchronized (mListeners) {
                    if (mListeners.size() > 0) {
                        if (com.android.systemui.Flags.registerContentObserversAsync()) {
                            mSecureSettings.unregisterContentObserverAsync(mContentObserver);
                            mSecureSettings.registerContentObserverForUserAsync(
                                    Settings.Secure.REDUCE_BRIGHT_COLORS_ACTIVATED,
                                    false, mContentObserver, newUser);
                        } else {
                            mSecureSettings.unregisterContentObserverSync(mContentObserver);
                            mSecureSettings.registerContentObserverForUserSync(
                                    Settings.Secure.REDUCE_BRIGHT_COLORS_ACTIVATED,
@@ -88,6 +93,7 @@ public class ReduceBrightColorsControllerImpl implements
                        }
                    }
                }
            }
        };
        mUserTracker.addCallback(mCurrentUserTrackerCallback, new HandlerExecutor(handler));
    }
@@ -98,6 +104,11 @@ public class ReduceBrightColorsControllerImpl implements
            if (!mListeners.contains(listener)) {
                mListeners.add(listener);
                if (mListeners.size() == 1) {
                    if (com.android.systemui.Flags.registerContentObserversAsync()) {
                        mSecureSettings.registerContentObserverForUserAsync(
                                Settings.Secure.REDUCE_BRIGHT_COLORS_ACTIVATED,
                                false, mContentObserver, mUserTracker.getUserId());
                    } else {
                        mSecureSettings.registerContentObserverForUserSync(
                                Settings.Secure.REDUCE_BRIGHT_COLORS_ACTIVATED,
                                false, mContentObserver, mUserTracker.getUserId());
@@ -105,15 +116,20 @@ public class ReduceBrightColorsControllerImpl implements
                }
            }
        }
    }

    @Override
    public void removeCallback(@androidx.annotation.NonNull Listener listener) {
        synchronized (mListeners) {
            if (mListeners.remove(listener) && mListeners.size() == 0) {
                if (com.android.systemui.Flags.registerContentObserversAsync()) {
                    mSecureSettings.unregisterContentObserverAsync(mContentObserver);
                } else {
                    mSecureSettings.unregisterContentObserverSync(mContentObserver);
                }
            }
        }
    }

    @Override
    public boolean isReduceBrightColorsActivated() {
@@ -139,7 +155,8 @@ public class ReduceBrightColorsControllerImpl implements

    @Override
    public boolean isInUpgradeMode(Resources resources) {
        return Flags.evenDimmer() && resources.getBoolean(
        return com.android.server.display.feature.flags.Flags.evenDimmer()
            && resources.getBoolean(
                com.android.internal.R.bool.config_evenDimmerEnabled);
    }