Commit graph

11736 commits

Author SHA1 Message Date
Eric House
51a00cd829 allow everybody the new phonies option 2020-06-10 12:54:22 -07:00
Eric House
4508192a3a hide mqtt but couple it to relay
Idea is that if you have relay you have MQTT too. Eventually relay
should go away.
2020-06-10 09:53:26 -07:00
Eric House
28ff1022c3 fix typo in user-vis string 2020-06-10 09:50:25 -07:00
Eric House
9c890032c0 implement relay backoff timer
Moving logic into the timer itself. There's always meant to be one
running, set from between 10 seconds and 23 hours from now. Code
receiving messages (mqtt or relay) resets the backoff when a message is
received, so when there's activity the timer should stay short. Somebody
with no games at all will have attempts made to connect to the relay and
mosquitto once/day, which is when invitations via that method would be
received. Devices with FCM should see lower latency of course.
2020-06-10 08:31:55 -07:00
Eric House
63835105e4 remove relay-check-interval option and fix relay disable 2020-06-09 17:31:44 -07:00
Eric House
1560bf01ed move pref into newgame defaults -- since it is one 2020-06-09 16:13:08 -07:00
Eric House
699eef79cb change file name (nothing else) 2020-06-09 16:04:29 -07:00
Eric House
436d3c2ad0 fix crashes rematching from linux a games started on android
Didn't handle the case where a game included NFC or BT. I should
probably be stripping those on receipt as I think the android side does
when the devices doesn't support 'em. And that in turn should be common/
code. So just fix it for now so testing can continue.
2020-06-04 11:37:07 -07:00
Eric House
72e813038f fix mqtt problems
There were ways of leaving multiple instances running, I think fighting
for resources and keeping each other from connecting. Now I think there
can only be one. And lots of logging will help find future problems.
2020-06-04 11:36:04 -07:00
Eric House
5f31fedf70 handle new mqtt fcm message
Not sure yet how to restart, but this is a try
2020-06-03 18:53:10 -07:00
Eric House
7f6db851c8 move gameID into header to relay2 can snoop 2020-06-03 09:21:12 -07:00
Eric House
8f9bf100e5 register FCM id (and other stats) with new relay API 2020-06-02 11:56:05 -07:00
WaldiS
fdfdafa2c7
Translated using Weblate (Polish)
Currently translated at 88.4% (741 of 838 strings)
2020-06-01 17:41:39 +02:00
Michal Biesiada
d188c8b5bd
Translated using Weblate (Polish)
Currently translated at 88.4% (741 of 838 strings)
2020-06-01 17:41:39 +02:00
ssantos
85c8544e1e
Translated using Weblate (Portuguese)
Currently translated at 46.4% (389 of 838 strings)
2020-06-01 17:41:38 +02:00
Eric House
43ce9f390a force 16-letter devids 2020-05-31 23:42:44 -07:00
Eric House
27e784e784 change mqtt proto
Making return address part of a header of all messages so server-side
listener can snoop.
2020-05-31 13:13:31 -07:00
Eric House
bb9e0559dc change method name 2020-05-21 19:38:01 -07:00
Eric House
4d60205d12 Merge tag 'android_beta_159' into android_translate
fixes for Hungarian
2020-05-20 20:58:21 -07:00
Eric House
c48ff355de Merge branch 'android_translate' into android_branch 2020-05-20 20:55:32 -07:00
Eric House
2a98ab121a Merge remote-tracking branch 'weblate/android_translate' into android_translate 2020-05-20 20:51:59 -07:00
Eric House
7e62be0662 remove unused variable and incorrect --help param 2020-05-20 20:49:54 -07:00
Eric House
f6d7eed84d add mqtt as a new transport
This is meant to replace the relay eventually, but for now it's a new
option, like BT or SMS, to be chosen. Protocol is handled in common/
code for the first time, meaning that linux and android interact without
the need to keep two platforms in sync. Linux uses lib-mosquitto, and
Android uses eclipse's Paho client (the generic java version, not the
one that uses four-year-old Service patterns and so crashes for SDK >=
26.)
2020-05-20 13:58:53 -07:00
Eric House
996e0d62c7 show alert icon in place of chat when quarantined
It'll be helpful (non-release only) to see an alert icon for all games
that can't be opened.
2020-05-20 13:04:52 -07:00
Eric House
fe2d8712d4 log stash when exception caught 2020-05-19 11:58:42 -07:00
Eric House
a1719f14b2 prune quarantine data on launch
I had hundreds of val==zero entries
2020-05-19 08:00:17 -07:00
Eric House
e0b39bb9f4 fix getsigs to work with current build layout 2020-05-18 20:26:32 -07:00
Eric House
db30cea947 update to work with uncompressed Portuguese source 2020-05-18 20:24:36 -07:00
Eric House
4c28013439 fix per informant's instructions to build from git src 2020-05-15 08:33:23 -07:00
naofum
0de6415e49
Translated using Weblate (Japanese)
Currently translated at 100.0% (838 of 838 strings)
2020-05-12 13:41:31 +02:00
Eric House
90a175e509 string/version code changes for new release 2020-05-05 08:23:11 -07:00
Eric House
0e9661aa19 fix search of wordlists containing duplicates
Hungarian is unique (so far) in having two-letter tiles that can be
spelled with one-letter tiles AND in allowing words to be spelled both
ways. This crashed search based on strings because there were
duplicates. So now search is done by tile arrays. Strings are first
converted, and then IFF there is more than one tile array result AND the
wordlist has the new flag indicating that duplicates are possible, THEN
the user is asked to choose among the possible tile spellings of the
search string.
2020-05-04 08:33:15 -07:00
Eric House
98ce0e416f api cleanup: dict_iter -> di
(JNI changed too, so it's not just compiler-checked, but tests ok)
2020-05-03 21:45:08 -07:00
Eric House
851fa1a76e let's not change the Spanish wordlist name rashly 2020-05-03 21:28:33 -07:00
Eric House
d4bf908055 Merge branch 'android_translate' into android_branch 2020-05-03 16:48:44 -07:00
Eric House
02e40ddd92 fix build error: specifier sets must match
Strictly speaking I think a subset is ok. I need to fix my build scripts
OR figure out how to enable the checking Weblate claims to have. The
string I modified is isn't used AFAIK so it's not urgent.
2020-05-03 16:38:48 -07:00
Eric House
353e9cf795 remove assertions from dictiter code on Android
Makes wordlist scrolling really slow, and since it's common code keeping
the assertions in Linux is probably good enough.
2020-05-03 10:18:37 -07:00
Eric House
aea47e0184 fix to use new param 2020-05-02 19:10:04 -07:00
Eric House
c4b4c9a0c8 handle 'len' param for dict info if provided 2020-05-02 18:38:42 -07:00
Eric House
2b8e6e192a include len in info for upgradeable wordlists
Server should offer to upgrade if size has changed: checksum doesn't
cover everything.
2020-05-02 13:04:32 -07:00
Eric House
67f74b3808 cleanup hungarian Makefile 2020-05-01 09:26:08 -07:00
Eric House
07f4774a7c refactor so common dictnry does more work
Linux and Android duplicated all the code to parse a wordlist file --
and shared a bug that needed fixing. So now most of that is in a common/
function both call, and the bug -- failing to mask out flag bits I don't
care about -- is fixed.
2020-05-01 09:18:27 -07:00
Eric House
f1f6d5b642 change name of Spanish wordlist
"Spanish" is redundant
2020-05-01 08:59:58 -07:00
Eric House
dfbbf2d480 don't assert wordlist length wrong
For some reason the header and dawg data in Spanish wordlist don't
agree. Until I fix this, remove the assertion from the (dev-use-only)
script that dumps wordlist since it breaks it for other uses.
2020-05-01 08:59:58 -07:00
Eric House
71575934b8 mark-bad menuitm (DEBUG) for standalone games too 2020-04-30 13:25:25 -07:00
Eric House
f7374f54c5 fix Spanish support for lowercase
"special" casing is specified in two places, and I forgot to modify the
second one when I added allowing lowercase alternative spellings
2020-04-30 13:06:01 -07:00
Eric House
2d6aa1d019 final change list change? 2020-04-30 09:21:30 -07:00
Eric House
5eef348a6c remove mistaken code (replacing with assert for now) 2020-04-29 12:31:31 -07:00
Eric House
fb2fcf15cc tmp fix for Hungarian: remove duplicate words
Find-prefix feature in current code crashes on Hungarian because it
allows duplicates (words that occur spelled with the same letters but
different tile combinations.) Modify Makefile to exclude those (as it
does for all other multi-letter-tile languages). And to pull the git
source of the wordlist on demand.
2020-04-29 12:29:26 -07:00
Jeannette L
ca9e4e741e
Translated using Weblate (French)
Currently translated at 90.4% (758 of 838 strings)
2020-04-29 21:11:18 +02:00
Jeannette L
8fc143d919
Translated using Weblate (German)
Currently translated at 91.1% (764 of 838 strings)
2020-04-29 21:11:18 +02:00
Eric House
7efd084d35 don't assert in race condition loss 2020-04-29 10:54:19 -07:00
Eric House
0e0615f5d2 fix another likely race condition
Use an ArrayList rather than an array, though that the size of the array
changed mid-calc suggests there could be other problems later. We'll see.
2020-04-29 10:44:31 -07:00
Eric House
8fb21002ad word around some race condition to avoid crash
Reported by Play Store user; can't reproduce but this should fix it.
2020-04-29 10:37:42 -07:00
Eric House
1969b1137e turn off thread->env mapping for DEBUG too (for now)
I'm getting crashes and don't want to think about it. It may be time to
remove this, though it's needed for logging-storage to work from jni.
To be revisited....
2020-04-29 10:31:37 -07:00
Eric House
e34da24393 revert wordlist changes
There are bugs there still to resolve and I need to ship. Will return
once they're fixed.
2020-04-29 10:15:58 -07:00
Eric House
0078e58535 cleanup around jni wrapping and checking
Separated the refcounting and ptr-as-long wrapping aspects of GamePtr
into a superclass that others might later inherit from. Cleaned up
dict_iter entrypoints, and added sanity checks to both structs so I'll
quickly notice if I get the ptr management wrong.
2020-04-28 20:13:59 -07:00
Eric House
9aaeee19b1 remove unused (and confusing) fields 2020-04-28 15:34:29 -07:00
Eric House
8097a6ba0b fix not indicating when no results 2020-04-28 15:24:32 -07:00
Eric House
e7c96290ea name change only
It was confusing using dict_ as the prefix for two "classes"
2020-04-28 15:24:22 -07:00
Eric House
b2bc4e34cf do wordlist lookups using tiles not chars
Fixing a problem with languages (like Hungarian) where it's legal to use
a two-letter tile or two single-letter tiles to play the same word. When
words are seen, or searched for, as char-arrays, there are
duplicates. Current code crashes, but there's also risk the user gets
unexpected behavior. Crash is fixed, and foundation laid for better UX,
by doing all searches for tile arrays. If a search string translates to
more than one tile array the user must choose. For that choice to make
sense it's now possible to translate tile[] to char[] with a delimiter
between the tile strings.
2020-04-28 13:29:12 -07:00
Eric House
f8aa204842 another changelog addition 2020-04-26 15:42:28 -07:00
Eric House
182b8e0489 fix compilation where DEBUG not set 2020-04-26 13:49:54 -07:00
Eric House
9fa23af6e0 retain thread->env mapping in DEBUG builds only
I'm keeping it AND asserting at every possible location that the env
passed all the way in is the same as what the mapping produces. If in
months I haven't seen a single crash then I can evaluate which way of
passing the env around is better. (It'd be code size vs. performance,
as the passing of env is noticably faster. Code size could be fixed by
turning 'XWEnv xwe,' into a macro that goes away on some builds.)
2020-04-26 13:39:21 -07:00
Eric House
88335d38f2 stop using thread->env mapping for util callbacks 2020-04-26 13:39:21 -07:00
Eric House
eb9ef738e4 remove comms/transport from using thread->env map 2020-04-26 13:39:21 -07:00
Eric House
2343c34a44 remove more use of thread->env mapping 2020-04-26 13:39:21 -07:00
Eric House
b7b7da795a remove use of thread->env mapper for drawing 2020-04-26 13:39:21 -07:00
Eric House
cfaa6849b2 pass env into dict-related methods
I was getting an occasional crash using a stale env to delete a dict's
resources because the dict was cacheing the env that created it. Dumb!
Using the thread->env mapping stuff worked, but that felt risky and so I
tried just passing it in. It's safe, and involves an amount of change I
can tolerate. So likely going that way.
2020-04-26 13:39:16 -07:00
Eric House
72cf605792 update changelog 2020-04-24 23:42:27 -07:00
Eric House
b618c99fa8 just print the upper-case versions of tile faces 2020-04-24 22:21:02 -07:00
Eric House
a35cc760f2 get rid of the stupid '->' in game submenu title 2020-04-24 22:17:39 -07:00
Eric House
4e1018d7d2 reflect log-storage state in what menus are available
It'd debug-build-only, but I like knowing what's going on.
2020-04-24 21:57:32 -07:00
Eric House
267a24619a don't require .xwd's extension to be omitted for file to be found! 2020-04-24 21:36:16 -07:00
Eric House
1c0348dbf1 add option to print a delimiter between tiles
For Hungarian, there are "duplicate" words because e.g. the string CS
can be spelled with two tiles or one. If a delimiter is printed at tile
boundaries the duplication goes away.
2020-04-24 21:14:20 -07:00
Eric House
adadbd8647 make symlink relative
Useless if it specifies my machine :-)
2020-04-24 20:09:08 -07:00
Eric House
cbf81c64bd track and pass all words when phonies==BLOCKED 2020-04-24 14:58:17 -07:00
Eric House
cc4776d29d Populate an actual wordlist for Hungarian
Add Makefile filters to create a wordlist with about 42K words derived
from a github project (thanks to pointers from an informant. :-) Per
him, and contrary to how Catalan does it, double-letter-tile words
also appear in single-letter variants if the tiles allow.
2020-04-24 13:44:55 -07:00
Eric House
ebc6c4629d make language names localizable (and add Hungarian) 2020-04-24 13:36:01 -07:00
Eric House
99df8806c3 wrap test-only feature in new compile-time flag 2020-04-24 13:33:40 -07:00
Eric House
3ee6f95a16 update changelog 2020-04-24 13:13:49 -07:00
Eric House
5786151e76 Merge branch 'android_branch' into android_translate 2020-04-24 13:07:34 -07:00
Eric House
951c0c00de fix malformed format specifier 2020-04-24 13:04:32 -07:00
Eric House
83a5d32ed0 check for null 2020-04-24 12:58:02 -07:00
Eric House
f51030186f fix non-debug build warnings 2020-04-24 08:54:57 -07:00
Eric House
e8a4c6e39a don't run duplicate games by default
Duplicate games get lots of crashes when mixed with phonies code. Will
need to fix that before enabling duplicate mode. In general there are
lots of assertion failures mixing trades and undos and phonies and
running dozens of games at once. I don't think that's new so will ship
now and fix later.
2020-04-24 08:38:31 -07:00
Eric House
70479710bc changelog for new release 2020-04-24 07:40:25 -07:00
Eric House
cc28562061 files to create empty Hungarian wordlist 2020-04-24 06:34:30 -07:00
Eric House
d4e71caed1 fix warning 2020-04-24 06:34:30 -07:00
Eric House
abc34f623f add Hungarian to display wordlist 2020-04-24 06:34:30 -07:00
Adnan1091
0ac68548b6
Translated using Weblate (Turkish)
Currently translated at 2.0% (17 of 825 strings)
2020-04-24 11:11:15 +02:00
Eric House
2204d951a7 don't crash dumping empty wordlists 2020-04-23 22:10:25 -07:00
Eric House
f35136099d don't crash when wordlist provides no bitmap 2020-04-23 22:01:07 -07:00
Eric House
d01fd5de1c inval score when face for blank chosen
If I'm displaying real-time whether the score is legal, I need to recalc
it after the user tells me what tile a blank is standing in for.
2020-04-22 21:28:27 -07:00
Eric House
e8c48e792a fix tile picker dialog
I wasn't exiting dialogs correctly. Probably broken since the switch to gtk3.
2020-04-22 21:28:27 -07:00
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