mirror of
https://github.com/nextcloud/android.git
synced 2024-11-23 21:55:48 +03:00
OC-2968: Filter out ownCloud from the list of apps able to receive the file
This commit is contained in:
parent
9b1a549226
commit
6cf78042b0
5 changed files with 58 additions and 35 deletions
|
@ -253,5 +253,5 @@
|
|||
<string name="unshare_link_file_no_exist">Unable to unshare this file or folder. It does not exist.</string>
|
||||
<string name="unshare_link_file_error">An error occurred while trying to unshare this file or folder</string>
|
||||
|
||||
<string name="send_file_title_intent">Send</string>
|
||||
<string name="activity_chooser_send_file_title">Send</string>
|
||||
</resources>
|
||||
|
|
|
@ -161,24 +161,22 @@ public class FileOperationsHelper {
|
|||
}
|
||||
}
|
||||
|
||||
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");
|
||||
} else {
|
||||
sendDownloadedFile(file, callerActivity);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
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)));
|
||||
}
|
||||
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 {
|
||||
Log_OC.wtf(TAG, "Trying to send a NULL OCFile");
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -1633,6 +1633,7 @@ OCFileListFragment.ContainerActivity, FileDetailFragment.ContainerActivity, OnNa
|
|||
}
|
||||
|
||||
private void sendDownloadedFile(){
|
||||
dismissLoadingDialog();
|
||||
getFileOperationsHelper().sendDownloadedFile(mWaitingToSend, this);
|
||||
mWaitingToSend = null;
|
||||
}
|
||||
|
|
|
@ -98,23 +98,46 @@ public class ActivityChooserDialog extends SherlockDialogFragment {
|
|||
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);
|
||||
boolean sendAction = mIntent.getBooleanExtra(Intent.ACTION_SEND, false);
|
||||
|
||||
// Create a new share resource
|
||||
FileOperationsHelper foh = new FileOperationsHelper();
|
||||
foh.shareFileWithLinkToApp(mFile, mIntent, (FileActivity)getSherlockActivity());
|
||||
}
|
||||
})
|
||||
.create();
|
||||
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();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -362,6 +362,7 @@ public class OCFileListFragment extends ExtendedListFragment implements EditName
|
|||
case R.id.action_send_file: {
|
||||
// Obtain the file
|
||||
if (!mTargetFile.isDown()) { // Download the file
|
||||
((FileDisplayActivity) getSherlockActivity()).showLoadingDialog();
|
||||
Log_OC.d(TAG, mTargetFile.getRemotePath() + " : File must be downloaded");
|
||||
mContainerActivity.startDownloadForSending(mTargetFile);
|
||||
|
||||
|
|
Loading…
Reference in a new issue