Loading core/java/android/view/View.java +6 −6 Original line number Diff line number Diff line Loading @@ -23705,12 +23705,6 @@ public class View implements Drawable.Callback, KeyEvent.Callback, mPrivateFlags |= PFLAG_DRAWN | PFLAG_DRAWING_CACHE_VALID; mPrivateFlags &= ~PFLAG_DIRTY_MASK; // // For VRR to vote the preferred frame rate if (sToolkitSetFrameRateReadOnlyFlagValue && sToolkitFrameRateViewEnablingReadOnlyFlagValue) { votePreferredFrameRate(); } mPrivateFlags4 |= PFLAG4_HAS_DRAWN; // Fast path for layouts with no backgrounds Loading @@ -23727,6 +23721,12 @@ public class View implements Drawable.Callback, KeyEvent.Callback, draw(canvas); } } // For VRR to vote the preferred frame rate if (sToolkitSetFrameRateReadOnlyFlagValue && sToolkitFrameRateViewEnablingReadOnlyFlagValue) { votePreferredFrameRate(); } } finally { renderNode.endRecording(); setDisplayListProperties(renderNode); core/tests/coretests/src/android/view/ViewRootImplTest.java +25 −0 Original line number Diff line number Diff line Loading @@ -1286,6 +1286,31 @@ public class ViewRootImplTest { waitForAfterDraw(); } @Test @RequiresFlagsEnabled(FLAG_TOOLKIT_FRAME_RATE_VIEW_ENABLING_READ_ONLY) public void votePreferredFrameRate_velocityVotedAfterOnDraw() throws Throwable { mView = new View(sContext); double delta = 0.1; float pixelsPerSecond = 1000_000; float expectedFrameRate = 120; attachViewToWindow(mView); sInstrumentation.waitForIdleSync(); ViewRootImpl viewRoot = mView.getViewRootImpl(); waitForFrameRateCategoryToSettle(mView); sInstrumentation.runOnMainSync(() -> { mView.setFrameContentVelocity(pixelsPerSecond); mView.invalidate(); assertEquals(0, viewRoot.getPreferredFrameRate(), delta); assertEquals(0, viewRoot.getLastPreferredFrameRate(), delta); runAfterDraw(() -> { assertEquals(expectedFrameRate, viewRoot.getPreferredFrameRate(), delta); assertEquals(expectedFrameRate, viewRoot.getLastPreferredFrameRate(), delta); }); }); waitForAfterDraw(); } @Test public void forceInvertOffDarkThemeOff_forceDarkModeDisabled() { mSetFlagsRule.enableFlags(FLAG_FORCE_INVERT_COLOR); Loading Loading
core/java/android/view/View.java +6 −6 Original line number Diff line number Diff line Loading @@ -23705,12 +23705,6 @@ public class View implements Drawable.Callback, KeyEvent.Callback, mPrivateFlags |= PFLAG_DRAWN | PFLAG_DRAWING_CACHE_VALID; mPrivateFlags &= ~PFLAG_DIRTY_MASK; // // For VRR to vote the preferred frame rate if (sToolkitSetFrameRateReadOnlyFlagValue && sToolkitFrameRateViewEnablingReadOnlyFlagValue) { votePreferredFrameRate(); } mPrivateFlags4 |= PFLAG4_HAS_DRAWN; // Fast path for layouts with no backgrounds Loading @@ -23727,6 +23721,12 @@ public class View implements Drawable.Callback, KeyEvent.Callback, draw(canvas); } } // For VRR to vote the preferred frame rate if (sToolkitSetFrameRateReadOnlyFlagValue && sToolkitFrameRateViewEnablingReadOnlyFlagValue) { votePreferredFrameRate(); } } finally { renderNode.endRecording(); setDisplayListProperties(renderNode);
core/tests/coretests/src/android/view/ViewRootImplTest.java +25 −0 Original line number Diff line number Diff line Loading @@ -1286,6 +1286,31 @@ public class ViewRootImplTest { waitForAfterDraw(); } @Test @RequiresFlagsEnabled(FLAG_TOOLKIT_FRAME_RATE_VIEW_ENABLING_READ_ONLY) public void votePreferredFrameRate_velocityVotedAfterOnDraw() throws Throwable { mView = new View(sContext); double delta = 0.1; float pixelsPerSecond = 1000_000; float expectedFrameRate = 120; attachViewToWindow(mView); sInstrumentation.waitForIdleSync(); ViewRootImpl viewRoot = mView.getViewRootImpl(); waitForFrameRateCategoryToSettle(mView); sInstrumentation.runOnMainSync(() -> { mView.setFrameContentVelocity(pixelsPerSecond); mView.invalidate(); assertEquals(0, viewRoot.getPreferredFrameRate(), delta); assertEquals(0, viewRoot.getLastPreferredFrameRate(), delta); runAfterDraw(() -> { assertEquals(expectedFrameRate, viewRoot.getPreferredFrameRate(), delta); assertEquals(expectedFrameRate, viewRoot.getLastPreferredFrameRate(), delta); }); }); waitForAfterDraw(); } @Test public void forceInvertOffDarkThemeOff_forceDarkModeDisabled() { mSetFlagsRule.enableFlags(FLAG_FORCE_INVERT_COLOR); Loading