Commit graph

844 commits

Author SHA1 Message Date
Andy2
a5fd4cef30 move setRemoveOnDismiss into delegate, and call it from a dialog
that's been crashing when called from performRestoreInstanceState.
The hope is that this will prevent the crash by forcing the dialog to
always be recreated.  But it may be that I just need to test for
m_missingDictNames being null....
2011-04-26 18:26:21 -07:00
Andy2
83f2882589 what I mean to check in (without commented out stuff) 2011-04-26 06:43:06 -07:00
Andy2
4113d92be7 need to replace the main dict too 2011-04-26 06:41:31 -07:00
Andy2
33c81ec7ec check for null to fix NPE. 2011-04-25 21:08:51 -07:00
Andy2
7a5920e9f2 use game dict if no player dict (to avoid NPE) 2011-04-25 21:01:15 -07:00
Andy2
ecc5357ef8 up version info, and collapse two locations into one resource entry. 2011-04-25 20:46:23 -07:00
Andy2
024f7e0541 per-gi dictName matters again: preserve it, include it in lists passed
to jni, and don't bother to assign a per-player dict when it'd be the
same as the game dict.  Allows many games to have just the one, and
also fixes problems opening games saved with older versions.  Duh.
2011-04-25 20:24:56 -07:00
Andy2
9d973cca15 load summaries for game list items via async tasks whenever a cached
View isn't present.  Fixes failure to redraw after changing language,
and also should speed inital load.  Needs testing.
2011-04-23 22:58:11 -07:00
Andy2
e9fadd4d96 Rework list item code to deal with when the summary isn't available:
have update icon hidden by default, and print the game name (which we
know.)
2011-04-23 18:19:35 -07:00
Andy2
20ec6dd011 Avoid relocking game after downloading: don't set lock checkbox
in onResume() unless it's the first time through.
2011-04-23 07:51:31 -07:00
Andy2
3c30cbd23a move ownership of language and dict lists used in spinners into
DictLangCache where they can be updated when a dict is added via the
"download more..." item (inclusion of which is a hack.)  Now as soon
as you return to the spinner after downloading you'll have the new
dict or lang to choose.
2011-04-23 07:39:56 -07:00
Andy2
60922baf72 bunch of changes moving UI from using one dict per game to one per
player: remove dictName from CurGameInfo and GameSummary classes and
from DB; deal with missing dicts (the warning, fetching and replacing)
when opening games and deleting dicts.  Etc.  Trivial testing passes.
2011-04-21 18:37:11 -07:00
Andy2
3970a3ef8a no need to make new string to copy since they're immutable 2011-04-21 18:35:10 -07:00
Andy2
002bb40a09 report counts/values using language rather than dictionary name. To
support that, pass lang name from java into jni.
2011-04-11 18:55:42 -07:00
Andy2
40116d792f format "game_name (lang)" using string in resource. 2011-04-11 18:52:10 -07:00
Andy2
3c0cf176ef show language as part of game name, not dict as separate line 2011-04-11 06:54:31 -07:00
Andy2
c6cd60deef Save and restore per-player dicts; load games that have 'em correctly.
Robots default to BasEnglish dict and humans to CollegeEng.  Add new
per-game default for robot dict.  Still need to deal with language
changes and non-English case in general.
2011-04-11 06:42:17 -07:00
Andy2
2b3398e6a2 pass Context in constructor rather than to methods that need it 2011-04-11 06:31:48 -07:00
Andy2
dc70db5ba4 catch up with API change 2011-04-11 06:16:25 -07:00
Andy2
97d54c86eb snapshot: track dictName per player in addition to per game. Not yet
used yet; need to pass into jni next.
2011-04-08 06:50:08 -07:00
Andy2
fc4e454d92 bugfix: add background to set of colors restored. 2011-04-08 06:17:35 -07:00
Eric House
b5746eece9 color tray divider 2011-04-01 18:16:04 -07:00
Andy2
f64257752f fix failure to draw timer in different player color when it has same
value as previous timer, e.g. when you're tapping on players who
haven't had a turn yet.  Note that without the test to prevent drawing
the same timer hints are broken -- device is too busy to make progress.
2011-04-01 07:49:31 -07:00
Andy2
6584c69df1 add and honor preference for board background color (e.g. scoreboard
and tray when no tile present).  This may allow a light-on-dark theme.
2011-04-01 07:17:11 -07:00
Andy2
a64bad0b73 just make network icon the height of scoreboard (not tested on tablet,
the place where this was last changed)
2011-04-01 07:14:04 -07:00
Eric House
c30dd905a2 move getting user strings into impl so available in background. Fixes
bug where trades were not reported when received from relay via proxy.
2011-03-31 18:11:36 -07:00
Andy2
21ab1d6d55 constants: toward beta 24 2011-03-30 18:58:06 -07:00
Eric House
1caddcf39b no need to request orientation when it never changes 2011-03-15 06:17:00 -07:00
Eric House
bcf767d66e fix NPE in race; no longer any need to set preferred orientation; do a
bit of asserting trying to catch another race.
2011-03-14 18:34:00 -07:00
Andy2
58ff3189a0 remove layout and code allowing toolbar to be positioned in landscape
mode.
2011-03-12 04:15:57 -08:00
Andy2
257d7cf094 set requested screen orientation. Seems to prevent going into
landscape mode when keyboard opened.
2011-03-11 21:52:37 -08:00
Andy2
01fe8f6087 don't ping relay every time app is launched -- timer is enough. 2011-03-11 19:06:42 -08:00
Andy2
552a5ff6da up constants for beta 23 2011-03-11 06:45:49 -08:00
Andy2
28f3ad316b hide/show hint at top of games list via a preference rather than the
number of games in the list, and modify hint text to point to the
prefs setting.
2011-03-11 06:44:25 -08:00
Andy2
d56ce42585 hide games-list hint when more than 2 games present, and add text to
that effect so people aren't surprised.
2011-03-10 18:24:27 -08:00
Andy2
d9bb5197d4 Add two new menus to be available only when in trade mode. Hide and
show them and another group depending on whether trading at the time.
To make that work, replace the individual calls made to dis/enable
toolbar buttons with a single jin call that takes a struct full of
booleans and make that struct available in BoardActivity where menus
are hidden/shown.  Remove the individual calls from the jin interface.
2011-03-10 18:13:56 -08:00
Andy2
26a274ab0f make the empty-list message a header instead since its instructions
matter after there are games in the list.  But hide it whenever there
are four or more games.
2011-03-09 18:42:06 -08:00
Andy2
8ef3aa51b2 Reverse sense of is-local bit so that on upgrade people don't see all
their local players marked as remote.
2011-03-08 18:43:29 -08:00
Andy2
9acea8ec5a fire a toast in response to "check relay" menu so people get sense of
something being done.  Firing from RelayService might be more honest
but is much harder.
2011-03-08 06:33:22 -08:00
Andy2
b441fdb56e make hint text bigger and proportional to cell size. 2011-03-07 20:29:44 -08:00
Andy2
a6edcaadd9 zoom by five instead of four 2011-03-07 20:26:08 -08:00
Andy2
2f3a1b03f5 cleanup 2011-03-07 20:23:47 -08:00
Andy2
8c40628916 Support new error message about exchange being disallowed when no selection. 2011-03-07 06:40:11 -08:00
Andy2
0e86467ea1 use high-contrast for mini-window (same as arrow) 2011-03-05 23:21:38 -08:00
Andy2
58d29fbb26 a bit of cleanup: inval rather than replace 2011-03-05 15:38:03 -08:00
Andy2
81e3578dd5 Fix another recycled dialog message by making superclass dismiss
listener adder available and using it.
2011-03-05 10:16:29 -08:00
Andy2
92a726aff3 call removeDialog() when dismissing blocking dialogs. Fixes reporting
the same robot move every time.
2011-03-05 10:05:31 -08:00
Andy2
166bee6c82 always show game name (for now) 2011-03-04 21:33:26 -08:00
Andy2
b0b747f642 remove logging around GameLock 2011-03-04 18:53:47 -08:00
Andy2
997365bc20 new printStack() required for prev commit 2011-03-04 18:36:53 -08:00
Andy2
4cdafbd510 reduce the length of the sleep when waiting for lock; add code to
capture stack trace at lock time that'll be printed out along with the
current thread's trace when I can't get a lock in one second.  I'll
comment that out shortly but want it for debugging -- though it's
untested: can't repro any failure to lock now.
2011-03-04 18:36:33 -08:00
Andy2
2b28a4d27c unlock GameLock before launching BoardActivity -- to fix a deadlock.
Also do lock/unlock in onPause/onResume rather than onStart/Stop to
hold the lock for a shorter time.
2011-03-04 18:22:17 -08:00
Andy2
1b6d8ebed2 don't show game name if it's hidden in BoardActivity -- that is, use
the same preference to govern both.  Still to do: need to inval all
game list items when that preference changes.
2011-03-04 07:40:56 -08:00
Andy2
754d7b06ef add boolean 'wait' to getSummary() allowing it to return null if it
can't get a read lock.  Fix GameListAdapter to handle that null.
2011-03-04 07:22:08 -08:00
Andy2
abdabd9c3c don't pass timeout value to join() when stopping jni thread. If the
timeout fires there's nothing I can do anyway.  So it it take as long
as required to exit run(), and if that's too long fix it.
2011-03-04 07:19:06 -08:00
Andy2
b085540ee3 make the jni thread a daemon per recommendation from google dev suppt. 2011-03-04 07:14:17 -08:00
Andy2
a5ba0ac5fe remove pending messages after sending them. 2011-03-04 06:38:25 -08:00
Andy2
a1d1251c0e remove logging 2011-03-04 05:46:20 -08:00
Andy2
6acf7fda68 fix crash: rather than pass chat message to jnithread that will be
null when the board activity has lost focus, save it to be sent once
the thread's been recreated.
2011-03-04 05:45:29 -08:00
Andy2
eb3b83ec48 fix rare crash by tracking whether showDialog has been called and
testing that before dismissing it.
2011-03-03 19:00:50 -08:00
Andy2
ecfe1d110e Make getSummary able to fail since it can be called when somebody has
a write lock that will be held for a long time.  One place it'll fail
is when game list item's been invalidated and wants to update.  Deal
with null summary coming back there.
2011-03-03 06:52:20 -08:00
Andy2
c6fc912d89 reimplement GameLock without ReadWriteLock which isn't quite what I
wanted (which is more like a checkout mechanism).  Lots of logging
remains to be removed.
2011-03-03 06:50:48 -08:00
Andy2
1ca8ce9192 make saveDict return false if aborts the download. (Not used yet.) 2011-03-03 05:38:45 -08:00
Andy2
0348867326 add printStack() 2011-03-02 18:59:35 -08:00
Andy2
a0bf3405b8 get rid of columns I don't plan to use yet -- can always add later. 2011-03-02 18:58:20 -08:00
Andy2
693310bdc7 don't call super() twice!! 2011-03-02 18:57:56 -08:00
Andy2
b32f65574d now that game name's in the display, sort by that. 2011-03-02 07:10:43 -08:00
Andy2
9e56e4f40c call dbchange listeners after deleting game. And with the dbchange
listeners working a lot of inval/onContentChanged stuff can be
removed.
2011-03-02 07:02:24 -08:00
Andy2
61a9f708a2 add game name to list item. I really want to swap the columns now but
can't make player name/score line up correctly on right.
2011-03-02 06:49:04 -08:00
Andy2
467e999509 set and clear dbchange listener in onCreate and onDestroy rather than
onStart and onPause so it'll get called when not in front too.  Not
sure why this worked before the GameLock change....
2011-03-02 06:48:14 -08:00
Andy2
c144503630 move GameLock class from DBUtils to GameUtils 2011-03-01 21:59:15 -08:00
Andy2
ce6eca3fe5 add class that maintains read and write locks per-game record to
prevent writes to a game while it's open.  Seems to work, but needs
more testing.
2011-03-01 21:44:59 -08:00
Andy2
4eb77809fb remove redundant logging 2011-03-01 06:51:20 -08:00
Andy2
a344f26d1b add static boolean that controls whether logging is on (for java).
Add an Application subclass that fetches the value from a preference,
a checkbox setting in advanced prefs, and modify the static when
that's changed at runtime.
2011-02-28 20:07:07 -08:00
Andy2
54ef8f73c9 get rid of some logging 2011-02-28 18:43:47 -08:00
Andy2
bfc82242d7 add new column to be used to track whether a game is in use -- not
used yet but anticipated and I'm added a lot this release anyway....
2011-02-28 06:45:52 -08:00
Andy2
20ad465b96 from GamesList.onNewIntent, launch the first changed game rather than
just invalidating all changed list items.
2011-02-28 06:37:29 -08:00
Andy2
ed8707fb4b replace array[1] with HashSet to support more than one db change
listener (part 2)
2011-02-28 05:42:09 -08:00
Andy2
b57b6b1b31 replace array[1] with HashSet to support more than one db change listener 2011-02-28 05:41:02 -08:00
Andy2
c31e964ce4 remove class and interface no longer used 2011-02-27 22:45:51 -08:00
Andy2
fe9932b57d remove hint menu. Add sync-with-server item to board and factor code
implementing same in GamesList up into DlgDelegate where it can be
called from both.  Also, make syncing fire off the service just as the
timer does so that results generate Notifications.  Makes it better
for testing if nothing else.
2011-02-27 22:43:09 -08:00
Andy2
d2e663fa99 remove logging 2011-02-27 22:40:26 -08:00
Eric House
4d5aad61b4 Merge branch 'android_branch' of ssh://xwords.git.sourceforge.net/gitroot/xwords/xwords into android_branch
Conflicts:
	xwords4/android/XWords4/src/org/eehouse/android/xw4/RelayService.java
