c5e3f9463d
This makes it harder to diagnose problems. Bug: 117888000 Test: all tests affected by the change Change-Id: I354e86af0929531653cf59ce1eb6435018c20e1a
42 lines
1.1 KiB
Java
42 lines
1.1 KiB
Java
package com.android.launcher3.util;
|
|
|
|
import android.os.SystemClock;
|
|
|
|
import org.junit.Assert;
|
|
|
|
/**
|
|
* A utility class for waiting for a condition to be true.
|
|
*/
|
|
public class Wait {
|
|
|
|
private static final long DEFAULT_SLEEP_MS = 200;
|
|
|
|
public static void atMost(String message, Condition condition, long timeout) {
|
|
atMost(message, condition, timeout, DEFAULT_SLEEP_MS);
|
|
}
|
|
|
|
public static void atMost(String message, Condition condition, long timeout, long sleepMillis) {
|
|
long endTime = SystemClock.uptimeMillis() + timeout;
|
|
while (SystemClock.uptimeMillis() < endTime) {
|
|
try {
|
|
if (condition.isTrue()) {
|
|
return;
|
|
}
|
|
} catch (Throwable t) {
|
|
throw new RuntimeException(t);
|
|
}
|
|
SystemClock.sleep(sleepMillis);
|
|
}
|
|
|
|
// Check once more before returning false.
|
|
try {
|
|
if (condition.isTrue()) {
|
|
return;
|
|
}
|
|
} catch (Throwable t) {
|
|
throw new RuntimeException(t);
|
|
}
|
|
Assert.fail(message);
|
|
}
|
|
}
|