Commit graph

7617 commits

Author SHA1 Message Date
Eric House
de2c938f41 stop menu button (or "action bar overflow") from being invisible on
tablet devices.
2013-09-07 08:10:00 -07:00
Eric House
5b7a039d78 cleanup 2013-09-05 07:53:47 -07:00
Eric House
fdbdfa5911 add OS release number to reg data 2013-09-04 21:05:39 -07:00
Eric House
810dfac8b8 postpone packet creation and id assignment until send time so id can
be logged along with send.
2013-09-04 08:11:42 -07:00
Eric House
42a517b246 support UPGRADE message; don't queue KEEPALIVE packets when network is
down (as it is on Kindle when screen off)
2013-09-03 06:57:21 -07:00
Eric House
48e0afc589 add comment 2013-09-03 06:54:42 -07:00
Eric House
70fc4c448c print the exception's stack trace 2013-09-03 06:54:13 -07:00
Eric House
40215337c9 cleanup 2013-09-03 06:53:25 -07:00
Eric House
032f8c1f99 add ctrl port command to post UPGRADE message to clients 2013-09-03 06:52:02 -07:00
Eric House
8da0b73744 replace string_printf() with new class derived from std::string with
printf() method.
2013-09-02 13:17:42 -07:00
Eric House
23bdec0ea1 Remove debug prefs checkboxes for ignoring gcm and using the udp relay
mechanism.  Replace with static finals with shipping settings.
2013-09-01 09:40:08 -07:00
Eric House
0003065571 handle dev (not game) messages arriving via gcm 2013-08-31 08:58:12 -07:00
Eric House
a95d620b09 Make ack timeout settable from ctrl port; add ctrl facility to print
and nack outstanding acks.
2013-08-31 08:30:25 -07:00
Eric House
07c9722433 add ability to forget multiple devices 2013-08-31 08:26:44 -07:00
Eric House
f6a91464ac don't update db unless value's changed 2013-08-31 07:59:58 -07:00
Eric House
593bb91ee6 saving last packet timestamp in onDestroy then reading in in onCreate
wasn't working because they're not always called in that order.  So
for now save every time we get a message.  Should be every time it
changes...
2013-08-31 07:59:58 -07:00
Eric House
7b9f6adf6d preserve most recent maxInterval rather than counting on getting it
from relay.
2013-08-31 07:59:58 -07:00
Eric House
d9bfc01e35 change unsigned char to uint8_t (using sed) 2013-08-29 22:55:11 -07:00
Eric House
3592c2a1ab add logging 2013-08-29 21:54:36 -07:00
Eric House
99ec44809a use random number rather than incrementing static int (which can be
reset) to keep Intents from being reused
2013-08-29 21:54:17 -07:00
Eric House
b6fd850d04 improve logging 2013-08-29 21:53:22 -07:00
Eric House
49ab62d521 set DEBUG when building ndk based on target in build.xml 2013-08-29 07:28:08 -07:00
Eric House
0e6b211a76 fix treating game-targeted messages as if they were device-targeted.
Should probably have separate tables for the two types....
2013-08-29 06:37:22 -07:00
Eric House
b80051cc73 send dev-targeted messages pulled from db by rewriting their headers
with a new packetID.
2013-08-28 21:36:12 -07:00
Eric House
de125eb9a6 fix GetStoredMessages to also return messages without connnames,
i.e. messages to a device rather than to a game.
2013-08-28 21:29:39 -07:00
Eric House
cd2b83c9c5 type change: use vector<uint8_t> rather than string in struct for
retrieving data from db.
2013-08-28 20:33:42 -07:00
Eric House
e2f689765b Merge remote-tracking branch 'origin/android_branch' into android_branch 2013-08-28 20:08:33 -07:00
Eric House
c4cf8b3c3c make 'devs print' take multiple devid args; rename args to argv everywhere. 2013-08-28 19:23:40 -07:00
Eric House
831018ed9d oops: remove extra format specifier 2013-08-28 19:20:37 -07:00
Eric House
ad9615709e test whether gcm being ignored not when receiving messages but when
deciding whether to stay connected to relay.
2013-08-28 08:02:48 -07:00
Eric House
b5f35fab78 unescape things like '\n' in messages 2013-08-28 08:00:21 -07:00
Eric House
4207df8078 apply limit to all; list messages without connname too 2013-08-28 07:29:24 -07:00
Eric House
2e7433f2b2 change 'devs msg' command to send to a list, or to all 2013-08-28 07:29:23 -07:00
Eric House
b3342c6e8a for --clean-start option, try not to remove games not created by this script. 2013-08-28 07:29:23 -07:00
Eric House
668cc27f35 lots of logging; handle GCM messages for device as well as for a
single game; tweak for more reliable connection or messages to help
diagnose.
2013-08-27 07:57:36 -07:00
Eric House
a7d5d261d3 replace static final ints with enum 2013-08-27 07:03:25 -07:00
Eric House
084abb57e3 Merge remote-tracking branch 'origin/android_branch' into android_branch 2013-08-27 06:52:11 -07:00
Eric House
35a09512ce add missing params 2013-08-26 08:41:42 -07:00
Eric House
57ea3cd77e wasn't supposed to check this in with debugging on 2013-08-26 07:22:07 -07:00
Eric House
f6b34fcbbc sleep time should depend on configured ACK expiry 2013-08-25 22:24:21 -07:00
Eric House
d3c15eb58b remove logging 2013-08-25 22:23:52 -07:00
Eric House
063b01d3d8 change most len-as-short+bytes strings to vli+bytes; add device model
to what's passed for device registration, and store it in a new column
in devices table.
2013-08-25 21:20:26 -07:00
Eric House
d10e9f6235 use vlis for acks in both directions 2013-08-25 16:59:07 -07:00
Eric House
47414beeb2 catch up with changes in udp proto: use vli for packet num in header. 2013-08-25 16:15:37 -07:00
Eric House
7e02db78db change function name spelling 2013-08-25 16:14:42 -07:00
Eric House
91235f3be7 begin process of using variable-length-ints in udp protocol. Works
between linux client and relay, but unrelased features of Android
client will be broken until fixed.
2013-08-25 12:34:35 -07:00
Eric House
69f34f4ef8 make method private 2013-08-25 12:32:26 -07:00
Eric House
cf3437c686 fix argc checking to prevent crashes 2013-08-23 07:44:42 -07:00
Eric House
4be1653ab7 remove logging 2013-08-23 07:41:10 -07:00
Eric House
235346b7a4 fix signature string (and log when there's a mismatch) 2013-08-23 07:41:10 -07:00
Eric House
38adea1612 fix infinite recursion 2013-08-22 08:23:32 -07:00
Eric House
1af12f1de2 refactor packet assembly/sending so posting message can post all,
including header.
2013-08-22 08:15:38 -07:00
Eric House
16aafccec6 to telnet interface add ability to forget device and to send to one
not known (which will make message available next time it connects or
via GCM); rename methods.
2013-08-22 06:29:20 -07:00
Eric House
23a59e8097 sometimes a device goes away and we don't notice, so when it comes
back just reuse its record rather than asserting there's no record
there.
2013-08-21 21:32:55 -07:00
Eric House
45998fd2c0 don't assert when packet size short is unexpectedly large. Not sure
why this happens, but it's not a reason to abort a test.
2013-08-21 21:28:47 -07:00
Eric House
3dee41e584 set new clntvers row in devices table at the same time as updating it
in games table.  (The latter is now redundant and will go away.)
2013-08-21 06:49:37 -07:00
Eric House
f728f7459b pass INITIAL_CLIENT_VERS and git version to relay 2013-08-20 08:42:41 -07:00
Eric House
5197033de3 In the spirit of setting constants in only one place, pass
INITIAL_CLIENT_VERS in from build.xml rather than the jni makefile,
and make it available in java world as well.
2013-08-20 08:42:12 -07:00
Eric House
2157706dcd add client version and a desc string to devices DB and to reg info sent to relay 2013-08-20 08:09:45 -07:00
Eric House
a8d67830d8 add missing enum 2013-08-19 20:51:03 -07:00
Eric House
84d06b9fed use g_shell_parse_argv() to parse input buf (so messages can be in
quotes and contain whitespace)
2013-08-19 08:25:06 -07:00
Eric House
7bce97f78a post notification, not alert, on receipt of relay alert message 2013-08-19 07:02:03 -07:00
Eric House
0868a33c83 print out whether message is ACK'd or not 2013-08-18 20:52:09 -07:00
Eric House
31a3a593a4 handle alert command by posting message (if app's in foreground;
should otherwise post an intent...); remove some of excessive logging
2013-08-18 20:13:08 -07:00
Eric House
5412119a6f add hexDump (commented out) 2013-08-18 15:49:13 -07:00
Eric House
d0aca01289 clean up send message/alert code 2013-08-18 15:48:44 -07:00
Eric House
47203437cc register devices more often; add ctrl command to send text message to
device if possible, otherwise to post it to the db (mostly for testing).
2013-08-17 14:55:19 -07:00
Eric House
8ad549d2bd query on null db fails, doesn't assert 2013-08-16 19:15:28 -07:00
Eric House
e776f7b230 comment out toast that's showing on every connection -- too annoying 2013-08-15 22:32:00 -07:00
Eric House
8c56f55445 track time since last game-related packet, not any packet from relay. 2013-08-15 22:32:00 -07:00
Eric House
10ef75113f factor common code 2013-08-15 22:32:00 -07:00
Eric House
6a27bbba94 tweaks to new ctrl command 2013-08-15 19:22:23 -07:00
Eric House
d07bb5013d oops: function need to return something 2013-08-15 19:22:01 -07:00
Eric House
62f0819a82 Toward resurrecting ctrl feature to give runtime info about stuff that
isn't in the DB.  Step one: comment out the stuff that doesn't compile
and add ability to print all registered devices with their ages.
2013-08-15 08:44:33 -07:00
Eric House
06f0b7e411 treat KEEPALIVE same as RQSTMSGS (for now) 2013-08-15 07:25:20 -07:00
Eric House
61009cefc7 in advance of using memcache, keep track (in memory) of those devids
for which no messages are pending, since that's a query that can be
made by each device every minute.
2013-08-15 07:24:30 -07:00
Eric House
42bbc946ae quote variable and echo when switching to udp 2013-08-15 07:20:22 -07:00
Eric House
f1b60dab62 Don't assert when can't find state transition. At least in some cases
these result from unexpected/out-of-order packets that slip through.
2013-08-14 08:11:21 -07:00
Eric House
fe51d19c2e Device can't be 'alreadyHere' if has hostID of 0 since the only way a
device gets registered involves giving it a non-0 hostID.  Fixes array
OOB access.
2013-08-14 08:10:09 -07:00
Eric House
80f66d1df7 remove test for duplicates now that it's impossible 2013-08-13 08:20:57 -07:00
Eric House
5be8779749 remove redundant member variable 2013-08-13 08:19:32 -07:00
Eric House
c9406c36ae use a simple array rather than a vector to store currently connected
devices.  It's simpler, searching for hid is faster, and it makes it
easier to detect when we try to add the same device twice.
2013-08-13 08:04:19 -07:00
Eric House
652a8ec905 toward staying reachable as-if GCM were there: note whether GCM
working, and if so skip keeping the connection up.  But otherwise stay
reachable by relay for a week after last udp packet was received.
2013-08-12 08:24:52 -07:00
Eric House
09494dcf09 remove unused param 2013-08-12 08:15:55 -07:00
Eric House
0ba0530bf3 set global before informing of change so if there's a query result
will match what was sent
2013-08-12 08:13:58 -07:00
Eric House
fde50cce32 move timeout interval into config file; cleanup 2013-08-12 07:41:48 -07:00
Eric House
a96c0c548f switch from static final ints to an enum; no other change. 2013-08-11 10:47:01 -07:00
Eric House
1d52a9afea add reset button to ConnStatusHandler on-click dialog that calls to
stubbed-out function in RelayService
2013-08-10 23:24:46 -07:00
Eric House
de1803c9dd cleanup: reduce number of params required 2013-08-10 17:36:37 -07:00
Eric House
758c6a6c5c add interface to ConnStatusHandler as part of moving UI-based response
into Activity.
2013-08-10 14:25:28 -07:00
Eric House
dbc1bb1cd5 use getHandler() 2013-08-10 08:54:51 -07:00
Eric House
787367071d show only those devids in the visible games 2013-08-08 19:55:04 -07:00
Eric House
f96155f12b merge changes for quick b65 2013-08-08 01:14:23 -07:00
Eric House
9528e61f84 Merge remote-tracking branch 'origin/android_branch' into android_branch 2013-08-08 01:07:02 -07:00
Eric House
635b948c41 don't drop messages from devices without a devID -- lots of older
devices are in that boat.
2013-08-08 00:40:32 -07:00
Eric House
20056153aa up version strings 2013-08-07 23:54:47 -07:00
Eric House
6bb2a9bb9a fix crash upgrading from beta 30 (which is two years old!) 2013-08-07 23:52:37 -07:00
Eric House
d8e6979bcc cleanup: store db schema as arrays of arrays rather than arrays whose
odd- and even-indexed members have different roles.  Uses slightly
more memory but is better code.
2013-08-07 23:48:33 -07:00
Eric House
d00e9edf55 fix crash upgrading from beta 30 (which is two years old!) 2013-08-07 23:36:17 -07:00
Eric House
01c97c5716 null token is a possibility if message was stored by device connecting
via tcp and device is now connecting via udp
2013-08-07 21:59:21 -07:00
Eric House
cd9eea665b oops: still need to register device connecting via tcp so gcm sends
can work.
2013-08-07 21:36:06 -07:00
Eric House
84b77d4456 log threadid as unsigned int 2013-08-07 21:32:58 -07:00
Eric House
b49486fc3f cleanup: use constant and add/use isUDP() 2013-08-07 21:31:10 -07:00
Eric House
ae21b6f0d8 use new --use-udp flag and, by default, switch devices from tcp- to
udp-based connections over time at a configurable rate.
2013-08-07 21:12:08 -07:00
Eric House
71ea59e7fb separate whether app is using udp from whether it stores games in a
sqlite3 db so that it can switch mid-game -- that being something that
needs testing.
2013-08-07 21:09:48 -07:00
Eric House
bac947d780 don't remember tcp-based addresses. Fixes problem when a device
switches from tcp- to udp-based connection.
2013-08-07 21:04:05 -07:00
Eric House
91c82d9874 tweak logging to match format gdb prints 2013-08-07 21:03:11 -07:00
Eric House
6dbabaa319 cleanup 2013-08-07 21:02:47 -07:00
Eric House
da3f62729b Merge tag 'android_beta_64' into android_branch
beta 64
2013-08-07 06:18:15 -07:00
Eric House
b33991486c up strings for next beta (a quick fix) 2013-08-06 22:03:09 -07:00
Eric House
a38fd0e96c fix too-short tray on 10" tablet by making height a 16-bit value, not 8-. 2013-08-06 21:56:10 -07:00
Eric House
b9450589c8 add new commandline option --use-udp. Not yet used. 2013-08-06 21:10:42 -07:00
Eric House
470dbb5304 oops: still remove address from set tracked if it's not tcp 2013-08-05 07:50:11 -07:00
Eric House
4ad6696ecc add delete-on-ack logic to another message sending site, and fix
assertion failure caused by not providing a client token on messages
being sent.
2013-08-02 22:33:06 -07:00
Eric House
ed0c0fe3a5 add methods that don't require handler but use any set 2013-08-02 08:03:35 -07:00
Eric House
1e94e217b8 collapse catch statements since all do the same thing 2013-08-02 08:02:46 -07:00
Eric House
da54b1e5fb add keepalive timers 2013-08-02 08:01:16 -07:00
Eric House
1e35d676bf change constant name 2013-08-02 07:31:41 -07:00
Eric House
6e14a6d33a fix leak; remove unused variable 2013-08-02 06:11:08 -07:00
Eric House
8b936ea0ea iterator is invalid after erase() call, so advance first. Fixes problem valgrind found. 2013-08-02 06:08:41 -07:00
Eric House
a8cc920dcf new method 2013-08-01 07:49:12 -07:00
Eric House
4ecb0f534d For a subset of stored messages sent, don't remove from DB until
they're acked.  (This is the goal for all messages sent via UDP, but
will be harder elsewhere in the code.)
2013-08-01 07:48:44 -07:00
Eric House
684effd170 cleanup 2013-08-01 06:12:58 -07:00
Eric House
17b8eae1f1 clean up fetching of stored messages, and excluse those from dead games 2013-07-31 07:24:58 -07:00
Eric House
64b89536b0 Test whether game is on device before starting process of opening it.
Fixes problem caused by relay sending messages for games that have
been deleted.
2013-07-30 07:43:52 -07:00
Eric House
4ce2368e90 remove unused variable and functions that set it 2013-07-30 07:35:13 -07:00
Eric House
54c1e0c2ab drop bogus assert 2013-07-29 17:39:43 -07:00
Eric House
b40533230a fix OS warning by unregistering SMS receivers in onDestroy 2013-07-29 07:50:01 -07:00
Eric House
63ad3a196b debug build asserts that packet is meant for this device, but
non-debug should drop those that aren't.
2013-07-29 07:30:46 -07:00
Eric House
1f877c7567 remove logging 2013-07-29 07:29:01 -07:00
Eric House
d8a4b5ce29 include udp maxInterval, the number of seconds the relay's configured
to assume an address is still good when it hasn't heard from it, in
reg response reply, send that reply always, and read and log the new
field on clients.  It will eventually be used to implement a
keepalive.
2013-07-29 07:27:30 -07:00
Eric House
cdea106824 change param to simplify code a bit 2013-07-29 06:33:31 -07:00
Eric House
5f9b2e431f optimization: test address before fetching messages for it 2013-07-28 07:28:32 -07:00
Eric House
9951064439 fetch all stored messages at once to reduce number of DB calls made. 2013-07-25 06:37:53 -07:00
Eric House
6bb2efbbd5 remove mistaken assert 2013-07-24 06:03:50 -07:00
Eric House
41160579ca remove duplicate 2013-07-23 18:30:08 -07:00
Eric House
bfc617720e add isCurrent() method on UDP addresses based on how long it's been
since we've received data from the same source, and use to drop
packets in response to reads that are older than when the test says
the endpoint of the address changed.
2013-07-23 06:21:57 -07:00
Eric House
572d3596ae add heretofore undocumented config 2013-07-23 06:18:17 -07:00
Eric House
ceacbc2cbe fix formatting error 2013-07-23 06:17:35 -07:00
Eric House
acca4d14d4 new files to track how long it's been since data's been received from
a UDP address.  The idea's that when there's too long a gap the
address has likely been recycled and we shouldn't send replies to
packets received before the reset.
2013-07-22 07:26:14 -07:00
Eric House
6418513a6d don't try to read from socket if == -1 2013-07-22 06:15:35 -07:00
Eric House
385243763a Merge remote-tracking branch 'origin/android_branch' into android_branch 2013-07-22 06:13:01 -07:00
Eric House
a191c6fc2a don't add chats to queue at len 64 rather than 128 2013-07-22 06:12:06 -07:00
Eric House
7b18da70db logging tweak 2013-07-22 06:11:10 -07:00
Eric House
48a2567edf log contents of incoming udp packets 2013-07-22 06:06:39 -07:00
Eric House
13550865ad drop packets in queue if they've been there longer than 30 seconds --
which should be a configurable value.
2013-07-22 06:05:24 -07:00
Eric House
3a14b12cc5 exit when number of core files changes, not if it's non-zero 2013-07-20 12:52:32 -07:00
Eric House
13c234dfab log when address replaced 2013-07-20 11:59:00 -07:00
Eric House
49a2d099f0 include packet num in every udp packet. They start over on app
reboot, but add a bit of help with debugging.
2013-07-20 11:57:10 -07:00
Eric House
5d8cd5a17f recognize already-seen devices. This seems to occasionally fix
reconnect problems but needs to be studied/tested more -- check logs.
2013-07-20 11:44:00 -07:00
Eric House
464ef49018 add new send_via_udp that may be able to check for address validity 2013-07-20 10:37:38 -07:00
Eric House
792a51a404 change ivar name 2013-07-20 08:33:22 -07:00
Eric House
61992943dd Add mapping from address to devid in order to catch when an address is
reused.  That required making AddrUnion a class rather than a simple union.
2013-07-20 08:06:14 -07:00
Eric House
573a87993e Don't propogate chat when queue too full. This *should* only impact
tests since users won't keep chatting at a non-responsive friend.
2013-07-20 08:01:56 -07:00
Eric House
32150049e2 assert that we aren't tracking two connected games with the same hid 2013-07-20 06:28:35 -07:00
Eric House
27d9f3de45 Don't enable chat when more than 128 messages are in queue to prevent
an extremely unlikely cause of stalls -- and make tests trip over full
queues less often.
2013-07-18 07:37:45 -07:00
Eric House
3f59b31d51 Log received udp messages as b64-encoded strings. These match what the
relay's now logging
2013-07-18 07:07:25 -07:00
Eric House
1e6ff9b33c include seed in chat messages to make sure they're unique 2013-07-18 07:06:20 -07:00
Eric House
2ce097629f log contents of udp packets as b64-encoded strings for debugging; off
by default.
2013-07-18 06:52:07 -07:00
Eric House
06dd9a99a1 better logging 2013-07-17 21:34:52 -07:00
Eric House
3737f19548 better logging 2013-07-17 21:34:27 -07:00
Eric House
972dcfec81 cleanup 2013-07-17 21:33:59 -07:00
Eric House
1d5cf0bea7 don't remember devid unless it's valid 2013-07-17 21:33:36 -07:00
Eric House
93a7c7f817 fix to compile when DEBUG not defined 2013-07-17 06:52:35 -07:00
Eric House
bf39f9194c kill service after 3 minutes of no socket activity 2013-07-17 06:42:54 -07:00
Eric House
d436232800 correctly log b64 dump of return address at record and use sites 2013-07-17 06:38:25 -07:00
Eric House
62dacb83d8 fix to compile when DEBUG not defined 2013-07-16 08:17:46 -07:00
Eric House
4d9d65b67e Merge remote-tracking branch 'origin/android_branch' into android_branch 2013-07-16 08:07:41 -07:00
Eric House
3d9539b42b don't stop comms before every save, but only when stopping 2013-07-16 08:06:23 -07:00
Eric House
5571816339 enable udp by default 2013-07-16 08:05:46 -07:00
Eric House
403401745e network connection stuff must not be run on main/UI thread, so to
preserve socket connection completing before startup of read and write
threads, move it and start of write thread to beginning of read
thread.
2013-07-16 08:01:59 -07:00
Eric House
b7e00bfc0c log when unable open game based on rowid -- which may happen if
e.g. relay is sending packets to wrong device.
2013-07-16 07:56:56 -07:00
Eric House
d6fd79be44 log, and be more aggressive about closing, sockets on which errors occur 2013-07-16 06:43:30 -07:00
Eric House
e6e7154c82 close socket rather than proceed with what looks like a bad packet/connection 2013-07-16 06:42:21 -07:00
Eric House
021d6370f3 drop, rather than asserting about, corrupt packets -- meaning where
the player counts don't make sense.
2013-07-16 06:40:00 -07:00
Eric House
1638d964fb log socket address to try to track down apparent misaddressing 2013-07-16 06:38:26 -07:00
Eric House
cd728853b9 check for case where rowid doesn't exist (rather than NPE) 2013-07-15 07:51:15 -07:00
Eric House
e80fe76652 assert we don't go out of bounds on array 2013-07-15 07:33:27 -07:00
Eric House
27e90c2d2c exit as soon as there's a core file 2013-07-15 07:16:35 -07:00
Eric House
b5714e9d14 improve API: hide special numbers inside implementation 2013-07-12 08:24:44 -07:00
Eric House
ab1ae7c9ad remove logging 2013-07-12 08:19:53 -07:00
Eric House
9e358ad413 don't insert a new message in queue if it's identical to the one
currently at the end.  This mostly happens when devices are making
several initial client connection attempts before succeeding.
2013-07-12 07:34:12 -07:00
Eric House
8a4e766b32 make 50% of games communicate via UDP by default 2013-07-11 20:39:40 -07:00
Eric House
491b288631 assert that the seed's preserved for curses version too (where
clientToken is otherwise ignored since there's only one game per app
instance)
2013-07-11 20:39:10 -07:00
Eric House
9db54a5461 make linux version's gameToken combine game's seed with rowid so we
can test that the relay is keeping them straight
2013-07-11 20:01:17 -07:00
Eric House
f27d8d5d8f list java files first so their methods, which tend to be more
numerous, will be found last.
2013-07-11 19:56:37 -07:00
Eric House
d6658c5c08 don't show other_disconnected error message 2013-07-10 23:14:48 -07:00
Eric House
7dfd19a7a2 name change 2013-07-10 23:14:24 -07:00
Eric House
5814febad5 better client token logging 2013-07-10 23:13:50 -07:00
Eric House
2060aa4577 don't match on empty devID 2013-07-10 23:12:57 -07:00
Eric House
a522266ce4 add message checksumming for android too by making it part of util
(compiled out by default)
2013-07-10 08:05:47 -07:00
Eric House
dbf156fca7 remove excess logging 2013-07-10 08:02:28 -07:00
Eric House
5462a05692 Merge branch 'gtk_multigame' into android_branch 2013-07-09 19:35:26 -07:00
Eric House
bf1cdf225c print queue less frequently 2013-07-09 19:32:49 -07:00
Eric House
4bde445c48 fix so gtk mode works too by providing storage for CurGameInfo 2013-07-09 18:19:22 -07:00
Eric House
5a20cc282c fix so curses app works well enough that discon_ok2.sh script runs
successfully.  GTK mode is untested and certainly broken.
2013-07-09 18:10:41 -07:00
Eric House
48fbf15a69 needed to quote variable 2013-07-09 18:07:03 -07:00
Eric House
f5696334a9 changes to get the merged code to compile but not included by git in the commit 2013-07-09 07:25:23 -07:00
Eric House
79f07e8751 cleanup 2013-07-09 07:19:20 -07:00
Eric House
d50c808f96 Merge branch 'android_branch' into gtk_multigame
Conflicts:
	xwords4/android/XWords4/src/org/eehouse/android/xw4/DlgDelegate.java
	xwords4/common/comms.c
	xwords4/linux/cursesmain.c
	xwords4/linux/cursesmain.h
	xwords4/linux/gtkmain.c
	xwords4/linux/gtkmain.h
	xwords4/linux/linuxmain.c
	xwords4/linux/main.h
	xwords4/linux/scripts/discon_ok2.sh
	xwords4/relay/xwrelay.cpp

