Merge branch 'android_branch' into relay_noconn

This commit is contained in:
Eric House 2015-08-25 06:40:42 -07:00
commit c81f035133
7 changed files with 24 additions and 84 deletions

View file

@ -22,7 +22,7 @@
to come from a domain that you own or have control over. --> to come from a domain that you own or have control over. -->
<manifest xmlns:android="http://schemas.android.com/apk/res/android" <manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="org.eehouse.android.xw4dbg" package="org.eehouse.android.xw4dbg"
android:versionCode="90" android:versionCode="91"
android:versionName="@string/app_version" android:versionName="@string/app_version"
> >

View file

@ -22,7 +22,7 @@
to come from a domain that you own or have control over. --> to come from a domain that you own or have control over. -->
<manifest xmlns:android="http://schemas.android.com/apk/res/android" <manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="org.eehouse.android.xw4" package="org.eehouse.android.xw4"
android:versionCode="90" android:versionCode="91"
android:versionName="@string/app_version" android:versionName="@string/app_version"
> >

View file

@ -13,10 +13,10 @@
</style> </style>
</head> </head>
<body> <body>
<h2>Crosswords 4.4 beta 97 release</h2> <h2>Crosswords 4.4 beta 98 release</h2>
<p>This release changes how networked games are started and <p>This release is mostly to get the new Dutch translation out
communicate.</p> there, and to catch up Catalan and French.</p>
<div id="survey"> <div id="survey">
<p>Please <a href="https://www.surveymonkey.com/s/GX3XLHR">take <p>Please <a href="https://www.surveymonkey.com/s/GX3XLHR">take
@ -26,63 +26,23 @@
<h3>New with this release</h3> <h3>New with this release</h3>
<ul> <ul>
<li>Change how games communicate: instead of using only one <li>Complete and up-to-date translations into Dutch, French and
means (e.g. Bluetooth, SMS, or the internet/relay) a game can Catalan. What langauge is next?</li>
use all three, switching based on what works at the time</li>
<li>Game creation requires only picking whether you&apos;re <li>Allow copying invitation URL to clipboard so you can paste
networked or not, not how to communicate (though you can it into any messaging app you like</li>
still control that if you like)</li>
<li>Separate inviting from playing: e.g. you can invite via <li>Improvements to in-game chat experience (but more are coming)</li>
Bluetooth to a game that will be played via SMS</li>
<li>A game that needs remote players has a dialog on top of it <li>Show a "toast" when hint button can't find any moves</li>
at all times you can use to invite players. The dialog goes
away when invited players connect.</li>
<li>But when a game hasn&apos;t connected yet, warn, and <li>Add sms to the list of ways you can invite somebody</li>
don&apos;t let it send an invitation</li>
<li>On startup, if on a phone configured for other than English, <li>When displaying Bluetooth-connected devices to invite, skip
offer to download an appropriate wordlist</li> stuff like headphones</li>
<li>Turn off email invite attachments. They didn't seem to work anyway,
<li>New games are placed in the selected group (if any, and aren't needed on modern Android.</li>
otherwise in default as before)</li> <li>Fix very old memory leak</li>
<li>Add new-games buttons to main screen, and offer to hide them
after a while</li>
<li>Offer to turn Bluetooth and SMS on directly rather than just
take you to the Android prefs app</li>
<li>Hide public rooms interface by default, and add a preference
to turn it back on</li>
<li>Remove option to invite using SMS, since invitations are too
large now. (Will address in a release soon.)</li>
<li>Kill play-via-SMS for non-GSM phones. (Google&apos;s making
it too hard to support this, and non-GSM phones are only
found in one country anyway.)</li>
<li>Deal with deletion of dictionary that&apos;s been set as
default</li>
<li>In popup menu from in-game wordlist button, show only
wordlists in same language as game</li>
<li>When assigning new tiles, don&apos;t sort tiles to left of
tray divider</li>
<li>Remove &quot;Reconnect&quot; button from network status info</li>
<li>Include info for all communication means being used in
network status, and only show an icon in networked games </li>
<li>Show status message after writing to SD card</li>
<li>Fix a few crashes</li>
</ul> </ul>
<p>(The full changelog <p>(The full changelog
@ -92,7 +52,6 @@
<ul> <ul>
<li>Offer &quot;Rematch&quot; when game&apos;s over (Easy via <li>Offer &quot;Rematch&quot; when game&apos;s over (Easy via
SMS and Bluetooth; harder via the internet/relay)</li> SMS and Bluetooth; harder via the internet/relay)</li>
<li>Fix invite-by-SMS (and then re-enable)</li>
<li>Look into supporting play via peer-to-peer wifi</li> <li>Look into supporting play via peer-to-peer wifi</li>
</ul> </ul>

View file

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<resources> <resources>
<string name="app_version">4.4 beta 97</string> <string name="app_version">4.4 beta 98</string>
</resources> </resources>

View file

@ -142,7 +142,7 @@ public class DBUtils {
DBHelper.ROOMNAME, DBHelper.RELAYID, DBHelper.ROOMNAME, DBHelper.RELAYID,
/*DBHelper.SMSPHONE,*/ DBHelper.SEED, /*DBHelper.SMSPHONE,*/ DBHelper.SEED,
DBHelper.DICTLANG, DBHelper.GAMEID, DBHelper.DICTLANG, DBHelper.GAMEID,
DBHelper.SCORES, DBHelper.HASMSGS, DBHelper.SCORES,
DBHelper.LASTPLAY_TIME, DBHelper.REMOTEDEVS, DBHelper.LASTPLAY_TIME, DBHelper.REMOTEDEVS,
DBHelper.LASTMOVE, DBHelper.NPACKETSPENDING, DBHelper.LASTMOVE, DBHelper.NPACKETSPENDING,
DBHelper.EXTRAS, DBHelper.EXTRAS,
@ -255,11 +255,6 @@ public class DBUtils {
col = cursor.getColumnIndex( DBHelper.SERVERROLE ); col = cursor.getColumnIndex( DBHelper.SERVERROLE );
tmp = cursor.getInt( col ); tmp = cursor.getInt( col );
summary.serverRole = CurGameInfo.DeviceRole.values()[tmp]; summary.serverRole = CurGameInfo.DeviceRole.values()[tmp];
col = cursor.getColumnIndex( DBHelper.HASMSGS );
if ( col >= 0 ) {
summary.pendingMsgLevel = cursor.getInt( col );
}
} }
cursor.close(); cursor.close();
db.close(); db.close();
@ -307,7 +302,6 @@ public class DBUtils {
values.put( DBHelper.NEXTNAG, nextNag ); values.put( DBHelper.NEXTNAG, nextNag );
values.put( DBHelper.DICTLIST, summary.dictNames(DICTS_SEP) ); values.put( DBHelper.DICTLIST, summary.dictNames(DICTS_SEP) );
values.put( DBHelper.HASMSGS, summary.pendingMsgLevel );
if ( null != inviteID ) { if ( null != inviteID ) {
values.put( DBHelper.INVITEID, inviteID ); values.put( DBHelper.INVITEID, inviteID );
} }

View file

@ -162,13 +162,6 @@ public class GameUtils {
} }
} }
private static GameSummary summarizeAndClose( Context context,
GameLock lock,
int gamePtr, CurGameInfo gi )
{
return summarizeAndClose( context, lock, gamePtr, gi, null );
}
private static int setFromFeedImpl( FeedUtilsImpl feedImpl ) private static int setFromFeedImpl( FeedUtilsImpl feedImpl )
{ {
int result = GameSummary.MSG_FLAGS_NONE; int result = GameSummary.MSG_FLAGS_NONE;
@ -185,17 +178,12 @@ public class GameUtils {
} }
private static GameSummary summarizeAndClose( Context context, private static GameSummary summarizeAndClose( Context context,
GameLock lock, GameLock lock, int gamePtr,
int gamePtr, CurGameInfo gi, CurGameInfo gi )
FeedUtilsImpl feedImpl )
{ {
GameSummary summary = new GameSummary( context, gi ); GameSummary summary = new GameSummary( context, gi );
XwJNI.game_summarize( gamePtr, summary ); XwJNI.game_summarize( gamePtr, summary );
if ( null != feedImpl ) {
summary.pendingMsgLevel |= setFromFeedImpl( feedImpl );
}
DBUtils.saveSummary( context, lock, summary ); DBUtils.saveSummary( context, lock, summary );
XwJNI.game_dispose( gamePtr ); XwJNI.game_dispose( gamePtr );
@ -932,12 +920,13 @@ public class GameUtils {
} }
saveGame( context, gamePtr, gi, lock, false ); saveGame( context, gamePtr, gi, lock, false );
summarizeAndClose( context, lock, gamePtr, gi, feedImpl ); summarizeAndClose( context, lock, gamePtr, gi );
int flags = setFromFeedImpl( feedImpl ); int flags = setFromFeedImpl( feedImpl );
if ( GameSummary.MSG_FLAGS_NONE != flags ) { if ( GameSummary.MSG_FLAGS_NONE != flags ) {
draw = true; draw = true;
DBUtils.setMsgFlags( rowid, flags ); int curFlags = DBUtils.getMsgFlags( context, rowid );
DBUtils.setMsgFlags( rowid, flags | curFlags );
} }
} }
lock.unlock(); lock.unlock();

View file

@ -63,7 +63,6 @@ public class GameSummary {
public String roomName; public String roomName;
public String relayID; public String relayID;
public int seed; public int seed;
public int pendingMsgLevel;
public long modtime; public long modtime;
public int gameID; public int gameID;
public String[] remoteDevs; // BTAddrs and phone numbers public String[] remoteDevs; // BTAddrs and phone numbers
@ -83,7 +82,6 @@ public class GameSummary {
public GameSummary( Context context ) { public GameSummary( Context context ) {
m_context = context; m_context = context;
pendingMsgLevel = 0;
gameID = 0; gameID = 0;
} }