import android.accounts.Account;
import android.accounts.AccountManager;
import android.content.Intent;
-import android.media.MediaScannerConnection;
import android.net.Uri;
+import android.os.storage.StorageManager;
import android.support.v4.app.DialogFragment;
import android.webkit.MimeTypeMap;
import android.widget.Toast;
import com.owncloud.android.R;
+import com.owncloud.android.datamodel.FileDataStorageManager;
import com.owncloud.android.datamodel.OCFile;
import com.owncloud.android.files.services.FileDownloader.FileDownloaderBinder;
import com.owncloud.android.files.services.FileUploader.FileUploaderBinder;
+
import com.owncloud.android.lib.common.accounts.AccountUtils.Constants;
import com.owncloud.android.lib.common.network.WebdavUtils;
import com.owncloud.android.lib.common.utils.Log_OC;
import com.owncloud.android.ui.activity.FileActivity;
import com.owncloud.android.ui.dialog.ShareLinkToDialog;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Vector;
+
/**
*
* @author masensio
public void syncFile(OCFile file) {
- // Sync file
- Intent service = new Intent(mFileActivity, OperationsService.class);
- service.setAction(OperationsService.ACTION_SYNC_FILE);
- service.putExtra(OperationsService.EXTRA_ACCOUNT, mFileActivity.getAccount());
- service.putExtra(OperationsService.EXTRA_REMOTE_PATH, file.getRemotePath());
- service.putExtra(OperationsService.EXTRA_SYNC_FILE_CONTENTS, true);
- mWaitingForOpId = mFileActivity.getOperationsServiceBinder().newOperation(service);
-
- mFileActivity.showLoadingDialog();
+ Vector<OCFile> filesList = new Vector<OCFile>();
+ if (!file.isFolder()){
+ filesList.add(file);
+ }else {
+ // Add files recursivly
+ FileDataStorageManager storageManager = mFileActivity.getStorageManager();
+ filesList.addAll(storageManager.getFolderContent(file));
+ boolean newfiles;
+ do {
+ Vector<OCFile> tmpFolders = new Vector<OCFile>();
+ for (OCFile tmpfile : filesList) {
+ if (tmpfile.isFolder()) {
+ tmpFolders.add(tmpfile);
+ }
+ }
+ if (tmpFolders.isEmpty()){
+ newfiles = false;
+ }else {
+ for(OCFile tmpFolder : tmpFolders){
+ filesList.remove(tmpFolder);
+ filesList.addAll(storageManager.getFolderContent(tmpFolder));
+ }
+ newfiles = true;
+ }
+ }while(newfiles);
+ }
+ // Sync file(s)
+ for (OCFile childFile : filesList) {
+ Intent service = new Intent(mFileActivity, OperationsService.class);
+ service.setAction(OperationsService.ACTION_SYNC_FILE);
+ service.putExtra(OperationsService.EXTRA_ACCOUNT, mFileActivity.getAccount());
+ service.putExtra(OperationsService.EXTRA_REMOTE_PATH, childFile.getRemotePath());
+ service.putExtra(OperationsService.EXTRA_SYNC_FILE_CONTENTS, true);
+ mWaitingForOpId = mFileActivity.getOperationsServiceBinder().newOperation(service);
+ }
+ if (!file.isFolder()) {
+ mFileActivity.showLoadingDialog();
+ }
}
-
public void renameFile(OCFile file, String newFilename) {
// RenameFile
Intent service = new Intent(mFileActivity, OperationsService.class);
public void setOpIdWaitingFor(long waitingForOpId) {
mWaitingForOpId = waitingForOpId;
}
+
+
}