}
}
- public void sendFile(OCFile file, FileActivity callerActivity) {
- // Obtain the file
- if (!file.isDown()) { // Download the file
- Log_OC.d(TAG, file.getRemotePath() + " : File must be downloaded");
+ public void sendDownloadedFile(OCFile file, FileActivity callerActivity) {
+ if (file != null) {
+ Intent sendIntent = new Intent(android.content.Intent.ACTION_SEND);
+ // set MimeType
+ sendIntent.setType(file.getMimetype());
+ sendIntent.putExtra(Intent.EXTRA_STREAM, Uri.parse("file://" + file.getStoragePath()));
+ sendIntent.putExtra(Intent.ACTION_SEND, true); // Send Action
+
+ // Show dialog, without the own app
+ String[] packagesToExclude = new String[] { callerActivity.getPackageName() };
+ DialogFragment chooserDialog = ActivityChooserDialog.newInstance(sendIntent, packagesToExclude, file);
+ chooserDialog.show(callerActivity.getSupportFragmentManager(), FTAG_CHOOSER_DIALOG);
+
} else {
- sendDownloadedFile(file, callerActivity);
+ Log_OC.wtf(TAG, "Trying to send a NULL OCFile");
}
-
-
- }
-
- public void sendDownloadedFile(OCFile file, FileActivity callerActivity) {
- Intent sharingIntent = new Intent(android.content.Intent.ACTION_SEND);
- // set MimeType
- sharingIntent.setType(file.getMimetype());
- sharingIntent.putExtra(Intent.EXTRA_STREAM, Uri.parse("file://" + file.getStoragePath()));
- callerActivity.startActivity(Intent.createChooser(sharingIntent, callerActivity.getString(R.string.send_file_title_intent)));
}
-
}
Collections.sort(activities, new ResolveInfo.DisplayNameComparator(pm));
mAdapter = new ActivityAdapter(getSherlockActivity(), pm, activities);
- return new AlertDialog.Builder(getSherlockActivity())
- .setTitle(R.string.activity_chooser_title)
- .setAdapter(mAdapter, new DialogInterface.OnClickListener() {
- @Override
- public void onClick(DialogInterface dialog, int which) {
- // Add the information of the chosen activity to the intent to send
- ResolveInfo chosen = mAdapter.getItem(which);
- ActivityInfo actInfo = chosen.activityInfo;
- ComponentName name=new ComponentName(actInfo.applicationInfo.packageName, actInfo.name);
- mIntent.setComponent(name);
-
- // Create a new share resource
- FileOperationsHelper foh = new FileOperationsHelper();
- foh.shareFileWithLinkToApp(mFile, mIntent, (FileActivity)getSherlockActivity());
- }
- })
- .create();
+ boolean sendAction = mIntent.getBooleanExtra(Intent.ACTION_SEND, false);
+
+ if (sendAction) {
+
+ return new AlertDialog.Builder(getSherlockActivity())
+ .setTitle(R.string.activity_chooser_title)
+ .setAdapter(mAdapter, new DialogInterface.OnClickListener() {
+ @Override
+ public void onClick(DialogInterface dialog, int which) {
+ // Add the information of the chosen activity to the intent to send
+ ResolveInfo chosen = mAdapter.getItem(which);
+ ActivityInfo actInfo = chosen.activityInfo;
+ ComponentName name=new ComponentName(actInfo.applicationInfo.packageName, actInfo.name);
+ mIntent.setComponent(name);
+
+ // Send the file
+ ((FileActivity)getSherlockActivity()).startActivity(mIntent);
+
+ }
+ })
+ .create();
+ } else {
+ return new AlertDialog.Builder(getSherlockActivity())
+ .setTitle(R.string.activity_chooser_send_file_title)
+ .setAdapter(mAdapter, new DialogInterface.OnClickListener() {
+ @Override
+ public void onClick(DialogInterface dialog, int which) {
+ // Add the information of the chosen activity to the intent to send
+ ResolveInfo chosen = mAdapter.getItem(which);
+ ActivityInfo actInfo = chosen.activityInfo;
+ ComponentName name=new ComponentName(actInfo.applicationInfo.packageName, actInfo.name);
+ mIntent.setComponent(name);
+
+ // Create a new share resource
+ FileOperationsHelper foh = new FileOperationsHelper();
+ foh.shareFileWithLinkToApp(mFile, mIntent, (FileActivity)getSherlockActivity());
+ }
+ })
+ .create();
+ }
}