From 3fe920463b4c6a43f66a7b7c51d71184703d30ba Mon Sep 17 00:00:00 2001
From: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
Date: Mon, 23 Sep 2013 15:40:40 +0200
Subject: [PATCH] Add example of JNI API

This example adds a custom class to the project and calls into
it with JNI to set a notification message in the status area.

Change-Id: I74d7a87c0511b98608422788c1c282e9af57c074
Reviewed-by: Christian Stromme <christian.stromme@digia.com>
---
 examples/androidextras/androidextras.pro      |   5 +
 .../android-sources/AndroidManifest.xml       |  38 +++++++
 .../notification/NotificationClient.java      |  71 ++++++++++++
 .../notification/androidjnibindings.cpp       |  68 +++++++++++
 .../notification/androidjnibindings.h         |  61 ++++++++++
 .../notification/images/happy.png             | Bin 0 -> 2804 bytes
 .../androidextras/notification/images/sad.png | Bin 0 -> 2447 bytes
 examples/androidextras/notification/main.cpp  |  62 ++++++++++
 examples/androidextras/notification/main.qrc  |   7 ++
 .../notification/notification.pro             |  24 ++++
 .../notification/notificationclient.cpp       |  74 ++++++++++++
 .../notification/notificationclient.h         |  67 +++++++++++
 .../androidextras/notification/qml/main.qml   | 106 ++++++++++++++++++
 examples/examples.pro                         |   2 +
 src/androidextras/doc/images/notification.png | Bin 0 -> 26373 bytes
 .../doc/qtandroidextras.qdocconf              |   2 +-
 16 files changed, 586 insertions(+), 1 deletion(-)
 create mode 100644 examples/androidextras/androidextras.pro
 create mode 100644 examples/androidextras/notification/android-sources/AndroidManifest.xml
 create mode 100644 examples/androidextras/notification/android-sources/src/org/qtproject/example/notification/NotificationClient.java
 create mode 100644 examples/androidextras/notification/androidjnibindings.cpp
 create mode 100644 examples/androidextras/notification/androidjnibindings.h
 create mode 100644 examples/androidextras/notification/images/happy.png
 create mode 100644 examples/androidextras/notification/images/sad.png
 create mode 100644 examples/androidextras/notification/main.cpp
 create mode 100644 examples/androidextras/notification/main.qrc
 create mode 100644 examples/androidextras/notification/notification.pro
 create mode 100644 examples/androidextras/notification/notificationclient.cpp
 create mode 100644 examples/androidextras/notification/notificationclient.h
 create mode 100644 examples/androidextras/notification/qml/main.qml
 create mode 100644 examples/examples.pro
 create mode 100644 src/androidextras/doc/images/notification.png

