Commit graph

399 commits

Author SHA1 Message Date
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
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
e4f52c5678 add assert and comment explaining why non-utf-8-aware hack is safe. 2013-04-18 07:15:14 -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
de7c29dcc7 add comms_stop() to jni and use it 2013-01-20 21:33:35 -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
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
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
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
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
6014e3d76f turn on devid code and implement support in java. Untested, but should work. 2012-10-30 07:57:17 -07:00
Eric House
b40e9b7928 assert non-0 lang code 2012-10-25 07:10:54 -07:00
Eric House
aec03fc572 When a game's consumated and guest discovers it isn't using the same
dict, give chance to switch, and to download if required.  Because of
the way the JNI thread works, and JNI's requirement in general that
env instances match up (e.g. dicts must be destroyed in the same
thread that creates them), substituting into a live game is too hard.
So the game's saved with its new dict and then reloaded.
2012-10-24 07:17:21 -07:00
Eric House
077270f1cd merge in SMS-version UI -- there will not be a separate version for
SMS any more.
2012-10-15 08:29:46 -07:00
Eric House
e90c5ee94f pass index of resigning player into util_notifyGameOver. Not yet
passed into java.
2012-10-09 05:31:12 -07:00
Eric House
e64ecfb78d implement resign on top of existing endGame logic, adding "quitter" as
new param passed to remote and changing final score formatting and
menu items to match.  Still need to show old menu on android in case
where game has already ended.
2012-10-07 12:47:06 -07:00
Eric House
fd9b9f85e2 make util_hiliteCell conditional, and remove from android where it
wasn't used anyway.
2012-10-05 18:51:32 -07:00
Eric House
8281bd7f10 call back into java for util_getCurSeconds implementation so java and
C world are sure to be using the same clock.
2012-09-29 19:27:02 -07:00
Eric House
2c89f13383 add turn as param to util_turnChanged, and call from server rather
than board.
2012-09-27 07:04:57 -07:00
Eric House
94103a4212 track time of most recent turn start, and include it in summary table. 2012-09-27 06:55:46 -07:00
Eric House
65598cdb7b replace DeleteLocalRef calls 2012-09-24 07:44:43 -07:00
Eric House
140c982d41 merge from android_branch 2012-09-24 07:39:44 -07:00
Eric House
598a154693 factor common code into function 2012-09-19 08:09:27 -07:00
Eric House
75398389b3 Merge branch 'android_branch' into android_dictdb
Conflicts:
	xwords4/android/XWords4/jni/jniutlswrapper.c