(Note: The curses app crashes on exit with mempool assertions, but that's a problem before the merge.)
2013-07-09 07:18:00 -07:00
Eric House
db26c32c3e revert accidental part of commit 2013-07-08 07:14:42 -07:00
Eric House
7d968f8502 target is now hard-coded since I reliably can't derive it from the
manifest file.
2013-07-08 07:13:48 -07:00
Eric House
7e36171046 add comment 2013-07-08 07:13:04 -07:00
Eric House
11994d06f8 quote variable to make shell happy 2013-07-08 07:09:03 -07:00
Eric House
e7d20fd2a3 change API version configured by build script to be what I'm using now 2013-07-08 07:03:57 -07:00
Eric House
008cce8f37 Revert "pass additional param into java world so don't show toast every time connect to relay"
This reverts commit e9615cb154.
2013-07-08 06:30:26 -07:00
Eric House
bb68b25429 remove suggestion I don't have permission to use icons! 2013-07-07 19:53:12 -07:00
Eric House
a3de759d9e fix to compile on Android when DEBUG set 2013-07-07 19:40:07 -07:00
Eric House
e9615cb154 pass additional param into java world so don't show toast every time connect to relay 2013-07-07 13:31:49 -07:00
Eric House
923d41e0ee fix to compile when DEBUG not set 2013-07-07 13:17:26 -07:00
Eric House
0f104db88c list another change 2013-07-07 13:07:12 -07:00
Eric House
2c5ac1c293 remove excess logging 2013-07-07 13:07:02 -07:00
Eric House
fb32c847ae more changes from translator 2013-07-05 21:37:38 -07:00
Eric House
bbac923f68 assert queueLen at the point where it'll be easier track why it's overgrowing 2013-07-05 21:32:41 -07:00
Eric House
232b27e06a combine two log lines 2013-07-05 21:31:39 -07:00
Eric House
f87ffe7a96 display new column 2013-07-05 21:28:27 -07:00
Eric House
e8022d44ea correctly parse hid from relayID, fixing assertion failure. I'm not
sure how it ever worked....
2013-07-05 21:26:17 -07:00
Eric House
713551fa43 only log recv() errors that aren't related to non-blocking sockets 2013-07-05 21:23:54 -07:00
Eric House
7ecaf76b22 Merge remote-tracking branch 'origin/android_branch' into android_branch 2013-07-05 21:21:19 -07:00
Eric House
254b82104c reduce priority of log message 2013-07-05 08:03:31 -07:00
Eric House
2cd84c4229 test that address is good each time through loop 2013-07-05 08:03:03 -07:00
Eric House
23c66e93ab add flag required to compile on some linux systems 2013-07-05 08:02:22 -07:00
Eric House
a93eb4a511 fix assertion failure: log and drop packet when hid outside of accepted range. 2013-07-05 08:01:31 -07:00
Eric House
883cec0652 log whether b64 encoding is being used 2013-07-05 06:56:43 -07:00
Eric House
7419e3506a add missing string to translation 2013-07-05 06:19:28 -07:00
Eric House
cd1886a751 changes from translator 2013-07-04 20:46:59 -07:00
Eric House
4b5af7ebdf don't try to read from socket after it's been closed 2013-07-04 12:37:55 -07:00
Eric House
e6248210a5 when formatting final scores, print all players with top score as
Winner (fixing bug that occurred in case of a tie)
2013-07-04 12:37:10 -07:00
Eric House
7229535be7 insist on non-0 channel ID *net of mask*; don't send acks when we
don't have a connID yet, as this confuses the server.  This fixes
assertions in testing that were pretty common when chat was enabled;
it may also fix the reported problem on Android that games get hosed
when people are using chat, as the server's response (without the
assert) was to add a new channel.
2013-07-03 07:39:05 -07:00
Eric House
8e12a8ef84 when we get a fatal error from postgres server, try killing then
recreating the connection.  This is untested, as fatal errors are
rare.
2013-07-03 07:36:15 -07:00
Eric House
3364dcbf46 remove unused enum 2013-07-03 07:26:23 -07:00
Eric House
858d00332a when an initial message from a client arrives with channel already
set, drop it (after asserting in debug code.)  I'm not yet sure why
this happens, but giving it a new channel is not the right move.
2013-07-02 18:49:48 -07:00
Eric House
6cd3ebd780 improve logging 2013-07-02 18:31:02 -07:00
Eric House
0ac5d6d9e2 don't send more than three unanswered chats per boot -- to avoid
filling up the queues in a way that doesn't reflect real use.
2013-07-02 18:30:23 -07:00
Eric House
b53f9bc578 let Pqexec fail three times, usleeping between, before restarting with an assert 2013-07-02 07:27:31 -07:00
Eric House
dd48cea912 don't log string before it's initialized 2013-07-02 07:26:32 -07:00
Eric House
a8f49ad94b Merge remote-tracking branch 'origin/android_branch' into android_branch 2013-07-02 06:08:23 -07:00
Eric House
9fca3792cf don't pile on chat messages when relay isn't even connected: it's an
unfair test that doesn't duplicate what users will likely do.
2013-07-02 05:53:58 -07:00
Eric House
3d18e5832e specify server's port in conf file since at least on one of my
machines it's not what libpq expects.  (Required by upgrade from 8.4
to 9.1.)
2013-07-02 05:46:48 -07:00
Eric House
1f63745e34 add more logging in search of channelNo bug 2013-07-01 07:54:38 -07:00
Eric House
2da26cf8a9 cleanup/comment 2013-07-01 07:52:02 -07:00
Eric House
c202cd8608 don't pile on chat messages when relay isn't even connected: it's an
unfair test that doesn't duplicate what users will likely do.
2013-07-01 07:51:38 -07:00
Eric House
9ceb1615b3 replace tabs with spaces 2013-06-30 17:24:33 -07:00
Eric House
070590b3c2 cleanup 2013-06-30 08:34:09 -07:00
Eric House
b506a91068 add commandline params 2013-06-30 08:33:58 -07:00
Eric House
c77021231c print checksums of sent and received messages 2013-06-30 08:33:29 -07:00
Eric House
195f873ab0 tweak logging 2013-06-30 07:37:35 -07:00
Eric House
6fbf2d4a8b use g_compute_checksum_for_data, removing self-written equivalent 2013-06-30 07:36:56 -07:00
Eric House
7efbfab0e5 fix crash in debug version: len of data to be summed needs to be 32 bits! 2013-06-30 06:50:57 -07:00
Eric House
1a73ab26ac tweak logging 2013-06-28 20:33:27 -07:00
Eric House
17eda4e5e1 move md5sum code into separate function that relay can copy 2013-06-28 20:33:12 -07:00
Eric House
6c756533e3 fix double-dispose crash (but there's still a memory leak) 2013-06-28 20:32:19 -07:00
Eric House
5c284fe6b0 test PID is live before killing it 2013-06-28 18:55:19 -07:00
Eric House
8419bf2a04 close socket if length == 0 -- protocol violation or network error 2013-06-28 18:48:57 -07:00
Eric House
0a794f390f fix off-by-one error leading to malformed queries 2013-06-28 18:47:11 -07:00
Eric House
3f2548dcce Merge branch 'fix_tablets' into android_branch
Conflicts:
	xwords4/android/XWords4/res/raw/changes
2013-06-27 08:04:03 -07:00
Eric House
4a49c49e87 changes for second tablet fix release. This time I've confirmed they
work on the google store.
2013-06-27 07:58:02 -07:00
Eric House
292982a4b4 when splitting packet, queue them and send on timer rather than
sleeping the main thread.
2013-06-27 07:00:36 -07:00
Eric House
0447b9f5e5 column name changed 2013-06-27 06:58:17 -07:00
Eric House
f9cebfe444 track bytes sent per device rather than per game 2013-06-27 06:23:15 -07:00
Eric House
b31858ee5e log rather than assert when hostid changes -- though I'm not seeing
this now that the relay doesn't send packets to the wrong device
2013-06-26 00:42:55 -07:00
Eric House
0bb4f5b0f5 fix occasional memory leak 2013-06-26 00:41:16 -07:00
Eric House
8324b9c770 fix compile error by making HELP another command. 2013-06-26 00:39:58 -07:00
Eric House
9138cd15b7 fix problems with devices reconnecting when their ACKs didn't arrive
and their slots are empty or have been reassigned: basically we check
if a device goes where it expects, and if not treat it as a new
connection rather than a reconnect, meaning its hostid may change.
Existing device code seems ok with that -- and at any rate I don't
think ACKs get dropped much in the wild.
2013-06-26 00:38:34 -07:00
Eric House
909640c82f cleanup/improve logging 2013-06-26 00:36:02 -07:00
Eric House
d7f8e8e198 rq is hanging, so set timeouts on its blocking sockets 2013-06-26 00:27:55 -07:00
Eric House
d801b23a87 add missing config option 2013-06-25 23:40:46 -07:00
Eric House
a1d272bf4f log sockets associated with packets 2013-06-25 22:54:13 -07:00
Eric House
649969bc30 send ALL_HERE to all players 2013-06-25 22:52:13 -07:00
Eric House
f1a257a2aa Merge branch 'android_branch' into local_fix_relay 2013-06-25 21:44:39 -07:00
Eric House
79293503fd Merge branch 'from_beta_60' into android_branch
Conflicts:
	xwords4/android/XWords4/AndroidManifest.xml
	xwords4/android/XWords4/project.properties
	xwords4/android/XWords4/res/raw/changes
2013-06-25 21:25:03 -07:00
Eric House
8cb89976cb new quickie release to fix Play Store filtering out devices without
phones -- or so I think.  Make SMS optional, and up version strings.
2013-06-25 21:14:14 -07:00
Eric House
aa7e9bf751 fix compile when debug define turned on 2013-06-25 07:59:40 -07:00
Eric House
27e9b48b78 fix timestamp math that had newer sometimes less than older 2013-06-25 07:58:15 -07:00
Eric House
7967966982 Merge remote-tracking branch 'origin/android_branch' into local_fix_relay
Conflicts:
	xwords4/linux/linuxmain.c
	xwords4/linux/main.h
2013-06-25 06:18:43 -07:00
Eric House
5612bb000b quick hack to allow testing intermix of chat with normal moves 2013-06-24 18:37:49 -07:00
Eric House
5842654418 fix pattern 2013-06-24 07:30:38 -07:00
Eric House
aca3a96b54 fix pattern so ended games are detected 2013-06-24 07:18:53 -07:00
Eric House
519f90a69a go with non-blocking sockets for tcp connections, adding the ability
to reassemble packets that arrive in separate recv() calls.
2013-06-24 07:09:57 -07:00
Eric House
d4cf37d2ef fix misspelling 2013-06-24 07:05:09 -07:00
Eric House
bc6922cb8b add option to split tcp packets to test whether relay can handle reassembly. 2013-06-24 06:33:06 -07:00
Eric House
ed16437f9a don't refuse to store message when devid isn't available 2013-06-23 19:07:45 -07:00
Eric House
d14688a6a0 fix almost-infinite loop; assert no dup devids 2013-06-22 22:24:18 -07:00
Eric House
5dadbfdad3 drop messages without enough delivery info 2013-06-22 06:01:42 -07:00
Eric House
acd7c8519f give timers ids so can be tracked in logs 2013-06-22 05:56:27 -07:00
Eric House
07d6851a26 logging changes for debugging -- main not belong in main branch 2013-06-22 05:55:38 -07:00
Eric House
c1cc11866f tweak logging 2013-06-22 05:54:32 -07:00
Eric House
25bf0e7191 assertion: should never have two recs for same socket 2013-06-22 05:53:54 -07:00
Eric House
5d20ef872e cleanup 2013-06-22 05:53:32 -07:00
Eric House
6d22c3ab86 tweak logging 2013-06-22 05:51:29 -07:00
Eric House
6027c94a43 don't pass uninitialized variables to logf 2013-06-21 07:26:11 -07:00
Eric House
b1ef09625e pair delete[] with new[] 2013-06-21 07:25:41 -07:00
Eric House
c587848349 cleanup 2013-06-21 06:59:44 -07:00
Eric House
5e22508ff7 kill existing xwords instances as part of --clean-start 2013-06-21 06:58:20 -07:00
Eric House
8b8d22a7ba fix compile error: move function back to being inline since header
can't be readily included from .h file
2013-06-21 06:14:10 -07:00
Eric House
2a35fac1e8 rather than invalidating socket in AddrRec when it's closed, add a
timestamp set when it's opened.  Older copies with the same socket can
be tested against the cannonical copy maintained by tpool and sending
avoided when the timestamp shows the endpoint has likely changed.
Change tpool's list of sockets to a map for faster lookup, and get rid
of similar structure in udpqueue.
2013-06-21 06:05:26 -07:00
Eric House
6446819466 use nice to give the relay a fighting chance 2013-06-21 05:41:23 -07:00
Eric House
11d299606e test for socket == -1 (invalidated) before sending 2013-06-20 07:10:09 -07:00
Eric House
46bd4d0047 inval tcp sockets in return addresses of packets waiting processing
when they're closed to prevent attempting to write replies to the
wrong device should the socket be reopened.
2013-06-20 07:07:56 -07:00
Eric House
5bec10048b add --clean-start option to speed testing 2013-06-20 06:45:51 -07:00
Eric House
985f7bfea0 tweak: don't restart whole loop on unlikely random result 2013-06-19 07:27:34 -07:00
Eric House
ecef687471 drop message, rather than asserting, if device id isn't in db. 2013-06-17 07:52:58 -07:00
Eric House
3e9dfb9a9d allow a thread to get a cidlock it already has. 2013-06-17 07:26:54 -07:00
Eric House
950e754ca2 cleanup 2013-06-17 07:26:10 -07:00
Eric House
a546c025d5 Rather than queuing sockets needing reading, read them immediately and
queue the packets for processing.  Add ids so they can be tracked in
the logs.  In addition to making tcp and udp packet processing more
similar this fixes the case where a read is delayed until after the
client has closed the connection (and so returns an error.)
2013-06-17 07:25:25 -07:00
Eric House
1928554444 add asserts and clarifying comments 2013-06-17 06:54:38 -07:00
Eric House
7ce939f5c0 pass rather than hard-coding column name 2013-06-17 06:48:22 -07:00
Eric House
5da4936e43 report unexpected received packet size as an error 2013-06-17 06:42:21 -07:00
Eric House
e89fd3e8cc fix names to make units clear -- no code change 2013-06-10 06:38:42 -07:00
Eric House
c8f584dad2 don't listen on stdin if it's been closed 2013-06-10 06:15:36 -07:00
Eric House
e6488ff8c1 save space by shortening column names 2013-06-07 20:54:57 -07:00
Eric House
bf767577e3 msg64 will not always be set! Don't delete in that case. 2013-06-07 20:54:16 -07:00
Eric House
ed1e2a0812 fix formatting -- no code change 2013-06-05 21:14:51 -07:00
Eric House
00be532c96 fix formatting -- no code change 2013-06-05 21:11:37 -07:00
Eric House
6a9c0bf5d4 up version strings for next beta 2013-06-05 20:56:59 -07:00
Eric House
6b2ec193c2 cleanup 2013-06-05 08:04:00 -07:00
Eric House
280154a12c fix bad message when dict deleted by using the right rowid variable -- duh. 2013-06-05 08:03:13 -07:00
Eric House
f9676f5ffd set focusableInTouchMode on wordlist browser's layout. This is the
only way I can find to prevent the soft keyboard from coming up on
launch.
2013-06-05 07:34:31 -07:00
Eric House
ca8a37d822 move less-used buttons to right where they may be off-screen 2013-06-05 07:33:31 -07:00
Eric House
c6d06e5fa4 bring up new popup on tap rather than long-tap of browser button to
make it easier to discover.  Long-tap now opens the wordlist directly.
2013-06-05 06:59:08 -07:00
Eric House
bb130a9b9f new feature: long-click on wordlist button in BoardActivity brings up
a popup of all wordlists so you can browse one that's not in use,
e.g. to see if a word's legal in a larger wordlist.  Uses PopupMenu
class that was introduced in API 11, so 11's the target now and the
interface trick is used to prevent crashing on older devices (which
get a "needs newer Android" alert.)
2013-06-04 07:29:40 -07:00
Eric House
c32df1a487 use alpha to dim pending score rather than mucking with the rgb values 2013-06-01 08:10:03 -07:00
Eric House
9d40930fff pass new param into java, and when it's not the player's turn draw
pending points with his color at half-intensity.
2013-05-31 07:40:42 -07:00
Eric House
d41c1a4ca8 add new param so pending text can be drawn differently when it's not
the player's turn.
2013-05-30 07:17:13 -07:00
Eric House
8e8b4755b3 bring in changes from gtk_multigame to remove assertion fail when
connname gets changed by relay due to failure to ack it (which happens
when a large number of games is being run in a test.)
2013-05-30 06:48:29 -07:00
Eric House
8b888b8d96 fix compile errors due to stricter compiler post debian upgrade 2013-05-29 06:36:54 -07:00
Eric House
72a78100b1 fix compile error in non-debug version 2013-05-27 16:18:11 -07:00
Eric House
eccd31472f fix crash when udp not in use 2013-05-27 16:17:58 -07:00
Eric House
ffa983db94 use pipe to quit from signal handler since calling g_main_loop_quit()
doesn't work with more recent glib versions (and has always been a bad idea)
2013-05-24 21:19:20 -07:00
Eric House
a1b6641067 catch and ignore exception from malformed user-provided url 2013-05-24 21:17:22 -07:00
Eric House
f4c18a78ac clear game-launched flag in onNewIntent so that one game can replace
another via a Notification- or other-sourced Intent
2013-05-23 07:51:03 -07:00
Eric House
6c7cf1fa97 fix bug where two quick taps on a game will launch two copies (or
crash a slower device) by tracking whether an open's in progress
2013-05-23 06:48:40 -07:00
Eric House
cc2ecdc5b2 two post-conflicted-merge changes git didn't pick up for some reason (emacs?) 2013-05-22 07:03:08 -07:00
Eric House
31c443e4b1 Merge branch 'android_branch' into gtk_multigame
Conflicts:
	xwords4/android/XWords4/src/org/eehouse/android/xw4/GCMIntentService.java
	xwords4/android/XWords4/src/org/eehouse/android/xw4/RelayService.java
2013-05-22 07:01:08 -07:00
Eric House
2e30ccd4c6 expect array of message bodies rather than just one 2013-05-22 06:45:34 -07:00
Eric House
120748416b handle GCM messages containing data, changing clientVers so server
knows we can.  And send to relay in AsyncTask rather than UI thread.
2013-05-22 06:44:01 -07:00
Eric House
076b1b7543 remove logging 2013-05-22 06:44:01 -07:00
Eric House
78b3a91925 format: send array of message bodies rather than just one 2013-05-22 06:40:02 -07:00
Eric House
11709b21bd remove redundant parameters 2013-05-22 05:51:33 -07:00
Eric House
7d81083d7d send using old message format to old clients, new to new 2013-05-22 05:39:20 -07:00
Eric House
9b5607d829 send message along with GCM notification that ... there's a message.
Should eventually allow GCM-aware clients to skip connecting on
launch, and for now to make them a tiny bit snappier.
2013-05-21 19:35:34 -07:00
Eric House
2a2157b504 add DICTNOTE 2013-05-21 06:58:53 -07:00
Eric House
b58fe30ecc add synonyms to tile counts/values summary 2013-05-14 22:00:22 -07:00
Eric House
4d96b695e6 toward having commandline params show up as defaults in new game dialog 2013-05-10 07:19:32 -07:00
Eric House
9e67dda5a9 make use of base-64 encoding runtime-configurable 2013-05-09 22:16:48 -07:00
Eric House
4470a9e66c clean up a couple of debug-only strings 2013-05-09 22:15:38 -07:00
Eric House
f9f7874a55 make use of base-64 encoding runtime-configurable 2013-05-09 21:53:54 -07:00
Eric House
79a212c985 don't put up dict change dialog (which blocks) unless names are
different.
2013-05-09 21:37:58 -07:00
Eric House
d74814a806 part of previous (merge) commit that got left out -- files not saved. 2013-05-09 06:33:19 -07:00
Eric House
7d8cddb31f Merge branch 'android_branch' into gtk_multigame
Conflicts:
	xwords4/linux/gtkmain.c
	xwords4/linux/linuxmain.c
	xwords4/relay/xwrelay.cpp
2013-05-08 07:37:55 -07:00
Eric House
3e9bb1c6b9 fix leak: dispose struct before overwriting it 2013-05-08 06:38:52 -07:00
Eric House
66d42fe5f2 fix a couple of leaks 2013-05-07 07:07:10 -07:00
Eric House
407a82322c modify to server the latest beta for non-debug users 2013-05-02 06:58:36 -07:00
Eric House
9cfc6be82c fix for when wordlist not found 2013-05-02 06:52:12 -07:00
Eric House
5a026ffda3 merge android_wordlists (local branch) 2013-05-01 06:39:31 -07:00
Eric House
c31a1d98df update changes list 2013-05-01 06:33:22 -07:00
Eric House
4e2f5b3b14 add (commented-out) debug function to print list of extras in an intent 2013-05-01 06:26:02 -07:00
Eric House
a62f9d4097 Fix but with missing-dict SMS invites: add missing intent extra. 2013-04-30 21:20:59 -07:00
Eric House
c8f447171a Stop SMS service if play via SMS is disabled by user 2013-04-29 07:40:42 -07:00
Eric House
e4eb867717 add new flag bit to built-in wordlists 2013-04-20 19:46:52 -07:00
Eric House
541fc546ab remove that bit from flags -- since we already do the right thing for it. 2013-04-20 19:46:35 -07:00
Eric House
519ba71e87 add new bit indicating that wordlist has synonyms 2013-04-20 19:45:54 -07:00
Eric House
87e21cd204 fix type in English string 2013-04-18 19:46:12 -07:00
Eric House
81ce47fe5e Add Brazilian Portuguese translation. 2013-04-18 19:44:52 -07:00
Eric House
bc1c8d0769 add variants of multi-letter "specials" that mix case 2013-04-18 19:42:02 -07:00
Eric House
75d11d7d95 Revert "First cut at Brazilian Portuguese localization, unmodified from what"
This reverts commit 6b43d29ff1.

Belongs on the main branch as it won't be part of the next beta.
2013-04-18 19:24:19 -07:00
Eric House
dbc8605d1d remove removed change from changelist 2013-04-18 19:19:41 -07:00
Eric House
0d260155ee Revert "On some devices a downloaded wordlist shows up twice, once in Internal"
This reverts commit 685971532a.

No way to test this right now....
2013-04-18 19:12:49 -07:00
Eric House
e4f52c5678 add assert and comment explaining why non-utf-8-aware hack is safe. 2013-04-18 07:15:14 -07:00
Eric House
cdcfef4e18 fix type in English string 2013-04-17 20:03:14 -07:00
Eric House
6b43d29ff1 First cut at Brazilian Portuguese localization, unmodified from what
the translator provided.
2013-04-17 19:59:41 -07:00
Eric House
7288e8c6dc up version/changes for next release 2013-04-16 07:14:03 -07:00
Eric House
685971532a On some devices a downloaded wordlist shows up twice, once in Internal
and again in Downloads.  I assume that's because the two directories
are the same, so fix by tracking directories that have been checked
and not checking the same twice.
2013-04-16 06:56:53 -07:00
Eric House
1614ebd551 new versions of builtin English wordlists with lowercase synonyms for all
letters ('a' for 'A', etc.)
2013-04-14 15:54:39 -07:00
Eric House
c8332a9665 load synonyms for specials correctly. So now Catalan works: wordlists
load, and search for "l-l" will find "L·L".
2013-04-14 15:45:23 -07:00
Eric House
cae631eeb0 handle synonyms in non-special tiles for Android: wordlists load and
display, and searching using lower case works.  Specials (e.g. Catalan
changes) not yet supported.
2013-04-14 11:58:11 -07:00
Eric House
2873d08974 fix memory leak 2013-04-13 16:49:20 -07:00
Eric House
195e6bfad3 add option to dump an .xwd file, meant to replace dawg2dict.pl which
is becoming a pain to maintain.
2013-04-09 21:10:40 -07:00
Eric House
5912b76cb8 add option to dump an .xwd file, meant to replace dawg2dict.pl which
is becoming a pain to maintain.
2013-04-09 21:05:35 -07:00
Eric House
07cfdad699 fix to support synonyms within specials too -- for linux only so far.
Seems to work, though the dawg2dict.pl script is broken.
2013-04-09 07:43:04 -07:00
Eric House
3a628f4375 load new-format dict into linux client, display default faces
correctly, and search using alternate as well as default faces.  Next:
support for alternate specials.
2013-04-06 11:43:57 -07:00
Eric House
03f175dd8f handle new format for tile face 'A|a', meaning "A" or "a", as far as
being able to compile a wordlist and take it apart using dawg2dict.
None of the compiled clients can handle this format yet.
2013-04-06 10:28:22 -07:00
Eric House
a9d94e2977 list changes for b59 2013-04-06 08:24:30 -07:00
Eric House
43f4e802b6 up copyright year -- it's 2013 now 2013-04-06 08:18:27 -07:00
Eric House
388d37e4ee deal with more than one connected device/emulator 2013-04-06 08:16:57 -07:00
Eric House
51d72447c6 fix crash when wordlist winds up in downloads dir (for reasons I don't
understand: I can't reproduce the crash but for at least one
correspondent it happens every time.)
2013-04-06 08:05:39 -07:00
Eric House
86b39b8340 up version strings and number 2013-04-06 08:04:05 -07:00
Eric House
567cd2913a Merge remote-tracking branch 'origin/android_branch' into android_branch 2013-04-06 05:32:10 -07:00
Eric House
cc7220fa85 first cut at makefile for new Brazillian Portugese wordlist 2013-04-04 07:18:36 -07:00
Eric House
bd1a909321 assert, in debug-only code, that saved moves alternate between players
and are ordered.  I've seen games in the wild with three moves in a
row by the same player and want to catch this in testing.
2013-03-01 07:49:26 -08:00
Eric House
2bfda1b56d function to print StackMoveType 2013-02-22 21:34:53 -08:00
Eric House
168ebeeb5b fix variable name misspelling 2013-02-22 21:10:46 -08:00
Eric House
7c937fd763 improve script a bit 2013-02-12 07:37:44 -08:00
Eric House
40470b491e update note for new version 2013-02-12 07:08:21 -08:00
Eric House
eafac8724e don't stop processing message referring to multiple games as soon as
one of them can't be found.
2013-02-08 20:58:09 -08:00
Eric House
6a1b86380e add missing files from gtk_multigame branch -- to fix broken compile 2013-02-04 21:33:35 -08:00
Eric House
5e0fd89c9e update with all relay/ changes from gtk_multigame. This is what the
live relay's running anyway.
2013-02-04 06:08:39 -08:00
Eric House
a18fb62b0f fix dialog not having custom OK button by not ignoring the param passed in. 2013-01-31 06:59:42 -08:00
Eric House
bf479c4334 Merge branch 'android_branch' into gtk_multigame 2013-01-30 08:03:48 -08:00
Eric House
660efa6380 rename script to be easier to type 2013-01-30 08:03:13 -08:00
Eric House
66a00bd76e make DlgState Parcelable rather than Serializable to work around what
seems to be a bug in the Blaze's OS.  (Requires that it be a
standalone class.)
2013-01-30 07:58:37 -08:00
Eric House
5e7fd39d66 always remove dialog state so we don't get confused 2013-01-29 21:59:42 -08:00
Eric House
0dc3856250 set initial rowID based on clock to avoid duplicates after an
uninstall/reinstall.
2013-01-29 19:02:53 -08:00
Eric House
d154efa441 rowid needs to be autoincrement to be useful as a token with new relay
protocol.  And you can't make it autoincrement except when creating a
table.  So add new column set equal to current rowid, then create a
new table and copy the old data into it.
2013-01-29 19:01:00 -08:00
Eric House
cdd40b0782 Merge remote-tracking branch 'origin/android_branch' into android_branch 2013-01-29 18:57:38 -08:00
Eric House
d88f66a890 record experiment with serialization -- no code change. 2013-01-29 18:57:03 -08:00
Eric House
d5842e79c2 use the new ANON devid type 2013-01-29 18:36:19 -08:00
Eric House
2cfa56c2d8 update to not require incomplete gcm module 2013-01-29 18:34:33 -08:00
Eric House
f3a063698c set initial rowID based on clock to avoid duplicates after an
uninstall/reinstall.
2013-01-29 08:01:14 -08:00
Eric House
c75ecef240 test deletion of games and generation of anonymous relayIDs 2013-01-29 07:42:10 -08:00
Eric House
9ee16adc3a add support for udp-based delete and anonymous (relay-provided) regIDs 2013-01-29 07:38:07 -08:00
Eric House
72e100ccac use autoincrement primary key, same as on Android 2013-01-28 07:02:33 -08:00
Eric House
d78a4979da HACK: if gi's notion of gameID is out of sync, force it in (logging
the fact).  I'm not sure why but this is required sometimes on
Android.
2013-01-28 07:01:49 -08:00
Eric House
339ec66844 Merge remote-tracking branch 'origin/gtk_multigame' into gtk_multigame 2013-01-28 06:53:17 -08:00
Eric House
3e723c72c5 call comms_stop() before closing (removing from memory) a game. 2013-01-28 06:52:32 -08:00
Eric House
1546b15997 rowid needs to be autoincrement to be useful as a token with new relay
protocol.  And you can't make it autoincrement except when creating a
table.  So add new column set equal to current rowid, then create a
new table and copy the old data into it.
2013-01-28 06:51:39 -08:00
Eric House
d1621c8d4b track and log all packetIDs and acks, including number (but not type)
of unacked packets.
2013-01-27 21:29:36 -08:00
Eric House
4aee75aeab ack all packets from clients; log acks. This is for debugging and may
not need to stay.
2013-01-27 21:26:27 -08:00
Eric House
302ac9d55c script to list who's attached to the db 2013-01-27 08:30:02 -08:00
Eric House
82dc986c79 remove bad asserts and unused variable 2013-01-26 21:49:17 -08:00
Eric House
cc69901632 reset to null in loop in case exit due to exceeding retry count 2013-01-26 21:17:46 -08:00
Eric House
a9b459ea2e log rather than assert 2013-01-26 21:16:48 -08:00
Eric House
06bc80fcc9 let's make 1 the default number of threads 2013-01-26 20:59:27 -08:00
Eric House
cba04e4b95 Merge branch 'android_branch' into gtk_multigame
Conflicts:
	xwords4/relay/xwrelay.cpp
