From f66fa5f75a7c3d2bb7f84d95edd6686849edfba9 Mon Sep 17 00:00:00 2001 From: Eric House Date: Tue, 28 Jun 2016 06:05:31 -0700 Subject: [PATCH 01/86] cleanup: remove commented out code etc. --- .../org/eehouse/android/xw4/BTService.java | 1 - .../org/eehouse/android/xw4/BoardView.java | 20 ++++++++-------- .../org/eehouse/android/xw4/ChatDelegate.java | 11 --------- .../src/org/eehouse/android/xw4/GameLock.java | 2 +- .../org/eehouse/android/xw4/GameUtils.java | 8 ------- .../android/xw4/GamesListDelegate.java | 23 +------------------ .../eehouse/android/xw4/OnBootReceiver.java | 2 +- .../eehouse/android/xw4/PrefsDelegate.java | 1 - .../org/eehouse/android/xw4/RelayService.java | 5 +--- .../android/xw4/SMSInviteDelegate.java | 3 --- .../org/eehouse/android/xw4/SMSService.java | 2 +- .../android/xw4/StudyListDelegate.java | 1 - .../src/org/eehouse/android/xw4/XWApp.java | 2 +- .../android/xw4/XWConnAddrPreference.java | 3 +-- 14 files changed, 17 insertions(+), 67 deletions(-) diff --git a/xwords4/android/XWords4/src/org/eehouse/android/xw4/BTService.java b/xwords4/android/XWords4/src/org/eehouse/android/xw4/BTService.java index fcc30c6a1..bf91cb636 100644 --- a/xwords4/android/XWords4/src/org/eehouse/android/xw4/BTService.java +++ b/xwords4/android/XWords4/src/org/eehouse/android/xw4/BTService.java @@ -53,7 +53,6 @@ import org.eehouse.android.xw4.jni.CommsAddrRec.CommsConnType; import org.eehouse.android.xw4.jni.CommsAddrRec; import org.eehouse.android.xw4.jni.LastMoveInfo; import org.eehouse.android.xw4.jni.XwJNI; -import org.eehouse.android.xw4.jni.JNIThread; import org.eehouse.android.xw4.loc.LocUtils; import org.eehouse.android.xw4.XWService.ReceiveResult; diff --git a/xwords4/android/XWords4/src/org/eehouse/android/xw4/BoardView.java b/xwords4/android/XWords4/src/org/eehouse/android/xw4/BoardView.java index b60b6d67a..dd3057465 100644 --- a/xwords4/android/XWords4/src/org/eehouse/android/xw4/BoardView.java +++ b/xwords4/android/XWords4/src/org/eehouse/android/xw4/BoardView.java @@ -155,7 +155,7 @@ public class BoardView extends View implements BoardHandler, SyncedDraw { if ( m_boardDlgt.isPortrait() != (m_dims.height > m_dims.width) ) { // square possible; will break above! Assert.assertTrue( m_dims.height != m_dims.width ); - DbgUtils.logf( "onMeasure: discarding m_dims" ); + DbgUtils.logdf( "onMeasure: discarding m_dims" ); if ( ++m_dimsTossCount < 4 ) { m_dims = null; m_layoutWidth = m_layoutHeight = 0; @@ -204,7 +204,7 @@ public class BoardView extends View implements BoardHandler, SyncedDraw { ConnStatusHandler.draw( m_context, canvas, getResources(), m_connTypes, m_isSolo ); } else { - DbgUtils.logf( "BoardView.onDraw(): board not laid out yet" ); + DbgUtils.logdf( "BoardView.onDraw(): board not laid out yet" ); } } } @@ -215,15 +215,15 @@ public class BoardView extends View implements BoardHandler, SyncedDraw { final int height = getHeight(); boolean layoutDone = width == m_layoutWidth && height == m_layoutHeight; if ( layoutDone ) { - DbgUtils.logf( "layoutBoardOnce(): layoutDone true" ); + DbgUtils.logdf( "layoutBoardOnce(): layoutDone true" ); } else if ( null == m_gi ) { // nothing to do either - DbgUtils.logf( "layoutBoardOnce(): no m_gi" ); + DbgUtils.logdf( "layoutBoardOnce(): no m_gi" ); } else if ( null == m_jniThread ) { // nothing to do either - DbgUtils.logf( "layoutBoardOnce(): no m_jniThread" ); + DbgUtils.logdf( "layoutBoardOnce(): no m_jniThread" ); } else if ( null == m_dims ) { - DbgUtils.logf( "layoutBoardOnce(): null m_dims" ); + DbgUtils.logdf( "layoutBoardOnce(): null m_dims" ); // m_canvas = null; // need to synchronize?? Paint paint = new Paint(); @@ -234,12 +234,12 @@ public class BoardView extends View implements BoardHandler, SyncedDraw { int timerWidth = scratch.width(); int fontWidth = Math.min(m_defaultFontHt, timerWidth / timerTxt.length()); - DbgUtils.logf( "layoutBoardOnce(): posting JNICmd.CMD_LAYOUT(w=%d, h=%d)", width, height ); + DbgUtils.logdf( "layoutBoardOnce(): posting JNICmd.CMD_LAYOUT(w=%d, h=%d)", width, height ); handle( JNIThread.JNICmd.CMD_LAYOUT, width, height, fontWidth, m_defaultFontHt ); // We'll be back.... } else { - DbgUtils.logf( "layoutBoardOnce(): DOING IT" ); + DbgUtils.logdf( "layoutBoardOnce(): DOING IT" ); // If board size has changed we need a new bitmap int bmHeight = 1 + m_dims.height; int bmWidth = 1 + m_dims.width; @@ -273,7 +273,7 @@ public class BoardView extends View implements BoardHandler, SyncedDraw { m_layoutHeight = height; layoutDone = true; } - DbgUtils.logf( "layoutBoardOnce()=>%b", layoutDone ); + DbgUtils.logdf( "layoutBoardOnce()=>%b", layoutDone ); return layoutDone; } // layoutBoardOnce @@ -286,7 +286,7 @@ public class BoardView extends View implements BoardHandler, SyncedDraw { public void startHandling( Activity parent, JNIThread thread, CommsConnTypeSet connTypes ) { - DbgUtils.logf( "BoardView.startHandling(thread=%H)", thread ); + DbgUtils.logdf( "BoardView.startHandling(thread=%H)", thread ); m_parent = parent; m_jniThread = thread; m_jniGamePtr = thread.getGamePtr(); diff --git a/xwords4/android/XWords4/src/org/eehouse/android/xw4/ChatDelegate.java b/xwords4/android/XWords4/src/org/eehouse/android/xw4/ChatDelegate.java index 724d9c801..e87a8bea7 100644 --- a/xwords4/android/XWords4/src/org/eehouse/android/xw4/ChatDelegate.java +++ b/xwords4/android/XWords4/src/org/eehouse/android/xw4/ChatDelegate.java @@ -66,7 +66,6 @@ public class ChatDelegate extends DelegateBase { @Override protected void init( Bundle savedInstanceState ) { - DbgUtils.logf( "ChatDelegate.init()" ); if ( BuildConstants.CHAT_SUPPORTED ) { m_edit = (EditText)findViewById( R.id.chat_edit ); m_edit.addTextChangedListener( new TextWatcher() { @@ -103,7 +102,6 @@ public class ChatDelegate extends DelegateBase { addRow( pair.msg, pair.playerIndx ); } } - // scrollDown(); String title = getString( R.string.chat_title_fmt, GameUtils.getName( m_activity, m_rowid ) ); @@ -193,16 +191,7 @@ public class ChatDelegate extends DelegateBase { m_edit.setText( null ); m_jniThreadRef.sendChat( text ); - // if ( null != jniThread ) { - // jniThread.handle( JNIThread.JNICmd.CMD_SENDCHAT, text ); - // } else { - // Intent result = new Intent(); - // result.putExtra( BoardDelegate.INTENT_KEY_CHAT, text ); - // setResult( Activity.RESULT_OK, result ); - // finish(); - // } } - // finish(); break; default: handled = false; diff --git a/xwords4/android/XWords4/src/org/eehouse/android/xw4/GameLock.java b/xwords4/android/XWords4/src/org/eehouse/android/xw4/GameLock.java index 5bb1b6add..cbb7b49ad 100644 --- a/xwords4/android/XWords4/src/org/eehouse/android/xw4/GameLock.java +++ b/xwords4/android/XWords4/src/org/eehouse/android/xw4/GameLock.java @@ -160,7 +160,7 @@ public class GameLock { if ( DEBUG_LOCKS ) { DbgUtils.logf( "lock %H overlocked", this ); } - Assert.fail(); // firing + Assert.fail(); } } // DbgUtils.logf( "GameLock.lock(%s) done", m_path ); diff --git a/xwords4/android/XWords4/src/org/eehouse/android/xw4/GameUtils.java b/xwords4/android/XWords4/src/org/eehouse/android/xw4/GameUtils.java index 16edf18ce..415f40c8d 100644 --- a/xwords4/android/XWords4/src/org/eehouse/android/xw4/GameUtils.java +++ b/xwords4/android/XWords4/src/org/eehouse/android/xw4/GameUtils.java @@ -1126,14 +1126,6 @@ public class GameUtils { return rint; } - // public static void postSelfNotification( Context context, long rowid ) - // { - // Assert.assertTrue( BuildConfig.DEBUG ); - // Intent intent = GamesListDelegate.makeRowidIntent( context, rowid ); - // Utils.postNotification( context, intent, "launch", - // String.format("%d", rowid), (int)rowid ); - // } - public static void postMoveNotification( Context context, long rowid, BackMoveResult bmr, boolean isTurnNow ) diff --git a/xwords4/android/XWords4/src/org/eehouse/android/xw4/GamesListDelegate.java b/xwords4/android/XWords4/src/org/eehouse/android/xw4/GamesListDelegate.java index 3ffb58498..8ebe41327 100644 --- a/xwords4/android/XWords4/src/org/eehouse/android/xw4/GamesListDelegate.java +++ b/xwords4/android/XWords4/src/org/eehouse/android/xw4/GamesListDelegate.java @@ -919,7 +919,6 @@ public class GamesListDelegate extends ListDelegateBase protected void init( Bundle savedInstanceState ) { m_origTitle = getTitle(); - Assert.assertTrue( m_origTitle.equals( getString(R.string.app_name) ) ); m_handler = new Handler(); // Next line useful if contents of DB are crashing app on start @@ -956,13 +955,6 @@ public class GamesListDelegate extends ListDelegateBase getDictForLangIf(); } // init - // protected View onCreateView( Bundle savedInstanceState ) - // { - // View result = inflate( R.layout.game_list ); - // // init( savedInstanceState ); - // return result; - // } - // called when we're brought to the front (probably as a result of // notification) protected void onNewIntent( Intent intent ) @@ -1101,13 +1093,11 @@ public class GamesListDelegate extends ListDelegateBase public void itemClicked( SelectableItem.LongClickHandler clicked, GameSummary summary ) { - DbgUtils.logf( "GamesListDelegate.itemClicked()" ); // We need a way to let the user get back to the basic-config // dialog in case it was dismissed. That way it to check for // an empty room name. if ( clicked instanceof GameListItem ) { long rowid = ((GameListItem)clicked).getRowID(); - DbgUtils.logf( "GamesListDelegate.itemClicked(%d)", rowid ); if ( ! m_launchedGames.contains( rowid ) ) { showNotAgainDlgThen( R.string.not_again_newselect, R.string.key_notagain_newselect, @@ -1325,7 +1315,7 @@ public class GamesListDelegate extends ListDelegateBase @Override public boolean onPrepareOptionsMenu( Menu menu ) { - int nGamesSelected = m_selGames.size(); // NPE! + int nGamesSelected = m_selGames.size(); int nGroupsSelected = m_selGroupIDs.size(); int groupCount = m_adapter.getGroupCount(); m_menuPrepared = 0 == nGamesSelected || 0 == nGroupsSelected; @@ -2276,12 +2266,6 @@ public class GamesListDelegate extends ListDelegateBase { boolean madeGame = DBUtils.ROWID_NOTFOUND != m_missingDictRowId; if ( madeGame ) { - // if ( R.id.games_game_reset == m_missingDictMenuId ) { - // long[] rowIDs = { m_missingDictRowId }; - // doConfirmReset( rowIDs ); - // } else { - // launchGame( m_missingDictRowId ); - // } // save in case checkWarnNoDict needs to set them long rowID = m_missingDictRowId; int menuID = m_missingDictMenuId; @@ -2300,10 +2284,6 @@ public class GamesListDelegate extends ListDelegateBase private void launchGame( long rowid, boolean invited ) { - // DbgUtils.logf( "launchGame(%d)", rowid ); - // if ( ! m_launchedGames.contains( rowid ) ) { - // m_launchedGames.add( rowid ); - // m_delegator.launchGame( rowid, invited ); if ( ! m_launchedGames.contains( rowid ) ) { m_launchedGames.add( rowid ); if ( m_adapter.inExpandedGroup( rowid ) ) { @@ -2339,7 +2319,6 @@ public class GamesListDelegate extends ListDelegateBase { GameSummary summary = (GameSummary)params[1]; long rowid = (Long)params[0]; - DbgUtils.logf( "GamesListDelegate.doOpenGame(%d)", rowid ); if ( summary.conTypes.contains( CommsAddrRec.CommsConnType.COMMS_CONN_RELAY ) && summary.roomName.length() == 0 ) { diff --git a/xwords4/android/XWords4/src/org/eehouse/android/xw4/OnBootReceiver.java b/xwords4/android/XWords4/src/org/eehouse/android/xw4/OnBootReceiver.java index 21ec664d8..875c77ee4 100644 --- a/xwords4/android/XWords4/src/org/eehouse/android/xw4/OnBootReceiver.java +++ b/xwords4/android/XWords4/src/org/eehouse/android/xw4/OnBootReceiver.java @@ -31,7 +31,7 @@ public class OnBootReceiver extends BroadcastReceiver { { if ( null != intent && null != intent.getAction() && intent.getAction().equals( Intent.ACTION_BOOT_COMPLETED ) ) { - DbgUtils.logf( "OnBootReceiver: got ACTION_BOOT_COMPLETED" ); + DbgUtils.logdf( "OnBootReceiver: got ACTION_BOOT_COMPLETED" ); startTimers( context ); } } diff --git a/xwords4/android/XWords4/src/org/eehouse/android/xw4/PrefsDelegate.java b/xwords4/android/XWords4/src/org/eehouse/android/xw4/PrefsDelegate.java index 943abdacc..d6c3dd342 100644 --- a/xwords4/android/XWords4/src/org/eehouse/android/xw4/PrefsDelegate.java +++ b/xwords4/android/XWords4/src/org/eehouse/android/xw4/PrefsDelegate.java @@ -240,7 +240,6 @@ public class PrefsDelegate extends DelegateBase @Override public void dlgButtonClicked( Action action, int button, Object[] params ) { - DbgUtils.logf( "PrefsDelegate.dlgButtonClicked(%s)", action.toString() ); boolean handled = AlertDialog.BUTTON_POSITIVE == button; if ( handled ) { switch ( action ) { diff --git a/xwords4/android/XWords4/src/org/eehouse/android/xw4/RelayService.java b/xwords4/android/XWords4/src/org/eehouse/android/xw4/RelayService.java index 9fe565c04..a70206322 100644 --- a/xwords4/android/XWords4/src/org/eehouse/android/xw4/RelayService.java +++ b/xwords4/android/XWords4/src/org/eehouse/android/xw4/RelayService.java @@ -555,7 +555,6 @@ public class RelayService extends XWService DatagramPacket packet = new DatagramPacket( buf, buf.length ); try { - Assert.assertTrue( relayEnabled( RelayService.this ) ); m_UDPSocket.receive( packet ); resetExitTimer(); gotPacket( packet ); @@ -583,8 +582,7 @@ public class RelayService extends XWService if ( null == m_UDPSocket ) { int port = XWPrefs.getDefaultRelayPort( this ); String host = XWPrefs.getDefaultRelayHost( this ); - try { - Assert.assertTrue( relayEnabled( this ) ); + try { m_UDPSocket = new DatagramSocket(); m_UDPSocket.setSoTimeout(30 * 1000); // timeout so we can log @@ -626,7 +624,6 @@ public class RelayService extends XWService } try { - Assert.assertTrue( relayEnabled( RelayService.this ) ); DatagramPacket outPacket = outData.assemble(); m_UDPSocket.send( outPacket ); int pid = outData.m_packetID; diff --git a/xwords4/android/XWords4/src/org/eehouse/android/xw4/SMSInviteDelegate.java b/xwords4/android/XWords4/src/org/eehouse/android/xw4/SMSInviteDelegate.java index 446a9d77d..53614f4db 100644 --- a/xwords4/android/XWords4/src/org/eehouse/android/xw4/SMSInviteDelegate.java +++ b/xwords4/android/XWords4/src/org/eehouse/android/xw4/SMSInviteDelegate.java @@ -85,9 +85,6 @@ public class SMSInviteDelegate extends InviteDelegate { protected void init( Bundle savedInstanceState ) { - // super.init( R.id.button_invite, R.id.button_add, - // R.id.button_clear, R.id.invite_desc, - // R.string.invite_sms_desc_fmt ); String msg = getString( R.string.button_invite ); msg = getQuantityString( R.plurals.invite_sms_desc_fmt, m_nMissing, m_nMissing, msg ); diff --git a/xwords4/android/XWords4/src/org/eehouse/android/xw4/SMSService.java b/xwords4/android/XWords4/src/org/eehouse/android/xw4/SMSService.java index a69d4c1d0..19d8ca28e 100644 --- a/xwords4/android/XWords4/src/org/eehouse/android/xw4/SMSService.java +++ b/xwords4/android/XWords4/src/org/eehouse/android/xw4/SMSService.java @@ -289,7 +289,7 @@ public class SMSService extends XWService { return s_showToasts; } - @Override // abstract + @Override protected MultiMsgSink getSink( long rowid ) { return new SMSMsgSink( this ); diff --git a/xwords4/android/XWords4/src/org/eehouse/android/xw4/StudyListDelegate.java b/xwords4/android/XWords4/src/org/eehouse/android/xw4/StudyListDelegate.java index 8d594e65c..77499b2ae 100644 --- a/xwords4/android/XWords4/src/org/eehouse/android/xw4/StudyListDelegate.java +++ b/xwords4/android/XWords4/src/org/eehouse/android/xw4/StudyListDelegate.java @@ -293,7 +293,6 @@ public class StudyListDelegate extends ListDelegateBase } } - DbgUtils.logf( "creating studylist adapter" ); ArrayAdapter adapter = new ArrayAdapter( m_activity, android.R.layout.simple_spinner_item, diff --git a/xwords4/android/XWords4/src/org/eehouse/android/xw4/XWApp.java b/xwords4/android/XWords4/src/org/eehouse/android/xw4/XWApp.java index 730167b0d..361394abb 100644 --- a/xwords4/android/XWords4/src/org/eehouse/android/xw4/XWApp.java +++ b/xwords4/android/XWords4/src/org/eehouse/android/xw4/XWApp.java @@ -38,7 +38,7 @@ public class XWApp extends Application { public static final boolean REMATCH_SUPPORTED = true; public static final boolean RELAYINVITE_SUPPORTED = false; public static final boolean ATTACH_SUPPORTED = false; - public static final boolean LOG_LIFECYLE = true; + public static final boolean LOG_LIFECYLE = false; public static final boolean DEBUG_EXP_TIMERS = false; public static final boolean GCM_IGNORED = false; public static final boolean UDP_ENABLED = true; diff --git a/xwords4/android/XWords4/src/org/eehouse/android/xw4/XWConnAddrPreference.java b/xwords4/android/XWords4/src/org/eehouse/android/xw4/XWConnAddrPreference.java index 53568ea01..bf4708324 100644 --- a/xwords4/android/XWords4/src/org/eehouse/android/xw4/XWConnAddrPreference.java +++ b/xwords4/android/XWords4/src/org/eehouse/android/xw4/XWConnAddrPreference.java @@ -61,7 +61,6 @@ public class XWConnAddrPreference extends DialogPreference { m_view.configure( XWPrefs.getAddrTypes( m_context ), new ConnViaViewLayout.CheckEnabledWarner() { public void warnDisabled( CommsConnType typ ) { - String msg; switch( typ ) { case COMMS_CONN_SMS: activity.showConfirmThen( R.string.warn_sms_disabled, @@ -75,7 +74,7 @@ public class XWConnAddrPreference extends DialogPreference { R.string.button_later, Action.ENABLE_BT_DO ); case COMMS_CONN_RELAY: - msg = LocUtils + String msg = LocUtils .getString( m_context, R.string .warn_relay_disabled ); msg += "\n\n" + LocUtils From 03492b97e83656355c337234ec4ef8eb2fbb3511 Mon Sep 17 00:00:00 2001 From: Eric House Date: Wed, 29 Jun 2016 07:01:08 -0700 Subject: [PATCH 02/86] fix doubled response to alert button: dismiss != negative --- .../XWords4/src/org/eehouse/android/xw4/BoardDelegate.java | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/xwords4/android/XWords4/src/org/eehouse/android/xw4/BoardDelegate.java b/xwords4/android/XWords4/src/org/eehouse/android/xw4/BoardDelegate.java index 805c4fd0b..f4c51da01 100644 --- a/xwords4/android/XWords4/src/org/eehouse/android/xw4/BoardDelegate.java +++ b/xwords4/android/XWords4/src/org/eehouse/android/xw4/BoardDelegate.java @@ -1036,13 +1036,14 @@ public class BoardDelegate extends DelegateBase { boolean handled = false; boolean positive = AlertDialog.BUTTON_POSITIVE == which; - DbgUtils.logf("BoardDelegate.dlgButtonClicked(%s, %b)", action.toString(), positive ); + DbgUtils.logdf("BoardDelegate.dlgButtonClicked(%s, %b)", action.toString(), positive ); if ( Action.ENABLE_RELAY_DO == action ) { - handled = true; if ( positive ) { + handled = true; RelayService.setEnabled( m_activity, true ); - } else { + } else if ( AlertDialog.BUTTON_NEGATIVE == which ) { + handled = true; // Things get very confused if askDropRelay() is called here. postDelayed( new Runnable() { public void run() { From a243b19fd054a670e2d94894c7f63f312bb7bfd1 Mon Sep 17 00:00:00 2001 From: Eric House Date: Thu, 30 Jun 2016 06:21:12 -0700 Subject: [PATCH 03/86] fix NPE when relay's re-added to a game --- .../src/org/eehouse/android/xw4/jni/CommsAddrRec.java | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/xwords4/android/XWords4/src/org/eehouse/android/xw4/jni/CommsAddrRec.java b/xwords4/android/XWords4/src/org/eehouse/android/xw4/jni/CommsAddrRec.java index 1859e5873..267e80871 100644 --- a/xwords4/android/XWords4/src/org/eehouse/android/xw4/jni/CommsAddrRec.java +++ b/xwords4/android/XWords4/src/org/eehouse/android/xw4/jni/CommsAddrRec.java @@ -289,9 +289,10 @@ public class CommsAddrRec { CommsConnType conType = iter.next(); switch( conType ) { case COMMS_CONN_RELAY: - matter = ! ip_relay_invite.equals( other.ip_relay_invite ) - || ! ip_relay_hostName.equals( other.ip_relay_hostName ) - || ip_relay_port != other.ip_relay_port; + matter = null == ip_relay_invite + || ! ip_relay_invite.equals( other.ip_relay_invite ) + || ! ip_relay_hostName.equals( other.ip_relay_hostName ) + || ip_relay_port != other.ip_relay_port; break; default: DbgUtils.logf( "changesMatter: not handling case: %s", From 2f71119eea79fd6e03b678af279f9bdc1526edf2 Mon Sep 17 00:00:00 2001 From: Eric House Date: Thu, 30 Jun 2016 06:54:36 -0700 Subject: [PATCH 04/86] add ability to skip including localization resources on per-language, per-variant basis. Just in case German isn't ready yet. --- xwords4/android/XWords4/archive/R.java | 19 +++++++------------ xwords4/android/XWords4/build.xml | 1 + xwords4/android/scripts/common_targets.xml | 7 +++++-- xwords4/android/scripts/copy-strings.py | 17 +++++++++++++++-- 4 files changed, 28 insertions(+), 16 deletions(-) diff --git a/xwords4/android/XWords4/archive/R.java b/xwords4/android/XWords4/archive/R.java index d618b6f46..154ddd9b5 100644 --- a/xwords4/android/XWords4/archive/R.java +++ b/xwords4/android/XWords4/archive/R.java @@ -1258,33 +1258,28 @@ XLATE-ME Text of menuitem in main games-list screen's menu DO NOT EDIT THIS FILE!!!! - It was generated (from res_src/values-ca/strings.xml). + It was generated (from res_src/values-ca/strings.xml, by copy-strings.py). Any changes you make to it will be lost. DO NOT EDIT THIS FILE!!!! - It was generated (from res_src/values-ja/strings.xml). + It was generated (from res_src/values-ja/strings.xml, by copy-strings.py). Any changes you make to it will be lost. DO NOT EDIT THIS FILE!!!! - It was generated (from res_src/values-de/strings.xml). - Any changes you make to it will be lost. - - - DO NOT EDIT THIS FILE!!!! - It was generated (from res_src/values-sk/strings.xml). + It was generated (from res_src/values-sk/strings.xml, by copy-strings.py). Any changes you make to it will be lost. Text of menuitem in main games-list screen's menu DO NOT EDIT THIS FILE!!!! - It was generated (from res_src/values-nl/strings.xml). + It was generated (from res_src/values-nl/strings.xml, by copy-strings.py). Any changes you make to it will be lost. DO NOT EDIT THIS FILE!!!! - It was generated (from res_src/values-fr/strings.xml). + It was generated (from res_src/values-fr/strings.xml, by copy-strings.py). Any changes you make to it will be lost. What is \u200C? English strings are used as keys, so they all @@ -1303,12 +1298,12 @@ XLATE-ME Text of menuitem in main games-list screen's menu DO NOT EDIT THIS FILE!!!! - It was generated (from res_src/values-cs/strings.xml). + It was generated (from res_src/values-cs/strings.xml, by copy-strings.py). Any changes you make to it will be lost. DO NOT EDIT THIS FILE!!!! - It was generated (from res_src/values-pt/strings.xml). + It was generated (from res_src/values-pt/strings.xml, by copy-strings.py). Any changes you make to it will be lost. diff --git a/xwords4/android/XWords4/build.xml b/xwords4/android/XWords4/build.xml index 4611718c1..cd38df2d2 100644 --- a/xwords4/android/XWords4/build.xml +++ b/xwords4/android/XWords4/build.xml @@ -58,6 +58,7 @@ + diff --git a/xwords4/android/scripts/common_targets.xml b/xwords4/android/scripts/common_targets.xml index d9081c737..03888756f 100644 --- a/xwords4/android/scripts/common_targets.xml +++ b/xwords4/android/scripts/common_targets.xml @@ -44,8 +44,11 @@ /> + failonerror="true" output="/dev/null" + > + + + ]' + sys.exit(1) + def sameOrSameWithPrefix( str1, str2 ): result = str1 == str2 if not result: @@ -126,7 +130,7 @@ def loadPlural(plural): return items def writeDoc(doc, src, dest): - comment = etree.Comment(sComment % (src)) + comment = etree.Comment(sComment % (src, os.path.basename(sys.argv[0]))) doc.getroot().insert( 0, comment ) dir = os.path.dirname( dest ) try: os.makedirs( dir ) @@ -182,6 +186,15 @@ def main(): excepts = ['values-ca_PS', 'values-ba_CK'] verboses = ['values-ja'] + try: + pairs, rest = getopt.getopt(sys.argv[1:], "k:") + for option, value in pairs: + if option == '-k': excepts += value.split(' ') + else: usage() + except: + print "Unexpected error:", sys.exc_info()[0] + usage() + # summarize the english file wd = os.path.dirname(sys.argv[0]) path = wd + '/../XWords4/res/values/strings.xml' From 624ec870f2fd0d6cb8522c208563a722af901e87 Mon Sep 17 00:00:00 2001 From: Eric House Date: Thu, 30 Jun 2016 07:01:30 -0700 Subject: [PATCH 05/86] clean up .gitignore files for localization stuff --- xwords4/android/XWords4-dbg/res/.gitignore | 1 + xwords4/android/XWords4-dbg/res/values-ca/.gitignore | 1 - xwords4/android/XWords4-dbg/res/values-cs/.gitignore | 1 - xwords4/android/XWords4-dbg/res/values-fr/.gitignore | 1 - xwords4/android/XWords4-dbg/res/values-ja/.gitignore | 1 - xwords4/android/XWords4-dbg/res/values-nl/.gitignore | 1 - xwords4/android/XWords4-dbg/res/values-pt/.gitignore | 1 - xwords4/android/XWords4-dbg/res/values-sk/.gitignore | 1 - xwords4/android/XWords4/res/.gitignore | 1 + xwords4/android/XWords4/res/values-ca/.gitignore | 1 - xwords4/android/XWords4/res/values-cs/.gitignore | 1 - xwords4/android/XWords4/res/values-fr/.gitignore | 2 -- xwords4/android/XWords4/res/values-ja/.gitignore | 1 - xwords4/android/XWords4/res/values-nl/.gitignore | 1 - xwords4/android/XWords4/res/values-pt/.gitignore | 1 - xwords4/android/XWords4/res/values-sk/.gitignore | 1 - 16 files changed, 2 insertions(+), 15 deletions(-) create mode 100644 xwords4/android/XWords4-dbg/res/.gitignore delete mode 100644 xwords4/android/XWords4-dbg/res/values-ca/.gitignore delete mode 100644 xwords4/android/XWords4-dbg/res/values-cs/.gitignore delete mode 100644 xwords4/android/XWords4-dbg/res/values-fr/.gitignore delete mode 100644 xwords4/android/XWords4-dbg/res/values-ja/.gitignore delete mode 100644 xwords4/android/XWords4-dbg/res/values-nl/.gitignore delete mode 100644 xwords4/android/XWords4-dbg/res/values-pt/.gitignore delete mode 100644 xwords4/android/XWords4-dbg/res/values-sk/.gitignore create mode 100644 xwords4/android/XWords4/res/.gitignore delete mode 100644 xwords4/android/XWords4/res/values-ca/.gitignore delete mode 100644 xwords4/android/XWords4/res/values-cs/.gitignore delete mode 100644 xwords4/android/XWords4/res/values-fr/.gitignore delete mode 100644 xwords4/android/XWords4/res/values-ja/.gitignore delete mode 100644 xwords4/android/XWords4/res/values-nl/.gitignore delete mode 100644 xwords4/android/XWords4/res/values-pt/.gitignore delete mode 100644 xwords4/android/XWords4/res/values-sk/.gitignore diff --git a/xwords4/android/XWords4-dbg/res/.gitignore b/xwords4/android/XWords4-dbg/res/.gitignore new file mode 100644 index 000000000..1e3315a64 --- /dev/null +++ b/xwords4/android/XWords4-dbg/res/.gitignore @@ -0,0 +1 @@ +values-??/strings.xml diff --git a/xwords4/android/XWords4-dbg/res/values-ca/.gitignore b/xwords4/android/XWords4-dbg/res/values-ca/.gitignore deleted file mode 100644 index be5186f01..000000000 --- a/xwords4/android/XWords4-dbg/res/values-ca/.gitignore +++ /dev/null @@ -1 +0,0 @@ -strings.xml diff --git a/xwords4/android/XWords4-dbg/res/values-cs/.gitignore b/xwords4/android/XWords4-dbg/res/values-cs/.gitignore deleted file mode 100644 index be5186f01..000000000 --- a/xwords4/android/XWords4-dbg/res/values-cs/.gitignore +++ /dev/null @@ -1 +0,0 @@ -strings.xml diff --git a/xwords4/android/XWords4-dbg/res/values-fr/.gitignore b/xwords4/android/XWords4-dbg/res/values-fr/.gitignore deleted file mode 100644 index be5186f01..000000000 --- a/xwords4/android/XWords4-dbg/res/values-fr/.gitignore +++ /dev/null @@ -1 +0,0 @@ -strings.xml diff --git a/xwords4/android/XWords4-dbg/res/values-ja/.gitignore b/xwords4/android/XWords4-dbg/res/values-ja/.gitignore deleted file mode 100644 index be5186f01..000000000 --- a/xwords4/android/XWords4-dbg/res/values-ja/.gitignore +++ /dev/null @@ -1 +0,0 @@ -strings.xml diff --git a/xwords4/android/XWords4-dbg/res/values-nl/.gitignore b/xwords4/android/XWords4-dbg/res/values-nl/.gitignore deleted file mode 100644 index be5186f01..000000000 --- a/xwords4/android/XWords4-dbg/res/values-nl/.gitignore +++ /dev/null @@ -1 +0,0 @@ -strings.xml diff --git a/xwords4/android/XWords4-dbg/res/values-pt/.gitignore b/xwords4/android/XWords4-dbg/res/values-pt/.gitignore deleted file mode 100644 index be5186f01..000000000 --- a/xwords4/android/XWords4-dbg/res/values-pt/.gitignore +++ /dev/null @@ -1 +0,0 @@ -strings.xml diff --git a/xwords4/android/XWords4-dbg/res/values-sk/.gitignore b/xwords4/android/XWords4-dbg/res/values-sk/.gitignore deleted file mode 100644 index be5186f01..000000000 --- a/xwords4/android/XWords4-dbg/res/values-sk/.gitignore +++ /dev/null @@ -1 +0,0 @@ -strings.xml diff --git a/xwords4/android/XWords4/res/.gitignore b/xwords4/android/XWords4/res/.gitignore new file mode 100644 index 000000000..1e3315a64 --- /dev/null +++ b/xwords4/android/XWords4/res/.gitignore @@ -0,0 +1 @@ +values-??/strings.xml diff --git a/xwords4/android/XWords4/res/values-ca/.gitignore b/xwords4/android/XWords4/res/values-ca/.gitignore deleted file mode 100644 index be5186f01..000000000 --- a/xwords4/android/XWords4/res/values-ca/.gitignore +++ /dev/null @@ -1 +0,0 @@ -strings.xml diff --git a/xwords4/android/XWords4/res/values-cs/.gitignore b/xwords4/android/XWords4/res/values-cs/.gitignore deleted file mode 100644 index be5186f01..000000000 --- a/xwords4/android/XWords4/res/values-cs/.gitignore +++ /dev/null @@ -1 +0,0 @@ -strings.xml diff --git a/xwords4/android/XWords4/res/values-fr/.gitignore b/xwords4/android/XWords4/res/values-fr/.gitignore deleted file mode 100644 index aa5ea40dd..000000000 --- a/xwords4/android/XWords4/res/values-fr/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -/strings.xml -strings.xml diff --git a/xwords4/android/XWords4/res/values-ja/.gitignore b/xwords4/android/XWords4/res/values-ja/.gitignore deleted file mode 100644 index be5186f01..000000000 --- a/xwords4/android/XWords4/res/values-ja/.gitignore +++ /dev/null @@ -1 +0,0 @@ -strings.xml diff --git a/xwords4/android/XWords4/res/values-nl/.gitignore b/xwords4/android/XWords4/res/values-nl/.gitignore deleted file mode 100644 index be5186f01..000000000 --- a/xwords4/android/XWords4/res/values-nl/.gitignore +++ /dev/null @@ -1 +0,0 @@ -strings.xml diff --git a/xwords4/android/XWords4/res/values-pt/.gitignore b/xwords4/android/XWords4/res/values-pt/.gitignore deleted file mode 100644 index be5186f01..000000000 --- a/xwords4/android/XWords4/res/values-pt/.gitignore +++ /dev/null @@ -1 +0,0 @@ -strings.xml diff --git a/xwords4/android/XWords4/res/values-sk/.gitignore b/xwords4/android/XWords4/res/values-sk/.gitignore deleted file mode 100644 index be5186f01..000000000 --- a/xwords4/android/XWords4/res/values-sk/.gitignore +++ /dev/null @@ -1 +0,0 @@ -strings.xml From 446663ea869c462b98117177a24fdac69c35d8cd Mon Sep 17 00:00:00 2001 From: Eric House Date: Thu, 30 Jun 2016 07:15:21 -0700 Subject: [PATCH 06/86] update to new gradle plugin as recommended/generated by AS --- .gitignore | 1 + xwords4/android/XWords4/build.gradle | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index 44e0dd6a3..be2d67960 100644 --- a/.gitignore +++ b/.gitignore @@ -8,3 +8,4 @@ core* xwords_4.4.0.0* gcm_loop.shelf nohup.out +/xwords4/android/XWords4-dbg/src/xw4dbg/assets/gitvers.txt diff --git a/xwords4/android/XWords4/build.gradle b/xwords4/android/XWords4/build.gradle index bc13a3dc6..dda53eecf 100644 --- a/xwords4/android/XWords4/build.gradle +++ b/xwords4/android/XWords4/build.gradle @@ -5,7 +5,7 @@ buildscript { jcenter() } dependencies { - classpath 'com.android.tools.build:gradle:2.1.0' + classpath 'com.android.tools.build:gradle:2.1.2' // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files From 1a6f5842c6d9742d8376036647fa484c61d323ec Mon Sep 17 00:00:00 2001 From: Eric House Date: Thu, 30 Jun 2016 08:01:58 -0700 Subject: [PATCH 07/86] wait for dismissal of one alert before posting another. There really needs to be some sort of queuing built into DlgDelegate, but for now just handle in this one place. --- .../src/org/eehouse/android/xw4/BoardDelegate.java | 12 +++++++----- .../src/org/eehouse/android/xw4/DlgDelegate.java | 1 + 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/xwords4/android/XWords4/src/org/eehouse/android/xw4/BoardDelegate.java b/xwords4/android/XWords4/src/org/eehouse/android/xw4/BoardDelegate.java index f4c51da01..7d207229d 100644 --- a/xwords4/android/XWords4/src/org/eehouse/android/xw4/BoardDelegate.java +++ b/xwords4/android/XWords4/src/org/eehouse/android/xw4/BoardDelegate.java @@ -141,6 +141,7 @@ public class BoardDelegate extends DelegateBase private int m_nGuestDevs = -1; private boolean m_haveInvited = false; private boolean m_overNotShown; + private boolean m_dropOnDismiss; public class TimerRunnable implements Runnable { private int m_why; @@ -1038,13 +1039,13 @@ public class BoardDelegate extends DelegateBase boolean positive = AlertDialog.BUTTON_POSITIVE == which; DbgUtils.logdf("BoardDelegate.dlgButtonClicked(%s, %b)", action.toString(), positive ); - if ( Action.ENABLE_RELAY_DO == action ) { + if ( Action.ENABLE_RELAY_DO_OR == action ) { + handled = true; if ( positive ) { - handled = true; RelayService.setEnabled( m_activity, true ); } else if ( AlertDialog.BUTTON_NEGATIVE == which ) { - handled = true; - // Things get very confused if askDropRelay() is called here. + m_dropOnDismiss = true; + } else if ( DlgDelegate.DISMISS_BUTTON == which && m_dropOnDismiss ) { postDelayed( new Runnable() { public void run() { askDropRelay(); @@ -2391,11 +2392,12 @@ public class BoardDelegate extends DelegateBase } if ( m_connTypes.contains( CommsConnType.COMMS_CONN_RELAY ) ) { if ( !RelayService.relayEnabled( m_activity ) ) { + m_dropOnDismiss = false; String msg = getString( R.string.warn_relay_disabled ) + "\n\n" + getString( R.string.warn_relay_remove ); showConfirmThen( msg, R.string.button_enable_relay, R.string.newgame_drop_relay, - Action.ENABLE_RELAY_DO ); + Action.ENABLE_RELAY_DO_OR ); } } } diff --git a/xwords4/android/XWords4/src/org/eehouse/android/xw4/DlgDelegate.java b/xwords4/android/XWords4/src/org/eehouse/android/xw4/DlgDelegate.java index 8bc0e61a4..71685c353 100644 --- a/xwords4/android/XWords4/src/org/eehouse/android/xw4/DlgDelegate.java +++ b/xwords4/android/XWords4/src/org/eehouse/android/xw4/DlgDelegate.java @@ -122,6 +122,7 @@ public class DlgDelegate { ENABLE_SMS_DO, ENABLE_BT_DO, ENABLE_RELAY_DO, + ENABLE_RELAY_DO_OR, DISABLE_RELAY_DO, } From 88d8e616202f28f5f2492aa10b9d4476f6edbb20 Mon Sep 17 00:00:00 2001 From: Eric House Date: Sat, 2 Jul 2016 12:28:57 -0700 Subject: [PATCH 08/86] cleanup; tweak string --- xwords4/android/XWords4/res/values/strings.xml | 3 ++- xwords4/android/XWords4/res_src/values-ba_CK/strings.xml | 3 ++- xwords4/android/XWords4/res_src/values-ca_PS/strings.xml | 3 ++- .../XWords4/src/org/eehouse/android/xw4/BoardView.java | 7 ------- 4 files changed, 6 insertions(+), 10 deletions(-) diff --git a/xwords4/android/XWords4/res/values/strings.xml b/xwords4/android/XWords4/res/values/strings.xml index c9391da51..085113435 100644 --- a/xwords4/android/XWords4/res/values/strings.xml +++ b/xwords4/android/XWords4/res/values/strings.xml @@ -1095,7 +1095,8 @@ tapping. --> Disable crosshairs - Do not visually indicate which board cell is touched + Do not show which board + cell is touched Network game settings diff --git a/xwords4/android/XWords4/res_src/values-ba_CK/strings.xml b/xwords4/android/XWords4/res_src/values-ba_CK/strings.xml index f80d6e3a4..d95d8c7fa 100644 --- a/xwords4/android/XWords4/res_src/values-ba_CK/strings.xml +++ b/xwords4/android/XWords4/res_src/values-ba_CK/strings.xml @@ -943,7 +943,8 @@ tapping. --> Elbasid sriahssorc - Od ton yllausiv etacidni hcihw draob llec si dehcuot + Od ton wohs hcihw draob + llec si dehcuot Krowten emag sgnittes Sgnittes taht ylppa ot diff --git a/xwords4/android/XWords4/res_src/values-ca_PS/strings.xml b/xwords4/android/XWords4/res_src/values-ca_PS/strings.xml index 9d4895b01..4655db424 100644 --- a/xwords4/android/XWords4/res_src/values-ca_PS/strings.xml +++ b/xwords4/android/XWords4/res_src/values-ca_PS/strings.xml @@ -943,7 +943,8 @@ tapping. --> DISABLE CROSSHAIRS - DO NOT VISUALLY INDICATE WHICH BOARD CELL IS TOUCHED + DO NOT SHOW WHICH BOARD + CELL IS TOUCHED NETWORK GAME SETTINGS SETTINGS THAT APPLY TO diff --git a/xwords4/android/XWords4/src/org/eehouse/android/xw4/BoardView.java b/xwords4/android/XWords4/src/org/eehouse/android/xw4/BoardView.java index dd3057465..bdce2cc09 100644 --- a/xwords4/android/XWords4/src/org/eehouse/android/xw4/BoardView.java +++ b/xwords4/android/XWords4/src/org/eehouse/android/xw4/BoardView.java @@ -22,21 +22,14 @@ package org.eehouse.android.xw4; import android.app.Activity; import android.content.Context; -import android.content.res.Resources; import android.graphics.Bitmap; import android.graphics.Canvas; -import android.graphics.Paint.FontMetricsInt; import android.graphics.Paint; import android.graphics.Rect; -import android.graphics.drawable.BitmapDrawable; -import android.graphics.drawable.Drawable; -import android.os.Build; import android.util.AttributeSet; import android.util.FloatMath; import android.view.MotionEvent; import android.view.View; -import java.nio.IntBuffer; -import java.util.Set; import org.eehouse.android.xw4.jni.*; import org.eehouse.android.xw4.jni.CommsAddrRec.CommsConnTypeSet; From 68df61daa8f5e8051f953cb2011e5240b55bba0a Mon Sep 17 00:00:00 2001 From: Eric House Date: Sat, 2 Jul 2016 12:29:16 -0700 Subject: [PATCH 09/86] fix crash on old device by using new API conditionally --- .../org/eehouse/android/xw4/ChatDelegate.java | 22 +++++++++++-------- 1 file changed, 13 insertions(+), 9 deletions(-) diff --git a/xwords4/android/XWords4/src/org/eehouse/android/xw4/ChatDelegate.java b/xwords4/android/XWords4/src/org/eehouse/android/xw4/ChatDelegate.java index e87a8bea7..90bc003c7 100644 --- a/xwords4/android/XWords4/src/org/eehouse/android/xw4/ChatDelegate.java +++ b/xwords4/android/XWords4/src/org/eehouse/android/xw4/ChatDelegate.java @@ -86,14 +86,18 @@ public class ChatDelegate extends DelegateBase { m_scroll = (ScrollView)findViewById( R.id.scroll ); m_layout = (TableLayout)findViewById( R.id.chat_history ); - m_layout.addOnLayoutChangeListener( new OnLayoutChangeListener() { - @Override - public void onLayoutChange( View vv, int ll, int tt, int rr, - int bb, int ol, int ot, - int or, int ob ) { - scrollDown(); - } - }); + + // OnLayoutChangeListener added in API 11 + if ( 11 <= Integer.valueOf( android.os.Build.VERSION.SDK ) ) { + m_layout.addOnLayoutChangeListener( new OnLayoutChangeListener() { + @Override + public void onLayoutChange( View vv, int ll, int tt, int rr, + int bb, int ol, int ot, + int or, int ob ) { + scrollDown(); + } + }); + } DBUtils.HistoryPair[] pairs = DBUtils.getChatHistory( m_activity, m_rowid, locals ); @@ -110,7 +114,7 @@ public class ChatDelegate extends DelegateBase { // Should really assert.... finish(); } - } + } // init @Override protected void onResume() From f05375273c9c9b3e9eb5c74727afcc7a0516fc68 Mon Sep 17 00:00:00 2001 From: Eric House Date: Sat, 2 Jul 2016 12:54:04 -0700 Subject: [PATCH 10/86] add send button to right of chat entry field for devices that don't have action bar. --- xwords4/android/XWords4/archive/R.java | 385 +++++++++--------- xwords4/android/XWords4/res/layout/chat.xml | 26 +- .../org/eehouse/android/xw4/ChatDelegate.java | 38 +- 3 files changed, 239 insertions(+), 210 deletions(-) diff --git a/xwords4/android/XWords4/archive/R.java b/xwords4/android/XWords4/archive/R.java index 154ddd9b5..d993b43f2 100644 --- a/xwords4/android/XWords4/archive/R.java +++ b/xwords4/android/XWords4/archive/R.java @@ -85,215 +85,216 @@ public final class R { } public static final class id { public static final int about_xlator=0x7f0b0001; - public static final int add_player=0x7f0b0033; - public static final int advertise_new_room_check=0x7f0b003a; - public static final int blessed_label=0x7f0b005a; - public static final int board_menu_chat=0x7f0b00a3; - public static final int board_menu_dict=0x7f0b009f; - public static final int board_menu_done=0x7f0b0089; - public static final int board_menu_file_prefs=0x7f0b0096; - public static final int board_menu_flip=0x7f0b00a1; - public static final int board_menu_game_counts=0x7f0b008f; - public static final int board_menu_game_history=0x7f0b0091; - public static final int board_menu_game_invites=0x7f0b0098; - public static final int board_menu_game_left=0x7f0b0090; - public static final int board_menu_game_netstats=0x7f0b0097; - public static final int board_menu_game_resend=0x7f0b0093; - public static final int board_menu_game_resign=0x7f0b0092; - public static final int board_menu_hint_next=0x7f0b009d; - public static final int board_menu_hint_prev=0x7f0b009c; - public static final int board_menu_invite=0x7f0b0099; - public static final int board_menu_juggle=0x7f0b00a0; - public static final int board_menu_rematch=0x7f0b0088; - public static final int board_menu_toggle=0x7f0b00a4; - public static final int board_menu_trade=0x7f0b008a; - public static final int board_menu_trade_cancel=0x7f0b008b; - public static final int board_menu_trade_commit=0x7f0b008c; - public static final int board_menu_tray=0x7f0b008e; - public static final int board_menu_undo_current=0x7f0b009e; - public static final int board_menu_undo_last=0x7f0b008d; - public static final int board_menu_zoom=0x7f0b00a2; + public static final int add_player=0x7f0b0034; + public static final int advertise_new_room_check=0x7f0b003b; + public static final int blessed_label=0x7f0b005b; + public static final int board_menu_chat=0x7f0b00a4; + public static final int board_menu_dict=0x7f0b00a0; + public static final int board_menu_done=0x7f0b008a; + public static final int board_menu_file_prefs=0x7f0b0097; + public static final int board_menu_flip=0x7f0b00a2; + public static final int board_menu_game_counts=0x7f0b0090; + public static final int board_menu_game_history=0x7f0b0092; + public static final int board_menu_game_invites=0x7f0b0099; + public static final int board_menu_game_left=0x7f0b0091; + public static final int board_menu_game_netstats=0x7f0b0098; + public static final int board_menu_game_resend=0x7f0b0094; + public static final int board_menu_game_resign=0x7f0b0093; + public static final int board_menu_hint_next=0x7f0b009e; + public static final int board_menu_hint_prev=0x7f0b009d; + public static final int board_menu_invite=0x7f0b009a; + public static final int board_menu_juggle=0x7f0b00a1; + public static final int board_menu_rematch=0x7f0b0089; + public static final int board_menu_toggle=0x7f0b00a5; + public static final int board_menu_trade=0x7f0b008b; + public static final int board_menu_trade_cancel=0x7f0b008c; + public static final int board_menu_trade_commit=0x7f0b008d; + public static final int board_menu_tray=0x7f0b008f; + public static final int board_menu_undo_current=0x7f0b009f; + public static final int board_menu_undo_last=0x7f0b008e; + public static final int board_menu_zoom=0x7f0b00a3; public static final int board_root=0x7f0b0002; public static final int board_view=0x7f0b0003; - public static final int boardsize_spinner=0x7f0b0046; - public static final int button_add=0x7f0b0074; + public static final int boardsize_spinner=0x7f0b0047; + public static final int button_add=0x7f0b0075; public static final int button_clear=0x7f0b000b; - public static final int button_done=0x7f0b0065; + public static final int button_done=0x7f0b0066; public static final int button_invite=0x7f0b000c; - public static final int button_newgame_multi=0x7f0b0048; - public static final int button_newgame_solo=0x7f0b0047; + public static final int button_newgame_multi=0x7f0b0049; + public static final int button_newgame_solo=0x7f0b0048; public static final int button_rescan=0x7f0b000a; - public static final int button_study=0x7f0b0064; - public static final int change_connection=0x7f0b003e; - public static final int chat_button=0x7f0b0083; + public static final int button_study=0x7f0b0065; + public static final int change_connection=0x7f0b003f; + public static final int chat_button=0x7f0b0084; public static final int chat_edit=0x7f0b0011; public static final int chat_history=0x7f0b0010; - public static final int chat_menu_clear=0x7f0b00a6; - public static final int chat_menu_send=0x7f0b00a5; - public static final int chat_row_name=0x7f0b0012; - public static final int chat_row_text=0x7f0b0013; - public static final int checkbox=0x7f0b0054; - public static final int color_display_sample=0x7f0b0014; - public static final int color_edit_sample=0x7f0b0015; - public static final int confirm_sms_reasons=0x7f0b001c; - public static final int conn_types=0x7f0b001d; - public static final int connect_set_relay=0x7f0b0036; - public static final int conns_label=0x7f0b0035; - public static final int default_check=0x7f0b001e; - public static final int del=0x7f0b0057; - public static final int desc=0x7f0b0021; - public static final int details=0x7f0b0075; - public static final int dict_label=0x7f0b006c; - public static final int dict_spinner=0x7f0b0030; - public static final int dictlist_button=0x7f0b0082; - public static final int dicts_delete=0x7f0b00a9; - public static final int dicts_deselect_all=0x7f0b00a8; - public static final int dicts_download=0x7f0b00a7; - public static final int dicts_move=0x7f0b00aa; - public static final int dicts_select=0x7f0b00ab; - public static final int divider=0x7f0b0026; - public static final int download_button=0x7f0b0076; - public static final int dwnld_message=0x7f0b0052; - public static final int edit=0x7f0b0066; - public static final int edit_blue=0x7f0b001b; - public static final int edit_green=0x7f0b0019; - public static final int edit_red=0x7f0b0017; - public static final int english_label=0x7f0b0058; - public static final int english_view=0x7f0b0059; + public static final int chat_menu_clear=0x7f0b00a7; + public static final int chat_menu_send=0x7f0b00a6; + public static final int chat_row_name=0x7f0b0013; + public static final int chat_row_text=0x7f0b0014; + public static final int chat_send=0x7f0b0012; + public static final int checkbox=0x7f0b0055; + public static final int color_display_sample=0x7f0b0015; + public static final int color_edit_sample=0x7f0b0016; + public static final int confirm_sms_reasons=0x7f0b001d; + public static final int conn_types=0x7f0b001e; + public static final int connect_set_relay=0x7f0b0037; + public static final int conns_label=0x7f0b0036; + public static final int default_check=0x7f0b001f; + public static final int del=0x7f0b0058; + public static final int desc=0x7f0b0022; + public static final int details=0x7f0b0076; + public static final int dict_label=0x7f0b006d; + public static final int dict_spinner=0x7f0b0031; + public static final int dictlist_button=0x7f0b0083; + public static final int dicts_delete=0x7f0b00aa; + public static final int dicts_deselect_all=0x7f0b00a9; + public static final int dicts_download=0x7f0b00a8; + public static final int dicts_move=0x7f0b00ab; + public static final int dicts_select=0x7f0b00ac; + public static final int divider=0x7f0b0027; + public static final int download_button=0x7f0b0077; + public static final int dwnld_message=0x7f0b0053; + public static final int edit=0x7f0b0067; + public static final int edit_blue=0x7f0b001c; + public static final int edit_green=0x7f0b001a; + public static final int edit_red=0x7f0b0018; + public static final int english_label=0x7f0b0059; + public static final int english_view=0x7f0b005a; public static final int exchange_buttons=0x7f0b0004; public static final int exchange_cancel=0x7f0b0006; public static final int exchange_commit=0x7f0b0005; - public static final int expander=0x7f0b0028; - public static final int filters=0x7f0b005f; - public static final int flip_button=0x7f0b0085; - public static final int game_locked_check=0x7f0b002b; - public static final int game_name=0x7f0b0049; - public static final int gamel_menu_checkmoves=0x7f0b0095; - public static final int games_game_config=0x7f0b00ae; - public static final int games_game_copy=0x7f0b00b3; - public static final int games_game_delete=0x7f0b00ac; - public static final int games_game_deselect=0x7f0b00b5; - public static final int games_game_invites=0x7f0b00b6; - public static final int games_game_move=0x7f0b00af; - public static final int games_game_new_from=0x7f0b00b1; - public static final int games_game_rematch=0x7f0b00ad; - public static final int games_game_rename=0x7f0b00b2; - public static final int games_game_reset=0x7f0b00b0; - public static final int games_game_select=0x7f0b00b4; - public static final int games_group_default=0x7f0b00ba; - public static final int games_group_delete=0x7f0b00b9; - public static final int games_group_movedown=0x7f0b00b8; - public static final int games_group_moveup=0x7f0b00b7; - public static final int games_group_rename=0x7f0b00bb; - public static final int games_menu_about=0x7f0b00c3; - public static final int games_menu_checkmoves=0x7f0b00c5; - public static final int games_menu_checkupdates=0x7f0b00c6; - public static final int games_menu_dicts=0x7f0b00c1; - public static final int games_menu_email=0x7f0b00c2; - public static final int games_menu_loaddb=0x7f0b00c8; - public static final int games_menu_newgame_net=0x7f0b00bd; - public static final int games_menu_newgame_solo=0x7f0b00bc; - public static final int games_menu_newgroup=0x7f0b00be; - public static final int games_menu_prefs=0x7f0b00bf; - public static final int games_menu_rateme=0x7f0b00c0; - public static final int games_menu_resend=0x7f0b00c4; - public static final int games_menu_storedb=0x7f0b00c7; - public static final int games_menu_study=0x7f0b0094; - public static final int group_done=0x7f0b0087; - public static final int group_exchange=0x7f0b009a; - public static final int group_hint=0x7f0b009b; - public static final int hideable=0x7f0b004e; - public static final int hints_allowed=0x7f0b003f; + public static final int expander=0x7f0b0029; + public static final int filters=0x7f0b0060; + public static final int flip_button=0x7f0b0086; + public static final int game_locked_check=0x7f0b002c; + public static final int game_name=0x7f0b004a; + public static final int gamel_menu_checkmoves=0x7f0b0096; + public static final int games_game_config=0x7f0b00af; + public static final int games_game_copy=0x7f0b00b4; + public static final int games_game_delete=0x7f0b00ad; + public static final int games_game_deselect=0x7f0b00b6; + public static final int games_game_invites=0x7f0b00b7; + public static final int games_game_move=0x7f0b00b0; + public static final int games_game_new_from=0x7f0b00b2; + public static final int games_game_rematch=0x7f0b00ae; + public static final int games_game_rename=0x7f0b00b3; + public static final int games_game_reset=0x7f0b00b1; + public static final int games_game_select=0x7f0b00b5; + public static final int games_group_default=0x7f0b00bb; + public static final int games_group_delete=0x7f0b00ba; + public static final int games_group_movedown=0x7f0b00b9; + public static final int games_group_moveup=0x7f0b00b8; + public static final int games_group_rename=0x7f0b00bc; + public static final int games_menu_about=0x7f0b00c4; + public static final int games_menu_checkmoves=0x7f0b00c6; + public static final int games_menu_checkupdates=0x7f0b00c7; + public static final int games_menu_dicts=0x7f0b00c2; + public static final int games_menu_email=0x7f0b00c3; + public static final int games_menu_loaddb=0x7f0b00c9; + public static final int games_menu_newgame_net=0x7f0b00be; + public static final int games_menu_newgame_solo=0x7f0b00bd; + public static final int games_menu_newgroup=0x7f0b00bf; + public static final int games_menu_prefs=0x7f0b00c0; + public static final int games_menu_rateme=0x7f0b00c1; + public static final int games_menu_resend=0x7f0b00c5; + public static final int games_menu_storedb=0x7f0b00c8; + public static final int games_menu_study=0x7f0b0095; + public static final int group_done=0x7f0b0088; + public static final int group_exchange=0x7f0b009b; + public static final int group_hint=0x7f0b009c; + public static final int hideable=0x7f0b004f; + public static final int hints_allowed=0x7f0b0040; public static final int invite_desc=0x7f0b0009; public static final int inviter_check=0x7f0b000d; - public static final int item_name=0x7f0b0070; - public static final int item_score=0x7f0b0071; - public static final int join_public_room_check=0x7f0b0037; - public static final int juggle_players=0x7f0b0034; - public static final int label=0x7f0b0027; - public static final int lang_separator=0x7f0b002e; - public static final int lang_spinner=0x7f0b002f; - public static final int loc_item_check=0x7f0b00ca; - public static final int loc_item_clear=0x7f0b00c9; - public static final int loc_item_copy_bless=0x7f0b00cc; - public static final int loc_item_copy_eng=0x7f0b00cb; - public static final int loc_search_button=0x7f0b0061; - public static final int loc_search_field=0x7f0b0060; - public static final int local_label=0x7f0b005c; - public static final int local_player_set=0x7f0b006a; - public static final int main_container=0x7f0b002a; - public static final int manual_add_button=0x7f0b0078; - public static final int modtime=0x7f0b004f; - public static final int msg=0x7f0b0067; - public static final int msg_marker=0x7f0b004c; - public static final int name=0x7f0b0079; - public static final int name_edit=0x7f0b001f; - public static final int name_label=0x7f0b0077; - public static final int nexthint_button=0x7f0b007f; - public static final int not_again_check=0x7f0b0068; + public static final int item_name=0x7f0b0071; + public static final int item_score=0x7f0b0072; + public static final int join_public_room_check=0x7f0b0038; + public static final int juggle_players=0x7f0b0035; + public static final int label=0x7f0b0028; + public static final int lang_separator=0x7f0b002f; + public static final int lang_spinner=0x7f0b0030; + public static final int loc_item_check=0x7f0b00cb; + public static final int loc_item_clear=0x7f0b00ca; + public static final int loc_item_copy_bless=0x7f0b00cd; + public static final int loc_item_copy_eng=0x7f0b00cc; + public static final int loc_search_button=0x7f0b0062; + public static final int loc_search_field=0x7f0b0061; + public static final int local_label=0x7f0b005d; + public static final int local_player_set=0x7f0b006b; + public static final int main_container=0x7f0b002b; + public static final int manual_add_button=0x7f0b0079; + public static final int modtime=0x7f0b0050; + public static final int msg=0x7f0b0068; + public static final int msg_marker=0x7f0b004d; + public static final int name=0x7f0b007a; + public static final int name_edit=0x7f0b0020; + public static final int name_label=0x7f0b0078; + public static final int nexthint_button=0x7f0b0080; + public static final int not_again_check=0x7f0b0069; public static final int nperdev_spinner=0x7f0b000e; - public static final int number=0x7f0b007a; - public static final int other_lang=0x7f0b0062; - public static final int password_edit=0x7f0b006f; - public static final int password_set=0x7f0b006e; - public static final int phonies_spinner=0x7f0b0044; - public static final int pick_faceup=0x7f0b0045; - public static final int pick_lang=0x7f0b007b; - public static final int pick_lang_spinner=0x7f0b007c; - public static final int play_button=0x7f0b002c; - public static final int player_list=0x7f0b0032; - public static final int player_name_edit=0x7f0b006b; - public static final int players=0x7f0b0029; - public static final int players_label=0x7f0b0031; - public static final int prevhint_button=0x7f0b007e; - public static final int private_rooms_set=0x7f0b0038; - public static final int progress_bar=0x7f0b0053; - public static final int public_rooms_set=0x7f0b003b; - public static final int refresh_button=0x7f0b003d; - public static final int remote_check=0x7f0b0069; - public static final int revert_all=0x7f0b0073; - public static final int revert_colors=0x7f0b0072; - public static final int robot_check=0x7f0b006d; - public static final int role=0x7f0b0051; - public static final int room_edit=0x7f0b0039; - public static final int room_spinner=0x7f0b003c; - public static final int screen=0x7f0b002d; + public static final int number=0x7f0b007b; + public static final int other_lang=0x7f0b0063; + public static final int password_edit=0x7f0b0070; + public static final int password_set=0x7f0b006f; + public static final int phonies_spinner=0x7f0b0045; + public static final int pick_faceup=0x7f0b0046; + public static final int pick_lang=0x7f0b007c; + public static final int pick_lang_spinner=0x7f0b007d; + public static final int play_button=0x7f0b002d; + public static final int player_list=0x7f0b0033; + public static final int player_name_edit=0x7f0b006c; + public static final int players=0x7f0b002a; + public static final int players_label=0x7f0b0032; + public static final int prevhint_button=0x7f0b007f; + public static final int private_rooms_set=0x7f0b0039; + public static final int progress_bar=0x7f0b0054; + public static final int public_rooms_set=0x7f0b003c; + public static final int refresh_button=0x7f0b003e; + public static final int remote_check=0x7f0b006a; + public static final int revert_all=0x7f0b0074; + public static final int revert_colors=0x7f0b0073; + public static final int robot_check=0x7f0b006e; + public static final int role=0x7f0b0052; + public static final int room_edit=0x7f0b003a; + public static final int room_spinner=0x7f0b003d; + public static final int screen=0x7f0b002e; public static final int scroll=0x7f0b000f; - public static final int search_button=0x7f0b0023; - public static final int seek_blue=0x7f0b001a; - public static final int seek_green=0x7f0b0018; - public static final int seek_red=0x7f0b0016; - public static final int show_remote=0x7f0b0020; - public static final int shuffle_button=0x7f0b0080; - public static final int slmenu_clear_sel=0x7f0b00d1; - public static final int slmenu_copy_sel=0x7f0b00d0; - public static final int slmenu_deselect_all=0x7f0b00cf; - public static final int slmenu_lookup_sel=0x7f0b00cd; - public static final int slmenu_select_all=0x7f0b00ce; - public static final int smart_robot=0x7f0b0043; - public static final int state=0x7f0b0050; - public static final int summary=0x7f0b0063; + public static final int search_button=0x7f0b0024; + public static final int seek_blue=0x7f0b001b; + public static final int seek_green=0x7f0b0019; + public static final int seek_red=0x7f0b0017; + public static final int show_remote=0x7f0b0021; + public static final int shuffle_button=0x7f0b0081; + public static final int slmenu_clear_sel=0x7f0b00d2; + public static final int slmenu_copy_sel=0x7f0b00d1; + public static final int slmenu_deselect_all=0x7f0b00d0; + public static final int slmenu_lookup_sel=0x7f0b00ce; + public static final int slmenu_select_all=0x7f0b00cf; + public static final int smart_robot=0x7f0b0044; + public static final int state=0x7f0b0051; + public static final int summary=0x7f0b0064; public static final int tbar_parent_hor=0x7f0b0007; public static final int tbar_parent_vert=0x7f0b0008; - public static final int text_item=0x7f0b0055; - public static final int text_item2=0x7f0b0056; - public static final int thumbnail=0x7f0b004d; - public static final int timer_minutes_edit=0x7f0b0042; - public static final int timer_set=0x7f0b0041; - public static final int toolbar=0x7f0b007d; - public static final int undo_button=0x7f0b0081; - public static final int use_timer=0x7f0b0040; - public static final int values_button=0x7f0b0084; + public static final int text_item=0x7f0b0056; + public static final int text_item2=0x7f0b0057; + public static final int thumbnail=0x7f0b004e; + public static final int timer_minutes_edit=0x7f0b0043; + public static final int timer_set=0x7f0b0042; + public static final int toolbar=0x7f0b007e; + public static final int undo_button=0x7f0b0082; + public static final int use_timer=0x7f0b0041; + public static final int values_button=0x7f0b0085; public static final int version_string=0x7f0b0000; - public static final int view_loaded=0x7f0b004b; - public static final int view_unloaded=0x7f0b004a; - public static final int word_edit=0x7f0b0022; - public static final int wordlen_max=0x7f0b0025; - public static final int wordlen_min=0x7f0b0024; - public static final int xlated_view=0x7f0b005e; - public static final int xlated_view_blessed=0x7f0b005b; - public static final int xlated_view_local=0x7f0b005d; - public static final int zoom_button=0x7f0b0086; + public static final int view_loaded=0x7f0b004c; + public static final int view_unloaded=0x7f0b004b; + public static final int word_edit=0x7f0b0023; + public static final int wordlen_max=0x7f0b0026; + public static final int wordlen_min=0x7f0b0025; + public static final int xlated_view=0x7f0b005f; + public static final int xlated_view_blessed=0x7f0b005c; + public static final int xlated_view_local=0x7f0b005e; + public static final int zoom_button=0x7f0b0087; } public static final class layout { public static final int about_dlg=0x7f030000; diff --git a/xwords4/android/XWords4/res/layout/chat.xml b/xwords4/android/XWords4/res/layout/chat.xml index 269bc4d2c..1e79e298c 100644 --- a/xwords4/android/XWords4/res/layout/chat.xml +++ b/xwords4/android/XWords4/res/layout/chat.xml @@ -21,14 +21,26 @@ - + +