}
}
+ public void getFileWithLink(OCFile file){
+ if (isSharedSupported()) {
+ if (file != null) {
+ mFileActivity.showLoadingDialog(mFileActivity.getApplicationContext().
+ 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());
+ service.putExtra(OperationsService.EXTRA_REMOTE_PATH, file.getRemotePath());
+ 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) {
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
+import android.support.v4.app.DialogFragment;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentTransaction;
import com.owncloud.android.R;
import com.owncloud.android.lib.common.utils.Log_OC;
+import com.owncloud.android.operations.CreateShareViaLinkOperation;
import com.owncloud.android.providers.UsersAndGroupsSearchProvider;
import com.owncloud.android.lib.common.operations.RemoteOperation;
import com.owncloud.android.datamodel.OCFile;
import com.owncloud.android.lib.resources.shares.OCShare;
import com.owncloud.android.lib.resources.shares.ShareType;
+import com.owncloud.android.ui.dialog.ShareLinkToDialog;
import com.owncloud.android.ui.fragment.SearchShareesFragment;
import com.owncloud.android.ui.fragment.ShareFileFragment;
import com.owncloud.android.utils.GetShareWithUsersAsyncTask;
+import org.apache.http.protocol.HTTP;
+
/**
* Activity for sharing files
private static final String TAG_SHARE_FRAGMENT = "SHARE_FRAGMENT";
private static final String TAG_SEARCH_FRAGMENT = "SEARCH_USER_AND_GROUPS_FRAGMENT";
+ /** Tag for dialog */
+ private static final String FTAG_CHOOSER_DIALOG = "CHOOSER_DIALOG";
@Override
protected void onCreate(Bundle savedInstanceState) {
if (result.isSuccess()) {
Log_OC.d(TAG, "Refreshing view on successful operation");
refreshSharesFromStorageManager();
+
+ if (operation instanceof CreateShareViaLinkOperation) {
+ // Send link to the app
+ String link = ((OCShare) (result.getData().get(0))).getShareLink();
+ Log_OC.d(TAG, "Share link = " + link);
+
+ Intent intentToShareLink = new Intent(Intent.ACTION_SEND);
+ intentToShareLink.putExtra(Intent.EXTRA_TEXT, link);
+ intentToShareLink.setType(HTTP.PLAIN_TEXT_TYPE);
+ String[] packagesToExclude = new String[]{getPackageName()};
+ DialogFragment chooserDialog = ShareLinkToDialog.newInstance(intentToShareLink,
+ packagesToExclude, getFile());
+ chooserDialog.show(getSupportFragmentManager(), FTAG_CHOOSER_DIALOG);
+ }
}
}
((FileActivity)getActivity()).startActivity(mIntent);
} else {
- // Create a new share resource
- ((ComponentsGetter)getActivity()).getFileOperationsHelper()
- .shareFileWithLinkToApp(mFile, "", mIntent);
+// // Create a new share resource
+// ((ComponentsGetter)getActivity()).getFileOperationsHelper()
+// .shareFileWithLinkToApp(mFile, "", mIntent);
+ // Send the intent
+ dialog.dismiss(); // explicitly added for Android 2.x devices
+
+ // Send the file
+ ((FileActivity)getActivity()).startActivity(mIntent);
}
}
})
import android.accounts.Account;
import android.app.Activity;
+import android.content.Intent;
import android.graphics.Bitmap;
import android.os.Bundle;
+import android.support.v4.app.DialogFragment;
import android.support.v4.app.Fragment;
import android.support.v7.widget.AppCompatButton;
import android.view.LayoutInflater;
import com.owncloud.android.authentication.AccountUtils;
import com.owncloud.android.datamodel.OCFile;
import com.owncloud.android.datamodel.ThumbnailsCacheManager;
+import com.owncloud.android.files.FileOperationsHelper;
import com.owncloud.android.lib.common.utils.Log_OC;
import com.owncloud.android.lib.resources.shares.OCShare;
import com.owncloud.android.lib.resources.shares.ShareType;
import com.owncloud.android.utils.MimetypeIconUtil;
import java.text.SimpleDateFormat;
+
import java.util.ArrayList;
import java.util.Date;
private static final String TAG = ShareFileFragment.class.getSimpleName();
- // the fragment initialization parameters
+ /** The fragment initialization parameters */
private static final String ARG_FILE = "FILE";
private static final String ARG_ACCOUNT = "ACCOUNT";
+// /** Tag for dialog */
+// private static final String FTAG_CHOOSER_DIALOG = "CHOOSER_DIALOG";
+
/** File to share, received as a parameter in construction time */
private OCFile mFile;
}
getExpirationDateSection().setVisibility(View.VISIBLE);
getPasswordSection().setVisibility(View.VISIBLE);
- getGetLinkButton().setVisibility(View.VISIBLE);
+ // GetLink button
+ AppCompatButton getLinkButton = getGetLinkButton();
+ getLinkButton.setVisibility(View.VISIBLE);
+ getLinkButton.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ //GetLink from the server and show ShareLinkToDialog
+ ((FileActivity) getActivity()).getFileOperationsHelper().
+ getFileWithLink(mFile);
+
+ }
+ });
/// update state of expiration date switch and message depending on expiration date
/// update state of expiration date switch and message depending on expiration date
return (AppCompatButton) getView().findViewById(R.id.shareViewLinkGetLinkButton);
}
-
/**
* This interface must be implemented by activities that contain this
* fragment to allow an interaction in this fragment to be communicated