More robust instant photo uploads
[pub/Android/ownCloud.git] / src / com / owncloud / android / files / PhotoTakenBroadcastReceiver.java
index ec313b6..8372e77 100644 (file)
@@ -23,16 +23,14 @@ import java.io.File;
 import com.owncloud.android.AccountUtils;
 import com.owncloud.android.authenticator.AccountAuthenticator;
 import com.owncloud.android.db.DbHandler;
-import com.owncloud.android.files.services.InstantUploadService;
+import com.owncloud.android.files.services.FileUploader;
 
-import com.owncloud.android.R;
 import android.accounts.Account;
 import android.content.BroadcastReceiver;
 import android.content.Context;
 import android.content.Intent;
 import android.database.Cursor;
 import android.net.ConnectivityManager;
-import android.preference.Preference;
 import android.preference.PreferenceManager;
 import android.provider.MediaStore.Images.Media;
 import android.util.Log;
@@ -40,9 +38,9 @@ import android.webkit.MimeTypeMap;
 
 public class PhotoTakenBroadcastReceiver extends BroadcastReceiver {
 
+    public static String INSTANT_UPLOAD_DIR = "/InstantUpload/";
     private static String TAG = "PhotoTakenBroadcastReceiver";
     private static final String[] CONTENT_PROJECTION = { Media.DATA, Media.DISPLAY_NAME, Media.MIME_TYPE, Media.SIZE };
-    
     private static String NEW_PHOTO_ACTION = "com.android.camera.NEW_PICTURE";
     
     @Override
@@ -54,16 +52,16 @@ public class PhotoTakenBroadcastReceiver extends BroadcastReceiver {
         if (intent.getAction().equals(android.net.ConnectivityManager.CONNECTIVITY_ACTION)) {
             handleConnectivityAction(context, intent);
         } else if (intent.getAction().equals(NEW_PHOTO_ACTION)) {
-            handleNewPhontoAction(context, intent);
+            handleNewPhotoAction(context, intent);
         } else {
             Log.e(TAG, "Incorrect intent sent: " + intent.getAction());
         }
     }
 
-    private void handleNewPhontoAction(Context context, Intent intent) {
+    private void handleNewPhotoAction(Context context, Intent intent) {
         Account account = AccountUtils.getCurrentOwnCloudAccount(context);
         if (account == null) {
-            Log.w(TAG, "No owncloud account found for instant upload, abording");
+            Log.w(TAG, "No owncloud account found for instant upload, aborting");
             return;
         }
 
@@ -77,7 +75,7 @@ public class PhotoTakenBroadcastReceiver extends BroadcastReceiver {
         String file_path = c.getString(c.getColumnIndex(Media.DATA));
         String file_name = c.getString(c.getColumnIndex(Media.DISPLAY_NAME));
         String mime_type = c.getString(c.getColumnIndex(Media.MIME_TYPE));
-        long file_size = c.getLong(c.getColumnIndex(Media.SIZE));
+        //long file_size = c.getLong(c.getColumnIndex(Media.SIZE));
 
         c.close();
         
@@ -87,7 +85,8 @@ public class PhotoTakenBroadcastReceiver extends BroadcastReceiver {
             db.close();
             return;
         }
-        
+
+        /*
         Intent upload_intent = new Intent(context, InstantUploadService.class);
         upload_intent.putExtra(InstantUploadService.KEY_ACCOUNT, account);
         upload_intent.putExtra(InstantUploadService.KEY_FILE_PATH, file_path);
@@ -96,6 +95,17 @@ public class PhotoTakenBroadcastReceiver extends BroadcastReceiver {
         upload_intent.putExtra(InstantUploadService.KEY_MIME_TYPE, mime_type);
         
         context.startService(upload_intent);
+        */
+        
+        Intent i = new Intent(context, FileUploader.class);
+        i.putExtra(FileUploader.KEY_ACCOUNT, account);
+        i.putExtra(FileUploader.KEY_LOCAL_FILE, file_path);
+        i.putExtra(FileUploader.KEY_REMOTE_FILE, INSTANT_UPLOAD_DIR + "/" + file_name);
+        i.putExtra(FileUploader.KEY_UPLOAD_TYPE, FileUploader.UPLOAD_SINGLE_FILE);
+        i.putExtra(FileUploader.KEY_MIME_TYPE, mime_type);
+        i.putExtra(FileUploader.KEY_INSTANT_UPLOAD, true);
+        context.startService(i);
+        
     }
 
     private void handleConnectivityAction(Context context, Intent intent) {
@@ -109,7 +119,7 @@ public class PhotoTakenBroadcastReceiver extends BroadcastReceiver {
                     String file_path = c.getString(c.getColumnIndex("path"));
                     File f = new File(file_path);
                     if (f.exists()) {
-                        Intent upload_intent = new Intent(context, InstantUploadService.class);
+                        //Intent upload_intent = new Intent(context, InstantUploadService.class);
                         Account account = new Account(account_name, AccountAuthenticator.ACCOUNT_TYPE);
                         
                         String mimeType = null;
@@ -123,7 +133,8 @@ public class PhotoTakenBroadcastReceiver extends BroadcastReceiver {
                         }
                         if (mimeType == null)
                             mimeType = "application/octet-stream";
-                        
+
+                        /*
                         upload_intent.putExtra(InstantUploadService.KEY_ACCOUNT, account);
                         upload_intent.putExtra(InstantUploadService.KEY_FILE_PATH, file_path);
                         upload_intent.putExtra(InstantUploadService.KEY_DISPLAY_NAME, f.getName());
@@ -131,6 +142,16 @@ public class PhotoTakenBroadcastReceiver extends BroadcastReceiver {
                         upload_intent.putExtra(InstantUploadService.KEY_MIME_TYPE, mimeType);
                         
                         context.startService(upload_intent);
+                        */
+                        
+                        Intent i = new Intent(context, FileUploader.class);
+                        i.putExtra(FileUploader.KEY_ACCOUNT, account);
+                        i.putExtra(FileUploader.KEY_LOCAL_FILE, file_path);
+                        i.putExtra(FileUploader.KEY_REMOTE_FILE, INSTANT_UPLOAD_DIR + f.getName());
+                        i.putExtra(FileUploader.KEY_UPLOAD_TYPE, FileUploader.UPLOAD_SINGLE_FILE);
+                        i.putExtra(FileUploader.KEY_INSTANT_UPLOAD, true);
+                        context.startService(i);
+                        
                     } else {
                         Log.w(TAG, "Instant upload file " + f.getName() + " dont exist anymore");
                     }