diff --git a/examples/androidextras/androidextras.pro b/examples/androidextras/androidextras.pro
new file mode 100644
index 0000000..31640ad
--- /dev/null
+++ b/examples/androidextras/androidextras.pro
@@ -0,0 +1,5 @@
+TEMPLATE = subdirs
+android {
+    SUBDIRS += notification
+    EXAMPLE_FILES += notification
+}
diff --git a/examples/androidextras/notification/android-sources/AndroidManifest.xml b/examples/androidextras/notification/android-sources/AndroidManifest.xml
new file mode 100644
index 0000000..a7f10eb
--- /dev/null
+++ b/examples/androidextras/notification/android-sources/AndroidManifest.xml
@@ -0,0 +1,38 @@
+<?xml version='1.0' encoding='utf-8'?>
+<manifest android:versionCode="1" package="org.qtproject.example" xmlns:android="http://schemas.android.com/apk/res/android" android:versionName="1.0">
+    <application android:icon="@drawable/icon" android:name="org.qtproject.qt5.android.bindings.QtApplication" android:label="@string/app_name">
+        <activity android:name="org.qtproject.example.notification.NotificationClient" android:label="@string/app_name" android:screenOrientation="unspecified" android:configChanges="orientation|locale|fontScale|keyboard|keyboardHidden|navigation">
+            <intent-filter>
+                <action android:name="android.intent.action.MAIN"/>
+                <category android:name="android.intent.category.LAUNCHER"/>
+            </intent-filter>
+            <meta-data android:name="android.app.qt_sources_resource_id" android:resource="@array/qt_sources"/>
+            <meta-data android:name="android.app.repository" android:value="@string/repository"/>
+            <meta-data android:name="android.app.qt_libs_resource_id" android:resource="@array/qt_libs"/>
+            <meta-data android:name="android.app.bundled_libs_resource_id" android:resource="@array/bundled_libs"/>
+            <meta-data android:name="android.app.lib_name" android:value="@string/app_lib_name"/>
+            <!-- Deploy Qt libs as part of package -->
+            <meta-data android:name="android.app.bundle_local_qt_libs" android:value="1"/>
+            <meta-data android:name="android.app.bundled_in_lib_resource_id" android:resource="@array/bundled_in_lib"/>
+            <meta-data android:name="android.app.bundled_in_assets_resource_id" android:resource="@array/bundled_in_assets"/>
+            <!-- Run with local libs -->
+            <meta-data android:name="android.app.use_local_qt_libs" android:value="1"/>
+            <meta-data android:name="android.app.libs_prefix" android:value="/data/local/tmp/qt/"/>
+            <meta-data android:name="android.app.load_local_libs" android:value="@string/local_libs"/>
+            <meta-data android:name="android.app.load_local_jars" android:value="@string/local_jars"/>
+            <meta-data android:name="android.app.static_init_classes" android:value="@string/init_classes"/>
+            <!--  Messages maps -->
+            <meta-data android:name="android.app.ministro_not_found_msg" android:value="@string/ministro_not_found_msg"/>
+            <meta-data android:name="android.app.ministro_needed_msg" android:value="@string/ministro_needed_msg"/>
+            <meta-data android:name="android.app.fatal_error_msg" android:value="@string/fatal_error_msg"/>
+            <!--  Messages maps -->
+            <!-- Splash screen -->
+            <meta-data android:name="android.app.splash_screen" android:resource="@layout/splash"/>
+            <!-- Splash screen -->
+        </activity>
+    </application>
+    <!-- %%INSERT_USES_SDK%% -->
+    <supports-screens android:normalScreens="true" android:anyDensity="true" android:smallScreens="true" android:largeScreens="true"/>
+    <uses-permission android:name="android.permission.INTERNET"/>
+    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
+</manifest>
diff --git a/examples/androidextras/notification/android-sources/src/org/qtproject/example/notification/NotificationClient.java b/examples/androidextras/notification/android-sources/src/org/qtproject/example/notification/NotificationClient.java
new file mode 100644
index 0000000..9901fda
--- /dev/null
+++ b/examples/androidextras/notification/android-sources/src/org/qtproject/example/notification/NotificationClient.java
@@ -0,0 +1,71 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtWinExtras module of the Qt Toolkit.
+**
+** $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 Digia.  For licensing terms and
+** conditions see http://qt.digia.com/licensing.  For further information
+** use the contact form at http://qt.digia.com/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 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file.  Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights.  These rights are described in the Digia Qt 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 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file.  Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+package org.qtproject.example.notification;
+
+import android.app.Notification;
+import android.app.NotificationManager;
+import android.content.Context;
+
+public class NotificationClient extends org.qtproject.qt5.android.bindings.QtActivity
+{
+    private static NotificationManager m_notificationManager;
+    private static Notification.Builder m_builder;
+    private static NotificationClient m_instance;
+
+    public NotificationClient()
+    {
+        m_instance = this;
+    }
+
+    public static void notify(String s)
+    {
+        if (m_notificationManager == null) {
+            m_notificationManager = (NotificationManager)m_instance.getSystemService(Context.NOTIFICATION_SERVICE);
+            m_builder = new Notification.Builder(m_instance);
+            m_builder.setSmallIcon(R.drawable.icon);
+            m_builder.setContentTitle("A message from Qt!");
+        }
+
+        m_builder.setContentText(s);
+        m_notificationManager.notify(1, m_builder.build());
+    }
+}
diff --git a/examples/androidextras/notification/androidjnibindings.cpp b/examples/androidextras/notification/androidjnibindings.cpp
new file mode 100644
index 0000000..98280c2
--- /dev/null
+++ b/examples/androidextras/notification/androidjnibindings.cpp
@@ -0,0 +1,68 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtWinExtras module of the Qt Toolkit.
+**
+** $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 Digia.  For licensing terms and
+** conditions see http://qt.digia.com/licensing.  For further information
+** use the contact form at http://qt.digia.com/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 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file.  Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights.  These rights are described in the Digia Qt 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 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file.  Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include "androidjnibindings.h"
+
+jint JNICALL JNI_OnLoad(JavaVM *vm, void *)
+{
+    JNIEnv *env;
+    if (vm->GetEnv(reinterpret_cast<void **>(&env), JNI_VERSION_1_4) != JNI_OK) {
+        qFatal("Couldn't initialize environment!");
+        return -1;
+    }
+
+    AndroidJNIBindings::detectNotificationClientClass(env);
+
+    return JNI_VERSION_1_4;
+}
+
+jclass AndroidJNIBindings::m_notificationClientClass = 0;
+void AndroidJNIBindings::detectNotificationClientClass(JNIEnv *environment)
+{
+    jclass clazz = environment->FindClass("org/qtproject/example/notification/NotificationClient");
+    if (clazz == 0) {
+        environment->ExceptionDescribe();
+        environment->ExceptionClear();
+        return;
+    }
+
+    m_notificationClientClass = reinterpret_cast<jclass>(environment->NewGlobalRef(clazz));
+}
diff --git a/examples/androidextras/notification/androidjnibindings.h b/examples/androidextras/notification/androidjnibindings.h
new file mode 100644
index 0000000..64cca54
--- /dev/null
+++ b/examples/androidextras/notification/androidjnibindings.h
@@ -0,0 +1,61 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtWinExtras module of the Qt Toolkit.
+**
+** $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 Digia.  For licensing terms and
+** conditions see http://qt.digia.com/licensing.  For further information
+** use the contact form at http://qt.digia.com/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 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file.  Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights.  These rights are described in the Digia Qt 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 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file.  Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#ifndef ANDROIDJNIBINDINGS_H
+#define ANDROIDJNIBINDINGS_H
+
+#include <QtAndroidExtras/QJNIObject>
+
+class AndroidJNIBindings
+{
+public:
+    static jclass notificationClientClass()
+    {
+        return m_notificationClientClass;
+    }
+
+    static void detectNotificationClientClass(JNIEnv *environment);
+
+private:
+    static jclass m_notificationClientClass;
+};
+
+#endif // ANDROIDJNIBINDINGS_H
diff --git a/examples/androidextras/notification/images/happy.png b/examples/androidextras/notification/images/happy.png
new file mode 100644
index 0000000000000000000000000000000000000000..d1c146090dc00c4e90f38895afd71dbc44d93bff
GIT binary patch
literal 2804
zcmV<Q3Jdj#P)<h;3K|Lk000e1NJLTq003kF003kN0ssI2|9}Dm00001b5ch_0Itp)
z=>Px#32;bRa{vGf6951U69E94oEQKA00(qQO+^RY2^S3#C7FVs!2kdN8FWQhbVF}#
zZDnqB07G(RVRU6=Aa`kWXdp*PO;A^X4i^9b3Smh^K~#9!?VW#Y6W1NU-@Wt2mz?dy
zVB!!v35X&{XjhhkpjFp4Kti<fV<6Iim>~bGVWVmhn+j~J02LOXE2CAB2oV*Xh6W9)
zN-31zY@(`$pls4g0!<3>kNj|O@WnaDKhAe=e_Svj*!RP+O>FL~=*hl2zxVEw?|bk2
zzIX5YFoY0zGQxAbmkYZ>tc_(mSk}gd9bDMO@%=o{5E=`vF%z01f+!(~Nm)b*t})}#
z000C}POwzMLWpHqn?G=s@tq9>Zp4uTNtWxVh1ujBf+)c-A_HOZ$R7w?_j;RsgO?JR
zEtNCRV5lL<SrE(409Ys(yh-;TW_)LodJj6PIxn|QtDOM=mVU4h3i^B(d)-?Q;!@W}
zFg)MXKvDBCOq(9C5DE@3U*2<Xe}dic1k+Z%Zb>qbB@h;3eCJ)g8^PERbN*f(Rhig^
znHX51P<xMSJsa)>V@U{&rNF#DE9;rD0t+G5LpOTp17NI*F>jqQuRbAm#;9PiY=^UJ
zCC@WpYzu@sYvECXm^9ja;{GMWoVGg`jeSx80G?;;&P5D!`iW>3@9x{(?>z$2O>zyZ
zP2)Gkts;tH@yOrZQy<@CWh@9umQO5bjL+y-28-iqhjS^%^?`I293Nj~J%Pi#B*Nmj
z`!+{KDvk1_n)@Y1mvMYtQaX5!r!$5W001G*=BVI!I`Oc0<aaoiW(=taFNbp}kNk;+
z#dr7Ar+YsYqhsmo?x_cWPZ%tB-|qAs`y?e0xZ&>GofudQb2=UEDMixnJtEUy6&np%
zw!`jR1fC8lwtgi!ABqVJA-2Q*Gexr*ub1m|vMnuv&Q2BpV6hNoWu(PQ7z}t)?=vCg
zLa3Wmd_{b|t%-HQLpLfVb^hGIg$v%+mVndA0syR5qO^=$u)t7RrB5EOM3u|)jE8O<
zXM9sJtWc<3k=I42@!`XLtu2AbL8p@y{r~_;;+5EPJ@f$`RW0KGirT@W9@lzBmF{%1
z!vFU1Q>`t53m3edPBs~8mGE+VT<ZZq3Scq5^Gbc5EiHklHICG~CHC3TNW#ly!<~%p
zyj)la1>^9ecXke`eN=HeS)uDqyk;e#TvzW#go3hQ4KQDVr(R+~fFsl@zNc6g3t_d!
z9CWQ#!eU9vqxK|~d(XW+s&YL7%jdfoU!}{+$kH-0*4ffBvMl!5(Ma;jjf!G8EY$1X
z66b%|N-S7lh+1#K<gr+jqghESx7WSp@nI3)wr!j6DHy!z9cYd(YpoVqt%O03V;Bep
zk=M%$tzgbvYWZ?w@{H1CmW!yIS2dda=+hln@9#(X21i;?cODlVRc+4yOB7f<^55;4
zt&W2uWb&kI!yj$H2X39~Dw=5CuIo`cc(1ovMH8)oH;;sc5S!R{@-jwzgO?Cu1w=!z
zSk|U;i8)(jZIKiL0Q`ZgDwJ3vz!6di0APG)RVcAUfFq<306v2s-Xvl`yzu}L4>{he
z5)l^x5yyKW7j~&QBw&SILJC9bP$(q=q7Z9?EZd>tkg^^+gcPbqmV8qSvSEjcLjqRV
zA*5;tucU+L_<j|Kl<Ckfq!1~2o9pQm0TDuesIrhR5KGm{#`F~d5r$<$9OkMx#6>`a
z!(51K%qk8ESQ@jCLPArd;t&@B5uqu91W}^mkbp&$2q_%>!m_6T)+8Z?S*m79iGV1J
zC{a6jB^^8t4Jr;P)4?F55CBM$<>FUgx;Sv+3p#^wux!ltNJ+B%0U`(i06J=+cwTen
zQoq~S$#EznNpTzsg<{^C07pn603e&3Bc2^a!OANAnXfbR(Z-!SA&QDQM;71+DU8?=
z;<9etgty;v1_FGBkqQL(K_4&2$Qpu$VFZ;kPdwA-ev%CU_~cNgEu{P8P@iyX(VJAx
zJYj)~kPfMz!B8XNoq*tjzgqWx&}+AcGKQ4h9<o@oU~D(l2rTeHpFc}7>*{I)0HAJ-
zEi-z0jze{8Y{E^&9tvkgfd#Q_9aSx!yH<-e>?*X|LrqPY&={MV`hN3UlU9qx9tW#O
zL^OE#PH8asy|Zhjq&-qPtpxz^k7JW(&(29-QrE5xuByG;db^AuV#2Z(9@T1}jiOlq
z0IhZghT&3EO04NnF#upy?cJ^}Hcd%&b+M~z?=~GO79oXUxK=x3WXC=Hf_zhhWJwhj
z`sZh60{~um`3J8z{nq1qz1%A=|M2|G?1~D#$YuGahR0)X!AFhH`Ettp@S`Dr;gZF7
z{DbLadHDzVC5!J2zlGR#coY=yQQgx{Fm07A(rP7k>?{NTI31y7%hHCIe~@3c?2gkB
z+Of0HD!TGwf@y2iD0m}n483lNoPujt8t1-90RY<Df>o96G(FbaBTaKvmF?|q!MQI|
zwJVL{7srASWkEUPJ11w!Ax(3$%5OdNO#E|dadFm|H9qIP)+T(ueq(xGp4d2M&flw}
zs-j!w(d>&#LSvDvL0%qy^3;^b*LknCeRE|j1|Iw73KJo9^3)V@QiR5$qbg%gW1^~C
zfqB22dX$!u2b+o`U+dP|-rwUA@eQTkOZEO9SKZp7cd8CH6_=Jutf(t6?-vO`88fcK
zeb2`-7vMKHd$w%qdg#;0hMyguELp8&OKWT3^%Zyh{-MFAVRvCojYL;v%v&cOsvt2z
zFpeC#zxCbj;YZf29ryNz{M=kT^_cqmxexdC{_WHIkt5sRo49)QI4MtobP$Y$g;#0*
z%(G>4*NB6Edbgmq)|j1>qSsISgZ!~$o*nP?3_sYgtFY#EqvUT#6<%d%WMode?!6<k
zt`{#1)W2bW{P?EL=9(H~o-v79MtivCX3y?jBVWvGJXkz`fnM_G<_UXrx}Qs4CLPAk
z-Pa&L&{1n^VDT@0jCyL}Lc_1$Fg^PmsnH}Xgl{;EzW-mK>7e`U*(fgWlc%Q0={j=_
zt4-r&t#_6a^N;WBu9LqCgQmH+-gJEXtuNLEH8sYizsxP0LB_q()a&J1ZU#<#(cj$c
ziF(0HFHs+TTqJHKJn&eRTP7Zs8KF*AfJ7eo?T%_i!P$-<r#HVN5q1Q}vE|G2=FH8R
zI+e^fYjir8m4!iwVOV640X&aFA;d6zuPfZv7P$KF!OuUZ#l4Ta_E=V|kQFHs$Hx~J
zosl1gQ*Ja#j;C$*R~3c*>ve_y_=m2`mj_Zd4pvm?cmBCB->i{!=NMj6{4YfTIFlZF
z^S}S`Z`j~;I+E+Tw-#mX+h?8mQ`tHaSLn?Y1$F)IyTR?-x?650K73Ev407wXi7&jM
zz-^m~pstbrEADW?c6;d9QBUImcS11LuQS!IG%B6Fr!HJ@gxF{TQF9z>YYUz~H*n<d
z_ucNWqTiZKn$^D=S6QW>I#r9~icOGI2cnM8UKO#qySmu+AA`4V1#aI8+H9eo9+sv#
z9LMx}SWrNelw?htuAMfWd}fNau#gzdWI(3nnG{&y=?k8(Zp)BDSc0e<ekfKlbt@UA
zty0~jNI5cf`zyuJ)Q#1Yo3QGZeeu~D>SmB}DqPxaGx~qIvc33pvjoTh0000<MNUMn
GLSTY_em*t;

literal 0
HcmV?d00001

diff --git a/examples/androidextras/notification/images/sad.png b/examples/androidextras/notification/images/sad.png
new file mode 100644
index 0000000000000000000000000000000000000000..00026bd23bcf64bda06d1ae4196bb8321bef4e29
GIT binary patch
literal 2447
zcmV;A32^p_P)<h;3K|Lk000e1NJLTq003kF003kN1^@s6aN?Cz00001b5ch_0Itp)
z=>Px#32;bRa{vGf6951U69E94oEQKA00(qQO+^RY2^S3%CRWjD{Qv*}8FWQhbVF}#
zZDnqB07G(RVRU6=Aa`kWXdp*PO;A^X4i^9b2>eMzK~#9!?VV3-Q^_62zwgf^&-lf0
zAc+IE<CIc$2|ZNlR-9JV@@I)w6izFx#Dz;0R=cOwsud@+C&a4ahPqKNxvYf5X=#N*
zfkoAxP$}x6393qI96OshB#mR9v7PaI(?jx1AddgNzmDfCMI$B7^KX8iH*bD3Z)Sc1
zV~oMqGN2nd=;aJHXcCmpfzl*sIR(9(fo`nBFf<T33Q3ND$Z-&o03jpjA_+)x1d<p6
zAfg>4_zehS6qF`WC_aLgzl&n=i7nSvlrgBmGYBZhK}Z6EKsb<H+W;$|SbU6J?iTW|
zzH{X}gZoY(6#58?@-9Rnz<~e^rP2(t>r>G3)1Ep(4UQw+dlB8;#{dYO1%$B@^7#i?
zUbzg$bbmcA1PO!vR}l=JgdlY9Z6J)5@KU>t7b{=3Mdv!ue+512IoH9s0E9uy-$Q2k
zbF`x(gV&)3PrLRga}>zN#xpEsJ_Ri=pq)kJD25_8(A9OMJ%KPrv6h|0TJ~$~CG~|b
zp)Wk)Xvl0k5K8Be{^4U7hK9W;QB)B-bQ6S(ICFhFFQ#dCFrPlVXJG(<VQ837pM|E~
z@pB6?u(Em$>$z{xN$L$<K>vZ?*?M1F24b)R7MCV$o8o9UDasfQ4o%uN+P4HmH?l~j
z&qLQ&(aDme1Bl1Ig(QZ(1ETByLo)Tg??&5Rj`9=nhmfTG?sw|Ck>xOUg!(#?srR89
zS$BaLtbkPdJcqFhlvMgW3|4Rph=IkWiH`3xYCp<XvA8q=z;GVO%IdX_ji#DWvG@cl
ztJj<bqG@+JZk%C7>$z`Q8ay@>Wl=hZ`Se-t<rXv?`*Ty%EOmh}Mlm=4o~7xKTu#SA
znqqdgh=m0T0Ek8jMn@GyV+5g)<f+q~v`-XOj0}I@@PwpX?*nVuNy{+q{pBU@-_POc
zY!T`7W`$!hf}^7fPMr$j^ankjL2=qX!_csnoy7jW&#VL4*m!1X3f-*i)YK}T&KBSJ
zTRKfEKL9*|;+B1D*{`7n#~XT|QlnF6Sjv2Aslp3sTDkLf)6>}^?%&U0VXNY9%1!$=
zeaTt}qUG;de$zKQTdY~x?UkNw;B$7%P5Wqh0b2fEYd{z)+42s2Vc~U?ucdUFRytEx
zTZqf{WtKk&W2NSSywq;<c-0}*^Q~B|b=b93CmJP)#p;K9u^2%#>i*JBFYJ4<@@36d
zvI9sy|G>5ikB%xhI;zzD+|f}5qYZq{Zh2*2Egy?-M^?)#m+iX)V+5y8g=$vXjP;{2
z4_b&v_HFu@)gOnHN;9@jtA|1oPJhq?0KOa;dSxGDI!dJ(ba(%(_S8vc`3pxDK6moe
z$!=1E<A@CYes>@SE8xF#zvN+%i~7;X-*zmHsPrMl;$!Y1msQQ@;_GI6i+jlRN9C>R
zKp3O0?Ofv87XH5a4vbNl3@Sh<O>*yeB-8h1DFQ&D_=tPPBbmN8OA!FH{9W!Dk7WAZ
zEJeWJD@i<!w4UHK0|TON<hWNnmdQXjauD@$hI_<oAX^Odat7iCkFY$K$zX#fAyPWW
zJ>q%jJ69=1J_hmESVW}d6!(bNK(-jra*B8AzU$O=W1V}%^RRclQi{yN<`OP@WHMl^
z&?d*Mb&y2CM~8QHs!Rrg5P&F&z1$-n%VZ#ly$~fi!ad?OkSzw19DzvWIQNLhG8qs#
z4v~-q_lVa(wipnSfaugQLtM=O8L5<F7jGe+%Vf|+5|H;wr+)s||G~^m5t1a}op-wN
z?Vo<!mYur1c?@@Z=)r@RnE1_n?P&;|VP>X?BZp_I{(bU~!#H`e$7f-0s8Y&+2t^t5
z?R)jz9NVhi2KwyzF~@ADl!1`ir<p3s7)%C$xVidW4W98G5W7Lt`yMC2l*{#jsKGOD
zlrjJWl;a%-!VNHiK>evg)Awd6Z;yjJ5rms9rrsE&0z?o9g8NQ*vc9(&5RxR|U;iGp
z{GC7j$t-l8c@8GH??mOujY?_m4|!Gi9*aw#_zs2}cWOO5oU-BI&>yfb@ZKB0^JK%0
zR}Qdho85NR+^{1G0jR-o&nxUDjCwZM+0UuL@v2A5zOl!!RQe~<KYZ*u46h+HYqK5p
z#tz-Azv&ZTcs}=YM-I4js$yP&v0}R*NH{$54^&Hm@m8QLV6gwH<CO^n#I}NA0@yyT
zu=4oY^l|k8<Bk*M7%SoV+%J52XZf+Uv{IkLBY)pDbC0;QIdx;8{|blEU=-MFOBv|D
zQZtQG)v<k#dXB?z2ueNQiq$)vZbSyJJ03>v1t`tbEi!n$Zj!MYr;;+vr^Z`4RnG1C
zpmq?EqZp1)qh4~c8q<*ih9WmO44bs+%let#YR(ULbsa%p_!9S~MfHU*HJsti)`OIJ
z>!@<aH+hh9-8U$LKoC20lf$quMbb=~y@po56EcFxz*kL$f?Pmk;H#$7>ovR`K~+CQ
zZ|DMt(V%)m7oe&iHvNB1=AbgLuy~Q5{7^@VGKT2EDYTMNs_CR)1}k7bHO{l_>>^1z
zfZ_Ob%W3pl%F?DAStRFw#q&_@2!JFchW~0QeO^mj+9WZIMEoHHLE;p)!-zk$oXb#b
zy=m^>yc?tg{4pgR*z(1G%h$5B=~EKJ7>-YGEraab4tzL1ZA+F<%Rqq5#SzhiQ#C{4
zy&T#`4^G*Z2e;);eK%>^9b{howqpi;t&B5V1p@E{_r3!HY)(k7WhX7=ukxe%!k5q&
zo@i=r$`?RPZEQTlQsxuT@?u+qAaWE#ksA$9q5BrdR(pY#zh_GdB~SW_!Rt_ir_spE
zr8WU#KE_ITsol0Mdymr^=)Zy<^<3R|;B5<JJD7a_0hU)T`)=w*5F`xtUqvu@(sdA?
z0ond2E0t!DU7vC!XGt?sgX0MIUPO2IG1neVJ_Pbw1}mUge2iS~mTQ}ag8NP&6#58?
z@~*7|yFCHq?U0$$Bnrhx(DHX}d-tL!V^D)<5KxYTkc6Y5>z)EqrTsuRa?r~eY|tbq
zodcyw&~gfTIRo8Thhb<Saukvr0g>Y%BmqK3&_xoE<jB@O@b);X?f-xD(nUGr?ZN;6
N002ovPDHLkV1j3=mi7Pu

literal 0
HcmV?d00001

diff --git a/examples/androidextras/notification/main.cpp b/examples/androidextras/notification/main.cpp
new file mode 100644
index 0000000..8ed8d30
--- /dev/null
+++ b/examples/androidextras/notification/main.cpp
@@ -0,0 +1,62 @@
+
+/****************************************************************************
+**
+** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtWinExtras module of the Qt Toolkit.
+**
+** $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 Digia.  For licensing terms and
+** conditions see http://qt.digia.com/licensing.  For further information
+** use the contact form at http://qt.digia.com/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 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file.  Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights.  These rights are described in the Digia Qt 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 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file.  Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include <QtGui>
+#include <QtQuick>
+
+#include "notificationclient.h"
+
+int main(int argc, char **argv)
+{
+    QGuiApplication app(argc, argv);
+
+    QQuickView view;
+
+    NotificationClient *notificationClient = new NotificationClient(&view);
+    view.engine()->rootContext()->setContextProperty(QLatin1String("notificationClient"),
+                                                     notificationClient);
+    view.setResizeMode(QQuickView::SizeRootObjectToView);
+    view.setSource(QUrl(QStringLiteral("qrc:/qml/main.qml")));
+    view.show();
+
+    return app.exec();
+}
diff --git a/examples/androidextras/notification/main.qrc b/examples/androidextras/notification/main.qrc
new file mode 100644
index 0000000..10190c9
--- /dev/null
+++ b/examples/androidextras/notification/main.qrc
@@ -0,0 +1,7 @@
+<RCC>
+    <qresource prefix="/">
+        <file>qml/main.qml</file>
+        <file>images/happy.png</file>
+        <file>images/sad.png</file>
+    </qresource>
+</RCC>
diff --git a/examples/androidextras/notification/notification.pro b/examples/androidextras/notification/notification.pro
new file mode 100644
index 0000000..9d57ca3
--- /dev/null
+++ b/examples/androidextras/notification/notification.pro
@@ -0,0 +1,24 @@
+QT += quick androidextras
+
+ANDROID_PACKAGE_SOURCE_DIR = $$PWD/android-sources
+ANDROID_PACKAGE = org.qtproject.example.notification
+ANDROID_MINIMUM_VERSION = 16
+ANDROID_TARGET_VERSION = 16
+ANDROID_APP_NAME = Qt Notifier
+
+SOURCES += \
+    main.cpp \
+    notificationclient.cpp \
+    androidjnibindings.cpp
+
+OTHER_FILES += \
+    qml/main.qml \
+    android-sources/src/org/qtproject/example/notification/NotificationClient.java \
+    android-sources/AndroidManifest.xml
+
+RESOURCES += \
+    main.qrc
+
+HEADERS += \
+    notificationclient.h \
+    androidjnibindings.h
diff --git a/examples/androidextras/notification/notificationclient.cpp b/examples/androidextras/notification/notificationclient.cpp
new file mode 100644
index 0000000..d9cbf84
--- /dev/null
+++ b/examples/androidextras/notification/notificationclient.cpp
@@ -0,0 +1,74 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtWinExtras module of the Qt Toolkit.
+**
+** $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 Digia.  For licensing terms and
+** conditions see http://qt.digia.com/licensing.  For further information
+** use the contact form at http://qt.digia.com/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 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file.  Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights.  These rights are described in the Digia Qt 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 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file.  Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include "notificationclient.h"
+#include "androidjnibindings.h"
+
+#include <QtAndroidExtras/QJNIObject>
+
+NotificationClient::NotificationClient(QObject *parent)
+    : QObject(parent)
+{
+    connect(this, SIGNAL(notificationChanged()), this, SLOT(updateAndroidNotification()));
+}
+
+void NotificationClient::setNotification(const QString &notification)
+{
+    if (m_notification == notification)
+        return;
+
+    m_notification = notification;
+    emit notificationChanged();
+}
+
+QString NotificationClient::notification() const
+{
+    return m_notification;
+}
+
+void NotificationClient::updateAndroidNotification()
+{
+    QJNIObject javaNotification = QJNIObject::fromString(m_notification);
+    QJNIObject::callStaticMethod<void>(AndroidJNIBindings::notificationClientClass(),
+                                       "notify",
+                                       "(Ljava/lang/String;)V",
+                                       javaNotification.object<jstring>());
+}
diff --git a/examples/androidextras/notification/notificationclient.h b/examples/androidextras/notification/notificationclient.h
new file mode 100644
index 0000000..6b48fc7
--- /dev/null
+++ b/examples/androidextras/notification/notificationclient.h
@@ -0,0 +1,67 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtWinExtras module of the Qt Toolkit.
+**
+** $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 Digia.  For licensing terms and
+** conditions see http://qt.digia.com/licensing.  For further information
+** use the contact form at http://qt.digia.com/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 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file.  Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights.  These rights are described in the Digia Qt 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 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file.  Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#ifndef NOTIFICATIONCLIENT_H
+#define NOTIFICATIONCLIENT_H
+
+#include <QObject>
+
+class NotificationClient : public QObject
+{
+    Q_OBJECT
+    Q_PROPERTY(QString notification READ notification WRITE setNotification NOTIFY notificationChanged)
+public:
+    explicit NotificationClient(QObject *parent = 0);
+
+    void setNotification(const QString &notification);
+    QString notification() const;
+
+signals:
+    void notificationChanged();
+
+private slots:
+    void updateAndroidNotification();
+
+private:
+    QString m_notification;
+};
+
+#endif // NOTIFICATIONCLIENT_H
diff --git a/examples/androidextras/notification/qml/main.qml b/examples/androidextras/notification/qml/main.qml
new file mode 100644
index 0000000..e265f1b
--- /dev/null
+++ b/examples/androidextras/notification/qml/main.qml
@@ -0,0 +1,106 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtWinExtras module of the Qt Toolkit.
+**
+** $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 Digia.  For licensing terms and
+** conditions see http://qt.digia.com/licensing.  For further information
+** use the contact form at http://qt.digia.com/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 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file.  Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights.  These rights are described in the Digia Qt 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 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file.  Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick 2.0
+
+Rectangle {
+    width: 500
+    height: 500
+    color: "white"
+
+    Column {
+        anchors.fill: parent
+        spacing: (height - happyButton.height - sadButton.height - title.height) / 3
+
+        Text {
+            id: title
+            color: "black"
+            font.pixelSize: parent.width / 20
+            text: "How are you feeling?"
+            width: parent.width
+            horizontalAlignment: Text.AlignHCenter
+        }
+
+        Image {
+            id: happyButton
+            height: parent.height / 5
+            fillMode: Image.PreserveAspectFit
+            source: "../images/happy.png"
+            anchors.horizontalCenter: parent.horizontalCenter
+            smooth: true
+
+            Behavior on scale {
+                PropertyAnimation {
+                    duration: 100
+                }
+            }
+
+            MouseArea {
+                anchors.fill: parent
+                onClicked: notificationClient.notification = "User is happy!"
+                onPressed: happyButton.scale = 0.9
+                onReleased: happyButton.scale = 1.0
+            }
+        }
+
+        Image {
+            id: sadButton
+            height: parent.height / 5
+            fillMode: Image.PreserveAspectFit
+            source: "../images/sad.png"
+            anchors.horizontalCenter: parent.horizontalCenter
+            smooth: true
+
+            Behavior on scale {
+                PropertyAnimation {
+                    duration: 100
+                }
+            }
+
+            MouseArea {
+                anchors.fill: parent
+                onClicked: notificationClient.notification = "User is sad :("
+                onPressed: sadButton.scale = 0.9
+                onReleased: sadButton.scale = 1.0
+            }
+        }
+    }
+}
diff --git a/examples/examples.pro b/examples/examples.pro
new file mode 100644
index 0000000..467ccc4
--- /dev/null
+++ b/examples/examples.pro
@@ -0,0 +1,2 @@
+TEMPLATE = subdirs
+android:SUBDIRS += androidextras
diff --git a/src/androidextras/doc/images/notification.png b/src/androidextras/doc/images/notification.png
new file mode 100644
index 0000000000000000000000000000000000000000..4ba7818cc26485aaa57a9adfb229f8fc17fd9200
GIT binary patch
literal 26373
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
Bwv_+?

literal 0
HcmV?d00001

diff --git a/src/androidextras/doc/qtandroidextras.qdocconf b/src/androidextras/doc/qtandroidextras.qdocconf
index 9e123bb..02e5390 100644
--- a/src/androidextras/doc/qtandroidextras.qdocconf
+++ b/src/androidextras/doc/qtandroidextras.qdocconf
@@ -29,7 +29,7 @@ tagfile = ../../../doc/qtandroidextras/qtandroidextras.tags
 depends += qtcore
 headerdirs += ..
 sourcedirs += ..
-exampledirs += ../../../examples/qtandroidextras \
+exampledirs += ../../../examples/androidextras \
                ../ \
                snippets
 
-- 
GitLab