Merge branch 'from_android_beta_65' into android_branch

Conflicts:
	xwords4/android/XWords4/res/raw/changes
	xwords4/android/XWords4/src/org/eehouse/android/xw4/BoardActivity.java
This commit is contained in:
Eric House 2013-09-09 08:01:28 -07:00
commit a25d664eb5
7 changed files with 52 additions and 27 deletions

View file

@ -19,7 +19,6 @@ local_DEFINES += \
-DXWFEATURE_SMS \ -DXWFEATURE_SMS \
-DXWFEATURE_COMMSACK \ -DXWFEATURE_COMMSACK \
-DXWFEATURE_TURNCHANGENOTIFY \ -DXWFEATURE_TURNCHANGENOTIFY \
-DXWFEATURE_CHAT \
-DCOMMS_XPORT_FLAGSPROC \ -DCOMMS_XPORT_FLAGSPROC \
-DKEY_SUPPORT \ -DKEY_SUPPORT \
-DXWFEATURE_CROSSHAIRS \ -DXWFEATURE_CROSSHAIRS \

View file

@ -446,6 +446,7 @@ and_util_warnIllegalWord( XW_UtilCtxt* uc, BadWordInfo* bwi,
return result; return result;
} }
#ifdef XWFEATURE_CHAT
static void static void
and_util_showChat( XW_UtilCtxt* uc, const XP_UCHAR const* msg ) and_util_showChat( XW_UtilCtxt* uc, const XP_UCHAR const* msg )
{ {
@ -455,6 +456,7 @@ and_util_showChat( XW_UtilCtxt* uc, const XP_UCHAR const* msg )
deleteLocalRef( env, jmsg ); deleteLocalRef( env, jmsg );
UTIL_CBK_TAIL(); UTIL_CBK_TAIL();
} }
#endif
static void static void
and_util_remSelected(XW_UtilCtxt* uc) and_util_remSelected(XW_UtilCtxt* uc)
@ -691,7 +693,9 @@ makeUtil( MPFORMAL JNIEnv** envp, jobject jutil, CurGameInfo* gi,
SET_PROC(makeEmptyDict); SET_PROC(makeEmptyDict);
SET_PROC(getUserString); SET_PROC(getUserString);
SET_PROC(warnIllegalWord); SET_PROC(warnIllegalWord);
#ifdef XWFEATURE_CHAT
SET_PROC(showChat); SET_PROC(showChat);
#endif
SET_PROC(remSelected); SET_PROC(remSelected);
#ifndef XWFEATURE_MINIWIN #ifndef XWFEATURE_MINIWIN

View file

@ -1375,6 +1375,7 @@ Java_org_eehouse_android_xw4_jni_XwJNI_server_1endGame
XWJNI_END(); XWJNI_END();
} }
#ifdef XWFEATURE_CHAT
JNIEXPORT void JNICALL JNIEXPORT void JNICALL
Java_org_eehouse_android_xw4_jni_XwJNI_server_1sendChat Java_org_eehouse_android_xw4_jni_XwJNI_server_1sendChat
( JNIEnv* env, jclass C, jint gamePtr, jstring jmsg ) ( JNIEnv* env, jclass C, jint gamePtr, jstring jmsg )
@ -1386,6 +1387,7 @@ Java_org_eehouse_android_xw4_jni_XwJNI_server_1sendChat
(*env)->ReleaseStringUTFChars( env, jmsg, msg ); (*env)->ReleaseStringUTFChars( env, jmsg, msg );
XWJNI_END(); XWJNI_END();
} }
#endif
#ifdef XWFEATURE_WALKDICT #ifdef XWFEATURE_WALKDICT
//////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////

View file

@ -10,6 +10,12 @@
<h3>New with this release</h3> <h3>New with this release</h3>
<ul> <ul>
<li>Fix menu missing on some tablets</li> <li>Fix menu missing on some tablets</li>
<li>Disable in-game Chat feature. (It has bugs that cause games to
stop syncing moves. I&amp;ll fix eventually. Let me know if you
use this feature and I&amp;ll up the priority.)</li>
<li>Fix crash triggered by resignation</li>
</ul> </ul>
<h3>Next up</h3> <h3>Next up</h3>

View file

