11package com.simplemobiletools.filemanager.activities
22
33import android.Manifest
4- import android.annotation.TargetApi
5- import android.app.Activity
64import android.content.Intent
75import android.content.pm.PackageManager
8- import android.os.Build
96import android.os.Bundle
107import android.os.Handler
118import android.support.v4.app.ActivityCompat
@@ -15,11 +12,13 @@ import com.simplemobiletools.filemanager.Constants
1512import com.simplemobiletools.filemanager.R
1613import com.simplemobiletools.filemanager.fragments.ItemsFragment
1714import com.simplemobiletools.filepicker.dialogs.StoragePickerDialog
18- import com.simplemobiletools.filepicker.dialogs.WritePermissionDialog
19- import com.simplemobiletools.filepicker.extensions.*
15+ import com.simplemobiletools.filepicker.extensions.getInternalStoragePath
16+ import com.simplemobiletools.filepicker.extensions.hasStoragePermission
17+ import com.simplemobiletools.filepicker.extensions.toast
2018import com.simplemobiletools.filepicker.models.FileDirItem
2119import com.simplemobiletools.filepicker.views.Breadcrumbs
2220import kotlinx.android.synthetic.main.activity_main.*
21+ import java.io.File
2322
2423class MainActivity : SimpleActivity (), ItemsFragment.ItemInteractionListener, Breadcrumbs.BreadcrumbsListener {
2524 var mBasePath = getInternalStoragePath()
@@ -125,55 +124,16 @@ class MainActivity : SimpleActivity(), ItemsFragment.ItemInteractionListener, Br
125124 }
126125
127126 fun changePath (pickedPath : String ) {
128- if (checkStupidAndroidFiveSDCardWritePermission( pickedPath)) {
127+ if (! isShowingPermDialog( File ( pickedPath) )) {
129128 mBasePath = pickedPath
130129 openPath(pickedPath)
131130 }
132131 }
133132
134- fun checkStupidAndroidFiveSDCardWritePermission (pickedPath : String ): Boolean {
135- return if (applicationContext.needsStupidWritePermissions(pickedPath) && mConfig.treeUri.isEmpty()) {
136- WritePermissionDialog (this , object : WritePermissionDialog .OnConfirmedListener {
137- override fun onConfirmed () {
138- val intent = Intent (Intent .ACTION_OPEN_DOCUMENT_TREE )
139- startActivityForResult(intent, OPEN_DOCUMENT_TREE_AND_CHANGE_PATH )
140- }
141- })
142- false
143- } else
144- true
145- }
146-
147- public override fun onActivityResult (requestCode : Int , resultCode : Int , resultData : Intent ? ) {
148- super .onActivityResult(requestCode, resultCode, resultData)
149- if (requestCode == OPEN_DOCUMENT_TREE_AND_CHANGE_PATH ) {
150- if (resultCode == Activity .RESULT_OK && resultData != null ) {
151- saveTreeUri(resultData)
152- changePath(getSDCardPath())
153- } else {
154- changePath(getInternalStoragePath())
155- }
156- } else if (requestCode == OPEN_DOCUMENT_TREE && resultCode == Activity .RESULT_OK && resultData != null ) {
157- saveTreeUri(resultData)
158- }
159- }
160-
161- @TargetApi(Build .VERSION_CODES .KITKAT )
162- private fun saveTreeUri (resultData : Intent ) {
163- val treeUri = resultData.data
164- mConfig.treeUri = treeUri.toString()
165-
166- val takeFlags = Intent .FLAG_GRANT_READ_URI_PERMISSION or Intent .FLAG_GRANT_WRITE_URI_PERMISSION
167- contentResolver.takePersistableUriPermission(treeUri, takeFlags)
168- }
169-
170133 companion object {
171134 private val STORAGE_PERMISSION = 1
172135 private val BACK_PRESS_TIMEOUT = 5000
173136
174- val OPEN_DOCUMENT_TREE_AND_CHANGE_PATH = 1
175- val OPEN_DOCUMENT_TREE = 2
176-
177137 private var mWasBackJustPressed: Boolean = false
178138 }
179139}
0 commit comments