diff --git a/android/app/src/main/cpp/chiaki-jni.c b/android/app/src/main/cpp/chiaki-jni.c index b32f3c6..d84a4a4 100644 --- a/android/app/src/main/cpp/chiaki-jni.c +++ b/android/app/src/main/cpp/chiaki-jni.c @@ -275,7 +275,12 @@ JNIEXPORT void JNICALL Java_com_metallic_chiaki_lib_ChiakiNative_sessionCreate(J err = chiaki_session_init(&session->session, &connect_info, &global_log); if(err != CHIAKI_ERR_SUCCESS) { - // TODO: free audio and video decoders and session (?) + CHIAKI_LOGE(&global_log, "JNI ChiakiSession failed to init"); + android_chiaki_video_decoder_fini(&session->video_decoder); + android_chiaki_audio_decoder_fini(&session->audio_decoder); + android_chiaki_audio_output_free(session->audio_output); + free(session); + session = NULL; goto beach; } @@ -390,6 +395,8 @@ static void android_discovery_service_cb(ChiakiDiscoveryHost *hosts, size_t host { AndroidDiscoveryService *service = user; + CHIAKI_LOGI(&global_log, "JNI Discovery Callback got %llu hosts", (unsigned long long)hosts_count); + JNIEnv *env = attach_thread_jni(); if(!env) return; diff --git a/android/app/src/main/java/com/metallic/chiaki/stream/StreamActivity.kt b/android/app/src/main/java/com/metallic/chiaki/stream/StreamActivity.kt index 3ce24c7..32b26b8 100644 --- a/android/app/src/main/java/com/metallic/chiaki/stream/StreamActivity.kt +++ b/android/app/src/main/java/com/metallic/chiaki/stream/StreamActivity.kt @@ -149,6 +149,10 @@ class StreamActivity : AppCompatActivity() dialog = null reconnect() } + .setOnDismissListener { + dialog = null + finish() + } .setNegativeButton(R.string.action_quit_session) { _, _ -> dialog = null finish() @@ -166,6 +170,10 @@ class StreamActivity : AppCompatActivity() dialog?.dismiss() val dialog = AlertDialog.Builder(this) .setMessage(getString(R.string.alert_message_session_create_error, state.error.errorCode.toString())) + .setOnDismissListener { + dialog = null + finish() + } .setNegativeButton(R.string.action_quit_session) { _, _ -> dialog = null finish() @@ -193,11 +201,15 @@ class StreamActivity : AppCompatActivity() R.string.alert_message_login_pin_request) .setView(view) .setPositiveButton(R.string.action_login_pin_connect) { _, _ -> - this.dialog = null + dialog = null viewModel.session.setLoginPin(pinEditText.text.toString()) } + .setOnDismissListener { + dialog = null + finish() + } .setNegativeButton(R.string.action_quit_session) { _, _ -> - this.dialog = null + dialog = null finish() } .create()