when creating game in response to relay invitation. Opening game in
background (so it can connect) makes it crash trying to use stuff it
failed to get because it has no Utils instance.
# Please enter a commit message to explain why this merge is necessary,
# especially if it merges an updated upstream into a topic branch.
#
# Lines starting with '#' will be ignored, and an empty message aborts
# the commit.
works between linux and Android clients. Required renaming so struct
names and names of fields within match in c and java code. The point
is to test this as the foundation of rematch: now you have to type in
a deviceID in order to invite, which clearly sucks for users. Either
that goes away, or it's replaced with something that scans existing
games and lists past opponents as possible invitees.
on device, e.g. sms-only sent to a tablet. Strip the unsupported types
when creating the game, and then on game open suggest to user he
delete (with explanation)
to relay but other address modes are present, offer to remove the
relay from the game, and if that choice is taken confirm with an
explanation of the limits of what remains.
connect, give user the option of inviting "anyway", but warn that
there will be no relay connection used in that game. And then remove
the relay addressing from the invitation info.
to reconnect when the network connection changes (e.g. user switches
from wifi connection to cellular). The packet is still dropped, so a
lower level will need to send it again. Eventually the relay needs to
keep a queue of un-acked packets, or track stuff needing resending the
way BTService does.
connect to relay, instead of suggesting user invite another player
warn him/her that it's unconnected and suggest opening again
later. The problem this addresses is that a game must be opened to
make the initial relay connection, and that doesn't happen in the
background. This is a temporary fix that should prevent sending
invitations to games that the relay doesn't yet know about.
running. This is fairly high-risk -- Google runs one AsyncTask at a
time because people get themselves in trouble otherwise -- but without
it the games don't load until the initial dict-fetch task finishes.