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

Commit 11fd9fcd authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Cleanup debug_allow_non_native_refresh_rate_override"

parents 5b0c1a35 585e6022
Loading
Loading
Loading
Loading
+13 −26
Original line number Diff line number Diff line
@@ -105,7 +105,6 @@ import android.os.UserHandle;
import android.os.UserManager;
import android.provider.DeviceConfig;
import android.provider.Settings;
import android.sysprop.DisplayProperties;
import android.text.TextUtils;
import android.util.ArraySet;
import android.util.EventLog;
@@ -451,8 +450,6 @@ public final class DisplayManagerService extends SystemService {
        }
    };

    private final boolean mAllowNonNativeRefreshRateOverride;

    private final BrightnessSynchronizer mBrightnessSynchronizer;

    /**
@@ -506,7 +503,6 @@ public final class DisplayManagerService extends SystemService {
        ColorSpace[] colorSpaces = SurfaceControl.getCompositionColorSpaces();
        mWideColorSpace = colorSpaces[1];
        mOverlayProperties = SurfaceControl.getOverlaySupport();
        mAllowNonNativeRefreshRateOverride = mInjector.getAllowNonNativeRefreshRateOverride();
        mSystemReady = false;
    }

@@ -930,7 +926,6 @@ public final class DisplayManagerService extends SystemService {
            }
        }

        if (mAllowNonNativeRefreshRateOverride) {
        overriddenInfo.refreshRateOverride = frameRateHz;
        if (!CompatChanges.isChangeEnabled(DISPLAY_MODE_RETURNS_PHYSICAL_REFRESH_RATE,
                callingUid)) {
@@ -947,9 +942,6 @@ public final class DisplayManagerService extends SystemService {
        return overriddenInfo;
    }

        return info;
    }

    private DisplayInfo getDisplayInfoInternal(int displayId, int callingUid) {
        synchronized (mSyncRoot) {
            final LogicalDisplay display = mLogicalDisplayMapper.getDisplayLocked(displayId);
@@ -2602,11 +2594,6 @@ public final class DisplayManagerService extends SystemService {
        long getDefaultDisplayDelayTimeout() {
            return WAIT_FOR_DEFAULT_DISPLAY_TIMEOUT;
        }

        boolean getAllowNonNativeRefreshRateOverride() {
            return DisplayProperties
                    .debug_allow_non_native_refresh_rate_override().orElse(true);
        }
    }

    @VisibleForTesting
+28 −60
Original line number Diff line number Diff line
@@ -171,22 +171,6 @@ public class DisplayManagerServiceTest {

    private final DisplayManagerService.Injector mBasicInjector = new BasicInjector();

    private final DisplayManagerService.Injector mAllowNonNativeRefreshRateOverrideInjector =
            new BasicInjector() {
                @Override
                boolean getAllowNonNativeRefreshRateOverride() {
                    return true;
                }
            };

    private final DisplayManagerService.Injector mDenyNonNativeRefreshRateOverrideInjector =
            new BasicInjector() {
                @Override
                boolean getAllowNonNativeRefreshRateOverride() {
                    return false;
                }
            };

    @Mock InputManagerInternal mMockInputManagerInternal;
    @Mock VirtualDeviceManagerInternal mMockVirtualDeviceManagerInternal;
    @Mock IVirtualDisplayCallback.Stub mMockAppToken;
@@ -1113,13 +1097,32 @@ public class DisplayManagerServiceTest {
    }

    /**
     * Tests that the frame rate override is updated accordingly to the
     * allowNonNativeRefreshRateOverride policy.
     * Tests that the frame rate override is returning the correct value from
     * DisplayInfo#getRefreshRate
     */
    @Test
    public void testDisplayInfoNonNativeFrameRateOverride() throws Exception {
        testDisplayInfoNonNativeFrameRateOverride(mDenyNonNativeRefreshRateOverrideInjector);
        testDisplayInfoNonNativeFrameRateOverride(mAllowNonNativeRefreshRateOverrideInjector);
        DisplayManagerService displayManager =
                new DisplayManagerService(mContext, mBasicInjector);
        DisplayManagerService.BinderService displayManagerBinderService =
                displayManager.new BinderService();
        registerDefaultDisplays(displayManager);
        displayManager.onBootPhase(SystemService.PHASE_WAIT_FOR_DEFAULT_DISPLAY);

        FakeDisplayDevice displayDevice = createFakeDisplayDevice(displayManager,
                new float[]{60f});
        int displayId = getDisplayIdForDisplayDevice(displayManager, displayManagerBinderService,
                displayDevice);
        DisplayInfo displayInfo = displayManagerBinderService.getDisplayInfo(displayId);
        assertEquals(60f, displayInfo.getRefreshRate(), 0.01f);

        updateFrameRateOverride(displayManager, displayDevice,
                new DisplayEventReceiver.FrameRateOverride[]{
                        new DisplayEventReceiver.FrameRateOverride(
                                Process.myUid(), 20f)
                });
        displayInfo = displayManagerBinderService.getDisplayInfo(displayId);
        assertEquals(20f, displayInfo.getRefreshRate(), 0.01f);
    }

    /**
@@ -1147,10 +1150,7 @@ public class DisplayManagerServiceTest {
    @Test
    @DisableCompatChanges({DisplayManagerService.DISPLAY_MODE_RETURNS_PHYSICAL_REFRESH_RATE})
    public void testDisplayInfoNonNativeFrameRateOverrideModeCompat() throws Exception {
        testDisplayInfoNonNativeFrameRateOverrideMode(mDenyNonNativeRefreshRateOverrideInjector,
                /*compatChangeEnabled*/ false);
        testDisplayInfoNonNativeFrameRateOverrideMode(mAllowNonNativeRefreshRateOverrideInjector,
                /*compatChangeEnabled*/  false);
        testDisplayInfoNonNativeFrameRateOverrideMode(/*compatChangeEnabled*/ false);
    }

    /**
@@ -1159,10 +1159,7 @@ public class DisplayManagerServiceTest {
    @Test
    @EnableCompatChanges({DisplayManagerService.DISPLAY_MODE_RETURNS_PHYSICAL_REFRESH_RATE})
    public void testDisplayInfoNonNativeFrameRateOverrideMode() throws Exception {
        testDisplayInfoNonNativeFrameRateOverrideMode(mDenyNonNativeRefreshRateOverrideInjector,
                /*compatChangeEnabled*/  true);
        testDisplayInfoNonNativeFrameRateOverrideMode(mAllowNonNativeRefreshRateOverrideInjector,
                /*compatChangeEnabled*/  true);
        testDisplayInfoNonNativeFrameRateOverrideMode(/*compatChangeEnabled*/ true);
    }

    /**
@@ -1385,10 +1382,9 @@ public class DisplayManagerServiceTest {
        assertEquals(expectedMode, displayInfo.getMode());
    }

    private void testDisplayInfoNonNativeFrameRateOverrideMode(
            DisplayManagerService.Injector injector, boolean compatChangeEnabled) {
    private void testDisplayInfoNonNativeFrameRateOverrideMode(boolean compatChangeEnabled) {
        DisplayManagerService displayManager =
                new DisplayManagerService(mContext, injector);
                new DisplayManagerService(mContext, mBasicInjector);
        DisplayManagerService.BinderService displayManagerBinderService =
                displayManager.new BinderService();
        registerDefaultDisplays(displayManager);
@@ -1410,40 +1406,12 @@ public class DisplayManagerServiceTest {
        Display.Mode expectedMode;
        if (compatChangeEnabled) {
            expectedMode = new Display.Mode(1, 100, 200, 60f);
        } else if (injector.getAllowNonNativeRefreshRateOverride()) {
            expectedMode = new Display.Mode(255, 100, 200, 20f);
        } else {
            expectedMode = new Display.Mode(1, 100, 200, 60f);
            expectedMode = new Display.Mode(255, 100, 200, 20f);
        }
        assertEquals(expectedMode, displayInfo.getMode());
    }

    private void testDisplayInfoNonNativeFrameRateOverride(
            DisplayManagerService.Injector injector) {
        DisplayManagerService displayManager =
                new DisplayManagerService(mContext, injector);
        DisplayManagerService.BinderService displayManagerBinderService =
                displayManager.new BinderService();
        registerDefaultDisplays(displayManager);
        displayManager.onBootPhase(SystemService.PHASE_WAIT_FOR_DEFAULT_DISPLAY);

        FakeDisplayDevice displayDevice = createFakeDisplayDevice(displayManager,
                new float[]{60f});
        int displayId = getDisplayIdForDisplayDevice(displayManager, displayManagerBinderService,
                displayDevice);
        DisplayInfo displayInfo = displayManagerBinderService.getDisplayInfo(displayId);
        assertEquals(60f, displayInfo.getRefreshRate(), 0.01f);

        updateFrameRateOverride(displayManager, displayDevice,
                new DisplayEventReceiver.FrameRateOverride[]{
                        new DisplayEventReceiver.FrameRateOverride(
                                Process.myUid(), 20f)
                });
        displayInfo = displayManagerBinderService.getDisplayInfo(displayId);
        float expectedRefreshRate = injector.getAllowNonNativeRefreshRateOverride() ? 20f : 60f;
        assertEquals(expectedRefreshRate, displayInfo.getRefreshRate(), 0.01f);
    }

    private int getDisplayIdForDisplayDevice(
            DisplayManagerService displayManager,
            DisplayManagerService.BinderService displayManagerBinderService,