X-Git-Url: http://git.linex4red.de/pub/Android/ownCloud.git/blobdiff_plain/8f0ea82efd778f65c1ccbfcb94b9bd7a2cc2564c..309f8c699de8591ac525428ef69fb3a3cf998878:/src/com/owncloud/android/files/FileOperationsHelper.java diff --git a/src/com/owncloud/android/files/FileOperationsHelper.java b/src/com/owncloud/android/files/FileOperationsHelper.java index 845eab7f..cc1a0c37 100644 --- a/src/com/owncloud/android/files/FileOperationsHelper.java +++ b/src/com/owncloud/android/files/FileOperationsHelper.java @@ -23,6 +23,7 @@ package com.owncloud.android.files; import android.accounts.Account; import android.content.ActivityNotFoundException; +import android.content.Context; import android.content.Intent; import android.content.pm.PackageManager; import android.content.pm.ResolveInfo; @@ -91,29 +92,29 @@ public class FileOperationsHelper { ); } } - - Intent chooserIntent; - List launchables; + + Intent openFileWithIntent; if (intentForGuessedMimeType != null) { - chooserIntent = Intent.createChooser(intentForGuessedMimeType, mFileActivity.getString(R.string.actionbar_open_with)); - launchables = mFileActivity.getPackageManager().queryIntentActivities(intentForGuessedMimeType, PackageManager.GET_INTENT_FILTERS); + openFileWithIntent = intentForGuessedMimeType; } else { - chooserIntent = Intent.createChooser(intentForSavedMimeType, mFileActivity.getString(R.string.actionbar_open_with)); - launchables = mFileActivity.getPackageManager().queryIntentActivities(intentForSavedMimeType, PackageManager.GET_INTENT_FILTERS); + openFileWithIntent = intentForSavedMimeType; } + List launchables = mFileActivity.getPackageManager(). + queryIntentActivities(openFileWithIntent, PackageManager.GET_INTENT_FILTERS); + if(launchables != null && launchables.size() > 0) { try { - mFileActivity.startActivity(chooserIntent); + mFileActivity.startActivity( + Intent.createChooser( + openFileWithIntent, mFileActivity.getString(R.string.actionbar_open_with) + ) + ); } catch (ActivityNotFoundException anfe) { - Toast.makeText(mFileActivity.getApplicationContext(), - R.string.file_list_no_app_for_file_type, Toast.LENGTH_SHORT) - .show(); + showNoAppForFileTypeToast(mFileActivity.getApplicationContext()); } } else { - Toast.makeText(mFileActivity.getApplicationContext(), - R.string.file_list_no_app_for_file_type, Toast.LENGTH_SHORT) - .show(); + showNoAppForFileTypeToast(mFileActivity.getApplicationContext()); } } else { @@ -121,6 +122,16 @@ public class FileOperationsHelper { } } + /** + * Displays a toast stating that no application could be found to open the file. + * + * @param context the context to be able to show a toast. + */ + private void showNoAppForFileTypeToast(Context context) { + Toast.makeText(context, + R.string.file_list_no_app_for_file_type, Toast.LENGTH_SHORT) + .show(); + } public void shareFileWithLink(OCFile file) { @@ -225,9 +236,30 @@ public class FileOperationsHelper { } } + public void setPictureAs(OCFile file) { + if (file != null) { + String storagePath = file.getStoragePath(); + String encodedStoragePath = WebdavUtils.encodePath(storagePath); + Intent sendIntent = new Intent(Intent.ACTION_ATTACH_DATA); + // set MimeType + sendIntent.setData(Uri.parse(encodedStoragePath)); +// sendIntent.putExtra(Intent.EXTRA_STREAM, Uri.parse("file://" + encodedStoragePath)); +// sendIntent.putExtra("jpg", "image/*"); - public void syncFile(OCFile file) { + mFileActivity.startActivity(Intent.createChooser(sendIntent, + mFileActivity.getString(R.string.set_picture_as))); + } else { + Log_OC.wtf(TAG, "Trying to send a NULL OCFile"); + } + } + + /** + * Request the synchronization of a file or folder with the OC server, including its contents. + * + * @param file The file or folder to synchronize + */ + public void syncFile(OCFile file) { if (!file.isFolder()){ Intent intent = new Intent(mFileActivity, OperationsService.class); intent.setAction(OperationsService.ACTION_SYNC_FILE); @@ -243,6 +275,7 @@ public class FileOperationsHelper { intent.putExtra(OperationsService.EXTRA_ACCOUNT, mFileActivity.getAccount()); intent.putExtra(OperationsService.EXTRA_REMOTE_PATH, file.getRemotePath()); mFileActivity.startService(intent); + } } @@ -317,19 +350,11 @@ public class FileOperationsHelper { // for both files and folders FileDownloaderBinder downloaderBinder = mFileActivity.getFileDownloaderBinder(); - FileUploaderBinder uploaderBinder = mFileActivity.getFileUploaderBinder(); if (downloaderBinder != null && downloaderBinder.isDownloading(account, file)) { downloaderBinder.cancel(account, file); - - // TODO - review why is this here, and solve in a better way - // Remove etag for parent, if file is a favorite - if (file.isFavorite()) { - OCFile parent = mFileActivity.getStorageManager().getFileById(file.getParentId()); - parent.setEtag(""); - mFileActivity.getStorageManager().saveFile(parent); - } - - } else if (uploaderBinder != null && uploaderBinder.isUploading(account, file)) { + } + FileUploaderBinder uploaderBinder = mFileActivity.getFileUploaderBinder(); + if (uploaderBinder != null && uploaderBinder.isUploading(account, file)) { uploaderBinder.cancel(account, file); } }