From 8848d0210abdc4eb141385cb53c9ecec2753d5ea Mon Sep 17 00:00:00 2001
From: amerhifi <amer@ad.highfidelity.io>
Date: Fri, 8 Feb 2019 00:27:25 -0800
Subject: [PATCH] stuff

---
 .../questInterface/src/main/cpp/native.cpp    | 63 +++----------------
 .../questInterface/QuestActivity.java         | 17 +++--
 .../oculus/OculusMobileActivity.java          | 14 +----
 .../android/bindings/QtActivityLoader.java    |  3 -
 4 files changed, 19 insertions(+), 78 deletions(-)

diff --git a/android/apps/questInterface/src/main/cpp/native.cpp b/android/apps/questInterface/src/main/cpp/native.cpp
index 02b585203d..5a4b1ee4ad 100644
--- a/android/apps/questInterface/src/main/cpp/native.cpp
+++ b/android/apps/questInterface/src/main/cpp/native.cpp
@@ -43,76 +43,31 @@ extern "C" {
         initOculusPlatform(env, obj);
     }
 
-QAndroidJniObject __interfaceActivity;
-
     JNIEXPORT void JNICALL
-    Java_io_highfidelity_questInterface_QuestActivity_nativeOnCreate(JNIEnv *env, jobject obj) {
+    Java_io_highfidelity_questInterface_QuestActivity_questNativeOnCreate(JNIEnv *env, jobject obj) {
         initOculusPlatform(env, obj);
-        __interfaceActivity = QAndroidJniObject(obj);
+
 
         if(qApp) {
             QThread *thr = qApp->thread();
+            AndroidHelper::instance().moveToThread(thr);
+        }
+        else{
+            __android_log_print(ANDROID_LOG_ERROR,"QQQ_", "APP is not valid");
         }
-
-        AndroidHelper::instance().moveToThread(thr);
-
-
-         qRegisterMetaType<QAndroidJniObject>("QAndroidJniObject");
-
-        JavaVM* jvm;
-        env->GetJavaVM(&jvm);
-
-        QObject::connect(&AndroidHelper::instance(), &AndroidHelper::androidActivityRequested, [jvm](const QString& a, const bool backToScene, QMap<QString, QString> args) {
-            JNIEnv* myNewEnv;
-            JavaVMAttachArgs jvmArgs;
-            jvmArgs.version = JNI_VERSION_1_6; // choose your JNI version
-            jvmArgs.name = NULL; // you might want to give the java thread a name
-            jvmArgs.group = NULL; // you might want to assign the java thread to a ThreadGroup
-
-            int attachedHere = 0; // know if detaching at the end is necessary
-            jint res = jvm->GetEnv((void**)&myNewEnv, JNI_VERSION_1_6); // checks if current env needs attaching or it is already attached
-            if (JNI_OK != res) {
-                qDebug() << "[JCRASH] GetEnv env not attached yet, attaching now..";
-                res = jvm->AttachCurrentThread(reinterpret_cast<JNIEnv **>(&myNewEnv), &jvmArgs);
-                if (JNI_OK != res) {
-                    qDebug() << "[JCRASH] Failed to AttachCurrentThread, ErrorCode = " << res;
-                    return;
-                } else {
-                    attachedHere = 1;
-                }
-            }
-
-            QAndroidJniObject string = QAndroidJniObject::fromString(a);
-            jboolean jBackToScene = (jboolean) backToScene;
-            jclass hashMapClass = myNewEnv->FindClass("java/util/HashMap");
-            jmethodID mapClassConstructor =  myNewEnv->GetMethodID(hashMapClass, "<init>", "()V");
-            jobject hashmap = myNewEnv->NewObject(hashMapClass, mapClassConstructor);
-            jmethodID mapClassPut = myNewEnv->GetMethodID(hashMapClass, "put", "(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;");
-            QMap<QString, QString>::iterator i;
-            for (i = args.begin(); i != args.end(); ++i) {
-                QAndroidJniObject jKey = QAndroidJniObject::fromString(i.key());
-                QAndroidJniObject jValue = QAndroidJniObject::fromString(i.value());
-                myNewEnv->CallObjectMethod(hashmap, mapClassPut, jKey.object<jstring>(), jValue.object<jstring>());
-            }
-            __interfaceActivity.callMethod<void>("openAndroidActivity", "(Ljava/lang/String;ZLjava/util/HashMap;)V", string.object<jstring>(), jBackToScene, hashmap);
-            if (attachedHere) {
-                jvm->DetachCurrentThread();
-            }
-        });
-
     }
 
     JNIEXPORT void JNICALL
-    Java_io_highfidelity_questInterface_QuestActivity_nativeOnDestroy(JNIEnv *env, jobject obj) {
+    Java_io_highfidelity_questInterface_QuestActivity_questNativeOnDestroy(JNIEnv *env, jobject obj) {
     }
 
     JNIEXPORT void JNICALL
-    Java_io_highfidelity_questInterface_QuestActivity_nativeOnPause(JNIEnv *env, jobject obj) {
+    Java_io_highfidelity_questInterface_QuestActivity_questNativeOnPause(JNIEnv *env, jobject obj) {
         AndroidHelper::instance().notifyEnterBackground();
     }
 
     JNIEXPORT void JNICALL
-    Java_io_highfidelity_questInterface_QuestActivity_nativeOnResume(JNIEnv *env, jobject obj) {
+    Java_io_highfidelity_questInterface_QuestActivity_questNativeOnResume(JNIEnv *env, jobject obj) {
         AndroidHelper::instance().notifyEnterForeground();
     }
 
diff --git a/android/apps/questInterface/src/main/java/io/highfidelity/questInterface/QuestActivity.java b/android/apps/questInterface/src/main/java/io/highfidelity/questInterface/QuestActivity.java
index a7aa93dbb9..a482e98a24 100644
--- a/android/apps/questInterface/src/main/java/io/highfidelity/questInterface/QuestActivity.java
+++ b/android/apps/questInterface/src/main/java/io/highfidelity/questInterface/QuestActivity.java
@@ -19,38 +19,37 @@ import io.highfidelity.oculus.OculusMobileActivity;
 import io.highfidelity.utils.HifiUtils;
 
 public class QuestActivity extends OculusMobileActivity {
-    private native void nativeOnCreate();
-    private native void nativeOnDestroy();
-    private native void nativeOnPause();
-    private native void nativeOnResume();
-
+    private native void questNativeOnCreate();
+    private native void questNativeOnDestroy();
+    private native void questNativeOnPause();
+    private native void questNativeOnResume();
 
     @Override
     public void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
         getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
         HifiUtils.upackAssets(getAssets(), getCacheDir().getAbsolutePath());
-        nativeOnCreate();
+        questNativeOnCreate();
     }
 
 
     @Override
     protected void onPause() {
         super.onPause();
-        nativeOnPause();
+        questNativeOnPause();
 
     }
 
     @Override
     protected void onResume() {
         super.onResume();
-        nativeOnResume();
+        questNativeOnResume();
     }
 
     @Override
     protected void onDestroy() {
         super.onDestroy();
-        nativeOnDestroy();
+        questNativeOnDestroy();
     }
 
 }
diff --git a/android/libraries/oculus/src/main/java/io/highfidelity/oculus/OculusMobileActivity.java b/android/libraries/oculus/src/main/java/io/highfidelity/oculus/OculusMobileActivity.java
index b06f850afc..0a39e3abf0 100644
--- a/android/libraries/oculus/src/main/java/io/highfidelity/oculus/OculusMobileActivity.java
+++ b/android/libraries/oculus/src/main/java/io/highfidelity/oculus/OculusMobileActivity.java
@@ -36,29 +36,19 @@ public class OculusMobileActivity extends QtActivity implements SurfaceHolder.Ca
     private SurfaceView mView;
     private SurfaceHolder mSurfaceHolder;
 
-    public static void launch(Activity activity) {
-        if (activity != null) {
-            activity.runOnUiThread(()->{
-                activity.startActivity(new Intent(activity, OculusMobileActivity.class));
-            });
-        }
-    }
-
     @Override
     public void onCreate(Bundle savedInstanceState) {
         Log.w(TAG, "QQQ onCreate");
         super.onCreate(savedInstanceState);
 
-        getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
-
         // Create a native surface for VR rendering (Qt GL surfaces are not suitable
         // because of the lack of fine control over the surface callbacks)
         mView = new SurfaceView(this);
-        setContentView(mView);
         mView.getHolder().addCallback(this);
-
+        setContentView(mView);
         // Forward the create message to the JNI code
         nativeOnCreate();
+
     }
 
     @Override
diff --git a/android/libraries/qt/src/main/java/org/qtproject/qt5/android/bindings/QtActivityLoader.java b/android/libraries/qt/src/main/java/org/qtproject/qt5/android/bindings/QtActivityLoader.java
index 5258c0fb88..e3066a3bd9 100644
--- a/android/libraries/qt/src/main/java/org/qtproject/qt5/android/bindings/QtActivityLoader.java
+++ b/android/libraries/qt/src/main/java/org/qtproject/qt5/android/bindings/QtActivityLoader.java
@@ -79,7 +79,6 @@ public class QtActivityLoader {
     private static final String EXTRACT_STYLE_MINIMAL_KEY = "extract.android.style.option";
     private static final int BUFFER_SIZE = 1024;
 
-    public boolean Created=false;
     String APPLICATION_PARAMETERS = null; // use this variable to pass any parameters to your application,
     String ENVIRONMENT_VARIABLES = "QT_USE_ANDROID_NATIVE_DIALOGS=1";
     String[] QT_ANDROID_THEMES = null;
@@ -498,8 +497,6 @@ public class QtActivityLoader {
             }
 
             startApp();
-
-            Created=true;
         }
     }
 }