Fixes use of elapsedRealtime vs uptimeMillis

This was breaking timeouts in most cases.

Test: atest ScrollCaptureTargetResolverTest
Bug: 148131831
Change-Id: I212039e6d98c77528346405b1003aa295e96f957
This commit is contained in:
Mark Renouf
2020-12-09 17:25:28 -05:00
parent ade199be34
commit f2c137464f

View File

@@ -182,9 +182,8 @@ public class ScrollCaptureTargetResolver {
}
mResult = chooseTarget(mResult, target);
boolean finish = mPendingBoundsRequests == 0
|| SystemClock.elapsedRealtime() >= mDeadlineMillis;
|| SystemClock.uptimeMillis() >= mDeadlineMillis;
if (finish) {
System.err.println("We think we're done, or timed out");
mPendingBoundsRequests = 0;
mWhenComplete.accept(mResult);
synchronized (mLock) {
@@ -233,7 +232,7 @@ public class ScrollCaptureTargetResolver {
for (ScrollCaptureTarget target : mTargets) {
queryTarget(target);
}
mDeadlineMillis = SystemClock.elapsedRealtime() + mTimeLimitMillis;
mDeadlineMillis = SystemClock.uptimeMillis() + mTimeLimitMillis;
mHandler.postAtTime(mTimeoutRunnable, mDeadlineMillis);
}
@@ -275,7 +274,7 @@ public class ScrollCaptureTargetResolver {
mHandler.removeCallbacks(mTimeoutRunnable);
boolean doneOrTimedOut = mPendingBoundsRequests == 0
|| SystemClock.elapsedRealtime() >= mDeadlineMillis;
|| SystemClock.uptimeMillis() >= mDeadlineMillis;
final View containingView = target.getContainingView();
if (!nullOrEmpty(scrollBounds) && containingView.isAggregatedVisible()) {