Loading core/java/android/view/DisplayEventReceiver.java +0 −44 Original line number Diff line number Diff line Loading @@ -291,23 +291,6 @@ public abstract class DisplayEventReceiver { public void onHotplugConnectionError(long timestampNanos, int connectionError) { } /** * Called when a display mode changed event is received. * * @param timestampNanos The timestamp of the event, in the {@link System#nanoTime()} * timebase. * @param physicalDisplayId Stable display ID that uniquely describes a (display, port) pair. * @param modeId The new mode ID * @param renderPeriod The render frame period, which is a multiple of the mode's vsync period * @param appVsyncOffsetNanos The offset from the vsync of the display refresh rate. * @param presentationDeadlineNanos The time in nanoseconds by which the frame should be ready * from the target vsync, if target vsync is N then the frame * should be ready by N - presentationDeadlineNanos. */ public void onModeChanged(long timestampNanos, long physicalDisplayId, int modeId, long renderPeriod, long appVsyncOffsetNanos, long presentationDeadlineNanos) { } /** * Called when a display mode and frame rate overrides changed event is received. * Loading Loading @@ -372,18 +355,6 @@ public abstract class DisplayEventReceiver { } } /** * Called when frame rate override event is received. * * @param timestampNanos The timestamp of the event, in the {@link System#nanoTime()} * timebase. * @param physicalDisplayId Stable display ID that uniquely describes a (display, port) pair. * @param overrides The mappings from uid to frame rates */ public void onFrameRateOverridesChanged(long timestampNanos, long physicalDisplayId, FrameRateOverride[] overrides) { } /** * Schedules a single vertical sync pulse to be delivered when the next * display frame begins. Loading Loading @@ -423,14 +394,6 @@ public abstract class DisplayEventReceiver { onHotplugConnectionError(timestampNanos, connectionError); } // Called from native code. @SuppressWarnings("unused") private void dispatchModeChanged(long timestampNanos, long physicalDisplayId, int modeId, long renderPeriod, long appVsyncOffsetNanos, long presentationDeadlineNanos) { onModeChanged(timestampNanos, physicalDisplayId, modeId, renderPeriod, appVsyncOffsetNanos, presentationDeadlineNanos); } // Called from native code. @SuppressWarnings("unused") private void dispatchModeChangedWithFrameRateOverrides(long timestampNanos, Loading @@ -448,13 +411,6 @@ public abstract class DisplayEventReceiver { onModeRejected(physicalDisplayId, modeId); } // Called from native code. @SuppressWarnings("unused") private void dispatchFrameRateOverrides(long timestampNanos, long physicalDisplayId, FrameRateOverride[] overrides) { onFrameRateOverridesChanged(timestampNanos, physicalDisplayId, overrides); } // Called from native code. @SuppressWarnings("unused") private void dispatchHdcpLevelsChanged(long physicalDisplayId, int connectedLevel, Loading core/jni/android_view_DisplayEventReceiver.cpp +0 −49 Original line number Diff line number Diff line Loading @@ -40,10 +40,8 @@ static struct { jmethodID dispatchVsync; jmethodID dispatchHotplug; jmethodID dispatchHotplugConnectionError; jmethodID dispatchModeChanged; jmethodID dispatchModeChangedWithFrameRateOverrides; jmethodID dispatchModeRejected; jmethodID dispatchFrameRateOverrides; jmethodID dispatchHdcpLevelsChanged; struct { Loading Loading @@ -129,12 +127,7 @@ private: nsecs_t appVsyncOffset, nsecs_t presentationDeadline, std::vector<FrameRateOverride> overrides, std::vector<SupportedRefreshRate> supportedRefreshRates) override; void dispatchModeChanged(nsecs_t timestamp, PhysicalDisplayId displayId, int32_t modeId, nsecs_t renderPeriod, nsecs_t appVsyncOffset, nsecs_t presentationDeadline) override; void dispatchModeRejected(PhysicalDisplayId displayId, int32_t modeId) override; void dispatchFrameRateOverrides(nsecs_t timestamp, PhysicalDisplayId displayId, std::vector<FrameRateOverride> overrides) override; void dispatchNullEvent(nsecs_t timestamp, PhysicalDisplayId displayId) override {} void dispatchHdcpLevelsChanged(PhysicalDisplayId displayId, int connectedLevel, int maxLevel) override; Loading Loading @@ -294,24 +287,6 @@ void NativeDisplayEventReceiver::dispatchHotplugConnectionError(nsecs_t timestam mMessageQueue->raiseAndClearException(env, "dispatchHotplugConnectionError"); } void NativeDisplayEventReceiver::dispatchModeChanged(nsecs_t timestamp, PhysicalDisplayId displayId, int32_t modeId, nsecs_t renderPeriod, nsecs_t appVsyncOffset, nsecs_t presentationDeadline) { JNIEnv* env = AndroidRuntime::getJNIEnv(); ScopedLocalRef<jobject> receiverObj(env, GetReferent(env, mReceiverWeakGlobal)); if (receiverObj.get()) { ALOGV("receiver %p ~ Invoking mode changed handler.", this); env->CallVoidMethod(receiverObj.get(), gDisplayEventReceiverClassInfo.dispatchModeChanged, timestamp, displayId.value, modeId, renderPeriod, appVsyncOffset, presentationDeadline); ALOGV("receiver %p ~ Returned from mode changed handler.", this); } mMessageQueue->raiseAndClearException(env, "dispatchModeChanged"); } void NativeDisplayEventReceiver::dispatchModeChangedWithFrameRateOverrides( nsecs_t timestamp, PhysicalDisplayId displayId, int32_t modeId, nsecs_t renderPeriod, nsecs_t appVsyncOffset, nsecs_t presentationDeadline, Loading Loading @@ -348,23 +323,6 @@ void NativeDisplayEventReceiver::dispatchModeRejected(PhysicalDisplayId displayI mMessageQueue->raiseAndClearException(env, "dispatchModeRejected"); } void NativeDisplayEventReceiver::dispatchFrameRateOverrides( nsecs_t timestamp, PhysicalDisplayId displayId, std::vector<FrameRateOverride> overrides) { JNIEnv* env = AndroidRuntime::getJNIEnv(); ScopedLocalRef<jobject> receiverObj(env, GetReferent(env, mReceiverWeakGlobal)); if (receiverObj.get()) { ALOGV("receiver %p ~ Invoking FrameRateOverride handler.", this); auto frameRateOverrideArray = getFrameRateOverrides(overrides, env); env->CallVoidMethod(receiverObj.get(), gDisplayEventReceiverClassInfo.dispatchFrameRateOverrides, timestamp, displayId.value, frameRateOverrideArray); ALOGV("receiver %p ~ Returned from FrameRateOverride handler.", this); } mMessageQueue->raiseAndClearException(env, "dispatchFrameRateOverrides"); } void NativeDisplayEventReceiver::dispatchHdcpLevelsChanged(PhysicalDisplayId displayId, int connectedLevel, int maxLevel) { JNIEnv* env = AndroidRuntime::getJNIEnv(); Loading Loading @@ -465,9 +423,6 @@ int register_android_view_DisplayEventReceiver(JNIEnv* env) { gDisplayEventReceiverClassInfo.dispatchHotplugConnectionError = GetMethodIDOrDie(env, gDisplayEventReceiverClassInfo.clazz, "dispatchHotplugConnectionError", "(JI)V"); gDisplayEventReceiverClassInfo.dispatchModeChanged = GetMethodIDOrDie(env, gDisplayEventReceiverClassInfo.clazz, "dispatchModeChanged", "(JJIJJJ)V"); gDisplayEventReceiverClassInfo.dispatchModeChangedWithFrameRateOverrides = GetMethodIDOrDie(env, gDisplayEventReceiverClassInfo.clazz, "dispatchModeChangedWithFrameRateOverrides", Loading @@ -475,10 +430,6 @@ int register_android_view_DisplayEventReceiver(JNIEnv* env) { gDisplayEventReceiverClassInfo.dispatchModeRejected = GetMethodIDOrDie(env, gDisplayEventReceiverClassInfo.clazz, "dispatchModeRejected", "(JI)V"); gDisplayEventReceiverClassInfo.dispatchFrameRateOverrides = GetMethodIDOrDie(env, gDisplayEventReceiverClassInfo.clazz, "dispatchFrameRateOverrides", "(JJ[Landroid/view/DisplayEventReceiver$FrameRateOverride;)V"); gDisplayEventReceiverClassInfo.dispatchHdcpLevelsChanged = GetMethodIDOrDie(env, gDisplayEventReceiverClassInfo.clazz, "dispatchHdcpLevelsChanged", "(JII)V"); Loading services/core/java/com/android/server/display/LocalDisplayAdapter.java +10 −45 Original line number Diff line number Diff line Loading @@ -1240,29 +1240,18 @@ final class LocalDisplayAdapter extends DisplayAdapter { private void onActiveDisplayModeChangedLocked(int sfModeId, float renderFrameRate, long appVsyncOffsetNanos, long presentationDeadlineNanos, @Nullable float[] supportedRefreshRates) { if (updateActiveModeAndFrameOverrideChangedLocked(sfModeId, renderFrameRate, appVsyncOffsetNanos, presentationDeadlineNanos, mFrameRateOverrides, supportedRefreshRates == null ? mSupportedRefreshRates : supportedRefreshRates)) { updateDeviceInfoLocked(); } float[] supportedRefreshRates) { onModeAndFrameRateOverridesChangedLocked(sfModeId, renderFrameRate, appVsyncOffsetNanos, presentationDeadlineNanos, mFrameRateOverrides, supportedRefreshRates); } private void onFrameRateOverridesChangedLocked( DisplayEventReceiver.FrameRateOverride[] overrides, @Nullable float[] supportedRefreshRates) { if (updateActiveModeAndFrameOverrideChangedLocked(mActiveSfDisplayMode.id, float[] supportedRefreshRates) { onModeAndFrameRateOverridesChangedLocked(mActiveSfDisplayMode.id, mActiveRenderFrameRate, mAppVsyncOffsetNanos, mPresentationDeadlineNanos, overrides, supportedRefreshRates == null ? mSupportedRefreshRates : supportedRefreshRates)) { updateDeviceInfoLocked(); overrides, supportedRefreshRates); } } private void onModeAndFrameRateOverridesChangedLocked( int sfModeId, float renderFrameRate, long appVsyncOffsetNanos, long presentationDeadlineNanos, Loading Loading @@ -1637,12 +1626,6 @@ final class LocalDisplayAdapter extends DisplayAdapter { public interface DisplayEventListener { void onHotplug(long timestampNanos, long physicalDisplayId, boolean connected); void onHotplugConnectionError(long timestampNanos, int connectionError); void onModeChanged(long timestampNanos, long physicalDisplayId, int modeId, long renderPeriod, long appVsyncOffsetNanos, long presentationDeadlineNanos, @Nullable float[] supportedRefreshRates); void onFrameRateOverridesChanged(long timestampNanos, long physicalDisplayId, DisplayEventReceiver.FrameRateOverride[] overrides, @Nullable float[] supportedRefreshRates); void onModeAndFrameRateOverridesChanged(long timestampNanos, long physicalDisplayId, int modeId, long renderPeriod, long appVsyncOffsetNanos, long presentationDeadlineNanos, DisplayEventReceiver.FrameRateOverride[] overrides, Loading Loading @@ -1671,14 +1654,6 @@ final class LocalDisplayAdapter extends DisplayAdapter { mListener.onHotplugConnectionError(timestampNanos, errorCode); } @Override public void onModeChanged(long timestampNanos, long physicalDisplayId, int modeId, long renderPeriod, long appVsyncOffsetNanos, long presentationDeadlineNanos) { mListener.onModeChanged(timestampNanos, physicalDisplayId, modeId, renderPeriod, appVsyncOffsetNanos, presentationDeadlineNanos, /*supportedRefreshRates*/ null); } public void onModeAndFrameRateOverridesChanged(long timestampNanos, long physicalDisplayId, int modeId, long renderPeriod, long appVsyncOffsetNanos, long presentationDeadlineNanos, Loading @@ -1689,13 +1664,6 @@ final class LocalDisplayAdapter extends DisplayAdapter { supportedRefreshRates); } @Override public void onFrameRateOverridesChanged(long timestampNanos, long physicalDisplayId, DisplayEventReceiver.FrameRateOverride[] overrides) { mListener.onFrameRateOverridesChanged(timestampNanos, physicalDisplayId, overrides, /*supportedRefreshRates*/ null); } @Override public void onHdcpLevelsChanged(long physicalDisplayId, int connectedLevel, int maxLevel) { mListener.onHdcpLevelsChanged(physicalDisplayId, connectedLevel, maxLevel); Loading Loading @@ -1724,11 +1692,9 @@ final class LocalDisplayAdapter extends DisplayAdapter { mDisplayNotificationManager.onHotplugConnectionError(); } @Override public void onModeChanged(long timestampNanos, long physicalDisplayId, int modeId, private void onModeChanged(long timestampNanos, long physicalDisplayId, int modeId, long renderPeriod, long appVsyncOffsetNanos, long presentationDealineNanos, @Nullable float[] supportedRefreshRates) { float[] supportedRefreshRates) { if (DEBUG) { Slog.d(TAG, "onModeChanged(" + "timestampNanos=" + timestampNanos Loading Loading @@ -1756,10 +1722,9 @@ final class LocalDisplayAdapter extends DisplayAdapter { } } @Override public void onFrameRateOverridesChanged(long timestampNanos, long physicalDisplayId, private void onFrameRateOverridesChanged(long timestampNanos, long physicalDisplayId, DisplayEventReceiver.FrameRateOverride[] overrides, @Nullable float[] supportedRefreshRates) { float[] supportedRefreshRates) { if (DEBUG) { Slog.d(TAG, "onFrameRateOverrideChanged(timestampNanos=" + timestampNanos + ", physicalDisplayId=" + physicalDisplayId + " overrides=" Loading services/tests/displayservicetests/src/com/android/server/display/LocalDisplayAdapterTest.java +3 −11 Original line number Diff line number Diff line Loading @@ -885,9 +885,10 @@ public class LocalDisplayAdapterTest { long newAppVsyncOffsetNanos = 400; long newPresentationDeadlineNanos = 500; mInjector.getTransmitter().sendOnModeChanged(display, mInjector.getTransmitter().sendOnModeAndFrameRateOverridesChanged(display, 1, (long) displayMode2.peakRefreshRate, newAppVsyncOffsetNanos, newPresentationDeadlineNanos); newPresentationDeadlineNanos, new FrameRateOverride[0], /*supportedRefreshRates*/ new float[0]); waitForHandlerToComplete(mHandler, HANDLER_WAIT_MS); assertTrue(mListener.traversalRequested); Loading Loading @@ -1934,15 +1935,6 @@ public class LocalDisplayAdapterTest { waitForHandlerToComplete(mHandler, HANDLER_WAIT_MS); } public void sendOnModeChanged(FakeDisplay display, int modeId, long renderPeriod, long appVsyncOffsetNanos, long presentationDeadlineNanos) throws InterruptedException { mHandler.post(() -> mListener.onModeChanged(/* timestampNanos = */ 0, display.address.getPhysicalDisplayId(), modeId, renderPeriod, appVsyncOffsetNanos, presentationDeadlineNanos, /*supportedRefreshRate*/ null)); waitForHandlerToComplete(mHandler, HANDLER_WAIT_MS); } public void sendOnModeAndFrameRateOverridesChanged(FakeDisplay display, int modeId, long renderPeriod, long appVsyncOffsetNanos, long presentationDeadlineNanos, FrameRateOverride[] frameRateOverrides, float[] supportedRefreshRates) Loading Loading
core/java/android/view/DisplayEventReceiver.java +0 −44 Original line number Diff line number Diff line Loading @@ -291,23 +291,6 @@ public abstract class DisplayEventReceiver { public void onHotplugConnectionError(long timestampNanos, int connectionError) { } /** * Called when a display mode changed event is received. * * @param timestampNanos The timestamp of the event, in the {@link System#nanoTime()} * timebase. * @param physicalDisplayId Stable display ID that uniquely describes a (display, port) pair. * @param modeId The new mode ID * @param renderPeriod The render frame period, which is a multiple of the mode's vsync period * @param appVsyncOffsetNanos The offset from the vsync of the display refresh rate. * @param presentationDeadlineNanos The time in nanoseconds by which the frame should be ready * from the target vsync, if target vsync is N then the frame * should be ready by N - presentationDeadlineNanos. */ public void onModeChanged(long timestampNanos, long physicalDisplayId, int modeId, long renderPeriod, long appVsyncOffsetNanos, long presentationDeadlineNanos) { } /** * Called when a display mode and frame rate overrides changed event is received. * Loading Loading @@ -372,18 +355,6 @@ public abstract class DisplayEventReceiver { } } /** * Called when frame rate override event is received. * * @param timestampNanos The timestamp of the event, in the {@link System#nanoTime()} * timebase. * @param physicalDisplayId Stable display ID that uniquely describes a (display, port) pair. * @param overrides The mappings from uid to frame rates */ public void onFrameRateOverridesChanged(long timestampNanos, long physicalDisplayId, FrameRateOverride[] overrides) { } /** * Schedules a single vertical sync pulse to be delivered when the next * display frame begins. Loading Loading @@ -423,14 +394,6 @@ public abstract class DisplayEventReceiver { onHotplugConnectionError(timestampNanos, connectionError); } // Called from native code. @SuppressWarnings("unused") private void dispatchModeChanged(long timestampNanos, long physicalDisplayId, int modeId, long renderPeriod, long appVsyncOffsetNanos, long presentationDeadlineNanos) { onModeChanged(timestampNanos, physicalDisplayId, modeId, renderPeriod, appVsyncOffsetNanos, presentationDeadlineNanos); } // Called from native code. @SuppressWarnings("unused") private void dispatchModeChangedWithFrameRateOverrides(long timestampNanos, Loading @@ -448,13 +411,6 @@ public abstract class DisplayEventReceiver { onModeRejected(physicalDisplayId, modeId); } // Called from native code. @SuppressWarnings("unused") private void dispatchFrameRateOverrides(long timestampNanos, long physicalDisplayId, FrameRateOverride[] overrides) { onFrameRateOverridesChanged(timestampNanos, physicalDisplayId, overrides); } // Called from native code. @SuppressWarnings("unused") private void dispatchHdcpLevelsChanged(long physicalDisplayId, int connectedLevel, Loading
core/jni/android_view_DisplayEventReceiver.cpp +0 −49 Original line number Diff line number Diff line Loading @@ -40,10 +40,8 @@ static struct { jmethodID dispatchVsync; jmethodID dispatchHotplug; jmethodID dispatchHotplugConnectionError; jmethodID dispatchModeChanged; jmethodID dispatchModeChangedWithFrameRateOverrides; jmethodID dispatchModeRejected; jmethodID dispatchFrameRateOverrides; jmethodID dispatchHdcpLevelsChanged; struct { Loading Loading @@ -129,12 +127,7 @@ private: nsecs_t appVsyncOffset, nsecs_t presentationDeadline, std::vector<FrameRateOverride> overrides, std::vector<SupportedRefreshRate> supportedRefreshRates) override; void dispatchModeChanged(nsecs_t timestamp, PhysicalDisplayId displayId, int32_t modeId, nsecs_t renderPeriod, nsecs_t appVsyncOffset, nsecs_t presentationDeadline) override; void dispatchModeRejected(PhysicalDisplayId displayId, int32_t modeId) override; void dispatchFrameRateOverrides(nsecs_t timestamp, PhysicalDisplayId displayId, std::vector<FrameRateOverride> overrides) override; void dispatchNullEvent(nsecs_t timestamp, PhysicalDisplayId displayId) override {} void dispatchHdcpLevelsChanged(PhysicalDisplayId displayId, int connectedLevel, int maxLevel) override; Loading Loading @@ -294,24 +287,6 @@ void NativeDisplayEventReceiver::dispatchHotplugConnectionError(nsecs_t timestam mMessageQueue->raiseAndClearException(env, "dispatchHotplugConnectionError"); } void NativeDisplayEventReceiver::dispatchModeChanged(nsecs_t timestamp, PhysicalDisplayId displayId, int32_t modeId, nsecs_t renderPeriod, nsecs_t appVsyncOffset, nsecs_t presentationDeadline) { JNIEnv* env = AndroidRuntime::getJNIEnv(); ScopedLocalRef<jobject> receiverObj(env, GetReferent(env, mReceiverWeakGlobal)); if (receiverObj.get()) { ALOGV("receiver %p ~ Invoking mode changed handler.", this); env->CallVoidMethod(receiverObj.get(), gDisplayEventReceiverClassInfo.dispatchModeChanged, timestamp, displayId.value, modeId, renderPeriod, appVsyncOffset, presentationDeadline); ALOGV("receiver %p ~ Returned from mode changed handler.", this); } mMessageQueue->raiseAndClearException(env, "dispatchModeChanged"); } void NativeDisplayEventReceiver::dispatchModeChangedWithFrameRateOverrides( nsecs_t timestamp, PhysicalDisplayId displayId, int32_t modeId, nsecs_t renderPeriod, nsecs_t appVsyncOffset, nsecs_t presentationDeadline, Loading Loading @@ -348,23 +323,6 @@ void NativeDisplayEventReceiver::dispatchModeRejected(PhysicalDisplayId displayI mMessageQueue->raiseAndClearException(env, "dispatchModeRejected"); } void NativeDisplayEventReceiver::dispatchFrameRateOverrides( nsecs_t timestamp, PhysicalDisplayId displayId, std::vector<FrameRateOverride> overrides) { JNIEnv* env = AndroidRuntime::getJNIEnv(); ScopedLocalRef<jobject> receiverObj(env, GetReferent(env, mReceiverWeakGlobal)); if (receiverObj.get()) { ALOGV("receiver %p ~ Invoking FrameRateOverride handler.", this); auto frameRateOverrideArray = getFrameRateOverrides(overrides, env); env->CallVoidMethod(receiverObj.get(), gDisplayEventReceiverClassInfo.dispatchFrameRateOverrides, timestamp, displayId.value, frameRateOverrideArray); ALOGV("receiver %p ~ Returned from FrameRateOverride handler.", this); } mMessageQueue->raiseAndClearException(env, "dispatchFrameRateOverrides"); } void NativeDisplayEventReceiver::dispatchHdcpLevelsChanged(PhysicalDisplayId displayId, int connectedLevel, int maxLevel) { JNIEnv* env = AndroidRuntime::getJNIEnv(); Loading Loading @@ -465,9 +423,6 @@ int register_android_view_DisplayEventReceiver(JNIEnv* env) { gDisplayEventReceiverClassInfo.dispatchHotplugConnectionError = GetMethodIDOrDie(env, gDisplayEventReceiverClassInfo.clazz, "dispatchHotplugConnectionError", "(JI)V"); gDisplayEventReceiverClassInfo.dispatchModeChanged = GetMethodIDOrDie(env, gDisplayEventReceiverClassInfo.clazz, "dispatchModeChanged", "(JJIJJJ)V"); gDisplayEventReceiverClassInfo.dispatchModeChangedWithFrameRateOverrides = GetMethodIDOrDie(env, gDisplayEventReceiverClassInfo.clazz, "dispatchModeChangedWithFrameRateOverrides", Loading @@ -475,10 +430,6 @@ int register_android_view_DisplayEventReceiver(JNIEnv* env) { gDisplayEventReceiverClassInfo.dispatchModeRejected = GetMethodIDOrDie(env, gDisplayEventReceiverClassInfo.clazz, "dispatchModeRejected", "(JI)V"); gDisplayEventReceiverClassInfo.dispatchFrameRateOverrides = GetMethodIDOrDie(env, gDisplayEventReceiverClassInfo.clazz, "dispatchFrameRateOverrides", "(JJ[Landroid/view/DisplayEventReceiver$FrameRateOverride;)V"); gDisplayEventReceiverClassInfo.dispatchHdcpLevelsChanged = GetMethodIDOrDie(env, gDisplayEventReceiverClassInfo.clazz, "dispatchHdcpLevelsChanged", "(JII)V"); Loading
services/core/java/com/android/server/display/LocalDisplayAdapter.java +10 −45 Original line number Diff line number Diff line Loading @@ -1240,29 +1240,18 @@ final class LocalDisplayAdapter extends DisplayAdapter { private void onActiveDisplayModeChangedLocked(int sfModeId, float renderFrameRate, long appVsyncOffsetNanos, long presentationDeadlineNanos, @Nullable float[] supportedRefreshRates) { if (updateActiveModeAndFrameOverrideChangedLocked(sfModeId, renderFrameRate, appVsyncOffsetNanos, presentationDeadlineNanos, mFrameRateOverrides, supportedRefreshRates == null ? mSupportedRefreshRates : supportedRefreshRates)) { updateDeviceInfoLocked(); } float[] supportedRefreshRates) { onModeAndFrameRateOverridesChangedLocked(sfModeId, renderFrameRate, appVsyncOffsetNanos, presentationDeadlineNanos, mFrameRateOverrides, supportedRefreshRates); } private void onFrameRateOverridesChangedLocked( DisplayEventReceiver.FrameRateOverride[] overrides, @Nullable float[] supportedRefreshRates) { if (updateActiveModeAndFrameOverrideChangedLocked(mActiveSfDisplayMode.id, float[] supportedRefreshRates) { onModeAndFrameRateOverridesChangedLocked(mActiveSfDisplayMode.id, mActiveRenderFrameRate, mAppVsyncOffsetNanos, mPresentationDeadlineNanos, overrides, supportedRefreshRates == null ? mSupportedRefreshRates : supportedRefreshRates)) { updateDeviceInfoLocked(); overrides, supportedRefreshRates); } } private void onModeAndFrameRateOverridesChangedLocked( int sfModeId, float renderFrameRate, long appVsyncOffsetNanos, long presentationDeadlineNanos, Loading Loading @@ -1637,12 +1626,6 @@ final class LocalDisplayAdapter extends DisplayAdapter { public interface DisplayEventListener { void onHotplug(long timestampNanos, long physicalDisplayId, boolean connected); void onHotplugConnectionError(long timestampNanos, int connectionError); void onModeChanged(long timestampNanos, long physicalDisplayId, int modeId, long renderPeriod, long appVsyncOffsetNanos, long presentationDeadlineNanos, @Nullable float[] supportedRefreshRates); void onFrameRateOverridesChanged(long timestampNanos, long physicalDisplayId, DisplayEventReceiver.FrameRateOverride[] overrides, @Nullable float[] supportedRefreshRates); void onModeAndFrameRateOverridesChanged(long timestampNanos, long physicalDisplayId, int modeId, long renderPeriod, long appVsyncOffsetNanos, long presentationDeadlineNanos, DisplayEventReceiver.FrameRateOverride[] overrides, Loading Loading @@ -1671,14 +1654,6 @@ final class LocalDisplayAdapter extends DisplayAdapter { mListener.onHotplugConnectionError(timestampNanos, errorCode); } @Override public void onModeChanged(long timestampNanos, long physicalDisplayId, int modeId, long renderPeriod, long appVsyncOffsetNanos, long presentationDeadlineNanos) { mListener.onModeChanged(timestampNanos, physicalDisplayId, modeId, renderPeriod, appVsyncOffsetNanos, presentationDeadlineNanos, /*supportedRefreshRates*/ null); } public void onModeAndFrameRateOverridesChanged(long timestampNanos, long physicalDisplayId, int modeId, long renderPeriod, long appVsyncOffsetNanos, long presentationDeadlineNanos, Loading @@ -1689,13 +1664,6 @@ final class LocalDisplayAdapter extends DisplayAdapter { supportedRefreshRates); } @Override public void onFrameRateOverridesChanged(long timestampNanos, long physicalDisplayId, DisplayEventReceiver.FrameRateOverride[] overrides) { mListener.onFrameRateOverridesChanged(timestampNanos, physicalDisplayId, overrides, /*supportedRefreshRates*/ null); } @Override public void onHdcpLevelsChanged(long physicalDisplayId, int connectedLevel, int maxLevel) { mListener.onHdcpLevelsChanged(physicalDisplayId, connectedLevel, maxLevel); Loading Loading @@ -1724,11 +1692,9 @@ final class LocalDisplayAdapter extends DisplayAdapter { mDisplayNotificationManager.onHotplugConnectionError(); } @Override public void onModeChanged(long timestampNanos, long physicalDisplayId, int modeId, private void onModeChanged(long timestampNanos, long physicalDisplayId, int modeId, long renderPeriod, long appVsyncOffsetNanos, long presentationDealineNanos, @Nullable float[] supportedRefreshRates) { float[] supportedRefreshRates) { if (DEBUG) { Slog.d(TAG, "onModeChanged(" + "timestampNanos=" + timestampNanos Loading Loading @@ -1756,10 +1722,9 @@ final class LocalDisplayAdapter extends DisplayAdapter { } } @Override public void onFrameRateOverridesChanged(long timestampNanos, long physicalDisplayId, private void onFrameRateOverridesChanged(long timestampNanos, long physicalDisplayId, DisplayEventReceiver.FrameRateOverride[] overrides, @Nullable float[] supportedRefreshRates) { float[] supportedRefreshRates) { if (DEBUG) { Slog.d(TAG, "onFrameRateOverrideChanged(timestampNanos=" + timestampNanos + ", physicalDisplayId=" + physicalDisplayId + " overrides=" Loading
services/tests/displayservicetests/src/com/android/server/display/LocalDisplayAdapterTest.java +3 −11 Original line number Diff line number Diff line Loading @@ -885,9 +885,10 @@ public class LocalDisplayAdapterTest { long newAppVsyncOffsetNanos = 400; long newPresentationDeadlineNanos = 500; mInjector.getTransmitter().sendOnModeChanged(display, mInjector.getTransmitter().sendOnModeAndFrameRateOverridesChanged(display, 1, (long) displayMode2.peakRefreshRate, newAppVsyncOffsetNanos, newPresentationDeadlineNanos); newPresentationDeadlineNanos, new FrameRateOverride[0], /*supportedRefreshRates*/ new float[0]); waitForHandlerToComplete(mHandler, HANDLER_WAIT_MS); assertTrue(mListener.traversalRequested); Loading Loading @@ -1934,15 +1935,6 @@ public class LocalDisplayAdapterTest { waitForHandlerToComplete(mHandler, HANDLER_WAIT_MS); } public void sendOnModeChanged(FakeDisplay display, int modeId, long renderPeriod, long appVsyncOffsetNanos, long presentationDeadlineNanos) throws InterruptedException { mHandler.post(() -> mListener.onModeChanged(/* timestampNanos = */ 0, display.address.getPhysicalDisplayId(), modeId, renderPeriod, appVsyncOffsetNanos, presentationDeadlineNanos, /*supportedRefreshRate*/ null)); waitForHandlerToComplete(mHandler, HANDLER_WAIT_MS); } public void sendOnModeAndFrameRateOverridesChanged(FakeDisplay display, int modeId, long renderPeriod, long appVsyncOffsetNanos, long presentationDeadlineNanos, FrameRateOverride[] frameRateOverrides, float[] supportedRefreshRates) Loading