import eu.alefzero.owncloud.AccountUtils;
import eu.alefzero.owncloud.R;
import eu.alefzero.owncloud.authenticator.AccountAuthenticator;
+import eu.alefzero.owncloud.datamodel.FileDataStorageManager;
+import eu.alefzero.owncloud.datamodel.OCFile;
+import eu.alefzero.owncloud.files.interfaces.OnDatatransferProgressListener;
import eu.alefzero.owncloud.utils.OwnCloudVersion;
import eu.alefzero.webdav.OnUploadProgressListener;
import eu.alefzero.webdav.WebdavClient;
import android.widget.RemoteViews;
import android.widget.Toast;
-public class FileUploader extends Service implements OnUploadProgressListener {
+public class FileUploader extends Service implements OnDatatransferProgressListener {
public static final String KEY_LOCAL_FILE = "LOCAL_FILE";
public static final String KEY_REMOTE_FILE = "REMOTE_FILE";
String username = mAccount.name.substring(0,
mAccount.name.lastIndexOf('@'));
String password = mAccountManager.getPassword(mAccount);
+ FileDataStorageManager storageManager = new FileDataStorageManager(mAccount, getContentResolver());
mTotalDataToSend = mSendData = mPreviousPercent = 0;
WebdavClient wc = new WebdavClient(ocUri);
wc.allowSelfsignedCertificates();
- wc.setUploadListener(this);
+ wc.setDataTransferProgressListener(this);
wc.setCredentials(username, password);
for (int i = 0; i < mLocalPaths.length; ++i) {
mCurrentIndexUpload = i;
if (wc.putFile(mLocalPaths[i], mRemotePaths[i], mimeType)) {
mResult |= true;
+ OCFile new_file = new OCFile(mRemotePaths[i]);
+ new_file.setMimetype(mimeType);
+ new_file.setFileLength(new File(mLocalPaths[i]).length());
+ new_file.setModificationTimestamp(System.currentTimeMillis());
+ new_file.setLastSyncDate(0);
+ new_file.setStoragePath(mLocalPaths[i]);
+ new_file.setParentId(storageManager.getFileByPath(mRemotePaths[i].substring(0, mRemotePaths[i].lastIndexOf('/')+1)).getFileId());
+ storageManager.saveFile(new_file);
}
}
// notification.contentView.setProgressBar(R.id.status_progress,
}
@Override
- public void OnUploadProgress(long currentProgress) {
- mSendData += currentProgress;
- int percent = (int)(100*mSendData/mTotalDataToSend);
+ public void transferProgress(long progressRate) {
+ mSendData += progressRate;
+ int percent = (int)(100*((double)mSendData)/((double)mTotalDataToSend));
if (percent != mPreviousPercent) {
String text = String.format("%d%% Uploading %s file", percent, new File(mLocalPaths[mCurrentIndexUpload]).getName());
mNotification.contentView.setProgressBar(R.id.status_progress, 100, percent, false);
import org.apache.commons.httpclient.methods.RequestEntity;
+import eu.alefzero.owncloud.files.interfaces.OnDatatransferProgressListener;
+
/**
* A RequestEntity that represents a File.
*
final File file;
final String contentType;
- OnUploadProgressListener listener;
+ OnDatatransferProgressListener listener;
public FileRequestEntity(final File file, final String contentType) {
super();
return true;
}
- public void setOnUploadProgressListener(OnUploadProgressListener listener) {
+ public void setOnDatatransferProgressListener(OnDatatransferProgressListener listener) {
this.listener = listener;
}
while ((i = instream.read(tmp)) >= 0) {
out.write(tmp, 0, i);
if (listener != null)
- listener.OnUploadProgress(i);
+ listener.transferProgress(i);
}
} finally {
instream.close();
import java.io.File;\r
import java.io.FileOutputStream;\r
import java.io.IOException;\r
-import java.net.URLDecoder;\r
import java.net.URLEncoder;\r
\r
import org.apache.commons.httpclient.Credentials;\r
import org.apache.commons.httpclient.methods.GetMethod;\r
import org.apache.commons.httpclient.methods.HeadMethod;\r
import org.apache.commons.httpclient.methods.PutMethod;\r
-import org.apache.commons.httpclient.methods.RequestEntity;\r
import org.apache.commons.httpclient.params.HttpMethodParams;\r
import org.apache.commons.httpclient.protocol.Protocol;\r
import org.apache.http.HttpStatus;\r
private Credentials mCredentials;\r
final private static String TAG = "WebdavClient";\r
private static final String USER_AGENT = "Android-ownCloud";\r
- private OnUploadProgressListener mUploadProgressListener;\r
private OnDatatransferProgressListener mDataTransferListener;\r
\r
public WebdavClient(Uri uri) {\r
return true;\r
}\r
\r
- public void setUploadListener(OnUploadProgressListener listener) {\r
- mUploadProgressListener = listener;\r
- }\r
- \r
public void setDataTransferProgressListener(OnDatatransferProgressListener listener) {\r
mDataTransferListener = listener;\r
}\r
Log.e("ASD", contentType + "");\r
File f = new File(localFile);\r
FileRequestEntity entity = new FileRequestEntity(f, contentType);\r
- entity.setOnUploadProgressListener(mUploadProgressListener);\r
+ entity.setOnDatatransferProgressListener(mDataTransferListener);\r
Log.e("ASD", f.exists() + " " + entity.getContentLength());\r
PutMethod put = new PutMethod(mUri.toString() + remoteTarget);\r
put.setRequestEntity(entity);\r