aboutsummaryrefslogtreecommitdiffstats
path: root/src/androidextras/android/qandroidfunctions.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/androidextras/android/qandroidfunctions.cpp')
-rw-r--r--src/androidextras/android/qandroidfunctions.cpp108
1 files changed, 93 insertions, 15 deletions
diff --git a/src/androidextras/android/qandroidfunctions.cpp b/src/androidextras/android/qandroidfunctions.cpp
index 9158a05..5b7f12f 100644
--- a/src/androidextras/android/qandroidfunctions.cpp
+++ b/src/androidextras/android/qandroidfunctions.cpp
@@ -1,31 +1,37 @@
/****************************************************************************
**
-** Copyright (C) 2015 The Qt Company Ltd.
-** Contact: http://www.qt.io/licensing/
+** Copyright (C) 2016 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
**
** This file is part of the Qt Toolkit.
**
-** $QT_BEGIN_LICENSE:LGPL21$
+** $QT_BEGIN_LICENSE:LGPL$
** Commercial License Usage
** Licensees holding valid commercial Qt licenses may use this file in
** accordance with the commercial license agreement provided with the
** Software or, alternatively, in accordance with the terms contained in
** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see http://www.qt.io/terms-conditions. For further
-** information use the contact form at http://www.qt.io/contact-us.
+** and conditions see https://www.qt.io/terms-conditions. For further
+** information use the contact form at https://www.qt.io/contact-us.
**
** GNU Lesser General Public License Usage
** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 or version 3 as published by the Free
-** Software Foundation and appearing in the file LICENSE.LGPLv21 and
-** LICENSE.LGPLv3 included in the packaging of this file. Please review the
-** following information to ensure the GNU Lesser General Public License
-** requirements will be met: https://www.gnu.org/licenses/lgpl.html and
-** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
**
-** As a special exception, The Qt Company gives you certain additional
-** rights. These rights are described in The Qt Company LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or (at your option) the GNU General
+** Public license version 3 or any later version approved by the KDE Free
+** Qt Foundation. The licenses are as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
+** included in the packaging of this file. Please review the following
+** information to ensure the GNU General Public License requirements will
+** be met: https://www.gnu.org/licenses/gpl-2.0.html and
+** https://www.gnu.org/licenses/gpl-3.0.html.
**
** $QT_END_LICENSE$
**
@@ -35,6 +41,7 @@
#include "qandroidactivityresultreceiver.h"
#include "qandroidactivityresultreceiver_p.h"
+#include <QtCore/private/qjni_p.h>
#include <QtCore/private/qjnihelpers_p.h>
QT_BEGIN_NAMESPACE
@@ -53,7 +60,7 @@ QT_BEGIN_NAMESPACE
Returns a handle to this applications main Activity
- \sa QAndroidJniObject
+ \sa QAndroidJniObject, androidService()
*/
QAndroidJniObject QtAndroid::androidActivity()
{
@@ -61,6 +68,19 @@ QAndroidJniObject QtAndroid::androidActivity()
}
/*!
+ \since 5.7
+ \fn QAndroidJniObject QtAndroid::androidService()
+
+ Returns a handle to this applications main Service
+
+ \sa QAndroidJniObject, androidActivity()
+*/
+QAndroidJniObject QtAndroid::androidService()
+{
+ return QtAndroidPrivate::service();
+}
+
+/*!
\since 5.3
\fn int QtAndroid::androidSdkVersion()
@@ -145,4 +165,62 @@ void QtAndroid::startIntentSender(const QAndroidJniObject &intentSender,
}
+/*!
+ \since 5.7
+ \fn void QtAndroid::runOnAndroidThread(const Runnable &runnable)
+
+ Posts the given \a runnable on the android thread.
+ The \a runnable will be queued and executed on the Android UI thread, unless it called on the
+ Android UI thread, in which case the runnable will be executed immediately.
+
+ This function is useful to set asynchronously properties of objects that must be set on on Android UI thread.
+*/
+void QtAndroid::runOnAndroidThread(const QtAndroid::Runnable &runnable)
+{
+ QtAndroidPrivate::runOnAndroidThread(runnable, QJNIEnvironmentPrivate());
+}
+
+/*!
+ \since 5.7
+ \fn void QtAndroid::runOnAndroidThreadSync(const Runnable &runnable, int timeoutMs)
+
+ Posts the \a runnable on the Android UI thread and waits until the runnable is executed,
+ or until \a timeoutMs has passed
+
+ This function is useful to create objects, or get properties on Android UI thread:
+
+ \code
+ QAndroidJniObject javaControl;
+ QtAndroid::runOnAndroidThreadSync([&javaControl](){
+
+ // create our Java control on Android UI thread.
+ javaControl = QAndroidJniObject("android/webkit/WebView",
+ "(Landroid/content/Context;)V",
+ QtAndroid::androidActivity().object<jobject>());
+ javaControl.callMethod<void>("setWebViewClient",
+ "(Landroid/webkit/WebViewClient;)V",
+ QAndroidJniObject("android/webkit/WebViewClient").object());
+ });
+
+ // Continue the execution normally
+ qDebug() << javaControl.isValid();
+ \endcode
+*/
+void QtAndroid::runOnAndroidThreadSync(const QtAndroid::Runnable &runnable, int timeoutMs)
+{
+ QtAndroidPrivate::runOnAndroidThreadSync(runnable, QJNIEnvironmentPrivate(), timeoutMs);
+}
+
+
+/*!
+ \since 5.7
+ \fn void QtAndroid::hideSplashScreen()
+
+ Hides the splash screen.
+*/
+void QtAndroid::hideSplashScreen()
+{
+ QtAndroidPrivate::hideSplashScreen(QJNIEnvironmentPrivate());
+}
+
QT_END_NAMESPACE