RuffyScripter.verifyMenuIsDisplayed: wait a bit longer if needed.

Sometimes the pump seems to take a bit longer.
This commit is contained in:
Johannes Mockenhaupt 2017-07-14 17:28:57 +02:00
parent 76578872d1
commit d35d93ed44
No known key found for this signature in database
GPG key ID: 9E1EA6AF7BBBB0D1

View file

@ -209,12 +209,14 @@ public class RuffyScripter {
pressKey(Key.MENU);
}
/** Wait until the menu update is in */
/**
* Wait until the menu update is in
*/
public void waitForMenuUpdate() {
long timeoutExpired = System.currentTimeMillis() + 90 * 1000;
long initialUpdateTime = menuLastUpdated;
while (initialUpdateTime == menuLastUpdated) {
if(System.currentTimeMillis() > timeoutExpired) {
if (System.currentTimeMillis() > timeoutExpired) {
throw new CommandException().message("Timeout waiting for menu update");
}
SystemClock.sleep(50);
@ -232,7 +234,6 @@ public class RuffyScripter {
SystemClock.sleep(100);
ruffyService.rtSendKey(Key.NO_KEY, true);
}*/
private void pressKey(final byte key) {
try {
ruffyService.rtSendKey(key, true);
@ -269,16 +270,22 @@ public class RuffyScripter {
}
}
public void verifyMenuIsDisplayed(MenuType menu) {
String message = "Invalid pump state, expected to be in menu "
+ menu + ", but current menu is " + currentMenu.getType();
verifyMenuIsDisplayed(menu, message);
public void verifyMenuIsDisplayed(MenuType expectedMenu) {
String failureMessage = "Invalid pump state, expected to be in menu "
+ expectedMenu + ", but current menu is " + currentMenu.getType();
verifyMenuIsDisplayed(expectedMenu, failureMessage);
}
public void verifyMenuIsDisplayed(MenuType menu, String message) {
public void verifyMenuIsDisplayed(MenuType expectedMenu, String failureMessage) {
waitForMenuUpdate();
if (currentMenu.getType() != menu) {
throw new CommandException().message(message);
int retries = 5;
while (currentMenu.getType() != expectedMenu) {
if (retries > 0) {
SystemClock.sleep(200);
retries = retries - 1;
} else {
throw new CommandException().message(failureMessage);
}
}
}
}