Android: Use androidSdkVersion() to get the API level.
Change-Id: Idc0b09ab2dc5d93e8da8dab3bd0e99e27fbc57e1 Reviewed-by: Yoann Lopes <yoann.lopes@digia.com>
This commit is contained in:
committed by
The Qt Project
parent
a241874a7f
commit
a8854cc549
@@ -47,6 +47,7 @@
|
||||
#include "qandroidmultimediautils.h"
|
||||
#include <qthread.h>
|
||||
#include <qmutex.h>
|
||||
#include <QtCore/private/qjnihelpers_p.h>
|
||||
|
||||
QT_BEGIN_NAMESPACE
|
||||
|
||||
@@ -230,8 +231,6 @@ class JCameraWorker : public QObject
|
||||
QSize m_previewSize;
|
||||
int m_rotation;
|
||||
|
||||
bool m_hasAPI14;
|
||||
|
||||
JCamera *q;
|
||||
|
||||
QThread *m_workerThread;
|
||||
@@ -616,7 +615,6 @@ JCameraWorker::JCameraWorker(JCamera *camera, int cameraId, jobject cam, QThread
|
||||
: QObject(0)
|
||||
, m_cameraId(cameraId)
|
||||
, m_rotation(0)
|
||||
, m_hasAPI14(false)
|
||||
, m_parametersMutex(QMutex::Recursive)
|
||||
, m_camera(cam)
|
||||
{
|
||||
@@ -638,23 +636,6 @@ JCameraWorker::JCameraWorker(JCamera *camera, int cameraId, jobject cam, QThread
|
||||
QJNIObjectPrivate params = m_camera.callObjectMethod("getParameters",
|
||||
"()Landroid/hardware/Camera$Parameters;");
|
||||
m_parameters = QJNIObjectPrivate(params);
|
||||
|
||||
// Check if API 14 is available
|
||||
QJNIEnvironmentPrivate env;
|
||||
jclass clazz = env->FindClass("android/hardware/Camera");
|
||||
if (env->ExceptionCheck()) {
|
||||
clazz = 0;
|
||||
env->ExceptionClear();
|
||||
}
|
||||
if (clazz) {
|
||||
// startFaceDetection() was added in API 14
|
||||
jmethodID id = env->GetMethodID(clazz, "startFaceDetection", "()V");
|
||||
if (env->ExceptionCheck()) {
|
||||
id = 0;
|
||||
env->ExceptionClear();
|
||||
}
|
||||
m_hasAPI14 = bool(id);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -881,9 +862,12 @@ void JCameraWorker::setFocusMode(const QString &value)
|
||||
|
||||
int JCameraWorker::getMaxNumFocusAreas()
|
||||
{
|
||||
if (QtAndroidPrivate::androidSdkVersion() < 14)
|
||||
return 0;
|
||||
|
||||
QMutexLocker parametersLocker(&m_parametersMutex);
|
||||
|
||||
if (!m_hasAPI14 || !m_parameters.isValid())
|
||||
if (!m_parameters.isValid())
|
||||
return 0;
|
||||
|
||||
return m_parameters.callMethod<jint>("getMaxNumFocusAreas");
|
||||
@@ -891,11 +875,14 @@ int JCameraWorker::getMaxNumFocusAreas()
|
||||
|
||||
QList<QRect> JCameraWorker::getFocusAreas()
|
||||
{
|
||||
QMutexLocker parametersLocker(&m_parametersMutex);
|
||||
|
||||
QList<QRect> areas;
|
||||
|
||||
if (m_hasAPI14 && m_parameters.isValid()) {
|
||||
if (QtAndroidPrivate::androidSdkVersion() < 14)
|
||||
return areas;
|
||||
|
||||
QMutexLocker parametersLocker(&m_parametersMutex);
|
||||
|
||||
if (m_parameters.isValid()) {
|
||||
QJNIObjectPrivate list = m_parameters.callObjectMethod("getFocusAreas",
|
||||
"()Ljava/util/List;");
|
||||
|
||||
@@ -916,9 +903,12 @@ QList<QRect> JCameraWorker::getFocusAreas()
|
||||
|
||||
void JCameraWorker::setFocusAreas(const QList<QRect> &areas)
|
||||
{
|
||||
if (QtAndroidPrivate::androidSdkVersion() < 14)
|
||||
return;
|
||||
|
||||
QMutexLocker parametersLocker(&m_parametersMutex);
|
||||
|
||||
if (!m_hasAPI14 || !m_parameters.isValid())
|
||||
if (!m_parameters.isValid())
|
||||
return;
|
||||
|
||||
QJNIObjectPrivate list;
|
||||
@@ -949,9 +939,12 @@ void JCameraWorker::autoFocus()
|
||||
|
||||
bool JCameraWorker::isAutoExposureLockSupported()
|
||||
{
|
||||
if (QtAndroidPrivate::androidSdkVersion() < 14)
|
||||
return false;
|
||||
|
||||
QMutexLocker parametersLocker(&m_parametersMutex);
|
||||
|
||||
if (!m_hasAPI14 || !m_parameters.isValid())
|
||||
if (!m_parameters.isValid())
|
||||
return false;
|
||||
|
||||
return m_parameters.callMethod<jboolean>("isAutoExposureLockSupported");
|
||||
@@ -959,9 +952,12 @@ bool JCameraWorker::isAutoExposureLockSupported()
|
||||
|
||||
bool JCameraWorker::getAutoExposureLock()
|
||||
{
|
||||
if (QtAndroidPrivate::androidSdkVersion() < 14)
|
||||
return false;
|
||||
|
||||
QMutexLocker parametersLocker(&m_parametersMutex);
|
||||
|
||||
if (!m_hasAPI14 || !m_parameters.isValid())
|
||||
if (!m_parameters.isValid())
|
||||
return false;
|
||||
|
||||
return m_parameters.callMethod<jboolean>("getAutoExposureLock");
|
||||
@@ -969,9 +965,12 @@ bool JCameraWorker::getAutoExposureLock()
|
||||
|
||||
void JCameraWorker::setAutoExposureLock(bool toggle)
|
||||
{
|
||||
if (QtAndroidPrivate::androidSdkVersion() < 14)
|
||||
return;
|
||||
|
||||
QMutexLocker parametersLocker(&m_parametersMutex);
|
||||
|
||||
if (!m_hasAPI14 || !m_parameters.isValid())
|
||||
if (!m_parameters.isValid())
|
||||
return;
|
||||
|
||||
m_parameters.callMethod<void>("setAutoExposureLock", "(Z)V", toggle);
|
||||
@@ -980,9 +979,12 @@ void JCameraWorker::setAutoExposureLock(bool toggle)
|
||||
|
||||
bool JCameraWorker::isAutoWhiteBalanceLockSupported()
|
||||
{
|
||||
if (QtAndroidPrivate::androidSdkVersion() < 14)
|
||||
return false;
|
||||
|
||||
QMutexLocker parametersLocker(&m_parametersMutex);
|
||||
|
||||
if (!m_hasAPI14 || !m_parameters.isValid())
|
||||
if (!m_parameters.isValid())
|
||||
return false;
|
||||
|
||||
return m_parameters.callMethod<jboolean>("isAutoWhiteBalanceLockSupported");
|
||||
@@ -990,9 +992,12 @@ bool JCameraWorker::isAutoWhiteBalanceLockSupported()
|
||||
|
||||
bool JCameraWorker::getAutoWhiteBalanceLock()
|
||||
{
|
||||
if (QtAndroidPrivate::androidSdkVersion() < 14)
|
||||
return false;
|
||||
|
||||
QMutexLocker parametersLocker(&m_parametersMutex);
|
||||
|
||||
if (!m_hasAPI14 || !m_parameters.isValid())
|
||||
if (!m_parameters.isValid())
|
||||
return false;
|
||||
|
||||
return m_parameters.callMethod<jboolean>("getAutoWhiteBalanceLock");
|
||||
@@ -1000,9 +1005,12 @@ bool JCameraWorker::getAutoWhiteBalanceLock()
|
||||
|
||||
void JCameraWorker::setAutoWhiteBalanceLock(bool toggle)
|
||||
{
|
||||
if (QtAndroidPrivate::androidSdkVersion() < 14)
|
||||
return;
|
||||
|
||||
QMutexLocker parametersLocker(&m_parametersMutex);
|
||||
|
||||
if (!m_hasAPI14 || !m_parameters.isValid())
|
||||
if (!m_parameters.isValid())
|
||||
return;
|
||||
|
||||
m_parameters.callMethod<void>("setAutoWhiteBalanceLock", "(Z)V", toggle);
|
||||
|
||||
Reference in New Issue
Block a user