diff --git a/app/src/main/kotlin/com/simplemobiletools/notes/pro/activities/MainActivity.kt b/app/src/main/kotlin/com/simplemobiletools/notes/pro/activities/MainActivity.kt index 2e972d2f..c1032e40 100644 --- a/app/src/main/kotlin/com/simplemobiletools/notes/pro/activities/MainActivity.kt +++ b/app/src/main/kotlin/com/simplemobiletools/notes/pro/activities/MainActivity.kt @@ -349,9 +349,20 @@ class MainActivity : SimpleActivity() { private fun openFile() { FilePickerDialog(this, canAddShowHiddenButton = true) { openFile(it, true) { - OpenFileDialog(this, it.path) { - addNewNote(it) - } + Thread { + val fileText = it.readText().trim() + val checklistItems = fileText.parseChecklistItems() + if (checklistItems != null) { + val note = Note(null, it.absolutePath.getFilenameFromPath(), fileText, TYPE_CHECKLIST) + addNewNote(note) + } else { + runOnUiThread { + OpenFileDialog(this, it.path) { + addNewNote(it) + } + } + } + }.start() } } } diff --git a/app/src/main/kotlin/com/simplemobiletools/notes/pro/extensions/String.kt b/app/src/main/kotlin/com/simplemobiletools/notes/pro/extensions/String.kt new file mode 100644 index 00000000..a7be6176 --- /dev/null +++ b/app/src/main/kotlin/com/simplemobiletools/notes/pro/extensions/String.kt @@ -0,0 +1,16 @@ +package com.simplemobiletools.notes.pro.extensions + +import com.google.gson.Gson +import com.google.gson.reflect.TypeToken +import com.simplemobiletools.notes.pro.models.ChecklistItem + +fun String.parseChecklistItems(): ArrayList? { + if (startsWith("[{") && endsWith("}]")) { + try { + val checklistItemType = object : TypeToken>() {}.type + return Gson().fromJson>(this, checklistItemType) ?: ArrayList(1) + } catch (e: Exception) { + } + } + return null +}