Skip to content

Commit 2a5026e

Browse files
author
Jan Guegel
committed
moved handleStoragePermissions() to SimpleActivity.kt from MainActivity.kt
introduced tryInitFileManager() to SaveAsActivity.kt removed const MANAGE_STORAGE_RC from MainActivity.kt Signed-off-by: Jan Guegel <[email protected]>
1 parent 1b67e61 commit 2a5026e

File tree

3 files changed

+51
-54
lines changed

3 files changed

+51
-54
lines changed

app/src/main/kotlin/org/fossify/filemanager/activities/MainActivity.kt

Lines changed: 1 addition & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,17 @@
11
package org.fossify.filemanager.activities
22

3-
import android.annotation.SuppressLint
43
import android.app.Activity
54
import android.content.ClipData
65
import android.content.Intent
76
import android.graphics.drawable.Drawable
87
import android.media.RingtoneManager
9-
import android.net.Uri
108
import android.os.Bundle
119
import android.os.Handler
12-
import android.provider.Settings
1310
import android.widget.ImageView
1411
import android.widget.TextView
1512
import androidx.viewpager.widget.ViewPager
1613
import com.stericson.RootTools.RootTools
1714
import me.grantland.widget.AutofitHelper
18-
import org.fossify.commons.dialogs.ConfirmationAdvancedDialog
1915
import org.fossify.commons.dialogs.RadioGroupDialog
2016
import org.fossify.commons.extensions.appLaunched
2117
import org.fossify.commons.extensions.appLockManager
@@ -42,7 +38,6 @@ import org.fossify.commons.extensions.launchMoreAppsFromUsIntent
4238
import org.fossify.commons.extensions.onGlobalLayout
4339
import org.fossify.commons.extensions.onTabSelectionChanged
4440
import org.fossify.commons.extensions.sdCardPath
45-
import org.fossify.commons.extensions.showErrorToast
4641
import org.fossify.commons.extensions.toast
4742
import org.fossify.commons.extensions.updateBottomTabItemColors
4843
import org.fossify.commons.extensions.viewBinding
@@ -58,7 +53,6 @@ import org.fossify.commons.helpers.TAB_RECENT_FILES
5853
import org.fossify.commons.helpers.TAB_STORAGE_ANALYSIS
5954
import org.fossify.commons.helpers.VIEW_TYPE_GRID
6055
import org.fossify.commons.helpers.ensureBackgroundThread
61-
import org.fossify.commons.helpers.isRPlus
6256
import org.fossify.commons.models.FAQItem
6357
import org.fossify.commons.models.RadioItem
6458
import org.fossify.commons.models.Release
@@ -83,7 +77,6 @@ import java.io.File
8377
class MainActivity : SimpleActivity() {
8478
companion object {
8579
private const val BACK_PRESS_TIMEOUT = 5000
86-
private const val MANAGE_STORAGE_RC = 201
8780
private const val PICKED_PATH = "picked_path"
8881
}
8982

@@ -313,39 +306,7 @@ class MainActivity : SimpleActivity() {
313306
}
314307
}
315308