2012-09-15 16:36:15 -07:00
Eric House
ee1df7eeb7 replace DeleteLocalRef calls with version that checks for NULL 2012-09-15 15:57:38 -07:00
Eric House
937bde6378 combine two jniutils methods into one 2012-09-15 15:21:31 -07:00
Eric House
aa974be567 Before figuring md5sum (via java callback added recently), use new
callback to see if there's already one in the DB.  Required passing
context into jniutils getter, and passing name into jni dict
constructors that previously didn't need it.
2012-09-13 07:38:08 -07:00
Eric House
3e4384c2a8 when dict doesn't have built-in md5sum, or when in DEBUG code, call
back into java to get a sum.  It's very slow for large dicts, but will
eventually be in a DB so only done once per dict that doesn't have it.
2012-09-13 05:39:44 -07:00
Eric House
ae2b6205bd use mem_stream_make_sized 2012-09-11 19:17:27 -07:00
Eric House
0ccc2331b5 address bug where message was getting ACK'd by a device that failed to
save what it had ACK'd leaving the game permanently broken.  Do that
by adding a new method game_saveSucceeded() called after the client
claims to have committed bytes returned by game_writeToStream() to
disk.  In that method comms updates the value it'll use in subseqent
ACKs.
2012-09-10 07:31:45 -07:00
Eric House
95a7b14a3a transmit dict's md5sum along with name in initial message from host to
guest.  On guest, pass that sum into client code along with names so
the appropriate tests can be done and corrections taken.
2012-09-08 20:23:48 -07:00
Eric House
9a72f252ed Merge branch 'android_branch' into android_dictname 2012-09-08 13:20:59 -07:00
Eric House
5a81484cf1 add md5Sum to DictInfo and add a getter 2012-09-08 10:11:18 -07:00
Eric House
077560bcd3 load md5sum if present 2012-09-08 09:42:23 -07:00
Eric House
4f180e9e14 pass rejecting dict name into java layer and display as part of turn
lost message.
2012-09-06 19:04:40 -07:00
Eric House
270a19f3aa Revert "first of a set of changes to communicate to clients dictionary being"
This reverts commit b7a0f1489b, which I didn't mean to check in on this branch.
2012-09-03 21:34:51 -07:00
Eric House
ea4d805d5f first of a set of changes to communicate to clients dictionary being
used by server.  Clients need to care if e.g. the server's disallowing
phonies based on its dict.  Can only be sent if client is of latest
version.  In that case, common code calls into new util function.  In
future changes, BoardActivity's implemention of the callback will need
to check if the server's choice of dict is available, and if not offer
to download it.  Once it's available, will want to install it.
2012-09-03 21:33:46 -07:00
Eric House
b7a0f1489b first of a set of changes to communicate to clients dictionary being
used by server.  Clients need to care if e.g. the server's disallowing
phonies based on its dict.  Can only be sent if client is of latest
version.  In that case, common code calls into new util function.  In
future changes, BoardActivity's implemention of the callback will need
to check if the server's choice of dict is available, and if not offer
to download it.  Once it's available, will want to install it.
2012-09-03 21:29:21 -07:00
Eric House
4ffb4efb0c silence compiler warning 2012-08-30 19:10:52 -07:00
Eric House
145317426d Fix prefix matching to accept letters constituting the first part of a
digraph tile when at the end of a prefix so that e.g. GORIL in Catalan
will list GORIL·LA (rather than nothing since GORIL, ending with the L
tile, is not a prefix.)
2012-08-27 21:50:09 -07:00
Eric House
08aa9b66e8 also load new desc field in android client, and add jni call to retrieve it 2012-08-26 20:59:17 -07:00
Eric House
ec0702d584 initialize buffer that common code will pass to strcat. 2012-08-10 21:31:01 -07:00
Eric House
27cbd0e0c9 go with end-game change that takes remaining tiles into account for
robots but not for hints.
2012-08-01 20:31:21 -07:00
Eric House
464696566d get rid of NODE_CAN_4. Not change to post-compiled code 2012-08-01 20:29:15 -07:00
Eric House
9b0436d1ee Make rem string measure function return boolean to indicate rect will
be invisible rather than setting width and height to 0.  No real
change beyond simplifying/speeding platform code.
2012-07-15 09:30:27 -07:00
Eric House
bd70a1dd7d improve text in remaining tiles dialog, and always show the tiles for
all trays rather than excluding those in current player's tray.
2012-07-09 21:44:29 -07:00
Eric House
318cc52f5a we need the base64 stuff even when don't have SMS -- for serialization. 2012-07-07 11:05:45 -07:00
Eric House
2e6b64a4e4 complete implementation of java part of one-pass scoreboard draw. Now
looks pretty much identical to what the old code draws except that
rather than having width allocated in proportion to requested size all
get the same width except the one whose score it is which gets 2x.
2012-07-01 17:24:50 -07:00
Eric House
2434d85684 don't pass the same player-1 data for every player 2012-07-01 16:01:01 -07:00
Eric House
89ffd972bf more work on single-pass scoreboard drawing. Now the jni stuff is
finished, but disabled via compile-time flag, and there's a
commented-out rudimentary implementation on the java side.
2012-07-01 10:04:10 -07:00
Eric House
b9b58bd0a5 enable tray tap undo 2012-06-29 06:52:49 -07:00
Eric House
c8e2dff962 start process of compiling with XWFEATURE_SCOREONEPASS enabled by
adding stubbed-out methods and making old methods conditionally
compiled.  No change in code.
2012-06-27 07:08:09 -07:00
Eric House
405cb23023 fix bug where current player's scoreboard would disappear if other
players' names were too long by giving all a the same proportion of
what they request and passing in the percent given in case draw
implementation wants to use it as a cue to truncate.
2012-06-15 06:26:40 -07:00
Eric House
6257c14436 include trayVisState in GameStateInfo on the java side 2012-06-05 22:13:58 -07:00
Eric House
a0336ebb01 turn on new HASH_STREAM feature 2012-05-29 07:26:51 -07:00
Eric House
0b1a9a67fe add param to server_handleUndo to prevent it from undoing all moves in
robot-vs-robot game, which is the wrong thing to do during a test
simulating play.
2012-05-24 22:25:30 -07:00
Eric House
9ba663ab98 implement util_phoneNumbersSame in java and call telephony's number
compare method.  Skip the java call when the numbers are
strcmp-identical.
2012-05-18 07:41:46 -07:00
Eric House
867e9ffc2f implement stubbed-out util_phoneNumbersSame so that three-device SMS
games work in emulator.  May need to call into java to use Android's
more sophisticated phone number comparison to work on devices.
2012-05-18 07:17:21 -07:00
Eric House
3a54aa0ebc add util_informUndo() that gets called, and puts up a dialog, after
remote device has performed an undo on a committed turn.
2012-05-14 07:01:02 -07:00
Eric House
013d9c689b fix bug introduced with dictionary lookup of words played that meant
trades didn't get reported as remote moves -- it just became your turn
without notice.
2012-05-09 18:22:05 -07:00
Eric House
d846f96ec5 post-code-review cleanup: no significant change 2012-05-09 06:51:06 -07:00
Eric House
fd4ad0ae31 turn on board hashing and bigboard options (in protocol, not UI) 2012-05-04 06:16:02 -07:00
Eric House
fd18d8c95a add boolean param to jni version of comms_resendAll() to ack
afterwards.  Saves some extra jni calls.  Then make comms_ackAny()
separately-useable, and use from BoardActivity after receiving
SMS messages.
2012-04-19 00:03:22 -07:00
Eric House
033a69be8d to make it easier to tell games apart, print the number[s] of the
remote device[s] as part of summary view and in game config screen
(read-only).  Use same field in summaries table for remote phone
numbers and bt addresses.
2012-04-18 23:23:36 -07:00
Eric House
1134f71b7b use new comms_ackAny() call to send ACKs at points where currently
resendAll is being called.  Dramatically reduces SMS message count
when app is being relaunched and backgrounded between turns.
2012-04-14 18:00:43 -07:00
Eric House
1e22a33d55 go back to android-7 SDK version to support 2.1, and to make that work
remove use of java base64 encoding in favor of the C version I'd
already written (and that was probably compiled into the library
anyway unless the strip step catched unused code.)
2012-03-26 20:03:29 -07:00
Eric House
235807df4f remove logging 2012-03-19 07:37:16 -07:00
Eric House
fe614e9efc delegate phone number comparison to platform code which in Android
case has a method for it.  strcmp is not enough.
2012-03-19 07:36:18 -07:00
Eric House
631666cede don't call DeleteLocalRef on an object to be returned from the JNI.
Crashes ICS bigtime.  This needs to be ported back to android_branch.
2012-03-14 20:26:23 -07:00
Eric House
cd8889f90e Merge branch 'android_branch' into android_bt
Conflicts:
	xwords4/android/XWords4/src/org/eehouse/android/xw4/DlgDelegate.java
	xwords4/linux/Makefile
