Handle traversal state changes and errors

Traversal connections show in the joining info UI.
Non fatal errors show the retry button.
Fatal errors end the netplay session.
This commit is contained in:
Tom Pratt
2026-05-05 18:50:04 +02:00
committed by Tom Pratt
parent 86a0f22887
commit 86de5ef4b0
11 changed files with 247 additions and 12 deletions

View File

@@ -49,6 +49,7 @@ static jmethodID s_netplay_on_show_game_digest_dialog;
static jmethodID s_netplay_on_set_game_digest_progress;
static jmethodID s_netplay_on_set_game_digest_result;
static jmethodID s_netplay_on_abort_game_digest;
static jmethodID s_netplay_on_traversal_state_changed;
static jclass s_netplay_player_class;
static jmethodID s_netplay_player_constructor;
@@ -363,6 +364,11 @@ jmethodID GetNetplayOnAbortGameDigest()
return s_netplay_on_abort_game_digest;
}
jmethodID GetNetplayOnTraversalStateChanged()
{
return s_netplay_on_traversal_state_changed;
}
jclass GetNetplayPlayerClass()
{
return s_netplay_player_class;
@@ -813,6 +819,9 @@ JNIEXPORT jint JNI_OnLoad(JavaVM* vm, void* reserved)
env->GetMethodID(netplay_class, "onSetGameDigestResult", "(ILjava/lang/String;)V");
s_netplay_on_abort_game_digest =
env->GetMethodID(netplay_class, "onAbortGameDigest", "()V");
s_netplay_on_traversal_state_changed = env->GetMethodID(
netplay_class, "onTraversalStateChanged",
"(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V");
env->DeleteLocalRef(netplay_class);
const jclass netplay_player_class =