feat: Add A13 granular permissions

This commit is contained in:
Prathamesh More 2023-03-18 15:08:07 +05:30
parent 25fcb84ea8
commit 4e557fffae
3 changed files with 19 additions and 10 deletions

View file

@ -9,7 +9,11 @@
<uses-permission android:name="android.permission.SCHEDULE_EXACT_ALARM" />
<uses-permission android:name="android.permission.VIBRATE" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission
android:name="android.permission.READ_EXTERNAL_STORAGE"
android:maxSdkVersion="32" />
<uses-permission android:name="android.permission.READ_MEDIA_AUDIO" />
<uses-permission android:name="android.permission.POST_NOTIFICATIONS" />
<uses-permission
android:name="android.permission.WRITE_EXTERNAL_STORAGE"
android:maxSdkVersion="29" />
@ -30,7 +34,9 @@
<application
android:name=".App"
android:allowBackup="@bool/allowBackup"
android:appCategory="audio"
android:configChanges="locale|layoutDirection"
android:enableOnBackInvokedCallback="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:requestLegacyExternalStorage="true"
@ -39,7 +45,7 @@
android:supportsRtl="true"
android:theme="@style/Theme.RetroMusic.FollowSystem"
android:usesCleartextTraffic="true"
tools:targetApi="m">
tools:ignore="UnusedAttribute">
<activity
android:name=".activities.MainActivity"
android:exported="true"
@ -296,7 +302,6 @@
<service
android:name=".service.MusicService"
android:enabled="true"
android:exported="true"
android:foregroundServiceType="mediaPlayback"
android:label="@string/app_name">

View file

@ -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)

View file

@ -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<String> {
return mutableListOf(Manifest.permission.READ_EXTERNAL_STORAGE).apply {
return mutableListOf<String>().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)
}