From bb73af72302d5c4165eb3f8ec929002851abf884 Mon Sep 17 00:00:00 2001
From: Gabriel Calero <gcalero1984@gmail.com>
Date: Tue, 29 May 2018 17:21:44 -0300
Subject: [PATCH] Show stats button only in debug mode. Add isDebugMode to
 Script public interface

---
 libraries/script-engine/src/ScriptEngine.cpp |  8 ++++++++
 libraries/script-engine/src/ScriptEngine.h   |  6 ++++++
 scripts/+android/defaultScripts.js           | 17 +++++++++++++++--
 scripts/system/+android/stats.js             |  2 +-
 4 files changed, 30 insertions(+), 3 deletions(-)

diff --git a/libraries/script-engine/src/ScriptEngine.cpp b/libraries/script-engine/src/ScriptEngine.cpp
index 0da99d11f8..f98bffb739 100644
--- a/libraries/script-engine/src/ScriptEngine.cpp
+++ b/libraries/script-engine/src/ScriptEngine.cpp
@@ -237,6 +237,14 @@ QString ScriptEngine::getContext() const {
     return "unknown";
 }
 
+bool ScriptEngine::isDebugMode() const { 
+#if defined(DEBUG)
+    return true;
+#else
+    return false;
+#endif
+}
+
 ScriptEngine::~ScriptEngine() {
     auto scriptEngines = DependencyManager::get<ScriptEngines>();
     if (scriptEngines) {
diff --git a/libraries/script-engine/src/ScriptEngine.h b/libraries/script-engine/src/ScriptEngine.h
index 3001666b5d..c02a63ef3c 100644
--- a/libraries/script-engine/src/ScriptEngine.h
+++ b/libraries/script-engine/src/ScriptEngine.h
@@ -232,6 +232,12 @@ public:
      */
     Q_INVOKABLE bool isClientScript() const { return _context == CLIENT_SCRIPT; }
 
+    /**jsdoc
+     * @function Script.isDebugMode
+     * @returns {boolean}
+     */
+    Q_INVOKABLE bool isDebugMode() const;
+
     /**jsdoc
      * @function Script.isEntityClientScript
      * @returns {boolean}
diff --git a/scripts/+android/defaultScripts.js b/scripts/+android/defaultScripts.js
index 98fbb4b1a7..8950af808d 100644
--- a/scripts/+android/defaultScripts.js
+++ b/scripts/+android/defaultScripts.js
@@ -16,8 +16,7 @@ var DEFAULT_SCRIPTS_COMBINED = [
     "system/+android/touchscreenvirtualpad.js",
     "system/+android/actionbar.js",
     "system/+android/audio.js" ,
-    "system/+android/modes.js",
-    "system/+android/stats.js"/*,
+    "system/+android/modes.js"/*,
     "system/away.js",
     "system/controllers/controllerDisplayManager.js",
     "system/controllers/handControllerGrabAndroid.js",
@@ -33,6 +32,10 @@ var DEFAULT_SCRIPTS_COMBINED = [
     "developer/debugging/debugAndroidMouse.js"*/
 ];
 
+var DEBUG_SCRIPTS = [
+    "system/+android/stats.js"
+];
+
 var DEFAULT_SCRIPTS_SEPARATE = [ ];
 
 // add a menu item for debugging
@@ -70,6 +73,11 @@ function runDefaultsTogether() {
     for (var i in DEFAULT_SCRIPTS_COMBINED) {
         Script.include(DEFAULT_SCRIPTS_COMBINED[i]);
     }
+    if (Script.isDebugMode()) {
+        for (var i in DEBUG_SCRIPTS) {
+            Script.include(DEBUG_SCRIPTS[i]);
+        }
+    }
     loadSeparateDefaults();
 }
 
@@ -77,6 +85,11 @@ function runDefaultsSeparately() {
     for (var i in DEFAULT_SCRIPTS_COMBINED) {
         Script.load(DEFAULT_SCRIPTS_COMBINED[i]);
     }
+    if (Script.isDebugMode()) {
+        for (var i in DEBUG_SCRIPTS) {
+            Script.load(DEBUG_SCRIPTS[i]);
+        }
+    }
     loadSeparateDefaults();
 }
 
diff --git a/scripts/system/+android/stats.js b/scripts/system/+android/stats.js
index a93bcb5794..0731684291 100644
--- a/scripts/system/+android/stats.js
+++ b/scripts/system/+android/stats.js
@@ -30,7 +30,7 @@ function init() {
         text: "STATS"
     });
     statsButton.clicked.connect(function() {
-        Menu.triggerOption("Stats");
+        Menu.triggerOption("Show Statistics");
     });
 }