mirror of
https://github.com/AleziaKurdis/overte.git
synced 2025-04-10 16:23:20 +02:00
moved asset loading to the permissions screen, added the onNotifyAppLoaded signal connect function as well as binding to the qtread with the ui thread.
This commit is contained in:
parent
8848d0210a
commit
e8a35c63c7
6 changed files with 34 additions and 13 deletions
|
@ -1,3 +1,4 @@
|
|||
|
||||
package io.highfidelity.hifiinterface;
|
||||
|
||||
import android.app.Activity;
|
||||
|
|
|
@ -42,21 +42,31 @@ extern "C" {
|
|||
Java_io_highfidelity_questInterface_QuestActivity_nativeInitOculusPlatform(JNIEnv *env, jobject obj){
|
||||
initOculusPlatform(env, obj);
|
||||
}
|
||||
|
||||
QAndroidJniObject __interfaceActivity;
|
||||
JNIEXPORT void JNICALL
|
||||
Java_io_highfidelity_questInterface_QuestActivity_questNativeOnCreate(JNIEnv *env, jobject obj) {
|
||||
__android_log_print(ANDROID_LOG_WARN, "QQQ","questNativeOnCreate called");
|
||||
initOculusPlatform(env, obj);
|
||||
__interfaceActivity = QAndroidJniObject (obj);
|
||||
QObject::connect(&AndroidHelper::instance(), &AndroidHelper::qtAppLoadComplete, []() {
|
||||
|
||||
|
||||
if(qApp) {
|
||||
QThread *thr = qApp->thread();
|
||||
AndroidHelper::instance().moveToThread(thr);
|
||||
}
|
||||
else{
|
||||
__android_log_print(ANDROID_LOG_ERROR,"QQQ_", "APP is not valid");
|
||||
}
|
||||
QObject::connect(&AndroidHelper::instance(), &AndroidHelper::qtAppLoadComplete, []() {
|
||||
__interfaceActivity.callMethod<void>("onAppLoadedComplete", "()V");
|
||||
|
||||
QObject::disconnect(&AndroidHelper::instance(), &AndroidHelper::qtAppLoadComplete, nullptr,
|
||||
nullptr);
|
||||
});
|
||||
|
||||
QObject::disconnect(&AndroidHelper::instance(), &AndroidHelper::qtAppLoadComplete,
|
||||
nullptr, nullptr);
|
||||
});
|
||||
}
|
||||
|
||||
JNIEXPORT void Java_io_highfidelity_questInterface_QuestActivity_questOnAppAfterLoad(JNIEnv* env, jobject obj) {
|
||||
AndroidHelper::instance().moveToThread(qApp->thread());
|
||||
}
|
||||
|
||||
JNIEXPORT void JNICALL
|
||||
Java_io_highfidelity_questInterface_QuestActivity_questNativeOnDestroy(JNIEnv *env, jobject obj) {
|
||||
}
|
||||
|
|
|
@ -6,6 +6,8 @@ import android.content.Intent;
|
|||
import android.content.pm.PackageManager;
|
||||
import android.os.Bundle;
|
||||
|
||||
import io.highfidelity.utils.HifiUtils;
|
||||
|
||||
public class PermissionsChecker extends Activity {
|
||||
private static final int REQUEST_PERMISSIONS = 20;
|
||||
private static final String TAG = PermissionsChecker.class.getName();
|
||||
|
@ -44,6 +46,7 @@ public class PermissionsChecker extends Activity {
|
|||
}
|
||||
|
||||
private void launchActivityWithPermissions() {
|
||||
HifiUtils.upackAssets(getAssets(), getCacheDir().getAbsolutePath());
|
||||
startActivity(new Intent(this, QuestActivity.class));
|
||||
|
||||
}
|
||||
|
|
|
@ -13,6 +13,7 @@ package io.highfidelity.questInterface;
|
|||
|
||||
import android.content.Intent;
|
||||
import android.os.Bundle;
|
||||
import android.util.Log;
|
||||
import android.view.WindowManager;
|
||||
|
||||
import io.highfidelity.oculus.OculusMobileActivity;
|
||||
|
@ -23,15 +24,20 @@ public class QuestActivity extends OculusMobileActivity {
|
|||
private native void questNativeOnDestroy();
|
||||
private native void questNativeOnPause();
|
||||
private native void questNativeOnResume();
|
||||
|
||||
private native void questOnAppAfterLoad();
|
||||
String TAG = OculusMobileActivity.class.getSimpleName();
|
||||
@Override
|
||||
public void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
|
||||
HifiUtils.upackAssets(getAssets(), getCacheDir().getAbsolutePath());
|
||||
questNativeOnCreate();
|
||||
}
|
||||
|
||||
public void onAppLoadedComplete() {
|
||||
Log.w(TAG, "QQQ Load Completed");
|
||||
runOnUiThread(() -> {
|
||||
questOnAppAfterLoad();
|
||||
});
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onPause() {
|
||||
|
|
|
@ -44,11 +44,11 @@ public class OculusMobileActivity extends QtActivity implements SurfaceHolder.Ca
|
|||
// 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);
|
||||
|
||||
mView.getHolder().addCallback(this);
|
||||
setContentView(mView);
|
||||
// Forward the create message to the JNI code
|
||||
nativeOnCreate();
|
||||
|
||||
// Forward the create message to the JNI code
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -2428,6 +2428,7 @@ Application::Application(int& argc, char** argv, QElapsedTimer& startupTimer, bo
|
|||
connect(&AndroidHelper::instance(), &AndroidHelper::enterForeground, this, &Application::enterForeground);
|
||||
AndroidHelper::instance().notifyLoadComplete();
|
||||
#endif
|
||||
AndroidHelper::instance().notifyLoadComplete();
|
||||
pauseUntilLoginDetermined();
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue