Commit graph

11586 commits

Author SHA1 Message Date
Eric House
0dc39b5d85 clear pending move before applying phonies rejection
If slow network traffic has given a guest time to move tiles to the
board while the host decides its last move must be rejected, those tiles
must be removed before the rejected turn can be undone.
2020-04-22 21:28:27 -07:00
Eric House
9d04b97ec8 add option to have robot words reversed
With reject-phonies set this will trigger the reject path.
Also init CommonPrefs in jni land since its makePhonyPct, left unitialized,
causes the robot to deliberately reverse every turn, firing an assertion that the
robot's moves are legal.
2020-04-22 21:26:55 -07:00
Eric House
410bc00d2e add test for being in background 2020-04-22 11:44:46 -07:00
Eric House
5a28a7fc27 fix gtk games connecting to relay/each other
I broke gtk back in February making curses changes
2020-04-22 11:38:48 -07:00
Eric House
055eceffba got back to singleTask
Having intents launch second instances of GameList on top of open games
is sucking.
2020-04-20 14:37:39 -07:00
Eric House
fe9eb9ae7c test for null back from refusal to load quarantined game 2020-04-20 12:19:04 -07:00
Eric House
54efffa635 pass the wordlist name too 2020-04-20 09:34:14 -07:00
Eric House
10f509ea1f pass and display the blocked word 2020-04-19 22:27:14 -07:00
Eric House
c0f074c1bf support new phony to block words not in dict
Currently detects the same as tiles not in a line and calls out to a new
util method that's currently parameter-less. On Android the option only
appears in d variants.
2020-04-19 17:31:31 -07:00
Eric House
988facccd1 refactor: make vtable population test xplatform 2020-04-19 12:56:11 -07:00
Eric House
ddb01d8930 refactor: struct ptr replaces a bunch of params 2020-04-19 10:44:57 -07:00
Eric House
f0444c5c1e make player edit dialog less ugly 2020-04-19 08:57:54 -07:00
Eric House
ac376c5dd9 set turn to -1 while waiting for phonies check
When a guest sends a move to the server it's not the next player's turn
until the server checks the move and rejects or accepts it. It was
possible still to manipulate the board, playing new tiles, and even to
attempt to commit them. And if the move came back rejected, the bogus
committed one would be that was cleared. Bad. So I'm just setting the
turn to -1, which disables board etc., and letting nextTurn() assigne it
after the confirmation comes back.
2020-04-19 08:57:54 -07:00
Eric House
56b1990207 another changelog tweak 2020-04-18 17:06:40 -07:00
Eric House
d2fcbb5f9d update changelog 2020-04-18 14:51:53 -07:00
Eric House
b94ba0fd96 add debug-only menuitem for marking a game corrupt 2020-04-18 14:43:46 -07:00
Eric House
5fce6d8e26 add delete option for suspect-corrupt files 2020-04-18 14:35:36 -07:00
Eric House
8c50bb1895 Avoid opening games that have crashed.
On each open, increment a counter. And if we're able to close without a
crash intervening, decrement. Once we're trying to open with a non-0
counter we have a bad game. Open only after warning the user.
2020-04-18 13:36:21 -07:00
Eric House
c39bede5c1 up version strings 2020-04-18 10:09:16 -07:00
Eric House
3a0294044e fix crashes when actual bad words sent
Same as before, needed to explicitly set the state back to
XWSTATE_INTURN after doing the work the special state required.
2020-04-18 07:31:03 -07:00
Eric House
b82975179b remove mistaken assert
It's ok to fail to open a game, as will happen e.g. when a message
arrives for a game that was recently deleted.
2020-04-18 07:08:00 -07:00
Eric House
2efc82f4e0 add --phonies arg so this doesn't happen again 2020-04-18 06:41:21 -07:00
Eric House
72cb12f383 fix crash anytime you used PHONIES_DISALLOW
Yikes. I used to assert, in nextTurn(), that you were in the right
state. On release builds that went away, and you were moved into the
right state regardless. The bug happened when I changed that to exit
nextTurn() without changing the state, meaning that for PHONIES_DISALLOW
the host filled up its message queue trying to communicate that the
latest move was ok, never getting out of the state that required sending
that message. The fix is simply to change the state after sending and,
guest-side, after receiving, that message.
2020-04-18 06:14:29 -07:00
Eric House
9f92bce880 name exported file based on FLAVOR 2020-04-17 20:29:47 -07:00
Eric House
b8ba5a98c1 remove too-frequent logging 2020-04-17 18:49:20 -07:00
Eric House
5d2f84acd8 move log-related menuitems into a submenu 2020-04-17 18:49:20 -07:00
Eric House
0e5cc9f2b9 log pid and tid roughly same as logcat does 2020-04-17 18:49:20 -07:00
Eric House
6560394478 part two: add threadID and support multiple threads
Looks like it's enough to just use a mutex so threads block until it's
their turn to send logs to java.
2020-04-17 18:49:20 -07:00
Eric House
cfa9b73833 first cut at persisting logged messages
Works, with support for writing them to file. BUT does not handle
messages coming in from multiple threads at once so drops a lot of them.
2020-04-17 18:49:20 -07:00
Eric House
36bf92e8e5 fix misspelled column type INTEGER
I have no idea how this worked or how old. Might require a new DB
version? Needs testing.
2020-04-17 18:49:20 -07:00
Eric House
94b00b1c7c fix mis-formatting causing crash 2020-04-17 18:49:20 -07:00
Eric House
ad69438607 move the two allow-hints settings back together 2020-04-17 18:49:20 -07:00
Eric House
ab07c1c466 show bonus-square-held
Again, so I can see what's going on. Use timeout so doesn't force
lifting the mouse, closer to what happens on Android with Toasts.
2020-04-17 07:06:31 -07:00
Eric House
388fc4f871 don't offer to display empty list of words 2020-04-17 06:52:36 -07:00
Eric House
5f7bb30307 fix crash: don't offer to commit an illegal move! 2020-04-16 22:54:46 -07:00
Eric House
18711c1dd3 show gtk dialog with lookup-words
That way I can at least see it's working.
2020-04-16 22:54:05 -07:00
Eric House
91e6e50480 stop broken upgrade early-launch case
Wasn't checking for existance of script and so got and exception
deleting what didn't exist. Instead I define nonexistance as being too
early.
2020-04-16 22:18:17 -07:00
Eric House
22f62d53e0 add DB versioning for linux 2020-04-16 22:18:13 -07:00
Eric House
b51e3d8d1e remove unused jni declaration 2020-04-15 19:59:03 -07:00
Eric House
c3b1423c36 add (unused) method to copy apk to Downloads/ 2020-04-11 21:18:20 -07:00
Eric House
9fd4bb2a11 enable relayid-invites for non-tagged release builds
Too useful for testing
2020-04-11 19:54:02 -07:00
Eric House
29ed46e12b fix so upgrade of release builds works 2020-04-11 19:23:20 -07:00
Eric House
ca6a0868c9 show last-move as an alert rather than a toast
it gets lost the other way.
2020-04-11 15:51:58 -07:00
Eric House
c5f1d2bf3b release lock when BoardDelegate paused
The lock was leaking when sometimes the OS would call onStop() without
isFinishing() being true, then never use the fragment again. And never
call onDestroy(). Releasing the lock in onStop and regetting it in
onResume seems to fix, but this needs some testing and time.
2020-04-11 15:04:02 -07:00
Eric House
fc30ba5f40 Merge branch 'for-156-release' into android_branch 2020-04-11 12:59:04 -07:00
Eric House
3d5db1d48f update changelog 2020-04-11 12:30:28 -07:00
Eric House
6455c8f688 remove mistaken '+' from layout file 2020-04-11 12:19:55 -07:00
Eric House
40479b6fe1 fix failure to collapse
The problem appears to be that the new <vector/> .xml drawable has a
greater height for purposes of layout. Specifying dimensions seems to be
the way to go, though devices may vary.
2020-04-11 12:13:58 -07:00
Eric House
67759c883a show pending name in scoreboard
when remote hasn't arrived, show same string in scoreboard as in games
list rather than the local player's default name -- duh.
2020-04-11 12:10:01 -07:00
Eric House
f5808e0514 up release constants so can install 2020-04-11 12:08:03 -07:00