Commit graph

1333 commits

Author SHA1 Message Date
Eric House
47954f82d0 add index of sending player to chat transmission, and on receiving
side translate that into showing the sender's name in
notification. Not yet done: replacing silly "not me" in chat listing
with same, but now it should be easy.

Conflicts:
	xwords4/android/XWords4/archive/R.java
2015-08-12 07:43:20 -07:00
Eric House
8f7267b3ec add index of sending player to chat transmission, and on receiving
side translate that into showing the sender's name in
notification. Not yet done: replacing silly "not me" in chat listing
with same, but now it should be easy.
2015-08-12 07:36:36 -07:00
Eric House
517cfe6fda bring over saved file format change from relay_conn branch so builds
from each will be able to open each other's files.
2015-08-10 06:24:40 -07:00
Eric House
b500a4646d use different uuid for dbg variant so it's not cross-sending BT
messages with other variants, causing among other problems spurious
"deleted on other device" warnings.
2015-08-03 04:50:56 -07:00
Eric House
0a95bc0f42 drop messages using comms methods (e.g. SMS) for which comms hasn't
been set up. Fixes assertion firing when SMS messages go to wrong app
(normal vs CrossDbg), though the right fix is to have the two apps
using different ports so they don't get each other's messages.
2015-07-31 22:15:57 -07:00
Eric House
65606607ab use different uuid for dbg variant so it's not cross-sending BT
messages with other variants, causing among other problems spurious
"deleted on other device" warnings.
2015-07-29 19:48:56 -07:00
Eric House
3732321825 fix so -Wundef can be passed -- except that android's headers don't
compile then :-)
2015-07-29 19:36:17 -07:00
Eric House
684c7ff3e3 Merge branch 'android_branch' into relay_noconn
Conflicts:
	xwords4/android/XWords4/archive/R.java
	xwords4/android/XWords4/res/values/strings.xml
	xwords4/android/XWords4/res_src/values-ba_CK/strings.xml
	xwords4/android/XWords4/res_src/values-ca_PS/strings.xml
	xwords4/android/XWords4/src/org/eehouse/android/xw4/SMSInviteDelegate.java
2015-07-26 13:22:45 -07:00
Eric House
75cd6c6693 fix logic behind "unable to find move" alert 2015-07-26 13:17:59 -07:00
Eric House
0bb51e8b93 show a toast when hint can't find anything, on the principle that user
should see some response to every action.

Conflicts:
	xwords4/android/XWords4/archive/R.java
