From db460e985619e29a93e20f8e15d4761a214998c2 Mon Sep 17 00:00:00 2001 From: Gabriel Calero Date: Fri, 11 May 2018 16:09:40 -0300 Subject: [PATCH] Put back the worker thread for account manager in android --- .../hifiinterface/HomeActivity.java | 1 - .../qt5/android/bindings/QtActivity.java | 18 +----------------- interface/src/AndroidHelper.cpp | 8 ++++++++ interface/src/AndroidHelper.h | 3 +++ interface/src/Application.cpp | 5 +++++ 5 files changed, 17 insertions(+), 18 deletions(-) diff --git a/android/app/src/main/java/io/highfidelity/hifiinterface/HomeActivity.java b/android/app/src/main/java/io/highfidelity/hifiinterface/HomeActivity.java index 5476460b38..b403aba84e 100644 --- a/android/app/src/main/java/io/highfidelity/hifiinterface/HomeActivity.java +++ b/android/app/src/main/java/io/highfidelity/hifiinterface/HomeActivity.java @@ -236,7 +236,6 @@ public class HomeActivity extends AppCompatActivity implements NavigationView.On } @Override public void onBackPressed() { - QtActivity.forceQuit(); finish(); } diff --git a/android/app/src/main/java/org/qtproject/qt5/android/bindings/QtActivity.java b/android/app/src/main/java/org/qtproject/qt5/android/bindings/QtActivity.java index 517008cf9a..9fcaea6153 100644 --- a/android/app/src/main/java/org/qtproject/qt5/android/bindings/QtActivity.java +++ b/android/app/src/main/java/org/qtproject/qt5/android/bindings/QtActivity.java @@ -69,9 +69,6 @@ public class QtActivity extends Activity { private QtActivityLoader m_loader = new QtActivityLoader(this); public boolean isLoading; - private boolean forcedQuit; - - public static QtActivity instance; public QtActivity() { } @@ -240,7 +237,6 @@ public class QtActivity extends Activity { public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); onCreateHook(savedInstanceState); - instance = this; } //--------------------------------------------------------------------------- @@ -366,7 +362,6 @@ public class QtActivity extends Activity { protected void onDestroy() { super.onDestroy(); QtApplication.invokeDelegate(); - instance = null; } //--------------------------------------------------------------------------- @@ -643,24 +638,13 @@ public class QtActivity extends Activity { protected void onStart() { super.onStart(); QtApplication.invokeDelegate(); - if (forcedQuit) { - finish(); - } } //--------------------------------------------------------------------------- @Override protected void onStop() { super.onStop(); - if (forcedQuit) { - QtApplication.invokeDelegate(); - } - } - - public static void forceQuit() { - if (instance != null) { - instance.forcedQuit = true; - } + QtApplication.invokeDelegate(); } //--------------------------------------------------------------------------- diff --git a/interface/src/AndroidHelper.cpp b/interface/src/AndroidHelper.cpp index dd2c344620..fad4468622 100644 --- a/interface/src/AndroidHelper.cpp +++ b/interface/src/AndroidHelper.cpp @@ -10,11 +10,19 @@ // #include "AndroidHelper.h" #include +#include AndroidHelper::AndroidHelper() { + workerThread.start(); } AndroidHelper::~AndroidHelper() { + workerThread.quit(); + workerThread.wait(); +} + +void AndroidHelper::init() { + DependencyManager::get()->moveToThread(&workerThread); } void AndroidHelper::requestActivity(const QString &activityName) { diff --git a/interface/src/AndroidHelper.h b/interface/src/AndroidHelper.h index 019db9c4a7..0c6d05cbb2 100644 --- a/interface/src/AndroidHelper.h +++ b/interface/src/AndroidHelper.h @@ -13,6 +13,7 @@ #define hifi_Android_Helper_h #include +#include class AndroidHelper : public QObject { Q_OBJECT @@ -21,6 +22,7 @@ public: static AndroidHelper instance; return instance; } + void init(); void requestActivity(const QString &activityName); void notifyLoadComplete(); void goBackFromAndroidActivity(); @@ -35,6 +37,7 @@ signals: private: AndroidHelper(); ~AndroidHelper(); + QThread workerThread; }; #endif \ No newline at end of file diff --git a/interface/src/Application.cpp b/interface/src/Application.cpp index 5f9bafdf65..2852cb38c8 100644 --- a/interface/src/Application.cpp +++ b/interface/src/Application.cpp @@ -850,7 +850,11 @@ bool setupEssentials(int& argc, char** argv, bool runningMarkerExisted) { DependencyManager::set(); DependencyManager::set(); DependencyManager::set(); +#if defined(Q_OS_ANDROID) + DependencyManager::set(); // use the default user agent getter +#else DependencyManager::set(std::bind(&Application::getUserAgent, qApp)); +#endif DependencyManager::set(); DependencyManager::set(ScriptEngine::CLIENT_SCRIPT); DependencyManager::set(); @@ -2246,6 +2250,7 @@ Application::Application(int& argc, char** argv, QElapsedTimer& startupTimer, bo qCDebug(interfaceapp) << "Metaverse session ID is" << uuidStringWithoutCurlyBraces(accountManager->getSessionID()); #if defined(Q_OS_ANDROID) + AndroidHelper::instance().init(); AndroidHelper::instance().notifyLoadComplete(); #endif }