permissions: Replace deprecated location permission usage key

And add the macOS specific key.

Pick-to: 6.5
Change-Id: I1e0446a1927ef530322388417b9300ae287752c3
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
Reviewed-by: Juha Vuolle <juha.vuolle@qt.io>
This commit is contained in:
Tor Arne Vestbø 2023-02-02 12:14:32 +01:00
parent 55ca636180
commit a3697f2b84
4 changed files with 28 additions and 13 deletions

View File

@ -46,12 +46,12 @@
<string>Testing HealthShare</string> <string>Testing HealthShare</string>
<key>NSHealthUpdateUsageDescription</key> <key>NSHealthUpdateUsageDescription</key>
<string>Testing HealthUpdate</string> <string>Testing HealthUpdate</string>
<key>NSLocationAlwaysAndWhenInUseUsageDescription</key> <key>NSLocationUsageDescription</key>
<string>Testing LocationAlwaysAndWhenInUse</string> <string>Testing Location on macOS</string>
<key>NSLocationAlwaysUsageDescription</key>
<string>Testing LocationAlways</string>
<key>NSLocationWhenInUseUsageDescription</key> <key>NSLocationWhenInUseUsageDescription</key>
<string>Testing LocationWhenInUse</string> <string>Testing Location when in use on iOS</string>
<key>NSLocationAlwaysAndWhenInUseUsageDescription</key>
<string>Testing Location always and when in use on iOS</string>
<key>NSMicrophoneUsageDescription</key> <key>NSMicrophoneUsageDescription</key>
<string>Testing Microphone</string> <string>Testing Microphone</string>

View File

@ -1240,11 +1240,18 @@ if(QT_FEATURE_permissions AND APPLE)
qt_internal_extend_target(QDarwinLocationPermissionPlugin qt_internal_extend_target(QDarwinLocationPermissionPlugin
LIBRARIES ${FWCoreLocation} LIBRARIES ${FWCoreLocation}
) )
if(MACOS)
set_property(TARGET QDarwinLocationPermissionPlugin PROPERTY
_qt_info_plist_usage_descriptions
"NSLocationUsageDescription"
)
else()
set_property(TARGET QDarwinLocationPermissionPlugin PROPERTY set_property(TARGET QDarwinLocationPermissionPlugin PROPERTY
_qt_info_plist_usage_descriptions _qt_info_plist_usage_descriptions
"NSLocationWhenInUseUsageDescription" "NSLocationWhenInUseUsageDescription"
"NSLocationAlwaysUsageDescription" "NSLocationAlwaysAndWhenInUseUsageDescription"
) )
endif()
endif() endif()
qt_internal_extend_target(Core CONDITION QT_FEATURE_permissions AND ANDROID qt_internal_extend_target(Core CONDITION QT_FEATURE_permissions AND ANDROID

View File

@ -381,10 +381,14 @@ QT_PERMISSION_IMPL_COMMON(QBluetoothPermission)
\include permissions.qdocinc begin-usage-declarations \include permissions.qdocinc begin-usage-declarations
\row \row
\li Apple \li \macos
\li \l{apple-usage-description}{Usage description}
\li \c NSLocationUsageDescription
\row
\li iOS
\li \l{apple-usage-description}{Usage description} \li \l{apple-usage-description}{Usage description}
\li \c NSLocationWhenInUseUsageDescription, and \li \c NSLocationWhenInUseUsageDescription, and
\c NSLocationAlwaysUsageDescription if requesting \c NSLocationAlwaysAndWhenInUseUsageDescription if requesting
QLocationPermission::Always QLocationPermission::Always
\row \row
\li Android \li Android

View File

@ -123,11 +123,15 @@ struct PermissionRequest
- (QStringList)usageDescriptionsFor:(QPermission)permission - (QStringList)usageDescriptionsFor:(QPermission)permission
{ {
#if defined(Q_OS_MACOS)
return { "NSLocationUsageDescription" };
#else // iOS 11 and above
QStringList usageDescriptions = { "NSLocationWhenInUseUsageDescription" }; QStringList usageDescriptions = { "NSLocationWhenInUseUsageDescription" };
const auto locationPermission = *permission.value<QLocationPermission>(); const auto locationPermission = *permission.value<QLocationPermission>();
if (locationPermission.availability() == QLocationPermission::Always) if (locationPermission.availability() == QLocationPermission::Always)
usageDescriptions << "NSLocationAlwaysUsageDescription"; usageDescriptions << "NSLocationAlwaysAndWhenInUseUsageDescription";
return usageDescriptions; return usageDescriptions;
#endif
} }
- (void)requestPermission:(QPermission)permission withCallback:(PermissionCallback)callback - (void)requestPermission:(QPermission)permission withCallback:(PermissionCallback)callback