From fc62b2d34a145498e1b43025d2365e71ec83247e Mon Sep 17 00:00:00 2001 From: Gabriel Calero Date: Thu, 21 Dec 2017 16:40:21 -0300 Subject: [PATCH] Fix ktx_cache path for android. Load the least js scripts for android --- interface/src/Application.cpp | 17 +++++++++++++ interface/src/Application.h | 3 +++ libraries/shared/src/PathUtils.cpp | 6 +++++ scripts/defaultScripts.js | 40 +++++++++++++++++++++++++++++- 4 files changed, 65 insertions(+), 1 deletion(-) diff --git a/interface/src/Application.cpp b/interface/src/Application.cpp index 9127381bde..e5ad9792f8 100644 --- a/interface/src/Application.cpp +++ b/interface/src/Application.cpp @@ -5932,7 +5932,9 @@ void Application::registerScriptEngineWithApplicationServices(ScriptEnginePointe scriptEngine->registerGetterSetter("location", LocationScriptingInterface::locationGetter, LocationScriptingInterface::locationSetter); +#ifndef ANDROID scriptEngine->registerFunction("OverlayWebWindow", QmlWebWindowClass::constructor); +#endif scriptEngine->registerFunction("OverlayWindow", QmlWindowClass::constructor); scriptEngine->registerGlobalObject("Menu", MenuScriptingInterface::getInstance()); @@ -5984,6 +5986,9 @@ void Application::registerScriptEngineWithApplicationServices(ScriptEnginePointe scriptEngine->registerGlobalObject("UserActivityLogger", DependencyManager::get().data()); scriptEngine->registerGlobalObject("Users", DependencyManager::get().data()); + scriptEngine->registerGlobalObject("App", this); + scriptEngine->registerFunction("App", "isAndroid", Application::isAndroid, 0); + scriptEngine->registerGlobalObject("LimitlessSpeechRecognition", DependencyManager::get().data()); scriptEngine->registerGlobalObject("GooglePoly", DependencyManager::get().data()); @@ -7567,6 +7572,18 @@ void Application::updateThreadPoolCount() const { QThreadPool::globalInstance()->setMaxThreadCount(threadPoolSize); } +QScriptValue Application::isAndroid(QScriptContext* context, QScriptEngine* engine) { + return QScriptValue(engine, isAndroid()); +} + +bool Application::isAndroid() { +#ifdef Q_OS_ANDROID + return true; +#else + return false; +#endif +} + void Application::updateSystemTabletMode() { qApp->setProperty(hifi::properties::HMD, isHMDMode()); if (isHMDMode()) { diff --git a/interface/src/Application.h b/interface/src/Application.h index ee16740f20..935321662f 100644 --- a/interface/src/Application.h +++ b/interface/src/Application.h @@ -282,6 +282,9 @@ public: bool getSaveAvatarOverrideUrl() { return _saveAvatarOverrideUrl; } void saveNextPhysicsStats(QString filename); + static Q_INVOKABLE QScriptValue isAndroid(QScriptContext* context, QScriptEngine* engine); + static bool isAndroid(); + signals: void svoImportRequested(const QString& url); diff --git a/libraries/shared/src/PathUtils.cpp b/libraries/shared/src/PathUtils.cpp index b230917db9..c6ff73492c 100644 --- a/libraries/shared/src/PathUtils.cpp +++ b/libraries/shared/src/PathUtils.cpp @@ -32,6 +32,8 @@ QString TEMP_DIR_FORMAT { "%1-%2-%3" }; const QString& PathUtils::resourcesPath() { #ifdef Q_OS_MAC static const QString staticResourcePath = QCoreApplication::applicationDirPath() + "/../Resources/"; +#elif defined (ANDROID) + static const QString staticResourcePath = QStandardPaths::writableLocation(QStandardPaths::CacheLocation) + "/resources/"; #else static const QString staticResourcePath = QCoreApplication::applicationDirPath() + "/resources/"; #endif @@ -72,7 +74,11 @@ QString PathUtils::getAppLocalDataPath() { } // otherwise return standard path +#ifndef Q_OS_ANDROID return QStandardPaths::writableLocation(QStandardPaths::AppLocalDataLocation) + "/"; +#else + return QStandardPaths::writableLocation(QStandardPaths::CacheLocation) + "/"; +#endif } QString PathUtils::getAppDataFilePath(const QString& filename) { diff --git a/scripts/defaultScripts.js b/scripts/defaultScripts.js index 89d4c75ae4..7ed20180b8 100644 --- a/scripts/defaultScripts.js +++ b/scripts/defaultScripts.js @@ -12,6 +12,16 @@ // var DEFAULT_SCRIPTS_COMBINED = [ +]; + +function pushAll(dest, orig) { + for (var k in orig) { + dest.push(orig[k]); + } +} + +if (!App.isAndroid()) { + pushAll(DEFAULT_SCRIPTS_COMBINED, [ "system/progress.js", "system/away.js", "system/audio.js", @@ -30,12 +40,40 @@ var DEFAULT_SCRIPTS_COMBINED = [ "system/dialTone.js", "system/firstPersonHMD.js", "system/tablet-ui/tabletUI.js" -]; + ]); +} else { + pushAll(DEFAULT_SCRIPTS_COMBINED, [ + "system/progress.js"/*, + "system/away.js", + "system/controllers/controllerDisplayManager.js", + "system/controllers/handControllerGrabAndroid.js", + "system/controllers/handControllerPointerAndroid.js", + "system/controllers/squeezeHands.js", + "system/controllers/grab.js", + "system/controllers/teleport.js", + "system/controllers/toggleAdvancedMovementForHandControllers.js", + "system/dialTone.js", + "system/firstPersonHMD.js", + "system/bubble.js", + "system/android.js", + "developer/debugging/debugAndroidMouse.js"*/ + ]); +} + var DEFAULT_SCRIPTS_SEPARATE = [ "system/controllers/controllerScripts.js" //"system/chat.js" ]; + +if (!App.isAndroid()) { + pushAll(DEFAULT_SCRIPTS_SEPARATE, [ + "system/controllers/controllerScripts.js" + ]); +} else { + pushAll(DEFAULT_SCRIPTS_SEPARATE, []); +} + // add a menu item for debugging var MENU_CATEGORY = "Developer"; var MENU_ITEM = "Debug defaultScripts.js";