@ -130,7 +130,7 @@ public class BoardActivity extends XWActivity
private Button m_exchCommmitButton; private Button m_exchCommmitButton;
private Button m_exchCancelButton; private Button m_exchCancelButton;
private ArrayList<String> m_pendingChats = new ArrayList<String>(); private ArrayList<String> m_pendingChats;
private String m_dlgBytes = null; private String m_dlgBytes = null;
private EditText m_passwdEdit = null; private EditText m_passwdEdit = null;
@ -541,6 +541,10 @@ public class BoardActivity extends XWActivity
requestWindowFeature( Window.FEATURE_NO_TITLE ); requestWindowFeature( Window.FEATURE_NO_TITLE );
} }
if ( XWApp.CHAT_SUPPORTED ) {
m_pendingChats = new ArrayList<String>();
}
m_utils = new BoardUtilCtxt(); m_utils = new BoardUtilCtxt();
m_jniu = JNIUtilsImpl.get( this ); m_jniu = JNIUtilsImpl.get( this );
setContentView( R.layout.board ); setContentView( R.layout.board );
@ -625,10 +629,12 @@ public class BoardActivity extends XWActivity
if ( Activity.RESULT_CANCELED != resultCode ) { if ( Activity.RESULT_CANCELED != resultCode ) {
switch ( requestCode ) { switch ( requestCode ) {
case CHAT_REQUEST: case CHAT_REQUEST:
String msg = data.getStringExtra( INTENT_KEY_CHAT ); if ( XWApp.CHAT_SUPPORTED ) {
if ( null != msg && msg.length() > 0 ) { String msg = data.getStringExtra( INTENT_KEY_CHAT );
m_pendingChats.add( msg ); if ( null != msg && msg.length() > 0 ) {
trySendChats(); m_pendingChats.add( msg );
trySendChats();
}
} }
break; break;
case BT_INVITE_RESULT: case BT_INVITE_RESULT:
@ -831,13 +837,11 @@ public class BoardActivity extends XWActivity
break; break;
case R.id.board_menu_game_history: case R.id.board_menu_game_history:
m_jniThread.handle( JNICmd.CMD_HISTORY, m_jniThread.handle( JNICmd.CMD_HISTORY, R.string.history_title );
R.string.history_title );
break; break;
case R.id.board_menu_game_resign: case R.id.board_menu_game_resign:
m_jniThread.handle( JNICmd.CMD_FINAL, m_jniThread.handle( JNICmd.CMD_FINAL, R.string.history_title );
R.string.history_title );
break; break;
case R.id.board_menu_game_resend: case R.id.board_menu_game_resend:
@ -1710,13 +1714,15 @@ public class BoardActivity extends XWActivity
@Override @Override
public void showChat( final String msg ) public void showChat( final String msg )
{ {
post( new Runnable() { if ( XWApp.CHAT_SUPPORTED ) {
public void run() { post( new Runnable() {
DBUtils.appendChatHistory( BoardActivity.this, public void run() {
m_rowid, msg, false ); DBUtils.appendChatHistory( BoardActivity.this,
startChatActivity(); m_rowid, msg, false );
} startChatActivity();
} ); }
} );
}
} }
} // class BoardUtilCtxt } // class BoardUtilCtxt
@ -1901,10 +1907,12 @@ public class BoardActivity extends XWActivity
R.string.not_again_undo, R.string.not_again_undo,
R.string.key_notagain_undo, R.string.key_notagain_undo,
UNDO_ACTION ); UNDO_ACTION );
m_toolbar.setListener( Toolbar.BUTTON_CHAT, if ( XWApp.CHAT_SUPPORTED ) {
R.string.not_again_chat, m_toolbar.setListener( Toolbar.BUTTON_CHAT,
R.string.key_notagain_chat, R.string.not_again_chat,
CHAT_ACTION ); R.string.key_notagain_chat,
CHAT_ACTION );
}
} // populateToolbar } // populateToolbar
private OnDismissListener makeODLforBlocking( final int id ) private OnDismissListener makeODLforBlocking( final int id )
@ -1988,9 +1996,11 @@ public class BoardActivity extends XWActivity
private void startChatActivity() private void startChatActivity()
{ {
Intent intent = new Intent( this, ChatActivity.class ); if ( XWApp.CHAT_SUPPORTED ) {
intent.putExtra( GameUtils.INTENT_KEY_ROWID, m_rowid ); Intent intent = new Intent( this, ChatActivity.class );
startActivityForResult( intent, CHAT_REQUEST ); intent.putExtra( GameUtils.INTENT_KEY_ROWID, m_rowid );
startActivityForResult( intent, CHAT_REQUEST );
}
} }
private void waitCloseGame( boolean save ) private void waitCloseGame( boolean save )
@ -2034,7 +2044,7 @@ public class BoardActivity extends XWActivity
private void trySendChats() private void trySendChats()
{ {
if ( null != m_jniThread ) { if ( XWApp.CHAT_SUPPORTED && null != m_jniThread ) {
Iterator<String> iter = m_pendingChats.iterator(); Iterator<String> iter = m_pendingChats.iterator();
while ( iter.hasNext() ) { while ( iter.hasNext() ) {
m_jniThread.handle( JNICmd.CMD_SENDCHAT, iter.next() ); m_jniThread.handle( JNICmd.CMD_SENDCHAT, iter.next() );
@ -2081,7 +2091,8 @@ public class BoardActivity extends XWActivity
m_toolbar.update( Toolbar.BUTTON_UNDO, m_gsi.canRedo ); m_toolbar.update( Toolbar.BUTTON_UNDO, m_gsi.canRedo );
m_toolbar.update( Toolbar.BUTTON_HINT_PREV, m_gsi.canHint ); m_toolbar.update( Toolbar.BUTTON_HINT_PREV, m_gsi.canHint );
m_toolbar.update( Toolbar.BUTTON_HINT_NEXT, m_gsi.canHint ); m_toolbar.update( Toolbar.BUTTON_HINT_NEXT, m_gsi.canHint );
m_toolbar.update( Toolbar.BUTTON_CHAT, m_gsi.canChat ); m_toolbar.update( Toolbar.BUTTON_CHAT,
XWApp.CHAT_SUPPORTED && m_gsi.canChat );
m_toolbar.update( Toolbar.BUTTON_BROWSE_DICT, m_toolbar.update( Toolbar.BUTTON_BROWSE_DICT,
null != m_gi.dictName( m_view.getCurPlayer() ) ); null != m_gi.dictName( m_view.getCurPlayer() ) );
} }
@ -2103,7 +2114,8 @@ public class BoardActivity extends XWActivity
hideShowItem( menu, R.id.board_menu_undo_current, m_gsi.canRedo ); hideShowItem( menu, R.id.board_menu_undo_current, m_gsi.canRedo );
hideShowItem( menu, R.id.board_menu_hint_prev, m_gsi.canHint ); hideShowItem( menu, R.id.board_menu_hint_prev, m_gsi.canHint );
hideShowItem( menu, R.id.board_menu_hint_next, m_gsi.canHint ); hideShowItem( menu, R.id.board_menu_hint_next, m_gsi.canHint );
hideShowItem( menu, R.id.board_menu_chat, m_gsi.canChat ); hideShowItem( menu, R.id.board_menu_chat,
XWApp.CHAT_SUPPORTED && m_gsi.canChat );
} }
} }

