11package com.simplemobiletools.draw.activities
22
3- import android.Manifest
43import android.content.Intent
5- import android.content.pm.PackageManager
64import android.graphics.Bitmap
75import android.graphics.PorterDuff
86import android.graphics.drawable.ColorDrawable
97import android.net.Uri
108import android.os.Bundle
11- import android.support.v4.app.ActivityCompat
129import android.support.v4.content.FileProvider
1310import android.view.Menu
1411import android.view.MenuItem
@@ -17,6 +14,7 @@ import com.simplemobiletools.commons.dialogs.ColorPickerDialog
1714import com.simplemobiletools.commons.dialogs.FilePickerDialog
1815import com.simplemobiletools.commons.extensions.*
1916import com.simplemobiletools.commons.helpers.LICENSE_KOTLIN
17+ import com.simplemobiletools.commons.helpers.PERMISSION_WRITE_STORAGE
2018import com.simplemobiletools.commons.models.Release
2119import com.simplemobiletools.draw.BuildConfig
2220import com.simplemobiletools.draw.MyCanvas
@@ -35,15 +33,11 @@ import java.io.FileOutputStream
3533class MainActivity : SimpleActivity (), MyCanvas.PathsChangedListener {
3634 private val FOLDER_NAME = " images"
3735 private val FILE_NAME = " simple-draw.png"
38- private val SAVE_IMAGE = 1
39- private val OPEN_FILE = 2
40- private val OPEN_FILE_INTENT = 3
4136
4237 private var curPath = " "
4338 private var color = 0
4439 private var strokeWidth = 0f
4540 private var suggestedFileExtension = PNG
46- private var openFileIntentPath = " "
4741 private var isEraserOn = false
4842
4943 override fun onCreate (savedInstanceState : Bundle ? ) {
@@ -66,11 +60,12 @@ class MainActivity : SimpleActivity(), MyCanvas.PathsChangedListener {
6660
6761 if (intent?.action == Intent .ACTION_VIEW && intent.data != null ) {
6862 val path = intent.data!! .path
69- if (hasWriteStoragePermission()) {
70- openPath(path)
71- } else {
72- openFileIntentPath = path
73- ActivityCompat .requestPermissions(this , arrayOf(Manifest .permission.WRITE_EXTERNAL_STORAGE ), OPEN_FILE_INTENT )
63+ handlePermission(PERMISSION_WRITE_STORAGE ) {
64+ if (it) {
65+ openPath(path)
66+ } else {
67+ toast(R .string.no_storage_permissions)
68+ }
7469 }
7570 }
7671 checkWhatsNewDialog()
@@ -109,20 +104,6 @@ class MainActivity : SimpleActivity(), MyCanvas.PathsChangedListener {
109104 return true
110105 }
111106
112- override fun onRequestPermissionsResult (requestCode : Int , permissions : Array <String >, grantResults : IntArray ) {
113- super .onRequestPermissionsResult(requestCode, permissions, grantResults)
114-
115- if (grantResults.isNotEmpty() && grantResults[0 ] == PackageManager .PERMISSION_GRANTED ) {
116- when (requestCode) {
117- SAVE_IMAGE -> saveImage()
118- OPEN_FILE -> openFile()
119- OPEN_FILE_INTENT -> openPath(openFileIntentPath)
120- }
121- } else {
122- toast(R .string.no_storage_permissions)
123- }
124- }
125-
126107 private fun launchSettings () {
127108 startActivity(Intent (applicationContext, SettingsActivity ::class .java))
128109 }
@@ -132,10 +113,12 @@ class MainActivity : SimpleActivity(), MyCanvas.PathsChangedListener {
132113 }
133114
134115 private fun tryOpenFile () {
135- if (hasWriteStoragePermission()) {
136- openFile()
137- } else {
138- ActivityCompat .requestPermissions(this , arrayOf(Manifest .permission.WRITE_EXTERNAL_STORAGE ), OPEN_FILE )
116+ handlePermission(PERMISSION_WRITE_STORAGE ) {
117+ if (it) {
118+ openFile()
119+ } else {
120+ toast(R .string.no_storage_permissions)
121+ }
139122 }
140123 }
141124
@@ -179,10 +162,12 @@ class MainActivity : SimpleActivity(), MyCanvas.PathsChangedListener {
179162 }
180163
181164 private fun trySaveImage () {
182- if (hasWriteStoragePermission()) {
183- saveImage()
184- } else {
185- ActivityCompat .requestPermissions(this , arrayOf(Manifest .permission.WRITE_EXTERNAL_STORAGE ), SAVE_IMAGE )
165+ handlePermission(PERMISSION_WRITE_STORAGE ) {
166+ if (it) {
167+ saveImage()
168+ } else {
169+ toast(R .string.no_storage_permissions)
170+ }
186171 }
187172 }
188173
@@ -212,8 +197,9 @@ class MainActivity : SimpleActivity(), MyCanvas.PathsChangedListener {
212197
213198 val folder = File (cacheDir, FOLDER_NAME )
214199 if (! folder.exists()) {
215- if (! folder.mkdir())
200+ if (! folder.mkdir()) {
216201 return null
202+ }
217203 }
218204
219205 val file = File (folder, FILE_NAME )
0 commit comments