X-Git-Url: http://git.linex4red.de/pub/Android/ownCloud.git/blobdiff_plain/390949b8323633b26d56b3a837e83941cbc24b4b..a4ba6170ea7696e085b07adfef73eeb8b77cb8e2:/src/eu/alefzero/owncloud/syncadapter/FileSyncAdapter.java diff --git a/src/eu/alefzero/owncloud/syncadapter/FileSyncAdapter.java b/src/eu/alefzero/owncloud/syncadapter/FileSyncAdapter.java deleted file mode 100644 index 63e99d59..00000000 --- a/src/eu/alefzero/owncloud/syncadapter/FileSyncAdapter.java +++ /dev/null @@ -1,140 +0,0 @@ -/* ownCloud Android client application - * Copyright (C) 2011 Bartek Przybylski - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - * - */ - -package eu.alefzero.owncloud.syncadapter; - -import java.io.IOException; - -import org.apache.jackrabbit.webdav.DavException; -import org.apache.jackrabbit.webdav.MultiStatus; -import org.apache.jackrabbit.webdav.client.methods.PropFindMethod; - -import android.accounts.Account; -import android.accounts.AuthenticatorException; -import android.accounts.OperationCanceledException; -import android.content.ContentProviderClient; -import android.content.Context; -import android.content.Intent; -import android.content.SyncResult; -import android.os.Bundle; -import android.util.Log; -import eu.alefzero.owncloud.datamodel.FileDataStorageManager; -import eu.alefzero.owncloud.datamodel.OCFile; -import eu.alefzero.webdav.WebdavEntry; - -/** - * SyncAdapter implementation for syncing sample SyncAdapter contacts to the - * platform ContactOperations provider. - * - * @author Bartek Przybylski - */ -public class FileSyncAdapter extends AbstractOwnCloudSyncAdapter { - - public FileSyncAdapter(Context context, boolean autoInitialize) { - super(context, autoInitialize); - } - - @Override - public synchronized void onPerformSync( - Account account, - Bundle extras, - String authority, - ContentProviderClient provider, - SyncResult syncResult) { - - this.setAccount(account); - this.setContentProvider(provider); - this.setStorageManager(new FileDataStorageManager(account, getContentProvider())); - - Log.d("ASD", "syncing owncloud account " + account.name); - - Intent i = new Intent(FileSyncService.SYNC_MESSAGE); - i.putExtra(FileSyncService.IN_PROGRESS, true); - i.putExtra(FileSyncService.ACCOUNT_NAME, account.name); - getContext().sendStickyBroadcast(i); - - PropFindMethod query; - try { - Log.e("ASD", getUri().toString()); - query = new PropFindMethod(getUri().toString()+"/"); - getClient().executeMethod(query); - MultiStatus resp = null; - resp = query.getResponseBodyAsMultiStatus(); - - if (resp.getResponses().length > 0) { - WebdavEntry we = new WebdavEntry(resp.getResponses()[0]); - OCFile file = fillOCFile(we); - file.setParentId(0); - getStorageManager().saveFile(file); - fetchData(getUri().toString(), syncResult, file.getFileId()); - } - } catch (OperationCanceledException e) { - e.printStackTrace(); - } catch (AuthenticatorException e) { - syncResult.stats.numAuthExceptions++; - e.printStackTrace(); - } catch (IOException e) { - syncResult.stats.numIoExceptions++; - e.printStackTrace(); - } catch (DavException e) { - syncResult.stats.numIoExceptions++; - e.printStackTrace(); - } - i.putExtra(FileSyncService.IN_PROGRESS, false); - getContext().sendStickyBroadcast(i); - } - - private void fetchData(String uri, SyncResult syncResult, long parentId) { - try { - PropFindMethod query = new PropFindMethod(uri); - getClient().executeMethod(query); - MultiStatus resp = null; - resp = query.getResponseBodyAsMultiStatus(); - for (int i = 1; i < resp.getResponses().length; ++i) { - WebdavEntry we = new WebdavEntry(resp.getResponses()[i]); - OCFile file = fillOCFile(we); - file.setParentId(parentId); - getStorageManager().saveFile(file); - if (parentId == 0) parentId = file.getFileId(); - if (we.contentType().equals("DIR")) - fetchData(getUri().toString() + we.path(), syncResult, file.getFileId()); - } - } catch (OperationCanceledException e) { - e.printStackTrace(); - } catch (AuthenticatorException e) { - syncResult.stats.numAuthExceptions++; - e.printStackTrace(); - } catch (IOException e) { - syncResult.stats.numIoExceptions++; - e.printStackTrace(); - } catch (DavException e) { - syncResult.stats.numIoExceptions++; - e.printStackTrace(); - } - } - - private OCFile fillOCFile(WebdavEntry we) { - OCFile file = new OCFile(we.path()); - file.setCreationTimestamp(we.createTimestamp()); - file.setFileLength(we.contentLength()); - file.setMimetype(we.contentType()); - file.setModificationTimestamp(we.modifiedTimesamp()); - return file; - } - -}