From 7523c4e342be5b7a2731fbb1d1fa59f8bd80e6e8 Mon Sep 17 00:00:00 2001 From: sstimac Date: Wed, 23 Oct 2024 15:01:07 +0200 Subject: [PATCH] add the draw permission handling for AA --- .../trackplayer/module/MusicModule.kt | 33 +++++++++++++++++-- src/trackPlayer.ts | 12 +++++++ 2 files changed, 42 insertions(+), 3 deletions(-) diff --git a/android/src/main/java/com/doublesymmetry/trackplayer/module/MusicModule.kt b/android/src/main/java/com/doublesymmetry/trackplayer/module/MusicModule.kt index 9bf96a288..62d9d2551 100644 --- a/android/src/main/java/com/doublesymmetry/trackplayer/module/MusicModule.kt +++ b/android/src/main/java/com/doublesymmetry/trackplayer/module/MusicModule.kt @@ -1,14 +1,14 @@ package com.doublesymmetry.trackplayer.module import android.content.* -import android.media.MediaDescription +import android.net.Uri import android.os.Build import android.os.Bundle import android.os.IBinder -import android.net.Uri -import android.support.v4.media.RatingCompat +import android.provider.Settings import android.support.v4.media.MediaBrowserCompat.MediaItem import android.support.v4.media.MediaDescriptionCompat +import android.support.v4.media.RatingCompat import androidx.localbroadcastmanager.content.LocalBroadcastManager import androidx.media.utils.MediaConstants import com.doublesymmetry.kotlinaudio.models.Capability @@ -732,4 +732,31 @@ class MusicModule(reactContext: ReactApplicationContext) : ReactContextBaseJavaM ) callback.resolve(null) } + + @ReactMethod + fun turnOffShowWhenLocked(callback: Promise) { + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O_MR1) { + val activity = reactApplicationContext.currentActivity + activity!!.setShowWhenLocked(false) + activity!!.setTurnScreenOn(false) + } + + callback.resolve(null) + } + + @ReactMethod + fun getDrawOverAppsPermission(callback: Promise) { + val activity = reactApplicationContext.currentActivity + callback.resolve(Settings.canDrawOverlays(activity)) + } + + @ReactMethod + fun askDrawOverAppsPermission(callback: Promise) { + val context = reactApplicationContext + val packageName = context.packageName + val intent = Intent(Settings.ACTION_MANAGE_OVERLAY_PERMISSION, Uri.parse("package:$packageName")) + intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK) + context.startActivity(intent) + callback.resolve(null) + } } diff --git a/src/trackPlayer.ts b/src/trackPlayer.ts index 6ea490c12..74b797904 100644 --- a/src/trackPlayer.ts +++ b/src/trackPlayer.ts @@ -549,3 +549,15 @@ export function setBrowseTreeStyle( TrackPlayer.setBrowseTreeStyle(browsableStyle, playableStyle); return null; } + +export function turnOffShowWhenLocked() { + return TrackPlayer.turnOffShowWhenLocked(); +} + +export function getDrawOverAppsPermission() { + return TrackPlayer.getDrawOverAppsPermission(); +} + +export function askDrawOverAppsPermission() { + return TrackPlayer.askDrawOverAppsPermission(); +}