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_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="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>
|
</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) {
|
public void sendDownloadedFile(OCFile file, FileActivity callerActivity) {
|
||||||
Intent sharingIntent = new Intent(android.content.Intent.ACTION_SEND);
|
if (file != null) {
|
||||||
// set MimeType
|
Intent sendIntent = new Intent(android.content.Intent.ACTION_SEND);
|
||||||
sharingIntent.setType(file.getMimetype());
|
// set MimeType
|
||||||
sharingIntent.putExtra(Intent.EXTRA_STREAM, Uri.parse("file://" + file.getStoragePath()));
|
sendIntent.setType(file.getMimetype());
|
||||||
callerActivity.startActivity(Intent.createChooser(sharingIntent, callerActivity.getString(R.string.send_file_title_intent)));
|
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(){
|
private void sendDownloadedFile(){
|
||||||
|
dismissLoadingDialog();
|
||||||
getFileOperationsHelper().sendDownloadedFile(mWaitingToSend, this);
|
getFileOperationsHelper().sendDownloadedFile(mWaitingToSend, this);
|
||||||
mWaitingToSend = null;
|
mWaitingToSend = null;
|
||||||
}
|
}
|
||||||
|
|
|
@ -98,23 +98,46 @@ public class ActivityChooserDialog extends SherlockDialogFragment {
|
||||||
Collections.sort(activities, new ResolveInfo.DisplayNameComparator(pm));
|
Collections.sort(activities, new ResolveInfo.DisplayNameComparator(pm));
|
||||||
mAdapter = new ActivityAdapter(getSherlockActivity(), pm, activities);
|
mAdapter = new ActivityAdapter(getSherlockActivity(), pm, activities);
|
||||||
|
|
||||||
return new AlertDialog.Builder(getSherlockActivity())
|
boolean sendAction = mIntent.getBooleanExtra(Intent.ACTION_SEND, false);
|
||||||
.setTitle(R.string.activity_chooser_title)
|
|
||||||
.setAdapter(mAdapter, new DialogInterface.OnClickListener() {
|
if (sendAction) {
|
||||||
@Override
|
|
||||||
public void onClick(DialogInterface dialog, int which) {
|
return new AlertDialog.Builder(getSherlockActivity())
|
||||||
// Add the information of the chosen activity to the intent to send
|
.setTitle(R.string.activity_chooser_title)
|
||||||
ResolveInfo chosen = mAdapter.getItem(which);
|
.setAdapter(mAdapter, new DialogInterface.OnClickListener() {
|
||||||
ActivityInfo actInfo = chosen.activityInfo;
|
@Override
|
||||||
ComponentName name=new ComponentName(actInfo.applicationInfo.packageName, actInfo.name);
|
public void onClick(DialogInterface dialog, int which) {
|
||||||
mIntent.setComponent(name);
|
// Add the information of the chosen activity to the intent to send
|
||||||
|
ResolveInfo chosen = mAdapter.getItem(which);
|
||||||
// Create a new share resource
|
ActivityInfo actInfo = chosen.activityInfo;
|
||||||
FileOperationsHelper foh = new FileOperationsHelper();
|
ComponentName name=new ComponentName(actInfo.applicationInfo.packageName, actInfo.name);
|
||||||
foh.shareFileWithLinkToApp(mFile, mIntent, (FileActivity)getSherlockActivity());
|
mIntent.setComponent(name);
|
||||||
}
|
|
||||||
})
|
// Send the file
|
||||||
.create();
|
((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: {
|
case R.id.action_send_file: {
|
||||||
// Obtain the file
|
// Obtain the file
|
||||||
if (!mTargetFile.isDown()) { // Download the file
|
if (!mTargetFile.isDown()) { // Download the file
|
||||||
|
((FileDisplayActivity) getSherlockActivity()).showLoadingDialog();
|
||||||
Log_OC.d(TAG, mTargetFile.getRemotePath() + " : File must be downloaded");
|
Log_OC.d(TAG, mTargetFile.getRemotePath() + " : File must be downloaded");
|
||||||
mContainerActivity.startDownloadForSending(mTargetFile);
|
mContainerActivity.startDownloadForSending(mTargetFile);
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue