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:
parent
9fc8edb826
commit
3eecf663a4
@ -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
|
||||
|
Loading…
x
Reference in New Issue
Block a user