mirror of
https://github.com/nextcloud/android.git
synced 2024-11-27 09:39:25 +03:00
Merge pull request #420 from owncloud/send_file_pr311_with_develop
'Send file to other apps' optimized
This commit is contained in:
commit
30ac4cc870
13 changed files with 194 additions and 48 deletions
|
@ -92,11 +92,15 @@
|
||||||
<activity android:name=".ui.activity.PreferencesNewSessionewSession" >
|
<activity android:name=".ui.activity.PreferencesNewSessionewSession" >
|
||||||
</activity>
|
</activity>
|
||||||
|
|
||||||
<activity android:name=".ui.preview.PreviewImageActivity" />
|
<activity
|
||||||
|
android:name=".ui.preview.PreviewImageActivity"
|
||||||
|
/>
|
||||||
|
|
||||||
<activity android:name=".ui.preview.PreviewVideoActivity"
|
<activity
|
||||||
android:label="@string/app_name"
|
android:name=".ui.preview.PreviewVideoActivity"
|
||||||
android:theme="@style/Theme.ownCloud.Fullscreen" >
|
android:label="@string/app_name"
|
||||||
|
android:theme="@style/Theme.ownCloud.Fullscreen"
|
||||||
|
>
|
||||||
</activity>
|
</activity>
|
||||||
|
|
||||||
<service
|
<service
|
||||||
|
|
|
@ -1 +1 @@
|
||||||
Subproject commit cd4414a7bda686c84e1ca75dd10bcbf9b3f57f83
|
Subproject commit fb267a0564392adf4938b8f8824e5c89c22776a0
|
|
@ -21,6 +21,10 @@
|
||||||
<string name="auth_method_oauth2">off</string>
|
<string name="auth_method_oauth2">off</string>
|
||||||
<string name="auth_method_saml_web_sso">off</string>
|
<string name="auth_method_saml_web_sso">off</string>
|
||||||
|
|
||||||
|
<!-- Flags to enable/disable some features -->
|
||||||
|
<string name = "send_files_to_other_apps">on</string>
|
||||||
|
|
||||||
|
|
||||||
<!-- Colors -->
|
<!-- Colors -->
|
||||||
<color name="login_background_color">#FFFFFF</color>
|
<color name="login_background_color">#FFFFFF</color>
|
||||||
<color name="login_logo_background_color">#FFFFFF</color>
|
<color name="login_logo_background_color">#FFFFFF</color>
|
||||||
|
|
|
@ -253,6 +253,8 @@
|
||||||
<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="activity_chooser_send_file_title">Send</string>
|
||||||
|
|
||||||
<string name="copy_link">Copy link</string>
|
<string name="copy_link">Copy link</string>
|
||||||
<string name="clipboard_text_copied">Copied to clipboard</string>
|
<string name="clipboard_text_copied">Copied to clipboard</string>
|
||||||
</resources>
|
</resources>
|
||||||
|
|
|
@ -145,7 +145,7 @@ public class FileOperationsHelper {
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public void unshareFileWithLink(OCFile file, FileActivity callerActivity) {
|
public void unshareFileWithLink(OCFile file, FileActivity callerActivity) {
|
||||||
|
|
||||||
|
@ -166,4 +166,23 @@ public class FileOperationsHelper {
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void sendDownloadedFile(OCFile file, FileActivity callerActivity) {
|
||||||
|
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 = ShareLinkToDialog.newInstance(sendIntent, packagesToExclude, file);
|
||||||
|
chooserDialog.show(callerActivity.getSupportFragmentManager(), FTAG_CHOOSER_DIALOG);
|
||||||
|
|
||||||
|
} else {
|
||||||
|
Log_OC.wtf(TAG, "Trying to send a NULL OCFile");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -34,6 +34,7 @@ import android.content.IntentFilter;
|
||||||
import android.content.ServiceConnection;
|
import android.content.ServiceConnection;
|
||||||
import android.content.SharedPreferences;
|
import android.content.SharedPreferences;
|
||||||
import android.content.SyncRequest;
|
import android.content.SyncRequest;
|
||||||
|
import android.content.res.Configuration;
|
||||||
import android.content.res.Resources.NotFoundException;
|
import android.content.res.Resources.NotFoundException;
|
||||||
import android.database.Cursor;
|
import android.database.Cursor;
|
||||||
import android.net.Uri;
|
import android.net.Uri;
|
||||||
|
@ -120,6 +121,7 @@ OCFileListFragment.ContainerActivity, FileDetailFragment.ContainerActivity, OnNa
|
||||||
private static final String KEY_WAITING_TO_PREVIEW = "WAITING_TO_PREVIEW";
|
private static final String KEY_WAITING_TO_PREVIEW = "WAITING_TO_PREVIEW";
|
||||||
private static final String KEY_SYNC_IN_PROGRESS = "SYNC_IN_PROGRESS";
|
private static final String KEY_SYNC_IN_PROGRESS = "SYNC_IN_PROGRESS";
|
||||||
//private static final String KEY_REFRESH_SHARES_IN_PROGRESS = "SHARES_IN_PROGRESS";
|
//private static final String KEY_REFRESH_SHARES_IN_PROGRESS = "SHARES_IN_PROGRESS";
|
||||||
|
private static final String KEY_WAITING_TO_SEND = "WAITING_TO_SEND";
|
||||||
|
|
||||||
public static final int DIALOG_SHORT_WAIT = 0;
|
public static final int DIALOG_SHORT_WAIT = 0;
|
||||||
private static final int DIALOG_CHOOSE_UPLOAD_SOURCE = 1;
|
private static final int DIALOG_CHOOSE_UPLOAD_SOURCE = 1;
|
||||||
|
@ -141,6 +143,8 @@ OCFileListFragment.ContainerActivity, FileDetailFragment.ContainerActivity, OnNa
|
||||||
private boolean mSyncInProgress = false;
|
private boolean mSyncInProgress = false;
|
||||||
//private boolean mRefreshSharesInProgress = false;
|
//private boolean mRefreshSharesInProgress = false;
|
||||||
|
|
||||||
|
private OCFile mWaitingToSend;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void onCreate(Bundle savedInstanceState) {
|
protected void onCreate(Bundle savedInstanceState) {
|
||||||
Log_OC.d(TAG, "onCreate() start");
|
Log_OC.d(TAG, "onCreate() start");
|
||||||
|
@ -171,11 +175,13 @@ OCFileListFragment.ContainerActivity, FileDetailFragment.ContainerActivity, OnNa
|
||||||
mWaitingToPreview = (OCFile) savedInstanceState.getParcelable(FileDisplayActivity.KEY_WAITING_TO_PREVIEW);
|
mWaitingToPreview = (OCFile) savedInstanceState.getParcelable(FileDisplayActivity.KEY_WAITING_TO_PREVIEW);
|
||||||
mSyncInProgress = savedInstanceState.getBoolean(KEY_SYNC_IN_PROGRESS);
|
mSyncInProgress = savedInstanceState.getBoolean(KEY_SYNC_IN_PROGRESS);
|
||||||
//mRefreshSharesInProgress = savedInstanceState.getBoolean(KEY_REFRESH_SHARES_IN_PROGRESS);
|
//mRefreshSharesInProgress = savedInstanceState.getBoolean(KEY_REFRESH_SHARES_IN_PROGRESS);
|
||||||
|
mWaitingToSend = (OCFile) savedInstanceState.getParcelable(FileDisplayActivity.KEY_WAITING_TO_SEND);
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
mWaitingToPreview = null;
|
mWaitingToPreview = null;
|
||||||
mSyncInProgress = false;
|
mSyncInProgress = false;
|
||||||
//mRefreshSharesInProgress = false;
|
//mRefreshSharesInProgress = false;
|
||||||
|
mWaitingToSend = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
/// USER INTERFACE
|
/// USER INTERFACE
|
||||||
|
@ -218,7 +224,6 @@ OCFileListFragment.ContainerActivity, FileDetailFragment.ContainerActivity, OnNa
|
||||||
unbindService(mUploadConnection);
|
unbindService(mUploadConnection);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Called when the ownCloud {@link Account} associated to the Activity was just updated.
|
* Called when the ownCloud {@link Account} associated to the Activity was just updated.
|
||||||
*/
|
*/
|
||||||
|
@ -666,6 +671,7 @@ OCFileListFragment.ContainerActivity, FileDetailFragment.ContainerActivity, OnNa
|
||||||
outState.putParcelable(FileDisplayActivity.KEY_WAITING_TO_PREVIEW, mWaitingToPreview);
|
outState.putParcelable(FileDisplayActivity.KEY_WAITING_TO_PREVIEW, mWaitingToPreview);
|
||||||
outState.putBoolean(FileDisplayActivity.KEY_SYNC_IN_PROGRESS, mSyncInProgress);
|
outState.putBoolean(FileDisplayActivity.KEY_SYNC_IN_PROGRESS, mSyncInProgress);
|
||||||
//outState.putBoolean(FileDisplayActivity.KEY_REFRESH_SHARES_IN_PROGRESS, mRefreshSharesInProgress);
|
//outState.putBoolean(FileDisplayActivity.KEY_REFRESH_SHARES_IN_PROGRESS, mRefreshSharesInProgress);
|
||||||
|
outState.putParcelable(FileDisplayActivity.KEY_WAITING_TO_SEND, mWaitingToSend);
|
||||||
|
|
||||||
Log_OC.d(TAG, "onSaveInstanceState() end");
|
Log_OC.d(TAG, "onSaveInstanceState() end");
|
||||||
}
|
}
|
||||||
|
@ -1022,6 +1028,13 @@ OCFileListFragment.ContainerActivity, FileDetailFragment.ContainerActivity, OnNa
|
||||||
refreshSecondFragment(intent.getAction(), downloadedRemotePath, intent.getBooleanExtra(FileDownloader.EXTRA_DOWNLOAD_RESULT, false));
|
refreshSecondFragment(intent.getAction(), downloadedRemotePath, intent.getBooleanExtra(FileDownloader.EXTRA_DOWNLOAD_RESULT, false));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (mWaitingToSend != null) {
|
||||||
|
mWaitingToSend = getStorageManager().getFileByPath(mWaitingToSend.getRemotePath()); // Update the file to send
|
||||||
|
if (mWaitingToSend.isDown()) {
|
||||||
|
sendDownloadedFile();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
removeStickyBroadcast(intent);
|
removeStickyBroadcast(intent);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1601,4 +1614,34 @@ OCFileListFragment.ContainerActivity, FileDetailFragment.ContainerActivity, OnNa
|
||||||
}
|
}
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Requests the download of the received {@link OCFile} , updates the UI
|
||||||
|
* to monitor the download progress and prepares the activity to send the file
|
||||||
|
* when the download finishes.
|
||||||
|
*
|
||||||
|
* @param file {@link OCFile} to download and preview.
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public void startDownloadForSending(OCFile file) {
|
||||||
|
mWaitingToSend = file;
|
||||||
|
requestForDownload(mWaitingToSend);
|
||||||
|
boolean hasSecondFragment = (getSecondFragment()!= null);
|
||||||
|
updateFragmentsVisibility(hasSecondFragment);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void requestForDownload(OCFile file) {
|
||||||
|
Account account = getAccount();
|
||||||
|
if (!mDownloaderBinder.isDownloading(account, file)) {
|
||||||
|
Intent i = new Intent(this, FileDownloader.class);
|
||||||
|
i.putExtra(FileDownloader.EXTRA_ACCOUNT, account);
|
||||||
|
i.putExtra(FileDownloader.EXTRA_FILE, file);
|
||||||
|
startService(i);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void sendDownloadedFile(){
|
||||||
|
getFileOperationsHelper().sendDownloadedFile(mWaitingToSend, this);
|
||||||
|
mWaitingToSend = null;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -97,35 +97,59 @@ public class ShareLinkToDialog extends SherlockDialogFragment {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// add activity for copy to clipboard
|
boolean sendAction = mIntent.getBooleanExtra(Intent.ACTION_SEND, false);
|
||||||
Intent copyToClipboardIntent = new Intent(getSherlockActivity(), CopyToClipboardActivity.class);
|
|
||||||
List<ResolveInfo> copyToClipboard = pm.queryIntentActivities(copyToClipboardIntent, 0);
|
if (!sendAction) {
|
||||||
if (!copyToClipboard.isEmpty()) {
|
// add activity for copy to clipboard
|
||||||
activities.add(copyToClipboard.get(0));
|
Intent copyToClipboardIntent = new Intent(getSherlockActivity(), CopyToClipboardActivity.class);
|
||||||
|
List<ResolveInfo> copyToClipboard = pm.queryIntentActivities(copyToClipboardIntent, 0);
|
||||||
|
if (!copyToClipboard.isEmpty()) {
|
||||||
|
activities.add(copyToClipboard.get(0));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
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())
|
return createSelector(sendAction);
|
||||||
.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();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
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
|
||||||
|
FileOperationsHelper foh = new FileOperationsHelper();
|
||||||
|
foh.shareFileWithLinkToApp(mFile, mIntent, (FileActivity)getSherlockActivity());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})
|
||||||
|
.create();
|
||||||
|
}
|
||||||
|
|
||||||
class ActivityAdapter extends ArrayAdapter<ResolveInfo> {
|
class ActivityAdapter extends ArrayAdapter<ResolveInfo> {
|
||||||
|
|
||||||
|
|
|
@ -252,6 +252,20 @@ public class FileDetailFragment extends FileFragment implements
|
||||||
item.setVisible(false);
|
item.setVisible(false);
|
||||||
item.setEnabled(false);
|
item.setEnabled(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Send file
|
||||||
|
item = menu.findItem(R.id.action_send_file);
|
||||||
|
boolean sendEnabled = getString(R.string.send_files_to_other_apps).equalsIgnoreCase("on");
|
||||||
|
if (item != null) {
|
||||||
|
if (sendEnabled) {
|
||||||
|
item.setVisible(true);
|
||||||
|
item.setEnabled(true);
|
||||||
|
} else {
|
||||||
|
item.setVisible(false);
|
||||||
|
item.setEnabled(false);
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -376,6 +390,18 @@ public class FileDetailFragment extends FileFragment implements
|
||||||
synchronizeFile();
|
synchronizeFile();
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
case R.id.action_send_file: {
|
||||||
|
FileDisplayActivity activity = (FileDisplayActivity) getSherlockActivity();
|
||||||
|
// Obtain the file
|
||||||
|
if (!getFile().isDown()) { // Download the file
|
||||||
|
Log_OC.d(TAG, getFile().getRemotePath() + " : File must be downloaded");
|
||||||
|
activity.startDownloadForSending(getFile());
|
||||||
|
|
||||||
|
} else {
|
||||||
|
activity.getFileOperationsHelper().sendDownloadedFile(getFile(), activity);
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
default:
|
default:
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
|
@ -44,8 +44,6 @@ import com.owncloud.android.utils.Log_OC;
|
||||||
|
|
||||||
import android.accounts.Account;
|
import android.accounts.Account;
|
||||||
import android.app.Activity;
|
import android.app.Activity;
|
||||||
import android.content.Intent;
|
|
||||||
import android.net.Uri;
|
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.os.Handler;
|
import android.os.Handler;
|
||||||
import android.view.ContextMenu;
|
import android.view.ContextMenu;
|
||||||
|
@ -265,6 +263,12 @@ public class OCFileListFragment extends ExtendedListFragment implements EditName
|
||||||
toHide.add(R.id.action_unshare_file);
|
toHide.add(R.id.action_unshare_file);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Send file
|
||||||
|
boolean sendEnabled = getString(R.string.send_files_to_other_apps).equalsIgnoreCase("on");
|
||||||
|
if (!sendEnabled) {
|
||||||
|
toHide.add(R.id.action_send_file);
|
||||||
|
}
|
||||||
|
|
||||||
for (int i : toHide) {
|
for (int i : toHide) {
|
||||||
item = menu.findItem(i);
|
item = menu.findItem(i);
|
||||||
if (item != null) {
|
if (item != null) {
|
||||||
|
@ -362,11 +366,16 @@ public class OCFileListFragment extends ExtendedListFragment implements EditName
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
case R.id.action_send_file: {
|
case R.id.action_send_file: {
|
||||||
Intent sharingIntent = new Intent(android.content.Intent.ACTION_SEND);
|
// Obtain the file
|
||||||
// set MimeType
|
if (!mTargetFile.isDown()) { // Download the file
|
||||||
sharingIntent.setType(mTargetFile.getMimetype());
|
Log_OC.d(TAG, mTargetFile.getRemotePath() + " : File must be downloaded");
|
||||||
sharingIntent.putExtra(Intent.EXTRA_STREAM, Uri.parse("file://"+mTargetFile.getStoragePath()));
|
mContainerActivity.startDownloadForSending(mTargetFile);
|
||||||
startActivity(Intent.createChooser(sharingIntent, "Share via"));
|
|
||||||
|
} else {
|
||||||
|
|
||||||
|
FileDisplayActivity activity = (FileDisplayActivity) getSherlockActivity();
|
||||||
|
activity.getFileOperationsHelper().sendDownloadedFile(mTargetFile, activity);
|
||||||
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
default:
|
default:
|
||||||
|
@ -473,6 +482,8 @@ public class OCFileListFragment extends ExtendedListFragment implements EditName
|
||||||
* @param uploading Flag signaling if the file is now uploading.
|
* @param uploading Flag signaling if the file is now uploading.
|
||||||
*/
|
*/
|
||||||
public void onTransferStateChanged(OCFile file, boolean downloading, boolean uploading);
|
public void onTransferStateChanged(OCFile file, boolean downloading, boolean uploading);
|
||||||
|
|
||||||
|
void startDownloadForSending(OCFile file);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -23,6 +23,7 @@ import android.content.Intent;
|
||||||
import android.content.IntentFilter;
|
import android.content.IntentFilter;
|
||||||
import android.content.ServiceConnection;
|
import android.content.ServiceConnection;
|
||||||
import android.content.SharedPreferences;
|
import android.content.SharedPreferences;
|
||||||
|
import android.content.res.Configuration;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.os.IBinder;
|
import android.os.IBinder;
|
||||||
import android.preference.PreferenceManager;
|
import android.preference.PreferenceManager;
|
||||||
|
@ -245,7 +246,6 @@ public class PreviewImageActivity extends FileActivity implements FileFragment.C
|
||||||
super.onDestroy();
|
super.onDestroy();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean onOptionsItemSelected(MenuItem item) {
|
public boolean onOptionsItemSelected(MenuItem item) {
|
||||||
boolean returnValue = false;
|
boolean returnValue = false;
|
||||||
|
|
|
@ -250,6 +250,12 @@ public class PreviewImageFragment extends FileFragment implements OnRemoteOper
|
||||||
toHide.add(R.id.action_unshare_file);
|
toHide.add(R.id.action_unshare_file);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Send file
|
||||||
|
boolean sendEnabled = getString(R.string.send_files_to_other_apps).equalsIgnoreCase("on");
|
||||||
|
if (!sendEnabled) {
|
||||||
|
toHide.add(R.id.action_send_file);
|
||||||
|
}
|
||||||
|
|
||||||
for (int i : toHide) {
|
for (int i : toHide) {
|
||||||
item = menu.findItem(i);
|
item = menu.findItem(i);
|
||||||
if (item != null) {
|
if (item != null) {
|
||||||
|
@ -311,7 +317,8 @@ public class PreviewImageFragment extends FileFragment implements OnRemoteOper
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
case R.id.action_send_file: {
|
case R.id.action_send_file: {
|
||||||
shareFile();
|
FileActivity act = (FileActivity)getSherlockActivity();
|
||||||
|
act.getFileOperationsHelper().sendDownloadedFile(getFile(), act);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -320,15 +327,6 @@ public class PreviewImageFragment extends FileFragment implements OnRemoteOper
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void shareFile(){
|
|
||||||
Intent sharingIntent = new Intent(android.content.Intent.ACTION_SEND);
|
|
||||||
// set MimeType
|
|
||||||
sharingIntent.setType(getFile().getMimetype());
|
|
||||||
sharingIntent.putExtra(Intent.EXTRA_STREAM, Uri.parse("file://"+getFile().getStoragePath()));
|
|
||||||
startActivity(Intent.createChooser(sharingIntent, "Share via"));
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
private void seeDetails() {
|
private void seeDetails() {
|
||||||
((FileFragment.ContainerActivity)getActivity()).showDetails(getFile());
|
((FileFragment.ContainerActivity)getActivity()).showDetails(getFile());
|
||||||
|
|
|
@ -295,6 +295,12 @@ public class PreviewMediaFragment extends FileFragment implements
|
||||||
toHide.add(R.id.action_unshare_file);
|
toHide.add(R.id.action_unshare_file);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Send file
|
||||||
|
boolean sendEnabled = getString(R.string.send_files_to_other_apps).equalsIgnoreCase("on");
|
||||||
|
if (!sendEnabled) {
|
||||||
|
toHide.add(R.id.action_send_file);
|
||||||
|
}
|
||||||
|
|
||||||
for (int i : toHide) {
|
for (int i : toHide) {
|
||||||
item = menu.findItem(i);
|
item = menu.findItem(i);
|
||||||
if (item != null) {
|
if (item != null) {
|
||||||
|
@ -351,6 +357,9 @@ public class PreviewMediaFragment extends FileFragment implements
|
||||||
seeDetails();
|
seeDetails();
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
case R.id.action_send_file: {
|
||||||
|
sendFile();
|
||||||
|
}
|
||||||
|
|
||||||
default:
|
default:
|
||||||
return false;
|
return false;
|
||||||
|
@ -380,6 +389,12 @@ public class PreviewMediaFragment extends FileFragment implements
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void sendFile() {
|
||||||
|
stopPreview(false);
|
||||||
|
FileActivity activity = (FileActivity)((FileFragment.ContainerActivity)getActivity());
|
||||||
|
activity.getFileOperationsHelper().sendDownloadedFile(getFile(), activity);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
private void seeDetails() {
|
private void seeDetails() {
|
||||||
stopPreview(false);
|
stopPreview(false);
|
||||||
|
|
|
@ -27,6 +27,7 @@ import android.accounts.Account;
|
||||||
import android.app.AlertDialog;
|
import android.app.AlertDialog;
|
||||||
import android.content.DialogInterface;
|
import android.content.DialogInterface;
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
|
import android.content.res.Configuration;
|
||||||
import android.media.MediaPlayer;
|
import android.media.MediaPlayer;
|
||||||
import android.media.MediaPlayer.OnCompletionListener;
|
import android.media.MediaPlayer.OnCompletionListener;
|
||||||
import android.media.MediaPlayer.OnErrorListener;
|
import android.media.MediaPlayer.OnErrorListener;
|
||||||
|
@ -188,7 +189,6 @@ public class PreviewVideoActivity extends FileActivity implements OnCompletionLi
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void onAccountSet(boolean stateWasRecovered) {
|
protected void onAccountSet(boolean stateWasRecovered) {
|
||||||
super.onAccountSet(stateWasRecovered);
|
super.onAccountSet(stateWasRecovered);
|
||||||
|
|
Loading…
Reference in a new issue