permissions: Replace deprecated location permission usage key

And add the macOS specific key.

Change-Id: I1e0446a1927ef530322388417b9300ae287752c3
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
Reviewed-by: Juha Vuolle <juha.vuolle@qt.io>
(cherry picked from commit a3697f2b84e87590a451664c3fe9328a8e2087bd)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
This commit is contained in:
Tor Arne Vestbø 2023-02-02 12:14:32 +01:00 committed by Qt Cherry-pick Bot
parent 80a6048ab1
commit 49326b8135
4 changed files with 28 additions and 13 deletions

View File

@ -46,12 +46,12 @@
<string>Testing HealthShare</string>
<key>NSHealthUpdateUsageDescription</key>
<string>Testing HealthUpdate</string>
<key>NSLocationAlwaysAndWhenInUseUsageDescription</key>
<string>Testing LocationAlwaysAndWhenInUse</string>
<key>NSLocationAlwaysUsageDescription</key>
<string>Testing LocationAlways</string>
<key>NSLocationUsageDescription</key>
<string>Testing Location on macOS</string>
<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>
<string>Testing Microphone</string>

View File

@ -1231,11 +1231,18 @@ if(QT_FEATURE_permissions AND APPLE)
qt_internal_extend_target(QDarwinLocationPermissionPlugin
LIBRARIES ${FWCoreLocation}
)
set_property(TARGET QDarwinLocationPermissionPlugin PROPERTY
_qt_info_plist_usage_descriptions
"NSLocationWhenInUseUsageDescription"
"NSLocationAlwaysUsageDescription"
)
if(MACOS)
set_property(TARGET QDarwinLocationPermissionPlugin PROPERTY
_qt_info_plist_usage_descriptions
"NSLocationUsageDescription"
)
else()
set_property(TARGET QDarwinLocationPermissionPlugin PROPERTY
_qt_info_plist_usage_descriptions
"NSLocationWhenInUseUsageDescription"
"NSLocationAlwaysAndWhenInUseUsageDescription"
)
endif()
endif()
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
\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 \c NSLocationWhenInUseUsageDescription, and
\c NSLocationAlwaysUsageDescription if requesting
\c NSLocationAlwaysAndWhenInUseUsageDescription if requesting
QLocationPermission::Always
\row
\li Android

View File

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