summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristian Strømme <christian.stromme@digia.com>2014-04-03 11:17:30 +0200
committerThe Qt Project <gerrit-noreply@qt-project.org>2014-04-08 00:18:04 +0200
commita8854cc5490fee2093093bc4486930bafe2a936c (patch)
tree792bd8f0684cc8df180aa30c82adc9ad258fcccd
parenta241874a7f750039d68925d452abf7709c51fed2 (diff)
downloadqtmultimedia-a8854cc5490fee2093093bc4486930bafe2a936c.tar.gz
Android: Use androidSdkVersion() to get the API level.
Change-Id: Idc0b09ab2dc5d93e8da8dab3bd0e99e27fbc57e1 Reviewed-by: Yoann Lopes <yoann.lopes@digia.com>
-rw-r--r--src/plugins/android/src/wrappers/jcamera.cpp70
1 files changed, 39 insertions, 31 deletions
diff --git a/src/plugins/android/src/wrappers/jcamera.cpp b/src/plugins/android/src/wrappers/jcamera.cpp
index 874d12cdf..b0e9f89f3 100644
--- a/src/plugins/android/src/wrappers/jcamera.cpp
+++ b/src/plugins/android/src/wrappers/jcamera.cpp
@@ -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);