import com.owncloud.android.ui.dialog.ShareLinkToDialog;
import com.owncloud.android.ui.dialog.SharePasswordDialogFragment;
-import org.apache.http.protocol.HTTP;
import java.util.List;
/**
* Helper method to share a file via a public link. Starts a request to do it in {@link OperationsService}
*
- * @param file The file to share.
+ * @param file The file to share.
+ * @param password Optional password to protect the public share.
*/
- public void shareFileViaLink(OCFile file) {
+ public void shareFileViaLink(OCFile file, String password) {
if (isSharedSupported()) {
if (file != null) {
mFileActivity.showLoadingDialog(
mFileActivity.getApplicationContext().
- getString(R.string.wait_a_moment)
+ getString(R.string.wait_a_moment)
);
Intent service = new Intent(mFileActivity, OperationsService.class);
service.setAction(OperationsService.ACTION_CREATE_SHARE_VIA_LINK);
service.putExtra(OperationsService.EXTRA_ACCOUNT, mFileActivity.getAccount());
+ if (password != null && password.length() > 0) {
+ service.putExtra(OperationsService.EXTRA_SHARE_PASSWORD, password);
+ }
service.putExtra(OperationsService.EXTRA_REMOTE_PATH, file.getRemotePath());
mWaitingForOpId = mFileActivity.getOperationsServiceBinder().queueNewOperation(service);
mWaitingForOpId = mFileActivity.getOperationsServiceBinder().queueNewOperation(service);
} else {
- Log_OC.wtf(TAG, "Trying to open a NULL OCFile");
- }
- } else {
- // Show a Message
- Toast t = Toast.makeText(
- mFileActivity, mFileActivity.getString(R.string.share_link_no_support_share_api),
- Toast.LENGTH_LONG
- );
- t.show();
- }
- }
-
- public void shareFileWithLinkOLD(OCFile file) {
-
- if (isSharedSupported()) {
- if (file != null) {
- String link = "https://fake.url";
- Intent intent = createShareWithLinkIntent(link);
- String[] packagesToExclude = new String[]{mFileActivity.getPackageName()};
- DialogFragment chooserDialog = ShareLinkToDialog.newInstance(intent,
- packagesToExclude, file);
- chooserDialog.show(mFileActivity.getSupportFragmentManager(), FTAG_CHOOSER_DIALOG);
-
- } else {
Log_OC.wtf(TAG, "Trying to share a NULL OCFile");
}
-
} else {
// Show a Message
Toast t = Toast.makeText(
}
}
-
public void shareFileWithLinkToApp(OCFile file, String password, Intent sendIntent) {
if (file != null) {
}
}
-
- private Intent createShareWithLinkIntent(String link) {
- Intent intentToShareLink = new Intent(Intent.ACTION_SEND);
- intentToShareLink.putExtra(Intent.EXTRA_TEXT, link);
- intentToShareLink.setType(HTTP.PLAIN_TEXT_TYPE);
- return intentToShareLink;
- }
-
-
/**
* Helper method to share a file with a known sharee. Starts a request to do it in {@link OperationsService}
*
/**
* Starts a dialog that requests a password to the user to protect a share link.
*
- * @param file File which public share will be protected by the requested password
+ * @param file File which public share will be protected by the requested password
+ * @param createShare When 'true', the request for password will be followed by the creation of a new
+ * public link; when 'false', a public share is assumed to exist, and the password
+ * is bound to it.
*/
- public void requestPasswordForShareViaLink(OCFile file) {
+ public void requestPasswordForShareViaLink(OCFile file, boolean createShare) {
SharePasswordDialogFragment dialog =
- SharePasswordDialogFragment.newInstance(
- file,
- null
- );
+ SharePasswordDialogFragment.newInstance(file, createShare);
dialog.show(
mFileActivity.getSupportFragmentManager(),
SharePasswordDialogFragment.PASSWORD_FRAGMENT
// Show dialog, without the own app
String[] packagesToExclude = new String[]{mFileActivity.getPackageName()};
- DialogFragment chooserDialog = ShareLinkToDialog.newInstance(sendIntent,
- packagesToExclude, file);
+ DialogFragment chooserDialog = ShareLinkToDialog.newInstance(sendIntent, packagesToExclude);
chooserDialog.show(mFileActivity.getSupportFragmentManager(), FTAG_CHOOSER_DIALOG);
} else {