From 7eff78e8a5ef484da973aa54ce689e3e266b1c69 Mon Sep 17 00:00:00 2001 From: Marc Mutz Date: Wed, 28 Dec 2022 15:42:38 +0100 Subject: [PATCH] Android: checkPermission/s(): use makeReadyFuture() ... instead of manual QPromise handling. QtFuture::makeReadyFuture() is both more efficient and more readable. As a drive-by, replace size() > 0 checks with !isEmpty(). Change-Id: I299fbe8e6be10d8f65b8f86fcc6b586ac3cbd9d2 Reviewed-by: Qt CI Bot Reviewed-by: Sona Kurazyan --- .../platform/android/qandroidextras.cpp | 27 +++++-------------- 1 file changed, 7 insertions(+), 20 deletions(-) diff --git a/src/corelib/platform/android/qandroidextras.cpp b/src/corelib/platform/android/qandroidextras.cpp index e5f891e472..3d2425134a 100644 --- a/src/corelib/platform/android/qandroidextras.cpp +++ b/src/corelib/platform/android/qandroidextras.cpp @@ -1145,15 +1145,9 @@ QFuture QtAndroidPrivate::requestPermissions(const QStringList &permissions) { // avoid the uneccessary call and response to an empty permission string - if (permissions.size() > 0) - return requestPermissionsInternal(permissions); - - QPromise promise; - QFuture future = promise.future(); - promise.start(); - promise.addResult(QtAndroidPrivate::Denied); - promise.finish(); - return future; + if (permissions.isEmpty()) + return QtFuture::makeReadyFuture(QtAndroidPrivate::Denied); + return requestPermissionsInternal(permissions); } /*! @@ -1167,22 +1161,15 @@ QtAndroidPrivate::requestPermissions(const QStringList &permissions) QFuture QtAndroidPrivate::checkPermission(const QString &permission) { - QPromise promise; - QFuture future = promise.future(); - promise.start(); - - if (permission.size() > 0) { + QtAndroidPrivate::PermissionResult result = Denied; + if (!permission.isEmpty()) { auto res = QJniObject::callStaticMethod(qtNativeClassName, "checkSelfPermission", "(Ljava/lang/String;)I", QJniObject::fromString(permission).object()); - promise.addResult(resultFromAndroid(res)); - } else { - promise.addResult(QtAndroidPrivate::Denied); + result = resultFromAndroid(res); } - - promise.finish(); - return future; + return QtFuture::makeReadyFuture(result); } bool QtAndroidPrivate::registerPermissionNatives()