aboutsummaryrefslogtreecommitdiffstats
path: root/main.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'main.cpp')
-rw-r--r--main.cpp19
1 files changed, 16 insertions, 3 deletions
diff --git a/main.cpp b/main.cpp
index a1f2969e..76fbe0cf 100644
--- a/main.cpp
+++ b/main.cpp
@@ -27,6 +27,7 @@
#include <QtAV/QtAV.h>
#ifdef Q_OS_ANDROID
#include <QAndroidJniObject>
+#include <QtAndroid>
#endif
#include "Common/QtQuick2ApplicationViewer.h"
#include "../Common/Common.h"
@@ -159,7 +160,8 @@ int main(int argc, char *argv[])
viewer.setY(op.value().toInt());
if (options.value(QStringLiteral("fullscreen")).toBool())
viewer.showFullScreen();
- viewer.setTitle(QStringLiteral("Viper"));
+ viewer.setTitle(QStringLiteral("Viper"));
+
#if 1
QString json = app.arguments().join(QStringLiteral("\",\""));
json.prepend(QLatin1String("[\"")).append(QLatin1String("\"]"));
@@ -171,8 +173,19 @@ int main(int argc, char *argv[])
qApp->installEventFilter(ae);
QString file;
#ifdef Q_OS_ANDROID
- engine->rootContext()->setContextProperty("platform", 1);
- file = QAndroidJniObject::callStaticObjectMethod("org.viper.com.ViperActivity"
+ const QVector<QString> permissions({"android.permission.INTERNET",
+ "android.permission.WRITE_EXTERNAL_STORAGE",
+ "android.permission.READ_EXTERNAL_STORAGE"});
+ for(const QString &permission : permissions){
+ auto result = QtAndroid::checkPermission(permission);
+ if(result == QtAndroid::PermissionResult::Denied){
+ auto resultHash = QtAndroid::requestPermissionsSync(QStringList({permission}));
+ if(resultHash[permission] == QtAndroid::PermissionResult::Denied)
+ return 0;
+ }
+ }
+
+ file = QAndroidJniObject::callStaticObjectMethod("io.fd.viper.ViperActivity"
, "getUrl"
, "()Ljava/lang/String;")
.toString();