adding file to db after upload
authorBartek Przybylski <bart.p.pl@gmail.com>
Sat, 26 May 2012 12:30:14 +0000 (14:30 +0200)
committerBartek Przybylski <bart.p.pl@gmail.com>
Sat, 26 May 2012 12:30:14 +0000 (14:30 +0200)
src/eu/alefzero/owncloud/files/services/FileUploader.java
src/eu/alefzero/webdav/FileRequestEntity.java
src/eu/alefzero/webdav/WebdavClient.java

index f6e1c51..c1c4d2a 100644 (file)
@@ -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.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 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;
 
 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";
 
     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);
         String username = mAccount.name.substring(0,
                 mAccount.name.lastIndexOf('@'));
         String password = mAccountManager.getPassword(mAccount);
+        FileDataStorageManager storageManager = new FileDataStorageManager(mAccount, getContentResolver());
         
         mTotalDataToSend = mSendData = mPreviousPercent = 0;
         
         
         mTotalDataToSend = mSendData = mPreviousPercent = 0;
         
@@ -148,7 +152,7 @@ public class FileUploader extends Service implements OnUploadProgressListener {
 
         WebdavClient wc = new WebdavClient(ocUri);
         wc.allowSelfsignedCertificates();
 
         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) {
         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;
             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,
             }
         }
         // notification.contentView.setProgressBar(R.id.status_progress,
@@ -176,9 +188,9 @@ public class FileUploader extends Service implements OnUploadProgressListener {
     }
 
     @Override
     }
 
     @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);
         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);
index e466aa1..ca16e89 100644 (file)
@@ -8,6 +8,8 @@ import java.io.OutputStream;
 
 import org.apache.commons.httpclient.methods.RequestEntity;
 
 
 import org.apache.commons.httpclient.methods.RequestEntity;
 
+import eu.alefzero.owncloud.files.interfaces.OnDatatransferProgressListener;
+
 /**
  * A RequestEntity that represents a File.
  * 
 /**
  * A RequestEntity that represents a File.
  * 
@@ -16,7 +18,7 @@ public class FileRequestEntity implements RequestEntity {
 
     final File file;
     final String contentType;
 
     final File file;
     final String contentType;
-    OnUploadProgressListener listener;
+    OnDatatransferProgressListener listener;
 
     public FileRequestEntity(final File file, final String contentType) {
         super();
 
     public FileRequestEntity(final File file, final String contentType) {
         super();
@@ -39,7 +41,7 @@ public class FileRequestEntity implements RequestEntity {
         return true;
     }
     
         return true;
     }
     
-    public void setOnUploadProgressListener(OnUploadProgressListener listener) {
+    public void setOnDatatransferProgressListener(OnDatatransferProgressListener listener) {
         this.listener = 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) 
             while ((i = instream.read(tmp)) >= 0) {
                 out.write(tmp, 0, i);
                 if (listener != null) 
-                    listener.OnUploadProgress(i);
+                    listener.transferProgress(i);
             }
         } finally {
             instream.close();
             }
         } finally {
             instream.close();
index c4e0a9b..a8d22ce 100644 (file)
@@ -21,7 +21,6 @@ import java.io.BufferedInputStream;
 import java.io.File;\r
 import java.io.FileOutputStream;\r
 import java.io.IOException;\r
 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 java.net.URLEncoder;\r
 \r
 import org.apache.commons.httpclient.Credentials;\r
@@ -31,7 +30,6 @@ import org.apache.commons.httpclient.auth.AuthScope;
 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.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
 import org.apache.commons.httpclient.params.HttpMethodParams;\r
 import org.apache.commons.httpclient.protocol.Protocol;\r
 import org.apache.http.HttpStatus;\r
@@ -48,7 +46,6 @@ public class WebdavClient extends HttpClient {
     private Credentials mCredentials;\r
     final private static String TAG = "WebdavClient";\r
     private static final String USER_AGENT = "Android-ownCloud";\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
     private OnDatatransferProgressListener mDataTransferListener;\r
 \r
     public WebdavClient(Uri uri) {\r
@@ -116,10 +113,6 @@ public class WebdavClient extends HttpClient {
         return true;\r
     }\r
 \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
     public void setDataTransferProgressListener(OnDatatransferProgressListener listener) {\r
         mDataTransferListener = listener;\r
     }\r
@@ -132,7 +125,7 @@ public class WebdavClient extends HttpClient {
             Log.e("ASD", contentType + "");\r
             File f = new File(localFile);\r
             FileRequestEntity entity = new FileRequestEntity(f, contentType);\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
             Log.e("ASD", f.exists() + " " + entity.getContentLength());\r
             PutMethod put = new PutMethod(mUri.toString() + remoteTarget);\r
             put.setRequestEntity(entity);\r