Android: stop making throwing promises

No Qt API throws exceptions, ever. Kill the throwing paths, leaving the
normal paths in which a permission request is denied.

Pick-to: 6.2
Change-Id: I6bebaf155c5232444bf5014e25e9c469d5dccfa6
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
Reviewed-by: Assam Boudjelthia <assam.boudjelthia@qt.io>
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
bb10
Giuseppe D'Angelo 2021-07-19 18:23:19 +02:00
parent 91cc4fd699
commit 21782bdc04
1 changed files with 1 additions and 25 deletions

View File

@ -53,12 +53,6 @@ QT_BEGIN_NAMESPACE
static const char qtNativeClassName[] = "org/qtproject/qt/android/QtNative";
#ifndef QT_NO_EXCEPTIONS
static const char emptyPermissionExcept[] = "The permission cannot be an empty string.";
static const char invalidNativePermissionExcept[] =
"Coudn't convert the provided permission type to a native Android permission string.";
#endif
QApplicationPermission::PermissionResult resultFromAndroid(jint value)
{
return value == 0 ? QApplicationPermission::Authorized : QApplicationPermission::Denied;
@ -208,11 +202,7 @@ QCoreApplicationPrivate::requestPermission(const QString &permission)
QPromise<QApplicationPermission::PermissionResult> promise;
QFuture<QApplicationPermission::PermissionResult> future = promise.future();
promise.start();
#ifndef QT_NO_EXCEPTIONS
promise.setException(std::make_exception_ptr(std::runtime_error(emptyPermissionExcept)));
#else
promise.addResult(QApplicationPermission::Denied);
#endif
promise.finish();
return future;
}
@ -251,12 +241,7 @@ QCoreApplicationPrivate::requestPermission(QApplicationPermission::PermissionTyp
return future;
}
#ifndef QT_NO_EXCEPTIONS
promise->setException(std::make_exception_ptr(
std::runtime_error(invalidNativePermissionExcept)));
#else
promise.addResult(QApplicationPermission::Denied);
#endif
promise->addResult(QApplicationPermission::Denied);
promise->finish();
return future;
}
@ -275,11 +260,7 @@ QCoreApplicationPrivate::checkPermission(const QString &permission)
QJniObject::fromString(permission).object());
promise.addResult(resultFromAndroid(res));
} else {
#ifndef QT_NO_EXCEPTIONS
promise.setException(std::make_exception_ptr(std::runtime_error(emptyPermissionExcept)));
#else
promise.addResult(QApplicationPermission::Denied);
#endif
}
promise.finish();
@ -297,12 +278,7 @@ QCoreApplicationPrivate::checkPermission(QApplicationPermission::PermissionType
QPromise<QApplicationPermission::PermissionResult> promise;
QFuture<QApplicationPermission::PermissionResult> future = promise.future();
promise.start();
#ifndef QT_NO_EXCEPTIONS
promise.setException(std::make_exception_ptr(
std::runtime_error(invalidNativePermissionExcept)));
#else
promise.addResult(QApplicationPermission::Denied);
#endif
promise.finish();
return future;
}