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 906533776be8..0f7d2a2ac4d0 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