Commit graph

11641 commits

Author SHA1 Message Date
Eric House
4720ede1d7 fix so curses app can invite two players on one device
Turns out the host, when inviting a remote device, needs to know how
many players are on it (since more than one is supported and the script
currently generates that case.) So pass to --server devices an array,
one per remote -- but don't bother when all entries are "1";
2020-04-22 21:28:27 -07:00
Eric House
e68e972396 send NLI in stream format, not as raw bytes
Bad programmer. And because the raw bytes form was so large it always
caused the fake sms stuff to send immediately rather than waiting for a
timer to expire -- which never happened when run by the test script. So
I'm not allowing any timer for invitation-sends only.

(Another problem is that there's no mechanism in the xplat code to retry
invitation sends. That needs fixing.)
2020-04-22 21:28:27 -07:00
Eric House
da0916fdd1 Fix including empty messages.
They're only there when somebody is trying to force an immediate send.
Also, add a bunch of logging of the contents of message arrays being
returned
2020-04-22 21:28:27 -07:00
Eric House
5db0345ffd add util for logging NetLaunchInfo contents 2020-04-22 21:28:27 -07:00
Eric House
29dbeebc94 fix assert with reporting no bad words
Several changes toward not allowing bad things to happen
while waiting for a confirmation from the host
2020-04-22 21:28:27 -07:00
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
Eric House
effbc3ef00 fix crash creating light-colored arrow
Changing it to a VectorDrawable meant it crashed code that assumed
otherwise. Fix by removing the assumption.
2020-04-11 12:05:27 -07:00
Eric House
b81bd46645 remove assertion when message mis-delivered
I don't know why, but in my tests the relay seems to be delivering
messages to the wrong device. The linux device detects this. It used to
assert, but now just drops the message. If this is happening on Android
it might be why I'm seeing crashes...
2020-04-11 11:44:09 -07:00
Eric House
61a1ddae69 add another change to changelist 2020-04-11 10:56:54 -07:00
Eric House
87e04ec667 default to allowing duplicate invites for DEBUG 2020-04-11 08:37:25 -07:00
Eric House
af4785c09f fix crash creating light-colored arrow
Changing it to a VectorDrawable meant it crashed code that assumed
otherwise. Fix by removing the assumption.
2020-04-11 07:17:22 -07:00
Eric House
e0b2011964 remove unused constant 2020-04-10 07:28:53 -07:00
Eric House
98416d341d up strings for new release 2020-04-10 07:12:56 -07:00
Eric House
43a90cc048 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-10 07:12:56 -07:00
Eric House
831af47411 change MainActivity's launchMode to "standard"
reverse change in 19fa3fce05 (April 4
2019) making MainActivity singleTask, which caused starting the app to
launch the gamesList screen rather than the game that had been open when
it was moved to background. Now it's "standard," and I have to hope that
doesn't produce new problems. As I wrote back then, we'll see. More
quickly I hope.
2020-04-10 07:12:56 -07:00
Eric House
7073d836e3 specify ABI per-debug/release: no x86 for release
This is as it was before I updated my invocation of NDK recently.
2020-04-10 07:12:56 -07:00
Eric House
87802150d5 fix logging macro to allow a single argument 2020-04-10 07:12:56 -07:00
Eric House
497007a84f 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-10 07:12:56 -07:00
Eric House
858d4bd6b7 fix linux build 2020-04-10 07:12:56 -07:00
Eric House
341605001d force display order on ConnTypes 2020-04-10 07:12:56 -07:00
Eric House
ec6e815994 changes generated by AS (moving to androidx) 2020-04-10 07:12:56 -07:00
Eric House
9002be7064 tweak strings 2020-04-10 07:12:56 -07:00
Eric House
c0dd9a4ccc upgrade to latest gradle version
Required redoing how I invoke the NDK. The limititations I had to hack
around before seem fixed, so this is probably better. But there will be
glitches. :-)
2020-04-10 07:12:56 -07:00
Eric House
4e347f2257 tweaks for logging/debuggin 2020-04-10 07:12:56 -07:00
Eric House
0a696cf203 cleanup 2020-04-10 07:12:56 -07:00
Eric House
0f6b1897b7 remove unnecessary types from generics constructors 2020-04-10 07:12:56 -07:00
Eric House
387d88bdde fix assertions when duplicateMode on
Hadn't tested in a while and fixing undo problems added some invalid
assumptions.
2020-04-10 07:12:56 -07:00
Eric House
a8a9b25c62 include translations in release notes 2020-04-10 07:12:56 -07:00
Eric House
e8432c3c44 fix app name capitalization 2020-04-10 07:12:56 -07:00
Eric House
916102b088 fix uninstall script 2020-04-10 07:12:56 -07:00
Eric House
d5122843b1 change strings for new release 2020-04-10 07:12:56 -07:00
Eric House
6602e3daae hack: limit chat field length to 255
The common code truncates to 255 *bytes*, not chars, so this isn't even
right, but at least for ascii users it'll make it less likely that
what's typed doesn't all get sent. The right fix is to change the format
to not limit sent str len to 255 bytes. See commit 512a8e1af.
2020-04-10 07:12:56 -07:00
Eric House
ac6373afa7 fix crash when chat message is too long
Len byte was limited to 255, but would get clipped (masked with 0xFF)
then all the string data would get written. So on receipt, the clipped
length was taken to be that of the string data, with the rest of the
string to be interpreted as something else. An array index, in this
case.
2020-04-10 07:12:56 -07:00
Eric House
c1597cc941 recover from corrupt chat player index
This should never happen, but it did and I want to stop local crashes to
investigate.
2020-04-10 07:12:56 -07:00
Allan Nordhøy
c9b4d76c74
Translated using Weblate (Norwegian Bokmål)
Currently translated at 77.0% (636 of 825 strings)
2020-04-05 06:24:48 +02:00
Allan Nordhøy
0e476bf28f
Translated using Weblate (Norwegian Bokmål)
Currently translated at 76.9% (635 of 825 strings)
2020-04-04 04:38:00 +02:00
Eric House
4c0c57229f cleanup 2020-03-30 18:54:46 -07:00
Eric House
fcfca60514 remove unnecessary types from generics constructors 2020-03-30 18:54:46 -07:00
Eric House
c5fcc952c5 fix assertions when duplicateMode on
Hadn't tested in a while and fixing undo problems added some invalid
assumptions.
2020-03-30 18:54:46 -07:00
Eric House
041ea0ad7c include translations in release notes 2020-03-30 18:48:17 -07:00
Eric House
f13e87d268 fix app name capitalization 2020-03-30 18:41:10 -07:00
Nathan
a084f97863 Translated using Weblate (French)
Currently translated at 91.5% (755 of 825 strings)
2020-03-30 18:41:10 -07:00
Bernard Massot
e7e2fc915e Translated using Weblate (French)
Currently translated at 89.5% (739 of 825 strings)
2020-03-30 18:41:10 -07:00
Eric House
6686e6bf49 fix uninstall script 2020-03-30 12:04:42 -07:00
Nathan
109075e629
Translated using Weblate (French)
Currently translated at 91.5% (755 of 825 strings)
2020-03-30 03:18:49 +02:00
Eric House
8989427f59 change strings for new release 2020-03-26 19:42:01 -07:00
Eric House
5e5da59cbc hack: limit chat field length to 255
The common code truncates to 255 *bytes*, not chars, so this isn't even
right, but at least for ascii users it'll make it less likely that
what's typed doesn't all get sent. The right fix is to change the format
to not limit sent str len to 255 bytes. See commit 512a8e1af.
2020-03-26 18:24:46 -07:00
Eric House
512a8e1afa fix crash when chat message is too long
Len byte was limited to 255, but would get clipped (masked with 0xFF)
then all the string data would get written. So on receipt, the clipped
length was taken to be that of the string data, with the rest of the
string to be interpreted as something else. An array index, in this
case.
2020-03-26 18:19:03 -07:00
Bernard Massot
c42de3b146
Translated using Weblate (French)
Currently translated at 89.5% (739 of 825 strings)
2020-03-26 13:46:24 +01:00
Eric House
1f5ff11a9a recover from corrupt chat player index
This should never happen, but it did and I want to stop local crashes to
investigate.
2020-03-25 22:27:01 -07:00
Eric House
d90314b153 fix formatter specifiers in Japanese 2020-03-24 16:50:51 -07:00