X-Git-Url: http://git.linex4red.de/pub/Android/ownCloud.git/blobdiff_plain/a4ba6170ea7696e085b07adfef73eeb8b77cb8e2..38512099c49a32406725086074ac4973220807c1:/src/com/owncloud/android/files/PhotoTakenBroadcastReceiver.java diff --git a/src/com/owncloud/android/files/PhotoTakenBroadcastReceiver.java b/src/com/owncloud/android/files/PhotoTakenBroadcastReceiver.java index ec313b6a..d39baa99 100644 --- a/src/com/owncloud/android/files/PhotoTakenBroadcastReceiver.java +++ b/src/com/owncloud/android/files/PhotoTakenBroadcastReceiver.java @@ -23,16 +23,15 @@ 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.net.NetworkInfo.State; import android.preference.PreferenceManager; import android.provider.MediaStore.Images.Media; import android.util.Log; @@ -40,30 +39,33 @@ 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 public void onReceive(Context context, Intent intent) { - if (!PreferenceManager.getDefaultSharedPreferences(context).getBoolean("instant_uploading", false)) { + boolean iu_enabled = PreferenceManager.getDefaultSharedPreferences(context).getBoolean("instant_uploading", false); + + if (!iu_enabled) { Log.d(TAG, "Instant upload disabled, abording uploading"); return; } + 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; } @@ -73,21 +75,33 @@ public class PhotoTakenBroadcastReceiver extends BroadcastReceiver { Log.e(TAG, "Couldn't resolve given uri!"); return; } + + boolean iu_via_wifi = PreferenceManager.getDefaultSharedPreferences(context).getBoolean("instant_upload_on_wifi", false); + boolean is_conn_via_wifi = false; + if (iu_via_wifi) { + ConnectivityManager cm = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE); + if (cm != null && cm.getActiveNetworkInfo() != null && + cm.getActiveNetworkInfo().getType() == ConnectivityManager.TYPE_WIFI && + cm.getActiveNetworkInfo().getState() == State.CONNECTED) + is_conn_via_wifi = true; + } + 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(); - if (!isOnline(context)) { + if (!isOnline(context) || (iu_via_wifi && !is_conn_via_wifi)) { DbHandler db = new DbHandler(context); db.putFileForLater(file_path, account.name); 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 +110,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 +134,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 +148,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 +157,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"); }