2012-03-12 07:04:06 -07:00
Eric House
a8cf03f68e optimization: allocate tmp buffer on stack rather than with malloc. 2012-03-11 14:51:51 -07:00
Eric House
739b0b6125 fix off-by-one assertion 2012-03-09 23:51:39 -08:00
Eric House
fdfbd792f7 Merge branch 'android_branch' into android_bt 2012-03-05 20:08:43 -08:00
Eric House
edf13be4c8 I'm getting a crash on 2.1 in the simulator when calling
DeleteGlobalRef then NewGlobalRef on the same ref.  So use a temp to
reverse the order.  May fix reported crash as well.
2012-03-05 20:04:32 -08:00
Eric House
cb1e1692b2 turn off BT in main part of tree and fix a couple of places not
dealing with that correctly.
2012-02-29 06:47:19 -08:00
Eric House
b7f82475b8 fix to compile when XWFEATURE_BLUETOOTH not set 2012-02-27 20:31:01 -08:00
Eric House
2282a976f3 add missing PKG_PATH invocation 2012-02-27 20:01:12 -08:00
Eric House
642ba9bc61 fix off-by-one assertion 2012-02-22 12:58:33 -08:00
Eric House
1f4f6a06a8 Merge branch 'android_branch' into android_bt
Conflicts:
	xwords4/android/XWords4/jni/xwjni.c
