From 4507574498eaafe46e4e98c052d984d35d3a5d83 Mon Sep 17 00:00:00 2001
From: SeeLook <945374+SeeLook@users.noreply.github.com>
Date: Wed, 17 Aug 2016 12:11:49 +0200
Subject: [PATCH] getExternalPath() returns empty when no write access
 detected, accountName() returns Android, but device model is commented (maybe
 in future...)

---
 src/libs/core/Android/tandroid.cpp | 23 +++++++++++++++--------
 1 file changed, 15 insertions(+), 8 deletions(-)

diff --git a/src/libs/core/Android/tandroid.cpp b/src/libs/core/Android/tandroid.cpp
index 0f64cdee4..7df7bdc4d 100644
--- a/src/libs/core/Android/tandroid.cpp
+++ b/src/libs/core/Android/tandroid.cpp
@@ -21,6 +21,7 @@
 #include <QtAndroidExtras/qandroidfunctions.h>
 #include <QtAndroidExtras/qandroidjnienvironment.h>
 #include <QtCore/qdatetime.h>
+#include <QtCore/qfileinfo.h>
 #include <QtCore/qdebug.h>
 
 
@@ -43,8 +44,18 @@ void Tandroid::setScreenLockDisabled() {
 
 QString Tandroid::getExternalPath() {
   QString extPath = qgetenv("SECONDARY_STORAGE");
+  if (!extPath.isEmpty()) {
+    if (!QFileInfo(extPath).isWritable()) {
+      qDebug() << "[Tandroid] No write access to secondary storage!";
+      extPath.clear();
+    }
+  }
   if (extPath.isEmpty())
     extPath = qgetenv("EXTERNAL_STORAGE"); // return primary storage path (device internal)
+  if (!QFileInfo(extPath).isWritable()) {
+    qDebug() << "[Tandroid] No write access to primary storage!";
+    extPath.clear();
+  }
   return extPath;
 //  QAndroidJniObject extDirObject =
 //      QAndroidJniObject::callStaticObjectMethod("android/os/Environment", "getExternalStorageDirectory", "()Ljava/io/File;");
@@ -116,14 +127,10 @@ void Tandroid::sendExam(const QString& title, const QString &message, const QStr
 
 
 QString Tandroid::accountName() {
-//  QAndroidJniObject::callStaticMethod<void>(
-//        "net/sf/nootka/Tusers", "getUserName",
-//        "(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V",
-//        jTitle.object<jstring>(), jMessage.object<jstring>(), jFile.object<jstring>());
-
-  QAndroidJniObject juser = QtAndroid::androidActivity().callObjectMethod("getUser", "()Ljava/lang/String;");
-  return juser.toString();
-//  return "fake";
+//  QString model = QAndroidJniObject::getStaticObjectField<jstring>("android/os/Build", "MODEL").toString();
+//  QAndroidJniObject juser = QtAndroid::androidActivity().callObjectMethod("getUser", "()Ljava/lang/String;");
+//  return model;
+  return QStringLiteral("Android");
 //  return QAndroidJniObject::callStaticObjectMethod<jstring>
 //              ("net/sf/nootka/account",
 //               "getName").toString();
-- 
GitLab