@@ -25,7 +25,6 @@ import kotlinx.android.synthetic.main.activity_main.*
2525import java.io.File
2626
2727class MainActivity : SimpleActivity (), ItemsFragment.ItemInteractionListener, Breadcrumbs.BreadcrumbsListener {
28- val OPEN_DOCUMENT_TREE = 1
2928 var mBasePath = getInternalStoragePath()
3029
3130 override fun onCreate (savedInstanceState : Bundle ? ) {
@@ -138,39 +137,47 @@ class MainActivity : SimpleActivity(), ItemsFragment.ItemInteractionListener, Br
138137 fun checkStupidAndroidFiveSDCardWritePermission (pickedPath : String ): Boolean {
139138 val file = File (pickedPath)
140139 return if (! file.canWrite() && Utils .needsStupidWritePermissions(applicationContext, pickedPath) && mConfig.treeUri.isEmpty()) {
141- WritePermissionDialog (this , object : WritePermissionDialog .OnWritePermissionListener {
140+ WritePermissionDialog (this , object : WritePermissionDialog .OnWritePermissionListener {
142141 override fun onConfirmed () {
143142 val intent = Intent (Intent .ACTION_OPEN_DOCUMENT_TREE )
144- startActivityForResult(intent, OPEN_DOCUMENT_TREE )
143+ startActivityForResult(intent, OPEN_DOCUMENT_TREE_AND_CHANGE_PATH )
145144 }
146145 })
147146 false
148147 } else
149148 true
150149 }
151150
152- @TargetApi(Build .VERSION_CODES .KITKAT )
153151 public override fun onActivityResult (requestCode : Int , resultCode : Int , resultData : Intent ? ) {
154152 super .onActivityResult(requestCode, resultCode, resultData)
155- if (requestCode == OPEN_DOCUMENT_TREE ) {
153+ if (requestCode == OPEN_DOCUMENT_TREE_AND_CHANGE_PATH ) {
156154 if (resultCode == Activity .RESULT_OK && resultData != null ) {
157- val treeUri = resultData.data
158- mConfig.treeUri = resultData.data.toString()
159-
160- val takeFlags = Intent .FLAG_GRANT_READ_URI_PERMISSION or Intent .FLAG_GRANT_WRITE_URI_PERMISSION
161- contentResolver.takePersistableUriPermission(treeUri, takeFlags)
162-
155+ saveTreeUri(resultData)
163156 changePath(getSDCardPath())
164157 } else {
165158 changePath(getInternalStoragePath())
166159 }
160+ } else if (requestCode == OPEN_DOCUMENT_TREE && resultCode == Activity .RESULT_OK && resultData != null ) {
161+ saveTreeUri(resultData)
167162 }
168163 }
169164
165+ @TargetApi(Build .VERSION_CODES .KITKAT )
166+ private fun saveTreeUri (resultData : Intent ) {
167+ val treeUri = resultData.data
168+ mConfig.treeUri = resultData.data.toString()
169+
170+ val takeFlags = Intent .FLAG_GRANT_READ_URI_PERMISSION or Intent .FLAG_GRANT_WRITE_URI_PERMISSION
171+ contentResolver.takePersistableUriPermission(treeUri, takeFlags)
172+ }
173+
170174 companion object {
171175 private val STORAGE_PERMISSION = 1
172176 private val BACK_PRESS_TIMEOUT = 5000
173177
178+ val OPEN_DOCUMENT_TREE_AND_CHANGE_PATH = 1
179+ val OPEN_DOCUMENT_TREE = 2
180+
174181 private var mWasBackJustPressed: Boolean = false
175182 }
176183}
0 commit comments