mirror of
git://xwords.git.sourceforge.net/gitroot/xwords/xwords
synced 2025-01-23 07:27:22 +01:00
Merge remote-tracking branch 'origin/android_translate' into android_translate
This commit is contained in:
commit
d1b25999a3
11 changed files with 47 additions and 99 deletions
|
@ -22,7 +22,7 @@
|
|||
to come from a domain that you own or have control over. -->
|
||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
package="org.eehouse.android.xw4dbg"
|
||||
android:versionCode="90"
|
||||
android:versionCode="91"
|
||||
android:versionName="@string/app_version"
|
||||
>
|
||||
|
||||
|
|
|
@ -22,7 +22,7 @@
|
|||
to come from a domain that you own or have control over. -->
|
||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
package="org.eehouse.android.xw4"
|
||||
android:versionCode="90"
|
||||
android:versionCode="91"
|
||||
android:versionName="@string/app_version"
|
||||
>
|
||||
|
||||
|
|
|
@ -13,10 +13,10 @@
|
|||
</style>
|
||||
</head>
|
||||
<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
|
||||
communicate.</p>
|
||||
<p>This release is mostly to get the new Dutch translation out
|
||||
there, and to catch up Catalan and French.</p>
|
||||
|
||||
<div id="survey">
|
||||
<p>Please <a href="https://www.surveymonkey.com/s/GX3XLHR">take
|
||||
|
@ -26,63 +26,23 @@
|
|||
|
||||
<h3>New with this release</h3>
|
||||
<ul>
|
||||
<li>Change how games communicate: instead of using only one
|
||||
means (e.g. Bluetooth, SMS, or the internet/relay) a game can
|
||||
use all three, switching based on what works at the time</li>
|
||||
<li>Complete and up-to-date translations into Dutch, French and
|
||||
Catalan. What langauge is next?</li>
|
||||
|
||||
<li>Game creation requires only picking whether you're
|
||||
networked or not, not how to communicate (though you can
|
||||
still control that if you like)</li>
|
||||
<li>Allow copying invitation URL to clipboard so you can paste
|
||||
it into any messaging app you like</li>
|
||||
|
||||
<li>Separate inviting from playing: e.g. you can invite via
|
||||
Bluetooth to a game that will be played via SMS</li>
|
||||
<li>Improvements to in-game chat experience (but more are coming)</li>
|
||||
|
||||
<li>A game that needs remote players has a dialog on top of it
|
||||
at all times you can use to invite players. The dialog goes
|
||||
away when invited players connect.</li>
|
||||
<li>Show a "toast" when hint button can't find any moves</li>
|
||||
|
||||
<li>But when a game hasn't connected yet, warn, and
|
||||
don't let it send an invitation</li>
|
||||
<li>Add sms to the list of ways you can invite somebody</li>
|
||||
|
||||
<li>On startup, if on a phone configured for other than English,
|
||||
offer to download an appropriate wordlist</li>
|
||||
|
||||
<li>New games are placed in the selected group (if any,
|
||||
otherwise in default as before)</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'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'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't sort tiles to left of
|
||||
tray divider</li>
|
||||
|
||||
<li>Remove "Reconnect" 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>
|
||||
<li>When displaying Bluetooth-connected devices to invite, skip
|
||||
stuff like headphones</li>
|
||||
<li>Turn off email invite attachments. They didn't seem to work anyway,
|
||||
and aren't needed on modern Android.</li>
|
||||
<li>Fix very old memory leak</li>
|
||||
</ul>
|
||||
|
||||
<p>(The full changelog
|
||||
|
@ -92,7 +52,6 @@
|
|||
<ul>
|
||||
<li>Offer "Rematch" when game's over (Easy via
|
||||
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>
|
||||
</ul>
|
||||
|
||||
|
|
11
xwords4/android/XWords4/img_src/send.svg
Normal file
11
xwords4/android/XWords4/img_src/send.svg
Normal file
|
@ -0,0 +1,11 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="120"
|
||||
height="120" xml:space="preserve">
|
||||
<g
|
||||
id="g12"
|
||||
transform="matrix(1.25,0,0,-1.25,0,120)">
|
||||
<g transform='translate(20.24,20.6)' id='g1090'>
|
||||
<path style='fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none' d='M 0,0 5.287,24.92 38.6,27.24 38.6,27.57 5.287,29.89 0,54.81 55.52,27.4 0,0 z' id='path1092'/>
|
||||
</g></g>
|
||||
</svg>
|
After Width: | Height: | Size: 584 B |
|
@ -1,5 +1,5 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
|
||||
<resources>
|
||||
<string name="app_version">4.4 beta 97</string>
|
||||
<string name="app_version">4.4 beta 98</string>
|
||||
</resources>
|
||||
|
|
|
@ -1256,7 +1256,7 @@
|
|||
-->
|
||||
<!-- title of the chat screen. The name of the current game is
|
||||
substituted for %1$s. -->
|
||||
<string name="chat_title_fmt">%1$s message history</string>
|
||||
<string name="chat_title_fmt">%1$s messages</string>
|
||||
<!-- Prefix for local messages -->
|
||||
<string name="chat_local_id">Me:\u0020</string>
|
||||
<!-- Prefix for remote messages -->
|
||||
|
@ -2548,23 +2548,18 @@
|
|||
<item quantity="other">%1$s messages sent</item>
|
||||
</plurals>
|
||||
|
||||
<!-- EXPERIMENATL: A choice of how to invite, along with SMS,
|
||||
Bluetooth, email etc -->
|
||||
<string name="invite_choice_clip">I\'ll choose</string>
|
||||
<!-- EXPERIMENATL: Shown as toast when user chooses "My choice" for
|
||||
invitation -->
|
||||
<string name="confirm_clear_chat">Are you sure you want to delete
|
||||
all chat history for this game?\n\n(This action cannot be
|
||||
undone.)</string>
|
||||
<!-- EXPERIMENTAL: Shown as toast when user chooses "Copy to
|
||||
clipboard" for invitation -->
|
||||
<string name="invite_copied">Invitation ready to paste</string>
|
||||
<!-- EXPERIMENATL: "label" for invite on clipboard. If it's shown
|
||||
<!-- EXPERIMENTAL: "label" for invite on clipboard. If it's shown
|
||||
it's by some Android utility -->
|
||||
<string name="clip_label">Invitation URL</string>
|
||||
<!-- EXPERIMENATL: Newbie hint next when invite_choice_clip shown
|
||||
<!-- EXPERIMENTAL: Newbie hint next when invite_choice_clip shown
|
||||
when chosen -->
|
||||
<string name="not_again_clip_expl_fmt">The \"%1$s\" option copies an
|
||||
invitation URL to the clipboard. Paste it into the app of your
|
||||
choice and send it to your friend.</string>
|
||||
|
||||
<string name="confirm_clear_chat">Are you sure you want to delete
|
||||
all chat history for this game?\n\n(This action cannot be
|
||||
undone.)</string>
|
||||
|
||||
</resources>
|
||||
|
|
|
@ -142,7 +142,7 @@ public class DBUtils {
|
|||
DBHelper.ROOMNAME, DBHelper.RELAYID,
|
||||
/*DBHelper.SMSPHONE,*/ DBHelper.SEED,
|
||||
DBHelper.DICTLANG, DBHelper.GAMEID,
|
||||
DBHelper.SCORES, DBHelper.HASMSGS,
|
||||
DBHelper.SCORES,
|
||||
DBHelper.LASTPLAY_TIME, DBHelper.REMOTEDEVS,
|
||||
DBHelper.LASTMOVE, DBHelper.NPACKETSPENDING,
|
||||
DBHelper.EXTRAS,
|
||||
|
@ -255,11 +255,6 @@ public class DBUtils {
|
|||
col = cursor.getColumnIndex( DBHelper.SERVERROLE );
|
||||
tmp = cursor.getInt( col );
|
||||
summary.serverRole = CurGameInfo.DeviceRole.values()[tmp];
|
||||
|
||||
col = cursor.getColumnIndex( DBHelper.HASMSGS );
|
||||
if ( col >= 0 ) {
|
||||
summary.pendingMsgLevel = cursor.getInt( col );
|
||||
}
|
||||
}
|
||||
cursor.close();
|
||||
db.close();
|
||||
|
@ -307,7 +302,6 @@ public class DBUtils {
|
|||
values.put( DBHelper.NEXTNAG, nextNag );
|
||||
|
||||
values.put( DBHelper.DICTLIST, summary.dictNames(DICTS_SEP) );
|
||||
values.put( DBHelper.HASMSGS, summary.pendingMsgLevel );
|
||||
if ( null != inviteID ) {
|
||||
values.put( DBHelper.INVITEID, inviteID );
|
||||
}
|
||||
|
|
|
@ -632,7 +632,7 @@ public class DlgDelegate {
|
|||
means.add( DlgClickNotify.InviteMeans.NFC );
|
||||
}
|
||||
final int clipPos = means.size();
|
||||
items.add( getString( R.string.invite_choice_clip ) );
|
||||
items.add( getString( R.string.slmenu_copy_sel ) );
|
||||
means.add( DlgClickNotify.InviteMeans.CLIPBOARD );
|
||||
|
||||
final int[] sel = { -1 };
|
||||
|
@ -649,7 +649,7 @@ public class DlgDelegate {
|
|||
if ( view == clipPos ) {
|
||||
String msg =
|
||||
getString( R.string.not_again_clip_expl_fmt,
|
||||
getString(R.string.invite_choice_clip) );
|
||||
getString(R.string.slmenu_copy_sel) );
|
||||
showNotAgainDlgThen( msg, R.string.key_na_clip_expl );
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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 )
|
||||
{
|
||||
int result = GameSummary.MSG_FLAGS_NONE;
|
||||
|
@ -185,17 +178,12 @@ public class GameUtils {
|
|||
}
|
||||
|
||||
private static GameSummary summarizeAndClose( Context context,
|
||||
GameLock lock,
|
||||
int gamePtr, CurGameInfo gi,
|
||||
FeedUtilsImpl feedImpl )
|
||||
GameLock lock, int gamePtr,
|
||||
CurGameInfo gi )
|
||||
{
|
||||
GameSummary summary = new GameSummary( context, gi );
|
||||
XwJNI.game_summarize( gamePtr, summary );
|
||||
|
||||
if ( null != feedImpl ) {
|
||||
summary.pendingMsgLevel |= setFromFeedImpl( feedImpl );
|
||||
}
|
||||
|
||||
DBUtils.saveSummary( context, lock, summary );
|
||||
|
||||
XwJNI.game_dispose( gamePtr );
|
||||
|
@ -923,12 +911,13 @@ public class GameUtils {
|
|||
}
|
||||
|
||||
saveGame( context, gamePtr, gi, lock, false );
|
||||
summarizeAndClose( context, lock, gamePtr, gi, feedImpl );
|
||||
summarizeAndClose( context, lock, gamePtr, gi );
|
||||
|
||||
int flags = setFromFeedImpl( feedImpl );
|
||||
if ( GameSummary.MSG_FLAGS_NONE != flags ) {
|
||||
draw = true;
|
||||
DBUtils.setMsgFlags( rowid, flags );
|
||||
int curFlags = DBUtils.getMsgFlags( context, rowid );
|
||||
DBUtils.setMsgFlags( rowid, flags | curFlags );
|
||||
}
|
||||
}
|
||||
lock.unlock();
|
||||
|
|
|
@ -63,7 +63,6 @@ public class GameSummary {
|
|||
public String roomName;
|
||||
public String relayID;
|
||||
public int seed;
|
||||
public int pendingMsgLevel;
|
||||
public long modtime;
|
||||
public int gameID;
|
||||
public String[] remoteDevs; // BTAddrs and phone numbers
|
||||
|
@ -83,7 +82,6 @@ public class GameSummary {
|
|||
|
||||
public GameSummary( Context context ) {
|
||||
m_context = context;
|
||||
pendingMsgLevel = 0;
|
||||
gameID = 0;
|
||||
}
|
||||
|
||||
|
|
|
@ -40,6 +40,8 @@ do_dir() {
|
|||
for FILE in $SRC_PATH/*; do
|
||||
if [ -d $FILE ]; then
|
||||
do_dir $SRC_PATH $DEST_PATH $(basename $FILE)
|
||||
elif [ ! -e $FILE ]; then
|
||||
:
|
||||
else
|
||||
FILE=${FILE/$SRC_PATH/$DEST_PATH}
|
||||
if git ls-files $FILE --error-unmatch 2>/dev/null; then
|
||||
|
|
Loading…
Add table
Reference in a new issue