From 9a0530bf831d0ad26d050cc0d9638c3fa577d330 Mon Sep 17 00:00:00 2001 From: tibbi Date: Tue, 7 Mar 2017 20:33:12 +0100 Subject: [PATCH] handle storage permissions before trying to save note as file --- .../notes/activities/MainActivity.kt | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/app/src/main/kotlin/com/simplemobiletools/notes/activities/MainActivity.kt b/app/src/main/kotlin/com/simplemobiletools/notes/activities/MainActivity.kt index f825b3a0..79ab620c 100644 --- a/app/src/main/kotlin/com/simplemobiletools/notes/activities/MainActivity.kt +++ b/app/src/main/kotlin/com/simplemobiletools/notes/activities/MainActivity.kt @@ -34,6 +34,7 @@ import java.io.File class MainActivity : SimpleActivity(), ViewPager.OnPageChangeListener { val STORAGE_OPEN_FILE = 1 + val STORAGE_SAVE_AS_FILE = 2 lateinit var mCurrentNote: Note lateinit var mAdapter: NotesPagerAdapter @@ -108,7 +109,7 @@ class MainActivity : SimpleActivity(), ViewPager.OnPageChangeListener { R.id.rename_note -> displayRenameDialog() R.id.share -> shareText() R.id.open_file -> tryOpenFile() - R.id.save_as_file -> saveAsFile() + R.id.save_as_file -> trySaveAsFile() R.id.delete_note -> displayDeleteNotePrompt() R.id.settings -> startActivity(Intent(applicationContext, SettingsActivity::class.java)) R.id.about -> launchAbout() @@ -176,6 +177,14 @@ class MainActivity : SimpleActivity(), ViewPager.OnPageChangeListener { } } + private fun trySaveAsFile() { + if (hasWriteStoragePermission()) { + saveAsFile() + } else { + ActivityCompat.requestPermissions(this, arrayOf(Manifest.permission.WRITE_EXTERNAL_STORAGE), STORAGE_SAVE_AS_FILE) + } + } + private fun saveAsFile() { } @@ -241,6 +250,8 @@ class MainActivity : SimpleActivity(), ViewPager.OnPageChangeListener { if (grantResults.isNotEmpty() && grantResults[0] == PackageManager.PERMISSION_GRANTED) { if (requestCode == STORAGE_OPEN_FILE) { openFile() + } else if (requestCode == STORAGE_SAVE_AS_FILE) { + saveAsFile() } } }