Commit 55d19031 by Jeroen Weener Committed by GitHub

Split `calendar` permission into `calendarReadOnly` and `calendarFullAccess` (#1183)

parent a3bacb4a
## 3.12.0
* Adds `Permission.calendarReadOnly` and `Permission.calendarFullAccess`.
* Deprecates `Permission.calendar`. Developers should use `Permission.calendarReadOnly` and `Permission.calendarFullAccess` instead.
## 3.11.5
* Updates the mentions of Android versions throughout the plugin, now following a format of 'Android {name} (API {number})'. For example: 'Android 13 (API 33)'.
......
......@@ -29,6 +29,7 @@ class Permission {
///
/// Android: Calendar
/// iOS: Calendar (Events)
@Deprecated('Use [calendarReadOnly] and [calendarFullAccess].')
static const calendar = Permission._(0);
/// Permission for accessing the device's camera.
......@@ -296,8 +297,17 @@ class Permission {
/// Android 13+ (API 33+)
static const sensorsAlways = Permission._(35);
/// Permission for reading the device's calendar.
///
/// On iOS 16 and lower, this permission is identical to [Permission.calendarFullAccess].
static const calendarReadOnly = Permission._(36);
/// Permission for reading from and writing to the device's calendar.
static const calendarFullAccess = Permission._(37);
/// Returns a list of all possible [PermissionGroup] values.
static const List<Permission> values = <Permission>[
// ignore: deprecated_member_use_from_same_package
calendar,
camera,
contacts,
......@@ -334,6 +344,8 @@ class Permission {
audio,
scheduleExactAlarm,
sensorsAlways,
calendarReadOnly,
calendarFullAccess,
];
static const List<String> _names = <String>[
......@@ -373,6 +385,8 @@ class Permission {
'audio',
'scheduleExactAlarm',
'sensorsAlways',
'calendarReadOnly',
'calendarFullAccess',
];
@override
......
......@@ -3,7 +3,7 @@ description: A common platform interface for the permission_handler plugin.
homepage: https://github.com/baseflow/flutter-permission-handler/tree/master/permission_handler_platform_interface
# NOTE: We strongly prefer non-breaking changes, even at the expense of a
# less-clean API. See https://flutter.dev/go/platform-interface-breaking-changes
version: 3.11.5
version: 3.12.0
dependencies:
flutter:
......
......@@ -3,8 +3,11 @@ import 'package:permission_handler_platform_interface/permission_handler_platfor
import 'package:permission_handler_platform_interface/src/method_channel/method_channel_permission_handler.dart';
import 'method_channel_mock.dart';
List<Permission> get mockPermissions => List.of(
<Permission>{Permission.calendar, Permission.camera, Permission.contacts});
List<Permission> get mockPermissions => List.of(<Permission>{
Permission.contacts,
Permission.camera,
Permission.calendarReadOnly,
});
Map<Permission, PermissionStatus> get mockPermissionMap => {};
......@@ -21,7 +24,7 @@ void main() {
);
final permissionStatus = await MethodChannelPermissionHandler()
.checkPermissionStatus(Permission.calendar);
.checkPermissionStatus(Permission.contacts);
expect(permissionStatus, PermissionStatus.denied);
});
......@@ -35,7 +38,7 @@ void main() {
);
final permissionStatus = await MethodChannelPermissionHandler()
.checkPermissionStatus(Permission.calendar);
.checkPermissionStatus(Permission.contacts);
expect(permissionStatus, PermissionStatus.denied);
});
......@@ -51,7 +54,7 @@ void main() {
);
final permissionStatus = await MethodChannelPermissionHandler()
.checkPermissionStatus(Permission.calendar);
.checkPermissionStatus(Permission.contacts);
expect(permissionStatus, PermissionStatus.restricted);
});
......@@ -67,7 +70,7 @@ void main() {
);
final permissionStatus = await MethodChannelPermissionHandler()
.checkPermissionStatus(Permission.calendar);
.checkPermissionStatus(Permission.contacts);
expect(permissionStatus, PermissionStatus.limited);
});
......@@ -83,7 +86,7 @@ void main() {
);
final permissionStatus = await MethodChannelPermissionHandler()
.checkPermissionStatus(Permission.calendar);
.checkPermissionStatus(Permission.contacts);
expect(permissionStatus, PermissionStatus.permanentlyDenied);
});
......@@ -101,7 +104,7 @@ void main() {
);
final serviceStatus = await MethodChannelPermissionHandler()
.checkServiceStatus(Permission.calendar);
.checkServiceStatus(Permission.contacts);
expect(serviceStatus, ServiceStatus.disabled);
});
......@@ -115,7 +118,7 @@ void main() {
);
final serviceStatus = await MethodChannelPermissionHandler()
.checkServiceStatus(Permission.calendar);
.checkServiceStatus(Permission.contacts);
expect(serviceStatus, ServiceStatus.enabled);
});
......@@ -131,7 +134,7 @@ void main() {
);
final serviceStatus = await MethodChannelPermissionHandler()
.checkServiceStatus(Permission.calendar);
.checkServiceStatus(Permission.contacts);
expect(serviceStatus, ServiceStatus.notApplicable);
});
......
......@@ -6,7 +6,7 @@ void main() {
() {
const values = Permission.values;
expect(values.length, 36);
expect(values.length, 38);
});
test('check if byValue returns corresponding PermissionGroup value', () {
......
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