You've already forked godot
mirror of
https://github.com/godotengine/godot.git
synced 2025-11-05 12:10:55 +00:00
Merge branch 'master' into hotfix-android-unicode-ime-input
This commit is contained in:
@@ -440,7 +440,8 @@ public:
|
||||
case Variant::STRING: {
|
||||
|
||||
jobject o = env->CallObjectMethodA(instance,E->get().method,v);
|
||||
String singname = env->GetStringUTFChars((jstring)o, NULL );
|
||||
String str = env->GetStringUTFChars((jstring)o, NULL );
|
||||
ret=str;
|
||||
} break;
|
||||
case Variant::STRING_ARRAY: {
|
||||
|
||||
@@ -569,6 +570,11 @@ static jmethodID _hideKeyboard=0;
|
||||
static jmethodID _setScreenOrientation=0;
|
||||
static jmethodID _getUniqueID=0;
|
||||
|
||||
static jmethodID _playVideo=0;
|
||||
static jmethodID _isVideoPlaying=0;
|
||||
static jmethodID _pauseVideo=0;
|
||||
static jmethodID _stopVideo=0;
|
||||
|
||||
|
||||
static void _gfx_init_func(void* ud, bool gl2) {
|
||||
|
||||
@@ -629,17 +635,43 @@ static void _hide_vk() {
|
||||
env->CallVoidMethod(godot_io, _hideKeyboard);
|
||||
};
|
||||
|
||||
// virtual Error native_video_play(String p_path);
|
||||
// virtual bool native_video_is_playing();
|
||||
// virtual void native_video_pause();
|
||||
// virtual void native_video_stop();
|
||||
|
||||
static void _play_video(const String& p_path) {
|
||||
|
||||
}
|
||||
|
||||
static bool _is_video_playing() {
|
||||
JNIEnv* env = ThreadAndroid::get_env();
|
||||
return env->CallBooleanMethod(godot_io, _isVideoPlaying);
|
||||
//return false;
|
||||
}
|
||||
|
||||
static void _pause_video() {
|
||||
JNIEnv* env = ThreadAndroid::get_env();
|
||||
env->CallVoidMethod(godot_io, _pauseVideo);
|
||||
}
|
||||
|
||||
static void _stop_video() {
|
||||
JNIEnv* env = ThreadAndroid::get_env();
|
||||
env->CallVoidMethod(godot_io, _stopVideo);
|
||||
}
|
||||
|
||||
JNIEXPORT void JNICALL Java_com_android_godot_GodotLib_initialize(JNIEnv * env, jobject obj, jobject activity,jboolean p_need_reload_hook) {
|
||||
|
||||
__android_log_print(ANDROID_LOG_INFO,"godot","**INIT EVENT! - %p\n",env);
|
||||
|
||||
|
||||
initialized=true;
|
||||
_godot_instance=activity;
|
||||
|
||||
JavaVM *jvm;
|
||||
env->GetJavaVM(&jvm);
|
||||
|
||||
_godot_instance=env->NewGlobalRef(activity);
|
||||
// _godot_instance=activity;
|
||||
|
||||
__android_log_print(ANDROID_LOG_INFO,"godot","***************** HELLO FROM JNI!!!!!!!!");
|
||||
|
||||
@@ -676,6 +708,11 @@ JNIEXPORT void JNICALL Java_com_android_godot_GodotLib_initialize(JNIEnv * env,
|
||||
_showKeyboard = env->GetMethodID(c,"showKeyboard","(Ljava/lang/String;)V");
|
||||
_hideKeyboard = env->GetMethodID(c,"hideKeyboard","()V");
|
||||
_setScreenOrientation = env->GetMethodID(c,"setScreenOrientation","(I)V");
|
||||
|
||||
_playVideo = env->GetMethodID(c,"playVideo","(Ljava/lang/String;)V");
|
||||
_isVideoPlaying = env->GetMethodID(c,"isVideoPlaying","()Z");
|
||||
_pauseVideo = env->GetMethodID(c,"pauseVideo","()V");
|
||||
_stopVideo = env->GetMethodID(c,"stopVideo","()V");
|
||||
}
|
||||
|
||||
ThreadAndroid::make_default(jvm);
|
||||
@@ -686,7 +723,7 @@ JNIEXPORT void JNICALL Java_com_android_godot_GodotLib_initialize(JNIEnv * env,
|
||||
|
||||
|
||||
|
||||
os_android = new OS_Android(_gfx_init_func,env,_open_uri,_get_data_dir,_get_locale, _get_model,_show_vk, _hide_vk,_set_screen_orient,_get_unique_id);
|
||||
os_android = new OS_Android(_gfx_init_func,env,_open_uri,_get_data_dir,_get_locale, _get_model,_show_vk, _hide_vk,_set_screen_orient,_get_unique_id, _play_video, _is_video_playing, _pause_video, _stop_video);
|
||||
os_android->set_need_reload_hooks(p_need_reload_hook);
|
||||
|
||||
char wd[500];
|
||||
@@ -781,8 +818,10 @@ static void _initialize_java_modules() {
|
||||
jmethodID getClassLoader = env->GetMethodID(activityClass,"getClassLoader", "()Ljava/lang/ClassLoader;");
|
||||
|
||||
jobject cls = env->CallObjectMethod(_godot_instance, getClassLoader);
|
||||
//cls=env->NewGlobalRef(cls);
|
||||
|
||||
jclass classLoader = env->FindClass("java/lang/ClassLoader");
|
||||
//classLoader=(jclass)env->NewGlobalRef(classLoader);
|
||||
|
||||
jmethodID findClass = env->GetMethodID(classLoader, "loadClass", "(Ljava/lang/String;)Ljava/lang/Class;");
|
||||
|
||||
@@ -800,10 +839,17 @@ static void _initialize_java_modules() {
|
||||
ERR_EXPLAIN("Couldn't find singleton for class: "+m);
|
||||
ERR_CONTINUE(!singletonClass);
|
||||
}
|
||||
//singletonClass=(jclass)env->NewGlobalRef(singletonClass);
|
||||
|
||||
__android_log_print(ANDROID_LOG_INFO,"godot","****^*^*?^*^*class data %x",singletonClass);
|
||||
jmethodID initialize = env->GetStaticMethodID(singletonClass, "initialize", "(Landroid/app/Activity;)Lcom/android/godot/Godot$SingletonBase;");
|
||||
|
||||
if (!initialize) {
|
||||
|
||||
ERR_EXPLAIN("Couldn't find proper initialize function 'public static Godot.SingletonBase Class::initialize(Activity p_activity)' initializer for singleton class: "+m);
|
||||
ERR_CONTINUE(!initialize);
|
||||
|
||||
}
|
||||
jobject obj = env->CallStaticObjectMethod(singletonClass,initialize,_godot_instance);
|
||||
__android_log_print(ANDROID_LOG_INFO,"godot","****^*^*?^*^*class instance %x",obj);
|
||||
jobject gob = env->NewGlobalRef(obj);
|
||||
|
||||
Reference in New Issue
Block a user