From f153b78b422192b6f287be078120ec343c2ae0d4 Mon Sep 17 00:00:00 2001 From: tibbi Date: Thu, 27 Dec 2018 15:41:56 +0100 Subject: [PATCH] fix #247, add an extra check about write permissions when saving note content --- .../notes/pro/activities/MainActivity.kt | 16 ++++++++++++---- .../notes/pro/fragments/TextFragment.kt | 2 +- 2 files changed, 13 insertions(+), 5 deletions(-) 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 0d2f1e88..fa1b2a66 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 @@ -467,7 +467,7 @@ class MainActivity : SimpleActivity() { } else if (mCurrentNote.type == TYPE_TEXT) { showExportFilePickUpdateDialog(it, textToExport) } else { - exportNoteValueToFile(it, textToExport, true) + tryExportNoteValueToFile(it, textToExport, true) } } } @@ -479,7 +479,7 @@ class MainActivity : SimpleActivity() { RadioGroupDialog(this, items) { val syncFile = it as Int == EXPORT_FILE_SYNC - exportNoteValueToFile(exportPath, textToExport, true) { + tryExportNoteValueToFile(exportPath, textToExport, true) { if (syncFile) { mCurrentNote.path = exportPath @@ -512,7 +512,7 @@ class MainActivity : SimpleActivity() { if (!filename.isAValidFilename()) { toast(String.format(getString(R.string.filename_invalid_characters_placeholder, filename))) } else { - exportNoteValueToFile(file.absolutePath, note.value, false) { + tryExportNoteValueToFile(file.absolutePath, note.value, false) { if (!it) { failCount++ } @@ -527,7 +527,15 @@ class MainActivity : SimpleActivity() { } } - fun exportNoteValueToFile(path: String, content: String, showSuccessToasts: Boolean, callback: ((success: Boolean) -> Unit)? = null) { + fun tryExportNoteValueToFile(path: String, content: String, showSuccessToasts: Boolean, callback: ((success: Boolean) -> Unit)? = null) { + handlePermission(PERMISSION_WRITE_STORAGE) { + if (it) { + exportNoteValueToFile(path, content, showSuccessToasts, callback) + } + } + } + + private fun exportNoteValueToFile(path: String, content: String, showSuccessToasts: Boolean, callback: ((success: Boolean) -> Unit)? = null) { try { if (getIsPathDirectory(path)) { toast(R.string.name_taken) diff --git a/app/src/main/kotlin/com/simplemobiletools/notes/pro/fragments/TextFragment.kt b/app/src/main/kotlin/com/simplemobiletools/notes/pro/fragments/TextFragment.kt index abdb2837..6f93bf38 100644 --- a/app/src/main/kotlin/com/simplemobiletools/notes/pro/fragments/TextFragment.kt +++ b/app/src/main/kotlin/com/simplemobiletools/notes/pro/fragments/TextFragment.kt @@ -194,7 +194,7 @@ class TextFragment : NoteFragment() { val currentText = getCurrentNoteViewText() if (currentText != null) { val displaySuccess = activity?.config?.displaySuccess ?: false - (activity as? MainActivity)?.exportNoteValueToFile(note.path, currentText, displaySuccess) + (activity as? MainActivity)?.tryExportNoteValueToFile(note.path, currentText, displaySuccess) } } }