Loading core/java/android/view/ViewRootImpl.java +5 −9 Original line number Diff line number Diff line Loading @@ -4085,6 +4085,7 @@ public final class ViewRootImpl implements ViewParent, setPreferredFrameRate(mPreferredFrameRate); setPreferredFrameRateCategory(mPreferredFrameRateCategory); mPreferredFrameRateCategory = FRAME_RATE_CATEGORY_NO_PREFERENCE; mPreferredFrameRate = -1; } private void createSyncIfNeeded() { Loading Loading @@ -12296,7 +12297,8 @@ public final class ViewRootImpl implements ViewParent, } try { if (mLastPreferredFrameRate != preferredFrameRate) { if (mLastPreferredFrameRate != preferredFrameRate && preferredFrameRate >= 0) { if (Trace.isTagEnabled(Trace.TRACE_TAG_VIEW)) { Trace.traceBegin( Trace.TRACE_TAG_VIEW, "ViewRootImpl#setFrameRate " Loading Loading @@ -12368,13 +12370,7 @@ public final class ViewRootImpl implements ViewParent, return; } if (mPreferredFrameRate == 0) { mPreferredFrameRate = frameRate; } else if (frameRate > 60 || mPreferredFrameRate > 60) { mPreferredFrameRate = Math.max(mPreferredFrameRate, frameRate); } else if (mPreferredFrameRate != frameRate) { mPreferredFrameRate = 60; } mHasInvalidation = true; mHandler.removeMessages(MSG_FRAME_RATE_SETTING); Loading Loading @@ -12403,7 +12399,7 @@ public final class ViewRootImpl implements ViewParent, */ @VisibleForTesting public float getPreferredFrameRate() { return mPreferredFrameRate; return mPreferredFrameRate >= 0 ? mPreferredFrameRate : mLastPreferredFrameRate; } /** core/tests/coretests/src/android/view/ViewRootImplTest.java +2 −0 Original line number Diff line number Diff line Loading @@ -699,6 +699,8 @@ public class ViewRootImplTest { viewRootImpl.votePreferredFrameRate(24); assertEquals(viewRootImpl.getPreferredFrameRate(), 24, 0.1); viewRootImpl.votePreferredFrameRate(30); assertEquals(viewRootImpl.getPreferredFrameRate(), 30, 0.1); viewRootImpl.votePreferredFrameRate(60); assertEquals(viewRootImpl.getPreferredFrameRate(), 60, 0.1); viewRootImpl.votePreferredFrameRate(120); assertEquals(viewRootImpl.getPreferredFrameRate(), 120, 0.1); Loading Loading
core/java/android/view/ViewRootImpl.java +5 −9 Original line number Diff line number Diff line Loading @@ -4085,6 +4085,7 @@ public final class ViewRootImpl implements ViewParent, setPreferredFrameRate(mPreferredFrameRate); setPreferredFrameRateCategory(mPreferredFrameRateCategory); mPreferredFrameRateCategory = FRAME_RATE_CATEGORY_NO_PREFERENCE; mPreferredFrameRate = -1; } private void createSyncIfNeeded() { Loading Loading @@ -12296,7 +12297,8 @@ public final class ViewRootImpl implements ViewParent, } try { if (mLastPreferredFrameRate != preferredFrameRate) { if (mLastPreferredFrameRate != preferredFrameRate && preferredFrameRate >= 0) { if (Trace.isTagEnabled(Trace.TRACE_TAG_VIEW)) { Trace.traceBegin( Trace.TRACE_TAG_VIEW, "ViewRootImpl#setFrameRate " Loading Loading @@ -12368,13 +12370,7 @@ public final class ViewRootImpl implements ViewParent, return; } if (mPreferredFrameRate == 0) { mPreferredFrameRate = frameRate; } else if (frameRate > 60 || mPreferredFrameRate > 60) { mPreferredFrameRate = Math.max(mPreferredFrameRate, frameRate); } else if (mPreferredFrameRate != frameRate) { mPreferredFrameRate = 60; } mHasInvalidation = true; mHandler.removeMessages(MSG_FRAME_RATE_SETTING); Loading Loading @@ -12403,7 +12399,7 @@ public final class ViewRootImpl implements ViewParent, */ @VisibleForTesting public float getPreferredFrameRate() { return mPreferredFrameRate; return mPreferredFrameRate >= 0 ? mPreferredFrameRate : mLastPreferredFrameRate; } /**
core/tests/coretests/src/android/view/ViewRootImplTest.java +2 −0 Original line number Diff line number Diff line Loading @@ -699,6 +699,8 @@ public class ViewRootImplTest { viewRootImpl.votePreferredFrameRate(24); assertEquals(viewRootImpl.getPreferredFrameRate(), 24, 0.1); viewRootImpl.votePreferredFrameRate(30); assertEquals(viewRootImpl.getPreferredFrameRate(), 30, 0.1); viewRootImpl.votePreferredFrameRate(60); assertEquals(viewRootImpl.getPreferredFrameRate(), 60, 0.1); viewRootImpl.votePreferredFrameRate(120); assertEquals(viewRootImpl.getPreferredFrameRate(), 120, 0.1); Loading