2012-02-15 18:18:26 -08:00
Eric House
8590aae9b2 fix emacs compile-commands 2012-02-15 18:07:19 -08:00
Eric House
88ad6d81ef Merge branch 'android_branch' into android_bt
Conflicts:
	xwords4/android/XWords4/jni/xportwrapper.c
	xwords4/android/XWords4/jni/xwjni.c
2012-02-13 22:38:17 -08:00
Eric House
82b232cf74 use a macro instead of lots of repetitions of the package path to make
it easier to modify.
2012-02-13 22:13:23 -08:00
Eric House
74aeeca8e0 move BT device listing into its own Activity. Call it from
NewGameActivity and from BoardActivity when the new notifyMissing
method gets called.  Works as before called from NewGameActivity but
BoardActivity crashes on iterating over list of devices returned.
2012-02-09 05:21:23 -08:00
Eric House
3bda56420c turn on XWFEATURE_BLUETOOTH 2012-02-07 17:38:50 -08:00
Eric House
47c3bd3090 track a BT game's set (singleton for two-device game) of remote
devices in summary DB so, e.g., we can quickly determine what games
care when a devices becomes available via BT.  First use of this is
notifying when a remote game's deleted -- least that's the plan.  This
commit just adds to the DB and scans the DB to build a map of
device->gameIDs array.
2012-02-06 19:02:19 -08:00
Eric House
796baffa6d Merge branch 'android_branch' into android_bt 2012-02-06 18:13:57 -08:00
Eric House
bfe04a08b5 removed unneeded null-byte addition 2012-02-06 18:11:30 -08:00
Eric House
a2b5274b6c on ICS CreateGlobalRef doesn't return the same value as is passed in.
So stop assuming it does!  Fixes multiple crashes on ICS and need to
be ported to android_branch.
2012-02-05 19:12:09 -08:00
Eric House
8947ddca0b on ICS CreateGlobalRef doesn't return the same value as is passed in.
So stop assuming it does!  Fixes multiple crashes on ICS and need to
be ported to android_branch.
2012-02-05 19:11:38 -08:00
Eric House
8793d8f4fd include seed and missingPlayers in any non-standalone game summary 2012-02-03 17:03:47 -08:00
Eric House
b4b7609894 include hwAddr as well as device name in bt section of address 2012-01-31 18:48:59 -08:00
Eric House
e91c0daf65 check for null obj before calling through its vtable 2012-01-31 06:44:54 -08:00
Eric House
094d08e903 Get play via BT working!!! Replace BTConnection with BTService to make
keeping the listener/sender threads going much easier.  Create new
message sink to dispatch incoming messages, and start passing return
addresses into comms (not required before when relay was only
transport as it has no return addresses.)
2012-01-30 06:39:18 -08:00
Eric House
0934f83106 add gameID to params passed to comms' sendproc, including passing
through to java layer.
2012-01-25 18:27:37 -08:00
Eric House
ac6ecfa845 copy bt_hostName as part of address 2012-01-24 06:51:40 -08:00
Eric House
5f77ef6e13 get uuid from C code so can ensure linux version has same. 2012-01-19 18:28:27 -08:00
Eric House
2a51f8d621 cleanup 2012-01-17 06:53:47 -08:00
Eric House
d0999d1944 update build scripts to use newer NDK. 2012-01-02 18:11:36 -08:00