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

Commit ddfa755e authored by Treehugger Robot's avatar Treehugger Robot Committed by Android (Google) Code Review
Browse files

Merge "[VRR] Ensure refresh rate is reset when only categories are voted" into main

parents b2663a24 32ba6b35
Loading
Loading
Loading
Loading
+3 −1
Original line number Diff line number Diff line
@@ -4261,7 +4261,9 @@ public final class ViewRootImpl implements ViewParent,
            updateInfrequentCount();
            setPreferredFrameRate(mPreferredFrameRate);
            setPreferredFrameRateCategory(mPreferredFrameRateCategory);
            if (!mIsFrameRateConflicted) {
            if (mPreferredFrameRate > 0
                    || (mLastPreferredFrameRate != 0 && mPreferredFrameRate == 0)
            ) {
                mHandler.removeMessages(MSG_FRAME_RATE_SETTING);
                mHandler.sendEmptyMessageDelayed(MSG_FRAME_RATE_SETTING,
                        FRAME_RATE_SETTING_REEVALUATE_TIME);
+20 −0
Original line number Diff line number Diff line
@@ -564,6 +564,26 @@ public class ViewFrameRateTest {
        assertEquals(0f, mViewRoot.getLastPreferredFrameRate(), 0f);
    }

    @Test
    @RequiresFlagsEnabled({FLAG_TOOLKIT_SET_FRAME_RATE_READ_ONLY,
            FLAG_TOOLKIT_FRAME_RATE_VIEW_ENABLING_READ_ONLY
    })
    public void frameRateResetWithInvalidations() throws Throwable {
        mMovingView.setRequestedFrameRate(120f);
        waitForFrameRateCategoryToSettle();
        mMovingView.setRequestedFrameRate(View.REQUESTED_FRAME_RATE_CATEGORY_NORMAL);

        for (int i = 0; i < 120; i++) {
            mActivityRule.runOnUiThread(() -> {
                mMovingView.invalidate();
                runAfterDraw(() -> {});
            });
            waitForAfterDraw();
        }

        assertEquals(0f, mViewRoot.getLastPreferredFrameRate(), 0f);
    }

    private void runAfterDraw(@NonNull Runnable runnable) {
        Handler handler = new Handler(Looper.getMainLooper());
        mAfterDrawLatch = new CountDownLatch(1);