Browse Source

combine send/share

tobiaskaminsky 7 years ago
parent
commit
dc2d7edc56
71 changed files with 611 additions and 193 deletions
  1. 2 11
      src/main/java/com/owncloud/android/files/FileMenuFilter.java
  2. 7 1
      src/main/java/com/owncloud/android/files/services/FileDownloader.java
  3. 14 1
      src/main/java/com/owncloud/android/operations/DownloadFileOperation.java
  4. 33 15
      src/main/java/com/owncloud/android/ui/activity/FileDisplayActivity.java
  5. 88 0
      src/main/java/com/owncloud/android/ui/adapter/SendButtonAdapter.java
  6. 54 0
      src/main/java/com/owncloud/android/ui/components/SendButtonData.java
  7. 169 0
      src/main/java/com/owncloud/android/ui/dialog/SendShareDialog.java
  8. 6 13
      src/main/java/com/owncloud/android/ui/fragment/FileDetailFragment.java
  9. 4 28
      src/main/java/com/owncloud/android/ui/fragment/OCFileListFragment.java
  10. 13 16
      src/main/java/com/owncloud/android/ui/helpers/FileOperationsHelper.java
  11. 5 12
      src/main/java/com/owncloud/android/ui/preview/PreviewImageFragment.java
  12. 6 16
      src/main/java/com/owncloud/android/ui/preview/PreviewMediaFragment.java
  13. 4 11
      src/main/java/com/owncloud/android/ui/preview/PreviewTextFragment.java
  14. 7 7
      src/main/res/layout/file_details_fragment.xml
  15. 37 0
      src/main/res/layout/send_button.xml
  16. 102 0
      src/main/res/layout/send_share_fragment.xml
  17. 2 8
      src/main/res/menu/file_actions_menu.xml
  18. 1 1
      src/main/res/values-ar/strings.xml
  19. 1 1
      src/main/res/values-ast/strings.xml
  20. 1 1
      src/main/res/values-b+en+001/strings.xml
  21. 1 1
      src/main/res/values-bg-rBG/strings.xml
  22. 1 1
      src/main/res/values-ca/strings.xml
  23. 1 1
      src/main/res/values-cs-rCZ/strings.xml
  24. 1 1
      src/main/res/values-da/strings.xml
  25. 1 1
      src/main/res/values-de-rDE/strings.xml
  26. 1 1
      src/main/res/values-de/strings.xml
  27. 1 1
      src/main/res/values-el/strings.xml
  28. 1 1
      src/main/res/values-es-rAR/strings.xml
  29. 1 1
      src/main/res/values-es-rCL/strings.xml
  30. 1 1
      src/main/res/values-es-rCO/strings.xml
  31. 1 1
      src/main/res/values-es-rCR/strings.xml
  32. 1 1
      src/main/res/values-es-rDO/strings.xml
  33. 1 1
      src/main/res/values-es-rEC/strings.xml
  34. 1 1
      src/main/res/values-es-rGT/strings.xml
  35. 1 1
      src/main/res/values-es-rHN/strings.xml
  36. 1 1
      src/main/res/values-es-rMX/strings.xml
  37. 1 1
      src/main/res/values-es-rNI/strings.xml
  38. 1 1
      src/main/res/values-es-rPA/strings.xml
  39. 1 1
      src/main/res/values-es-rPE/strings.xml
  40. 1 1
      src/main/res/values-es-rPR/strings.xml
  41. 1 1
      src/main/res/values-es-rPY/strings.xml
  42. 1 1
      src/main/res/values-es-rSV/strings.xml
  43. 1 1
      src/main/res/values-es-rUY/strings.xml
  44. 1 1
      src/main/res/values-es/strings.xml
  45. 1 1
      src/main/res/values-eu/strings.xml
  46. 1 1
      src/main/res/values-fa/strings.xml
  47. 1 1
      src/main/res/values-fi-rFI/strings.xml
  48. 1 1
      src/main/res/values-fr/strings.xml
  49. 1 1
      src/main/res/values-hu-rHU/strings.xml
  50. 1 1
      src/main/res/values-id/strings.xml
  51. 1 1
      src/main/res/values-is/strings.xml
  52. 1 1
      src/main/res/values-it/strings.xml
  53. 1 1
      src/main/res/values-ja-rJP/strings.xml
  54. 1 1
      src/main/res/values-ka-rGE/strings.xml
  55. 1 1
      src/main/res/values-ko/strings.xml
  56. 1 1
      src/main/res/values-lt-rLT/strings.xml
  57. 1 1
      src/main/res/values-nb-rNO/strings.xml
  58. 1 1
      src/main/res/values-nl/strings.xml
  59. 1 1
      src/main/res/values-pl/strings.xml
  60. 1 1
      src/main/res/values-pt-rBR/strings.xml
  61. 1 1
      src/main/res/values-ro/strings.xml
  62. 1 1
      src/main/res/values-ru/strings.xml
  63. 1 1
      src/main/res/values-sk-rSK/strings.xml
  64. 1 1
      src/main/res/values-sl/strings.xml
  65. 1 1
      src/main/res/values-sq/strings.xml
  66. 1 1
      src/main/res/values-sr/strings.xml
  67. 1 1
      src/main/res/values-sv/strings.xml
  68. 1 1
      src/main/res/values-tr/strings.xml
  69. 1 1
      src/main/res/values-zh-rCN/strings.xml
  70. 1 1
      src/main/res/values-zh-rTW/strings.xml
  71. 5 1
      src/main/res/values/strings.xml

+ 2 - 11
src/main/java/com/owncloud/android/files/FileMenuFilter.java

@@ -242,9 +242,9 @@ public class FileMenuFilter {
                 );
         if ((!shareViaLinkAllowed && !shareWithUsersAllowed) ||
                 !isSingleSelection() || !shareApiEnabled || mOverflowMenu) {
-            toHide.add(R.id.action_share_file);
+            toHide.add(R.id.action_send_share_file);
         } else {
-            toShow.add(R.id.action_share_file);
+            toShow.add(R.id.action_send_share_file);
         }
 
         // SEE DETAILS
@@ -254,15 +254,6 @@ public class FileMenuFilter {
             toShow.add(R.id.action_see_details);
         }
 