View file

@ -31,6 +31,7 @@ public class XWApp extends Application {
public static final boolean BTSUPPORTED = false; public static final boolean BTSUPPORTED = false;
public static final boolean SMSSUPPORTED = true; public static final boolean SMSSUPPORTED = true;
public static final boolean GCMSUPPORTED = true; public static final boolean GCMSUPPORTED = true;
public static final boolean CHAT_SUPPORTED = false;
public static final boolean ATTACH_SUPPORTED = true; public static final boolean ATTACH_SUPPORTED = true;
public static final boolean REMATCH_SUPPORTED = false; public static final boolean REMATCH_SUPPORTED = false;
public static final boolean DEBUG = false; public static final boolean DEBUG = false;

View file

@ -2495,6 +2495,7 @@ endGameInternal( ServerCtxt* server, GameEndReason XP_UNUSED(why), XP_S16 quitte
XWStreamCtxt* stream; XWStreamCtxt* stream;
stream = messageStreamWithHeader( server, SERVER_DEVICE, stream = messageStreamWithHeader( server, SERVER_DEVICE,
XWPROTO_CLIENT_REQ_END_GAME ); XWPROTO_CLIENT_REQ_END_GAME );
putQuitter( server, stream, quitter );
stream_destroy( stream ); stream_destroy( stream );
/* Do I want to change the state I'm in? I don't think so.... */ /* Do I want to change the state I'm in? I don't think so.... */