You've already forked Magisk
mirror of
https://github.com/topjohnwu/Magisk.git
synced 2025-09-06 06:36:58 +00:00
Added permission check for installing/downloading modules
This commit is contained in:
committed by
John Wu
parent
faf077b494
commit
88d917b662
@@ -1,5 +1,6 @@
|
||||
package com.topjohnwu.magisk.ui.module
|
||||
|
||||
import android.Manifest
|
||||
import androidx.annotation.WorkerThread
|
||||
import androidx.databinding.Bindable
|
||||
import androidx.databinding.ObservableArrayList
|
||||
@@ -20,6 +21,7 @@ import com.topjohnwu.magisk.model.entity.internal.DownloadSubject
|
||||
import com.topjohnwu.magisk.model.entity.recycler.*
|
||||
import com.topjohnwu.magisk.model.events.InstallExternalModuleEvent
|
||||
import com.topjohnwu.magisk.model.events.OpenChangelogEvent
|
||||
import com.topjohnwu.magisk.model.events.SnackbarEvent
|
||||
import com.topjohnwu.magisk.model.events.dialog.ModuleInstallDialog
|
||||
import com.topjohnwu.magisk.ui.base.*
|
||||
import com.topjohnwu.magisk.utils.EndlessRecyclerScrollListener
|
||||
@@ -330,11 +332,27 @@ class ModuleViewModel(
|
||||
else -> Unit
|
||||
}
|
||||
|
||||
fun downloadPressed(item: RepoItem) = ModuleInstallDialog(item.item).publish()
|
||||
fun installPressed() = InstallExternalModuleEvent().publish()
|
||||
fun downloadPressed(item: RepoItem) = withPermissions(
|
||||
Manifest.permission.READ_EXTERNAL_STORAGE,
|
||||
Manifest.permission.WRITE_EXTERNAL_STORAGE
|
||||
).any { it }.subscribeK(onError = { permissionDenied() }) {
|
||||
ModuleInstallDialog(item.item).publish()
|
||||
}.add()
|
||||
|
||||
fun installPressed() = withPermissions(
|
||||
Manifest.permission.READ_EXTERNAL_STORAGE,
|
||||
Manifest.permission.WRITE_EXTERNAL_STORAGE
|
||||
).any { it }.subscribeK(onError = { permissionDenied() }) {
|
||||
InstallExternalModuleEvent().publish()
|
||||
}.add()
|
||||
|
||||
fun infoPressed(item: RepoItem) = OpenChangelogEvent(item.item).publish()
|
||||
fun infoPressed(item: ModuleItem) {
|
||||
OpenChangelogEvent(item.repo ?: return).publish()
|
||||
}
|
||||
|
||||
private fun permissionDenied() {
|
||||
SnackbarEvent(R.string.module_permission_declined).publish()
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user