import android.accounts.OperationCanceledException;\r
import android.content.AbstractThreadedSyncAdapter;\r
import android.content.ContentProviderClient;\r
-import android.content.ContentResolver;\r
import android.content.Context;\r
import android.net.Uri;\r
import android.text.TextUtils;\r
-import android.util.Log;\r
import eu.alefzero.owncloud.authenticator.AccountAuthenticator;\r
import eu.alefzero.owncloud.datamodel.OCFile;\r
import eu.alefzero.webdav.HttpPropFind;\r
import eu.alefzero.webdav.TreeNode;\r
+import eu.alefzero.webdav.TreeNode.NodeProperty;\r
import eu.alefzero.webdav.WebdavClient;\r
import eu.alefzero.webdav.WebdavUtils;\r
-import eu.alefzero.webdav.TreeNode.NodeProperty;\r
/**
* Base SyncAdapter for OwnCloud
- * Designed to be subclassed for the concreete SyncAdapter, like ConcatsSync, CalendarSync, FileSync etc..
+ * Designed to be subclassed for the concrete SyncAdapter, like ConcatsSync, CalendarSync, FileSync etc..
*
* @author sassman
*
protected ConnectionKeepAliveStrategy getKeepAliveStrategy() {
return new ConnectionKeepAliveStrategy() {
public long getKeepAliveDuration(HttpResponse response, HttpContext context) {
- // TODO: change keep alive straategy basing on response: ie forbidden/not found/etc
+ // Change keep alive straategy basing on response: ie forbidden/not found/etc
// should have keep alive 0
- // default return: 5s
+ // default return: 5s\r
+ int statusCode = response.getStatusLine().getStatusCode();\r
+ \r
+ // HTTP 400, 500 Errors as well as HTTP 118 - Connection timed out\r
+ if((statusCode >= 400 && statusCode <= 418) || \r
+ (statusCode >= 421 && statusCode <= 426) ||\r
+ (statusCode >= 500 && statusCode <= 510 ) ||\r
+ statusCode == 118) {\r
+ return 0;\r
+ }\r
+
return 5 * 1000;
}
};