2011-02-26 20:02:29 -08:00
Andy2
6df2abecb6 don't use special launchModes for GamesList *but* do invoke it from
DispatchNotify so that an existing instance will be reused rather than
a new on created on top of the stack.
2011-02-26 19:47:33 -08:00
Andy2
9cc7cd0dc8 add logging of activity lifecycle methods -- and override a couple just
to do the logging before calling super().  These should go once I've
got the lifecycle stuff working.
2011-02-26 19:46:29 -08:00
Andy2
ef074f2944 don't bother passing flags to DispatchNotify class. 2011-02-26 19:45:05 -08:00
Andy2
a0f5ef4e18 remove logging 2011-02-26 19:44:02 -08:00
Eric House
a68170de51 remove PendingIntent.FLAG_UPDATE_CURRENT; it's breaking things. 2011-02-26 12:10:24 -08:00
Andy2
5ba6579180 Add Discard button to dialog explaining that remote game's been
deleted.  To do that: added interface to TransportProcs that a caller
can implement and to which it delegates the UI (error code reports).
BoardActivity implements that interface.  To avoid a race condition
where the JNIThread would save the game after I'd deleted it I kill
the thread and wait for it to die before deleting the game and calling
finish().
2011-02-25 19:57:43 -08:00
Andy2
86274785dd add newbie-info on turn-changed 2011-02-25 07:13:54 -08:00
Andy2
5e0f12e49d add a confirmation dialog to "undo last", and remove it altogether
from networked games since as currently implemented it can quickly get
them permanently out-of-sync (and cause the jni code to assert.)  Need
to debug this....
2011-02-25 06:54:38 -08:00
Andy2
0be59d1ba7 add showConfirmThen (which XWListActivity already has) 2011-02-25 06:53:36 -08:00
Andy2
d41487150b add draw_boardBegin (fix broken compile) 2011-02-24 22:28:15 -08:00
Andy2
ce64f79cdd add draw_boardBegin 2011-02-24 22:24:24 -08:00
Andy2
5afb7aadff add dict_getTileValue 2011-02-24 22:23:57 -08:00
Andy2
40dcda2262 add flag that's supposed to help notification launch an open activity 2011-02-24 22:21:04 -08:00
Andy2
5291307c11 get rid of onRestart -- onStart is always called right after. 2011-02-24 22:20:10 -08:00
Andy2
66bc435f28 always save after receiving messages that may have changed state.
Previously did so only when in background, but that leaves a problem:
if device A sends messages to B and B ACKs them so that they're
deleted but exits without saving (for any reason) the game is
permanently horked.  It's safer to save immediately.
2011-02-24 17:35:22 -08:00
Andy2
f0d90f0576 get rid of cute auto-array-creation. No behavior change; maybe no
change in generated code.
2011-02-24 07:39:35 -08:00
Andy2
9818a29f86 Use bitvector (an int) instead of an enum for flags noting what
arrived in the background. When notification that game's over arrives,
add it to the flags, then on game open show the game over dialog (in
addition to raising chat activity and possibly showing recent move.)
2011-02-24 07:09:41 -08:00