From: Bartek Przybylski Date: Sat, 26 May 2012 12:30:14 +0000 (+0200) Subject: adding file to db after upload X-Git-Tag: oc-android-1.4.3~379 X-Git-Url: http://git.linex4red.de/pub/Android/ownCloud.git/commitdiff_plain/edd38b807da409ee833dbf293255ab27252e672a?ds=inline adding file to db after upload --- diff --git a/src/eu/alefzero/owncloud/files/services/FileUploader.java b/src/eu/alefzero/owncloud/files/services/FileUploader.java index f6e1c515..c1c4d2a6 100644 --- a/src/eu/alefzero/owncloud/files/services/FileUploader.java +++ b/src/eu/alefzero/owncloud/files/services/FileUploader.java @@ -5,6 +5,9 @@ import java.io.File; 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; @@ -26,7 +29,7 @@ import android.webkit.MimeTypeMap; 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"; @@ -133,6 +136,7 @@ public class FileUploader extends Service implements OnUploadProgressListener { String username = mAccount.name.substring(0, mAccount.name.lastIndexOf('@')); String password = mAccountManager.getPassword(mAccount); + FileDataStorageManager storageManager = new FileDataStorageManager(mAccount, getContentResolver()); mTotalDataToSend = mSendData = mPreviousPercent = 0; @@ -148,7 +152,7 @@ public class FileUploader extends Service implements OnUploadProgressListener { 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) { @@ -167,6 +171,14 @@ public class FileUploader extends Service implements OnUploadProgressListener { 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, @@ -176,9 +188,9 @@ public class FileUploader extends Service implements OnUploadProgressListener { } @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); diff --git a/src/eu/alefzero/webdav/FileRequestEntity.java b/src/eu/alefzero/webdav/FileRequestEntity.java index e466aa15..ca16e89e 100644 --- a/src/eu/alefzero/webdav/FileRequestEntity.java +++ b/src/eu/alefzero/webdav/FileRequestEntity.java @@ -8,6 +8,8 @@ import java.io.OutputStream; import org.apache.commons.httpclient.methods.RequestEntity; +import eu.alefzero.owncloud.files.interfaces.OnDatatransferProgressListener; + /** * A RequestEntity that represents a File. * @@ -16,7 +18,7 @@ public class FileRequestEntity implements RequestEntity { final File file; final String contentType; - OnUploadProgressListener listener; + OnDatatransferProgressListener listener; public FileRequestEntity(final File file, final String contentType) { super(); @@ -39,7 +41,7 @@ public class FileRequestEntity implements RequestEntity { return true; } - public void setOnUploadProgressListener(OnUploadProgressListener listener) { + public void setOnDatatransferProgressListener(OnDatatransferProgressListener listener) { this.listener = listener; } @@ -51,7 +53,7 @@ public class FileRequestEntity implements RequestEntity { while ((i = instream.read(tmp)) >= 0) { out.write(tmp, 0, i); if (listener != null) - listener.OnUploadProgress(i); + listener.transferProgress(i); } } finally { instream.close(); diff --git a/src/eu/alefzero/webdav/WebdavClient.java b/src/eu/alefzero/webdav/WebdavClient.java index c4e0a9be..a8d22ce8 100644 --- a/src/eu/alefzero/webdav/WebdavClient.java +++ b/src/eu/alefzero/webdav/WebdavClient.java @@ -21,7 +21,6 @@ import java.io.BufferedInputStream; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; -import java.net.URLDecoder; import java.net.URLEncoder; import org.apache.commons.httpclient.Credentials; @@ -31,7 +30,6 @@ import org.apache.commons.httpclient.auth.AuthScope; import org.apache.commons.httpclient.methods.GetMethod; import org.apache.commons.httpclient.methods.HeadMethod; import org.apache.commons.httpclient.methods.PutMethod; -import org.apache.commons.httpclient.methods.RequestEntity; import org.apache.commons.httpclient.params.HttpMethodParams; import org.apache.commons.httpclient.protocol.Protocol; import org.apache.http.HttpStatus; @@ -48,7 +46,6 @@ public class WebdavClient extends HttpClient { private Credentials mCredentials; final private static String TAG = "WebdavClient"; private static final String USER_AGENT = "Android-ownCloud"; - private OnUploadProgressListener mUploadProgressListener; private OnDatatransferProgressListener mDataTransferListener; public WebdavClient(Uri uri) { @@ -116,10 +113,6 @@ public class WebdavClient extends HttpClient { return true; } - public void setUploadListener(OnUploadProgressListener listener) { - mUploadProgressListener = listener; - } - public void setDataTransferProgressListener(OnDatatransferProgressListener listener) { mDataTransferListener = listener; } @@ -132,7 +125,7 @@ public class WebdavClient extends HttpClient { Log.e("ASD", contentType + ""); File f = new File(localFile); FileRequestEntity entity = new FileRequestEntity(f, contentType); - entity.setOnUploadProgressListener(mUploadProgressListener); + entity.setOnDatatransferProgressListener(mDataTransferListener); Log.e("ASD", f.exists() + " " + entity.getContentLength()); PutMethod put = new PutMethod(mUri.toString() + remoteTarget); put.setRequestEntity(entity);