2013-01-26 20:20:54 -08:00
Eric House
3be45a67f7 fix erroneous asserts: it's uncommon but ok for a device to get
assigne a second connname.  (Cause: failure of relay to receive the
device's ACK.)
2013-01-26 18:56:53 -08:00
Eric House
2fdcea54f5 fix logging of sockets 2013-01-26 18:55:55 -08:00
Eric House
7ecf57c556 increase size of buffer for incoming proxy packets, since now that I
have 50+ saved network games requests for moves are that big.  (This
is a temporary fix.)
2013-01-26 18:48:57 -08:00
Eric House
4b335ab464 make function static 2013-01-26 18:36:40 -08:00
Eric House
b324a382e2 I've seen read() return 0 after being told there's something on the
socket.  So in that case loop and try again five time -- in case the
docs are wrong that 0 means EOF?  Hmmm.
2013-01-26 11:58:48 -08:00
Eric House
88b20769f9 increase buffer size 2013-01-26 11:56:29 -08:00
Eric House
2aba3c0ce1 load dict early enough to have lang available to comms when it first connects. 2013-01-26 11:56:20 -08:00
Eric House
336e3cd289 handle all three types of message in a single thread, punting all
synchronization issues to a future point where the load demands it.
2013-01-26 11:54:48 -08:00
Eric House
9e1d09648d fix log statement 2013-01-26 11:04:20 -08:00
Eric House
8cb0a8a7a7 fix crash on startup (as done already on gtk branch) 2013-01-26 09:23:44 -08:00
Eric House
7ee402d2ae move callback into queueelem so same queue can service udp and tcp (eventually) 2013-01-25 07:19:44 -08:00
Eric House
4417591b06 debug pref to disable GCM so new stuff can be tested on-device 2013-01-25 07:17:00 -08:00
Eric House
83441c65ef debug pref to disable GCM so new stuff can be tested on-device 2013-01-25 07:16:38 -08:00
Eric House
f91af77438 always try starting UDP threads in case Service has been stopped;
implement transportSend in RelayMsgSink since relay-connection packets
need it.
2013-01-25 06:22:37 -08:00
Eric House
c8b3050c8d fix duplicate key that was getting lots of extra games created 2013-01-25 06:20:32 -08:00
Eric House
23b7e5a2eb fix syntax error in query 2013-01-24 21:11:15 -08:00
Eric House
2e0ff09cf9 fix memory leak and uninstall idle proc on the way out 2013-01-24 21:10:41 -08:00
Eric House
af58e7c4e1 comment 2013-01-24 20:27:56 -08:00
Eric House
084643ca82 don't include dead-game messages when fetching for devices 2013-01-24 20:27:36 -08:00
Eric House
7253cfa313 assert that map.insert() is actually doing something in those cases
where I expect it to.
2013-01-24 19:34:20 -08:00
Eric House
036c908b72 remove token from XWPDEV_HAVEMSGS message 2013-01-24 19:33:33 -08:00
Eric House
5f2d628855 update protocol description 2013-01-24 19:33:02 -08:00
Eric House
55c117c9fc fix assert by nulling out variable 2013-01-24 19:25:32 -08:00
Eric House
481e50aaae don't bother pushing do-we-ack decision out of static method 2013-01-24 19:23:05 -08:00
Eric House
498498a2bf remove gameToken param from XWPDEV_HAVEMSGS message since it's for the
whole device rather than one game on it.
2013-01-24 19:20:35 -08:00
Eric House
0fad19e38a make it possible to mix udp and non-udp games (which currently crashes the relay very rarely) 2013-01-24 18:56:10 -08:00
Eric House
481f344ff4 fix failure to clean up on exit 2013-01-24 08:08:53 -08:00
Eric House
cbb82eb5e8 add --via-udp option -- which causes app to crash because the memory
leak detector is working
2013-01-24 08:00:53 -08:00
Eric House
9f3250cb3f make curses version use udp socket when --db param passed. There's no
UI for the DB and the assumption is only one game will be stored but
this should let the test script be modified to test the new protocol.
2013-01-24 07:49:49 -08:00
Eric House
c465a0bb0c add loop to print when packets haven't been ack'd 2013-01-24 07:43:24 -08:00
Eric House
da4d841220 use per-device UDP rather than per-board TCP to communicate with
relay, including latest UDP protocol and acking changes.  Basically
works (in emulator at least) but there are problems especially with
initial game creation.
2013-01-23 07:46:13 -08:00
Eric House
12f70154a0 changes for includes-messageID-please-ack protocol addition 2013-01-23 07:43:58 -08:00
Eric House
ce7cdab3f0 add msgid and acking to protocol -- maybe for debugging only. 2013-01-23 07:40:52 -08:00
Eric House
ff70e3fbc2 fix use of map.insert: check for existing key and overwrite value 2013-01-23 07:35:20 -08:00
Eric House
a3e4e31205 remove logging 2013-01-23 07:28:25 -08:00
Eric House
8c0984fb7a Merge remote-tracking branch 'origin/gtk_multigame' into gtk_multigame 2013-01-22 06:54:42 -08:00
Eric House
2d7977e4b5 fix test: unset TEXT column returns as "", not NULL. 2013-01-22 06:52:50 -08:00
Eric House
c839db4a25 disconnect from relay no matter what the state 2013-01-22 06:12:55 -08:00
Eric House
29acab1ef2 tweak display 2013-01-21 19:44:08 -08:00
Eric House
90b8f966f6 comment out unnecessary assert 2013-01-21 19:40:56 -08:00
Eric House
2744e8698c optionally (compile-time change for now) store message data as
b64-encoded TEXT instead of BYTEA, which on my laptop is getting
corrupted sometimes.
2013-01-21 19:40:20 -08:00
Eric House
d374d0f3d8 optionally (compile-time change for now) store message data as
b64-encoded TEXT instead of BYTEA, which on my laptop is getting
corrupted sometimes.
2013-01-21 19:39:57 -08:00
Eric House
ae9ec31863 don't call g_main_loop_quit() from inside signal handler: it doesn't
work on Ubuntu LTS at least.  Instead write to a "quit pipe" and exit
the loop from the pipe's reader back outside exception context.
2013-01-21 18:57:48 -08:00
Eric House
a6b3cb8cbe add new param JNIThread requires 2013-01-20 21:34:28 -08:00
Eric House
de7c29dcc7 add comms_stop() to jni and use it 2013-01-20 21:33:35 -08:00
Eric House
132a495c4f add explanatory comment 2013-01-20 21:32:19 -08:00
Eric House
991cc8f04c fail in main mode if udp socket not set 2013-01-20 21:03:43 -08:00
Eric House
e79b0bd3eb Merge branch 'gtk_multigame' of ssh://xwords.git.sourceforge.net/gitroot/xwords/xwords into gtk_multigame 2013-01-20 19:27:50 -08:00
Eric House
21570ec9b4 Merge remote-tracking branch 'origin/android_branch' into gtk_multigame 2013-01-20 19:27:25 -08:00
Eric House
3df0484e6a get maintenance mode message into an alert -- and create a new common
superclass for Service subclasses to reuse some code.
2013-01-20 16:07:38 -08:00
Eric House
fd2f4309f4 beginning of android changes to talk udp to the relay: sufficient to
get back (and log, not display) a message when the relay is in
maintenance mode.
2013-01-20 15:29:51 -08:00
Eric House
93ff4f4fcb handle the new length-plus-string format 2013-01-20 13:07:01 -08:00
Eric House
016b16a8b2 change relay alert message format to length-plus-string rather than
null-terminated for easier handling on the java end.
2013-01-20 13:06:34 -08:00
Eric House
3fc31a6fe1 new enum for alert 2013-01-20 10:04:24 -08:00
Eric House
9023440a88 reply with alert to any connection attempt when in maint mode 2013-01-20 10:03:20 -08:00
Eric House
f06d129c24 change env variable name; provided inital board size and dict choices 2013-01-20 09:53:26 -08:00
Eric House
b768d8fccc fall through to using hard-coded maxsocks value 2013-01-20 09:22:35 -08:00
Eric House
3dfb2e04e6 call comms_close in curses too to avoid new assert 2013-01-19 22:53:25 -08:00
Eric House
3313c776ab fix unregister sql error 2013-01-19 22:37:12 -08:00
Eric House
3bcf5d504b add a debug pref for turning on UDP-based networking (ignored so far) 2013-01-19 16:03:29 -08:00
Eric House
360602b3a0 fix compile failure: never meant to check this change in. 2013-01-19 16:02:58 -08:00
Eric House
6797e069bc Merge branch 'android_branch' into gtk_multigame 2013-01-19 15:56:16 -08:00
Eric House
54ad381749 Merge remote-tracking branch 'origin/android_branch' into android_branch 2013-01-19 15:54:40 -08:00
Eric House
0ef3549a4e handle (display) the relay's new error message 2013-01-19 15:18:36 -08:00
Eric House
65e9789c3f add mainentance mode, triggered by a commandline flag, that does
nothing but loop waiting for connections on the UDP socket and sending
them back the error message provided on the commandline.
2013-01-19 15:17:51 -08:00
Eric House
1bb9f9b1bf handle sending of messages generated by games opened only to receive
messages from relay.  And handle report that relayID is bad.
2013-01-19 14:37:49 -08:00
Eric House
63d3f70cdf more changes to storage and fetching of messages and to protocol so
presence of messages is reported on connect (as are bad relayIDs).
Now a game with a robot player in a "closed" game can continue.  Once
the next set of linux-side chances is committed.
2013-01-19 14:34:04 -08:00
Eric House
99307e45a0 queue incoming packets and process them in order in a separate thread 2013-01-18 19:56:21 -08:00
Eric House
1519a00004 toward being able to handle messages received for closed game.
Receipt seems to work but send in that state doesn't.
2013-01-18 07:49:00 -08:00
Eric House
c999bbae92 always test those last-minute pre-checkin cleanups 2013-01-18 07:22:56 -08:00
Eric House
3984d85795 oops -- prev checkin didn't compile 2013-01-18 07:12:26 -08:00
Eric House
1c5fef6a38 relay improvements for UDP connection: record addresses, prepare to
run in separate thread, etc.
2013-01-18 07:10:47 -08:00
Eric House
932778f700 stubbed-out thread manager for udp connection 2013-01-18 06:57:57 -08:00
Eric House
4163309dae Let's have just one set of signal handlers 2013-01-17 06:37:53 -08:00
Eric House
2f772c56b2 make gtk app a better test bed: add db and row to window titles,
implement delete button and multiple selections, etc.
2013-01-16 21:16:07 -08:00
Eric House
c33c50ee6b add deleteGame() 2013-01-16 21:11:35 -08:00
Eric House
a6784464ff first set of networking changes testing per-device communication with
relay on behalf of a number of games.  Works as long as all the games
are open.
2013-01-16 06:46:33 -08:00
Eric House
f6e7ece578 add comms_stop() and an assert to make sure it's called. Explicit
stop and a message to the relay when using a UDP socket makes up for
there being no notification of connection closing.
2013-01-16 06:31:09 -08:00
Eric House
a107365c88 change names of two types and variables of that type to make a common
pattern more sensible.  No code changes.
2013-01-15 19:04:20 -08:00
Eric House
7fec736947 add udp socket and protocol for use over it so that a device can
manage a single connection to the relay for all of its games.  Works
so far to the extent that the game's playable with all boards on the
same device (with checkins about to come) as long as all boards are
open.  (Client doesn't handle opening closed games yet.)
2013-01-15 18:41:17 -08:00
Eric House
5a51af489a Merge branch 'android_branch' into gtk_multigame 2013-01-13 10:41:14 -08:00
Eric House
dc0cfdf001 bug in recent changes: need to mark socket unused to avoid double removal 2013-01-13 10:37:47 -08:00
Eric House
98679c8363 cleanup: better encapsulation for AddrInfo 2013-01-13 10:14:06 -08:00
Eric House
c567647a8d get rid of mapping of socket->game_connection, which will not work
once UDP sockets and/or per-device (not per-game) connections come
along.  Lots of changes, most not involving code flow but a couple
that did.  So far two gtk games can connect and exchange moves.
Haven't tested reconnection or store-and-forward.
2013-01-12 16:09:24 -08:00
Eric House
33735ae7a5 Merge branch 'android_branch' into gtk_multigame 2013-01-11 20:48:44 -08:00
Eric House
b46df07237 Merge remote branch 'origin/android_branch' into android_branch 2013-01-11 20:48:04 -08:00
Eric House
6dcd7022d4 don't pass .css file in; it's ignored 2013-01-11 20:42:57 -08:00
Eric House
55514719be include thread ptr in hung threads logging; assert (restart) when hung for too long 2013-01-11 20:42:04 -08:00
Eric House
39d12d088a use usleep when waiting for cref to be available 2013-01-11 20:37:08 -08:00
Eric House
aed2b6135c Merge branch 'android_branch' into gtk_multigame 2013-01-10 21:10:48 -08:00
Eric House
2ccc297463 make number of sockets at which we assert/reboot configurable so tests
can be done with large numbers of clients.
2013-01-10 21:10:18 -08:00
Eric House
dddb135b9d add more columns, and update each time game is saved 2013-01-09 06:30:52 -08:00
Eric House
7437a71aa6 use string_printf 2013-01-09 06:29:12 -08:00
Eric House
fac3e6b678 fix gtk version to correctly implement util_setIsServer (which only
Android did so far) by calling server_initClientConnection().  Now
relay games work with both started as hosts.  (GTK UI prevents
starting one as a guest; cmdline is required for that, if it still
works.)
2013-01-08 07:28:30 -08:00
Eric House
5e2bfd20da add a checkbox -- which apparently won't interact until I "implement
the 'activate' virtual method".
2013-01-08 06:32:43 -08:00
Eric House
1cb959c86d type tree model column correctly 2013-01-07 20:51:59 -08:00
Eric House
76f3bb3413 fix curses version so discon_ok2 tests work again. 2013-01-07 20:40:46 -08:00
Eric House
565b742971 snapshot -- connects to relay but doesn't play yet. 2013-01-07 08:00:47 -08:00
Eric House
469e656464 track open games so don't double-open and can close all on quit 2013-01-07 06:36:34 -08:00
Eric House
f88387da80 lots of changes to separate game data from app data so several games
can be open at once.  (curses version is almost certainly broken)
2013-01-07 06:10:44 -08:00
Eric House
b61ed7b631 opening saved games and saving of changes now work. 2013-01-05 21:01:26 -08:00
Eric House
a8014a855b now games are displayed in lists. Next: open them. 2013-01-05 19:40:29 -08:00
Eric House
8238d45350 ignore the db 2013-01-05 19:37:05 -08:00
Eric House
e0dc83ed70 rest of what I just meant to commit. 2013-01-05 16:08:47 -08:00
Eric House
4af30c534c snapshot. New game button works and game gets saved in DB. Next: display and open from DB. 2013-01-05 16:08:19 -08:00
Eric House
63487dc5d0 assert gdk setup going ok 2013-01-03 08:18:35 -08:00
Eric House
f827bebf80 ignore .pyc file 2013-01-02 21:13:36 -08:00
Eric House
ad78129e74 changes made over the past couple of months toward tracking an
apparent thread leak.
2013-01-02 21:12:42 -08:00
Eric House
d34ac1f86d rewrite to work without gcm library (whose lack of support for some
documented params makes it impossible to try using them)
2013-01-02 21:08:10 -08:00
Eric House
f5b8bb7aae fix text to match there being multiple buttons 2013-01-01 23:26:31 -08:00
Eric House
2202c6c6bf up version strings and number 2013-01-01 22:33:31 -08:00
Eric House
c97ec6b1e9 up copyright year -- it's 2013 now 2013-01-01 22:33:19 -08:00
Eric House
05cee5ce09 further work supporting simultaneous dialogs: use
bundle.get/putSerializable() to save/restore dialog state
2013-01-01 22:27:14 -08:00
Eric House
af406d92dc Handle multiple dialogs at once: save dialog state by dialog ID (ok
since the OS won't track more than one at a time with the same ID) and
look it up that way when needed.  Get rid of onPrepareDialog() (and in
all my Activity subclasses) since it's now a requirement that all
DlgDelegate-managed dialogs remove themselves from the Activity on
dismissal so that onCreateDialog will always get called and
onPrepareDialog not be needed.
2013-01-01 21:45:37 -08:00
Eric House
8b2712bd9e always remove dialog on dismissal since each must have its on-dismiss
handler called with its own state.  Fixes assertion failure that was
happening the second time a dialog was used.  Next: find a
reproducible case where two dialogs want to be created at the same
time.
2012-12-31 07:08:41 -08:00
Eric House
d1941090c5 Merge branch 'android_branch' into fix_dlgdelegate 2012-12-31 06:25:49 -08:00
Eric House
049b3389a6 turn DEBUG back on 2012-12-29 18:49:13 -08:00
Eric House
bbf9e8e0df tweaks suggested by code review 2012-12-29 13:22:00 -08:00
Eric House
1faf60f667 move updateRow back where it was (prior to some merge); no code change 2012-12-29 12:50:02 -08:00
Eric House
90adcde164 move side padding around 2012-12-29 12:42:48 -08:00
Eric House
04a7f9c999 tweak text; fix misspelling 2012-12-29 12:30:01 -08:00
Eric House
05566b1833 add space before ) to protect against buggy email url parsers. 2012-12-29 12:24:13 -08:00
Eric House
e58e520f70 fix name/rename group dialog title 2012-12-29 11:53:18 -08:00
Eric House
498ca99020 deal with added groups too, and better with removed groups. 2012-12-29 11:36:51 -08:00
Eric House
8c4b878e21 preserve order of groups when removing one by removing it from list
rather than allowing list to be regenerated.
2012-12-29 09:35:44 -08:00
Eric House
674b6d3e8e don't let new group dialog present the last name chosen as default name 2012-12-29 09:18:17 -08:00
Eric House
78670e9650 fix bug: include wordlist name in bad word info passed into util function 2012-12-29 07:48:31 -08:00
Eric House
ad2b925a60 print wordlist name as part of error message 2012-12-29 07:47:44 -08:00
Eric House
ff3af7f095 add xml-non-strippable space between sentences 2012-12-29 07:47:12 -08:00
Eric House
c994b27c04 try grey background and italic text for list group views 2012-12-28 20:01:13 -08:00
Eric House
4d07046a99 make static GamesListItem method responsible for providing new instances. 2012-12-28 20:00:46 -08:00
Eric House
21e572acfc Revert "use WeakReference to cache GameListItems and to inval them"
(Reusing Views this way seems to cause the occasional failure to recognize a tap-on-item bug.)

This reverts commit edd712ac16.
2012-12-28 10:06:16 -08:00
Eric House
edd712ac16 use WeakReference to cache GameListItems and to inval them 2012-12-28 09:50:33 -08:00
Eric House
fb575949ac order games within group the same way all games used to be ordered,
and get rid of the old all-games-listing code since it's no longer
used.
2012-12-27 20:50:37 -08:00
Eric House
a6586b6131 docs say not to call cursor.close -- so don't. 2012-12-27 20:38:31 -08:00
Eric House
8bba5d6106 Revert "add POSITION column to groups table, unused as yet"
This reverts commit 7be6a182f0.
2012-12-26 19:35:21 -08:00
Eric House
68026fef3e disable (but don't hide) group context menus that can't do anything. 2012-12-26 19:31:24 -08:00
Eric House
0d9f1a3ba7 add move-up and move-down menuitems so group order can be controlled
by user.  Store position as array of rowids in preferences, and make
game info hashed by rowid rather than name.
2012-12-26 18:55:15 -08:00
Eric House
0a7fcb2de4 remove deleteAll menuitem 2012-12-22 23:21:01 -08:00
Eric House
7be6a182f0 add POSITION column to groups table, unused as yet 2012-12-22 22:59:08 -08:00
Eric House
3ce379588b indent game list items to make them easier to tell from group items 2012-12-22 22:54:10 -08:00
Eric House
110df3c1ba Merge branch 'android_branch' into fix_dlgdelegate 2012-12-21 23:03:22 -08:00
Eric House
a594a77673 Merge branch 'android_branch' into android_groups 2012-12-21 18:06:48 -08:00
Eric House
2461b526a5 move check for updates into async task 2012-12-21 18:06:27 -08:00
Eric House
e8c3c304ab Fix so when child is invalidated its group/parent also is. Now when
an invisible child gets a network game message that changes its expiry
rendering and it's the one the group is showing, the group will follow.
2012-12-21 17:31:37 -08:00
Eric House
3436a71d65 new string for dialog title (forgot this last checkin) 2012-12-21 17:29:44 -08:00
Eric House
d33f44ea24 Merge branch 'android_branch' into android_groups 2012-12-21 17:15:30 -08:00
Eric House
1998da45de don't save game when it hasn't changed -- when saved bytes are
identical with those we started with.
2012-12-21 17:14:55 -08:00
Eric House
2375f86f61 improve move-to-group dialog: add title and disabled Move button when
radio is current group.
2012-12-21 17:06:04 -08:00
Eric House
a3b24be661 clear background drawable when no longer a local turn 2012-12-21 06:20:58 -08:00
Eric House
1743382e1f cleanup: combine files that belong together 2012-12-20 21:55:57 -08:00
Eric House
db829337f5 up version strings etc. 2012-12-20 21:51:38 -08:00
Eric House
7f9898f317 don't include expiry in group header when expanded 2012-12-19 20:49:02 -08:00
Eric House
ed0bb5b31e minimum to get game list group headers reflecting the most urgent move
expiry info of a contained game: local if there is one, otherwise
remote.  Still need to hide it when expanded, update, etc.
2012-12-19 20:45:58 -08:00
Eric House
7e302aae69 always show game count 2012-12-18 07:57:14 -08:00
Eric House
6690fdf122 derive from XWExpandableListActivity since it exists now 2012-12-18 07:56:48 -08:00
Eric House
9cbd76aae7 more cleanup; log info toward reuse of list items (looks unlikely) 2012-12-18 07:40:48 -08:00
Eric House
d583ec139d move all existing games into the curGames group 2012-12-18 07:08:57 -08:00
Eric House
24bddd1ff7 cleanup 2012-12-18 06:52:13 -08:00
Eric House
983a560294 expand groups in onCreate() 2012-12-18 06:51:43 -08:00
Eric House
3a1b39f827 more of the (conflicted) merge from android_branch. These may be
changes I need to make to get what git produced to compile and so not
what it included in the previous commit.
2012-12-18 06:36:30 -08:00
Eric House
8a58492389 Merge branch 'android_branch' into android_groups
Conflicts:
	xwords4/android/XWords4/res/values/strings.xml
	xwords4/android/XWords4/src/org/eehouse/android/xw4/DBUtils.java
	xwords4/android/XWords4/src/org/eehouse/android/xw4/GameListAdapter.java
	xwords4/android/XWords4/src/org/eehouse/android/xw4/GamesList.java
	xwords4/android/XWords4/src/org/eehouse/android/xw4/XWApp.java
2012-12-18 06:35:07 -08:00
Eric House
8cb9d3d66b turn debug back on 2012-12-18 05:56:14 -08:00
Eric House
6988b14247 no need for redraw in onWindowFocusChanged 2012-12-18 05:40:25 -08:00
Eric House
9d7d0aca2b cleanup: logging and unused imports 2012-12-16 20:14:15 -08:00
Eric House
60adf36718 fix typo 2012-12-16 15:14:33 -08:00
Eric House
e38b99c0c8 set DEBUG to false for release 2012-12-16 15:14:04 -08:00
Eric House
51a5e80a26 mention attachment in invite email text 2012-12-16 15:13:36 -08:00
Eric House
3c4f266b8f work around problems locating GameListItems when it's time to
invalidate them by adding static list of those needing invalidating
and checking it in a new onDraw override.
2012-12-14 18:46:54 -08:00
Eric House
646ec65d66 wrap elapsed time logging in its own debug flag and turn off. 2012-12-14 18:23:33 -08:00
Eric House
8125c451cd in GamesList, save rowid of launched game and inval it afterwards so
scores etc. get updated.
2012-12-14 07:26:13 -08:00
Eric House
028899a9c4 no need to set action on local intent 2012-12-14 07:24:26 -08:00
Eric House
322a65ee41 in several places where lock() was being called without a timeout, add
one, and fail gracefully when a timeout occurs.
2012-12-13 20:22:11 -08:00
Eric House
7a1de73fb7 remove unused file 2012-12-13 20:18:36 -08:00
Eric House
85953c64dd move GameLock into its own file 2012-12-13 18:47:55 -08:00
Eric House
f989dad63c tweak changed descriptions 2012-12-13 07:11:51 -08:00
Eric House
6060d5e8bd Fix hangs when receiving relay messages in background for open game by
adding a static feedMessages method like the one used by SMS and BT
games.  For that to work, rowid and relayid need to be fetched and
tracked together -- so do that in RelayService.
2012-12-13 06:57:12 -08:00
Eric House
91ac04b896 remove logging 2012-12-13 06:32:57 -08:00
Eric House
b71046e5aa lock, rather than tryLock, game when feeding it messages. Otherwise
messages are dropped e.g. when UI's loading a summary in GameListItem.
2012-12-12 07:13:25 -08:00
Eric House
db8364c285 return empty array rather than null when query succeeds but produces
no result.
2012-12-12 06:43:18 -08:00
Eric House
69f868722f cancel any notification for game when resetting it 2012-12-12 06:41:56 -08:00
Eric House
eee954e705 list changes for next release 2012-12-11 19:15:15 -08:00
Eric House
575d5e9745 reduce time we'll wait for a summary to unlock when loading it for games list. 2012-12-11 19:11:23 -08:00
Eric House
01d17fe0c5 redraw full list after resetting a game in case position changes 2012-12-11 19:10:05 -08:00
Eric House
7246ae28c6 clear the cache after loading a new DB so will redraw correctly in list 2012-12-11 19:09:33 -08:00
Eric House
b2bd6ce662 add and use preference for square rack tiles, removing code that alternated for testing purposes. 2012-12-11 07:25:43 -08:00
Eric House
877225f59d rename interface; no code change 2012-12-10 18:20:44 -08:00
Eric House
f599ca8be4 make tiles square based on rowid so people can see both 2012-12-10 07:54:42 -08:00
Eric House
d820554ffb change game list item strategy since it turns out adapter's findView()
doesn't pass in the previous representation of a given item for
recycling: move async loading of summary into GameListItem class, and
use getChildAt() to invalidate a single list (rather than reloading
the whole list) whereever possible.  Still need to dump the list
whenever the number of items changes since we're depending on DBUtils
to determine the order and have no way to reshuffle existing items.
2012-12-10 07:48:15 -08:00
Eric House
1bc8070bb1 disable Rematch button (for now) 2012-12-10 07:11:13 -08:00
Eric House
3a45db66cf cache array of rowids, and clear cache appropriately, rather than
query DB for all games every time.
2012-12-08 20:28:11 -08:00
Eric House
ce803a928c pass summary rather than have callee refetch it 2012-12-08 08:55:45 -08:00
Eric House
7efbd2697d rewrite list item logic. Use a single custom LinearLayout subclass
for both the loading and loaded phases, toggling its state once the
data's available.  Reuse it: pay attention to what's passed into
getView and only allocate when there's no existing View to reuse.
Stop caching Views, as that defeats Android list logic that might
limit in-memory representation to the subset that's visible on-screen,
instead tracking a set of rowids whose data is known to be good as a
way of quickly drawing when there's a refresh.
2012-12-08 08:47:53 -08:00
Eric House
83b1d4c364 fix compiler warnings 2012-12-08 06:40:21 -08:00
Eric House
93bf2a1b3e hard-code tiles drawn nearly-square, just to see what it looks like.
Making them exactly square would probably take a new jni call.  And if
I ship this it needs to be optional, controlled by a preference.
2012-12-05 19:15:20 -08:00
Eric House
e719c6e61d don't crash if for some reason json file can't be written 2012-12-05 08:15:48 -08:00
Eric House
6789a64b68 reduce redundant code (hopefully without adding too much confusion) 2012-12-05 08:14:55 -08:00
Eric House
af853098f2 use preferred SDK-8 API to look for downloads directory, and wrap it
in an interface loaded only when SDK>=8 to avoid load-time crash on
older devices.
2012-12-05 07:32:11 -08:00
Eric House
a035ef5623 attachment can come in as file or content scheme 2012-12-05 06:52:10 -08:00
Eric House
ac8c229e75 Fix attachments, at least for the one phone I've tested on. Requires
K-9 mail (Gmail doesn't allow opening attachments).  Trick was to drop
the file extension, since if present that seems to come ahead of mime
type for filtering.
2012-12-03 23:10:31 -08:00
Eric House
922f4a22f4 remove unneeded variable 2012-12-03 23:07:14 -08:00
Eric House
2c71c8425f pass the rematch request off to GamesList where it can create new
games without interference from locked current game.  Handle
standalone case by cloning and launching: easy.  Networked games will
be harder.
2012-12-03 08:30:29 -08:00
Eric House
c041792f83 move methods toward better encapsualtion (no behavior change) 2012-12-03 08:03:00 -08:00
Eric House
ad606cdec0 trying to figure out why games list is occasionally redrawing itself
all the time: add logging that activated only when XWApp's DEBUG flag
is set, and turn that flag on.  The latter change should be reversed
before the next release.
2012-12-03 06:53:15 -08:00
Eric House
a640f9d97b up version number and string 2012-12-03 06:51:50 -08:00
Eric House
da9c7a1afd comment out unused column 2012-12-02 21:39:33 -08:00
Eric House
bda0d51c7f add Rematch button to game over dialog -- which only puts up notImpl
toast so far.
2012-12-02 18:45:35 -08:00
Eric House
7621b909c3 hide a couple of message-related menuitems for standalone games 2012-12-02 18:19:52 -08:00
Eric House
9eea15185c set m_gameOver when it's first known. 2012-12-02 18:09:15 -08:00
Eric House
e5bb360537 When a game is over, show "Game over" dialog containing score summary
every time it's opened.  This is a quick way to get around it being a
bit hard to tell a board's in that state.
2012-12-02 18:02:27 -08:00
Eric House
264118a5ff Merge remote-tracking branch 'origin/android_branch' into android_branch 2012-12-01 21:13:43 -08:00
Eric House
9007331fb0 cleanup, and suggest accepting Android's make-default offer 2012-12-01 21:13:04 -08:00
Eric House
e920fbcaff unregister (flag in db) devids google says are unregistered 2012-12-01 11:55:16 -08:00
Eric House
0d0146cb17 additional changes required post-merge to compile 2012-12-01 10:53:55 -08:00
Eric House
c4e638bd84 Merge branch 'android_branch' into android_groups
Conflicts:
	xwords4/android/XWords4/res/values/strings.xml
	xwords4/android/XWords4/src/org/eehouse/android/xw4/DBHelper.java
	xwords4/android/XWords4/src/org/eehouse/android/xw4/GamesList.java
	xwords4/android/XWords4/src/org/eehouse/android/xw4/XWApp.java
2012-12-01 10:52:42 -08:00
Eric House
2859ec9132 stime is the name of the column in actual use 2012-12-01 10:31:55 -08:00
Eric House
618d8530f2 some changes accumulated as script was running 2012-12-01 10:27:02 -08:00
Eric House
4dddd2da42 some changes accumulated as script was running 2012-12-01 10:26:00 -08:00
Eric House
38e6eac3a1 improve page users see when opening invite from new device on an old one. 2012-12-01 10:10:28 -08:00
Eric House
dd882ba9d4 first cut at script old clients will see responding to new-style invitations 2012-12-01 09:34:21 -08:00
Eric House
e16245d19e include new column 2012-12-01 09:33:38 -08:00
Eric House
0394579b7c cleanup (and use factored-out updateRow a couple of additional places) 2012-11-30 19:58:23 -08:00
Eric House
795e05f544 update with changes and next steps 2012-11-30 19:57:46 -08:00
Eric House
13b7877a80 put name of file being downloaded in progress dialog 2012-11-30 08:08:45 -08:00
Eric House
74fec9d3d3 disable attachments as part of invitations -- for now. 2012-11-30 07:50:10 -08:00
Eric House
8b5ec28120 SMS play logs too much: remove non-error logging. 2012-11-30 07:22:16 -08:00
Eric House
32d7daf2b5 warn about duplicate games not just when there's exactly one, and
include the most recent create time in the warning.
2012-11-30 07:13:00 -08:00
Eric House
95062fb967 log missing dicts 2012-11-30 07:12:07 -08:00
Eric House
ab0fb918ee open json attachment and from it create a new game. Works, but there
are enough problems with attachements I may turn them off.
2012-11-30 06:21:18 -08:00
Eric House
f4dc8a6b41 snapshot of code and intent filter that gets an attachment into an
email and launches Crosswords when the attachment is opened.
Shouldn't, or at least shouldn't launch ONLY Crosswords, as the mime
type's not in the filter, but it does.
2012-11-29 08:19:07 -08:00
Eric House
9f5a64ee50 don't try to use null gamePtr. Happens when relay moves arrive for a
game whose dict has been deleted.
2012-11-29 06:20:45 -08:00
Eric House
bffb231d13 improve download-or-cancel messages 2012-11-28 21:07:03 -08:00
Eric House
8250447eca launch game after successfully downloading dict it's missing 2012-11-28 20:41:08 -08:00
Eric House
4bae56e631 use rowid as notification id for all types of games, and cancel when
games deleted.
2012-11-28 19:32:50 -08:00
Eric House
19333e33ac fix confirmation of duplicate game from invite. Along the way
dramatically simplify how new game intents are passed around.
2012-11-28 19:17:29 -08:00
Eric House
6f620ebc44 move prefix into resources two since it's repeated. 2012-11-28 06:30:35 -08:00
Eric House
baa790a8c3 remove debugging code; make Intent content details private to class. 2012-11-28 06:06:42 -08:00
Eric House
cd197e4530 use Class instance for synchronization of static methods rather than
creating an object only for that purpose.
2012-11-27 18:55:08 -08:00
Eric House
3cc92e99ca fix uri format error that was causing install to fail 2012-11-27 18:48:05 -08:00
Eric House
7c5a59beb3 remind self of Blaze's download directory 2012-11-27 18:31:14 -08:00
Eric House
bf970b6dd9 remove some logging 2012-11-27 07:53:48 -08:00
Eric House
c39d434ffa add logging giving size and md5sum of downloaded .apk. 2012-11-27 07:22:03 -08:00
Eric House
441cc53740 Remove debug preference for setting host in invite emails, replacing
it with a string resource.  The value passed in invites must match the
string hard-coded in the AndroidManifest so there's no point in making
it runtime-configurable.
2012-11-27 07:04:47 -08:00
Eric House
f3ecfa569a get rid of the second URL in invites that's meant for those without
the app installed.  It's confusing, especially in SMS case, and the
page they see when they don't have the app installed can explain how
to install it.
2012-11-27 07:02:44 -08:00
Eric House
30377908df Use the downloader with an infinite progress indicator instead of the
status-bar notifier (which is removed) for dict downloads.
2012-11-26 20:19:25 -08:00
Eric House
b1f54a67ed end path prefix with a /; otherwise Crosswords gets launched to browse
the wordlist directory.
2012-11-26 20:14:32 -08:00
Eric House
b433438022 add message via GCM to check for wordlist/app upgrades 2012-11-26 18:47:35 -08:00
Eric House
e590db5f3f merge in the db part of 82c39489f0
(android_groups branch, local only right now), but not the UI part
since it won't make the next release.
2012-11-26 08:05:05 -08:00
Eric House
a39cc44d56 Merge branch 'android_branch' into android_groups 2012-11-26 07:41:20 -08:00
Eric House
9130c8da50 download and install upgrade .apk files where possible. Download is
via the existing DictImportActivity, which should also be used for
dict upgrade downloads to keep the UI consistent.
2012-11-26 07:40:45 -08:00
Eric House
302ad04ef9 use recommended intent filtering to allow Crosswords to launch in
response to http URLs, removing need for custom scheme and one step
from the invitation process.
2012-11-26 05:41:42 -08:00
Eric House
6f3881d53d don't crash on malformed invite URL 2012-11-26 03:08:54 -08:00
Eric House
ac435b7857 Merge branch 'android_branch' into android_groups
Conflicts:
	xwords4/android/XWords4/src/org/eehouse/android/xw4/GamesList.java
2012-11-25 14:11:04 -08:00
Eric House
63b29a2cb2 Revert "add read-only debug prefs giving GCM and relay device IDs."
This reverts commit 5019d3960b.
2012-11-25 13:55:02 -08:00
Eric House
f82e5bd0e9 add code to deal with Amazon, which I falsely identified as having
broken custom schemes.  I'm leaving it in, unreachable, to have a record.
2012-11-25 12:30:25 -08:00
Eric House
d7bb869a5b rewrite to present a link rather than redirect, to attempt to present
the link only on Android devices, and to encourage users to email me
if I'm wrong about their not being on a device.
2012-11-25 10:39:46 -08:00
Eric House
5019d3960b add read-only debug prefs giving GCM and relay device IDs. 2012-11-25 09:58:46 -08:00
Eric House
7d6e393007 use a different missing-dict explanation string when the name of the
inviter isn't known (relay case)
2012-11-25 09:58:14 -08:00
Eric House
2a1c028268 deal with case where relay invite arrives for a language that device
doesn't have support for.  Dictionary name is now included in the
invite, and if that's present offer to download it then launch game.
For previous versions that don't include the dict name, offer to
download from the language (though that isn't tested yet.)
2012-11-25 08:54:46 -08:00
Eric House
b2e329f670 pass along wl (dict) param if present 2012-11-25 08:53:15 -08:00
Eric House
a3e0d0ca1e recover from situation where game is created in response to an
invitation for a lang for which it has no dicts installed.  Shouldn't
happen, but on relay still can.
2012-11-22 13:03:32 -08:00
Eric House
9659f810dc work even if ENV variable unset 2012-11-22 08:20:08 -08:00
Eric House
0bea58b128 make it possible to build without knowing the GCM sender ID. 2012-11-22 08:13:06 -08:00
Eric House
daf5a89a0e remove unused imports (no code change) 2012-11-21 21:49:42 -08:00
Eric House
dcf239ca48 add newGroup menu for when button's hidden; add deleteAll menuitem to
set of debug-features (but this should probably not ship until
deleting is changed.)
2012-11-21 06:17:09 -08:00
Eric House
cf88b60c4b make the two buttons fill the screen, and use newly created style
for new_games layout too.
2012-11-20 19:11:39 -08:00
Eric House
a199dd2b92 when deleting a group's games do as when they're deleted individually:
get the lock, tell the relay, and THEN remove from DB.
2012-11-20 19:03:39 -08:00
Eric House
3bff555bfd For move, make current group the default and warn whether there's only
one.
2012-11-20 18:34:26 -08:00
Eric House
19e7e27f1e fix so remembered expanded/contracted state is displayed 2012-11-20 07:40:33 -08:00
Eric House
fbfeae379d cache DB info on groups for better performance 2012-11-20 07:15:56 -08:00
Eric House
48dd3bb72e Merge branch 'android_branch' into android_groups 2012-11-20 07:02:27 -08:00
Eric House
04d839868d on launch to handle an invite for a game that seems to already exist,
instead launch that game -- for better feedback.
2012-11-20 06:24:23 -08:00
Eric House
b244adae1b fix transposed words 2012-11-20 06:22:29 -08:00
Eric House
f149391838 cleanup 2012-11-20 06:13:29 -08:00
Eric House
face24e915 make invite email text a bit easier to read 2012-11-20 06:10:57 -08:00
Eric House
cb70858583 up strings for next release (still a while out!) 2012-11-20 04:14:25 -08:00
Eric House
b827c82291 force refresh after delete 2012-11-19 21:23:19 -08:00
Eric House
be3cad96d7 tweak strings 2012-11-19 21:23:07 -08:00
Eric House
1994ea788e don't allow deleting default group. Wording needs fixing, or better
yet, replace the menuitem with greyed-out "is default group".  But
this works for now.
2012-11-19 19:28:26 -08:00
Eric House
82c39489f0 lots of changes toward grouping games in user-definable groups.
Creation and movement between work.  Deletion crashes.  Expansion
doesn't stick.  All's rough.
2012-11-19 07:41:15 -08:00
Eric House
2779139e75 add columns using data as well. Like pref commit, this does not change behavior. 2012-11-17 10:20:14 -08:00
Eric House
9ad41d5a3a use String[] data to build table-creation queries rather than huge
inline string concatenations.
2012-11-17 10:14:55 -08:00
Eric House
416db91312 experimental: always post notification on new moves received rather
than giving GamesList a chance to launch game directly.
2012-11-16 07:31:52 -08:00
Eric House
cefc13a2cd Docs say should allow GCM to reregister on app upgrade. And that the
registrar takes care of storing devid.  So app version when
registration arrives, and get from registrar except after an upgrade.
2012-11-15 21:44:56 -08:00
Eric House
9a4a8c7b26 use static to avoid querying OS for version over and over. 2012-11-15 21:41:51 -08:00
Eric House
f70a5bc6ee add getAppVersion() 2012-11-15 21:24:54 -08:00
Eric House
e1bc9876dd add to-do 2012-11-15 21:23:31 -08:00
Eric House
bda193029e add constructor in order to pass SENDER_ID to parent constructor,
as docs say to do
2012-11-15 21:14:45 -08:00
Eric House
f64de16ce3 catch and discard all exceptions that come when initing GCM. Fringe
devices may do anthing at that point.
2012-11-15 07:03:32 -08:00
Eric House
5afd93c5f5 fix NPE on Kindle 2012-11-15 06:42:27 -08:00
Eric House
694857dd4e add, but disable with compile flags, ability to mark sent messages
with a timestamp rather than delete them.  Plan is to experiement with
this as a way of keeping devices from sending too many identical
messages when GCM's in use -- since constraints on the msgs table will
not allow identical messages to be added.
2012-11-15 06:25:22 -08:00
Eric House
c847ec127e add and use function that does formatted printing to a std::string so
query buffers can no longer overflow.
2012-11-15 06:15:44 -08:00
Eric House
5463535265 don't increase backoff if there wasn't actually anything to send. 2012-11-14 05:42:47 -08:00
Eric House
9598ea3585 fix to compile post API change. 2012-11-13 21:32:42 -08:00
Eric House
c4df31892e Fix occasional infinite loop of devices sending and receiving the same
message over and over when getting updated by GCM.  The problem
occurred when one device had an un-ACKable initial message still in
its queue.  I call resendAll a lot, which caused that message to get
resent to the other game which then replied without being able to ACK
it so it remained to be sent again.  This would continue until users
moved forward in the game.  The fix is to add a backoff timer to
resendAll() so that it can't loop.  The timer is reset when an ackable
and new message is received, meaning there's been a change in what's
available to resend.  And since users calling resendAll manually
expect it to do something, add a force param that ignores the backoff.
seems to fix the problem (but needs a lot of testing.)
2012-11-13 21:25:03 -08:00
Eric House
cf8d30ce5d tweak logging; fix uninitialized debug-only variable 2012-11-13 21:18:52 -08:00
Eric House
ba11fcf8df don't bother checking for stream size of 0 in jni since comms does
that now.
2012-11-13 21:01:25 -08:00
Eric House
cd2550a90d Merge remote-tracking branch 'origin/android_branch' into android_branch 2012-11-13 07:24:54 -08:00
Eric House
093fc4d1fa cleanup 2012-11-13 07:23:07 -08:00
Eric House
57ea768aaf refuse to send 0-length messages. That may happen only when the stupid
curses client calls server_initClientConnection over and over, but
reduces unnecessary messaging in that case at least.
2012-11-13 07:22:48 -08:00
Eric House
c4f5b4522e minor printing tweaks 2012-11-13 07:17:56 -08:00
Eric House
2908802017 try to make linux client mimic Android a bit better in saving after
any network activity so messages get acked more quickly.
2012-11-13 06:15:36 -08:00
Eric House
43b1e219f3 add a bit more logging to comms 2012-11-13 06:14:36 -08:00
Eric House
082e6a61f7 comment out unused command 2012-11-12 20:57:39 -08:00
Eric House
60814264e7 compile with XWFEATURE_COMMSACK turned off 2012-11-12 20:56:50 -08:00
Eric House
76c938cc67 fix to compile with API change; to drop relayid when it's rejected and
to use register with the GCM id on next [re]connect; and to not leave
variable unintialized when unable to call into java world due to being
called without context.
2012-11-12 08:03:25 -08:00
Eric House
4f3c81417d go back to logging devids for now 2012-11-12 08:01:24 -08:00
Eric House
6ca966f22a make test script and linux client mimic case where relay regid is
rejected by relay.  Client re-registers and a new relay regid is
issued.
2012-11-12 07:27:20 -08:00
Eric House
6a85661095 lots of improvements: make useful for testing with non-android clients; shelve backoff data, etc. 2012-11-10 19:31:22 -08:00
Eric House
1316ae4b67 Fix relay devid protocol to deal with case where client submits a
ID_TYPE_RELAY id that's not in the devices table (as has happened when
a device switches relay URLs during testing, but might also happen if
I have to delete an entry from the devices table.)  In that case,
return ID_TYPE_NONE to the client, which will be its clue to delete
its ID_TYPE_RELAY id and submit the platform-specific id again.

Note: android won't compile this revision thanks to util.h change
2012-11-10 15:05:44 -08:00
Eric House
b53412d98d Fix to actually work. Grrr. 2012-11-10 14:52:10 -08:00
Eric House
ba733634cb NPE: don't crash on first install 2012-11-09 06:57:37 -08:00
Eric House
b0f85e02df use grep of app's help message to determine whether a param is
supported so can test with older clients and not crash.
2012-11-09 06:55:38 -08:00
Eric House
f1ee77882b Send devid with RECONN as well as CONN so games present when device
upgrades can also use GCM.  Tested on relay but not device.
2012-11-09 06:54:12 -08:00
Eric House
ff16db5c10 remove logging 2012-11-08 20:09:16 -08:00
Eric House
0f21f849d9 fix crash attempting to download dict when there's no network, e.g. in
airplane mode.
2012-11-08 20:08:20 -08:00
Eric House
0ef7c8bf46 return TYPE_NONE on devices like Kindle that don't do GCM instead of
an empty string claiming to be a GCM ID.
2012-11-08 19:58:03 -08:00
Eric House
07123ac823 cleanup: remove logging and only check for messages when the json data
holds that command.
2012-11-08 19:54:09 -08:00
Eric House
5cbafb9f56 up version strings and code 2012-11-08 19:49:45 -08:00
Eric House
283045c649 revert previous trivial change 2012-11-08 19:23:52 -08:00
Eric House
49117927db start process of allowing DlgDelegate to handle more than one dialog
at a time.  Step one is to move all the data into a singleton.  Once
that seems to work (excepting in the cases that fire assertions or lead
to dropped dialogs now) move to using a queue of them.  Right now it crashes
with an assertion on dismissing the second dialog.
2012-11-08 19:05:23 -08:00
Eric House
3b1f6a695f don't show "can't do GCM" Toast on Kindle Fire 2012-11-08 06:38:35 -08:00
Eric House
2df4199a77 test script for messaging devices 2012-11-08 06:13:01 -08:00
Eric House
4eff38a85d Merge remote-tracking branch 'origin/android_branch' into android_branch 2012-11-07 22:06:41 -08:00
Eric House
af89047969 treat an empty devID string as TYPE_NONE regardless of what the client claims. 2012-11-07 22:03:58 -08:00
Eric House
e6cd2265df fix crash: make formatParams work with empty strings 2012-11-07 21:57:18 -08:00
Eric House
aafcd5144a Better Kindle fix: don't even post message if SMS not supported. 2012-11-07 19:46:33 -08:00
Eric House
949b804f35 fix NPE on Kindle Fire, which has no SMS DB. Duh. 2012-11-07 19:43:08 -08:00
Eric House
83754d626e add backoff for resending for messages still not removed from msgs table 2012-11-07 08:05:45 -08:00
Eric House
45d0b2dbc8 various improvements, including printing a period on every loop when
there's no work to do.  All that remains is backoff.
2012-11-07 07:31:52 -08:00
Eric House
8516dca1cb what I really meant to check in 2012-11-07 06:23:20 -08:00
Eric House
9b48523ff3 fix to work with new DB scheme and to send json client now expects 2012-11-07 06:17:33 -08:00
Eric House
1e13d6ac6c look for values in msg sent from server, including one that puts up a
message via a notification.
2012-11-06 19:09:15 -08:00
Eric House
2c339ed7a5 fix to work with new devid/table scheme 2012-11-06 07:25:38 -08:00
Eric House
39dbed2004 add missing util method (fixing crash) and with it wire up new devID
scheme: now relay-assigned shorter id will be saved and used for
future games.
2012-11-06 07:08:06 -08:00
Eric House
9ad28908bb assert enum within range 2012-11-06 07:07:14 -08:00
Eric House
9981360c67 put back minsdk stuff accidentally removed in merge. 2012-11-05 06:55:54 -08:00
Eric House
41cfacfee4 don't crash on emulator (which doesn't have library required by GCM) 2012-11-05 06:20:55 -08:00
Eric House
03108f311a Merge branch 'android_branch' into android_gcm 2012-11-05 06:14:21 -08:00
Eric House
0376e25c26 Merge branch 'fix_beta_53' into android_branch 2012-11-05 05:43:33 -08:00
Eric House
bb2e3ffdb1 fix (by dropping second message) assert that there is no first
message.  This is a TEMPORARY fix.
2012-11-04 21:36:20 -08:00
Eric House
e8720ec419 add link to changelog 2012-11-04 17:53:42 -08:00
Eric House
3942a49cac Add a debug preference allowing to provide, or override, the download
dir.  This will let users work around bugs on devices like my Blaze 4G
where the OS gives the wrong path, and also allows testing.  Inval
DictUtil's dict cache eash time this is changed, so in effect adding a
wrong path pref hides all dicts in the Downloads dir.
2012-11-04 17:47:30 -08:00
Eric House
69108fd8a1 cleanup: import class to make declarations shorter. 2012-11-04 17:33:07 -08:00
Eric House
30675cfd3e remove logging 2012-11-04 17:21:37 -08:00
Eric House
90480aca4c don't put up toast when checking SMS DB 2012-11-04 07:40:24 -08:00
Eric House
68d6e10ab7 up version strings for quick bugfix release. 2012-11-03 17:27:46 -07:00
Eric House
4dd094b2b3 if the download dir doesn't exist (and on my "Blaze 4G" the function
getDownloadCacheDirectory() returns a path that doesn't) then don't
offer to move things there.
2012-11-03 17:26:43 -07:00
Eric House
59937b8514 modify how devids are handled on the relay and the protocol through
which they're communicated to the device.  Device is expected to have
a platform-specific notion of ID which the relay stores in a new
devices table and indexes with a 32-bit number which is returned to
the device -- which is encouraged but not required to use it in lieu
of the longer ID in future communications.  Modify linux client and
test script to use the relay-supplied id.  Some of this is commented
out for now.
2012-11-03 10:58:01 -07:00
Eric House
773f04e95b remove .gitignores from directory that's going away 2012-11-02 05:36:48 -07:00
Eric House
563422de02 turn on DEVID feature for linux 2012-11-02 05:35:56 -07:00
Eric House
47f9eb03b9 merge in changes from the -gcm directory: GCM will be a feature of the
non-variant build now.
2012-11-02 05:35:31 -07:00
Eric House
e66ddc3765 make stream_catString work with null ptr 2012-11-01 21:08:58 -07:00
Eric House
ecd6d81228 Merge branch 'android_branch' into android_gcm 2012-11-01 19:50:07 -07:00
Eric House
a73a5e8077 there seems to be no way to fix the warning so add comment 2012-11-01 19:46:38 -07:00
Eric House
257a15917b script to run with lint checks enabled -- since I always have to look up how. 2012-11-01 19:46:08 -07:00
Eric House
a4787d5614 remove unused strings 2012-11-01 19:45:13 -07:00
Eric House
364acb6dcd cleanup: remove some logging and unused string resources 2012-11-01 19:32:29 -07:00
Eric House
935e3b9673 fix to work from main build directory 2012-11-01 19:32:08 -07:00
Eric House
1c33c8cc31 scripts that help find unneeded string resources 2012-11-01 19:17:46 -07:00
Eric House
27935752a8 check cursor still open in attempt to fix crash seen on Galaxy Nexus 2012-11-01 18:39:26 -07:00
Eric House
057a41e4a9 check cursor still open in attempt to fix crash seen on Galaxy Nexus 2012-11-01 07:59:42 -07:00
Eric House
7135e30fe9 add missing ifdef 2012-11-01 07:58:36 -07:00
Eric House
3e289adc18 move related methods together 2012-11-01 07:58:27 -07:00
Eric House
fe819982da Merge remote-tracking branch 'origin/android_branch' into android_gcm 2012-10-31 07:44:16 -07:00
Eric House
3d6a170921 python script to check relay and invoke GCM to notify recipients 2012-10-31 07:20:40 -07:00
Eric House
a61bb31aa5 update for newest wordlist 2012-10-31 07:12:10 -07:00
Eric House
b552a1fad0 check for moves on receiving message from GCM. Round-trip now works! 2012-10-31 07:09:23 -07:00
Eric House
d97c057b8c Merge branch 'android_branch' into android_gcm 2012-10-31 06:33:54 -07:00
Eric House
1cae4e9a4c increase buffer size, and test rather than assert for overflow. Fixes
crash with new large GCM devids.
2012-10-31 06:12:24 -07:00
Eric House
1b7a618454 send the right dev id 2012-10-31 06:03:31 -07:00
Eric House
fe47266b1f don't ignore output when compiling jni: hides errors! 2012-10-30 08:05:25 -07:00
Eric House
6014e3d76f turn on devid code and implement support in java. Untested, but should work. 2012-10-30 07:57:17 -07:00
Eric House
6cf5d7e04e Android.mk needs to be checked in 2012-10-30 07:48:16 -07:00
Eric House
c93dfd6605 Merge branch 'android_branch' into android_gcm
Conflicts:
	xwords4/android/XWords4/res/values/common_rsrc.xml
2012-10-30 07:10:42 -07:00
Eric House
3469975d2a add, still disabled by compile-time flags, code to transmit device ID
(e.g. ID Android devices get via GCM) to relay and to associate it
there with messages that need to be delivered.
2012-10-30 07:01:47 -07:00