Make sure protocol version is always set in sync services
* A recent change caused an issue in which protocolVersion could be null, resulting in an NPE * Ensure that protocolVersion is always set to a valid version, defaulting to 2.5 Bug: 2353859 Change-Id: I6e07ba3df5362c988658e401bebc1776a6780876
This commit is contained in:
parent
f06d3c2d90
commit
89ab89dd83
@ -91,6 +91,9 @@ public class EasSyncService extends AbstractSyncService {
|
|||||||
static private final String PING_COMMAND = "Ping";
|
static private final String PING_COMMAND = "Ping";
|
||||||
static private final int COMMAND_TIMEOUT = 20*SECONDS;
|
static private final int COMMAND_TIMEOUT = 20*SECONDS;
|
||||||
|
|
||||||
|
// Define our default protocol version as 2.5 (Exchange 2003)
|
||||||
|
static private final String DEFAULT_PROTOCOL_VERSION = "2.5";
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* We start with an 8 minute timeout, and increase/decrease by 3 minutes at a time. There's
|
* We start with an 8 minute timeout, and increase/decrease by 3 minutes at a time. There's
|
||||||
* no point having a timeout shorter than 5 minutes, I think; at that point, we can just let
|
* no point having a timeout shorter than 5 minutes, I think; at that point, we can just let
|
||||||
@ -119,7 +122,7 @@ public class EasSyncService extends AbstractSyncService {
|
|||||||
static private final int PING_FALLBACK_PIM = 25;
|
static private final int PING_FALLBACK_PIM = 25;
|
||||||
|
|
||||||
// Reasonable default
|
// Reasonable default
|
||||||
String mProtocolVersion = "2.5";
|
public String mProtocolVersion = DEFAULT_PROTOCOL_VERSION;
|
||||||
public Double mProtocolVersionDouble;
|
public Double mProtocolVersionDouble;
|
||||||
protected String mDeviceId = null;
|
protected String mDeviceId = null;
|
||||||
private String mDeviceType = "Android";
|
private String mDeviceType = "Android";
|
||||||
@ -557,7 +560,7 @@ public class EasSyncService extends AbstractSyncService {
|
|||||||
SyncManager.kick("change ping boxes to push");
|
SyncManager.kick("change ping boxes to push");
|
||||||
}
|
}
|
||||||
|
|
||||||
// Determine our protocol version, if we haven't already
|
// Determine our protocol version, if we haven't already and save it in the Account
|
||||||
if (mAccount.mProtocolVersion == null) {
|
if (mAccount.mProtocolVersion == null) {
|
||||||
userLog("Determine EAS protocol version");
|
userLog("Determine EAS protocol version");
|
||||||
HttpResponse resp = sendHttpClientOptions();
|
HttpResponse resp = sendHttpClientOptions();
|
||||||
@ -574,6 +577,10 @@ public class EasSyncService extends AbstractSyncService {
|
|||||||
}
|
}
|
||||||
mProtocolVersionDouble = Double.parseDouble(mProtocolVersion);
|
mProtocolVersionDouble = Double.parseDouble(mProtocolVersion);
|
||||||
mAccount.mProtocolVersion = mProtocolVersion;
|
mAccount.mProtocolVersion = mProtocolVersion;
|
||||||
|
// Save the protocol version
|
||||||
|
cv.clear();
|
||||||
|
cv.put(Account.PROTOCOL_VERSION, mProtocolVersion);
|
||||||
|
mAccount.update(mContext, cv);
|
||||||
userLog(versions);
|
userLog(versions);
|
||||||
userLog("Using version ", mProtocolVersion);
|
userLog("Using version ", mProtocolVersion);
|
||||||
} else {
|
} else {
|
||||||
@ -588,7 +595,7 @@ public class EasSyncService extends AbstractSyncService {
|
|||||||
|
|
||||||
// Change all pushable boxes to push when we start the account mailbox
|
// Change all pushable boxes to push when we start the account mailbox
|
||||||
if (mAccount.mSyncInterval == Account.CHECK_INTERVAL_PUSH) {
|
if (mAccount.mSyncInterval == Account.CHECK_INTERVAL_PUSH) {
|
||||||
cv = new ContentValues();
|
cv.clear();
|
||||||
cv.put(Mailbox.SYNC_INTERVAL, Mailbox.CHECK_INTERVAL_PUSH);
|
cv.put(Mailbox.SYNC_INTERVAL, Mailbox.CHECK_INTERVAL_PUSH);
|
||||||
if (mContentResolver.update(Mailbox.CONTENT_URI, cv,
|
if (mContentResolver.update(Mailbox.CONTENT_URI, cv,
|
||||||
SyncManager.WHERE_IN_ACCOUNT_AND_PUSHABLE,
|
SyncManager.WHERE_IN_ACCOUNT_AND_PUSHABLE,
|
||||||
@ -623,7 +630,7 @@ public class EasSyncService extends AbstractSyncService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Change all push/hold boxes to push
|
// Change all push/hold boxes to push
|
||||||
cv = new ContentValues();
|
cv.clear();
|
||||||
cv.put(Mailbox.SYNC_INTERVAL, Account.CHECK_INTERVAL_PUSH);
|
cv.put(Mailbox.SYNC_INTERVAL, Account.CHECK_INTERVAL_PUSH);
|
||||||
if (mContentResolver.update(Mailbox.CONTENT_URI, cv,
|
if (mContentResolver.update(Mailbox.CONTENT_URI, cv,
|
||||||
WHERE_PUSH_HOLD_NOT_ACCOUNT_MAILBOX,
|
WHERE_PUSH_HOLD_NOT_ACCOUNT_MAILBOX,
|
||||||
@ -1101,11 +1108,13 @@ public class EasSyncService extends AbstractSyncService {
|
|||||||
mUserName = ha.mLogin;
|
mUserName = ha.mLogin;
|
||||||
mPassword = ha.mPassword;
|
mPassword = ha.mPassword;
|
||||||
|
|
||||||
// Set up our protocol version
|
// Set up our protocol version from the Account
|
||||||
mProtocolVersion = mAccount.mProtocolVersion;
|
mProtocolVersion = mAccount.mProtocolVersion;
|
||||||
if (mProtocolVersion != null) {
|
// If it hasn't been set up, start with default version
|
||||||
mProtocolVersionDouble = Double.parseDouble(mProtocolVersion);
|
if (mProtocolVersion == null) {
|
||||||
|
mProtocolVersion = DEFAULT_PROTOCOL_VERSION;
|
||||||
}
|
}
|
||||||
|
mProtocolVersionDouble = Double.parseDouble(mProtocolVersion);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user