Commit graph

1149 commits

Author SHA1 Message Date
Eric House
b8f359c3e5 add filtering to wordlist browser
Add a basic regular expression engine to the dictiter, and to the UI add
the ability to filter for "starts with", "contains" and "ends with",
which translate into ANDed RE_*, _*RE_* and _*RE, respectively (with
_ standing for blank/wildcard). The engine's tightly integrated with the
next/prevWord() functions for greatest possible speed, but unless
there's no pattern does slow things down a bit (especially when "ENDS
WITH" is used.) The full engine is not exposed (users can't provide raw
REs), and while the parser will accept nesting (e.g. ([AB]_*[CD]){2,5}
to mean words from 2-5 tiles long starting with A or B and ending with C
or D) the engine can't handle it. Which is why filtering for word length
is handled separately from REs (but also tightly integrated.)

Users can enter strings that don't map to tiles. They now get an
error. It made sense for the error alert to have a "Show tiles"
button, so there's now a dialog listing all the tiles in a wordlist,
something the browser has needed all along.
2020-08-05 09:47:44 -07:00
Eric House
d71cf6cac6 remove assert
It's firing on a device whose screen happens to be the wrong size. Seems
nothing bad happens in spite of proceeding, so let's....
2020-08-01 20:16:41 -07:00
Eric House
1d587caf85 remove dead symlink
(part of reverting f-droid mqtt removal I missed)
2020-07-27 20:50:54 -07:00
Eric House
915b47d612 use mavenCentral instead of eclipse's repo 2020-07-27 20:36:42 -07:00
Eric House
965ecc51e2 user newer ndk version (required by f-droid) 2020-07-27 20:36:42 -07:00
Eric House
f59b51268d Revert "Remove mqtt from f-droid build"
This reverts commit 7583c26e41.
2020-07-27 09:32:27 -07:00
Eric House
f4104a318a modify version strings for new release 2020-07-25 14:03:49 -07:00
Eric House
f32b894843 Remove mqtt from f-droid build
The Maven repo that includes the (FOSS) client library for MQTT isn't
approved by the f-droid build system, so for now rip MQTT out of that
variant. Long-term I'll have to fix this, either by persuading the
f-droid folk to permit the library or by building the C client from
source in my jni library -- or when the relay goes away the f-droid
build will cease to offer internet play.
2020-07-25 13:59:29 -07:00
Eric House
197897c95e remove obsolete credit 2020-07-25 13:58:29 -07:00
Eric House
6905b0cfcf cleanup and update version strings
commented out more of variable line-thickness since the ability to set
has been removed.
2020-07-25 13:58:29 -07:00
Eric House
3cbc707b1d add change notes
Version upgrade to follow
2020-07-25 13:58:29 -07:00
Eric House
df8a9f5108 quarantine: tolerate one crash but not two
I was really after the situation where a game could never be
opened. There are lots of reasons a single failure can occur, not least
of which is installing via adb while game's open. :-)
2020-07-25 13:58:29 -07:00
Eric House
5d1bba2faf remove the under-construction icon
It looks bad, especially to a new user we suspect. Also add retries,
hoping that whatever caused the thumbnail to fail to load once will not
happen again.
2020-07-25 13:58:29 -07:00
Eric House
fcc2beb857 add preference to set cell line thickness 2020-07-25 13:58:29 -07:00
Eric House
725bec1a7a add pref to set color of board lines 2020-07-25 13:58:29 -07:00
Eric House
68343858d0 remove unneeded code 2020-07-25 13:58:29 -07:00
Eric House
6b2fceb468 more dialog cleanup
get rid of subclasses that are no longer separate, since features like
providing a not-again checkbox are available everywhere now.
2020-07-25 13:58:29 -07:00
Eric House
ba9fe85611 provide default Action to avoid NPE 2020-07-25 13:58:29 -07:00
Eric House
c8b587c29b simplify dialogs
Get rid of subclasses, since there's not the clear inheritance structure
I imagined. Any dialog type might want a not-again checkbox, or to have a
third button offer an unexpected option. This is a big change that needs
some bake time.
2020-07-25 13:58:29 -07:00
Eric House
37d774b9da on load, remove records missing a device
Can't test because changing the class meant the thing couldn't be
deserialized. Oh well. It was likely a fluke that caused the null dev
entry anyway.
2020-07-25 13:58:29 -07:00
Eric House
2b0dcbbd17 work around NPE
Not sure if the name being null is ok, but this is likely better code.
2020-07-25 13:58:29 -07:00
Eric House
cfd988d998 changelog change 2020-07-25 13:58:29 -07:00
Eric House
14f414d85f up strings for new release 2020-06-15 08:58:38 -07:00
Eric House
e44f19f04e include in register whether build is DEBUG 2020-06-13 18:10:05 -07:00
Eric House
af46660d6c make url for mqtt-relay apis a preference 2020-06-13 18:10:01 -07:00
Eric House
c4dfae13ee always disconnect inside clearInstance()
For some reason I wasn't unless it was the current instance, meaning
that some would leak and forever be connecting and disconnecting as
failures were in effect ignored.
2020-06-13 10:46:28 -07:00
Eric House
e4f213470c add a basic password for mqtt 2020-06-11 13:11:56 -07:00
Eric House
c3c041864d add under-construction icon as thumbnail fallback 2020-06-10 21:45:05 -07:00
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
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
8f9bf100e5 register FCM id (and other stats) with new relay API 2020-06-02 11:56:05 -07:00
Eric House
bb9e0559dc change method name 2020-05-21 19:38:01 -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
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
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
71575934b8 mark-bad menuitm (DEBUG) for standalone games too 2020-04-30 13:25:25 -07:00
Eric House
2d6aa1d019 final change list change? 2020-04-30 09:21:30 -07:00