This commit is contained in:
kunfei 2023-02-02 22:29:26 +08:00
parent 63e1de46ac
commit 4979cc66e1
2 changed files with 22 additions and 8 deletions

View File

@ -5,6 +5,8 @@ import android.os.Build
@Suppress("unused")
object Permissions {
const val POST_NOTIFICATIONS = "android.permission.POST_NOTIFICATIONS"
const val READ_CALENDAR = "android.permission.READ_CALENDAR"
const val WRITE_CALENDAR = "android.permission.WRITE_CALENDAR"

View File

@ -6,10 +6,12 @@ import android.os.Environment
import androidx.annotation.StringRes
import androidx.appcompat.app.AlertDialog
import androidx.appcompat.app.AppCompatActivity
import androidx.core.app.NotificationManagerCompat
import androidx.core.content.ContextCompat
import androidx.fragment.app.Fragment
import io.legado.app.R
import io.legado.app.utils.startActivity
import splitties.init.appCtx
@Suppress("MemberVisibilityCanBePrivate")
internal class Request : OnRequestPermissionsResultCallback {
@ -118,17 +120,27 @@ internal class Request : OnRequestPermissionsResultCallback {
if (permissions != null) {
val deniedPermissionList = ArrayList<String>()
for (permission in permissions) {
if (permission == Permissions.MANAGE_EXTERNAL_STORAGE) {
if (Permissions.isManageExternalStorage()) {
if (!Environment.isExternalStorageManager()) {
when (permission) {
Permissions.POST_NOTIFICATIONS -> {
if (!NotificationManagerCompat.from(appCtx).areNotificationsEnabled()) {
deniedPermissionList.add(permission)
}
}
Permissions.MANAGE_EXTERNAL_STORAGE -> {
if (Permissions.isManageExternalStorage()) {
if (!Environment.isExternalStorageManager()) {
deniedPermissionList.add(permission)
}
}
}
else -> {
if (
ContextCompat.checkSelfPermission(context, permission)
!= PackageManager.PERMISSION_GRANTED
) {
deniedPermissionList.add(permission)
}
}
} else if (
ContextCompat.checkSelfPermission(context, permission)
!= PackageManager.PERMISSION_GRANTED
) {
deniedPermissionList.add(permission)
}
}
val size = deniedPermissionList.size