-/* ownCloud Android client application\r
+/**\r
+ * ownCloud Android client application\r
+ *\r
+ * @author sassman\r
+ * @author David A. Velasco\r
* Copyright (C) 2011 Bartek Przybylski\r
- * Copyright (C) 2012-2013 ownCloud Inc.\r
+ * Copyright (C) 2015 ownCloud Inc.\r
*\r
* This program is free software: you can redistribute it and/or modify\r
* it under the terms of the GNU General Public License version 2,\r
package com.owncloud.android.syncadapter;\r
\r
import java.io.IOException;\r
-import java.net.UnknownHostException;\r
-import java.util.Date;\r
\r
import org.apache.http.HttpRequest;\r
import org.apache.http.HttpResponse;\r
import org.apache.http.client.ClientProtocolException;\r
-import org.apache.http.conn.ConnectionKeepAliveStrategy;\r
-import org.apache.http.protocol.HttpContext;\r
\r
-import com.owncloud.android.AccountUtils;\r
-import com.owncloud.android.datamodel.DataStorageManager;\r
-import com.owncloud.android.network.OwnCloudClientUtils;\r
+import com.owncloud.android.MainApp;\r
+import com.owncloud.android.datamodel.FileDataStorageManager;\r
+import com.owncloud.android.lib.common.accounts.AccountUtils;\r
+import com.owncloud.android.lib.common.accounts.AccountUtils.AccountNotFoundException;\r
+import com.owncloud.android.lib.common.OwnCloudAccount;\r
+import com.owncloud.android.lib.common.OwnCloudClient;\r
+import com.owncloud.android.lib.common.OwnCloudClientManagerFactory;\r
\r
import android.accounts.Account;\r
import android.accounts.AccountManager;\r
import android.content.AbstractThreadedSyncAdapter;\r
import android.content.ContentProviderClient;\r
import android.content.Context;\r
-import eu.alefzero.webdav.WebdavClient;\r
\r
/**\r
- * Base SyncAdapter for OwnCloud Designed to be subclassed for the concrete\r
- * SyncAdapter, like ConcatsSync, CalendarSync, FileSync etc..\r
- * \r
- * @author sassman\r
+ * Base synchronization adapter for ownCloud designed to be subclassed for different\r
+ * resource types, like FileSync, ConcatsSync, CalendarSync, etc..\r
* \r
+ * Implements the standard {@link AbstractThreadedSyncAdapter}.\r
*/\r
public abstract class AbstractOwnCloudSyncAdapter extends\r
AbstractThreadedSyncAdapter {\r
\r
private AccountManager accountManager;\r
private Account account;\r
- private ContentProviderClient contentProvider;\r
- private Date lastUpdated;\r
- private DataStorageManager mStoreManager;\r
+ private ContentProviderClient mContentProviderClient;\r
+ private FileDataStorageManager mStoreManager;\r
\r
- private WebdavClient mClient = null;\r
+ private OwnCloudClient mClient = null;\r
\r
public AbstractOwnCloudSyncAdapter(Context context, boolean autoInitialize) {\r
super(context, autoInitialize);\r
this.setAccountManager(AccountManager.get(context));\r
}\r
\r
+ public AbstractOwnCloudSyncAdapter(Context context, boolean autoInitialize,\r
+ boolean allowParallelSyncs) {\r
+ super(context, autoInitialize, allowParallelSyncs);\r
+ this.setAccountManager(AccountManager.get(context));\r
+ }\r
+\r
public AccountManager getAccountManager() {\r
return accountManager;\r
}\r
this.account = account;\r
}\r
\r
- public ContentProviderClient getContentProvider() {\r
- return contentProvider;\r
- }\r
-\r
- public void setContentProvider(ContentProviderClient contentProvider) {\r
- this.contentProvider = contentProvider;\r
- }\r
-\r
- public Date getLastUpdated() {\r
- return lastUpdated;\r
+ public ContentProviderClient getContentProviderClient() {\r
+ return mContentProviderClient;\r
}\r
\r
- public void setLastUpdated(Date lastUpdated) {\r
- this.lastUpdated = lastUpdated;\r
+ public void setContentProviderClient(ContentProviderClient contentProvider) {\r
+ this.mContentProviderClient = contentProvider;\r
}\r
\r
- public void setStorageManager(DataStorageManager storage_manager) {\r
+ public void setStorageManager(FileDataStorageManager storage_manager) {\r
mStoreManager = storage_manager;\r
}\r
\r
- public DataStorageManager getStorageManager() {\r
+ public FileDataStorageManager getStorageManager() {\r
return mStoreManager;\r
}\r
\r
- protected ConnectionKeepAliveStrategy getKeepAliveStrategy() {\r
- return new ConnectionKeepAliveStrategy() {\r
- public long getKeepAliveDuration(HttpResponse response,\r
- HttpContext context) {\r
- // Change keep alive straategy basing on response: ie\r
- // forbidden/not found/etc\r
- // should have keep alive 0\r
- // default return: 5s\r
- int statusCode = response.getStatusLine().getStatusCode();\r
-\r
- // HTTP 400, 500 Errors as well as HTTP 118 - Connection timed\r
- // 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
-\r
- return 5 * 1000;\r
- }\r
- };\r
+ protected void initClientForCurrentAccount() throws OperationCanceledException,\r
+ AuthenticatorException, IOException, AccountNotFoundException {\r
+ AccountUtils.constructFullURLForAccount(getContext(), account);\r
+ OwnCloudAccount ocAccount = new OwnCloudAccount(account, getContext());\r
+ mClient = OwnCloudClientManagerFactory.getDefaultSingleton().\r
+ getClientFor(ocAccount, getContext());\r
}\r
-\r
+ \r
+ protected OwnCloudClient getClient() {\r
+ return mClient;\r
+ }\r
+ \r
+ \r
+ /* method called by ContactSyncAdapter, that is never used */\r
protected HttpResponse fireRawRequest(HttpRequest query)\r
throws ClientProtocolException, OperationCanceledException,\r
AuthenticatorException, IOException {\r
- /*\r
- * BasicHttpContext httpContext = new BasicHttpContext(); BasicScheme\r
- * basicAuth = new BasicScheme();\r
- * httpContext.setAttribute("preemptive-auth", basicAuth);\r
- * \r
- * HttpResponse response = getClient().execute(mHost, query,\r
- * httpContext);\r
- */\r
return null;\r
}\r
\r
- protected void initClientForCurrentAccount() throws OperationCanceledException, AuthenticatorException, IOException {\r
- if (AccountUtils.constructFullURLForAccount(getContext(), account) == null) {\r
- throw new UnknownHostException();\r
- }\r
- mClient = OwnCloudClientUtils.createOwnCloudClient(account, getContext());\r
- }\r
- \r
- protected WebdavClient getClient() {\r
- return mClient;\r
- }\r
}
\ No newline at end of file