浏览代码

Reload rich document edition on reload event from webview (triggered on session expiration)

Signed-off-by: tobiasKaminsky <tobias@kaminsky.me>
nicofrand 1 年之前
父节点
当前提交
34f168280e
共有 1 个文件被更改,包括 23 次插入0 次删除
  1. 23 0
      app/src/main/java/com/owncloud/android/ui/activity/EditorWebView.java

+ 23 - 0
app/src/main/java/com/owncloud/android/ui/activity/EditorWebView.java

@@ -31,6 +31,7 @@ import com.owncloud.android.databinding.RichdocumentsWebviewBinding;
 import com.owncloud.android.datamodel.OCFile;
 import com.owncloud.android.datamodel.SyncedFolderProvider;
 import com.owncloud.android.datamodel.ThumbnailsCacheManager;
+import com.owncloud.android.ui.asynctasks.TextEditorLoadUrlTask;
 import com.owncloud.android.utils.DisplayUtils;
 import com.owncloud.android.utils.MimeTypeUtil;
 import com.owncloud.android.utils.WebViewUtil;
@@ -99,6 +100,23 @@ public abstract class EditorWebView extends ExternalSiteWebView {
         finish();
     }
 
+    public void reload() {
+        if (getWebView().getVisibility() != View.VISIBLE) {
+            return;
+        }
+
+        Optional<User> user = getUser();
+        if (!user.isPresent()) {
+            return;
+        }
+
+        OCFile file = getFile();
+        if (file != null) {
+            TextEditorLoadUrlTask task = new TextEditorLoadUrlTask(this, user.get(), file, editorUtils);
+            task.execute();
+        }
+    }
+
     @Override
     protected void bindView() {
         binding = RichdocumentsWebviewBinding.inflate(getLayoutInflater());
@@ -281,6 +299,11 @@ public abstract class EditorWebView extends ExternalSiteWebView {
         public void loaded() {
             runOnUiThread(EditorWebView.this::hideLoading);
         }
+
+        @JavascriptInterface
+        public void reload() {
+            EditorWebView.this.reload();
+        }
     }
 
 }