Commit graph

1913 commits

Author SHA1 Message Date
Eric House
e2414ff3bd fix NPE crash
Not sure why it happens with one old game...
2024-01-04 09:50:24 -08:00
Eric House
0ba0dcff19 replace 'make default' with remembering last choice as default
Decided it's too difficult to unset the default and not bad to just
click "ok" a second time.
2024-01-04 09:50:24 -08:00
Eric House
3e6edd3ec4 remove the offer to reinvite from rematched games
Now that rematching creates all the invitations and an expectation of
how the invitees will be ordered it'll confuse things if unexpected
players show up. So don't allow players to send additional
invitations.
2024-01-04 09:50:24 -08:00
Eric House
1181e908dc Add option to choose how rematch-game players will be ordered
When rematching, some users have a convention that e.g. lowest scoring
player in the "parent" game goes first. So allow that, providing the
choice on each rematch until a default has been chosen. Support
changing that default in a new prefs setting.

The place I chose to enforce the order was on the host as invitees are
registering and being assigned slots. But by then there's no longer
any connection to the game that was rematched, e.g. to use its
scores. So during the rematched game creation process I create and
store with the new game the necessary ordering information. For the
3-and-4 device case, it was also necessary to tweak the information
about other guests that the host sends guests (added during earlier
work on rematching.)
2024-01-04 09:50:24 -08:00
Eric House
3b7994c291 changelog and version strings for release 2023-11-09 17:52:26 -08:00
Eric House
bdfe98a990 warn user when opening quashed game 2023-11-09 17:52:26 -08:00
Eric House
738552da2e remove dead code 2023-11-09 17:52:26 -08:00
Eric House
c9f1863c1e remove posts to noSuchGame()
Looks like ack() does all we need, with new param
2023-11-07 19:55:36 -08:00
Eric House
67cf8518de pass topic to ack() (so unretain can work) 2023-11-07 19:55:32 -08:00
Eric House
b962b18dff include devid in ack payload
So server can choose to unretain.
2023-11-06 17:24:20 -08:00
Eric House
e78d9fbc33 add quashed to summary, and show as part of games-list state 2023-11-06 13:11:34 -08:00
Eric House
3dcac063b5 show quashed state in net state icon (DEBUG only) 2023-11-06 13:11:34 -08:00
Eric House
259357a818 reduce sending of dead-game mqtt messages
Two cases dealt with here. First, if my opponent deletes the game when
I have an un-ack'd message, I'll keep sending it forever. Fix is to
flip a bit in comms in response to a game_gone event so no more
sending will happen. (Better than emptying the queue, as it leaves
open the possibility of resurrecting the game with code changes
later.) Second, if there's a retained message from a dead game I'll
keep receiving it until it's replaced, and if the game's dead it never
will be. Fix is to add a new api endpoint noSuchGame() to the relay2
server and to call it on receiving a message for which I have no game
to deliver it to. The endpoint "unretains" the message so I won't get
it again unless it's resent.
2023-11-05 12:01:43 -08:00
Eric House
b876ae1ff8 add restart menuitem (debug builds only) 2023-10-27 09:05:13 -07:00
Eric House
2a9b999b99 cleanup 2023-10-25 13:55:51 -07:00
Eric House
892edc098b cleanup and move strings 2023-08-14 11:34:43 -07:00
Eric House
e708b14c59 remove assert until I can fix it 2023-08-08 12:09:47 -07:00
Eric House
185f25953d cleanup: add an assert and remove some logging 2023-07-01 12:14:07 -07:00
Eric House
99b4af8e53 get dict info immediately after install
I want Custom to show up as soon as you install a BYOD wordlist.
2023-05-29 17:03:53 -07:00
Eric House
e3f9e6f32b include name in warning about custom wordlists 2023-05-29 17:03:40 -07:00
Eric House
bd912ce962 discourage inviting to wordlists not from server
If I get an invitation to a wordlist I can't download, hilarity
ensues. I get asked over and over to download it, and because in the
MQTT case the invitation is persisted it'll happen a lot. First step
is to discourage sending those invitations. This change interacts with
the server to flag not-on-server wordlists, and shows the flag in the
wordlist browser and also shows warnings when invitations are about to
be sent.
2023-05-29 16:55:14 -07:00
Eric House
e8beb103cb add col to dictinfo telling whether dict is available on server 2023-05-29 16:55:14 -07:00
Eric House
b316feb367 changelog and version strings 2023-05-24 21:49:48 -07:00
Eric House
0a912db347 move strings 2023-05-21 20:43:12 -07:00
Eric House
f9914c0fac fix assertion by copying new field with the rest 2023-05-21 08:06:24 -07:00
Eric House
93477ae744 show warnings for backup/restore on Android 9
Restore doesn't work there, so warn appropriately
2023-05-04 13:31:35 -07:00
Eric House
869967d1ec move strings to where they'll be localizable 2023-05-04 11:33:53 -07:00
Eric House
4dbb7362dd add dbg-only menuitem to set mqtt devid 2023-04-26 13:57:21 -07:00
Eric House
2c79df2f78 remove 255-char limit on chat messages.
If people wanna spew, let them.
2023-04-21 18:04:21 -07:00
Eric House
b46b34cd70 changelog and version change 2023-04-07 10:14:40 -07:00
Eric House
021fa4e303 fix changelog not being shown 2023-04-06 20:22:29 -07:00
Eric House
4a20e3d664 remove dead strings 2023-04-06 19:54:50 -07:00
Eric House
e09fb6776a don't report game as deleted until it's at least connected
Otherwise remote might not have even saved it yet so of course it
won't exist.
2023-04-04 19:55:55 -07:00
Eric House
6828416b05 move some mqtt msg formatting into c code
Avoid a round-trip across the jni boundary to improve effeciency,
especially when multiple messages are involved (which is next)
2023-03-25 10:24:39 -07:00
Eric House
d0cf7fd318 fix one German string 2023-02-26 19:53:12 -08:00
Eric House
cc481373d8 use new public gameinfo api 2023-02-21 19:15:21 -08:00
Eric House
ef9ff71d8a fix log formatting problems 2023-02-21 17:32:21 -08:00
Eric House
c94c7c5d35 fix offering Rematch when multiple games are selected 2023-02-18 13:09:49 -08:00
Eric House
9ca291cf0d enable rematch for 3- and 4-device games
Because only the host/inviter knows the addresses of all the devices
in a game it's hard for guests to rematch (unless it's a 2-device
game, as they know the host's address.) So now, as part of telling
guests the game is ready to play, include the addresses of other
guests. It's usually only 9 bytes per device, and only happens when
more than two devices are in a game.
2023-02-16 21:36:46 -08:00
Eric House
dcc9cd553c move string into resources 2023-02-16 21:33:42 -08:00
Eric House
dc4032faf8 for debugging, add ability to invite via text mqtt devid
Add ability to copy to clipboard and then to invite by pasting from
clipboard. Makes it much easier to connect two emulator instances
where neither can camera the other's QR code.
2023-02-12 19:47:06 -08:00
Eric House
840abb4037 up version strings and changelog 2023-02-11 07:58:51 -08:00
Eric House
0e14783d3b use negotiated streamVersion to decide what to send via MQTT
No point in sending the old-topic-format MQTT messages to clients that
know about the new one, and in fact it's harmful. Devices in a game
already agree on the stream version to use and communicate it, so pass
that into comms once it's known and from there on to the device code
that builds mqtt messages.
2023-02-09 16:53:18 -08:00
Eric House
6584be9ec6 resendAll after mqtt host config changes 2023-02-03 17:15:02 -08:00
Eric House
4e029a0fda optimize haveWithGameID() 2023-02-03 10:18:54 -08:00
Eric House
8cb0e83885 up version number
I already pushed the tag so it needs to change. No need to change
version code though and it already fails to track tag.
2023-01-31 08:43:21 -08:00
Eric House
84349cddec fix jni crash by removing (unused) constructor
Older Android required a default constructor be explicily declared
unless there was none other, and the other was unused so just removed
it.
2023-01-31 08:37:04 -08:00
Eric House
d6a2004bdb name change only 2023-01-31 08:36:49 -08:00
Eric House
de3ebe5113 cleanup 2023-01-26 10:17:42 -08:00
Eric House
01c19d8f06 tweak getting permissions for phone and NBS
Use my set of permissions more than trying for individual ones, as
that's not enough on newer OS versions. Seems to work sometimes at
least, but maybe only after a new install.
2023-01-25 11:59:34 -08:00