X-Git-Url: http://git.linex4red.de/pub/Android/ownCloud.git/blobdiff_plain/399b8409f59677b84f7012306e54a1ec84d0a6af..fc49e582c5e1f40dc3161f27cb7e1afadf1fd7b9:/src/eu/alefzero/owncloud/syncadapter/AbstractOwnCloudSyncAdapter.java?ds=inline diff --git a/src/eu/alefzero/owncloud/syncadapter/AbstractOwnCloudSyncAdapter.java b/src/eu/alefzero/owncloud/syncadapter/AbstractOwnCloudSyncAdapter.java index 41a0503e..1d23ec82 100644 --- a/src/eu/alefzero/owncloud/syncadapter/AbstractOwnCloudSyncAdapter.java +++ b/src/eu/alefzero/owncloud/syncadapter/AbstractOwnCloudSyncAdapter.java @@ -21,16 +21,12 @@ package eu.alefzero.owncloud.syncadapter; import java.io.IOException; import java.net.UnknownHostException; import java.util.Date; -import java.util.LinkedList; import org.apache.http.HttpHost; import org.apache.http.HttpRequest; import org.apache.http.HttpResponse; import org.apache.http.client.ClientProtocolException; import org.apache.http.conn.ConnectionKeepAliveStrategy; -import org.apache.http.impl.auth.BasicScheme; -import org.apache.http.impl.client.DefaultHttpClient; -import org.apache.http.protocol.BasicHttpContext; import org.apache.http.protocol.HttpContext; import android.accounts.Account; @@ -41,15 +37,10 @@ import android.content.AbstractThreadedSyncAdapter; import android.content.ContentProviderClient; 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.owncloud.datamodel.DataStorageManager; 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; /** * Base SyncAdapter for OwnCloud Designed to be subclassed for the concrete @@ -65,6 +56,7 @@ public abstract class AbstractOwnCloudSyncAdapter extends private Account account; private ContentProviderClient contentProvider; private Date lastUpdated; + private DataStorageManager mStoreManager; private HttpHost mHost; private WebdavClient mClient = null; @@ -107,6 +99,14 @@ public abstract class AbstractOwnCloudSyncAdapter extends this.lastUpdated = lastUpdated; } + public void setStorageManager(DataStorageManager storage_manager) { + mStoreManager = storage_manager; + } + + public DataStorageManager getStorageManager() { + return mStoreManager; + } + protected ConnectionKeepAliveStrategy getKeepAliveStrategy() { return new ConnectionKeepAliveStrategy() { public long getKeepAliveDuration(HttpResponse response, @@ -143,24 +143,12 @@ public abstract class AbstractOwnCloudSyncAdapter extends protected HttpResponse fireRawRequest(HttpRequest query) throws ClientProtocolException, OperationCanceledException, AuthenticatorException, IOException { - BasicHttpContext httpContext = new BasicHttpContext(); + /*BasicHttpContext httpContext = new BasicHttpContext(); BasicScheme basicAuth = new BasicScheme(); httpContext.setAttribute("preemptive-auth", basicAuth); - HttpResponse response = getClient().execute(mHost, query, httpContext); - return response; - } - - protected TreeNode fireRequest(HttpRequest query) - throws ClientProtocolException, OperationCanceledException, - AuthenticatorException, IOException { - HttpResponse response = fireRawRequest(query); - - TreeNode root = new TreeNode(); - root.setProperty(TreeNode.NodeProperty.NAME, ""); - this.parseResponse(response, getUri(), getClient(), mHost, - root.getChildList(), false, 0); - return root; + HttpResponse response = getClient().execute(mHost, query, httpContext);*/ + return null; } protected Uri getUri() { @@ -168,7 +156,7 @@ public abstract class AbstractOwnCloudSyncAdapter extends AccountAuthenticator.KEY_OC_URL)); } - private DefaultHttpClient getClient() throws OperationCanceledException, + protected WebdavClient getClient() throws OperationCanceledException, AuthenticatorException, IOException { if (mClient == null) { String username = getAccount().name.split("@")[0]; @@ -186,61 +174,6 @@ public abstract class AbstractOwnCloudSyncAdapter extends mHost = mClient.getTargetHost(); } - return mClient.getHttpClient(); - } - - private void parseResponse(HttpResponse resp, Uri uri, - DefaultHttpClient client, HttpHost targetHost, - LinkedList insertList, boolean sf, long parent_id) - throws IOException, OperationCanceledException, - AuthenticatorException { - boolean skipFirst = sf, override_parent = !sf; - for (TreeNode n : WebdavUtils.parseResponseToNodes(resp.getEntity() - .getContent())) { - if (skipFirst) { - skipFirst = false; - continue; - } - String path = n.stripPathFromFilename(uri.getPath()); - - long mod = n.getProperty(NodeProperty.LAST_MODIFIED_DATE) == null ? 0 - : Long.parseLong(n - .getProperty(NodeProperty.LAST_MODIFIED_DATE)); - OCFile file = new OCFile(getContentProvider(), getAccount(), - n.getProperty(NodeProperty.PATH)); - if (file.fileExists() && file.getModificationTimestamp() >= mod) { - Log.d(TAG, "No update for file/dir " + file.getFileName() - + " is needed"); - } else { - Log.d(TAG, "File " + n.getProperty(NodeProperty.PATH) - + " will be " - + (file.fileExists() ? "updated" : "created")); - long len = n.getProperty(NodeProperty.CONTENT_LENGTH) == null ? 0 - : Long.parseLong(n - .getProperty(NodeProperty.CONTENT_LENGTH)); - long create = n.getProperty(NodeProperty.CREATE_DATE) == null ? 0 - : Long.parseLong(n - .getProperty(NodeProperty.CREATE_DATE)); - file = OCFile.createNewFile(getContentProvider(), getAccount(), - n.getProperty(NodeProperty.PATH), len, create, mod, - n.getProperty(NodeProperty.RESOURCE_TYPE), parent_id); - file.save(); - if (override_parent) { - parent_id = file.getFileId(); - override_parent = false; - } - } - - if (!TextUtils.isEmpty(n.getProperty(NodeProperty.NAME)) - && n.getProperty(NodeProperty.RESOURCE_TYPE).equals("DIR")) { - - HttpPropFind method = new HttpPropFind(uri.getPath() + path - + n.getProperty(NodeProperty.NAME).replace(" ", "%20") - + "/"); - HttpResponse response = fireRawRequest(method); - parseResponse(response, uri, client, targetHost, - n.getChildList(), true, file.getFileId()); - } - } + return mClient; } } \ No newline at end of file