1
0
Fork 0
mirror of https://github.com/juce-framework/JUCE.git synced 2026-01-10 23:44:24 +00:00

RuntimePermissions: Allow requesting the POST_NOTIFICATIONS permission at runtime on Android

This commit is contained in:
reuk 2024-11-21 21:26:29 +00:00
parent 5878adaecd
commit 0329635ed2
No known key found for this signature in database
2 changed files with 12 additions and 3 deletions

View file

@ -113,7 +113,13 @@ public:
/** Permission to read video files that your app didn't create. /** Permission to read video files that your app didn't create.
Has the same effect as readExternalStorage on iOS and Android versions before 33. Has the same effect as readExternalStorage on iOS and Android versions before 33.
*/ */
readMediaVideo = 8 readMediaVideo = 8,
/** Permission to post notifications.
@see PushNotifications::requestPermissionsWithSettings
*/
postNotification = 9
}; };
//============================================================================== //==============================================================================

View file

@ -81,6 +81,9 @@ static StringArray jucePermissionToAndroidPermissions (RuntimePermissions::Permi
case RuntimePermissions::readMediaVideo: case RuntimePermissions::readMediaVideo:
return { externalStorageOrMedia ("android.permission.READ_MEDIA_VIDEO") }; return { externalStorageOrMedia ("android.permission.READ_MEDIA_VIDEO") };
case RuntimePermissions::postNotification:
return { "android.permission.POST_NOTIFICATIONS" };
} }
// invalid permission // invalid permission
@ -101,6 +104,7 @@ static RuntimePermissions::PermissionID androidPermissionToJucePermission (const
{ "android.permission.READ_MEDIA_IMAGES", RuntimePermissions::readMediaImages }, { "android.permission.READ_MEDIA_IMAGES", RuntimePermissions::readMediaImages },
{ "android.permission.READ_MEDIA_VIDEO", RuntimePermissions::readMediaVideo }, { "android.permission.READ_MEDIA_VIDEO", RuntimePermissions::readMediaVideo },
{ "android.permission.BLUETOOTH_SCAN", RuntimePermissions::bluetoothMidi }, { "android.permission.BLUETOOTH_SCAN", RuntimePermissions::bluetoothMidi },
{ "android.permission.POST_NOTIFICATIONS", RuntimePermissions::postNotification },
}; };
const auto iter = map.find (permission); const auto iter = map.find (permission);
@ -118,8 +122,7 @@ struct PermissionsRequest
//============================================================================== //==============================================================================
struct PermissionsOverlay final : public FragmentOverlay struct PermissionsOverlay final : public FragmentOverlay
{ {
PermissionsOverlay (CriticalSection& cs) : overlayGuard (cs) {} explicit PermissionsOverlay (CriticalSection& cs) : overlayGuard (cs) {}
~PermissionsOverlay() override = default;
struct PermissionResult struct PermissionResult
{ {