diff --git a/xwords4/android/XWords4/res/values/strings.xml b/xwords4/android/XWords4/res/values/strings.xml
index c5650e22f..521660c42 100644
--- a/xwords4/android/XWords4/res/values/strings.xml
+++ b/xwords4/android/XWords4/res/values/strings.xml
@@ -365,7 +365,11 @@
check off-device players.
Modified first player.
- Connecting via Relay, room \"%s\"
+ Configured for room
+ \"%s\"
+ Waiting for players in room
+ \"%s\"
+ Game in play in room \"%s\"
Game over
%d moves played
diff --git a/xwords4/android/XWords4/src/org/eehouse/android/xw4/jni/GameSummary.java b/xwords4/android/XWords4/src/org/eehouse/android/xw4/jni/GameSummary.java
index 6a2dee187..d6953d405 100644
--- a/xwords4/android/XWords4/src/org/eehouse/android/xw4/jni/GameSummary.java
+++ b/xwords4/android/XWords4/src/org/eehouse/android/xw4/jni/GameSummary.java
@@ -118,10 +118,18 @@ public class GameSummary {
{
String result = null;
if ( isRelayGame() ) {
+
Assert.assertTrue( CommsAddrRec.CommsConnType.COMMS_CONN_RELAY
== conType );
- String fmt = m_context.getString( R.string.summary_fmt_relay );
- result = String.format( fmt, roomName );
+ int fmtID;
+ if ( null == relayID || 0 == relayID.length() ) {
+ fmtID = R.string.summary_relay_conff;
+ } else if ( anyMissing() ) {
+ fmtID = R.string.summary_relay_waitf;
+ } else {
+ fmtID = R.string.summary_relay_connf;
+ }
+ result = String.format( m_context.getString(fmtID), roomName );
}
return result;
}
@@ -144,6 +152,18 @@ public class GameSummary {
return result;
}
+ private boolean anyMissing()
+ {
+ boolean missing = false;
+ for ( int ii = 0; ii < nPlayers; ++ii ) {
+ if ( !isLocal(ii) && (0 != ((1 << ii) & missingPlayers) ) ) {
+ missing = true;
+ break;
+ }
+ }
+ return missing;
+ }
+
public int giflags() {
int result;
if ( null == m_gi ) {