X-Git-Url: http://git.linex4red.de/pub/Android/ownCloud.git/blobdiff_plain/271078a4039f3c674462f929bc97528901e41e64..e901b609baa4dd5f681e2a5257c9e504997e3377:/src/com/owncloud/android/ui/dialog/ShareLinkToDialog.java diff --git a/src/com/owncloud/android/ui/dialog/ShareLinkToDialog.java b/src/com/owncloud/android/ui/dialog/ShareLinkToDialog.java index e0e76d14..2876f7b1 100644 --- a/src/com/owncloud/android/ui/dialog/ShareLinkToDialog.java +++ b/src/com/owncloud/android/ui/dialog/ShareLinkToDialog.java @@ -42,10 +42,10 @@ import android.widget.TextView; import com.actionbarsherlock.app.SherlockDialogFragment; import com.owncloud.android.R; import com.owncloud.android.datamodel.OCFile; -import com.owncloud.android.files.FileOperationsHelper; +import com.owncloud.android.lib.common.utils.Log_OC; +import com.owncloud.android.ui.activity.ComponentsGetter; import com.owncloud.android.ui.activity.CopyToClipboardActivity; import com.owncloud.android.ui.activity.FileActivity; -import com.owncloud.android.utils.Log_OC; /** * Dialog showing a list activities able to resolve a given Intent, @@ -97,35 +97,61 @@ public class ShareLinkToDialog extends SherlockDialogFragment { } } - // add activity for copy to clipboard - Intent copyToClipboardIntent = new Intent(getSherlockActivity(), CopyToClipboardActivity.class); - List copyToClipboard = pm.queryIntentActivities(copyToClipboardIntent, 0); - if (!copyToClipboard.isEmpty()) { - activities.add(copyToClipboard.get(0)); + boolean sendAction = mIntent.getBooleanExtra(Intent.ACTION_SEND, false); + + if (!sendAction) { + // add activity for copy to clipboard + Intent copyToClipboardIntent = new Intent(getSherlockActivity(), CopyToClipboardActivity.class); + List copyToClipboard = pm.queryIntentActivities(copyToClipboardIntent, 0); + if (!copyToClipboard.isEmpty()) { + activities.add(copyToClipboard.get(0)); + } } 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(); + return createSelector(sendAction); + } + private AlertDialog createSelector(final boolean sendAction) { + + int titleId; + if (sendAction) { + titleId = R.string.activity_chooser_send_file_title; + } else { + titleId = R.string.activity_chooser_title; + } + + return new AlertDialog.Builder(getSherlockActivity()) + .setTitle(titleId) + .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); + + if (sendAction) { + dialog.dismiss(); // explicitly added for Android 2.x devices + + // Send the file + ((FileActivity)getSherlockActivity()).startActivity(mIntent); + + } else { + // Create a new share resource + ((ComponentsGetter)getSherlockActivity()).getFileOperationsHelper() + .shareFileWithLinkToApp(mFile, mIntent); + } + } + }) + .create(); + } class ActivityAdapter extends ArrayAdapter {