From f6dd99e59a62db7307d9a46696aa42215da42a70 Mon Sep 17 00:00:00 2001 From: yova Date: Tue, 12 Mar 2024 13:44:44 +0100 Subject: [PATCH] truncate file in webview --- .idea/gradle.xml | 4 +-- .idea/misc.xml | 3 ++- .../java/org/wntr/mdeditor/MainActivity.kt | 25 +++++++++++++++++-- 3 files changed, 27 insertions(+), 5 deletions(-) diff --git a/.idea/gradle.xml b/.idea/gradle.xml index f3bbb26..af50585 100644 --- a/.idea/gradle.xml +++ b/.idea/gradle.xml @@ -4,16 +4,16 @@ diff --git a/.idea/misc.xml b/.idea/misc.xml index 773fe0f..0ad17cb 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -1,6 +1,7 @@ + - + diff --git a/app/src/main/java/org/wntr/mdeditor/MainActivity.kt b/app/src/main/java/org/wntr/mdeditor/MainActivity.kt index 6d2713b..9c0b7f8 100644 --- a/app/src/main/java/org/wntr/mdeditor/MainActivity.kt +++ b/app/src/main/java/org/wntr/mdeditor/MainActivity.kt @@ -707,7 +707,6 @@ class MainActivity : AppCompatActivity() { ).show() }) startActivityForResult(intent, CREATE_FILE) - Log.i(javaClass.simpleName, "Buffer geschrieben") } /* Cut is not possible currently because of the deactivation of the custom text selection and @@ -878,8 +877,30 @@ class MainActivity : AppCompatActivity() { return } if (truncate) { - mdeValue = "" truncate = false + val script = "if (typeof easyMDE !== 'undefined') {" + + "easyMDE.codemirror.doc.setValue(``);" + + "easyMDE.codemirror.doc.markClean();" + + "easyMDE.updateStatusBar(\"editor-statusbar-left\",saveStatus());" + + "easyMDE.codemirror.focus();" + + "easyMDE.updateStatusBar(\"displayName\",\"${getDisplayName(applicationContext, thisFileUri)}\");}" + + // TODO: refactor autosavetimer init to own method + Log.d(javaClass.simpleName, "executing in webview:\n${script}") + webView.evaluateJavascript(script, { + mdeValue = "" + autosaveTimer = fixedRateTimer("timer",true,0,5000){ + this@MainActivity.runOnUiThread { + val script = "easyMDE.codemirror.doc.isClean();" + webView.evaluateJavascript(script , { + if (it == "false" && thisFileUri != null) { + saveFile() + } + }) + } + } + Log.d(javaClass.simpleName, "AutosaveTimer started.") + }) } FileOutputStream(textFile.fileDescriptor).use { it.write(mdeValue.toByteArray())