From b1e4e17f47065d4269048400682ac4f806bc4259 Mon Sep 17 00:00:00 2001 From: Brad Davis Date: Tue, 20 Nov 2018 10:51:55 -0800 Subject: [PATCH 01/58] Santa Cruz --- .gitignore | 1 + CMakeLists.txt | 1 + .../gvrinterface/InterfaceActivity.java | 42 - .../hifiinterface/InterfaceActivity.java | 21 +- .../fragment/SignedInFragment.java | 73 + ...d_button_color1.xml => rounded_button.xml} | 0 .../src/main/res/drawable/rounded_edit.xml | 7 + .../src/main/res/layout/fragment_signedin.xml | 63 + android/apps/questFramePlayer/CMakeLists.txt | 9 + android/apps/questFramePlayer/build.gradle | 51 + .../proguard-rules.pro | 0 .../src/main/AndroidManifest.xml | 55 + .../src/main/cpp/PlayerWindow.cpp | 25 + .../src/main/cpp/PlayerWindow.h | 29 + .../src/main/cpp/RenderThread.cpp | 239 ++++ .../src/main/cpp/RenderThread.h | 44 + .../questFramePlayer/src/main/cpp/main.cpp | 56 + .../frameplayer/QuestQtActivity.java | 52 + .../frameplayer/QuestRenderActivity.java | 14 + .../src/main/res/drawable/ic_launcher.xml | 0 .../src/main/res/values/strings.xml | 3 + android/apps/questInterface/CMakeLists.txt | 16 + android/apps/questInterface/build.gradle | 149 ++ .../apps/questInterface/proguard-rules.pro | 25 + .../src/main/AndroidManifest.xml | 54 + .../questInterface/src/main/cpp/native.cpp | 86 ++ .../questInterface/MainActivity.java | 70 + .../questInterface/PermissionsChecker.java | 65 + .../questInterface/QuestActivity.java | 25 + .../src/main/res/drawable/ic_launcher.xml | 17 + .../src/main/res/values/strings.xml | 3 + android/apps/ui/CMakeLists.txt | 7 + android/apps/ui/proguard-rules.pro | 25 + android/apps/ui/src/main/AndroidManifest.xml | 32 + android/apps/ui/src/main/cpp/PlayerWindow.cpp | 22 + android/apps/ui/src/main/cpp/PlayerWindow.h | 27 + android/apps/ui/src/main/cpp/RenderThread.cpp | 98 ++ android/apps/ui/src/main/cpp/RenderThread.h | 42 + android/apps/ui/src/main/cpp/main.cpp | 58 + android/apps/ui/src/main/cpp/main.qml | 21 + android/apps/ui/src/main/cpp/mainqt.cpp | 5 + android/apps/ui/src/main/cpp/resources.qrc | 6 + .../java/io/highfidelity/ui/UiActivity.java | 21 + .../ui/src/main/res/drawable/ic_launcher.xml | 17 + .../apps/ui/src/main/res/values/strings.xml | 3 + android/apps/ui/src/main/uiApp.pro | 22 + android/build.gradle | 122 +- android/gradle.properties | 1 + .../gradle/wrapper/gradle-wrapper.properties | 4 +- android/libraries/oculus/build.gradle | 17 + .../oculus/src/main/AndroidManifest.xml | 2 + .../oculus/OculusMobileActivity.java | 103 ++ .../qt5/android/bindings/QtActivity.java | 20 +- android/settings.gradle | 25 +- cmake/macros/IncludeHifiLibraryHeaders.cmake | 2 +- cmake/macros/LinkHifiLibraries.cmake | 4 +- cmake/macros/TargetEGL.cmake | 4 + cmake/macros/TargetOculusMobile.cmake | 20 + cmake/ports/hifi-client-deps/CONTROL | 2 +- gvr-interface/CMakeLists.txt | 85 -- gvr-interface/res/drawable/icon.png | Bin 9914 -> 0 bytes gvr-interface/src/Client.cpp | 73 - gvr-interface/src/Client.h | 33 - gvr-interface/src/GVRInterface.cpp | 191 --- gvr-interface/src/GVRInterface.h | 72 - gvr-interface/src/GVRMainWindow.cpp | 176 --- gvr-interface/src/GVRMainWindow.h | 58 - gvr-interface/src/InterfaceView.cpp | 18 - gvr-interface/src/InterfaceView.h | 23 - gvr-interface/src/LoginDialog.cpp | 69 - gvr-interface/src/LoginDialog.h | 34 - gvr-interface/src/RenderingClient.cpp | 156 --- gvr-interface/src/RenderingClient.h | 57 - .../gvrinterface/InterfaceActivity.java | 41 - gvr-interface/src/main.cpp | 28 - .../templates/InterfaceBetaActivity.java.in | 51 - gvr-interface/templates/hockeyapp.xml.in | 5 - hifi_android.py | 7 + interface/CMakeLists.txt | 11 +- interface/resources/qml/+android/StatText.qml | 9 - interface/resources/qml/+android/Stats.qml | 410 ------ interface/resources/qml/Browser.qml | 22 +- .../LoginDialog/+android/LinkAccountBody.qml | 292 ---- .../qml/LoginDialog/+android/SignUpBody.qml | 297 ---- interface/resources/qml/QmlWebWindow.qml | 29 +- interface/resources/qml/TabletBrowser.qml | 38 +- interface/resources/qml/Web3DSurface.qml | 75 +- .../qml/controls/FlickableWebViewCore.qml | 39 +- .../resources/qml/controls/TabletWebView.qml | 1 - .../qml/controlsUit/+android/ImageButton.qml | 82 -- .../resources/qml/controlsUit/BaseWebView.qml | 12 +- .../resources/qml/controlsUit/WebSpinner.qml | 4 +- .../qml/desktop/+android/FocusHack.qml | 26 - interface/resources/qml/desktop/Desktop.qml | 11 +- .../resources/qml/hifi/+android/ActionBar.qml | 71 - .../resources/qml/hifi/+android/AudioBar.qml | 84 -- .../qml/hifi/+android/AvatarOption.qml | 117 -- .../resources/qml/hifi/+android/Desktop.qml | 63 - .../qml/hifi/+android/HifiConstants.qml | 56 - .../resources/qml/hifi/+android/StatsBar.qml | 71 - .../qml/hifi/+android/WindowHeader.qml | 113 -- .../qml/hifi/+android/bottomHudOptions.qml | 86 -- .../resources/qml/hifi/+android/button.qml | 225 --- .../resources/qml/hifi/+android/modesbar.qml | 72 - interface/resources/qml/hifi/Desktop.qml | 35 +- interface/resources/qml/hifi/WebBrowser.qml | 95 +- .../resources/qml/hifi/avatarapp/Spinner.qml | 1 - .../qml/hifi/tablet/BlocksWebView.qml | 3 +- .../resources/qml/hifi/tablet/TabletMenu.qml | 2 - .../qml/hifi/tablet/TabletWebView.qml | 1 - .../qml/hifi/tablet/WindowWebView.qml | 1 - .../qml/stylesUit/+android/HifiConstants.qml | 358 ----- interface/src/Application.cpp | 74 +- interface/src/Application.h | 6 +- interface/src/LODManager.cpp | 1 + interface/src/avatar/MyAvatar.cpp | 12 +- .../interface/InterfaceActivity.java | 40 - .../src/octree/OctreePacketProcessor.cpp | 5 +- interface/src/raypick/LaserPointer.cpp | 6 +- .../raypick/LaserPointerScriptingInterface.h | 2 +- interface/src/raypick/ParabolaPick.cpp | 14 +- interface/src/raypick/ParabolaPointer.cpp | 2 +- interface/src/raypick/PathPointer.cpp | 12 +- .../src/raypick/PickScriptingInterface.cpp | 22 +- .../src/raypick/PickScriptingInterface.h | 131 +- .../src/raypick/PointerScriptingInterface.h | 9 +- interface/src/raypick/RayPick.cpp | 13 +- .../src/raypick/RayPickScriptingInterface.h | 10 +- interface/src/raypick/StylusPointer.cpp | 2 +- interface/src/ui/AnimStats.cpp | 2 +- interface/src/ui/Keyboard.cpp | 3 +- interface/src/ui/Stats.cpp | 2 +- .../animation/src/AnimInverseKinematics.cpp | 2 +- .../src/display-plugins/DisplayPlugin.cpp | 2 + .../display-plugins/OpenGLDisplayPlugin.cpp | 6 +- .../src/display-plugins/OpenGLDisplayPlugin.h | 3 + .../hmd/DebugHmdDisplayPlugin.cpp | 13 + .../display-plugins/hmd/HmdDisplayPlugin.h | 2 +- .../src/EntityTreeRenderer.cpp | 10 +- libraries/entities/CMakeLists.txt | 1 - .../entities/src/EntityScriptingInterface.cpp | 130 +- .../entities/src/EntityScriptingInterface.h | 95 +- libraries/entities/src/EntityTree.cpp | 374 +++-- libraries/entities/src/EntityTree.h | 57 +- libraries/entities/src/EntityTreeElement.cpp | 256 +--- libraries/entities/src/EntityTreeElement.h | 52 +- libraries/gl/CMakeLists.txt | 2 +- libraries/gl/src/gl/Context.cpp | 24 +- libraries/gl/src/gl/ContextQt.cpp | 12 +- libraries/gl/src/gl/OffscreenGLCanvas.cpp | 14 +- libraries/gl/src/gl/QOpenGLContextWrapper.cpp | 30 +- libraries/gl/src/gl/QOpenGLContextWrapper.h | 22 +- .../gpu-gl-common/src/gpu/gl/GLBackend.cpp | 4 + .../gpu-gl-common/src/gpu/gl/GLBackend.h | 4 +- .../src/gpu/gl45/GL45BackendTexture.cpp | 12 +- .../src/gpu/gles/GLESBackendOutput.cpp | 2 +- libraries/gpu/src/gpu/Context.h | 1 + libraries/gpu/src/gpu/FrameReader.cpp | 29 +- libraries/gpu/src/gpu/Transform.slh | 2 +- .../src/input-plugins/InputPlugin.cpp | 3 + libraries/oculusMobile/CMakeLists.txt | 11 + libraries/oculusMobile/src/ovr/Forward.h | 17 + .../oculusMobile/src/ovr/Framebuffer.cpp | 93 ++ libraries/oculusMobile/src/ovr/Framebuffer.h | 34 + libraries/oculusMobile/src/ovr/GLContext.cpp | 182 +++ libraries/oculusMobile/src/ovr/GLContext.h | 37 + libraries/oculusMobile/src/ovr/Helpers.cpp | 38 + libraries/oculusMobile/src/ovr/Helpers.h | 94 ++ libraries/oculusMobile/src/ovr/TaskQueue.cpp | 40 + libraries/oculusMobile/src/ovr/TaskQueue.h | 42 + libraries/oculusMobile/src/ovr/VrHandler.cpp | 337 +++++ libraries/oculusMobile/src/ovr/VrHandler.h | 47 + libraries/oculusMobilePlugin/CMakeLists.txt | 29 + libraries/oculusMobilePlugin/src/Logging.cpp | 4 + libraries/oculusMobilePlugin/src/Logging.h | 13 + .../src/OculusMobileControllerManager.cpp | 694 ++++++++++ .../src/OculusMobileControllerManager.h | 43 + .../src/OculusMobileDisplayPlugin.cpp | 269 ++++ .../src/OculusMobileDisplayPlugin.h | 65 + libraries/pointers/src/Pick.cpp | 5 +- libraries/pointers/src/Pick.h | 79 +- libraries/pointers/src/PickCacheOptimizer.h | 6 +- libraries/qml/src/qml/OffscreenSurface.cpp | 15 + libraries/qml/src/qml/OffscreenSurface.h | 2 + libraries/render-utils/src/Model.cpp | 5 + .../render-utils/src/parabola_forward.slv | 7 + libraries/render/src/render/CullTask.cpp | 16 +- .../src/ConsoleScriptingInterface.cpp | 12 + libraries/shaders/headers/310es/header.glsl | 3 + libraries/shaders/src/shaders/Shaders.cpp | 4 +- libraries/shared/src/shared/FileUtils.cpp | 3 + libraries/ui/src/QmlFragmentClass.cpp | 9 +- libraries/ui/src/QmlWindowClass.cpp | 2 + libraries/ui/src/ui/OffscreenQmlSurface.cpp | 11 +- plugins/oculus/src/OculusDisplayPlugin.cpp | 4 + scripts/+android/defaultScripts.js | 128 -- scripts/defaultScripts.js | 23 +- .../utilities/tests/entityPerfTest.js | 8 + scripts/system/+android/actionbar.js | 59 - scripts/system/+android/audio.js | 71 - scripts/system/+android/clickWeb.js | 108 -- scripts/system/+android/displayNames.js | 167 --- scripts/system/+android/modes.js | 124 -- scripts/system/+android/radar.js | 1217 ----------------- scripts/system/+android/stats.js | 39 - .../system/+android/touchscreenvirtualpad.js | 22 - scripts/system/+android/uniqueColor.js | 54 - scripts/system/goto.js | 51 +- scripts/system/html/js/miniTablet.js | 24 +- scripts/system/miniTablet.js | 5 +- tools/CMakeLists.txt | 1 + tools/gpu-frame-player/CMakeLists.txt | 3 +- tools/gpu-frame-player/src/PlayerWindow.cpp | 46 +- tools/gpu-frame-player/src/RenderThread.cpp | 39 +- tools/gpu-frame-player/src/RenderThread.h | 2 + tools/noramlizeFrame.py | 62 + tools/webview/CMakeLists.txt | 7 + tools/webview/src/PlayerWindow.cpp | 23 + tools/webview/src/PlayerWindow.h | 27 + tools/webview/src/RenderThread.cpp | 95 ++ tools/webview/src/RenderThread.h | 42 + tools/webview/src/main.cpp | 31 + tools/webview/src/main.qml | 23 + tools/webview/src/mainqt.cpp | 5 + tools/webview/src/resources.qrc | 6 + .../DomainContent/Toybox/pistol/pistol.js | 2 +- 226 files changed, 5403 insertions(+), 6931 deletions(-) delete mode 100644 android/apps/interface/src/main/java/io/highfidelity/gvrinterface/InterfaceActivity.java create mode 100644 android/apps/interface/src/main/java/io/highfidelity/hifiinterface/fragment/SignedInFragment.java rename android/apps/interface/src/main/res/drawable/{rounded_button_color1.xml => rounded_button.xml} (100%) create mode 100644 android/apps/interface/src/main/res/drawable/rounded_edit.xml create mode 100644 android/apps/interface/src/main/res/layout/fragment_signedin.xml create mode 100644 android/apps/questFramePlayer/CMakeLists.txt create mode 100644 android/apps/questFramePlayer/build.gradle rename android/apps/{interface => questFramePlayer}/proguard-rules.pro (100%) create mode 100644 android/apps/questFramePlayer/src/main/AndroidManifest.xml create mode 100644 android/apps/questFramePlayer/src/main/cpp/PlayerWindow.cpp create mode 100644 android/apps/questFramePlayer/src/main/cpp/PlayerWindow.h create mode 100644 android/apps/questFramePlayer/src/main/cpp/RenderThread.cpp create mode 100644 android/apps/questFramePlayer/src/main/cpp/RenderThread.h create mode 100644 android/apps/questFramePlayer/src/main/cpp/main.cpp create mode 100644 android/apps/questFramePlayer/src/main/java/io/highfidelity/frameplayer/QuestQtActivity.java create mode 100644 android/apps/questFramePlayer/src/main/java/io/highfidelity/frameplayer/QuestRenderActivity.java rename android/apps/{interface => questFramePlayer}/src/main/res/drawable/ic_launcher.xml (100%) create mode 100644 android/apps/questFramePlayer/src/main/res/values/strings.xml create mode 100644 android/apps/questInterface/CMakeLists.txt create mode 100644 android/apps/questInterface/build.gradle create mode 100644 android/apps/questInterface/proguard-rules.pro create mode 100644 android/apps/questInterface/src/main/AndroidManifest.xml create mode 100644 android/apps/questInterface/src/main/cpp/native.cpp create mode 100644 android/apps/questInterface/src/main/java/io/highfidelity/questInterface/MainActivity.java create mode 100644 android/apps/questInterface/src/main/java/io/highfidelity/questInterface/PermissionsChecker.java create mode 100644 android/apps/questInterface/src/main/java/io/highfidelity/questInterface/QuestActivity.java create mode 100644 android/apps/questInterface/src/main/res/drawable/ic_launcher.xml create mode 100644 android/apps/questInterface/src/main/res/values/strings.xml create mode 100644 android/apps/ui/CMakeLists.txt create mode 100644 android/apps/ui/proguard-rules.pro create mode 100644 android/apps/ui/src/main/AndroidManifest.xml create mode 100644 android/apps/ui/src/main/cpp/PlayerWindow.cpp create mode 100644 android/apps/ui/src/main/cpp/PlayerWindow.h create mode 100644 android/apps/ui/src/main/cpp/RenderThread.cpp create mode 100644 android/apps/ui/src/main/cpp/RenderThread.h create mode 100644 android/apps/ui/src/main/cpp/main.cpp create mode 100644 android/apps/ui/src/main/cpp/main.qml create mode 100644 android/apps/ui/src/main/cpp/mainqt.cpp create mode 100644 android/apps/ui/src/main/cpp/resources.qrc create mode 100644 android/apps/ui/src/main/java/io/highfidelity/ui/UiActivity.java create mode 100644 android/apps/ui/src/main/res/drawable/ic_launcher.xml create mode 100644 android/apps/ui/src/main/res/values/strings.xml create mode 100644 android/apps/ui/src/main/uiApp.pro create mode 100644 android/libraries/oculus/build.gradle create mode 100644 android/libraries/oculus/src/main/AndroidManifest.xml create mode 100644 android/libraries/oculus/src/main/java/io/highfidelity/oculus/OculusMobileActivity.java create mode 100644 cmake/macros/TargetEGL.cmake create mode 100644 cmake/macros/TargetOculusMobile.cmake delete mode 100644 gvr-interface/CMakeLists.txt delete mode 100644 gvr-interface/res/drawable/icon.png delete mode 100644 gvr-interface/src/Client.cpp delete mode 100644 gvr-interface/src/Client.h delete mode 100644 gvr-interface/src/GVRInterface.cpp delete mode 100644 gvr-interface/src/GVRInterface.h delete mode 100644 gvr-interface/src/GVRMainWindow.cpp delete mode 100644 gvr-interface/src/GVRMainWindow.h delete mode 100644 gvr-interface/src/InterfaceView.cpp delete mode 100644 gvr-interface/src/InterfaceView.h delete mode 100644 gvr-interface/src/LoginDialog.cpp delete mode 100644 gvr-interface/src/LoginDialog.h delete mode 100644 gvr-interface/src/RenderingClient.cpp delete mode 100644 gvr-interface/src/RenderingClient.h delete mode 100644 gvr-interface/src/java/io/highfidelity/gvrinterface/InterfaceActivity.java delete mode 100644 gvr-interface/src/main.cpp delete mode 100644 gvr-interface/templates/InterfaceBetaActivity.java.in delete mode 100644 gvr-interface/templates/hockeyapp.xml.in delete mode 100644 interface/resources/qml/+android/StatText.qml delete mode 100644 interface/resources/qml/+android/Stats.qml delete mode 100644 interface/resources/qml/LoginDialog/+android/LinkAccountBody.qml delete mode 100644 interface/resources/qml/LoginDialog/+android/SignUpBody.qml delete mode 100644 interface/resources/qml/controlsUit/+android/ImageButton.qml delete mode 100644 interface/resources/qml/desktop/+android/FocusHack.qml delete mode 100644 interface/resources/qml/hifi/+android/ActionBar.qml delete mode 100644 interface/resources/qml/hifi/+android/AudioBar.qml delete mode 100644 interface/resources/qml/hifi/+android/AvatarOption.qml delete mode 100644 interface/resources/qml/hifi/+android/Desktop.qml delete mode 100644 interface/resources/qml/hifi/+android/HifiConstants.qml delete mode 100644 interface/resources/qml/hifi/+android/StatsBar.qml delete mode 100644 interface/resources/qml/hifi/+android/WindowHeader.qml delete mode 100644 interface/resources/qml/hifi/+android/bottomHudOptions.qml delete mode 100644 interface/resources/qml/hifi/+android/button.qml delete mode 100644 interface/resources/qml/hifi/+android/modesbar.qml delete mode 100644 interface/resources/qml/stylesUit/+android/HifiConstants.qml delete mode 100644 interface/src/java/io/highfidelity/interface/InterfaceActivity.java create mode 100644 libraries/oculusMobile/CMakeLists.txt create mode 100644 libraries/oculusMobile/src/ovr/Forward.h create mode 100644 libraries/oculusMobile/src/ovr/Framebuffer.cpp create mode 100644 libraries/oculusMobile/src/ovr/Framebuffer.h create mode 100644 libraries/oculusMobile/src/ovr/GLContext.cpp create mode 100644 libraries/oculusMobile/src/ovr/GLContext.h create mode 100644 libraries/oculusMobile/src/ovr/Helpers.cpp create mode 100644 libraries/oculusMobile/src/ovr/Helpers.h create mode 100644 libraries/oculusMobile/src/ovr/TaskQueue.cpp create mode 100644 libraries/oculusMobile/src/ovr/TaskQueue.h create mode 100644 libraries/oculusMobile/src/ovr/VrHandler.cpp create mode 100644 libraries/oculusMobile/src/ovr/VrHandler.h create mode 100644 libraries/oculusMobilePlugin/CMakeLists.txt create mode 100644 libraries/oculusMobilePlugin/src/Logging.cpp create mode 100644 libraries/oculusMobilePlugin/src/Logging.h create mode 100644 libraries/oculusMobilePlugin/src/OculusMobileControllerManager.cpp create mode 100644 libraries/oculusMobilePlugin/src/OculusMobileControllerManager.h create mode 100644 libraries/oculusMobilePlugin/src/OculusMobileDisplayPlugin.cpp create mode 100644 libraries/oculusMobilePlugin/src/OculusMobileDisplayPlugin.h create mode 100644 libraries/render-utils/src/parabola_forward.slv delete mode 100644 scripts/+android/defaultScripts.js delete mode 100644 scripts/system/+android/actionbar.js delete mode 100644 scripts/system/+android/audio.js delete mode 100644 scripts/system/+android/clickWeb.js delete mode 100644 scripts/system/+android/displayNames.js delete mode 100644 scripts/system/+android/modes.js delete mode 100644 scripts/system/+android/radar.js delete mode 100644 scripts/system/+android/stats.js delete mode 100644 scripts/system/+android/touchscreenvirtualpad.js delete mode 100644 scripts/system/+android/uniqueColor.js create mode 100644 tools/noramlizeFrame.py create mode 100644 tools/webview/CMakeLists.txt create mode 100644 tools/webview/src/PlayerWindow.cpp create mode 100644 tools/webview/src/PlayerWindow.h create mode 100644 tools/webview/src/RenderThread.cpp create mode 100644 tools/webview/src/RenderThread.h create mode 100644 tools/webview/src/main.cpp create mode 100644 tools/webview/src/main.qml create mode 100644 tools/webview/src/mainqt.cpp create mode 100644 tools/webview/src/resources.qrc diff --git a/.gitignore b/.gitignore index 5a965b494c..4c262f9f4a 100644 --- a/.gitignore +++ b/.gitignore @@ -24,6 +24,7 @@ android/**/bin android/**/src/main/res/values/libs.xml android/**/src/main/assets android/**/gradle* +*.class # VSCode # List taken from Github Global Ignores master@435c4d92 diff --git a/CMakeLists.txt b/CMakeLists.txt index 6956fd22c3..4d616e1f3a 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -80,6 +80,7 @@ endif() if (ANDROID) set(GLES_OPTION ON) set(PLATFORM_QT_COMPONENTS AndroidExtras WebView) + add_definitions(-DHIFI_ANDROID_APP=\"${HIFI_ANDROID_APP}\") else () set(PLATFORM_QT_COMPONENTS WebEngine) endif () diff --git a/android/apps/interface/src/main/java/io/highfidelity/gvrinterface/InterfaceActivity.java b/android/apps/interface/src/main/java/io/highfidelity/gvrinterface/InterfaceActivity.java deleted file mode 100644 index aad769de70..0000000000 --- a/android/apps/interface/src/main/java/io/highfidelity/gvrinterface/InterfaceActivity.java +++ /dev/null @@ -1,42 +0,0 @@ -// -// InterfaceActivity.java -// gvr-interface/java -// -// Created by Stephen Birarda on 1/26/15. -// Copyright 2015 High Fidelity, Inc. -// -// Distributed under the Apache License, Version 2.0. -// See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html -// - -package io.highfidelity.gvrinterface; - -import android.content.Intent; -import android.net.Uri; -import android.os.Bundle; -import android.view.View; -import android.view.WindowManager; -import android.util.Log; -import org.qtproject.qt5.android.bindings.QtActivity; - -public class InterfaceActivity extends QtActivity { - - public static native void handleHifiURL(String hifiURLString); - - @Override - public void onCreate(Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON); - - // Get the intent that started this activity in case we have a hifi:// URL to parse - Intent intent = getIntent(); - if (intent.getAction() == Intent.ACTION_VIEW) { - Uri data = intent.getData(); - - if (data.getScheme().equals("hifi")) { - handleHifiURL(data.toString()); - } - } - - } -} \ No newline at end of file diff --git a/android/apps/interface/src/main/java/io/highfidelity/hifiinterface/InterfaceActivity.java b/android/apps/interface/src/main/java/io/highfidelity/hifiinterface/InterfaceActivity.java index b7d2157737..fce5c2553e 100644 --- a/android/apps/interface/src/main/java/io/highfidelity/hifiinterface/InterfaceActivity.java +++ b/android/apps/interface/src/main/java/io/highfidelity/hifiinterface/InterfaceActivity.java @@ -166,8 +166,27 @@ public class InterfaceActivity extends QtActivity implements WebViewFragment.OnW @Override protected void onDestroy() { - super.onDestroy(); nativeOnDestroy(); + /* + cduarte https://highfidelity.manuscript.com/f/cases/16712/App-freezes-on-opening-randomly + After Qt upgrade to 5.11 we had a black screen crash after closing the application with + the hardware button "Back" and trying to start the app again. It could only be fixed after + totally closing the app swiping it in the list of running apps. + This problem did not happen with the previous Qt version. + After analysing changes we came up with this case and change: + https://codereview.qt-project.org/#/c/218882/ + In summary they've moved libs loading to the same thread as main() and as a matter of correctness + in the onDestroy method in QtActivityDelegate, they exit that thread with `QtNative.m_qtThread.exit();` + That exit call is the main reason of this problem. + + In this fix we just replace the `QtApplication.invokeDelegate();` call that may end using the + entire onDestroy method including that thread exit line for other three lines that purposely + terminate qt (borrowed from QtActivityDelegate::onDestroy as well). + */ + QtNative.terminateQt(); + QtNative.setActivity(null, null); + System.exit(0); + super.onDestroy(); } @Override diff --git a/android/apps/interface/src/main/java/io/highfidelity/hifiinterface/fragment/SignedInFragment.java b/android/apps/interface/src/main/java/io/highfidelity/hifiinterface/fragment/SignedInFragment.java new file mode 100644 index 0000000000..9ed2f1c7f5 --- /dev/null +++ b/android/apps/interface/src/main/java/io/highfidelity/hifiinterface/fragment/SignedInFragment.java @@ -0,0 +1,73 @@ +package io.highfidelity.hifiinterface.fragment; + +import android.app.Fragment; +import android.content.Context; +import android.os.Bundle; +import android.text.Html; +import android.text.Spanned; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.Button; +import android.widget.TextView; + +import java.io.IOException; +import java.io.InputStream; + +import io.highfidelity.hifiinterface.R; + +public class SignedInFragment extends Fragment { + + private Button mGetStartedButton; + private OnSignedInInteractionListener mListener; + + public SignedInFragment() { + // Required empty public constructor + } + + public static SignedInFragment newInstance() { + SignedInFragment fragment = new SignedInFragment(); + return fragment; + } + + @Override + public View onCreateView(LayoutInflater inflater, ViewGroup container, + Bundle savedInstanceState) { + View rootView = inflater.inflate(R.layout.fragment_signedin, container, false); + mGetStartedButton = rootView.findViewById(R.id.getStarted); + + mGetStartedButton.setOnClickListener(view -> { + getStarted(); + }); + + return rootView; + } + + @Override + public void onAttach(Context context) { + super.onAttach(context); + if (context instanceof SignedInFragment.OnSignedInInteractionListener) { + mListener = (SignedInFragment.OnSignedInInteractionListener) context; + } else { + throw new RuntimeException(context.toString() + + " must implement OnSignedInInteractionListener"); + } + } + + @Override + public void onDetach() { + super.onDetach(); + mListener = null; + } + + public void getStarted() { + if (mListener != null) { + mListener.onGettingStarted(); + } + } + + public interface OnSignedInInteractionListener { + void onGettingStarted(); + } + +} diff --git a/android/apps/interface/src/main/res/drawable/rounded_button_color1.xml b/android/apps/interface/src/main/res/drawable/rounded_button.xml similarity index 100% rename from android/apps/interface/src/main/res/drawable/rounded_button_color1.xml rename to android/apps/interface/src/main/res/drawable/rounded_button.xml diff --git a/android/apps/interface/src/main/res/drawable/rounded_edit.xml b/android/apps/interface/src/main/res/drawable/rounded_edit.xml new file mode 100644 index 0000000000..3c1cac4d1d --- /dev/null +++ b/android/apps/interface/src/main/res/drawable/rounded_edit.xml @@ -0,0 +1,7 @@ + + + + + + \ No newline at end of file diff --git a/android/apps/interface/src/main/res/layout/fragment_signedin.xml b/android/apps/interface/src/main/res/layout/fragment_signedin.xml new file mode 100644 index 0000000000..1c982b0e0d --- /dev/null +++ b/android/apps/interface/src/main/res/layout/fragment_signedin.xml @@ -0,0 +1,63 @@ + + + + + + + +