diff --git a/src/libs/utils/android.cpp b/src/libs/utils/android.cpp new file mode 100644 index 0000000000000000000000000000000000000000..9cca280565c8b419b83065f6fb63e671a61970db --- /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 0000000000000000000000000000000000000000..bbbccd36a693dc5ca086cfa1db8d4b87eabaa0e0 --- /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 6da4adac24b470196ec6e97ec1452565f3638f89..13b1018af9a1ee4f0feab0315794875aa8a3bb43 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 02a3f67016c68457ee1824d87d02100f45f2f937..9949407873709013bd414ff9b695c31e21c05f6d 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 054826924eacf274a71a17c821a9602984ed66bc..04195c367cf1b2e5d43fa7b23303de121621473a 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 6fbfa915698112b9c67095b620527fbb5d9d6312..01cf4d6b21764f6666a9cdcbfa5710e77c662447 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 027405b39a49492b8f86943491f797aa9fb0105f..1573c847890f2d0c6365b9372542b9a4db355ec1 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 d78c6b5cbde92a2f63805d012e1311e9a5a9a876..f53527ad12b13650f4a5634d005f52e4bcaf5cfe 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 d299eed33f666fd213eb4686d1b69e667c2fbd76..2256a941a0a761bd76ddc39fb2c57ea7138c8a47 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 a8cf8128af758362d83ce36dd856d415c878fe87..fcb835028def3b28e0e99d72f792a813a561a5bd 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 2edfba7a0a155dd3c23f0ab58165309a25625a8b..6196c063404fc176325665e6a0fba447b58abc83 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 2fe8cfb67195b58b1893faea222784218ef18a1d..9f086dded976aa2384584a8c9e05d204f9681daf 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