Skip to content

Commit 5cb9b6c

Browse files
committed
recheck at app launch if root permission hasnt been revoked
1 parent fa35107 commit 5cb9b6c

File tree

3 files changed

+15
-6
lines changed

3 files changed

+15
-6
lines changed

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

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ import com.simplemobiletools.filemanager.SCROLL_STATE
2525
import com.simplemobiletools.filemanager.dialogs.ChangeSortingDialog
2626
import com.simplemobiletools.filemanager.extensions.config
2727
import com.simplemobiletools.filemanager.fragments.ItemsFragment
28+
import com.simplemobiletools.filemanager.helpers.RootHelpers
2829
import com.stericson.RootTools.RootTools
2930
import kotlinx.android.synthetic.main.activity_main.*
3031
import java.util.*
@@ -256,6 +257,11 @@ class MainActivity : SimpleActivity(), ItemsFragment.ItemInteractionListener, Br
256257
private fun checkIfRootAvailable() {
257258
Thread({
258259
config.isRootAvailable = RootTools.isRootAvailable()
260+
if (config.isRootAvailable && config.enableRootAccess) {
261+
RootHelpers().askRootIFNeeded(this) {
262+
config.enableRootAccess = it
263+
}
264+
}
259265
}).start()
260266
}
261267

app/src/main/kotlin/com/simplemobiletools/filemanager/fragments/ItemsFragment.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -189,7 +189,7 @@ class ItemsFragment : Fragment(), ItemsAdapter.ItemOperationsListener {
189189
}
190190

191191
private fun getRootItemsOf(path: String, callback: (items: ArrayList<FileDirItem>) -> Unit) {
192-
RootHelpers().getFiles(context, path.trimEnd('/'), callback)
192+
RootHelpers().getFiles(activity as SimpleActivity, path.trimEnd('/'), callback)
193193
}
194194

195195
private fun getChildren(file: File): Int {

app/src/main/kotlin/com/simplemobiletools/filemanager/helpers/RootHelpers.kt

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

3-
import android.content.Context
43
import android.text.TextUtils
54
import com.simplemobiletools.commons.extensions.showErrorToast
65
import com.simplemobiletools.commons.models.FileDirItem
@@ -37,9 +36,9 @@ class RootHelpers {
3736
}
3837
}
3938

40-
fun getFiles(context: Context, path: String, callback: (fileDirItems: ArrayList<FileDirItem>) -> Unit) {
39+
fun getFiles(activity: SimpleActivity, path: String, callback: (fileDirItems: ArrayList<FileDirItem>) -> Unit) {
4140
val files = ArrayList<FileDirItem>()
42-
val showHidden = context.config.shouldShowHidden
41+
val showHidden = activity.config.shouldShowHidden
4342

4443
val cmd = "ls -la $path | awk '{ system(\"echo \"\$1\" \"\$4\" `find $path/\"\$NF\" -mindepth 1 -maxdepth 1 | wc -l` \"\$NF\" \")}'"
4544
val command = object : Command(0, cmd) {
@@ -76,8 +75,12 @@ class RootHelpers {
7675
super.commandCompleted(id, exitcode)
7776
}
7877
}
79-
RootTools.getShell(true).add(command)
78+
try {
79+
RootTools.getShell(true).add(command)
80+
} catch (e: Exception) {
81+
activity.showErrorToast(e)
82+
}
8083
}
8184

82-
private fun areDigitsOnly(value: String) = value.matches(Regex("[0-9 ]+"))
85+
private fun areDigitsOnly(value: String) = value.matches(Regex("[0-9]+"))
8386
}

0 commit comments

Comments
 (0)