From e4b96e823eeb0d888ef85981cc7e16cdd1577096 Mon Sep 17 00:00:00 2001 From: Akira Ohgaki <akiraohgaki@gmail.com> Date: Wed, 26 Oct 2016 06:11:19 +0900 Subject: [PATCH] Import qt-libs --- src/libs/utils/android.cpp | 38 ++++++++++++++++++++++++++++++++++++++ src/libs/utils/android.h | 28 ++++++++++++++++++++++++++++ src/libs/utils/config.cpp | 11 +++++++++++ src/libs/utils/config.h | 16 ++++++++++++---- src/libs/utils/file.cpp | 11 +++++++++++ src/libs/utils/file.h | 16 ++++++++++++---- src/libs/utils/json.cpp | 11 +++++++++++ src/libs/utils/json.h | 16 ++++++++++++---- src/libs/utils/network.cpp | 11 +++++++++++ src/libs/utils/network.h | 16 ++++++++++++---- src/libs/utils/package.cpp | 11 +++++++++++ src/libs/utils/package.h | 16 ++++++++++++---- 12 files changed, 181 insertions(+), 20 deletions(-) create mode 100644 src/libs/utils/android.cpp create mode 100644 src/libs/utils/android.h diff --git a/src/libs/utils/android.cpp b/src/libs/utils/android.cpp new file mode 100644 index 0000000..9cca280 --- /dev/null +++ b/src/libs/utils/android.cpp @@ -0,0 +1,38 @@ +/** + * A library for Qt app + * + * LICENSE: The GNU Lesser General Public License, version 3.0 + * + * @author Akira Ohgaki <akiraohgaki@gmail.com> + * @copyright Akira Ohgaki + * @license https://opensource.org/licenses/LGPL-3.0 The GNU Lesser General Public License, version 3.0 + * @link https://github.com/akiraohgaki/qt-libs + */ + +#include "android.h" + +#include <QAndroidJniObject> + +namespace utils { + +Android::Android(QObject *parent) : QObject(parent) +{} + +bool Android::openApk(const QString &uri) +{ + QAndroidJniObject activity = QAndroidJniObject::callStaticObjectMethod("org/qtproject/qt5/android/QtNative", "activity", "()Landroid/app/Activity;"); + if (activity.isValid()) { + QAndroidJniObject fileUri = QAndroidJniObject::fromString(uri); + QAndroidJniObject parsedUri = QAndroidJniObject::callStaticObjectMethod("android/net/Uri", "parse", "(Ljava/lang/String;)Landroid/net/Uri;", fileUri.object()); + QAndroidJniObject mimeType = QAndroidJniObject::fromString("application/vnd.android.package-archive"); + QAndroidJniObject activityKind = QAndroidJniObject::fromString("android.intent.action.VIEW"); + QAndroidJniObject intent("android/content/Intent", "(Ljava/lang/String;)V", activityKind.object()); + intent = intent.callObjectMethod("setDataAndType", "(Landroid/net/Uri;Ljava/lang/String;)Landroid/content/Intent;", parsedUri.object(), mimeType.object()); + intent = intent.callObjectMethod("setFlags", "(I)Landroid/content/Intent;", 0x10000000); // 0x10000000 = FLAG_ACTIVITY_NEW_TASK + activity.callObjectMethod("startActivity", "(Landroid/content/Intent;)V", intent.object()); + return true; + } + return false; +} + +} // namespace utils diff --git a/src/libs/utils/android.h b/src/libs/utils/android.h new file mode 100644 index 0000000..bbbccd3 --- /dev/null +++ b/src/libs/utils/android.h @@ -0,0 +1,28 @@ +/** + * A library for Qt app + * + * LICENSE: The GNU Lesser General Public License, version 3.0 + * + * @author Akira Ohgaki <akiraohgaki@gmail.com> + * @copyright Akira Ohgaki + * @license https://opensource.org/licenses/LGPL-3.0 The GNU Lesser General Public License, version 3.0 + * @link https://github.com/akiraohgaki/qt-libs + */ + +#pragma once + +#include <QObject> + +namespace utils { + +class Android : public QObject +{ + Q_OBJECT + +public: + explicit Android(QObject *parent = 0); + + static bool openApk(const QString &uri); +}; + +} // namespace utils diff --git a/src/libs/utils/config.cpp b/src/libs/utils/config.cpp index 6da4ada..13b1018 100644 --- a/src/libs/utils/config.cpp +++ b/src/libs/utils/config.cpp @@ -1,3 +1,14 @@ +/** + * A library for Qt app + * + * LICENSE: The GNU Lesser General Public License, version 3.0 + * + * @author Akira Ohgaki <akiraohgaki@gmail.com> + * @copyright Akira Ohgaki + * @license https://opensource.org/licenses/LGPL-3.0 The GNU Lesser General Public License, version 3.0 + * @link https://github.com/akiraohgaki/qt-libs + */ + #include "config.h" #include "file.h" diff --git a/src/libs/utils/config.h b/src/libs/utils/config.h index 02a3f67..9949407 100644 --- a/src/libs/utils/config.h +++ b/src/libs/utils/config.h @@ -1,5 +1,15 @@ -#ifndef UTILS_CONFIG_H -#define UTILS_CONFIG_H +/** + * A library for Qt app + * + * LICENSE: The GNU Lesser General Public License, version 3.0 + * + * @author Akira Ohgaki <akiraohgaki@gmail.com> + * @copyright Akira Ohgaki + * @license https://opensource.org/licenses/LGPL-3.0 The GNU Lesser General Public License, version 3.0 + * @link https://github.com/akiraohgaki/qt-libs + */ + +#pragma once #include <QObject> #include <QJsonObject> @@ -22,5 +32,3 @@ private: }; } // namespace utils - -#endif // UTILS_CONFIG_H diff --git a/src/libs/utils/file.cpp b/src/libs/utils/file.cpp index 0548269..04195c3 100644 --- a/src/libs/utils/file.cpp +++ b/src/libs/utils/file.cpp @@ -1,3 +1,14 @@ +/** + * A library for Qt app + * + * LICENSE: The GNU Lesser General Public License, version 3.0 + * + * @author Akira Ohgaki <akiraohgaki@gmail.com> + * @copyright Akira Ohgaki + * @license https://opensource.org/licenses/LGPL-3.0 The GNU Lesser General Public License, version 3.0 + * @link https://github.com/akiraohgaki/qt-libs + */ + #include "file.h" #include <QIODevice> diff --git a/src/libs/utils/file.h b/src/libs/utils/file.h index 6fbfa91..01cf4d6 100644 --- a/src/libs/utils/file.h +++ b/src/libs/utils/file.h @@ -1,5 +1,15 @@ -#ifndef UTILS_FILE_H -#define UTILS_FILE_H +/** + * A library for Qt app + * + * LICENSE: The GNU Lesser General Public License, version 3.0 + * + * @author Akira Ohgaki <akiraohgaki@gmail.com> + * @copyright Akira Ohgaki + * @license https://opensource.org/licenses/LGPL-3.0 The GNU Lesser General Public License, version 3.0 + * @link https://github.com/akiraohgaki/qt-libs + */ + +#pragma once #include <QObject> @@ -34,5 +44,3 @@ public: }; } // namespace utils - -#endif // UTILS_FILE_H diff --git a/src/libs/utils/json.cpp b/src/libs/utils/json.cpp index 027405b..1573c84 100644 --- a/src/libs/utils/json.cpp +++ b/src/libs/utils/json.cpp @@ -1,3 +1,14 @@ +/** + * A library for Qt app + * + * LICENSE: The GNU Lesser General Public License, version 3.0 + * + * @author Akira Ohgaki <akiraohgaki@gmail.com> + * @copyright Akira Ohgaki + * @license https://opensource.org/licenses/LGPL-3.0 The GNU Lesser General Public License, version 3.0 + * @link https://github.com/akiraohgaki/qt-libs + */ + #include "json.h" #include <QJsonDocument> diff --git a/src/libs/utils/json.h b/src/libs/utils/json.h index d78c6b5..f53527a 100644 --- a/src/libs/utils/json.h +++ b/src/libs/utils/json.h @@ -1,5 +1,15 @@ -#ifndef UTILS_JSON_H -#define UTILS_JSON_H +/** + * A library for Qt app + * + * LICENSE: The GNU Lesser General Public License, version 3.0 + * + * @author Akira Ohgaki <akiraohgaki@gmail.com> + * @copyright Akira Ohgaki + * @license https://opensource.org/licenses/LGPL-3.0 The GNU Lesser General Public License, version 3.0 + * @link https://github.com/akiraohgaki/qt-libs + */ + +#pragma once #include <QObject> @@ -18,5 +28,3 @@ public: }; } // namespace utils - -#endif // UTILS_JSON_H diff --git a/src/libs/utils/network.cpp b/src/libs/utils/network.cpp index d299eed..2256a94 100644 --- a/src/libs/utils/network.cpp +++ b/src/libs/utils/network.cpp @@ -1,3 +1,14 @@ +/** + * A library for Qt app + * + * LICENSE: The GNU Lesser General Public License, version 3.0 + * + * @author Akira Ohgaki <akiraohgaki@gmail.com> + * @copyright Akira Ohgaki + * @license https://opensource.org/licenses/LGPL-3.0 The GNU Lesser General Public License, version 3.0 + * @link https://github.com/akiraohgaki/qt-libs + */ + #include "network.h" #include <QEventLoop> diff --git a/src/libs/utils/network.h b/src/libs/utils/network.h index a8cf812..fcb8350 100644 --- a/src/libs/utils/network.h +++ b/src/libs/utils/network.h @@ -1,5 +1,15 @@ -#ifndef UTILS_NETWORK_H -#define UTILS_NETWORK_H +/** + * A library for Qt app + * + * LICENSE: The GNU Lesser General Public License, version 3.0 + * + * @author Akira Ohgaki <akiraohgaki@gmail.com> + * @copyright Akira Ohgaki + * @license https://opensource.org/licenses/LGPL-3.0 The GNU Lesser General Public License, version 3.0 + * @link https://github.com/akiraohgaki/qt-libs + */ + +#pragma once #include <QObject> @@ -31,5 +41,3 @@ private: }; } // namespace utils - -#endif // UTILS_NETWORK_H diff --git a/src/libs/utils/package.cpp b/src/libs/utils/package.cpp index 2edfba7..6196c06 100644 --- a/src/libs/utils/package.cpp +++ b/src/libs/utils/package.cpp @@ -1,3 +1,14 @@ +/** + * A library for Qt app + * + * LICENSE: The GNU Lesser General Public License, version 3.0 + * + * @author Akira Ohgaki <akiraohgaki@gmail.com> + * @copyright Akira Ohgaki + * @license https://opensource.org/licenses/LGPL-3.0 The GNU Lesser General Public License, version 3.0 + * @link https://github.com/akiraohgaki/qt-libs + */ + #include "package.h" #include <QJsonObject> diff --git a/src/libs/utils/package.h b/src/libs/utils/package.h index 2fe8cfb..9f086dd 100644 --- a/src/libs/utils/package.h +++ b/src/libs/utils/package.h @@ -1,5 +1,15 @@ -#ifndef UTILS_PACKAGE_H -#define UTILS_PACKAGE_H +/** + * A library for Qt app + * + * LICENSE: The GNU Lesser General Public License, version 3.0 + * + * @author Akira Ohgaki <akiraohgaki@gmail.com> + * @copyright Akira Ohgaki + * @license https://opensource.org/licenses/LGPL-3.0 The GNU Lesser General Public License, version 3.0 + * @link https://github.com/akiraohgaki/qt-libs + */ + +#pragma once #include <QObject> @@ -23,5 +33,3 @@ private: }; } // namespace utils - -#endif // UTILS_PACKAGE_H -- GitLab