Skip to content

Commit 065de04

Browse files
committed
move some helper functions in SimpleActivity
1 parent 7d30c4e commit 065de04

File tree

4 files changed

+35
-47
lines changed

4 files changed

+35
-47
lines changed

app/src/main/java/com/simplemobiletools/filemanager/Constants.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,4 +9,7 @@ public class Constants {
99
public static final String IS_DARK_THEME = "is_dark_theme";
1010
public static final String SHOW_HIDDEN = "show_hidden";
1111
public static final String TREE_URI = "tree_uri";
12+
13+
// global intents
14+
public static final int OPEN_DOCUMENT_TREE = 1000;
1215
}

app/src/main/kotlin/com/simplemobiletools/filemanager/activities/MainActivity.kt

Lines changed: 5 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,8 @@
11
package com.simplemobiletools.filemanager.activities
22

33
import android.Manifest
4-
import android.annotation.TargetApi
5-
import android.app.Activity
64
import android.content.Intent
75
import android.content.pm.PackageManager
8-
import android.os.Build
96
import android.os.Bundle
107
import android.os.Handler
118
import android.support.v4.app.ActivityCompat
@@ -15,11 +12,13 @@ import com.simplemobiletools.filemanager.Constants
1512
import com.simplemobiletools.filemanager.R
1613
import com.simplemobiletools.filemanager.fragments.ItemsFragment
1714
import 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
2018
import com.simplemobiletools.filepicker.models.FileDirItem
2119
import com.simplemobiletools.filepicker.views.Breadcrumbs
2220
import kotlinx.android.synthetic.main.activity_main.*
21+
import java.io.File
2322

2423
class 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
}

app/src/main/kotlin/com/simplemobiletools/filemanager/activities/SimpleActivity.kt

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,18 @@
11
package com.simplemobiletools.filemanager.activities
22

3+
import android.annotation.TargetApi
4+
import android.app.Activity
5+
import android.content.Intent
6+
import android.os.Build
37
import android.os.Bundle
48
import android.support.v7.app.AppCompatActivity
59
import android.view.MenuItem
610

711
import com.simplemobiletools.filemanager.Config
12+
import com.simplemobiletools.filemanager.Constants
813
import com.simplemobiletools.filemanager.R
14+
import com.simplemobiletools.filepicker.extensions.isShowingWritePermissions
15+
import java.io.File
916

1017
open class SimpleActivity : AppCompatActivity() {
1118
lateinit var mConfig: Config
@@ -25,4 +32,22 @@ open class SimpleActivity : AppCompatActivity() {
2532
else -> super.onOptionsItemSelected(item)
2633
}
2734
}
35+
36+
override fun onActivityResult(requestCode: Int, resultCode: Int, resultData: Intent?) {
37+
super.onActivityResult(requestCode, resultCode, resultData)
38+
if (requestCode == Constants.OPEN_DOCUMENT_TREE && resultCode == Activity.RESULT_OK && resultData != null) {
39+
saveTreeUri(resultData)
40+
}
41+
}
42+
43+
@TargetApi(Build.VERSION_CODES.KITKAT)
44+
fun saveTreeUri(resultData: Intent) {
45+
val treeUri = resultData.data
46+
mConfig.treeUri = treeUri.toString()
47+
48+
val takeFlags = Intent.FLAG_GRANT_READ_URI_PERMISSION or Intent.FLAG_GRANT_WRITE_URI_PERMISSION
49+
contentResolver.takePersistableUriPermission(treeUri, takeFlags)
50+
}
51+
52+
fun isShowingPermDialog(file: File) = isShowingWritePermissions(file, mConfig.treeUri, Constants.OPEN_DOCUMENT_TREE)
2853
}

app/src/main/kotlin/com/simplemobiletools/filemanager/dialogs/CopyDialog.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,8 @@ import android.support.v7.app.AlertDialog
77
import android.view.LayoutInflater
88
import android.view.WindowManager
99
import com.simplemobiletools.filemanager.Config
10+
import com.simplemobiletools.filemanager.Constants
1011
import com.simplemobiletools.filemanager.R
11-
import com.simplemobiletools.filemanager.activities.MainActivity
1212
import com.simplemobiletools.filemanager.asynctasks.CopyTask
1313
import com.simplemobiletools.filepicker.dialogs.FilePickerDialog
1414
import com.simplemobiletools.filepicker.dialogs.WritePermissionDialog
@@ -76,7 +76,7 @@ class CopyDialog(val activity: Activity, val files: ArrayList<File>, val copyLis
7676
WritePermissionDialog(activity, object : WritePermissionDialog.OnConfirmedListener {
7777
override fun onConfirmed() {
7878
val intent = Intent(Intent.ACTION_OPEN_DOCUMENT_TREE)
79-
activity.startActivityForResult(intent, MainActivity.OPEN_DOCUMENT_TREE)
79+
activity.startActivityForResult(intent, Constants.OPEN_DOCUMENT_TREE)
8080
}
8181
})
8282
return@setOnClickListener

0 commit comments

Comments
 (0)