From 89a9f9bbc4e9cb99aa8ad99cb760b44fa04d08d1 Mon Sep 17 00:00:00 2001 From: Simon Date: Sat, 25 Apr 2020 15:37:26 +0100 Subject: [PATCH] Better error checking --- Projects/Android/jni/QzDoom/QzDoom_SurfaceView.c | 16 +++++++++++----- java/com/drbeef/questzdoom/GLES3JNIActivity.java | 6 +++--- java/com/drbeef/questzdoom/GLES3JNILib.java | 2 +- 3 files changed, 15 insertions(+), 9 deletions(-) diff --git a/Projects/Android/jni/QzDoom/QzDoom_SurfaceView.c b/Projects/Android/jni/QzDoom/QzDoom_SurfaceView.c index 35c0bba..8260f60 100644 --- a/Projects/Android/jni/QzDoom/QzDoom_SurfaceView.c +++ b/Projects/Android/jni/QzDoom/QzDoom_SurfaceView.c @@ -159,7 +159,8 @@ LAMBDA1VR Stuff //This is now controlled by the engine static bool useVirtualScreen = true; -static bool hasIWADsAndLauncher = false; +static bool hasIWADs = false; +static bool hasLauncher = false; void QzDoom_setUseScreenLayer(bool use) { @@ -1475,11 +1476,15 @@ void * AppThreadFunction(void * parm ) { showLoadingIcon(); } - if (hasIWADsAndLauncher) { + if (hasIWADs && hasLauncher) { //Should now be all set up and ready - start the Doom main loop VR_DoomMain(argc, argv); } else { - vrapi_ShowFatalError(&gAppState.Java, "Missing Launcher", "Please install Baggyg's Launcher to start QuestZDoom correctly", "", 666); + if (!hasLauncher) { + vrapi_ShowFatalError(&gAppState.Java, "Missing Launcher", + "Please install Baggyg's Launcher to start QuestZDoom correctly", + "QuestZDoom", 666); + } } //We are done, shutdown cleanly @@ -1750,7 +1755,7 @@ int JNI_OnLoad(JavaVM* vm, void* reserved) } JNIEXPORT jlong JNICALL Java_com_drbeef_questzdoom_GLES3JNILib_onCreate( JNIEnv * env, jclass activityClass, jobject activity, - jstring commandLineParams, jboolean jHasIWADs) + jstring commandLineParams, jboolean jHasIWADs, jboolean jHasLauncher) { ALOGV( " GLES3JNILib::onCreate()" ); @@ -1767,7 +1772,8 @@ JNIEXPORT jlong JNICALL Java_com_drbeef_questzdoom_GLES3JNILib_onCreate( JNIEnv jboolean iscopy; const char *arg = (*env)->GetStringUTFChars(env, commandLineParams, &iscopy); - hasIWADsAndLauncher = jHasIWADs != 0; + hasIWADs = jHasIWADs != 0; + hasLauncher = jHasLauncher != 0; char *cmdLine = NULL; if (arg && strlen(arg)) diff --git a/java/com/drbeef/questzdoom/GLES3JNIActivity.java b/java/com/drbeef/questzdoom/GLES3JNIActivity.java index 61db9aa..3d8a519 100644 --- a/java/com/drbeef/questzdoom/GLES3JNIActivity.java +++ b/java/com/drbeef/questzdoom/GLES3JNIActivity.java @@ -195,9 +195,9 @@ import android.support.v4.content.ContextCompat; //If there are no IWADS, then should exit after creating the folders //to allow the launcher app to do its thing, otherwise it would crash anyway //Check that launcher is installed too - boolean hasIWADsAndLauncher = ((new File("/sdcard/QuestZDoom/wads").listFiles().length) > 0) && - isPackageInstalled("com.Baggyg.QuestZDoom_Launcher", this.getPackageManager()); - mNativeHandle = GLES3JNILib.onCreate( this, commandLineParams, hasIWADsAndLauncher); + boolean hasIWADs = ((new File("/sdcard/QuestZDoom/wads").listFiles().length) > 0); + boolean hasLauncher = isPackageInstalled("com.Baggyg.QuestZDoom_Launcher", this.getPackageManager()); + mNativeHandle = GLES3JNILib.onCreate( this, commandLineParams, hasIWADs, hasLauncher ); } public void copy_asset(String path, String name, boolean force) { diff --git a/java/com/drbeef/questzdoom/GLES3JNILib.java b/java/com/drbeef/questzdoom/GLES3JNILib.java index c426061..cd20de1 100644 --- a/java/com/drbeef/questzdoom/GLES3JNILib.java +++ b/java/com/drbeef/questzdoom/GLES3JNILib.java @@ -9,7 +9,7 @@ import android.view.Surface; public class GLES3JNILib { // Activity lifecycle - public static native long onCreate( Activity obj, String commandLineParams, boolean hasIWADs ); + public static native long onCreate( Activity obj, String commandLineParams, boolean hasIWADs, boolean hasLauncher ); public static native void onStart( long handle, Object obj ); public static native void onResume( long handle ); public static native void onPause( long handle );