EFA: Make parsing of server time ('now' attribute) optional.

This commit is contained in:
Andreas Schildbach 2015-11-16 21:43:07 +01:00
parent f0b33c97e2
commit 8113f8b775

View file

@ -3349,14 +3349,23 @@ public abstract class AbstractEfaProvider extends AbstractNetworkProvider
XmlPullUtil.require(pp, "itdRequest"); XmlPullUtil.require(pp, "itdRequest");
final String serverVersion = XmlPullUtil.attr(pp, "version"); final String serverVersion = XmlPullUtil.attr(pp, "version");
final String now = XmlPullUtil.attr(pp, "now"); final String now = XmlPullUtil.optAttr(pp, "now", null);
final String sessionId = XmlPullUtil.attr(pp, "sessionID"); final String sessionId = XmlPullUtil.attr(pp, "sessionID");
final Calendar serverTime = new GregorianCalendar(timeZone); final long serverTime;
ParserUtils.parseIsoDate(serverTime, now.substring(0, 10)); if (now != null)
ParserUtils.parseEuropeanTime(serverTime, now.substring(11)); {
final Calendar calendar = new GregorianCalendar(timeZone);
ParserUtils.parseIsoDate(calendar, now.substring(0, 10));
ParserUtils.parseEuropeanTime(calendar, now.substring(11));
serverTime = calendar.getTimeInMillis();
}
else
{
serverTime = 0;
}
final ResultHeader header = new ResultHeader(network, SERVER_PRODUCT, serverVersion, serverTime.getTimeInMillis(), sessionId); final ResultHeader header = new ResultHeader(network, SERVER_PRODUCT, serverVersion, serverTime, sessionId);
XmlPullUtil.enter(pp, "itdRequest"); XmlPullUtil.enter(pp, "itdRequest");