316-
@SuppressLint("InlinedApi")
317-
private fun handleStoragePermission(callback: (granted: Boolean) -> Unit) {
318-
actionOnPermission = null
319-
if (hasStoragePermission()) {
320-
callback(true)
321-
} else {
322-
if (isRPlus()) {
323-
ConfirmationAdvancedDialog(this, "", R.string.access_storage_prompt, R.string.ok, 0, false) { success ->
324-
if (success) {
325-
isAskingPermissions = true
326-
actionOnPermission = callback
327-
try {
328-
val intent = Intent(Settings.ACTION_MANAGE_APP_ALL_FILES_ACCESS_PERMISSION)
329-
intent.addCategory("android.intent.category.DEFAULT")
330-
intent.data = Uri.parse("package:$packageName")
331-
startActivityForResult(intent, MANAGE_STORAGE_RC)
332-
} catch (e: Exception) {
333-
showErrorToast(e)
334-
val intent = Intent()
335-
intent.action = Settings.ACTION_MANAGE_ALL_FILES_ACCESS_PERMISSION
336-
startActivityForResult(intent, MANAGE_STORAGE_RC)
337-
}
338-
} else {
339-
finish()
340-
}
341-
}
342-
} else {
343-
handlePermission(PERMISSION_WRITE_STORAGE, callback)
344-
}
345-
}
346-
}
347-
348-
private fun initFileManager(refreshRecents: Boolean) {
309+
private fun initFileManager(refreshRecents: Boolean) {
349310
if (intent.action == Intent.ACTION_VIEW && intent.data != null) {
350311
val data = intent.data
351312
if (data?.scheme == "file") {

app/src/main/kotlin/org/fossify/filemanager/activities/SaveAsActivity.kt

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,7 @@ package org.fossify.filemanager.activities
22

33
import android.content.Intent
44
import android.net.Uri
5-
import android.os.Build
65
import android.os.Bundle
7-
import androidx.annotation.RequiresApi
8-
import androidx.core.net.toUri
96
import org.fossify.commons.dialogs.FilePickerDialog
107
import org.fossify.commons.extensions.*
118
import org.fossify.commons.helpers.NavigationIcon
@@ -18,21 +15,24 @@ import java.io.File
1815
class SaveAsActivity : SimpleActivity() {
1916
private val binding by viewBinding(ActivitySaveAsBinding::inflate)
2017

21-
companion object {
22-
private const val MANAGE_STORAGE_RC = 201
23-
}
2418

25-
@RequiresApi(Build.VERSION_CODES.R)
26-
override fun onCreate(savedInstanceState: Bundle?) {
19+
override fun onCreate(savedInstanceState: Bundle?) {
2720
super.onCreate(savedInstanceState)
28-
if (!isExternalStorageManager()) {
29-
val intent = Intent(android.provider.Settings.ACTION_MANAGE_APP_ALL_FILES_ACCESS_PERMISSION)
30-
intent.data = "package:$packageName".toUri()
31-
startActivityForResult(intent, MANAGE_STORAGE_RC)
32-
return
33-
}
3421
setContentView(binding.root)
22+
tryInitFileManager()
23+
}
3524

25+
private fun tryInitFileManager() {
26+
handleStoragePermission { granted ->
27+
if (granted) {
28+
saveAsDialog()
29+
} else {
30+
toast(R.string.no_storage_permissions)
31+
finish()
32+
}
33+
}
34+
}
35+
private fun saveAsDialog() {
3636
if (intent.action == Intent.ACTION_SEND && intent.extras?.containsKey(Intent.EXTRA_STREAM) == true) {
3737
FilePickerDialog(this, pickFile = false, showHidden = config.shouldShowHidden(), showFAB = true, showFavoritesButton = true) {
3838
val destination = it

app/src/main/kotlin/org/fossify/filemanager/activities/SimpleActivity.kt

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,13 @@ package org.fossify.filemanager.activities
22

33
import android.annotation.SuppressLint
44
import android.content.Intent
5+
import android.net.Uri
56
import android.os.Environment
7+
import android.provider.Settings
68
import org.fossify.commons.activities.BaseSimpleActivity
9+
import org.fossify.commons.dialogs.ConfirmationAdvancedDialog
710
import org.fossify.commons.extensions.hasPermission
11+
import org.fossify.commons.extensions.showErrorToast
812
import org.fossify.commons.extensions.toast
913
import org.fossify.commons.helpers.PERMISSION_WRITE_STORAGE
1014
import org.fossify.commons.helpers.isRPlus
@@ -63,4 +67,36 @@ open class SimpleActivity : BaseSimpleActivity() {
6367
hasPermission(PERMISSION_WRITE_STORAGE)
6468
}
6569
}
70+
71+
@SuppressLint("InlinedApi")
72+
fun handleStoragePermission(callback: (granted: Boolean) -> Unit) {
73+
actionOnPermission = null
74+
if (hasStoragePermission()) {
75+
callback(true)
76+
} else {
77+
if (isRPlus()) {
78+
ConfirmationAdvancedDialog(this, "", R.string.access_storage_prompt, R.string.ok, 0, false) { success ->
79+
if (success) {
80+
isAskingPermissions = true
81+
actionOnPermission = callback
82+
try {
83+
val intent = Intent(Settings.ACTION_MANAGE_APP_ALL_FILES_ACCESS_PERMISSION)
84+
intent.addCategory("android.intent.category.DEFAULT")
85+
intent.data = Uri.parse("package:$packageName")
86+
startActivityForResult(intent, MANAGE_STORAGE_RC)
87+
} catch (e: Exception) {
88+
showErrorToast(e)
89+
val intent = Intent()
90+
intent.action = Settings.ACTION_MANAGE_ALL_FILES_ACCESS_PERMISSION
91+
startActivityForResult(intent, MANAGE_STORAGE_RC)
92+
}
93+
} else {
94+
finish()
95+
}
96+
}
97+
} else {
98+
handlePermission(PERMISSION_WRITE_STORAGE, callback)
99+
}
100+
}
101+
}
66102
}

0 commit comments

Comments
 (0)