object) rather than allocating a new array in the C heap -- for the
DAWG data of a dictionary. This can use up to 5% of the java heap for
huge dictionaries, but I'm hoping it fixes a problem reported by a
user of the large German dictionary that seems to involve allocation.
If I'm reading correctly, as long as I stay within 16M (24M or more on
newer devices) I'm sure to get my memory in the java world while it's
less a sure thing in the JNI world (where in addition linux's
aggressive overallocation is used, meaning I'll fail when I try to
swap in memory on write rather than get back NULL from malloc.)
bytes to read from downloaded dictionary file -- because available()
will not always return the full size. I suspect this is why a German
user is crashing when using the very large 2_15 German dict.
for setting "scheme". Implement that as changing potentially several
colors but only empty cell color for now. Remove prefs for whether
cell letters follow user colors (they always will) and the new one for
frame color -- it'll always be dark grey.
color; add pref for whether highlight is black-on-white or the
reverse; and remake the board arrow in white if the background is a
dark color. It's now possible to configure various colors so that
black empty cells looks good. Next need a single control to do it.
board, explaining what the arrow's for and how to move and disable it.
Implementation required passing XWActivity into BoardView so the
newbie hint method could be called on it.
version by adding them. Can't have them default to 'now' because
that's not supported for ADDs. Can't remove columns either, so at
some point I'll need to migrate to get rid of accumulated cruft.
Timestamps are not set nor read yet.
unchanged and I'm trying to mimic the old per-game setting using the
new per-robot setting internally. Still need to change the UI to
allow move than just a boolean choice.
down. When network's down, return -1 from send proc so that comms
timing can retry. This works on both cellphone on carrier network
(with airplane mode as the test for loss/gain of network) and on
emulator (with death/restart of relay as the test since I don't know
how to kill the iface itself). A quick test on phone using wifi this
morning suggested it didn't work, that into/out of airplane mode did
not result in notifications getting set. Need to test that, and back
this out if can't be fixed since I can't break wifi.
that information to connect and not. There seems to be no way to get
notified when a socket's underlying transport goes down (might not
even want to) so this will be the best way to have the arrows go red
when the device goes into airplane mode.
number of words can be included. Changed to build dicts and linux to
open them. Android still needs to learn. Also, some of the tools in
dawg/ need to be fixed to read old-format (pre-utf8) .xwd files.
threads. Greatly simplifies things, but only tested for the simplest
case, and I know it won't correctly reconnect when relay goes down.
But folks recommend against nio, and I'd like to see if I'll get
notifications in the form of blocking socket calls returning or
raising exceptions when the network goes down, something that isn't
happenening with nio.
into the java world by making it a util_ctxt function. Do same on
linux to test. We'll see how it is -- and can back this commit out if
there's no improvement.
to use when there are other dicts available in the same langauge as
the missing one that offers to substitute, and another dialog
presenting a list of same-language dicts. Then substitute the one
tapped.
thread on failure to connect, allowing comms' timer to control when we
retry. This fixes problem where would try multiple times/second to
connect when relay was down. Now we try every 15 seconds (per comms,
which can as well back-off), and shortly after the relay comes back up
connect successfully.
summaries db table, using the existing SNAPSHOT column rather than
adding a new one and upping the version. Includes utility fired at
game-start to convert existing games that seems to work. Also
improved a few queries and updates to -- I think -- use the API
better.
summaries db table, using the existing SNAPSHOT column rather than
adding a new one and upping the version. Includes utility fired at
game-start to convert existing games that seems to work. Also
improved a few queries and updates to -- I think -- use the API
better.
notice when cellular data becomes available and notify relay of dead
games then. Must be a way to notice a network interface cellular or
not without permission since I already have permission to use it.
that's the only place that is or should be calling it. And since we
can usually figure out the exact url for the dictionary go ahead and
try to download that.
in which case tell user how many games are using it when asking for
confirmation. To do that, add dict into summary DB, and to do that
add CurGameInfo into GameSummary's constructor. Also, when there's no
summary for a game, make one on the spot and add it to the db. This
will crash if the game's dict has been deleted. Need to deal with
that, probably by deleting unsummarazible games, becuase now if
somebody installs this on top of a device where a game's dict is
missing and it has no summary I'll never boot.
if it's not there. Ideally I could open the config dialog so user
could change the dict but that isn't working. Maybe just offer to
open it after swapping in the default dict?
problem) where first to connect in room specifies a timer and second
does not. Second eventually gets message saying there's a timer but
has not layed out space in the board and java freaks out when later
asked to make a 0-width image. This fix leaves the device not drawing
the timer until the game is reopened. The better fix would trigger a
re-layout as soon as the change is made.
robot with blank in tray keeps flashing the in-progress indicator by
flagging CMD_TIMER_FIRED as a non-ui event so busy() won't return when
it's what's on the queue. Problem with that is that the timer stops
advancing during a hint which is clearly not what's happened.
before passing to getString. Not sure of the circumstances but the
crash is coming from restoreManagedDialogs() -- might be related to
screen orientation changes.
tap "play game" and wind up connecting and creating an empty-room-name
game; or can dismiss the dialog and be confused because there's no way
back to it. Solution: define empty-room-name as an illegal case.
Check for it when "play game" is tapped in either config dialog and
raise an alert. And when user wants to open a game from the GamesList
activity go to the minimal config dialog if it's a relay game without
a room name.