iOS: Handle new contacts permission enumerator

iOS 18 added a new enumerator value for contact permissions,
"Limited". This value has not been added for any other permission
enumerator types such as camera. Currently we get compiler errors
for not explicitly handling this value in a switch case. This change
explicitly handles this enumerator and enables compilation.

Pick-to: 6.7 6.5
Change-Id: Idfc45902f9ae2e555fab8ba3d860a58d89651964
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
(cherry picked from commit 0bc5e5ad0e490a1d8e140855b23abbb087c6f9a5)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
This commit is contained in:
Nils Petter Skålerud 2024-09-06 09:32:48 +02:00 committed by Qt Cherry-pick Bot
parent 9fc8edb826
commit 3eecf663a4

View File

@ -5,8 +5,6 @@
#include <Contacts/Contacts.h>
QT_DEFINE_PERMISSION_STATUS_CONVERTER(CNAuthorizationStatus);
@interface QDarwinContactsPermissionHandler ()
@property (nonatomic, retain) CNContactStore *contactStore;
@end
@ -21,7 +19,21 @@ QT_DEFINE_PERMISSION_STATUS_CONVERTER(CNAuthorizationStatus);
- (Qt::PermissionStatus)currentStatus
{
const auto status = [CNContactStore authorizationStatusForEntityType:CNEntityTypeContacts];
return nativeStatusToQtStatus(status);
switch (status) {
case CNAuthorizationStatusAuthorized:
#if defined(Q_OS_IOS) && QT_IOS_PLATFORM_SDK_EQUAL_OR_ABOVE(180000)
case CNAuthorizationStatusLimited:
#endif
return Qt::PermissionStatus::Granted;
case CNAuthorizationStatusDenied:
case CNAuthorizationStatusRestricted:
return Qt::PermissionStatus::Denied;
case CNAuthorizationStatusNotDetermined:
return Qt::PermissionStatus::Undetermined;
}
qCWarning(lcPermissions) << "Unknown permission status" << status << "detected in"
<< QT_STRINGIFY(QT_DARWIN_PERMISSION_PLUGIN);
return Qt::PermissionStatus::Denied;
}
- (QStringList)usageDescriptionsFor:(QPermission)permission