diff --git a/drawable_resources/post_add.svg b/drawable_resources/post_add.svg new file mode 100644 index 000000000000..95439563aadf --- /dev/null +++ b/drawable_resources/post_add.svg @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + diff --git a/scripts/analysis/lint-results.txt b/scripts/analysis/lint-results.txt index 17a46e780670..385dc9a0803c 100644 --- a/scripts/analysis/lint-results.txt +++ b/scripts/analysis/lint-results.txt @@ -1,2 +1,2 @@ DO NOT TOUCH; GENERATED BY DRONE - Lint Report: 74 warnings + Lint Report: 76 warnings diff --git a/src/main/java/com/owncloud/android/ui/activity/EditorWebView.java b/src/main/java/com/owncloud/android/ui/activity/EditorWebView.java index c7861249ac37..13803ee7a3ef 100644 --- a/src/main/java/com/owncloud/android/ui/activity/EditorWebView.java +++ b/src/main/java/com/owncloud/android/ui/activity/EditorWebView.java @@ -68,7 +68,7 @@ public abstract class EditorWebView extends ExternalSiteWebView { private static final String TAG = EditorWebView.class.getSimpleName(); protected void loadUrl(String url) { - webview.loadUrl(url); + onUrlLoaded(url); } protected void hideLoading() { diff --git a/src/main/java/com/owncloud/android/ui/activity/RichDocumentsEditorWebView.java b/src/main/java/com/owncloud/android/ui/activity/RichDocumentsEditorWebView.java index 8b05a3acb0ab..06a5568ee8b4 100644 --- a/src/main/java/com/owncloud/android/ui/activity/RichDocumentsEditorWebView.java +++ b/src/main/java/com/owncloud/android/ui/activity/RichDocumentsEditorWebView.java @@ -251,7 +251,7 @@ private void downloadFile(Uri url) { } @Override - protected void loadUrl(String url) { + public void loadUrl(String url) { if (TextUtils.isEmpty(url)) { new RichDocumentsLoadUrlTask(this, getUser().get(), getFile()).execute(); } else { diff --git a/src/main/java/com/owncloud/android/ui/activity/TextEditorWebView.kt b/src/main/java/com/owncloud/android/ui/activity/TextEditorWebView.kt index 0b10e7c64860..674a474565cb 100644 --- a/src/main/java/com/owncloud/android/ui/activity/TextEditorWebView.kt +++ b/src/main/java/com/owncloud/android/ui/activity/TextEditorWebView.kt @@ -63,8 +63,6 @@ class TextEditorWebView : EditorWebView() { override fun loadUrl(url: String?) { if (url.isNullOrEmpty()) { TextEditorLoadUrlTask(this, user.get(), file).execute() - } else { - super.loadUrl(url) } } diff --git a/src/main/java/com/owncloud/android/ui/fragment/OCFileListFragment.java b/src/main/java/com/owncloud/android/ui/fragment/OCFileListFragment.java index 65874cafab23..f67048c34565 100644 --- a/src/main/java/com/owncloud/android/ui/fragment/OCFileListFragment.java +++ b/src/main/java/com/owncloud/android/ui/fragment/OCFileListFragment.java @@ -45,6 +45,7 @@ import android.widget.PopupMenu; import com.google.android.material.snackbar.Snackbar; +import com.nextcloud.android.lib.richWorkspace.RichWorkspaceDirectEditingRemoteOperation; import com.nextcloud.client.account.User; import com.nextcloud.client.account.UserAccountManager; import com.nextcloud.client.device.DeviceInfo; @@ -746,20 +747,20 @@ public void onPrepareOptionsMenu(@NonNull Menu menu) { if (menu.findItem(R.id.action_sort) == null) { menuItemOrig = mOriginalMenuItems.get(1); menu.add(menuItemOrig.getGroupId(), menuItemOrig.getItemId(), menuItemOrig.getOrder(), - menuItemOrig.getTitle()); + menuItemOrig.getTitle()); } } else if (menuItemAddRemoveValue == MenuItemAddRemove.ADD_GRID_AND_SORT) { if (menu.findItem(R.id.action_switch_view) == null) { menuItemOrig = mOriginalMenuItems.get(0); menu.add(menuItemOrig.getGroupId(), menuItemOrig.getItemId(), menuItemOrig.getOrder(), - menuItemOrig.getTitle()); + menuItemOrig.getTitle()); } if (menu.findItem(R.id.action_sort) == null) { menuItemOrig = mOriginalMenuItems.get(1); menu.add(menuItemOrig.getGroupId(), menuItemOrig.getItemId(), menuItemOrig.getOrder(), - menuItemOrig.getTitle()); + menuItemOrig.getTitle()); } } else if (menuItemAddRemoveValue == MenuItemAddRemove.REMOVE_SEARCH) { menu.removeItem(R.id.action_search); @@ -767,19 +768,19 @@ public void onPrepareOptionsMenu(@NonNull Menu menu) { if (menu.findItem(R.id.action_switch_view) == null) { menuItemOrig = mOriginalMenuItems.get(0); menu.add(menuItemOrig.getGroupId(), menuItemOrig.getItemId(), menuItemOrig.getOrder(), - menuItemOrig.getTitle()); + menuItemOrig.getTitle()); } if (menu.findItem(R.id.action_sort) == null) { menuItemOrig = mOriginalMenuItems.get(1); menu.add(menuItemOrig.getGroupId(), menuItemOrig.getItemId(), menuItemOrig.getOrder(), - menuItemOrig.getTitle()); + menuItemOrig.getTitle()); } if (menu.findItem(R.id.action_search) == null) { menuItemOrig = mOriginalMenuItems.get(2); menu.add(menuItemOrig.getGroupId(), menuItemOrig.getItemId(), menuItemOrig.getOrder(), - menuItemOrig.getTitle()); + menuItemOrig.getTitle()); } } else if (menuItemAddRemoveValue == MenuItemAddRemove.REMOVE_SORT) { menu.removeItem(R.id.action_sort); @@ -789,6 +790,33 @@ public void onPrepareOptionsMenu(@NonNull Menu menu) { menu.removeItem(R.id.action_switch_view); menu.removeItem(R.id.action_search); } + + // create rich workspace + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { + menu.findItem(R.id.action_create_rich_workspace).setVisible(TextUtils.isEmpty(mFile.getRichWorkspace())); + } + } + + @Override + public boolean onOptionsItemSelected(@NonNull MenuItem item) { + if (R.id.action_create_rich_workspace == item.getItemId()) { + new Thread(() -> { + RemoteOperationResult result = new RichWorkspaceDirectEditingRemoteOperation(mFile.getRemotePath()) + .execute(accountManager.getUser().toPlatformAccount(), requireContext()); + + if (result.isSuccess()) { + String url = (String) result.getSingleData(); + mContainerActivity.getFileOperationsHelper().openRichWorkspaceWithTextEditor(mFile, + url, + requireContext()); + } else { + DisplayUtils.showSnackMessage(getView(), R.string.failed_to_start_editor); + } + }).start(); + return true; + } + + return super.onOptionsItemSelected(item); } /** diff --git a/src/main/res/drawable/ic_post_add.xml b/src/main/res/drawable/ic_post_add.xml new file mode 100644 index 000000000000..5a44d5835c84 --- /dev/null +++ b/src/main/res/drawable/ic_post_add.xml @@ -0,0 +1,44 @@ + + + + + + + + + diff --git a/src/main/res/layout/text_file_preview.xml b/src/main/res/layout/text_file_preview.xml index bad110386047..f2def74f9722 100644 --- a/src/main/res/layout/text_file_preview.xml +++ b/src/main/res/layout/text_file_preview.xml @@ -16,48 +16,54 @@ along with this program. If not, see . --> - + - + android:layout_height="match_parent"> - + android:layout_height="wrap_content"> - + - - - - - - - - - + + + + + + + + + + + + + diff --git a/src/main/res/menu/activity_file_display.xml b/src/main/res/menu/activity_file_display.xml index 9b2e63b2c7d0..df78d920ccdc 100644 --- a/src/main/res/menu/activity_file_display.xml +++ b/src/main/res/menu/activity_file_display.xml @@ -62,6 +62,15 @@ android:title="@string/select_all" android:contentDescription="@string/select_all"/> + + diff --git a/src/main/res/values/strings.xml b/src/main/res/values/strings.xml index a4fd20c6cac3..d95d86704bc5 100644 --- a/src/main/res/values/strings.xml +++ b/src/main/res/values/strings.xml @@ -908,4 +908,7 @@ Share internal link Edit Failed to start editor + Add folder info + creates folder info + edit folder info