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

Commit f27548df authored by Chavi Weingarten's avatar Chavi Weingarten Committed by Android (Google) Code Review
Browse files

Merge "Remove usage of getInternalDisplayToken for DisplayPrimaries"

parents 1f139a5b fd5609c8
Loading
Loading
Loading
Loading
+6 −0
Original line number Diff line number Diff line
@@ -28,6 +28,7 @@ import android.util.Slog;
import android.util.SparseArray;
import android.view.Display;
import android.view.DisplayInfo;
import android.view.SurfaceControl;
import android.view.SurfaceControl.Transaction;
import android.window.DisplayWindowPolicyController;
import android.window.ScreenCapture;
@@ -397,6 +398,11 @@ public abstract class DisplayManagerInternal {
     */
    public abstract DisplayWindowPolicyController getDisplayWindowPolicyController(int displayId);

    /**
     * Get DisplayPrimaries from SF for a particular display.
     */
    public abstract SurfaceControl.DisplayPrimaries getDisplayNativePrimaries(int displayId);

    /**
     * Describes the requested power state of the display.
     *
+13 −0
Original line number Diff line number Diff line
@@ -3884,6 +3884,19 @@ public final class DisplayManagerService extends SystemService {
                return displayIdToMirror;
            }
        }

        @Override
        public SurfaceControl.DisplayPrimaries getDisplayNativePrimaries(int displayId) {
            IBinder displayToken;
            synchronized (mSyncRoot) {
                displayToken = getDisplayToken(displayId);
                if (displayToken == null) {
                    throw new IllegalArgumentException("Invalid displayId=" + displayId);
                }
            }

            return SurfaceControl.getDisplayNativePrimaries(displayToken);
        }
    }

    class DesiredDisplayModeSpecsObserver
+3 −1
Original line number Diff line number Diff line
@@ -50,6 +50,7 @@ import android.database.ContentObserver;
import android.hardware.display.ColorDisplayManager;
import android.hardware.display.ColorDisplayManager.AutoMode;
import android.hardware.display.ColorDisplayManager.ColorMode;
import android.hardware.display.DisplayManagerInternal;
import android.hardware.display.IColorDisplayManager;
import android.hardware.display.Time;
import android.net.Uri;
@@ -154,7 +155,8 @@ public final class ColorDisplayService extends SystemService {

    @VisibleForTesting
    final DisplayWhiteBalanceTintController mDisplayWhiteBalanceTintController =
            new DisplayWhiteBalanceTintController();
            new DisplayWhiteBalanceTintController(
                    LocalServices.getService(DisplayManagerInternal.class));
    private final NightDisplayTintController mNightDisplayTintController =
            new NightDisplayTintController();
    private final TintController mGlobalSaturationTintController =
+11 −8
Original line number Diff line number Diff line
@@ -16,6 +16,8 @@

package com.android.server.display.color;

import static android.view.Display.DEFAULT_DISPLAY;

import static com.android.server.display.color.DisplayTransformManager.LEVEL_COLOR_MATRIX_DISPLAY_WHITE_BALANCE;

import android.annotation.NonNull;
@@ -24,10 +26,9 @@ import android.content.Context;
import android.content.res.Resources;
import android.graphics.ColorSpace;
import android.hardware.display.ColorDisplayManager;
import android.hardware.display.DisplayManagerInternal;
import android.opengl.Matrix;
import android.os.IBinder;
import android.util.Slog;
import android.view.SurfaceControl;
import android.view.SurfaceControl.DisplayPrimaries;

import com.android.internal.R;
@@ -64,6 +65,12 @@ final class DisplayWhiteBalanceTintController extends TintController {
    // This feature becomes disallowed if the device is in an unsupported strong/light state.
    private boolean mIsAllowed = true;

    private final DisplayManagerInternal mDisplayManagerInternal;

    DisplayWhiteBalanceTintController(DisplayManagerInternal dm) {
        mDisplayManagerInternal = dm;
    }

    @Override
    public void setUp(Context context, boolean needsLinear) {
        mSetUp = false;
@@ -287,12 +294,8 @@ final class DisplayWhiteBalanceTintController extends TintController {
    }

    private ColorSpace.Rgb getDisplayColorSpaceFromSurfaceControl() {
        final IBinder displayToken = SurfaceControl.getInternalDisplayToken();
        if (displayToken == null) {
            return null;
        }

        DisplayPrimaries primaries = SurfaceControl.getDisplayNativePrimaries(displayToken);
        DisplayPrimaries primaries =
                mDisplayManagerInternal.getDisplayNativePrimaries(DEFAULT_DISPLAY);
        if (primaries == null || primaries.red == null || primaries.green == null
                || primaries.blue == null || primaries.white == null) {
            return null;
+16 −10
Original line number Diff line number Diff line
@@ -16,14 +16,18 @@

package com.android.server.display.color;

import static android.view.Display.DEFAULT_DISPLAY;

import static com.android.dx.mockito.inline.extended.ExtendedMockito.doReturn;

import static com.google.common.truth.Truth.assertWithMessage;

import static org.junit.Assert.assertArrayEquals;
import static org.mockito.Mockito.when;

import android.content.Context;
import android.content.res.Resources;
import android.hardware.display.DisplayManagerInternal;
import android.os.Binder;
import android.os.IBinder;
import android.view.SurfaceControl;
@@ -50,6 +54,8 @@ public class DisplayWhiteBalanceTintControllerTest {
    private Context mMockedContext;
    @Mock
    private Resources mMockedResources;
    @Mock
    private DisplayManagerInternal mDisplayManagerInternal;

    private MockitoSession mSession;
    private Resources mResources;
@@ -81,7 +87,6 @@ public class DisplayWhiteBalanceTintControllerTest {
        doReturn(mMockedResources).when(mMockedContext).getResources();

        mDisplayToken = new Binder();
        doReturn(mDisplayToken).when(() -> SurfaceControl.getInternalDisplayToken());
    }

    @After
@@ -114,8 +119,8 @@ public class DisplayWhiteBalanceTintControllerTest {
        displayPrimaries.white.X = 0.950456f;
        displayPrimaries.white.Y = 1.000000f;
        displayPrimaries.white.Z = 1.089058f;
        doReturn(displayPrimaries)
            .when(() -> SurfaceControl.getDisplayNativePrimaries(mDisplayToken));
        when(mDisplayManagerInternal.getDisplayNativePrimaries(DEFAULT_DISPLAY))
                .thenReturn(displayPrimaries);

        setUpTintController();
        assertWithMessage("Setup with valid SurfaceControl failed")
@@ -134,8 +139,8 @@ public class DisplayWhiteBalanceTintControllerTest {
        displayPrimaries.green = new CieXyz();
        displayPrimaries.blue = new CieXyz();
        displayPrimaries.white = new CieXyz();
        doReturn(displayPrimaries)
            .when(() -> SurfaceControl.getDisplayNativePrimaries(mDisplayToken));
        when(mDisplayManagerInternal.getDisplayNativePrimaries(DEFAULT_DISPLAY))
                .thenReturn(displayPrimaries);

        setUpTintController();
        assertWithMessage("Setup with invalid SurfaceControl succeeded")
@@ -154,7 +159,7 @@ public class DisplayWhiteBalanceTintControllerTest {
            .when(mMockedResources)
            .getStringArray(R.array.config_displayWhiteBalanceDisplayPrimaries);
        // Make SurfaceControl setup fail
        doReturn(null).when(() -> SurfaceControl.getDisplayNativePrimaries(mDisplayToken));
        when(mDisplayManagerInternal.getDisplayNativePrimaries(DEFAULT_DISPLAY)).thenReturn(null);

        setUpTintController();
        assertWithMessage("Setup with valid Resources failed")
@@ -178,7 +183,7 @@ public class DisplayWhiteBalanceTintControllerTest {
            .when(mMockedResources)
            .getStringArray(R.array.config_displayWhiteBalanceDisplayPrimaries);
        // Make SurfaceControl setup fail
        doReturn(null).when(() -> SurfaceControl.getDisplayNativePrimaries(mDisplayToken));
        when(mDisplayManagerInternal.getDisplayNativePrimaries(DEFAULT_DISPLAY)).thenReturn(null);

        setUpTintController();
        assertWithMessage("Setup with invalid Resources succeeded")
@@ -208,8 +213,8 @@ public class DisplayWhiteBalanceTintControllerTest {
        displayPrimaries.white.X = 0.950456f;
        displayPrimaries.white.Y = 1.000000f;
        displayPrimaries.white.Z = 1.089058f;
        doReturn(displayPrimaries)
                .when(() -> SurfaceControl.getDisplayNativePrimaries(mDisplayToken));
        when(mDisplayManagerInternal.getDisplayNativePrimaries(DEFAULT_DISPLAY))
                .thenReturn(displayPrimaries);

        setUpTintController();
        assertWithMessage("Setup with valid SurfaceControl failed")
@@ -234,7 +239,8 @@ public class DisplayWhiteBalanceTintControllerTest {
    }

    private void setUpTintController() {
        mDisplayWhiteBalanceTintController = new DisplayWhiteBalanceTintController();
        mDisplayWhiteBalanceTintController = new DisplayWhiteBalanceTintController(
                mDisplayManagerInternal);
        mDisplayWhiteBalanceTintController.setUp(mMockedContext, true);
        mDisplayWhiteBalanceTintController.setActivated(true);
    }
Loading