SDL: new method SDL_ANDROID_RestartMyself() that will restart current app
This commit is contained in:
@@ -123,6 +123,9 @@ extern DECLSPEC void SDLCALL SDL_ANDROID_OpenExternalApp(const char *package, co
|
||||
/* Open an Android web browser, or Chrome, or Youtube for video links. Just a wrapper for SDL_ANDROID_OpenExternalApp(NULL, NULL, url) */
|
||||
extern DECLSPEC void SDLCALL SDL_ANDROID_OpenExternalWebBrowser(const char *url);
|
||||
|
||||
/* Restart current app, you can pass a string to the new app instance, which can be retrieved with getenv("SDL_RESTART_PARAMS") */
|
||||
extern DECLSPEC void SDLCALL SDL_ANDROID_RestartMyself(const char *restartParams);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
@@ -85,6 +85,7 @@ static jmethodID JavaRequestNewAdvertisement = NULL;
|
||||
static jmethodID JavaRequestCloudSave = NULL;
|
||||
static jmethodID JavaRequestCloudLoad = NULL;
|
||||
static jmethodID JavaRequestOpenExternalApp = NULL;
|
||||
static jmethodID JavaRequestRestartMyself = NULL;
|
||||
static int glContextLost = 0;
|
||||
static int showScreenKeyboardDeferred = 0;
|
||||
static const char * showScreenKeyboardOldText = "";
|
||||
@@ -349,6 +350,7 @@ JAVA_EXPORT_NAME(DemoRenderer_nativeInitJavaCallbacks) ( JNIEnv* env, jobject t
|
||||
JavaRequestCloudLoad = (*JavaEnv)->GetMethodID(JavaEnv, JavaRendererClass, "cloudLoad",
|
||||
"(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Z");
|
||||
JavaRequestOpenExternalApp = (*JavaEnv)->GetMethodID(JavaEnv, JavaRendererClass, "openExternalApp", "(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V");
|
||||
JavaRequestRestartMyself = (*JavaEnv)->GetMethodID(JavaEnv, JavaRendererClass, "restartMyself", "(Ljava/lang/String;)V");
|
||||
|
||||
ANDROID_InitOSKeymap();
|
||||
}
|
||||
@@ -576,6 +578,15 @@ void SDLCALL SDL_ANDROID_OpenExternalApp(const char *package, const char *activi
|
||||
(*JavaEnv)->PopLocalFrame(JavaEnv, NULL);
|
||||
}
|
||||
|
||||
void SDLCALL SDL_ANDROID_RestartMyself(const char *restartParams)
|
||||
{
|
||||
(*JavaEnv)->PushLocalFrame(JavaEnv, 1);
|
||||
jstring s1 = restartParams ? (*JavaEnv)->NewStringUTF(JavaEnv, restartParams) : (*JavaEnv)->NewStringUTF(JavaEnv, "");
|
||||
(*JavaEnv)->CallVoidMethod( JavaEnv, JavaRenderer, JavaRequestRestartMyself, s1 );
|
||||
(*JavaEnv)->DeleteLocalRef(JavaEnv, s1);
|
||||
(*JavaEnv)->PopLocalFrame(JavaEnv, NULL);
|
||||
}
|
||||
|
||||
void SDLCALL SDL_ANDROID_OpenExternalWebBrowser(const char *url)
|
||||
{
|
||||
SDL_ANDROID_OpenExternalApp(NULL, NULL, url);
|
||||
|
||||
Reference in New Issue
Block a user