From 4e557fffaebc285fd05aaffb2e8f1053f31d8a18 Mon Sep 17 00:00:00 2001 From: Prathamesh More Date: Sat, 18 Mar 2023 15:08:07 +0530 Subject: [PATCH] feat: Add A13 granular permissions --- app/src/main/AndroidManifest.xml | 11 ++++++++--- .../retromusic/activities/PermissionActivity.kt | 5 +---- .../activities/base/AbsMusicServiceActivity.kt | 13 ++++++++++--- 3 files changed, 19 insertions(+), 10 deletions(-) diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 8db74d0f6..c9c99e633 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -9,7 +9,11 @@ - + + + @@ -30,7 +34,9 @@ + tools:ignore="UnusedAttribute"> diff --git a/app/src/main/java/code/name/monkey/retromusic/activities/PermissionActivity.kt b/app/src/main/java/code/name/monkey/retromusic/activities/PermissionActivity.kt index da88b2a90..f58be5ba2 100644 --- a/app/src/main/java/code/name/monkey/retromusic/activities/PermissionActivity.kt +++ b/app/src/main/java/code/name/monkey/retromusic/activities/PermissionActivity.kt @@ -129,10 +129,7 @@ class PermissionActivity : AbsMusicServiceActivity() { } private fun hasStoragePermission(): Boolean { - return ActivityCompat.checkSelfPermission( - this, - Manifest.permission.READ_EXTERNAL_STORAGE - ) == PackageManager.PERMISSION_GRANTED + return hasPermissions() } @RequiresApi(Build.VERSION_CODES.S) diff --git a/app/src/main/java/code/name/monkey/retromusic/activities/base/AbsMusicServiceActivity.kt b/app/src/main/java/code/name/monkey/retromusic/activities/base/AbsMusicServiceActivity.kt index 07937c7b5..e2485a7ee 100644 --- a/app/src/main/java/code/name/monkey/retromusic/activities/base/AbsMusicServiceActivity.kt +++ b/app/src/main/java/code/name/monkey/retromusic/activities/base/AbsMusicServiceActivity.kt @@ -16,8 +16,10 @@ package code.name.monkey.retromusic.activities.base import android.Manifest import android.content.* +import android.os.Build.VERSION_CODES import android.os.Bundle import android.os.IBinder +import androidx.core.content.ContextCompat import androidx.lifecycle.lifecycleScope import code.name.monkey.appthemehelper.util.VersionUtils import code.name.monkey.retromusic.R @@ -96,8 +98,7 @@ abstract class AbsMusicServiceActivity : AbsBaseActivity(), IMusicServiceEventLi filter.addAction(MEDIA_STORE_CHANGED) filter.addAction(FAVORITE_STATE_CHANGED) - registerReceiver(musicStateReceiver, filter) - + ContextCompat.registerReceiver(this, musicStateReceiver, filter, ContextCompat.RECEIVER_NOT_EXPORTED) receiverRegistered = true } @@ -190,7 +191,13 @@ abstract class AbsMusicServiceActivity : AbsBaseActivity(), IMusicServiceEventLi } override fun getPermissionsToRequest(): Array { - return mutableListOf(Manifest.permission.READ_EXTERNAL_STORAGE).apply { + return mutableListOf().apply { + if (VersionUtils.hasT()) { + add(Manifest.permission.READ_MEDIA_AUDIO) + add(Manifest.permission.POST_NOTIFICATIONS) + } else { + add(Manifest.permission.READ_EXTERNAL_STORAGE) + } if (!VersionUtils.hasR()) { add(Manifest.permission.WRITE_EXTERNAL_STORAGE) }