2015-07-26 12:09:15 -07:00
Eric House
dad39eedde Remove devID from comms address. It's not needed yet, may never be,
and I don't want to store it until it is.
2015-07-22 06:16:29 -07:00
Eric House
190ce42b0e when version check fails, log the version numbers 2015-07-17 07:42:54 -07:00
Eric House
5dc8291981 show a toast when hint can't find anything, on the principle that user
should see some response to every action.
2015-07-11 16:24:21 -07:00
Eric House
1eb82d5285 android doesn't send its devid in the nli struct, so don't assert it's
there.
2015-07-11 14:27:01 -07:00
Eric House
1423bc933d rename common file and methods for consistency with android. No logic
change.
2015-07-11 08:40:49 -07:00
Eric House
b5ae54f313 use common/native NetLaunchInfo to implement invite-via-relay that
works between linux and Android clients. Required renaming so struct
names and names of fields within match in c and java code. The point
is to test this as the foundation of rematch: now you have to type in
a deviceID in order to invite, which clearly sucks for users. Either
that goes away, or it's replaced with something that scans existing
games and lists past opponents as possible invitees.
2015-07-10 23:19:38 -07:00
Eric House
0f33228155 get rematch working on linux, at least for two-device games. (Handling
the case where one of several guests wants to rematch is a hard
problem for later.) Requires passing old-style relayIDs (connname plus
device index) when devIDs aren't available, which they may not always
be.
2015-07-06 20:28:16 -07:00
Eric House
fd06bca151 assert stream version being set consistently, not changed 2015-07-06 20:24:45 -07:00
Eric House
33d0db93e8 add some consts 2015-07-06 20:23:22 -07:00
Eric House
8f794fbd32 beginning of support for invite-by-relay (which is mostly interesting
for Rematch): works for linux version, provided you know the relayID
of the device you're inviting. Added to common/ a stream-saving
version of java's NetLaunchInfo I'll probably want to use there too
for cross-platform compatibility (there being no jni support for
json.)
2015-07-01 07:10:45 -07:00
Eric House
2e8c7695f3 fix failure to connect using means (e.g. BT) that becomes available
partway through a game. Problem was that once a channel was working
with one means we wouldn't fall back to default addressing for the
means for which we didn't have a return address yet. (NOTE: Not yet
fully tested...)
2015-06-11 07:29:47 -07:00
Eric House
90dbd52bfd On client, when game ends locally set turn to -1 (nobody) so that
display won't be confusing during the interval before the server
receives the move and responds with a game-over message.
2015-06-10 07:35:39 -07:00
Eric House
f0c3c11dc8 invalidate all tiles after committing a turn in order to force redraw
of the Pts. display in case where fewer than seven tiles remain and
the board isn't being switched.
2015-06-10 07:31:00 -07:00
Eric House
e66260950e change final score formatting so it can be properly localized.
Note: because the substitution is done in common code I can't use the
positional specifiers (%1$s vs %s) and so this breaks the generated
"translations". The scripts that do the generation need to be fixed to
understand the formatted="false" attribute.
2015-05-13 07:51:32 -07:00
Eric House
1d6d8e46a3 add missing <CR> to game history (game over case only) 2015-05-13 06:36:43 -07:00
Eric House
e52d5c4077 fix crash sorting tiles when there are fewer to sort than there is
space to the left of the divider, i.e. when the game's nearly over.
2015-04-07 20:20:40 -07:00
Eric House
669ef0745b increase buffer size to remove overlow formatting history in French 2015-03-25 05:45:13 -07:00
Eric House
75a805634f increase buffer size so French strings don't overflow and get
truncated.
2015-03-19 06:28:40 -07:00
Eric House
5f33d99c2e toward making full use of getQuantityString(): add util method to pass
quantity through to java world, use it, convert English <string>
resources to <plurals> (using python script) based on parallel changes
in French, and modify callsites to call getQuantityString() where
R.string.xxx became R.plurals.xxx.
2015-03-18 21:23:30 -07:00
Eric House
f2f5fb22e6 use new comms header to transmit isServer bit 2015-02-23 18:28:31 -08:00
Eric House
86d8a46da2 Merge branch 'android_branch' into android_multi2
Conflicts:
	xwords4/common/comms.c
2015-02-18 19:40:36 -08:00
Eric House
b23c4d0a73 change comms header format to add a version and flags, marking with an
almost unique 16-bit quantity. 1 in 2^16 new games will fail because
its connID will match, but that's ok in part because it can only
happen during the time between when this is released and follow-on
version that assumes all older versions are gone.
2015-02-18 19:19:36 -08:00
Eric House
159a1a8dd2 use TAGFMT stuff for comms_resendAll() 2015-02-17 20:45:39 -08:00
Eric House
615ec72ea7 fix channelNo equality test so it doesn't break relay games, which
connect a bit differently.
2015-02-10 07:26:23 -08:00
Eric House
72a1d8b7d4 clear any server bits that happen to have been set in older games. 2015-02-10 07:05:34 -08:00
Eric House
cf4431402b additional check for misdelivered messages that fixes
three-participant SMS games on a single device: if message arrived on
a different channel from what its header says it was meant for, drop
it.
2015-02-10 06:55:08 -08:00
Eric House
ad6be1bb7e add debug-only "tag" to open games so logging can more easily track
what's going on when multiple participants in a single game are on the
same device. But for a couple of strings passed into the jni the
changes are only in DEBUG code.
2015-02-09 19:15:43 -08:00
Eric House
a34f4e4954 don't save unset channelSeed 2015-02-09 07:28:11 -08:00
Eric House
9e403ac6b2 add assert around the new bit that's -- bitten -- me once already 2015-02-09 06:46:34 -08:00
Eric House
5a28f8dedf fix recent message header hack to not break addressing of messages 2015-02-08 18:42:38 -08:00
Eric House
88dd25fb21 fix channel comparison so messages actually get deleted after they're
ack'd.
2015-02-08 13:39:35 -08:00
Eric House
fb011624bb add another assertion meant to find threading problems, and fix assert
firing because flag was set too late and sometimes bypassed.
2015-02-08 10:37:54 -08:00
Eric House
7e634ecc64 hijack a bit from channelNo to indicate whether message sender is
server or guest so that sender can tell when it receives a message
from itself (and reject it.) This fixes a lot of confusion in testing
where both participants in a networked game are on the same device,
but might also work around e.g. relay bugs.
2015-02-08 09:58:34 -08:00
Eric House
c6b42c539c add assert to ensure there are no thread issues: mutex may be required
if the assert winds up getting hit.
2015-02-08 07:51:08 -08:00
Eric House
17307f910b fix problem with misdelivered message forever locking out future
messages: when comms thinks a message is an init but server drops it,
give comms that info so it can remove it and give the next one a
chance.
2015-02-07 13:24:09 -08:00
Eric House
f039ee8338 reject message for client that arrives for server rather than asserting 2015-02-07 13:20:47 -08:00
Eric House
cf3c219b69 fix non-DEBUG compile 2015-02-07 12:54:46 -08:00
Eric House
951f5462b3 remove assert. Can't always get forceChannel right on creation, and
it's mean to be advisory.
2015-01-12 07:23:50 -08:00
Eric House
688b3944bb fixes to invite: don't allow non-servers to invite; have common code
inform of number of missing even when it hasn't dropped to 0 (so
second invite can be sent for 3+ device games); take down older alerts
before posting new (again since number of missing may have changed)
2015-01-05 07:43:45 -08:00
Eric House
4701fe2b90 pass in number of devices already connected so forceChannel can be set
more correctly; put up alert when device rejects an invitation as a
duplicate.
2015-01-03 09:50:07 -08:00
Eric House
28bfa3c904 make forceChannel part of CurGameInfo rather than comms, since Android
needs to save it there on receipt of an invitation (doesn't create
full game with comms until later.)  Passes discon2 tests and seems to
work on a single Android device. (Haven't tested inviting on Android
yet.)
2014-12-29 07:39:28 -08:00
Eric House
897c4d5786 add param to force a client to connect to host requesting a particular
channel. Works well enough that relay test script works. Not yet
integrated for let alone tested on Android.
2014-12-21 17:40:00 -08:00
Eric House
f0cf77d7d6 fix overwriting of addresses that happened for most (relay-only) games
run by my test script: match records based on channel number only.
This has yet to be tested on multi-addressing Android builds.
2014-12-10 07:54:50 -08:00
Eric House
5935681b82 in getDestID, deal with possibility game was consumated via a
non-relay channel, and allow client to use HOST_ID_SERVER.
2014-12-05 06:19:02 -08:00
Eric House
a6f9f6608a drop relay connect meta-messages (as well as game messages) when relay
send is disabled.
2014-12-02 06:52:48 -08:00
Eric House
53bfe9812d add const 2014-11-24 07:52:03 -08:00
Eric House
a1cdef6ad8 fix log format 2014-11-24 06:30:58 -08:00
Eric House
142861656e don't send when channel address doesn't have the right type yet 2014-11-21 22:53:48 -08:00
Eric House
fbea67e479 don't kill relay when bluetooth turned off: pass comms type into
comms_transportFailed()
2014-11-20 07:12:25 -08:00
Eric House
1d1af9ffb3 fix some asserts: we have BT working now 2014-11-14 07:06:02 -08:00
Eric House
f2ecefd573 copy bt address info too 2014-11-13 07:27:03 -08:00
Eric House
74afdbd8b6 add more asserts 2014-11-12 06:52:58 -08:00
Eric House
c008f55133 add invite button only if I'm a host and am missing players 2014-11-12 06:52:40 -08:00
Eric House
0e2bbfc1ad augment addresses even when message received is a duplicate. Now games
using (fake) SMS and relay work whichever of the address modes is
disabled during the game, on either side.  At least for two-device
games.
2014-11-11 07:46:01 -08:00
Eric House
c087824b47 snapshot with a bit of debugging added, mostly to tranfer to another machine 2014-11-07 20:26:02 -08:00
Eric House
8e616095ad add a bit more logging of channelNos 2014-11-06 20:28:51 -08:00
Eric House
70f4541bbe Merge branch 'android_branch' into android_multi2
Conflicts:
	xwords4/common/comms.c
2014-11-06 20:09:20 -08:00
Eric House
a34a859d18 log channelNo more consistently 2014-11-06 18:44:19 -08:00
Eric House
540d3e9622 wire disabling checkboxes into comms. They work -- and show that
multi-addressing needs debugging still.
2014-11-06 06:35:28 -08:00
Eric House
b1de8663d6 fix to compile with DEBUG undefined 2014-11-06 06:32:00 -08:00
Eric House
2426e04a70 fix overwriting of address info so that, AFAICT, both address types
are successfully being used through much of a test game.
2014-11-05 21:57:25 -08:00
Eric House
8aae7ae10a fix crash: don't use comms before initialized 2014-11-05 07:49:17 -08:00
Eric House
17bc0ab47c snapshot of work toward communicating when two addresses are in use.
An invitation works with relay and (fake) SMS on, and the invited
client connects successfully using both (the second to arrive being
correctly identified as a dupe.)  While the game can be played after,
only SMS messages are being received. And opening a saved game
crashes.
2014-11-05 07:41:20 -08:00
Eric House
e1a10508e1 when preprocessing a message, limit search to the address type of the
channel it came in on if known.
2014-11-02 17:24:37 -08:00
Eric House
b624867cb4 add addr_rmType() 2014-10-28 08:03:19 -07:00
Eric House
1789d442ba let me look at another player's tiles, regardless of pref setting,
when game is over
2014-10-27 19:24:22 -07:00
Eric House
2163d25a27 let me look at another player's tiles, regardless of pref setting,
when game is over
2014-10-27 19:23:52 -07:00
Eric House
93f0b626af snapshot: invite sent by NFC connects two devices using relay with BT
ability passed too (though not yet used.)
2014-10-27 07:51:25 -07:00
Eric House
c3e7b12103 merge android_branch 2014-10-23 06:33:28 -07:00
Eric House
51a1ddfe39 include robot name in report of his score 2014-10-23 06:32:24 -07:00
Eric House
878a16b3bc snapshot: android compiles, and works well enough to exchange moves
via relay!  Lots of changes, mostly around treating connTypes as a Set
inside the java world.  Jni to translate to that is a pain.
2014-10-16 06:45:24 -07:00
Eric House
fe4c7b52f2 snapshot: relay test script works with a second address type set
(though with its actual transport stubbed out).  Android doesn't even
compile.
2014-10-15 07:26:18 -07:00
Eric House
52465b3e1e merge android_branch 2014-10-14 06:57:52 -07:00
Eric House
c73eec567b fix some const confusion the stricter android gcc found 2014-10-14 06:24:41 -07:00
Eric House
0362bf5cc9 Merge branch 'android_branch' into android_multi2
Conflicts:
	xwords4/common/board.c
	xwords4/common/comtypes.h
	xwords4/common/model.c
	xwords4/common/strutils.c
2014-10-13 07:03:20 -07:00
Eric House
b12d12590a don't memcpy 0 bytes 2014-10-09 21:21:41 -07:00
Eric House
4eb836ab2b fix to compile -- graft missed a constant defined earlier 2014-10-09 21:21:27 -07:00
Eric House
badc40f90b move dividerLoc into model and use to limit sorting to tiles to its
right
2014-10-09 20:09:24 -07:00
Eric House
195371ea2e as proof of concept, skip the first 3 tiles when sorting newly
assigned.  Later '3' will be replaced by the location of the tray
divider, but that has to be moved from board to model first.
2014-10-09 20:08:41 -07:00
Eric House
c98a5cd5f0 move dividerLoc into model and use to limit sorting to tiles to its
right
2014-09-30 05:57:21 -07:00
Eric House
1346aa6ee5 as proof of concept, skip the first 3 tiles when sorting newly
assigned.  Later '3' will be replaced by the location of the tray
divider, but that has to be moved from board to model first.
2014-09-29 20:04:54 -07:00
Eric House
93526d38d7 cleanup (version upgrade test works) 2014-09-25 22:24:09 -07:00
Eric House
43bd3c018a make an addr's conType a bitfield rather than holding a single value.
Works for large numbers of relay games in test, but will not yet
actually hold more than one value.  Should be safe to merge to main
branch once stream upgrade is verified.
2014-09-25 20:05:37 -07:00
Eric House
aa566ad1f0 call util_informMissing when the pendingPlayers count drops to 0 2014-09-25 06:36:07 -07:00
Eric House
3668b7d8a7 merge android_branch -> android_shipbt 2014-09-24 20:51:23 -07:00
Eric House
1e80109c3e add assert, and don't pass pendingRegistrations to clients -- it confuses them 2014-09-24 19:33:59 -07:00
Eric House
743d532fc7 putting back recent change: this works for automated test and gtk
manual app.  I'm not sure what's up with pendingRegistrations but it
needs more studying before I can change it.
2014-09-24 19:16:06 -07:00
Eric House
64b30b68d2 merge android_branch -> android_shipbt 2014-09-23 21:33:57 -07:00
Eric House
3d6f972e9e fix number of missing players not being calculated correctly 2014-09-23 21:30:31 -07:00
Eric House
a485480496 make divider wider 2014-09-22 07:05:45 -07:00
Eric House
6f07098cf3 return succes from server_initClientConnection() 2014-09-14 13:42:11 -07:00
Eric House
7d8b9b4270 return succes from server_initClientConnection() 2014-09-14 13:41:33 -07:00
Eric House
4d2f49d33f when sending and don't have an address for channel yet, send the one
comms was created with, which is what client will have to do anyway.
2014-09-14 13:41:12 -07:00
Eric House
b333e3959f remove assert: it's fine to close without saving 2014-09-10 06:37:32 -07:00
Eric House
9e86874e77 catch bt version up 2014-08-27 20:23:57 -07:00
Eric House
8407d3b300 cleanup and list changes 2014-08-26 22:17:34 -07:00
Eric House
d8266f6a2c tweak title and body of notification 2014-08-26 21:53:28 -07:00
Eric House
88248131da show new client-formatted turn summary in notification; remove old
common-formatting code.
2014-08-26 21:37:33 -07:00
Eric House
2d08848715 snapshot: toward having a better description of the last move in
notifications.
2014-08-26 06:55:26 -07:00
Eric House
e42dd971cb Hide crosshairs once drag leaves the initial cell UNLESS a tile is
being dragged
2014-08-21 07:51:06 -07:00
Eric House
b77d529099 fix linux-side compile errors 2014-08-21 07:15:20 -07:00
Eric House
d921a386d5 remove logging 2014-08-19 07:21:02 -07:00
Eric House
e998fbfcba log less 2014-08-09 17:11:35 -07:00
Eric House
56336f7178 double the max size of a tile, fixing board not using full screen in
portrait mode on Nexus 10.
2014-07-24 20:36:37 -07:00
Eric House
a902bdcbad limit width of scoreboard too 2014-07-17 21:31:17 -07:00
Eric House
d51a5e67f0 fix for super-wide screen: tiles are never wider than tall. Next:
scoreboard.
2014-07-17 08:01:00 -07:00
Eric House
40d63be58b too much logging 2014-06-24 08:18:42 -07:00
Eric House
c2c81dbbf1 use tmp model to find words crossing a point to avoid undoing pending turns 2014-03-20 18:52:57 -07:00
Eric House
b869940997 fix another 64-bit bug, this one prevening opening new SOWPODS. 2014-03-12 19:24:00 -07:00
Eric House
2bb9a12b63 add missing (for android build) header 2014-03-11 22:04:30 -07:00
Eric House
d1a9b716bb protect refcount operations with mutex 2014-03-11 22:01:11 -07:00
Eric House
fbcd953a3e define as void instead of <empty> 2014-03-11 19:38:51 -07:00
Eric House
7d8f5844bd fix to compile without DEBUG defined 2014-03-11 19:38:08 -07:00
Eric House
a3e9562654 put related fields together -- no code change 2014-03-11 07:02:10 -07:00
Eric House
a4302897e2 enlarge dictmgr to track a compile-time defined number of dicts 2014-03-10 21:01:24 -07:00
Eric House
3c32ca6402 add option to log callsites of dictmgr put and get for easier ref leak tracking 2014-03-10 18:59:10 -07:00
Eric House
fec1ce3bed use pthreads mutex to protect with will become critical sections in dict mgr, as will be accessed from several threads on android 2014-03-10 18:56:39 -07:00
Eric House
5500d36cde add and use dict manager that caches, using refcount, dicts across games. Allows multiple games to be opened, and open at the same time, with only one instance of a dict ever created. Works on linux; not used or tested yet on Android. 2014-03-09 19:12:21 -07:00
Eric House
a7c114e3f9 refcount dicts. Model "owns" its copy and so increments the refcount when gaining one and decrements the count on any being replaced (and on all on exit). This is setting up the real change, which is to let the java world wrap dicts in objects that hang onto them until they're destroyed, which should fix problems where dicts are referenced after they've been destroyed. 2014-03-08 20:57:27 -08:00
Eric House
23b72467bb don't assert unset cookieID, as that's normal (I think) for unconnected case 2014-03-08 12:47:58 -08:00
Eric House
9d174740c8 don't show "send pending messages" menuitem when there are none 2014-03-01 16:15:35 -08:00
Eric House
c1e22dd3cf add summary DB column and jni code to fetch it to store and display number of unacked messages a game has. And add debug-only option to display it in the main list. In the future I want to be able to iterate over all these games and resend their packets (without opening them visually) when an internet connection comes back up. 2014-02-28 18:59:12 -08:00
Eric House
242f722f2e remove logging 2014-02-28 18:56:39 -08:00
Eric House
cc4982b833 add debug-only code to assert that movestack is never disposed when dirty (via macros easy to use elsewhere) 2014-02-28 05:43:47 -08:00
Eric House
efbb676cce better formatting for hexdump offsets 2014-02-28 05:42:22 -08:00
Eric House
39983f65b6 remove logging 2014-02-27 21:44:25 -08:00
Eric House
025bcb885b don't move state forward when should be moving back 2014-02-09 19:35:17 -08:00
Eric House
0b132661ca change struct name from r to rr for easier searching; no code change 2014-02-07 21:12:45 -08:00
Eric House
ca8a901bbb add assertion aimed at confirming theory about race-condition based Android crash 2014-02-07 07:41:50 -08:00
Eric House
e34cc9007d fix problems with opening and using wordlists on 64-bit linux by
making XP_U32 32 rather than 64 bits. Duh. Do same on Android jni just
in case.
2014-01-07 06:58:20 -08:00
Eric House
b43855a313 fix curses build for 64bit compile and to use common layout (meaning
tray is now under the board unstead of to the right).  Works on 64-bit
system at least for non-networked games.
2014-01-05 13:04:59 -08:00
Eric House
3f67afaefb replace tabs with spaces; no code change 2014-01-05 12:57:46 -08:00
Eric House
f46f8ed560 cleanup 2013-12-30 07:08:42 -08:00
Eric House
b2b4c2a1f5 fix android compile errors 2013-12-27 19:32:56 -08:00
Eric House
762945857e fix to work for standalone games too 2013-12-19 07:59:00 -08:00
Eric House
2a47c91a91 add gi_setNPlayers() 2013-12-17 21:54:02 -08:00
Eric House
de41802f54 rename variable so I don't trip up again 2013-12-17 21:08:27 -08:00
Eric House
f1f13c65a2 don't overwrite gameID 2013-12-16 08:05:56 -08:00
Eric House
4420049bd0 remove duplicate lines (added by merge?) 2013-12-16 08:05:35 -08:00
Eric House
b5d6c513a6 add canUndo to GameStateInfo and use to hide the undo menu 2013-12-03 07:06:48 -08:00