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

Commit f781a939 authored by Bruno Martins's avatar Bruno Martins
Browse files

LiveDisplayService: Disable ColorTemperature when NightDisplay is available

 * Having decided to use AOSP's night display feature in favor
   of our equivalent implementation, then we should take care of getting
   the latter completely disabled. Not only it can happen that a user was
   likely using it and enabling night display will now cause color
   transformation matrices to be applied twice, but also because there
   are resources being used for nothing.

Change-Id: I4ba7f643bf9e3d3b9bda17102b41668644e22ba1
parent 5ded0fcf
Loading
Loading
Loading
Loading
+11 −4
Original line number Diff line number Diff line
@@ -34,6 +34,7 @@ import android.os.Process;
import android.os.UserHandle;
import android.view.Display;

import com.android.internal.app.ColorDisplayController;
import com.android.server.LocalServices;
import com.android.server.ServiceThread;

@@ -153,6 +154,7 @@ public class LiveDisplayService extends LineageSystemService {
    @Override
    public void onBootPhase(int phase) {
        if (phase == PHASE_BOOT_COMPLETED) {
            final boolean isNightDisplayAvailable = ColorDisplayController.isAvailable(mContext);

            mAwaitingNudge = getSunsetCounter() < 1;

@@ -160,7 +162,9 @@ public class LiveDisplayService extends LineageSystemService {
            mFeatures.add(mDHC);

            mCTC = new ColorTemperatureController(mContext, mHandler, mDHC);
            if (!isNightDisplayAvailable) {
                mFeatures.add(mCTC);
            }

            mOMC = new OutdoorModeController(mContext, mHandler);
            mFeatures.add(mOMC);
@@ -181,7 +185,8 @@ public class LiveDisplayService extends LineageSystemService {
            int defaultMode = mContext.getResources().getInteger(
                    org.lineageos.platform.internal.R.integer.config_defaultLiveDisplayMode);

            mConfig = new LiveDisplayConfig(capabilities, defaultMode,
            mConfig = new LiveDisplayConfig(capabilities,
                    isNightDisplayAvailable ? MODE_OFF : defaultMode,
                    mCTC.getDefaultDayTemperature(), mCTC.getDefaultNightTemperature(),
                    mOMC.getDefaultAutoOutdoorMode(), mDHC.getDefaultAutoContrast(),
                    mDHC.getDefaultCABC(), mDHC.getDefaultColorEnhancement(),
@@ -203,8 +208,10 @@ public class LiveDisplayService extends LineageSystemService {
            mState.mLowPowerMode =
                    pmi.getLowPowerState(SERVICE_TYPE_DUMMY).globalBatterySaverEnabled;

            if (!isNightDisplayAvailable) {
                mTwilightTracker.registerListener(mTwilightListener, mHandler);
                mState.mTwilight = mTwilightTracker.getCurrentState();
            }

            if (mConfig.hasModeSupport()) {
                mModeObserver = new ModeObserver(mHandler);