From: Lennart Rosam Date: Wed, 11 Apr 2012 20:39:24 +0000 (+0200) Subject: Fixed that small todo: Set KeepAlive based on the response code X-Git-Tag: oc-android-1.4.3~458 X-Git-Url: http://git.linex4red.de/pub/Android/ownCloud.git/commitdiff_plain/f0ed8b7362e77d35d8b19c46301134566966d027?ds=inline;hp=--cc Fixed that small todo: Set KeepAlive based on the response code --- f0ed8b7362e77d35d8b19c46301134566966d027 diff --git a/src/eu/alefzero/owncloud/syncadapter/AbstractOwnCloudSyncAdapter.java b/src/eu/alefzero/owncloud/syncadapter/AbstractOwnCloudSyncAdapter.java index b06ac539..73e41d2e 100644 --- a/src/eu/alefzero/owncloud/syncadapter/AbstractOwnCloudSyncAdapter.java +++ b/src/eu/alefzero/owncloud/syncadapter/AbstractOwnCloudSyncAdapter.java @@ -39,22 +39,20 @@ import android.accounts.AuthenticatorException; import android.accounts.OperationCanceledException; import android.content.AbstractThreadedSyncAdapter; import android.content.ContentProviderClient; -import android.content.ContentResolver; import android.content.Context; import android.net.Uri; import android.text.TextUtils; -import android.util.Log; import eu.alefzero.owncloud.authenticator.AccountAuthenticator; import eu.alefzero.owncloud.datamodel.OCFile; import eu.alefzero.webdav.HttpPropFind; import eu.alefzero.webdav.TreeNode; +import eu.alefzero.webdav.TreeNode.NodeProperty; import eu.alefzero.webdav.WebdavClient; import eu.alefzero.webdav.WebdavUtils; -import eu.alefzero.webdav.TreeNode.NodeProperty; /** * 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 * @@ -109,9 +107,19 @@ public abstract class AbstractOwnCloudSyncAdapter extends AbstractThreadedSyncAd 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 + int statusCode = response.getStatusLine().getStatusCode(); + + // HTTP 400, 500 Errors as well as HTTP 118 - Connection timed out + if((statusCode >= 400 && statusCode <= 418) || + (statusCode >= 421 && statusCode <= 426) || + (statusCode >= 500 && statusCode <= 510 ) || + statusCode == 118) { + return 0; + } + return 5 * 1000; } };