Search in sources :

Example 1 with Editor

use of com.owncloud.android.lib.common.Editor in project android by nextcloud.

the class TextEditorLoadUrlTask method doInBackground.

@Override
protected String doInBackground(Void... voids) {
    final EditorWebView editorWebView = editorWebViewWeakReference.get();
    if (editorWebView == null) {
        return "";
    }
    Editor editor = FileMenuFilter.getEditor(editorWebView.getContentResolver(), user, file.getMimeType());
    if (editor == null) {
        return "";
    }
    RemoteOperationResult result = new DirectEditingOpenFileRemoteOperation(file.getRemotePath(), editor.getId()).execute(account, editorWebViewWeakReference.get());
    if (!result.isSuccess()) {
        return "";
    }
    return (String) result.getData().get(0);
}
Also used : DirectEditingOpenFileRemoteOperation(com.nextcloud.android.lib.resources.directediting.DirectEditingOpenFileRemoteOperation) RemoteOperationResult(com.owncloud.android.lib.common.operations.RemoteOperationResult) Editor(com.owncloud.android.lib.common.Editor) EditorWebView(com.owncloud.android.ui.activity.EditorWebView)

Example 2 with Editor

use of com.owncloud.android.lib.common.Editor in project android by nextcloud.

the class DialogFragmentIT method testBottomSheet.

@Test
@ScreenshotTest
public void testBottomSheet() {
    if (Looper.myLooper() == null) {
        Looper.prepare();
    }
    OCFileListBottomSheetActions action = new OCFileListBottomSheetActions() {

        @Override
        public void createFolder() {
        }

        @Override
        public void uploadFromApp() {
        }

        @Override
        public void uploadFiles() {
        }

        @Override
        public void newDocument() {
        }

        @Override
        public void newSpreadsheet() {
        }

        @Override
        public void newPresentation() {
        }

        @Override
        public void directCameraUpload() {
        }

        @Override
        public void scanDocUpload() {
        }

        @Override
        public void showTemplate(Creator creator, String headline) {
        }

        @Override
        public void createRichWorkspace() {
        }
    };
    DeviceInfo info = new DeviceInfo();
    OCFile ocFile = new OCFile("/test.md");
    Intent intent = new Intent(targetContext, FileDisplayActivity.class);
    FileDisplayActivity fda = activityRule.launchActivity(intent);
    // add direct editing info
    DirectEditing directEditing = new DirectEditing();
    directEditing.getCreators().put("1", new Creator("1", "text", "text file", ".md", "application/octet-stream", false));
    directEditing.getCreators().put("2", new Creator("2", "md", "markdown file", ".md", "application/octet-stream", false));
    directEditing.getEditors().put("text", new Editor("1", "Text", new ArrayList<>(Collections.singletonList(MimeTypeUtil.MIMETYPE_TEXT_MARKDOWN)), new ArrayList<>(), false));
    String json = new Gson().toJson(directEditing);
    new ArbitraryDataProvider(targetContext.getContentResolver()).storeOrUpdateKeyValue(user.getAccountName(), ArbitraryDataProvider.DIRECT_EDITING, json);
    // activate templates
    OCCapability capability = fda.getCapabilities();
    capability.setRichDocuments(CapabilityBooleanType.TRUE);
    capability.setRichDocumentsDirectEditing(CapabilityBooleanType.TRUE);
    capability.setRichDocumentsTemplatesAvailable(CapabilityBooleanType.TRUE);
    OCFileListBottomSheetDialog sut = new OCFileListBottomSheetDialog(fda, action, info, user, ocFile);
    fda.runOnUiThread(sut::show);
    waitForIdleSync();
    screenshot(sut.getWindow().getDecorView());
}
Also used : DirectEditing(com.owncloud.android.lib.common.DirectEditing) OCCapability(com.owncloud.android.lib.resources.status.OCCapability) OCFileListBottomSheetDialog(com.owncloud.android.ui.fragment.OCFileListBottomSheetDialog) ArrayList(java.util.ArrayList) OCFileListBottomSheetActions(com.owncloud.android.ui.fragment.OCFileListBottomSheetActions) Gson(com.google.gson.Gson) ArbitraryDataProvider(com.owncloud.android.datamodel.ArbitraryDataProvider) Intent(android.content.Intent) Creator(com.owncloud.android.lib.common.Creator) OCFile(com.owncloud.android.datamodel.OCFile) FileDisplayActivity(com.owncloud.android.ui.activity.FileDisplayActivity) DeviceInfo(com.nextcloud.client.device.DeviceInfo) Editor(com.owncloud.android.lib.common.Editor) ScreenshotTest(com.owncloud.android.utils.ScreenshotTest) Test(org.junit.Test) ScreenshotTest(com.owncloud.android.utils.ScreenshotTest)

Example 3 with Editor

use of com.owncloud.android.lib.common.Editor in project android by nextcloud.

the class FileMenuFilter method getEditor.

@Nullable
public static Editor getEditor(ContentResolver contentResolver, User user, String mimeType) {
    String json = new ArbitraryDataProvider(contentResolver).getValue(user, ArbitraryDataProvider.DIRECT_EDITING);
    if (json.isEmpty()) {
        return null;
    }
    DirectEditing directEditing = new Gson().fromJson(json, DirectEditing.class);
    for (Editor editor : directEditing.getEditors().values()) {
        if (editor.getMimetypes().contains(mimeType)) {
            return editor;
        }
    }
    for (Editor editor : directEditing.getEditors().values()) {
        if (editor.getOptionalMimetypes().contains(mimeType)) {
            return editor;
        }
    }
    return null;
}
Also used : DirectEditing(com.owncloud.android.lib.common.DirectEditing) ArbitraryDataProvider(com.owncloud.android.datamodel.ArbitraryDataProvider) Gson(com.google.gson.Gson) Editor(com.owncloud.android.lib.common.Editor) Nullable(androidx.annotation.Nullable)

Aggregations

Editor (com.owncloud.android.lib.common.Editor)3 Gson (com.google.gson.Gson)2 ArbitraryDataProvider (com.owncloud.android.datamodel.ArbitraryDataProvider)2 DirectEditing (com.owncloud.android.lib.common.DirectEditing)2 Intent (android.content.Intent)1 Nullable (androidx.annotation.Nullable)1 DirectEditingOpenFileRemoteOperation (com.nextcloud.android.lib.resources.directediting.DirectEditingOpenFileRemoteOperation)1 DeviceInfo (com.nextcloud.client.device.DeviceInfo)1 OCFile (com.owncloud.android.datamodel.OCFile)1 Creator (com.owncloud.android.lib.common.Creator)1 RemoteOperationResult (com.owncloud.android.lib.common.operations.RemoteOperationResult)1 OCCapability (com.owncloud.android.lib.resources.status.OCCapability)1 EditorWebView (com.owncloud.android.ui.activity.EditorWebView)1 FileDisplayActivity (com.owncloud.android.ui.activity.FileDisplayActivity)1 OCFileListBottomSheetActions (com.owncloud.android.ui.fragment.OCFileListBottomSheetActions)1 OCFileListBottomSheetDialog (com.owncloud.android.ui.fragment.OCFileListBottomSheetDialog)1 ScreenshotTest (com.owncloud.android.utils.ScreenshotTest)1 ArrayList (java.util.ArrayList)1 Test (org.junit.Test)1