瀏覽代碼

if no offline editor is available, use OO/Cool/Text

Signed-off-by: tobiasKaminsky <tobias@kaminsky.me>
tobiasKaminsky 5 年之前
父節點
當前提交
d3f3b98be0
共有 1 個文件被更改,包括 20 次插入9 次删除
  1. 20 9
      src/main/java/com/owncloud/android/ui/helpers/FileOperationsHelper.java

+ 20 - 9
src/main/java/com/owncloud/android/ui/helpers/FileOperationsHelper.java

@@ -49,10 +49,12 @@ import com.evernote.android.job.JobRequest;
 import com.nextcloud.client.account.CurrentAccountProvider;
 import com.nextcloud.client.account.User;
 import com.nextcloud.client.network.ConnectivityService;
+import com.nextcloud.java.util.Optional;
 import com.owncloud.android.MainApp;
 import com.owncloud.android.R;
 import com.owncloud.android.datamodel.FileDataStorageManager;
 import com.owncloud.android.datamodel.OCFile;
+import com.owncloud.android.files.FileMenuFilter;
 import com.owncloud.android.files.StreamMediaFileOperation;
 import com.owncloud.android.files.services.FileDownloader.FileDownloaderBinder;
 import com.owncloud.android.files.services.FileUploader.FileUploaderBinder;
@@ -278,16 +280,25 @@ public class FileOperationsHelper {
                     queryIntentActivities(openFileWithIntent, PackageManager.GET_RESOLVED_FILTER);
 
             if (launchables.isEmpty()) {
-                Account account = fileActivity.getAccount();
-                OCCapability capability = fileActivity.getStorageManager().getCapability(account.name);
-                if (capability.getRichDocumentsMimeTypeList().contains(file.getMimeType()) &&
-                    android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP &&
-                    capability.getRichDocumentsDirectEditing().isTrue()) {
-                    openFileAsRichDocument(file, fileActivity);
-                    return;
+                Optional<User> optionalUser = fileActivity.getUser();
+
+                if (optionalUser.isPresent() && FileMenuFilter.isEditorAvailable(fileActivity.getContentResolver(),
+                                                                                 optionalUser.get(),
+                                                                                 file.getMimeType()) &&
+                    android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
+                    openFileWithTextEditor(file, fileActivity);
                 } else {
-                    DisplayUtils.showSnackMessage(fileActivity, R.string.file_list_no_app_for_file_type);
-                    return;
+                    Account account = fileActivity.getAccount();
+                    OCCapability capability = fileActivity.getStorageManager().getCapability(account.name);
+                    if (capability.getRichDocumentsMimeTypeList().contains(file.getMimeType()) &&
+                        android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP &&
+                        capability.getRichDocumentsDirectEditing().isTrue()) {
+                        openFileAsRichDocument(file, fileActivity);
+                        return;
+                    } else {
+                        DisplayUtils.showSnackMessage(fileActivity, R.string.file_list_no_app_for_file_type);
+                        return;
+                    }
                 }
             }