-        // SEND
-        boolean sendAllowed = (mContext != null &&
-                mContext.getString(R.string.send_files_to_other_apps).equalsIgnoreCase("on"));
-        if (!isSingleFile() || !sendAllowed || synchronizing) {
-            toHide.add(R.id.action_send_file);
-        } else {
-            toShow.add(R.id.action_send_file);
-        }
-
         // Kept available offline
         if (!allFiles() || synchronizing || allKeptAvailableOffline()) {
             toHide.add(R.id.action_keep_files_offline);

+ 7 - 1
src/main/java/com/owncloud/android/files/services/FileDownloader.java

@@ -55,6 +55,7 @@ import com.owncloud.android.lib.resources.files.FileUtils;
 import com.owncloud.android.operations.DownloadFileOperation;
 import com.owncloud.android.ui.activity.FileActivity;
 import com.owncloud.android.ui.activity.FileDisplayActivity;
+import com.owncloud.android.ui.dialog.SendShareDialog;
 import com.owncloud.android.ui.fragment.OCFileListFragment;
 import com.owncloud.android.ui.notifications.NotificationUtils;
 import com.owncloud.android.ui.preview.PreviewImageActivity;
@@ -182,9 +183,12 @@ public class FileDownloader extends Service
             final Account account = intent.getParcelableExtra(EXTRA_ACCOUNT);
             final OCFile file = intent.getParcelableExtra(EXTRA_FILE);
             final String behaviour = intent.getStringExtra(OCFileListFragment.DOWNLOAD_BEHAVIOUR);
+            String activityName = intent.getStringExtra(SendShareDialog.ACTIVITY_NAME);
+            String packageName = intent.getStringExtra(SendShareDialog.PACKAGE_NAME);
             AbstractList<String> requestedDownloads = new Vector<String>();
             try {
-                DownloadFileOperation newDownload = new DownloadFileOperation(account, file, behaviour);
+                DownloadFileOperation newDownload = new DownloadFileOperation(account, file, behaviour, activityName,
+                        packageName);
                 newDownload.addDatatransferProgressListener(this);
                 newDownload.addDatatransferProgressListener((FileDownloaderBinder) mBinder);
                 Pair<String, String> putResult = mPendingDownloads.putIfAbsent(
@@ -648,6 +652,8 @@ public class FileDownloader extends Service
         end.putExtra(EXTRA_REMOTE_PATH, download.getRemotePath());
         end.putExtra(EXTRA_FILE_PATH, download.getSavePath());
         end.putExtra(OCFileListFragment.DOWNLOAD_BEHAVIOUR, download.getBehaviour());
+        end.putExtra(SendShareDialog.ACTIVITY_NAME, download.getActivityName());
+        end.putExtra(SendShareDialog.PACKAGE_NAME, download.getPackageName());
         if (unlinkedFromRemotePath != null) {
             end.putExtra(EXTRA_LINKED_TO_PATH, unlinkedFromRemotePath);
         }

+ 14 - 1
src/main/java/com/owncloud/android/operations/DownloadFileOperation.java

@@ -56,9 +56,12 @@ public class DownloadFileOperation extends RemoteOperation {
     private final AtomicBoolean mCancellationRequested = new AtomicBoolean(false);
     
     private DownloadRemoteFileOperation mDownloadOperation;
+    private String mActivityName;
+    private String mPackageName;
 
 
-    public DownloadFileOperation(Account account, OCFile file, String behaviour) {
+    public DownloadFileOperation(Account account, OCFile file, String behaviour, String activityName,
+                                 String packageName) {
         if (account == null) {
             throw new IllegalArgumentException("Illegal null account in DownloadFileOperation " +
                     "creation");
@@ -71,6 +74,8 @@ public class DownloadFileOperation extends RemoteOperation {
         mAccount = account;
         mFile = file;
         mBehaviour = behaviour;
+        mActivityName = activityName;
+        mPackageName = packageName;
     }
 
 
@@ -201,4 +206,12 @@ public class DownloadFileOperation extends RemoteOperation {
             mDataTransferListeners.remove(listener);
         }
     }
+
+    public String getActivityName() {
+        return mActivityName;
+    }
+
+    public String getPackageName() {
+        return mPackageName;
+    }
 }

+ 33 - 15
src/main/java/com/owncloud/android/ui/activity/FileDisplayActivity.java

@@ -86,6 +86,7 @@ import com.owncloud.android.operations.SynchronizeFileOperation;
 import com.owncloud.android.operations.UploadFileOperation;
 import com.owncloud.android.services.observer.FileObserverService;
 import com.owncloud.android.syncadapter.FileSyncAdapter;
+import com.owncloud.android.ui.dialog.SendShareDialog;
 import com.owncloud.android.ui.dialog.SortingOrderDialogFragment;
 import com.owncloud.android.ui.events.SyncEventFinished;
 import com.owncloud.android.ui.events.TokenPushEvent;
@@ -1447,7 +1448,10 @@ public class FileDisplayActivity extends HookActivity
                     if (mWaitingToSend.isDown() && downloadBehaviour != null) {
                         switch (downloadBehaviour) {
                             case OCFileListFragment.DOWNLOAD_SEND:
-                                sendDownloadedFile();
+                                String packageName = intent.getStringExtra(SendShareDialog.PACKAGE_NAME);
+                                String activityName = intent.getStringExtra(SendShareDialog.ACTIVITY_NAME);
+
+                                sendDownloadedFile(packageName, activityName);
                                 break;
                             default:
                                 // do nothing
@@ -1559,19 +1563,16 @@ public class FileDisplayActivity extends HookActivity
 
         @Override
         public void onServiceConnected(ComponentName component, IBinder service) {
-            if (component.equals(new ComponentName(
-                    FileDisplayActivity.this, FileDownloader.class))) {
+            if (component.equals(new ComponentName(FileDisplayActivity.this, FileDownloader.class))) {
                 Log_OC.d(TAG, "Download service connected");
                 mDownloaderBinder = (FileDownloaderBinder) service;
                 if (mWaitingToPreview != null && getStorageManager() != null) {
                     // update the file
-                    mWaitingToPreview =
-                            getStorageManager().getFileById(mWaitingToPreview.getFileId());
+                    mWaitingToPreview = getStorageManager().getFileById(mWaitingToPreview.getFileId());
                     if (!mWaitingToPreview.isDown()) {
                         requestForDownload();
                     }
                 }
-
             } else if (component.equals(new ComponentName(FileDisplayActivity.this,
                     FileUploader.class))) {
                 Log_OC.d(TAG, "Upload service connected");
@@ -1596,12 +1597,10 @@ public class FileDisplayActivity extends HookActivity
 
         @Override
         public void onServiceDisconnected(ComponentName component) {
-            if (component.equals(new ComponentName(FileDisplayActivity.this,
-                    FileDownloader.class))) {
+            if (component.equals(new ComponentName(FileDisplayActivity.this, FileDownloader.class))) {
                 Log_OC.d(TAG, "Download service disconnected");
                 mDownloaderBinder = null;
-            } else if (component.equals(new ComponentName(FileDisplayActivity.this,
-                    FileUploader.class))) {
+            } else if (component.equals(new ComponentName(FileDisplayActivity.this, FileUploader.class))) {
                 Log_OC.d(TAG, "Upload service disconnected");
                 mUploaderBinder = null;
             }
@@ -1967,19 +1966,35 @@ public class FileDisplayActivity extends HookActivity
         }
     }
 
-    private void requestForDownload(OCFile file, String downloadBehaviour) {
+    private void requestForDownload(OCFile file, String downloadBehaviour, String packageName, String activityName) {
         Account account = getAccount();
         if (!mDownloaderBinder.isDownloading(account, mWaitingToPreview)) {
             Intent i = new Intent(this, FileDownloader.class);
             i.putExtra(FileDownloader.EXTRA_ACCOUNT, account);
             i.putExtra(FileDownloader.EXTRA_FILE, file);
+            i.putExtra(SendShareDialog.PACKAGE_NAME, packageName);
+            i.putExtra(SendShareDialog.ACTIVITY_NAME, activityName);
             i.putExtra(OCFileListFragment.DOWNLOAD_BEHAVIOUR, downloadBehaviour);
             startService(i);
         }
     }
 
-    private void sendDownloadedFile() {
-        getFileOperationsHelper().sendDownloadedFile(mWaitingToSend);
+    private void sendDownloadedFile(String packageName, String activityName) {
+        if (mWaitingToSend != null) {
+            Intent sendIntent = new Intent(Intent.ACTION_SEND);
+            sendIntent.setType(mWaitingToSend.getMimetype());
+            sendIntent.putExtra(Intent.EXTRA_STREAM, mWaitingToSend.getExposedFileUri(this));
+            sendIntent.putExtra(Intent.ACTION_SEND, true);
+
+            sendIntent.setComponent(new ComponentName(packageName, activityName));
+
+            // Show dialog
+            String sendTitle = getString(R.string.activity_chooser_send_file_title);
+            startActivity(Intent.createChooser(sendIntent, sendTitle));
+        } else {
+            Log_OC.e(TAG, "Trying to send a NULL OCFile");
+        }
+        
         mWaitingToSend = null;
     }
 
@@ -1989,10 +2004,13 @@ public class FileDisplayActivity extends HookActivity
      * when the download finishes.
      *
      * @param file {@link OCFile} to download and preview.
+     * @param packageName
+     * @param activityName
      */
-    public void startDownloadForSending(OCFile file, String downloadBehaviour) {
+    public void startDownloadForSending(OCFile file, String downloadBehaviour, String packageName,
+                                        String activityName) {
         mWaitingToSend = file;
-        requestForDownload(mWaitingToSend, downloadBehaviour);
+        requestForDownload(mWaitingToSend, downloadBehaviour, packageName, activityName);
         boolean hasSecondFragment = (getSecondFragment() != null);
         updateFragmentsVisibility(hasSecondFragment);
     }

+ 88 - 0
src/main/java/com/owncloud/android/ui/adapter/SendButtonAdapter.java

@@ -0,0 +1,88 @@
+package com.owncloud.android.ui.adapter;
+
+/*
+ * Nextcloud Android client application
+ *
+ * @author Tobias Kaminsky
+ * Copyright (C) 2017 Tobias Kaminsky
+ * Copyright (C) 2017 Nextcloud GmbH.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+import android.support.v7.widget.RecyclerView;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.TextView;
+
+import com.owncloud.android.R;
+import com.owncloud.android.ui.components.SendButtonData;
+
+import java.util.List;
+
+public class SendButtonAdapter extends RecyclerView.Adapter<SendButtonAdapter.ViewHolder> {
+
+    private List<SendButtonData> sendButtonDataList;
+    private ClickListener clickListener;
+
+    public SendButtonAdapter(List<SendButtonData> sendButtonDataList, ClickListener clickListener) {
+        this.sendButtonDataList = sendButtonDataList;
+        this.clickListener = clickListener;
+    }
+
+    @Override
+    public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
+        return new ViewHolder(LayoutInflater.from(parent.getContext()).inflate(R.layout.send_button, parent, false));
+    }
+
+    @Override
+    public void onBindViewHolder(ViewHolder holder, int position) {
+        holder.setData(sendButtonDataList.get(position));
+    }
+
+    @Override
+    public int getItemCount() {
+        return sendButtonDataList.size();
+    }
+
+    public class ViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener {
+
+        private TextView sendButton;
+        private SendButtonData sendButtonDataData;
+
+        public ViewHolder(View itemView) {
+            super(itemView);
+            itemView.setOnClickListener(this);
+            sendButton = (TextView) itemView.findViewById(R.id.send_button);
+        }
+
+        @Override
+        public void onClick(View v) {
+            if (clickListener != null) {
+                clickListener.onClick(sendButtonDataData);
+            }
+        }
+
+        public void setData(SendButtonData item) {
+            sendButtonDataData = item;
+            sendButton.setCompoundDrawablesWithIntrinsicBounds(null, item.getDrawable(), null, null);
+            sendButton.setText(item.getTitle());
+        }
+    }
+
+    public interface ClickListener {
+        void onClick(SendButtonData sendButtonDataData);
+    }
+}

+ 54 - 0
src/main/java/com/owncloud/android/ui/components/SendButtonData.java

@@ -0,0 +1,54 @@
+package com.owncloud.android.ui.components;
+
+/*
+ * Nextcloud Android client application
+ *
+ * @author Tobias Kaminsky
+ * Copyright (C) 2017 Tobias Kaminsky
+ * Copyright (C) 2017 Nextcloud GmbH.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+import android.graphics.drawable.Drawable;
+
+public class SendButtonData {
+    private Drawable drawable;
+    private CharSequence title;
+    private String packageName;
+    private String activityName;
+
+    public SendButtonData(Drawable drawable, CharSequence title, String packageName, String activityName) {
+        this.drawable = drawable;
+        this.title = title;
+        this.packageName = packageName;
+        this.activityName = activityName;
+    }
+
+    public Drawable getDrawable() {
+        return drawable;
+    }
+
+    public CharSequence getTitle() {
+        return title;
+    }
+
+    public String getPackageName() {
+        return packageName;
+    }
+
+    public String getActivityName() {
+        return activityName;
+    }
+}

+ 169 - 0
src/main/java/com/owncloud/android/ui/dialog/SendShareDialog.java

@@ -0,0 +1,169 @@
+package com.owncloud.android.ui.dialog;
+
+import android.content.ComponentName;
+import android.content.Intent;
+import android.content.pm.ResolveInfo;
+import android.graphics.drawable.Drawable;
+import android.os.Bundle;
+import android.support.annotation.Nullable;
+import android.support.design.widget.BottomSheetDialogFragment;
+import android.support.design.widget.Snackbar;
+import android.support.v7.widget.GridLayoutManager;
+import android.support.v7.widget.RecyclerView;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.TextView;
+
+import com.owncloud.android.R;
+import com.owncloud.android.datamodel.OCFile;
+import com.owncloud.android.lib.common.utils.Log_OC;
+import com.owncloud.android.ui.activity.FileDisplayActivity;
+import com.owncloud.android.ui.adapter.SendButtonAdapter;
+import com.owncloud.android.ui.components.SendButtonData;
+import com.owncloud.android.ui.fragment.OCFileListFragment;
+import com.owncloud.android.ui.helpers.FileOperationsHelper;
+import com.owncloud.android.utils.MimeTypeUtil;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/*
+ * Nextcloud Android client application
+ *
+ * @author Tobias Kaminsky
+ * Copyright (C) 2017 Tobias Kaminsky
+ * Copyright (C) 2017 Nextcloud GmbH.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+public class SendShareDialog extends BottomSheetDialogFragment {
+
+    private static final String KEY_OCFILE = "KEY_OCFILE";
+    private static final String TAG = SendShareDialog.class.getSimpleName();
+    public static final String PACKAGE_NAME = "PACKAGE_NAME";
+    public static final String ACTIVITY_NAME = "ACTIVITY_NAME";
+
+    private View view;
+    private OCFile file;
+    private FileOperationsHelper fileOperationsHelper;
+    private FileDisplayActivity fileDisplayActivity;
+
+    public static SendShareDialog newInstance(OCFile file) {
+
+        SendShareDialog dialogFragment = new SendShareDialog();
+
+        Bundle args = new Bundle();
+        args.putParcelable(KEY_OCFILE, file);
+        dialogFragment.setArguments(args);
+
+        return dialogFragment;
+    }
+
+    @Override
+    public void onCreate(@Nullable Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+        // keep the state of the fragment on configuration changes
+        setRetainInstance(true);
+
+        view = null;
+
+        file = getArguments().getParcelable(KEY_OCFILE);
+    }
+
+    @Nullable
+    @Override
+    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
+
+        view = inflater.inflate(R.layout.send_share_fragment, container, false);
+
+        // Share with people
+        TextView sharePeopleButton = (TextView) view.findViewById(R.id.share_people_button);
+
+        sharePeopleButton.setOnClickListener(v -> fileOperationsHelper.showShareFile(file));
+
+
+        // Share via link button
+        TextView shareLinkButton = (TextView) view.findViewById(R.id.share_link_button);
+
+        if (file.isSharedWithMe() && !file.canReshare()) {
+            Snackbar.make(view, R.string.resharing_is_not_allowed, Snackbar.LENGTH_LONG).show();
+            shareLinkButton.setVisibility(View.GONE);
+        }
+
+        shareLinkButton.setOnClickListener(v -> fileOperationsHelper.showShareFile(file));
+
+
+        // populate send apps
+        Intent sendIntent = new Intent(Intent.ACTION_SEND);
+        sendIntent.setType(file.getMimetype());
+        sendIntent.putExtra(Intent.EXTRA_STREAM, file.getExposedFileUri(getActivity()));
+        sendIntent.putExtra(Intent.ACTION_SEND, true);
+
+        List<SendButtonData> sendButtonDataList = new ArrayList<>();
+        for (ResolveInfo match : getActivity().getPackageManager().queryIntentActivities(sendIntent, 0)) {
+            Drawable icon = match.loadIcon(getActivity().getPackageManager());
+            CharSequence label = match.loadLabel(getActivity().getPackageManager());
+            SendButtonData sendButtonData = new SendButtonData(icon, label,
+                    match.activityInfo.packageName,
+                    match.activityInfo.name);
+
+            sendButtonDataList.add(sendButtonData);
+        }
+
+        if (getContext().getString(R.string.send_files_to_other_apps).equalsIgnoreCase("off")) {
+            sharePeopleButton.setVisibility(View.GONE);
+        }
+
+        SendButtonAdapter.ClickListener clickListener = sendButtonDataData -> {
+
+            if (MimeTypeUtil.isImage(file) && !file.isDown()) {
+                fileOperationsHelper.sendCachedImage(file);
+            } else {
+                String packageName = sendButtonDataData.getPackageName();
+                String activityName = sendButtonDataData.getActivityName();
+                
+                // Obtain the file
+                if (file.isDown()) {
+                    sendIntent.setComponent(new ComponentName(packageName, activityName));
+                    getActivity().startActivity(Intent.createChooser(sendIntent, getString(R.string.send)));
+
+                } else {  // Download the file
+                    Log_OC.d(TAG, file.getRemotePath() + ": File must be downloaded");
+                    fileDisplayActivity.startDownloadForSending(file, OCFileListFragment.DOWNLOAD_SEND,
+                            packageName, activityName);
+                }
+            }
+
+            dismiss();
+        };
+
+        RecyclerView sendButtonsView = (RecyclerView) view.findViewById(R.id.send_button_recycler_view);
+        sendButtonsView.setHasFixedSize(true);
+        sendButtonsView.setLayoutManager(new GridLayoutManager(getActivity(), 3));
+        sendButtonsView.setAdapter(new SendButtonAdapter(sendButtonDataList, clickListener));
+
+
+        return view;
+    }
+
+    public void setFileOperationsHelper(FileOperationsHelper fileOperationsHelper) {
+        this.fileOperationsHelper = fileOperationsHelper;
+    }
+
+    public void setFileDisplayActivity(FileDisplayActivity fileDisplayActivity) {
+        this.fileDisplayActivity = fileDisplayActivity;
+    }
+}

+ 6 - 13
src/main/java/com/owncloud/android/ui/fragment/FileDetailFragment.java

@@ -137,11 +137,11 @@ public class FileDetailFragment extends FileFragment implements OnClickListener,
     public View onCreateView(LayoutInflater inflater, ViewGroup container,
             Bundle savedInstanceState) {
 
-        setFile((OCFile) getArguments().getParcelable(ARG_FILE));
+        setFile(getArguments().getParcelable(ARG_FILE));
         mAccount = getArguments().getParcelable(ARG_ACCOUNT);
 
         if (savedInstanceState != null) {
-            setFile((OCFile) savedInstanceState.getParcelable(FileActivity.EXTRA_FILE));
+            setFile(savedInstanceState.getParcelable(FileActivity.EXTRA_FILE));
             mAccount = savedInstanceState.getParcelable(FileActivity.EXTRA_ACCOUNT);
         }
 
@@ -292,7 +292,7 @@ public class FileDetailFragment extends FileFragment implements OnClickListener,
             item.setEnabled(false);
         }
 
-        item = menu.findItem(R.id.action_share_file);
+        item = menu.findItem(R.id.action_send_share_file);
         item.setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM);
 
         if(getFile().isSharedWithMe() && !getFile().canReshare()){
@@ -311,8 +311,9 @@ public class FileDetailFragment extends FileFragment implements OnClickListener,
     @Override
     public boolean onOptionsItemSelected(MenuItem item) {
         switch (item.getItemId()) {
-            case R.id.action_share_file: {
-                mContainerActivity.getFileOperationsHelper().showShareFile(getFile());
+            case R.id.action_send_share_file: {
+                mContainerActivity.getFileOperationsHelper().sendShareFile(getFile(),
+                        (FileDisplayActivity) mContainerActivity);
                 return true;
             }
             case R.id.action_open_file_with: {
@@ -338,14 +339,6 @@ public class FileDetailFragment extends FileFragment implements OnClickListener,
                 mContainerActivity.getFileOperationsHelper().syncFile(getFile());
                 return true;
             }
-            case R.id.action_send_file: {
-                if (getFile().isDown()) {
-                    mContainerActivity.getFileOperationsHelper().sendDownloadedFile(getFile());
-                } else {
-                    mContainerActivity.getFileOperationsHelper().sendCachedImage(getFile());
-                }
-                return true;
-            }
             default:
                 return super.onOptionsItemSelected(item);
         }

+ 4 - 28
src/main/java/com/owncloud/android/ui/fragment/OCFileListFragment.java

@@ -516,7 +516,7 @@ public class OCFileListFragment extends ExtendedListFragment implements OCFileLi
 
     @Override
     public void onShareIconClick(OCFile file) {
-        shareFile(file);
+        mContainerActivity.getFileOperationsHelper().sendShareFile(file, (FileDisplayActivity) mContainerActivity);
     }
 
     @Override
@@ -946,8 +946,9 @@ public class OCFileListFragment extends ExtendedListFragment implements OCFileLi
             /// action only possible on a single file
             OCFile singleFile = checkedFiles.get(0);
             switch (menuId) {
-                case R.id.action_share_file: {
-                    shareFile(singleFile);
+                case R.id.action_send_share_file: {
+                    mContainerActivity.getFileOperationsHelper().sendShareFile(singleFile,
+                            (FileDisplayActivity) mContainerActivity);
                     return true;
                 }
                 case R.id.action_open_file_with: {
@@ -966,23 +967,6 @@ public class OCFileListFragment extends ExtendedListFragment implements OCFileLi
                     mContainerActivity.showDetails(singleFile);
                     return true;
                 }
-                case R.id.action_send_file: {
-                    if (MimeTypeUtil.isImage(singleFile) && !singleFile.isDown()) {
-                        mContainerActivity.getFileOperationsHelper().sendCachedImage(singleFile);
-                        return true;
-                    } else {
-                        // Obtain the file
-                        if (!singleFile.isDown()) {  // Download the file
-                            Log_OC.d(TAG, singleFile.getRemotePath() + " : File must be downloaded");
-                            ((FileDisplayActivity) mContainerActivity).startDownloadForSending(singleFile,
-                                    DOWNLOAD_SEND);
-
-                        } else {
-                            mContainerActivity.getFileOperationsHelper().sendDownloadedFile(singleFile);
-                        }
-                        return true;
-                    }
-                }
                 case R.id.action_set_as_wallpaper: {
                     mContainerActivity.getFileOperationsHelper().setPictureAs(singleFile, getView());
                     return true;
@@ -1049,14 +1033,6 @@ public class OCFileListFragment extends ExtendedListFragment implements OCFileLi
         }
     }
 
-    private void shareFile(OCFile file) {
-        if(file.isSharedWithMe() && !file.canReshare()){
-            Snackbar.make(getView(), R.string.resharing_is_not_allowed, Snackbar.LENGTH_LONG).show();
-        } else {
-            mContainerActivity.getFileOperationsHelper().showShareFile(file);
-        }
-    }
-
     /**
      * Use this to query the {@link OCFile} that is currently
      * being displayed by this fragment

+ 13 - 16
src/main/java/com/owncloud/android/ui/helpers/FileOperationsHelper.java

@@ -31,6 +31,8 @@ import android.net.Uri;
 import android.os.Build;
 import android.support.annotation.Nullable;
 import android.support.design.widget.Snackbar;
+import android.support.v4.app.FragmentManager;
+import android.support.v4.app.FragmentTransaction;
 import android.support.v4.content.FileProvider;
 import android.view.View;
 import android.webkit.MimeTypeMap;
@@ -52,7 +54,9 @@ import com.owncloud.android.services.OperationsService;
 import com.owncloud.android.services.observer.FileObserverService;
 import com.owncloud.android.ui.activity.ConflictsResolveActivity;
 import com.owncloud.android.ui.activity.FileActivity;
+import com.owncloud.android.ui.activity.FileDisplayActivity;
 import com.owncloud.android.ui.activity.ShareActivity;
+import com.owncloud.android.ui.dialog.SendShareDialog;
 import com.owncloud.android.ui.events.FavoriteEvent;
 import com.owncloud.android.ui.events.SyncEventFinished;
 import com.owncloud.android.utils.DisplayUtils;
@@ -539,23 +543,16 @@ public class FileOperationsHelper {
         return false;
     }
 
-    public void sendDownloadedFile(OCFile file) {
-        if (file != null) {
-            Intent sendIntent = new Intent(Intent.ACTION_SEND);
-            // set MimeType
-            sendIntent.setType(file.getMimetype());
-            sendIntent.putExtra(
-                    Intent.EXTRA_STREAM,
-                    file.getExposedFileUri(mFileActivity)
-            );
-            sendIntent.putExtra(Intent.ACTION_SEND, true);      // Send Action
+    public void sendShareFile(OCFile file, FileDisplayActivity fileDisplayActivity) {
+        // Show dialog
+        FragmentManager fm = mFileActivity.getSupportFragmentManager();
+        FragmentTransaction ft = fm.beginTransaction();
+        ft.addToBackStack(null);
 
-            // Show dialog
-            final String sendTitle = mFileActivity.getString(R.string.activity_chooser_send_file_title);
-            mFileActivity.startActivity(Intent.createChooser(sendIntent, sendTitle));
-        } else {
-            Log_OC.e(TAG, "Trying to send a NULL OCFile");
-        }
+        SendShareDialog mSendShareDialog = SendShareDialog.newInstance(file);
+        mSendShareDialog.setFileOperationsHelper(this);
+        mSendShareDialog.setFileDisplayActivity(fileDisplayActivity);
+        mSendShareDialog.show(ft, "TAG_12");
     }
 
     public void syncFiles(Collection<OCFile> files) {

+ 5 - 12
src/main/java/com/owncloud/android/ui/preview/PreviewImageFragment.java

@@ -60,6 +60,7 @@ import com.owncloud.android.datamodel.OCFile;
 import com.owncloud.android.datamodel.ThumbnailsCacheManager;
 import com.owncloud.android.files.FileMenuFilter;
 import com.owncloud.android.lib.common.utils.Log_OC;
+import com.owncloud.android.ui.activity.FileDisplayActivity;
 import com.owncloud.android.ui.dialog.ConfirmationDialogFragment;
 import com.owncloud.android.ui.dialog.RemoveFilesDialogFragment;
 import com.owncloud.android.ui.fragment.FileFragment;
@@ -404,7 +405,7 @@ public class PreviewImageFragment extends FileFragment {
 
         if(getFile().isSharedWithMe() && !getFile().canReshare()){
             // additional restriction for this fragment
-            item = menu.findItem(R.id.action_share_file);
+            item = menu.findItem(R.id.action_send_share_file);
             if(item != null){
                 item.setVisible(false);
                 item.setEnabled(false);
@@ -420,8 +421,9 @@ public class PreviewImageFragment extends FileFragment {
     @Override
     public boolean onOptionsItemSelected(MenuItem item) {
         switch (item.getItemId()) {
-            case R.id.action_share_file:
-                mContainerActivity.getFileOperationsHelper().showShareFile(getFile());
+            case R.id.action_send_share_file:
+                mContainerActivity.getFileOperationsHelper().sendShareFile(getFile(),
+                        (FileDisplayActivity) mContainerActivity);
                 return true;
 
             case R.id.action_open_file_with:
@@ -437,15 +439,6 @@ public class PreviewImageFragment extends FileFragment {
                 seeDetails();
                 return true;
 
-            case R.id.action_send_file:
-                if (MimeTypeUtil.isImage(getFile()) && !getFile().isDown()) {
-                    mContainerActivity.getFileOperationsHelper().sendCachedImage(getFile());
-                    return true;
-                } else {
-                    mContainerActivity.getFileOperationsHelper().sendDownloadedFile(getFile());
-                    return true;
-                }
-
             case R.id.action_download_file:
             case R.id.action_sync_file:
                 mContainerActivity.getFileOperationsHelper().syncFile(getFile());

+ 6 - 16
src/main/java/com/owncloud/android/ui/preview/PreviewMediaFragment.java

@@ -169,7 +169,7 @@ public class PreviewMediaFragment extends FileFragment implements
 
         Bundle bundle = getArguments();
 
-        setFile((OCFile) bundle.getParcelable(FILE));
+        setFile(bundle.getParcelable(FILE));
         mAccount = bundle.getParcelable(ACCOUNT);
         mSavedPlaybackPosition = bundle.getInt(PLAYBACK_POSITION);
         mAutoplay = bundle.getBoolean(AUTOPLAY);
@@ -427,7 +427,7 @@ public class PreviewMediaFragment extends FileFragment implements
 
         if(getFile().isSharedWithMe() && !getFile().canReshare()){
             // additional restriction for this fragment
-            item = menu.findItem(R.id.action_share_file);
+            item = menu.findItem(R.id.action_send_share_file);
             if(item != null){
                 item.setVisible(false);
                 item.setEnabled(false);
@@ -443,8 +443,8 @@ public class PreviewMediaFragment extends FileFragment implements
     @Override
     public boolean onOptionsItemSelected(MenuItem item) {
         switch (item.getItemId()) {
-            case R.id.action_share_file: {
-                seeShareFile();
+            case R.id.action_send_share_file: {
+                sendShareFile();
                 return true;
             }
             case R.id.action_open_file_with: {
@@ -460,10 +460,6 @@ public class PreviewMediaFragment extends FileFragment implements
                 seeDetails();
                 return true;
             }
-            case R.id.action_send_file: {
-                sendFile();
-                return true;
-            }
             case R.id.action_sync_file: {
                 mContainerActivity.getFileOperationsHelper().syncFile(getFile());
                 return true;
@@ -483,20 +479,14 @@ public class PreviewMediaFragment extends FileFragment implements
         setFile(file);
     }
 
-    private void sendFile() {
-        stopPreview(false);
-        mContainerActivity.getFileOperationsHelper().sendDownloadedFile(getFile());
-
-    }
-
     private void seeDetails() {
         stopPreview(false);
         mContainerActivity.showDetails(getFile());
     }
 
-    private void seeShareFile() {
+    private void sendShareFile() {
         stopPreview(false);
-        mContainerActivity.getFileOperationsHelper().showShareFile(getFile());
+        mContainerActivity.getFileOperationsHelper().sendShareFile(getFile(), (FileDisplayActivity) mContainerActivity);
     }
 
     private void prepareVideo() {

+ 4 - 11
src/main/java/com/owncloud/android/ui/preview/PreviewTextFragment.java

@@ -366,7 +366,7 @@ public class PreviewTextFragment extends FileFragment {
 
         if(getFile().isSharedWithMe() && !getFile().canReshare()){
             // additional restriction for this fragment
-            item = menu.findItem(R.id.action_share_file);
+            item = menu.findItem(R.id.action_send_share_file);
             if(item != null){
                 item.setVisible(false);
                 item.setEnabled(false);
@@ -381,8 +381,9 @@ public class PreviewTextFragment extends FileFragment {
     @Override
     public boolean onOptionsItemSelected(MenuItem item) {
         switch (item.getItemId()) {
-            case R.id.action_share_file: {
-                mContainerActivity.getFileOperationsHelper().showShareFile(getFile());
+            case R.id.action_send_share_file: {
+                mContainerActivity.getFileOperationsHelper().sendShareFile(getFile(),
+                        (FileDisplayActivity) mContainerActivity);
                 return true;
             }
             case R.id.action_open_file_with: {
@@ -398,10 +399,6 @@ public class PreviewTextFragment extends FileFragment {
                 seeDetails();
                 return true;
             }
-            case R.id.action_send_file: {
-                sendFile();
-                return true;
-            }
             case R.id.action_sync_file: {
                 mContainerActivity.getFileOperationsHelper().syncFile(getFile());
                 return true;
@@ -421,10 +418,6 @@ public class PreviewTextFragment extends FileFragment {
         setFile(file);
     }
 
-    private void sendFile() {
-        mContainerActivity.getFileOperationsHelper().sendDownloadedFile(getFile());
-    }
-
     private void seeDetails() {
         mContainerActivity.showDetails(getFile());
     }

+ 7 - 7
src/main/res/layout/file_details_fragment.xml

@@ -191,13 +191,13 @@
 			android:orientation="vertical">
 
 			<TextView
-				android:id="@+id/fdShareTitle"
-				style="@style/TextAppearance.AppCompat.Body2"
-				android:textColor="@color/color_accent"
-				android:layout_width="match_parent"
-				android:layout_height="wrap_content"
-				android:layout_marginBottom="@dimen/standard_half_margin"
-				android:text="@string/action_share"/>
+                android:id="@+id/fdShareTitle"
+                style="@style/TextAppearance.AppCompat.Body2"
+                android:textColor="@color/color_accent"
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:layout_marginBottom="@dimen/standard_half_margin"
+                android:text="@string/action_send_share"/>
 
 			<LinearLayout
 				android:layout_width="match_parent"

+ 37 - 0
src/main/res/layout/send_button.xml

@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ Nextcloud Android client application
+
+ @author Tobias Kaminsky
+ Copyright (C) 2017 Tobias Kaminsky
+ Copyright (C) 2017 Nextcloud GmbH.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU Affero General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU Affero General Public License for more details.
+
+ You should have received a copy of the GNU Affero General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>.
+-->
+
+<FrameLayout
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="match_parent"
+    android:layout_height="wrap_content">
+
+    <TextView
+        android:id="@+id/send_button"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_gravity="center"
+        android:gravity="center_horizontal"
+        android:drawablePadding="8dp"
+        android:padding="16dp"
+        android:textColor="@color/black"/>
+</FrameLayout>

+ 102 - 0
src/main/res/layout/send_share_fragment.xml

@@ -0,0 +1,102 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ Nextcloud Android client application
+
+ @author Tobias Kaminsky
+ Copyright (C) 2017 Tobias Kaminsky
+ Copyright (C) 2017 Nextcloud GmbH.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU Affero General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU Affero General Public License for more details.
+
+ You should have received a copy of the GNU Affero General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>.
+-->
+
+<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
+                android:layout_width="match_parent"
+                android:layout_height="match_parent">
+
+    <LinearLayout
+        android:id="@+id/send_share_buttons"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:layout_marginEnd="20dp"
+        android:layout_marginLeft="20dp"
+        android:layout_marginRight="20dp"
+        android:layout_marginStart="20dp"
+        android:orientation="horizontal"
+        android:padding="20dp">
+
+        <LinearLayout
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_weight="1"
+            android:orientation="vertical">
+
+            <ImageView
+                android:id="@+id/share_people_icon"
+                android:layout_width="@dimen/user_icon_size"
+                android:layout_height="@dimen/user_icon_size"
+                android:layout_gravity="center_horizontal"
+                android:alpha="0.7"
+                android:contentDescription="@string/share"
+                android:src="@drawable/shared_via_users"/>
+
+            <TextView
+                android:id="@+id/share_people_button"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:layout_gravity="center_horizontal"
+                android:drawable="@drawable/ic_share"
+                android:text="@string/share"
+                android:textColor="@color/black"/>
+        </LinearLayout>
+
+        <LinearLayout
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_weight="1"
+            android:orientation="vertical">
+
+            <ImageView
+                android:id="@+id/share_link_icon"
+                android:layout_width="48dp"
+                android:layout_height="48dp"
+                android:layout_gravity="center_horizontal"
+                android:contentDescription="@string/link"
+                android:src="@drawable/shared_via_link"/>
+
+            <TextView
+                android:id="@+id/share_link_button"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:layout_gravity="center_horizontal"
+                android:drawable="@drawable/ic_share"
+                android:text="@string/link"
+                android:textColor="@color/black"/>
+        </LinearLayout>
+
+    </LinearLayout>
+
+    <View
+        android:id="@+id/divider"
+        android:layout_width="match_parent"
+        android:layout_height="1dp"
+        android:layout_below="@id/send_share_buttons"
+        android:alpha="0.3"
+        android:background="@color/black"/>
+
+    <android.support.v7.widget.RecyclerView
+        android:id="@+id/send_button_recycler_view"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:layout_below="@id/divider"/>
+</RelativeLayout>

+ 2 - 8
src/main/res/menu/file_actions_menu.xml

@@ -23,8 +23,8 @@
       tools:ignore="AppCompatResource">
 
     <item
-        android:id="@+id/action_share_file"
-        android:title="@string/action_share"
+        android:id="@+id/action_send_share_file"
+        android:title="@string/action_send_share"
         app:showAsAction="never"
         android:showAsAction="never"
         android:icon="@drawable/ic_share"
@@ -83,12 +83,6 @@
         app:showAsAction="never"
         android:showAsAction="never"
         android:orderInCategory="1" />
-    <item
-        android:id="@+id/action_send_file"
-        android:title="@string/actionbar_send_file"
-        app:showAsAction="never"
-        android:showAsAction="never"
-        android:orderInCategory="1" />
     <item
         android:id="@+id/action_keep_files_offline"
         android:title="@string/favorite"

+ 1 - 1
src/main/res/values-ar/strings.xml

@@ -95,7 +95,7 @@
     <string name="filedetails_select_file">اضغظ على الملف ليتم عرض خيارات أكثر</string>
     <string name="filedetails_download">تحميل</string>
     <string name="filedetails_sync_file">زامِن</string>
-    <string name="action_share">شارك</string>
+    <string name="action_send_share">شارك</string>
     <string name="common_yes">نعم</string>
     <string name="common_no">لا</string>
     <string name="common_ok">تم</string>

+ 1 - 1
src/main/res/values-ast/strings.xml

@@ -94,7 +94,7 @@
     <string name="filedetails_download">Descargar</string>
     <string name="filedetails_sync_file">Sincroniza</string>
     <string name="filedetails_renamed_in_upload_msg">Renomóse\'l ficheru %1$s na xuba</string>
-    <string name="action_share">Compartir</string>
+    <string name="action_send_share">Compartir</string>
     <string name="common_yes">Sí</string>
     <string name="common_no">Non</string>
     <string name="common_ok">Aceutar</string>

+ 1 - 1
src/main/res/values-b+en+001/strings.xml

@@ -119,7 +119,7 @@
     <string name="filedetails_sync_file">Synchronise</string>
     <string name="filedetails_renamed_in_upload_msg">File renamed to %1$s during upload</string>
     <string name="list_layout">Listed layout</string>
-    <string name="action_share">Share</string>
+    <string name="action_send_share">Share</string>
     <string name="common_yes">Yes</string>
     <string name="common_no">No</string>
     <string name="common_ok">OK</string>

+ 1 - 1
src/main/res/values-bg-rBG/strings.xml

@@ -90,7 +90,7 @@
     <string name="filedetails_select_file">Натиснете върху файл, за да видите допълнителна информация.</string>
     <string name="filedetails_download">Изтегляне</string>
     <string name="filedetails_sync_file">Синхронизиране</string>
-    <string name="action_share">Споделяне</string>
+    <string name="action_send_share">Споделяне</string>
     <string name="common_yes">Да</string>
     <string name="common_no">Не</string>
     <string name="common_ok">ОК</string>

+ 1 - 1
src/main/res/values-ca/strings.xml

@@ -119,7 +119,7 @@
     <string name="filedetails_sync_file">Sincronitza</string>
     <string name="filedetails_renamed_in_upload_msg">S\'ha canviat el nom del fitxer %1$sdurant la càrrega</string>
     <string name="list_layout">Disposició llistada</string>
-    <string name="action_share">Comparteix</string>
+    <string name="action_send_share">Comparteix</string>
     <string name="common_yes">Sí</string>
     <string name="common_no">No</string>
     <string name="common_ok">D\'acord</string>

+ 1 - 1
src/main/res/values-cs-rCZ/strings.xml

@@ -119,7 +119,7 @@
     <string name="filedetails_sync_file">Synchronizovat</string>
     <string name="filedetails_renamed_in_upload_msg">Soubor byl během nahrávání přejmenován na %1$s</string>
     <string name="list_layout">Náhled seznamu</string>
-    <string name="action_share">Sdílet</string>
+    <string name="action_send_share">Sdílet</string>
     <string name="common_yes">Ano</string>
     <string name="common_no">Ne</string>
     <string name="common_ok">OK</string>

+ 1 - 1
src/main/res/values-da/strings.xml

@@ -97,7 +97,7 @@
     <string name="filedetails_select_file">Tryk på en fil for at vise yderligere information.</string>
     <string name="filedetails_download">Hent</string>
     <string name="filedetails_sync_file">Synkronisér</string>
-    <string name="action_share">Del</string>
+    <string name="action_send_share">Del</string>
     <string name="common_yes">Ja</string>
     <string name="common_no">Nej</string>
     <string name="common_ok">OK</string>

+ 1 - 1
src/main/res/values-de-rDE/strings.xml

@@ -119,7 +119,7 @@
     <string name="filedetails_sync_file">Synchronisieren</string>
     <string name="filedetails_renamed_in_upload_msg">Datei während des Hochladens in %1$s umbenannt</string>
     <string name="list_layout">Layout der Liste</string>
-    <string name="action_share">Teilen</string>
+    <string name="action_send_share">Teilen</string>
     <string name="common_yes">Ja</string>
     <string name="common_no">Nein</string>
     <string name="common_ok">OK</string>

+ 1 - 1
src/main/res/values-de/strings.xml

@@ -120,7 +120,7 @@
     <string name="filedetails_sync_file">Synchronisation</string>
     <string name="filedetails_renamed_in_upload_msg">Datei während des Hochladens in %1$s umbenannt</string>
     <string name="list_layout">Layout der Liste</string>
-    <string name="action_share">Teilen</string>
+    <string name="action_send_share">Teilen</string>
     <string name="common_yes">Ja</string>
     <string name="common_no">Nein</string>
     <string name="common_ok">OK</string>

+ 1 - 1
src/main/res/values-el/strings.xml

@@ -115,7 +115,7 @@
     <string name="filedetails_sync_file">Συγχρονισμός</string>
     <string name="filedetails_renamed_in_upload_msg">Το αρχείο μετονομάστηκε σε %1$s κατά τη μεταφόρτωση</string>
     <string name="list_layout">Διάταξη λίστας</string>
-    <string name="action_share">Διαμοιρασμός</string>
+    <string name="action_send_share">Διαμοιρασμός</string>
     <string name="common_yes">Ναι</string>
     <string name="common_no">Όχι</string>
     <string name="common_ok">Εντάξει</string>

+ 1 - 1
src/main/res/values-es-rAR/strings.xml

@@ -114,7 +114,7 @@
     <string name="filedetails_sync_file">Sincronizar</string>
     <string name="filedetails_renamed_in_upload_msg">El archivo se renombró como %1$s durante la carga</string>
     <string name="list_layout">Vista enlistada</string>
-    <string name="action_share">Compartir</string>
+    <string name="action_send_share">Compartir</string>
     <string name="common_yes">Sí</string>
     <string name="common_no">No</string>
     <string name="common_ok">OK</string>

+ 1 - 1
src/main/res/values-es-rCL/strings.xml

@@ -119,7 +119,7 @@
     <string name="filedetails_sync_file">Sincronizar</string>
     <string name="filedetails_renamed_in_upload_msg">El archivo se renombró como %1$s durante la carga</string>
     <string name="list_layout">Vista de lista</string>
-    <string name="action_share">Compartir</string>
+    <string name="action_send_share">Compartir</string>
     <string name="common_yes">Sí</string>
     <string name="common_no">No</string>
     <string name="common_ok">OK</string>

+ 1 - 1
src/main/res/values-es-rCO/strings.xml

@@ -119,7 +119,7 @@
     <string name="filedetails_sync_file">Sincronizar</string>
     <string name="filedetails_renamed_in_upload_msg">El archivo se renombró como %1$s durante la carga</string>
     <string name="list_layout">Vista de lista</string>
-    <string name="action_share">Compartir</string>
+    <string name="action_send_share">Compartir</string>
     <string name="common_yes">Sí</string>
     <string name="common_no">No</string>
     <string name="common_ok">OK</string>

+ 1 - 1
src/main/res/values-es-rCR/strings.xml

@@ -119,7 +119,7 @@
     <string name="filedetails_sync_file">Sincronizar</string>
     <string name="filedetails_renamed_in_upload_msg">El archivo se renombró como %1$s durante la carga</string>
     <string name="list_layout">Vista de lista</string>
-    <string name="action_share">Compartir</string>
+    <string name="action_send_share">Compartir</string>
     <string name="common_yes">Sí</string>
     <string name="common_no">No</string>
     <string name="common_ok">OK</string>

+ 1 - 1
src/main/res/values-es-rDO/strings.xml

@@ -119,7 +119,7 @@
     <string name="filedetails_sync_file">Sincronizar</string>
     <string name="filedetails_renamed_in_upload_msg">El archivo se renombró como %1$s durante la carga</string>
     <string name="list_layout">Vista de lista</string>
-    <string name="action_share">Compartir</string>
+    <string name="action_send_share">Compartir</string>
     <string name="common_yes">Sí</string>
     <string name="common_no">No</string>
     <string name="common_ok">OK</string>

+ 1 - 1
src/main/res/values-es-rEC/strings.xml

@@ -119,7 +119,7 @@
     <string name="filedetails_sync_file">Sincronizar</string>
     <string name="filedetails_renamed_in_upload_msg">El archivo se renombró como %1$s durante la carga</string>
     <string name="list_layout">Vista de lista</string>
-    <string name="action_share">Compartir</string>
+    <string name="action_send_share">Compartir</string>
     <string name="common_yes">Sí</string>
     <string name="common_no">No</string>
     <string name="common_ok">OK</string>

+ 1 - 1
src/main/res/values-es-rGT/strings.xml

@@ -119,7 +119,7 @@
     <string name="filedetails_sync_file">Sincronizar</string>
     <string name="filedetails_renamed_in_upload_msg">El archivo se renombró como %1$s durante la carga</string>
     <string name="list_layout">Vista de lista</string>
-    <string name="action_share">Compartir</string>
+    <string name="action_send_share">Compartir</string>
     <string name="common_yes">Sí</string>
     <string name="common_no">No</string>
     <string name="common_ok">OK</string>

+ 1 - 1
src/main/res/values-es-rHN/strings.xml

@@ -119,7 +119,7 @@
     <string name="filedetails_sync_file">Sincronizar</string>
     <string name="filedetails_renamed_in_upload_msg">El archivo se renombró como %1$s durante la carga</string>
     <string name="list_layout">Vista de lista</string>
-    <string name="action_share">Compartir</string>
+    <string name="action_send_share">Compartir</string>
     <string name="common_yes">Sí</string>
     <string name="common_no">No</string>
     <string name="common_ok">OK</string>

+ 1 - 1
src/main/res/values-es-rMX/strings.xml

@@ -119,7 +119,7 @@
     <string name="filedetails_sync_file">Sincronizar</string>
     <string name="filedetails_renamed_in_upload_msg">El archivo se renombró como %1$s durante la carga</string>
     <string name="list_layout">Vista de lista</string>
-    <string name="action_share">Compartir</string>
+    <string name="action_send_share">Compartir</string>
     <string name="common_yes">Sí</string>
     <string name="common_no">No</string>
     <string name="common_ok">OK</string>

+ 1 - 1
src/main/res/values-es-rNI/strings.xml

@@ -119,7 +119,7 @@
     <string name="filedetails_sync_file">Sincronizar</string>
     <string name="filedetails_renamed_in_upload_msg">El archivo se renombró como %1$s durante la carga</string>
     <string name="list_layout">Vista de lista</string>
-    <string name="action_share">Compartir</string>
+    <string name="action_send_share">Compartir</string>
     <string name="common_yes">Sí</string>
     <string name="common_no">No</string>
     <string name="common_ok">OK</string>

+ 1 - 1
src/main/res/values-es-rPA/strings.xml

@@ -119,7 +119,7 @@
     <string name="filedetails_sync_file">Sincronizar</string>
     <string name="filedetails_renamed_in_upload_msg">El archivo se renombró como %1$s durante la carga</string>
     <string name="list_layout">Vista de lista</string>
-    <string name="action_share">Compartir</string>
+    <string name="action_send_share">Compartir</string>
     <string name="common_yes">Sí</string>
     <string name="common_no">No</string>
     <string name="common_ok">OK</string>

+ 1 - 1
src/main/res/values-es-rPE/strings.xml

@@ -119,7 +119,7 @@
     <string name="filedetails_sync_file">Sincronizar</string>
     <string name="filedetails_renamed_in_upload_msg">El archivo se renombró como %1$s durante la carga</string>
     <string name="list_layout">Vista de lista</string>
-    <string name="action_share">Compartir</string>
+    <string name="action_send_share">Compartir</string>
     <string name="common_yes">Sí</string>
     <string name="common_no">No</string>
     <string name="common_ok">OK</string>

+ 1 - 1
src/main/res/values-es-rPR/strings.xml

@@ -119,7 +119,7 @@
     <string name="filedetails_sync_file">Sincronizar</string>
     <string name="filedetails_renamed_in_upload_msg">El archivo se renombró como %1$s durante la carga</string>
     <string name="list_layout">Vista de lista</string>
-    <string name="action_share">Compartir</string>
+    <string name="action_send_share">Compartir</string>
     <string name="common_yes">Sí</string>
     <string name="common_no">No</string>
     <string name="common_ok">OK</string>

+ 1 - 1
src/main/res/values-es-rPY/strings.xml

@@ -119,7 +119,7 @@
     <string name="filedetails_sync_file">Sincronizar</string>
     <string name="filedetails_renamed_in_upload_msg">El archivo se renombró como %1$s durante la carga</string>
     <string name="list_layout">Vista de lista</string>
-    <string name="action_share">Compartir</string>
+    <string name="action_send_share">Compartir</string>
     <string name="common_yes">Sí</string>
     <string name="common_no">No</string>
     <string name="common_ok">OK</string>

+ 1 - 1
src/main/res/values-es-rSV/strings.xml

@@ -119,7 +119,7 @@
     <string name="filedetails_sync_file">Sincronizar</string>
     <string name="filedetails_renamed_in_upload_msg">El archivo se renombró como %1$s durante la carga</string>
     <string name="list_layout">Vista de lista</string>
-    <string name="action_share">Compartir</string>
+    <string name="action_send_share">Compartir</string>
     <string name="common_yes">Sí</string>
     <string name="common_no">No</string>
     <string name="common_ok">OK</string>

+ 1 - 1
src/main/res/values-es-rUY/strings.xml

@@ -119,7 +119,7 @@
     <string name="filedetails_sync_file">Sincronizar</string>
     <string name="filedetails_renamed_in_upload_msg">El archivo se renombró como %1$s durante la carga</string>
     <string name="list_layout">Vista de lista</string>
-    <string name="action_share">Compartir</string>
+    <string name="action_send_share">Compartir</string>
     <string name="common_yes">Sí</string>
     <string name="common_no">No</string>
     <string name="common_ok">OK</string>

+ 1 - 1
src/main/res/values-es/strings.xml

@@ -119,7 +119,7 @@
     <string name="filedetails_sync_file">Sincronizar</string>
     <string name="filedetails_renamed_in_upload_msg">Archivo renombrado a %1$s durante la subida</string>
     <string name="list_layout">Formato de lista</string>
-    <string name="action_share">Compartir</string>
+    <string name="action_send_share">Compartir</string>
     <string name="common_yes">Sí</string>
     <string name="common_no">No</string>
     <string name="common_ok">Aceptar</string>

+ 1 - 1
src/main/res/values-eu/strings.xml

@@ -116,7 +116,7 @@
     <string name="filedetails_sync_file">Sinkronizatu</string>
     <string name="filedetails_renamed_in_upload_msg">Fitxategia igotzean %1$s izenarekin berrizendatu da</string>
     <string name="list_layout">Zerrenda ikuspegia</string>
-    <string name="action_share">Partekatu</string>
+    <string name="action_send_share">Partekatu</string>
     <string name="common_yes">Bai</string>
     <string name="common_no">Ez</string>
     <string name="common_ok">Ados</string>

+ 1 - 1
src/main/res/values-fa/strings.xml

@@ -114,7 +114,7 @@
     <string name="filedetails_sync_file">همگام سازی</string>
     <string name="filedetails_renamed_in_upload_msg">در حین اپلود فایل به نام %1$s تغییر کرد</string>
     <string name="list_layout">Listed layout</string>
-    <string name="action_share">اشتراک‌گذاری</string>
+    <string name="action_send_share">اشتراک‌گذاری</string>
     <string name="common_yes">بله</string>
     <string name="common_no">نه</string>
     <string name="common_ok">تایید</string>

+ 1 - 1
src/main/res/values-fi-rFI/strings.xml

@@ -106,7 +106,7 @@
     <string name="filedetails_select_file">Napauta tiedostoa nähdäksesi lisätietoja.</string>
     <string name="filedetails_download">Lataa</string>
     <string name="filedetails_sync_file">Synkronoi</string>
-    <string name="action_share">Jaa</string>
+    <string name="action_send_share">Jaa</string>
     <string name="common_yes">Kyllä</string>
     <string name="common_no">Ei</string>
     <string name="common_ok">OK</string>

+ 1 - 1
src/main/res/values-fr/strings.xml

@@ -119,7 +119,7 @@
     <string name="filedetails_sync_file">Synchroniser</string>
     <string name="filedetails_renamed_in_upload_msg">Le fichier a été renommé en %1$s pendant l\'envoi</string>
     <string name="list_layout">Affichage en liste</string>
-    <string name="action_share">Partager</string>
+    <string name="action_send_share">Partager</string>
     <string name="common_yes">Oui</string>
     <string name="common_no">Non</string>
     <string name="common_ok">OK</string>

+ 1 - 1
src/main/res/values-hu-rHU/strings.xml

@@ -119,7 +119,7 @@
     <string name="filedetails_sync_file">Szinkronizálás</string>
     <string name="filedetails_renamed_in_upload_msg">A fájl feltöltés közben átnevezve erre: %1$s</string>
     <string name="list_layout">Listás elrendezés</string>
-    <string name="action_share">Megosztás</string>
+    <string name="action_send_share">Megosztás</string>
     <string name="common_yes">Igen</string>
     <string name="common_no">Nem</string>
     <string name="common_ok">OK</string>

+ 1 - 1
src/main/res/values-id/strings.xml

@@ -114,7 +114,7 @@
     <string name="filedetails_sync_file">Sinkronisasi</string>
     <string name="filedetails_renamed_in_upload_msg">Nama berkas diubah menjadi  %1$s waktu diunggah</string>
     <string name="list_layout">Daftar tampilan</string>
-    <string name="action_share">Bagikan</string>
+    <string name="action_send_share">Bagikan</string>
     <string name="common_yes">Ya</string>
     <string name="common_no">Tidak</string>
     <string name="common_ok">Oke</string>

+ 1 - 1
src/main/res/values-is/strings.xml

@@ -118,7 +118,7 @@ Smelltu hér til að fá þér einn frá þjónustuaðila.</string>
     <string name="filedetails_sync_file">Samstilla</string>
     <string name="filedetails_renamed_in_upload_msg">Skrá endurnefnd sem %1$s við innsendingu</string>
     <string name="list_layout">Framsetning sem listi</string>
-    <string name="action_share">Deila</string>
+    <string name="action_send_share">Deila</string>
     <string name="common_yes">Já</string>
     <string name="common_no">Nei</string>
     <string name="common_ok">Í lagi</string>

+ 1 - 1
src/main/res/values-it/strings.xml

@@ -119,7 +119,7 @@
     <string name="filedetails_sync_file">Sincronizza</string>
     <string name="filedetails_renamed_in_upload_msg">File rinominato in %1$s durante il caricamento</string>
     <string name="list_layout">Struttura a elenco</string>
-    <string name="action_share">Condividi</string>
+    <string name="action_send_share">Condividi</string>
     <string name="common_yes">Sì</string>
     <string name="common_no">No</string>
     <string name="common_ok">OK</string>

+ 1 - 1
src/main/res/values-ja-rJP/strings.xml

@@ -110,7 +110,7 @@
     <string name="filedetails_download">ダウンロード</string>
     <string name="filedetails_sync_file">ファイルを同期</string>
     <string name="list_layout">リスト表示</string>
-    <string name="action_share">共有</string>
+    <string name="action_send_share">共有</string>
     <string name="common_yes">はい</string>
     <string name="common_no">いいえ</string>
     <string name="common_ok">OK</string>

+ 1 - 1
src/main/res/values-ka-rGE/strings.xml

@@ -119,7 +119,7 @@
     <string name="filedetails_sync_file">სინქრონიზაცია</string>
     <string name="filedetails_renamed_in_upload_msg">ატვირთვისას ფაილს სახელი შეეცვალა %1$s-ზე</string>
     <string name="list_layout">ჩამოწერილი მაკეტი</string>
-    <string name="action_share">გაზიარება</string>
+    <string name="action_send_share">გაზიარება</string>
     <string name="common_yes">კი</string>
     <string name="common_no">არა</string>
     <string name="common_ok">კარგი</string>

+ 1 - 1
src/main/res/values-ko/strings.xml

@@ -108,7 +108,7 @@
     <string name="filedetails_sync_file">동기화</string>
     <string name="filedetails_renamed_in_upload_msg">업로드 중 파일이름 %1$s로 변경</string>
     <string name="list_layout">목록 보기</string>
-    <string name="action_share">공유</string>
+    <string name="action_send_share">공유</string>
     <string name="common_yes">예</string>
     <string name="common_no">아니요</string>
     <string name="common_ok">확인</string>

+ 1 - 1
src/main/res/values-lt-rLT/strings.xml

@@ -114,7 +114,7 @@
     <string name="filedetails_sync_file">Sinchronizuojama</string>
     <string name="filedetails_renamed_in_upload_msg">Įkėlimo metu failas buvo pervadintas į %1$s</string>
     <string name="list_layout">Išdėstymas sąraše</string>
-    <string name="action_share">Dalintis</string>
+    <string name="action_send_share">Dalintis</string>
     <string name="common_yes">Taip</string>
     <string name="common_no">Ne</string>
     <string name="common_ok">Gerai</string>

+ 1 - 1
src/main/res/values-nb-rNO/strings.xml

@@ -119,7 +119,7 @@
     <string name="filedetails_sync_file">Synkroniser</string>
     <string name="filedetails_renamed_in_upload_msg">Filnavnet ble endret til  %1$s under opplasting</string>
     <string name="list_layout">Listevisning</string>
-    <string name="action_share">Del med andre</string>
+    <string name="action_send_share">Del med andre</string>
     <string name="common_yes">Ja</string>
     <string name="common_no">Nei</string>
     <string name="common_ok">OK</string>

+ 1 - 1
src/main/res/values-nl/strings.xml

@@ -120,7 +120,7 @@ Kies er eentje van een provider.</string>
     <string name="filedetails_sync_file">Synchroniseren</string>
     <string name="filedetails_renamed_in_upload_msg">Bestand hernoemd naar %1$s tijdens de upload</string>
     <string name="list_layout">Lijstoverzicht</string>
-    <string name="action_share">Delen</string>
+    <string name="action_send_share">Delen</string>
     <string name="common_yes">Ja</string>
     <string name="common_no">Nee</string>
     <string name="common_ok">OK</string>

+ 1 - 1
src/main/res/values-pl/strings.xml

@@ -119,7 +119,7 @@
     <string name="filedetails_sync_file">Synchronizuj</string>
     <string name="filedetails_renamed_in_upload_msg">Podczas wysyłania zmieniono nazwę pliku na %1$s</string>
     <string name="list_layout">Wygląd listy</string>
-    <string name="action_share">Udostępnij</string>
+    <string name="action_send_share">Udostępnij</string>
     <string name="common_yes">Tak</string>
     <string name="common_no">Nie</string>
     <string name="common_ok">OK</string>

+ 1 - 1
src/main/res/values-pt-rBR/strings.xml

@@ -119,7 +119,7 @@
     <string name="filedetails_sync_file">Sincronizar</string>
     <string name="filedetails_renamed_in_upload_msg">Arquivo renomeado para %1$s durante o envio</string>
     <string name="list_layout">Layout listado</string>
-    <string name="action_share">Compartilhar</string>
+    <string name="action_send_share">Compartilhar</string>
     <string name="common_yes">Sim</string>
     <string name="common_no">Não</string>
     <string name="common_ok">OK</string>

+ 1 - 1
src/main/res/values-ro/strings.xml

@@ -78,7 +78,7 @@
     <string name="filedetails_select_file">Selectați un fișier pentru a afișa informația adițională.</string>
     <string name="filedetails_download">Descarcă</string>
     <string name="filedetails_sync_file">Sincronizează</string>
-    <string name="action_share">Partajează</string>
+    <string name="action_send_share">Partajează</string>
     <string name="common_yes">Da</string>
     <string name="common_no">Nu</string>
     <string name="common_ok">OK</string>

+ 1 - 1
src/main/res/values-ru/strings.xml

@@ -119,7 +119,7 @@
     <string name="filedetails_sync_file">Синхронизировать</string>
     <string name="filedetails_renamed_in_upload_msg">Во время передачи на сервер файл был переименован в «%1$s»</string>
     <string name="list_layout">Вид списком</string>
-    <string name="action_share">Общий доступ</string>
+    <string name="action_send_share">Общий доступ</string>
     <string name="common_yes">Да</string>
     <string name="common_no">Нет</string>
     <string name="common_ok">ОК</string>

+ 1 - 1
src/main/res/values-sk-rSK/strings.xml

@@ -104,7 +104,7 @@
     <string name="filedetails_download">Stiahnuť</string>
     <string name="filedetails_sync_file">Synchronizovať</string>
     <string name="list_layout">Náhľad zoznamu</string>
-    <string name="action_share">Sprístupniť</string>
+    <string name="action_send_share">Sprístupniť</string>
     <string name="common_yes">Áno</string>
     <string name="common_no">Nie</string>
     <string name="common_ok">OK</string>

+ 1 - 1
src/main/res/values-sl/strings.xml

@@ -113,7 +113,7 @@
     <string name="filedetails_download">Prejmi</string>
     <string name="filedetails_sync_file">Uskladi</string>
     <string name="filedetails_renamed_in_upload_msg">Datoteka je bila preimenovana v %1$s med nalaganjem</string>
-    <string name="action_share">Souporaba</string>
+    <string name="action_send_share">Souporaba</string>
     <string name="common_yes">Da</string>
     <string name="common_no">Ne</string>
     <string name="common_ok">V redu</string>

+ 1 - 1
src/main/res/values-sq/strings.xml

@@ -117,7 +117,7 @@
     <string name="filedetails_sync_file">Sinkronizo</string>
     <string name="filedetails_renamed_in_upload_msg">Skedari u riemërtua %1$s gjatë ngarkimit</string>
     <string name="list_layout">Strukturë e listuar</string>
-    <string name="action_share">Ndaje</string>
+    <string name="action_send_share">Ndaje</string>
     <string name="common_yes">Po</string>
     <string name="common_no">Jo</string>
     <string name="common_ok">OK</string>

+ 1 - 1
src/main/res/values-sr/strings.xml

@@ -119,7 +119,7 @@
     <string name="filedetails_sync_file">Синхронизуј</string>
     <string name="filedetails_renamed_in_upload_msg">Фајл преименован у %1$sза време отпремања</string>
     <string name="list_layout">Излистани распоред</string>
-    <string name="action_share">Дељење</string>
+    <string name="action_send_share">Дељење</string>
     <string name="common_yes">Да</string>
     <string name="common_no">Не</string>
     <string name="common_ok">У реду</string>

+ 1 - 1
src/main/res/values-sv/strings.xml

@@ -114,7 +114,7 @@
     <string name="filedetails_sync_file">Synkronisera</string>
     <string name="filedetails_renamed_in_upload_msg">Fil döptes om till %1$s under uppladdning</string>
     <string name="list_layout">Listad layout</string>
-    <string name="action_share">Dela</string>
+    <string name="action_send_share">Dela</string>
     <string name="common_yes">Ja</string>
     <string name="common_no">Nej</string>
     <string name="common_ok">OK</string>

+ 1 - 1
src/main/res/values-tr/strings.xml

@@ -119,7 +119,7 @@
     <string name="filedetails_sync_file">Eşitle</string>
     <string name="filedetails_renamed_in_upload_msg">Dosya adı, yükleme sırasında %1$s olarak değiştirildi</string>
     <string name="list_layout">Liste düzeni</string>
-    <string name="action_share">Paylaş</string>
+    <string name="action_send_share">Paylaş</string>
     <string name="common_yes">Evet</string>
     <string name="common_no">Hayır</string>
     <string name="common_ok">Tamam</string>

+ 1 - 1
src/main/res/values-zh-rCN/strings.xml

@@ -119,7 +119,7 @@
     <string name="filedetails_sync_file">同步</string>
     <string name="filedetails_renamed_in_upload_msg">文件在上传时被重命名为%1$s</string>
     <string name="list_layout">列出的布局</string>
-    <string name="action_share">共享</string>
+    <string name="action_send_share">共享</string>
     <string name="common_yes">是</string>
     <string name="common_no">否</string>
     <string name="common_ok">确定</string>

+ 1 - 1
src/main/res/values-zh-rTW/strings.xml

@@ -120,7 +120,7 @@
     <string name="filedetails_sync_file">同步</string>
     <string name="filedetails_renamed_in_upload_msg">上傳過程中檔案%1$s被重新命名</string>
     <string name="list_layout">清單顯示</string>
-    <string name="action_share">分享</string>
+    <string name="action_send_share">分享</string>
     <string name="common_yes">是</string>
     <string name="common_no">否</string>
     <string name="common_ok">好</string>

+ 5 - 1
src/main/res/values/strings.xml

@@ -120,7 +120,7 @@
     <string name="filedetails_sync_file">Synchronize</string>
     <string name="filedetails_renamed_in_upload_msg">File renamed to %1$s during upload</string>
     <string name="list_layout">Listed layout</string>
-    <string name="action_share">Share</string>
+    <string name="action_send_share">Send/Share</string>
     <string name="common_yes">Yes</string>
     <string name="common_no">No</string>
     <string name="common_ok">OK</string>
@@ -725,4 +725,8 @@
     <string name="dev_version_no_information_available">No information available.</string>
     <string name="dev_version_no_new_version_available">No new version available.</string>
     <string name="folder_icon">Folder icon</string>
+
+    <string name="send">Send</string>
+    <string name="share">Share</string>
+    <string name="link">Link</string>
 </resources>