Commit 2395c10c by Yannick Maljaars Committed by GitHub

Added platform support for new android granular media and alarm permissions (#934)

* Added platform support for new android granular media and alarm permissions

* Hotfix typo

* Hotfix 2, line end ;

* Hotfix: alignment in PermissionUtils.java
parent f1efd8bd
## 10.2.0
* Added support for the new Android 13 permissions: SCHEDULE_EXACT_ALARM, READ_MEDIA_IMAGES, READ_MEDIA_VIDEO and READ_MEDIA_AUDIO
## 10.1.0
* Added support for the new Android 13 permission: NEARBY_WIFI_DEVICES.
......
......@@ -47,7 +47,9 @@ final class PermissionConstants {
static final int PERMISSION_GROUP_BLUETOOTH_ADVERTISE = 29;
static final int PERMISSION_GROUP_BLUETOOTH_CONNECT = 30;
static final int PERMISSION_GROUP_NEARBY_WIFI_DEVICES = 31;
static final int PERMISSION_GROUP_VIDEOS = 32;
static final int PERMISSION_GROUP_AUDIO = 33;
static final int PERMISSION_GROUP_SCHEDULE_EXACT_ALARM = 34;
@Retention(RetentionPolicy.SOURCE)
@IntDef({
......@@ -79,7 +81,10 @@ final class PermissionConstants {
PERMISSION_GROUP_BLUETOOTH_SCAN,
PERMISSION_GROUP_BLUETOOTH_ADVERTISE,
PERMISSION_GROUP_BLUETOOTH_CONNECT,
PERMISSION_GROUP_NEARBY_WIFI_DEVICES
PERMISSION_GROUP_NEARBY_WIFI_DEVICES,
PERMISSION_GROUP_VIDEOS,
PERMISSION_GROUP_AUDIO,
PERMISSION_GROUP_SCHEDULE_EXACT_ALARM
})
@interface PermissionGroup {
}
......
......@@ -79,6 +79,14 @@ public class PermissionUtils {
return PermissionConstants.PERMISSION_GROUP_NOTIFICATION;
case Manifest.permission.NEARBY_WIFI_DEVICES:
return PermissionConstants.PERMISSION_GROUP_NEARBY_WIFI_DEVICES;
case Manifest.permission.READ_MEDIA_IMAGES:
return PermissionConstants.PERMISSION_GROUP_PHOTOS;
case Manifest.permission.READ_MEDIA_VIDEO:
return PermissionConstants.PERMISSION_GROUP_VIDEOS;
case Manifest.permission.READ_MEDIA_AUDIO:
return PermissionConstants.PERMISSION_GROUP_AUDIO;
case Manifest.permission.SCHEDULE_EXACT_ALARM:
return PermissionConstants.PERMISSION_GROUP_SCHEDULE_EXACT_ALARM;
default:
return PermissionConstants.PERMISSION_GROUP_UNKNOWN;
}
......@@ -292,19 +300,42 @@ public class PermissionUtils {
break;
}
case PermissionConstants.PERMISSION_GROUP_NOTIFICATION:
// The POST_NOTIFICATIONS permission is introduced in Android 13, meaning we should
// not handle permissions on pre Android 13 devices.
// The POST_NOTIFICATIONS permission is introduced in Android T, meaning we should
// not handle permissions on pre Android T devices.
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU && hasPermissionInManifest(context, permissionNames, Manifest.permission.POST_NOTIFICATIONS ))
permissionNames.add(Manifest.permission.POST_NOTIFICATIONS);
break;
case PermissionConstants.PERMISSION_GROUP_NEARBY_WIFI_DEVICES:
// The NEARBY_WIFI_DEVICES permission is introduced in Android 13, meaning we should
// not handle permissions on pre Android 13 devices.
// The NEARBY_WIFI_DEVICES permission is introduced in Android T, meaning we should
// not handle permissions on pre Android T devices.
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU && hasPermissionInManifest(context, permissionNames, Manifest.permission.NEARBY_WIFI_DEVICES ))
permissionNames.add(Manifest.permission.NEARBY_WIFI_DEVICES);
break;
case PermissionConstants.PERMISSION_GROUP_MEDIA_LIBRARY:
case PermissionConstants.PERMISSION_GROUP_PHOTOS:
// The READ_MEDIA_IMAGES permission is introduced in Android T, meaning we should
// not handle permissions on pre Android T devices.
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU && hasPermissionInManifest(context, permissionNames, Manifest.permission.READ_MEDIA_IMAGES ))
permissionNames.add(Manifest.permission.READ_MEDIA_IMAGES);
break;
case PermissionConstants.PERMISSION_GROUP_VIDEOS:
// The READ_MEDIA_VIDEOS permission is introduced in Android T, meaning we should
// not handle permissions on pre Android T devices.
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU && hasPermissionInManifest(context, permissionNames, Manifest.permission.READ_MEDIA_VIDEO ))
permissionNames.add(Manifest.permission.READ_MEDIA_VIDEO);
break;
case PermissionConstants.PERMISSION_GROUP_AUDIO:
// The READ_MEDIA_AUDIO permission is introduced in Android T, meaning we should
// not handle permissions on pre Android T devices.
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU && hasPermissionInManifest(context, permissionNames, Manifest.permission.READ_MEDIA_AUDIO ))
permissionNames.add(Manifest.permission.READ_MEDIA_AUDIO);
break;
case PermissionConstants.PERMISSION_GROUP_SCHEDULE_EXACT_ALARM:
// The SCHEDULE_EXACT_ALARM permission is introduced in Android S, meaning we should
// not handle permissions on pre Android S devices.
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S && hasPermissionInManifest(context, permissionNames, Manifest.permission.SCHEDULE_EXACT_ALARM ))
permissionNames.add(Manifest.permission.SCHEDULE_EXACT_ALARM);
break;
case PermissionConstants.PERMISSION_GROUP_MEDIA_LIBRARY:
case PermissionConstants.PERMISSION_GROUP_REMINDERS:
case PermissionConstants.PERMISSION_GROUP_UNKNOWN:
return null;
......
......@@ -16,6 +16,9 @@
<!-- Permissions options for the `storage` group -->
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.READ_MEDIA_IMAGES" />
<uses-permission android:name="android.permission.READ_MEDIA_VIDEO" />
<uses-permission android:name="android.permission.READ_MEDIA_AUDIO" />
<!-- Permissions options for the `camera` group -->
<uses-permission android:name="android.permission.CAMERA"/>
......@@ -79,6 +82,9 @@
<!-- Permissions options for the `access notification policy` group -->
<uses-permission android:name="android.permission.ACCESS_NOTIFICATION_POLICY"/>
<!-- Permissions options for the `alarm` group -->
<uses-permission android:name="android.permission.SCHEDULE_EXACT_ALARM" />
<application
android:name="${applicationName}"
android:icon="@mipmap/ic_launcher"
......
name: permission_handler_android
description: Permission plugin for Flutter. This plugin provides the Android API to request and check permissions.
version: 10.1.0
version: 10.2.0
homepage: https://github.com/baseflow/flutter-permission-handler
environment:
......
## 9.0.7
* Added new Android 13 permissions "SCHEDULE_EXACT_ALARM, READ_MEDIA_IMAGES, READ_MEDIA_VIDEO and READ_MEDIA_AUDIO" to PermissionHandlerEnums.h
## 9.0.6
* Prevent appearing popup that asks to turn on Bluetooth on iOS
......
......@@ -142,7 +142,10 @@ typedef NS_ENUM(int, PermissionGroup) {
PermissionGroupBluetoothScan,
PermissionGroupBluetoothAdvertise,
PermissionGroupBluetoothConnect,
PermissionGroupNearbyWifiDevices
PermissionGroupNearbyWifiDevices,
PermissiongroupVideos,
PermissionGroupAudio,
PermissionGroupScheduleExactAlarm
};
typedef NS_ENUM(int, PermissionStatus) {
......
name: permission_handler_apple
description: Permission plugin for Flutter. This plugin provides the iOS API to request and check permissions.
version: 9.0.6
version: 9.0.7
homepage: https://github.com/baseflow/flutter-permission-handler
environment:
......
# 0.1.1
## 0.1.2
* Added new Android 13 permissions "SCHEDULE_EXACT_ALARM, READ_MEDIA_IMAGES, READ_MEDIA_VIDEO and READ_MEDIA_AUDIO" to permission_constants.h
## 0.1.1
* Added new Android 13 NEARBY_WIFI_DEVICES permission to permission_constants.h
......
name: permission_handler_windows
description: Permission plugin for Flutter. This plugin provides the Windows API to request and check permissions.
version: 0.1.1
version: 0.1.2
homepage: https://github.com/baseflow/flutter-permission-handler
flutter:
......
......@@ -42,7 +42,10 @@ public:
BLUETOOTH_SCAN = 28,
BLUETOOTH_ADVERTISE = 29,
BLUETOOTH_CONNECT = 30,
NEARBY_WIFI_DEVICES = 31
NEARBY_WIFI_DEVICES = 31,
VIDEOS = 32,
AUDIO = 33,
SCHEDULE_EXACT_ALARM = 34
};
//PERMISSION_STATUS
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment