Commit graph

249 commits

Author SHA1 Message Date
Eric House
7994c42691 allow board cells to be wider than tall
There are some screen dimensions, especially with dual-pane mode, where
the board is just bit narrower than the screen. Rather than have narrow
white borders, allow the cells to take up the slack. The API takes an
upper bound on the ratio of width to height so things shouldn't get too
odd looking.
2016-09-15 20:37:29 -07:00
Eric House
adf71c85a5 add turnIsLocal to android db
So we can filter on it determining the display order of games in games
list.
2016-08-31 19:37:56 -07:00
Eric House
4c923ead08 add isLocal param to server_getCurrentTurn
I want to store this information separately in summaries tables so
e.g. games can be displayed sorted by whether it's the local player's
turn.
2016-08-26 06:58:55 -07:00
Eric House
3b24aab8c3 add new jni call board_containsPt()
for use debugging layouts/orientation changes later
2016-08-15 17:26:10 -07:00
Eric House
8e399ef9b7 assert from java that jni code has an env
Rare crashes are happening inside the jni, in game_dispose(), when a
game's double-disposed. Adding a jni call to check if the thread about
to do a game_dispose() will fail then asserting its result in java
allows useful stack traces to come via Crittercism. Or should.
2016-08-11 16:42:18 -07:00
Eric House
8b142e4a56 use new board_drawSnapshot() from android
BoardCanvas wouldn't render anything without an associated dict via
dictChanged()
2016-08-05 11:51:47 -07:00
Eric House
d2edbaff37 log more about jni thread mapping 2016-08-04 06:46:34 -07:00
Eric House
5fc6ae5591 only log what's there 2016-07-29 08:02:00 -07:00
Eric House
2b3ddcb431 cleanup thread->env mapping code 2016-07-28 08:52:11 -07:00
Eric House
272f8a3960 don't bother saving if no data loaded yet
Fixes, or at least makes extremely unlikely, race condition where one
thread makes use of an existing JNIThread instance then releases it
before the thread that created it has had a chance to call configure()
to actually load the game.
2016-07-26 07:27:13 -07:00
Eric House
589535cdbc Make JNIThread responsible for opening/owning game and other objects
whose lifespan matches its, e.g. the gameptr and gi. This is a big
change, and there are still some bugs/crashes, but it's worth
committing this snapshot.
2016-04-07 12:23:13 -07:00
Eric House
0b7dca2222 store and present chat sender's name instead of the lame "Me"/"Not me"
thing. Requires a new table, and includes code to convert from old
format. Still need to clean up the presentation (TableRow).
2016-03-06 07:03:54 -08:00
Eric House
6e30d77ada pull int (ptr) out of GamePtr inside jni code where it can be done
once instead of at every call site. There's probably a performance
penalty to making bunch of extra calls back into java, but the code's
much cleaner. Will pay attention to performance changes.
2016-02-02 07:50:02 -08:00
Eric House
19713a40ad add param to comms_resendAll to limit type of message sent
(e.g. BT). Meant to be used when a single type has become available.
2016-02-02 07:01:48 -08:00
Eric House
45224a75fa add (disabled) code for case where game ptr wrapper is passed instead
of the ptr itself.
2016-01-31 20:06:45 -08:00
Eric House
9455c0ef26 wrap jni ptr so can detect leaks (failure to call
game_dispose()). There was one that had been undetected for years. The
int is still passed into the jni, and each call site has to pull it
from the wrapper. Better would be to pass the wrapper, but I'm worried
about the performance hit of making a call back into the java world
from every jni entrypoint. Will test....
2016-01-31 19:51:51 -08:00
Eric House
389a09ac1a 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
2015-08-13 07:30:55 -07:00
Eric House
3a32d3a17b return count of messages sent from comms_resendAll(), and post it as a
toast so user sees something happened.
2015-08-13 07:05:06 -07:00
Eric House
7824df67f5 copy over VARIANT compile-time flag stuff. Not sure how it got dropped
in this branch.
2015-08-13 06:54:07 -07:00
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
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
6c863155ef clean up BT UUID assignment, replacing runtime strcmp with compile
time macro magic
2015-07-31 07:35:44 -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
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
eebf27d051 fix warning 2015-07-11 16:25:01 -07:00
Eric House
587f3b7630 export comms_formatRelayID via jni. 2015-07-11 14:25:16 -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
6a36c1252d fix assert that wasn't asserting anything 2015-06-14 19:39:51 -07: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
b7dfc169bf add commented-out mutex protecting comms. I don't think I need it, but
this makes it easier to put back if comms->processingMsg assertions
start failing.
2015-02-08 10:37:06 -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
a49e732371 remove logging 2015-01-12 06:26:03 -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
e961756f12 give up on hard-coding size of thread->env map: expand it as needed. 2014-12-08 20:43:24 -08:00
Eric House
938756a34f switch for loop to using C99-style variable declarations; no other change 2014-11-25 06:09:18 -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
e236a32c20 forgot a mutex 2014-11-20 06:04:11 -08:00
Eric House
56121fdcd4 stop (or at least greatly reduce) leakage of thread->env mappings in
jni, mostly by having jnithread explicitly announce that it's closing.
Yuck. This stuff *should* obey a stacking protocol but the callback
stuff I'm doing makes me unsure that can work.
2014-11-19 21:42:21 -08:00
Eric House
1962371fe2 flesh out MultiMsgSink so that subclasses invoked e.g. in response to
BT traffic can send messages via other means as well.  Relay games
with both participants on one device work again.
2014-11-19 18:46:35 -08:00
Eric House
7a1cd06486 fix crash in dict iteration: add to thread map the env that creates globals 2014-10-23 07:44:41 -07:00
Eric House
3fe3b1724a replace stacked tracking of env with explicit mapping from pthread to
env for that thread to fix occasional assertion failure that indicated
I was using the wrong env occasionally.  I'm not super confident in
this because I've seen the env for a thread change, but that could be
due to reuse of the thread id.
2014-10-22 06:58:42 -07:00
Eric House
2e74b97b4a oops: set typeset field in java struct 2014-10-17 07:46:32 -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
6f07098cf3 return succes from server_initClientConnection() 2014-09-14 13:42:11 -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
a902bdcbad limit width of scoreboard too 2014-07-17 21:31:17 -07:00