From df3a213efce801982b82fedf6a81c4afc37e7623 Mon Sep 17 00:00:00 2001 From: Eric House Date: Thu, 7 Jan 2016 08:05:18 -0800 Subject: [PATCH 01/37] remove padding --- xwords4/android/XWords4/res/layout/smsinviter.xml | 1 - 1 file changed, 1 deletion(-) diff --git a/xwords4/android/XWords4/res/layout/smsinviter.xml b/xwords4/android/XWords4/res/layout/smsinviter.xml index 7487a14e3..c5f9b2397 100644 --- a/xwords4/android/XWords4/res/layout/smsinviter.xml +++ b/xwords4/android/XWords4/res/layout/smsinviter.xml @@ -52,7 +52,6 @@ android:text="@string/button_invite" android:layout_width="fill_parent" android:layout_height="wrap_content" - android:layout_marginBottom="10dip" /> From f5947d25d9ddaa8775600e7d31176a9e2764b473 Mon Sep 17 00:00:00 2001 From: Eric House Date: Thu, 7 Jan 2016 08:05:38 -0800 Subject: [PATCH 02/37] Make invite dialogs full-screen. They're cramped otherwise. --- xwords4/android/XWords4/AndroidManifest.xml | 3 --- 1 file changed, 3 deletions(-) diff --git a/xwords4/android/XWords4/AndroidManifest.xml b/xwords4/android/XWords4/AndroidManifest.xml index 537238beb..ab2b0e8ba 100644 --- a/xwords4/android/XWords4/AndroidManifest.xml +++ b/xwords4/android/XWords4/AndroidManifest.xml @@ -94,18 +94,15 @@ From 7e714ae5471f70ce3d9aba6acef4184815354f80 Mon Sep 17 00:00:00 2001 From: Eric House Date: Fri, 8 Jan 2016 18:58:46 -0800 Subject: [PATCH 03/37] fix crash posing Toast from non-looper Activities --- .../android/XWords4/src/org/eehouse/android/xw4/Utils.java | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/xwords4/android/XWords4/src/org/eehouse/android/xw4/Utils.java b/xwords4/android/XWords4/src/org/eehouse/android/xw4/Utils.java index 525dbccb2..b2d15be2e 100644 --- a/xwords4/android/XWords4/src/org/eehouse/android/xw4/Utils.java +++ b/xwords4/android/XWords4/src/org/eehouse/android/xw4/Utils.java @@ -136,7 +136,12 @@ public class Utils { public static void showToast( Context context, String msg ) { - Toast.makeText( context, msg, Toast.LENGTH_SHORT).show(); + // Make this safe to call from non-looper threads + try { + Toast.makeText( context, msg, Toast.LENGTH_SHORT).show(); + } catch ( java.lang.RuntimeException re ) { + DbgUtils.loge( re ); + } } public static void showToast( Context context, int id ) From e60945733fa99533cdc317458757e0dc35f7b5cb Mon Sep 17 00:00:00 2001 From: Eric House Date: Fri, 8 Jan 2016 19:05:22 -0800 Subject: [PATCH 04/37] first step in showing a different alert for an unconnected game where an invitation's already been sent. It's stored in a new DB table, and user can display info about how and to what device it was sent. --- xwords4/android/XWords4/archive/R.java | 951 +++++++++--------- .../android/XWords4/res/values/strings.xml | 13 +- .../XWords4/res_src/values-ba_CK/strings.xml | 13 +- .../XWords4/res_src/values-ca_PS/strings.xml | 13 +- .../eehouse/android/xw4/BoardDelegate.java | 52 +- .../src/org/eehouse/android/xw4/DBHelper.java | 23 +- .../src/org/eehouse/android/xw4/DBUtils.java | 93 +- .../org/eehouse/android/xw4/DlgDelegate.java | 2 + 8 files changed, 663 insertions(+), 497 deletions(-) diff --git a/xwords4/android/XWords4/archive/R.java b/xwords4/android/XWords4/archive/R.java index 92ff6822d..1957142f6 100644 --- a/xwords4/android/XWords4/archive/R.java +++ b/xwords4/android/XWords4/archive/R.java @@ -345,7 +345,7 @@ public final class R { public static final class plurals { /** */ - public static final int confirm_clear_sms_fmt=0x7f07000f; + public static final int confirm_clear_sms_fmt=0x7f070010; /** text of confirmation dialog posted when the delete 'X' button beside the listing of a wordlist is tapped. The name of the wordlist is substituted for %1$s. Sometimes one of the two @@ -378,23 +378,23 @@ toutes les informations de connexion.) Êtes-vous sûr de vouloir effacer les %1$d mots sélectionnés ?\n\n(Cette action ne peut pas être annulée.) */ - public static final int confirm_studylist_clear_fmt=0x7f070013; + public static final int confirm_studylist_clear_fmt=0x7f070014; /** %1$s (%2$d games) %1$s (%2$d parties) */ - public static final int group_name_fmt=0x7f070012; + public static final int group_name_fmt=0x7f070013; /** Are you sure you want to delete the %1$d selected group[s]? Êtes-vous sûr de vouloir effacer les %1$d groupes sélectionnés ? */ - public static final int groups_confirm_del_fmt=0x7f070010; + public static final int groups_confirm_del_fmt=0x7f070011; /** \n\n(%1$d game[s] will also be deleted.) \n\n(%1$d parties seront aussi effacées.) */ - public static final int groups_confirm_del_games_fmt=0x7f070011; + public static final int groups_confirm_del_games_fmt=0x7f070012; /** Please select the %1$d device[s] @@ -405,7 +405,7 @@ vous voulez intégrer dans cette partie. Utilisez le bouton \"%2$s\" si vous ne voyez pas un périphérique que vous attendez. */ - public static final int invite_bt_desc_fmt=0x7f07000c; + public static final int invite_bt_desc_fmt=0x7f07000d; /** If a networked game is opened and is not complete, i.e. if it is listed as expecting remote players who have not yet shown up, then the most likely explanation is that none has been @@ -440,7 +440,8 @@ fait ? public static final int invite_msg_fmt=0x7f070004; /** */ - public static final int invite_relay_desc_fmt=0x7f07000e; + public static final int invite_relay_desc_fmt=0x7f07000f; + public static final int invite_sent_fmt=0x7f070005; /** Please check the %1$d phone @@ -449,19 +450,19 @@ fait ? que vous voulez inviter à votre partie, puis touchez \"%2$s\". */ - public static final int invite_sms_desc_fmt=0x7f07000d; + public static final int invite_sms_desc_fmt=0x7f07000e; /** %1$s (%2$d wordlists) %1$s (%2$d listes de mots) */ - public static final int lang_name_fmt=0x7f070016; + public static final int lang_name_fmt=0x7f070017; /** %1$s played %2$s for %3$d points %1$s a joué %2$s pour %3$d points */ - public static final int lmi_move_fmt=0x7f07001a; + public static final int lmi_move_fmt=0x7f07001b; /** %1$s traded %2$d tiles %1$s a échangé %2$d jetons */ - public static final int lmi_trade_fmt=0x7f07001b; + public static final int lmi_trade_fmt=0x7f07001c; /** Otherwise they're listed with this to give some indication of how far along they are. I may list "tiles left" someday instead... @@ -497,11 +498,11 @@ relai dans le salon \"%2$s\". En attente de %3$d joueur[s]. registered with the relay in this game. This should be seen only once per game. */ - public static final int msg_relay_waiting_fmt=0x7f070006; + public static final int msg_relay_waiting_fmt=0x7f070007; /** %1$d day[s] %1$d jour[s] */ - public static final int nag_days_fmt=0x7f070019; + public static final int nag_days_fmt=0x7f07001a; /** body of warning notification reminder message. First three are used to build a string based on the length of time that's then inserted in the fourth. E.g "PlayerName moved more than 2 day[s], @@ -511,26 +512,26 @@ relai dans le salon \"%2$s\". En attente de %3$d joueur[s]. %1$d hour[s] %1$d heure[s] */ - public static final int nag_hours_fmt=0x7f070018; + public static final int nag_hours_fmt=0x7f070019; /** body of warning notification reminder message. First three are used to build a string based on the length of time that's then inserted in the fourth. E.g "PlayerName moved more than 2 day[s], 4 hour[s] ago." */ - public static final int nag_minutes_fmt=0x7f070017; + public static final int nag_minutes_fmt=0x7f070018; /** Installed %1$d new translations %1$d nouvelles traductions installées */ - public static final int new_xlations_fmt=0x7f070015; + public static final int new_xlations_fmt=0x7f070016; /** XLATE-ME %1$d player[s] %1$d joueur[s] */ - public static final int nplayers_fmt=0x7f07001c; + public static final int nplayers_fmt=0x7f07001d; /** %1$d word[s] copied %1$d mots copiés */ - public static final int paste_done_fmt=0x7f070014; + public static final int paste_done_fmt=0x7f070015; /** Toast shown when players are missing, same time as above but more subtle. Toast shown when players are missing, same time as above @@ -540,7 +541,7 @@ relai dans le salon \"%2$s\". En attente de %3$d joueur[s]. Toast shown when players are missing, same time as above but more subtle. */ - public static final int players_miss_fmt=0x7f070005; + public static final int players_miss_fmt=0x7f070006; /** Text of dialog asking user to confirm a move that exchanges tiles (instead of forming a new word to earn points) Text of dialog asking user to confirm a move that exchanges @@ -552,14 +553,14 @@ jetons sélectionnés (%2$s) ? Text of dialog asking user to confirm a move that exchanges tiles (instead of forming a new word to earn points) */ - public static final int query_trade_fmt=0x7f07000b; + public static final int query_trade_fmt=0x7f07000c; /** Resend finished; sent %1$d message[s]. Renvoi fini ; %1$d message[s] envoyé[s]. */ - public static final int resend_finished_fmt=0x7f070007; + public static final int resend_finished_fmt=0x7f070008; /** Shown after "resend messages" menuitem chosen */ - public static final int resent_msgs_fmt=0x7f07001d; + public static final int resent_msgs_fmt=0x7f07001e; /** Intro to the paragraph listing all of the tiles remaining Intro to the paragraph lisiting all of the tiles remaining %1$d tiles left in pool and all @@ -568,7 +569,7 @@ jetons sélectionnés (%2$s) ? tous les chevalets :\n Intro to the paragraph lisiting all of the tiles remaining */ - public static final int strd_remains_expl_fmt=0x7f07000a; + public static final int strd_remains_expl_fmt=0x7f07000b; /** First line in the remaining tiles dialog (reached by tapping the number at left end of the scoreboard) First line in the remaining tiles dialog (reached by tapping @@ -578,7 +579,7 @@ tous les chevalets :\n First line in the remaining tiles dialog (reached by tapping the number at left end of the scoreboard) */ - public static final int strd_remains_header_fmt=0x7f070009; + public static final int strd_remains_header_fmt=0x7f07000a; /** Notifies user of a robot trade move returned by util_getUserString @@ -606,7 +607,7 @@ tous les chevalets :\n string name="str_robot_moved">O robô fez esta jogada:\u0020O robô fez esta jogada:\u0020 copyright info */ - public static final int about_copyright=0x7f0501c5; + public static final int about_copyright=0x7f0501c6; /** Another paragraph giving credit for work done other than by Eric House and translators Another paragraph giving credit for work done other than by @@ -636,7 +637,7 @@ string name="str_robot_moved">O robô fez esta jogada:\u0020O robô fez esta jogada:\u0020For a manual or sourcecode see: @@ -678,42 +679,42 @@ string name="str_robot_moved">O robô fez esta jogada:\u0020 Another paragraph in the about dialog */ - public static final int about_web=0x7f0501c6; + public static final int about_web=0x7f0501c7; /** %1$s added to %2$s studylist */ - public static final int add_done_fmt=0x7f050278; + public static final int add_done_fmt=0x7f050279; /** Add %1$s to studylist */ - public static final int add_to_study_fmt=0x7f050272; + public static final int add_to_study_fmt=0x7f050273; /** Debugging stuff. Localize if you think your langauge users will care. XLATE-ME For debugging */ - public static final int advanced=0x7f0502e1; + public static final int advanced=0x7f0502e3; /** This button takes you to the normal Game Configure screen This button takes you to the normal Game Configure screen Advanced game settings This button takes you to the normal Game Configure screen */ - public static final int advanced_config=0x7f050181; + public static final int advanced_config=0x7f050182; /** XLATE-ME You should never need these... */ - public static final int advanced_summary=0x7f0502e2; + public static final int advanced_summary=0x7f0502e4; /** The wordlist %1$s contains only tile information. There are no words to browse. */ - public static final int alert_empty_dict_fmt=0x7f0501e3; + public static final int alert_empty_dict_fmt=0x7f0501e4; public static final int app_name=0x7f050081; /** Unable to connect to Crosswords on the device %1$s. Please check that the device is within range and that Crosswords is installed on it. */ - public static final int app_not_found_fmt=0x7f0502bd; + public static final int app_not_found_fmt=0x7f0502be; public static final int app_version=0x7f050000; /** the background color of the area outside the board, e.g. between entries in the scoreboard @@ -757,7 +758,7 @@ XLATE-ME Browse wordlist board menu for small devices only */ - public static final int board_menu_dict=0x7f05021e; + public static final int board_menu_dict=0x7f05021f; /** ############################################################ # :Menus: @@ -797,7 +798,7 @@ XLATE-ME Email author */ - public static final int board_menu_file_email=0x7f0501e8; + public static final int board_menu_file_email=0x7f0501e9; /** menu on Game submenu: brings up dialog listing all tiles in the language of the game along with how many of each there are and how many points each is worth. This display is the @@ -852,7 +853,7 @@ XLATE-ME /** XLATE-ME Network stats */ - public static final int board_menu_game_netstats=0x7f0502ec; + public static final int board_menu_game_netstats=0x7f0502ee; /** Meaningful only for networked games, this menu causes all messages that have not yet been acknowledged by a remote device in the game to be resent. Eventually I hope to be @@ -876,13 +877,13 @@ XLATE-ME public static final int board_menu_game_resign=0x7f0500fe; /** Invite */ - public static final int board_menu_invite=0x7f05026b; + public static final int board_menu_invite=0x7f05026c; /** Pass */ - public static final int board_menu_pass=0x7f0501d4; + public static final int board_menu_pass=0x7f0501d5; /** This menu begins an exchange of tiles: puts the board into trade mode. This menu begins an exchange of tiles: puts the board into @@ -911,7 +912,7 @@ XLATE-ME Undo/Redo */ - public static final int board_menu_undo_current=0x7f050218; + public static final int board_menu_undo_current=0x7f050219; /** Undos the last *committed* turn. Note that this is different from the undo button that undoes or redoes an in-progress not-yet-committed turn. This is disabled for networked @@ -1035,38 +1036,38 @@ XLATE-ME continue. */ - public static final int bt_bad_proto_fmt=0x7f0501f7; + public static final int bt_bad_proto_fmt=0x7f0501f8; /** Bluetooth sends to %1$s have failed too many times. Re-open the game to try again. */ - public static final int bt_fail_fmt=0x7f0501fc; + public static final int bt_fail_fmt=0x7f0501fd; /** Title of device picker during invitation to a game via Bluetooth Title of device picker during invitation to a game via Bluetooth Bluetooth Invitation */ - public static final int bt_invite_title=0x7f0501fe; + public static final int bt_invite_title=0x7f0501ff; /** You currently have no paired Bluetooth devices. Would you like to open the Android Settings Panel to add one or more?\n\n(You may also need to open it on the device you want to pair with.) */ - public static final int bt_no_devs=0x7f0502bc; + public static final int bt_no_devs=0x7f0502bd; /** Turn Bluetooth on In the Bluetooth invite device dialog In the Bluetooth invite device dialog Add all Paired */ - public static final int bt_pick_addall_button=0x7f0501ec; + public static final int bt_pick_addall_button=0x7f0501ed; /** Remove checked */ - public static final int bt_pick_clear_button=0x7f0501ed; + public static final int bt_pick_clear_button=0x7f0501ee; /** Bluetooth send to %1$s failed; retry %3$d in @@ -1075,7 +1076,7 @@ XLATE-ME %3$d dans %2$d secondes. */ - public static final int bt_resend_fmt=0x7f0501fb; + public static final int bt_resend_fmt=0x7f0501fc; /** text of button for adding new player to game text for separator above the list of players that's used for networked games. The numbers of local and non-local players @@ -1090,10 +1091,10 @@ XLATE-ME Close game The only button available when the above message is displayed */ - public static final int button_close_game=0x7f050192; + public static final int button_close_game=0x7f050193; /** Decline */ - public static final int button_decline=0x7f05024b; + public static final int button_decline=0x7f05024c; /** @@ -1176,23 +1177,23 @@ XLATE-ME the other option, for discarding changes that would otherwise reset a game. */ - public static final int button_discard=0x7f0501a1; + public static final int button_discard=0x7f0501a2; /** XLATE-ME Discard changes */ - public static final int button_discard_changes=0x7f0502d9; + public static final int button_discard_changes=0x7f0502db; /** Done */ - public static final int button_done=0x7f0501d1; + public static final int button_done=0x7f0501d2; /** Done with %1$s */ - public static final int button_done_fmt=0x7f0501d2; + public static final int button_done_fmt=0x7f0501d3; /** Text of button displayed when downloading is an option This is an alternative message presented when there's also the option of downloading another wordlist. Game name, @@ -1212,27 +1213,27 @@ XLATE-ME Download Text of button displayed when downloading is an option */ - public static final int button_download=0x7f050195; + public static final int button_download=0x7f050196; /** XLATE-ME Edit */ - public static final int button_edit=0x7f0502d8; - public static final int button_enable=0x7f05031b; + public static final int button_edit=0x7f0502da; + public static final int button_enable=0x7f05031d; /** XLATE-ME Enable Bluetooth */ - public static final int button_enable_bt=0x7f050236; + public static final int button_enable_bt=0x7f050237; /** XLATE-ME Enable SMS */ - public static final int button_enable_sms=0x7f050235; - public static final int button_go_settings=0x7f05026d; + public static final int button_enable_sms=0x7f050236; + public static final int button_go_settings=0x7f05026e; /** Invite checked */ - public static final int button_invite=0x7f0501fd; + public static final int button_invite=0x7f0501fe; /** text of button to juggle (randomly rearrange order of) players text of button to juggle (randomly rearrange order of) players Shuffle players @@ -1242,7 +1243,7 @@ XLATE-ME /** XLATE-ME Later */ - public static final int button_later=0x7f050237; + public static final int button_later=0x7f050238; /** New strings that need to be documented and found a home above. New strings that need to be documented and found a home @@ -1251,25 +1252,25 @@ XLATE-ME New strings that need to be documented and found a home above. */ - public static final int button_lookup=0x7f0501cb; + public static final int button_lookup=0x7f0501cc; /** Look up %1$s */ - public static final int button_lookup_fmt=0x7f0501cd; + public static final int button_lookup_fmt=0x7f0501ce; /** Look up/study words */ - public static final int button_lookup_study=0x7f0501cc; + public static final int button_lookup_study=0x7f0501cd; /** Look up/study %1$s */ - public static final int button_lookup_study_fmt=0x7f0501ce; + public static final int button_lookup_study_fmt=0x7f0501cf; /** Move */ - public static final int button_move=0x7f0501d6; + public static final int button_move=0x7f0501d7; /** What is \u200C? English strings are used as keys, so they all need to be unique. This glyph is non-printing and of zero-width, so it should do the trick: @@ -1348,10 +1349,10 @@ XLATE-ME public static final int button_new_group=0x7f050086; /** New group */ - public static final int button_newgroup=0x7f0501d7; + public static final int button_newgroup=0x7f0501d8; /** No */ - public static final int button_no=0x7f05019f; + public static final int button_no=0x7f0501a0; /** Text for button in new-user-info dialog with title just above. Text for button in new-user-info dialog with title just @@ -1360,13 +1361,13 @@ XLATE-ME Text for button in new-user-info dialog with title just above. */ - public static final int button_notagain=0x7f0501ad; + public static final int button_notagain=0x7f0501ae; /** Reconnect */ - public static final int button_reconnect=0x7f05025d; + public static final int button_reconnect=0x7f05025e; /** */ - public static final int button_relay_add=0x7f050209; + public static final int button_relay_add=0x7f05020a; /** Button shown in game over dialog triggering creation of new game with the same players and parameters as the one that just ended. @@ -1378,7 +1379,7 @@ XLATE-ME game with the same players and parameters as the one that just ended. */ - public static final int button_rematch=0x7f05025c; + public static final int button_rematch=0x7f05025d; /** When you select the list_item_reset contextual menu, you are asked to confirm. This is the text of the first button ("Cancel" is the second). @@ -1401,7 +1402,7 @@ XLATE-ME connect to the relay failed because the room named does not exist. (I believe this no longer occurs.) */ - public static final int button_retry=0x7f0501a2; + public static final int button_retry=0x7f0501a3; /** ############################################################ # :Menus: @@ -1452,20 +1453,20 @@ XLATE-ME Save Used in Game config dialog to confirm saving changes that reset a game */ - public static final int button_save=0x7f0501a0; + public static final int button_save=0x7f0501a1; /** Find */ - public static final int button_search=0x7f0501d8; + public static final int button_search=0x7f0501d9; /** Import contact */ - public static final int button_sms_add=0x7f050208; + public static final int button_sms_add=0x7f050209; /** Text of button allowing user to choose to open with a different (but same-language wordlist) Text of button allowing user to choose to open with a @@ -1474,7 +1475,7 @@ XLATE-ME Text of button allowing user to choose to open with a different (but same-language wordlist) */ - public static final int button_substdict=0x7f050196; + public static final int button_substdict=0x7f050197; /** Cancel trade */ public static final int button_trade_cancel=0x7f0500df; @@ -1519,7 +1520,7 @@ XLATE-ME public static final int button_trade_commit=0x7f0500de; /** Button for alert with title above */ - public static final int button_wait=0x7f0502d3; + public static final int button_wait=0x7f0502d5; /** ############################################################ # Dialogs @@ -1562,14 +1563,14 @@ XLATE-ME Text for buttons at the bottom of dialogs. These first are in many places. */ - public static final int button_yes=0x7f05019e; + public static final int button_yes=0x7f05019f; /** The group for new games, %1$s, cannot be deleted. */ - public static final int cannot_delete_default_group_fmt=0x7f05025b; + public static final int cannot_delete_default_group_fmt=0x7f05025c; /** Move selected games to: */ - public static final int change_group=0x7f050260; + public static final int change_group=0x7f050261; /** text of button in About Crosswords dialog summoning above dialog text of button in About Crosswords dialog summoning above @@ -1578,7 +1579,7 @@ XLATE-ME text of button in About Crosswords dialog summoning above dialog */ - public static final int changes_button=0x7f0501ca; + public static final int changes_button=0x7f0501cb; /** text of dialog showing the set of changes made since the last release text of dialog showing the set of changes made since the last @@ -1587,13 +1588,13 @@ XLATE-ME text of dialog showing the set of changes made since the last release */ - public static final int changes_title=0x7f0501c9; + public static final int changes_title=0x7f0501ca; /** Prefix for local messages Prefix for local messages Me:\u0020 Prefix for local messages */ - public static final int chat_local_id=0x7f05017c; + public static final int chat_local_id=0x7f05017d; /** ############################################################ # :Menus: @@ -1626,13 +1627,13 @@ XLATE-ME other devices in the game: no "clear chat" message is transmitted. */ - public static final int chat_menu_clear=0x7f05017f; + public static final int chat_menu_clear=0x7f050180; /** Prefix for remote messages Prefix for remote messages Not me:\u0020 Prefix for remote messages */ - public static final int chat_other_id=0x7f05017d; + public static final int chat_other_id=0x7f05017e; /** Text on the button that causes the contents of the message-composition field to be sent. Text on the button that causes the contents of the @@ -1641,7 +1642,7 @@ XLATE-ME Text on the button that causes the contents of the message-composition field to be sent. */ - public static final int chat_send=0x7f05017e; + public static final int chat_send=0x7f05017f; /** ############################################################ # :Screens: # Chat screen @@ -1683,20 +1684,20 @@ XLATE-ME title of the chat screen. The name of the current game is substituted for %s. */ - public static final int chat_title_fmt=0x7f05017b; + public static final int chat_title_fmt=0x7f05017c; /** Checking for wordlists in %1$s… */ - public static final int checking_for_fmt=0x7f050312; + public static final int checking_for_fmt=0x7f050314; /** Checking */ - public static final int checking_title=0x7f050311; + public static final int checking_title=0x7f050313; /** Everything is up-to-date. */ - public static final int checkupdates_none_found=0x7f050239; + public static final int checkupdates_none_found=0x7f05023a; /** EXPERIMENTAL: "label" for invite on clipboard. If it's shown it's by some Android utility */ - public static final int clip_label=0x7f050324; + public static final int clip_label=0x7f050326; /** color of the "crosshairs", lines drawn vertically and horizontally through the square the user is currently touching in order to guide the fat-fingered (most of us) in @@ -1720,9 +1721,9 @@ XLATE-ME and cannot be saved. Would you like to discard your changes, or edit to give it a way to connect? */ - public static final int config_no_connvia=0x7f0502d7; - public static final int confirm_clear_chat=0x7f050326; - public static final int confirm_clear_relay=0x7f050210; + public static final int config_no_connvia=0x7f0502d9; + public static final int confirm_clear_chat=0x7f050328; + public static final int confirm_clear_relay=0x7f050211; /** Additional text appended to text confirm_delete_dictf in the wordlist delete confiration dialog in the case where the wordlist to be deleted is the last in its language. The name @@ -1733,14 +1734,14 @@ XLATE-ME of the language is substituted for %1$s. */ public static final int confirm_deleteonly_dicts_fmt=0x7f0500a9; - public static final int confirm_drop_relay=0x7f050317; - public static final int confirm_drop_relay_bt=0x7f050319; - public static final int confirm_drop_relay_sms=0x7f05031a; + public static final int confirm_drop_relay=0x7f050319; + public static final int confirm_drop_relay_bt=0x7f05031b; + public static final int confirm_drop_relay_sms=0x7f05031c; /** Your device is set up for %1$s. Would you like to download a wordlist so you can play Crosswords in %1$s? */ - public static final int confirm_get_locdict_fmt=0x7f0502e0; + public static final int confirm_get_locdict_fmt=0x7f0502e2; /** Text of confirmation dialog for above Text of confirmation dialog for above Are you sure you want to restore @@ -1810,37 +1811,37 @@ XLATE-ME enabled? */ - public static final int confirm_sms_expl=0x7f05022e; + public static final int confirm_sms_expl=0x7f05022f; /** No: leave disabled */ - public static final int confirm_sms_leave=0x7f050230; + public static final int confirm_sms_leave=0x7f050231; /** Enable play via SMS? */ - public static final int confirm_sms_prompt=0x7f05022f; + public static final int confirm_sms_prompt=0x7f050230; /** Confirm your SMS plan */ - public static final int confirm_sms_title=0x7f05022d; + public static final int confirm_sms_title=0x7f05022e; /** Yes: I have unlimited texting */ - public static final int confirm_sms_unlimited=0x7f050231; + public static final int confirm_sms_unlimited=0x7f050232; /** Yes: I\'ll pay all carrier charges */ - public static final int confirm_sms_willpay=0x7f050232; + public static final int confirm_sms_willpay=0x7f050233; /** text of dialog shown when the menu item board_menu_undo_last is chosen. text of dialog shown when the menu item board_menu_undo_last @@ -1912,7 +1913,7 @@ XLATE-ME */ - public static final int connect_label_sms=0x7f050211; + public static final int connect_label_sms=0x7f050212; /** These are the possible values for the connect_frequency setting presented as a drop-down list. These are the possible values for the connect_frequency @@ -1934,70 +1935,70 @@ XLATE-ME /** XLATE-ME Change Communicate via */ - public static final int connection_via_label=0x7f0502cf; + public static final int connection_via_label=0x7f0502d0; /** (Last failure was %1$s) */ - public static final int connstat_lastother_succ_fmt=0x7f050225; + public static final int connstat_lastother_succ_fmt=0x7f050226; /** (Last successful send was %1$s) */ - public static final int connstat_lastother_unsucc_fmt=0x7f050226; + public static final int connstat_lastother_unsucc_fmt=0x7f050227; /** Last receipt was %1$s */ - public static final int connstat_lastreceipt_fmt=0x7f050227; + public static final int connstat_lastreceipt_fmt=0x7f050228; /** Last send was %1$s (%2$s) */ - public static final int connstat_lastsend_fmt=0x7f050224; + public static final int connstat_lastsend_fmt=0x7f050225; /** Network status for game connected via %1$s: */ - public static final int connstat_net_fmt=0x7f050221; - public static final int connstat_net_noaddr=0x7f050220; + public static final int connstat_net_fmt=0x7f050222; + public static final int connstat_net_noaddr=0x7f050221; /** No messages have been received. */ - public static final int connstat_noreceipt=0x7f050228; + public static final int connstat_noreceipt=0x7f050229; /** internet/relay */ - public static final int connstat_relay=0x7f050229; + public static final int connstat_relay=0x7f05022a; /** sms/texting */ - public static final int connstat_sms=0x7f05022a; + public static final int connstat_sms=0x7f05022b; /** successful */ - public static final int connstat_succ=0x7f050222; + public static final int connstat_succ=0x7f050223; /** unsuccessful */ - public static final int connstat_unsucc=0x7f050223; + public static final int connstat_unsucc=0x7f050224; /** title of dialog brought up in response to the board_menu_game_counts menu. The dialog lists all tiles in the language being used for the game together with how many @@ -2012,31 +2013,31 @@ XLATE-ME the language being used for the game together with how many of each there are are and how many points each is worth. */ - public static final int counts_values_title=0x7f0501a7; + public static final int counts_values_title=0x7f0501a8; /** %1$s (in use) */ - public static final int cur_menu_marker_fmt=0x7f05026a; + public static final int cur_menu_marker_fmt=0x7f05026b; /** Tile picker\n(so far: %1$s) */ - public static final int cur_tiles_fmt=0x7f0501dc; + public static final int cur_tiles_fmt=0x7f0501dd; /** SMS Data is only available on GSM phones. */ - public static final int data_gsm_only=0x7f050287; + public static final int data_gsm_only=0x7f050288; /** SD card write complete. */ - public static final int db_store_done=0x7f050313; + public static final int db_store_done=0x7f050315; /** XLATE-ME Enable debug features */ - public static final int debug_features=0x7f0502e8; + public static final int debug_features=0x7f0502ea; /** XLATE-ME Menuitems etc. (release builds only) */ - public static final int debug_features_summary=0x7f0502e9; + public static final int debug_features_summary=0x7f0502eb; /** dictionary used by default for human players when creating new game clarification of above @@ -2064,13 +2065,13 @@ XLATE-ME label within default wordlists in app preferences Default language */ - public static final int default_language=0x7f0502be; + public static final int default_language=0x7f0502bf; /** Store wordlists internally */ - public static final int default_loc=0x7f05024e; + public static final int default_loc=0x7f05024f; /** (Not in external/sdcard memory) */ - public static final int default_loc_summary=0x7f05024f; + public static final int default_loc_summary=0x7f050250; /** Welcome dialog text Welcome dialog text Thanks for installing @@ -2079,7 +2080,7 @@ XLATE-ME game default\" section of Settings.) Welcome dialog text */ - public static final int default_name_message=0x7f0501c3; + public static final int default_name_message=0x7f0501c4; /** ########################################################### # :Dialogs: @@ -2121,7 +2122,7 @@ XLATE-ME Welcome dialog title */ - public static final int default_name_title=0x7f0501c2; + public static final int default_name_title=0x7f0501c3; /** default new-game setting for handline phonies (words not found in the word list) default new-game setting for handline phonies (words not @@ -2143,8 +2144,8 @@ XLATE-ME public static final int default_update_url=0x7f050080; /** Delete wordlist[s] */ - public static final int delete_dicts=0x7f0502a9; - public static final int devid_title=0x7f0502ef; + public static final int delete_dicts=0x7f0502aa; + public static final int devid_title=0x7f0502f1; /** Playing via SMS is currently disabled. You can enable it in Settings->Network game settings. @@ -2155,14 +2156,14 @@ XLATE-ME */ - public static final int dft_sms_name_fmt=0x7f050206; + public static final int dft_sms_name_fmt=0x7f050207; /** No word in %1$s starts with %2$s. */ - public static final int dict_browse_nowords_fmt=0x7f0501e0; + public static final int dict_browse_nowords_fmt=0x7f0501e1; /** %1$s (%2$d words using %3$d @@ -2170,7 +2171,7 @@ XLATE-ME %1$s (%2$d mots utilisant %3$d jetons) */ - public static final int dict_browse_title1_fmt=0x7f0501df; + public static final int dict_browse_title1_fmt=0x7f0501e0; /** %1$s (%2$d words using %3$d-%4$d @@ -2179,18 +2180,18 @@ XLATE-ME %4$d jetons) */ - public static final int dict_browse_title_fmt=0x7f0501de; + public static final int dict_browse_title_fmt=0x7f0501df; /** %1$s (%2$s/%3$d words) */ - public static final int dict_desc_fmt=0x7f0502b0; + public static final int dict_desc_fmt=0x7f0502b1; /** XLATE-ME Wordlist download URL */ - public static final int dict_host=0x7f0502e5; + public static final int dict_host=0x7f0502e7; /** Number of words: %1$d\nDownload size: %2$dK\nNote: %3$s */ - public static final int dict_info_fmt=0x7f0502ad; + public static final int dict_info_fmt=0x7f0502ae; /** label for dropdown by which wordlist is chosen that this player will use. The language the game will use (which constrains the choice of wordlists) is substituted in for @@ -2208,7 +2209,7 @@ XLATE-ME public static final int dict_lang_label_fmt=0x7f0500da; /** Tap to download */ - public static final int dict_on_server=0x7f0502af; + public static final int dict_on_server=0x7f0502b0; /** string name="invite_mime">text/plainDo not notify me no matter how long it\'s been my turn */ - public static final int disable_nag_summary=0x7f0502de; + public static final int disable_nag_summary=0x7f0502e0; /** Disable turn reminders */ - public static final int disable_nag_title=0x7f0502dd; - public static final int disable_nags_title=0x7f0502dc; + public static final int disable_nag_title=0x7f0502df; + public static final int disable_nags_title=0x7f0502de; /** text of item at bottom of dicts choice spinner. It launches the browser pointed at the site where additional wordlists can be found. @@ -2324,23 +2325,23 @@ XLATE-ME public static final int download_dicts=0x7f0500a4; /** Download finished */ - public static final int download_done=0x7f05024c; + public static final int download_done=0x7f05024d; /** Download unsuccessful */ - public static final int download_failed=0x7f05024d; + public static final int download_failed=0x7f05024e; /** Downloads Directory */ - public static final int download_path_title=0x7f050250; + public static final int download_path_title=0x7f050251; /** Downloading %1$s… */ - public static final int downloading_dict_fmt=0x7f05018f; - public static final int drop_relay_warning_fmt=0x7f050316; + public static final int downloading_dict_fmt=0x7f050190; + public static final int drop_relay_warning_fmt=0x7f050318; /** Display snapshots of games Display snapshots of games Invitation received but ignored: it has already been used to create a game. */ - public static final int dropped_dupe=0x7f050269; + public static final int dropped_dupe=0x7f05026a; /** Shown in the main screen when you launch Crosswords from an invitation (received in email or messaging app, say) and there's already a game running that matches that invitation. @@ -2366,13 +2367,13 @@ XLATE-ME the same room name over and over so they'll get this warning and it's harmless to ignore it. */ - public static final int dup_game_query_fmt=0x7f0501a3; + public static final int dup_game_query_fmt=0x7f0501a4; /** Send comment via */ - public static final int email_author_chooser=0x7f0501ea; + public static final int email_author_chooser=0x7f0501eb; /** Nor is my email address */ public static final int email_author_email=0x7f05007a; @@ -2381,13 +2382,13 @@ XLATE-ME Should not be translated */ - public static final int email_author_subject=0x7f0501e9; + public static final int email_author_subject=0x7f0501ea; /** Should not be translated */ - public static final int email_body_rev_fmt=0x7f0501eb; + public static final int email_body_rev_fmt=0x7f0501ec; /** color of empty squares on the board (that are not bonus squares) color of empty squares on the board (that are not bonus squares) Empty cell/background @@ -2396,7 +2397,7 @@ XLATE-ME public static final int empty=0x7f050145; /** */ - public static final int empty_relay_inviter=0x7f05020d; + public static final int empty_relay_inviter=0x7f05020e; /** Shows in SMS Invite dialog when no phone numbers have been saved previously Shows in SMS Invite dialog when no phone numbers have been saved previously This phone list is empty. Use the @@ -2404,58 +2405,58 @@ XLATE-ME button to enter numbers directly. */ - public static final int empty_sms_inviter=0x7f05020c; + public static final int empty_sms_inviter=0x7f05020d; /** XLATE-ME Accept invitations more than once */ - public static final int enable_dupes_summary=0x7f0502f7; + public static final int enable_dupes_summary=0x7f0502f9; /** XLATE-ME Accept duplicate invites */ - public static final int enable_dupes_title=0x7f0502f5; + public static final int enable_dupes_title=0x7f0502f7; /** NFC is turned off on this device. You can use the Android Settings app to turn it on . */ - public static final int enable_nfc=0x7f05026c; + public static final int enable_nfc=0x7f05026d; /** XLATE-ME Fake invitation to aid debugging */ - public static final int enable_nfc_toself_summary=0x7f0502fa; + public static final int enable_nfc_toself_summary=0x7f0502fc; /** XLATE-ME Enable NFC to self */ - public static final int enable_nfc_toself_title=0x7f0502f9; + public static final int enable_nfc_toself_title=0x7f0502fb; /** XLATE-ME Rooms others can see and join */ - public static final int enable_pubroom_summary=0x7f0502ce; + public static final int enable_pubroom_summary=0x7f0502cf; /** XLATE-ME Enable public rooms */ - public static final int enable_pubroom_title=0x7f0502cd; - public static final int enable_relay_toself_summary=0x7f050322; - public static final int enable_relay_toself_title=0x7f050321; + public static final int enable_pubroom_title=0x7f0502ce; + public static final int enable_relay_toself_summary=0x7f050324; + public static final int enable_relay_toself_title=0x7f050323; /** Allow games via SMS */ - public static final int enable_sms=0x7f05022b; + public static final int enable_sms=0x7f05022c; /** Only if you have unlimited texting! */ - public static final int enable_sms_summary=0x7f05022c; + public static final int enable_sms_summary=0x7f05022d; /** XLATE-ME Skip radio when phone numbers same */ - public static final int enable_sms_toself_summary=0x7f0502fc; + public static final int enable_sms_toself_summary=0x7f0502fe; /** XLATE-ME Short-circuit SMS to self */ - public static final int enable_sms_toself_title=0x7f0502fb; + public static final int enable_sms_toself_title=0x7f0502fd; /** Tap tiles to select… */ public static final int entering_trade=0x7f0500e0; @@ -2464,11 +2465,11 @@ XLATE-ME device \"%1$s\" has already accepted an invitation to this game. */ - public static final int err_dup_invite_fmt=0x7f0502c8; + public static final int err_dup_invite_fmt=0x7f0502c9; /** XLATE-ME Update checks URL */ - public static final int expl_update_url=0x7f050306; + public static final int expl_update_url=0x7f050308; /** if this preference is checked, a dialog will be posted every time a robot makes a move or a move is received from a remote player. @@ -2493,7 +2494,7 @@ XLATE-ME explanation of the above */ public static final int explain_robot_summary=0x7f05014e; - public static final int fetching_from_relay=0x7f050328; + public static final int fetching_from_relay=0x7f05032a; /** title of dialog brought up in response to the board_menu_game_final menu. The dialog displays the final score and an accounting of it (including subtractions for @@ -2511,7 +2512,7 @@ XLATE-ME running out the game timer if there is one.) */ - public static final int finalscores_title=0x7f0501a9; + public static final int finalscores_title=0x7f0501aa; /** Explanatory text appears in the dialog Explanatory text appears in the dialog In a multi-device game there must be at @@ -2523,13 +2524,13 @@ XLATE-ME /** XLATE-ME Pretend to have radio */ - public static final int force_radio_title=0x7f0502fd; + public static final int force_radio_title=0x7f0502ff; /** Even if my screen is too small */ - public static final int force_tablet_summary=0x7f0502b4; + public static final int force_tablet_summary=0x7f0502b5; /** Force tablet layout */ - public static final int force_tablet_title=0x7f0502b3; + public static final int force_tablet_title=0x7f0502b4; /** ############################################################ # :Dialogs: @@ -2599,7 +2600,7 @@ XLATE-ME */ - public static final int game_btname_title=0x7f050201; + public static final int game_btname_title=0x7f050202; /** used to create default names of games (when user has not named them.) used to create default names of games (when user has not @@ -2610,7 +2611,7 @@ XLATE-ME used to create default names of games (when user has not named them.) */ - public static final int game_fmt=0x7f050199; + public static final int game_fmt=0x7f05019a; /** ############################################################ # :Menus: @@ -2642,7 +2643,7 @@ XLATE-ME Building game summary… */ - public static final int game_list_tmp=0x7f05021f; + public static final int game_list_tmp=0x7f050220; /** text of checkbox at top of dialog allowing to unlock in-play game to make changes text of checkbox at top of dialog allowing to unlock in-play @@ -2654,17 +2655,17 @@ XLATE-ME public static final int game_locked=0x7f0500b4; /** Name group */ - public static final int game_name_group_title=0x7f05025a; + public static final int game_name_group_title=0x7f05025b; /** XLATE-ME New game name: */ - public static final int game_name_label=0x7f050203; + public static final int game_name_label=0x7f050204; /** XLATE-ME Name your game */ - public static final int game_name_title=0x7f050202; + public static final int game_name_title=0x7f050203; /** @@ -2679,7 +2680,7 @@ XLATE-ME /** XLATE-ME gameid */ - public static final int game_summary_field_gameid=0x7f050304; + public static final int game_summary_field_gameid=0x7f050306; /** Put the language there, so it reads "Game 2 (English)" Put the language there, so it reads "Game 2 (English)" Game language\u200C @@ -2689,7 +2690,7 @@ XLATE-ME /** XLATE-ME Pending packet count */ - public static final int game_summary_field_npackets=0x7f050305; + public static final int game_summary_field_npackets=0x7f050307; /** List names of opponents (summarized), e.g. "Game 2 (vs Kati)" List names of opponents (summarized), e.g. "Game 2 (vs Kati)" Opponent name[s] @@ -2699,7 +2700,7 @@ XLATE-ME /** XLATE-ME rowid */ - public static final int game_summary_field_rowid=0x7f050303; + public static final int game_summary_field_rowid=0x7f050305; /** List the state of the game, "Game over" or "10 moves made" etc. List the state of the game, "Game over" or "10 moves made" @@ -2728,7 +2729,7 @@ XLATE-ME Check for updates */ - public static final int gamel_menu_checkupdates=0x7f050238; + public static final int gamel_menu_checkupdates=0x7f050239; /** ############################################################ # :Menus: @@ -2771,46 +2772,46 @@ XLATE-ME /** XLATE-ME Load DB from SD card */ - public static final int gamel_menu_loaddb=0x7f0502f4; + public static final int gamel_menu_loaddb=0x7f0502f6; /** XLATE-ME %1$s/%2$s XLATE-ME Write DB to SD card */ - public static final int gamel_menu_storedb=0x7f0502f3; + public static final int gamel_menu_storedb=0x7f0502f5; /** Studylist… */ - public static final int gamel_menu_study=0x7f050275; - public static final int get_relay_number=0x7f05020f; + public static final int gamel_menu_study=0x7f050276; + public static final int get_relay_number=0x7f050210; /** Enter phone number: */ - public static final int get_sms_number=0x7f05020e; + public static final int get_sms_number=0x7f05020f; /** Get info */ - public static final int getinfo=0x7f0502a8; + public static final int getinfo=0x7f0502a9; public static final int git_rev=0x7f050082; /** XLATE-ME Source version id */ - public static final int git_rev_title=0x7f0502ee; + public static final int git_rev_title=0x7f0502f0; /** Don\'t try a second time */ - public static final int got_langdict_summary=0x7f050308; + public static final int got_langdict_summary=0x7f05030a; /** Fetch default wordlist for language */ - public static final int got_langdict_title=0x7f050307; + public static final int got_langdict_title=0x7f050309; /** Green */ public static final int green=0x7f050149; /** My games */ - public static final int group_cur_games=0x7f050257; + public static final int group_cur_games=0x7f050258; /** New games */ - public static final int group_new_games=0x7f050258; + public static final int group_new_games=0x7f050259; /** Used as the default name for remote players displayed within the Game configure screen Final state: game is over. @@ -2934,7 +2935,7 @@ XLATE-ME to the last turn is displayed, though details about what's in players' racks is left out if the game is not yet over. */ - public static final int history_title=0x7f0501a8; + public static final int history_title=0x7f0501a9; /** Partial text of alert posted when phonies_warn or phonies_disallow is the current setting and a "phony" is played. One of the two following strings will be appended @@ -2968,7 +2969,7 @@ XLATE-ME item with text board_menu_game_final and the game is not over */ - public static final int ids_endnow=0x7f0501aa; + public static final int ids_endnow=0x7f0501ab; /** Title of generic dialog used to display information If the dropdown is selected, this is the title displayed above the list of selectable items. The language the game @@ -2981,7 +2982,7 @@ XLATE-ME FYI… Title of generic dialog used to display information */ - public static final int info_title=0x7f0501a4; + public static final int info_title=0x7f0501a5; /** You are using the wordlist @@ -2989,7 +2990,7 @@ XLATE-ME too? */ - public static final int inform_dict_diffdict_fmt=0x7f050243; + public static final int inform_dict_diffdict_fmt=0x7f050244; /** You and the host of this @@ -2998,14 +2999,14 @@ XLATE-ME Used in formatting final scores display */ - public static final int inform_dict_diffversion_fmt=0x7f050241; + public static final int inform_dict_diffversion_fmt=0x7f050242; /** \u0020(You will have to download it first.) */ - public static final int inform_dict_download=0x7f050244; + public static final int inform_dict_download=0x7f050245; /** Wordlist mismatch */ - public static final int inform_dict_title=0x7f050242; + public static final int inform_dict_title=0x7f050243; /** Will new games, on default, randomly rearrange the start order of players. Will new games, on default, randomly rearrange the start @@ -3035,14 +3036,14 @@ XLATE-ME default number of minutes on timer for new games */ public static final int initial_player_minutes=0x7f05012c; - public static final int invite_choice_bt=0x7f050171; - public static final int invite_choice_email=0x7f050170; + public static final int invite_choice_bt=0x7f050172; + public static final int invite_choice_email=0x7f050171; /** Email Bluetooth NFC (\"Android beaming\") */ - public static final int invite_choice_nfc=0x7f050172; - public static final int invite_choice_relay=0x7f050173; + public static final int invite_choice_nfc=0x7f050173; + public static final int invite_choice_relay=0x7f050174; /** EXPLAIN ME Bluetooth is not available. This may mean that your device doesn\'t support it, or that it\'s been @@ -3055,11 +3056,11 @@ XLATE-ME explanation/guidance. SMS (texting) */ - public static final int invite_choice_sms=0x7f05016f; + public static final int invite_choice_sms=0x7f050170; /** Inviting players: How? */ - public static final int invite_choice_title=0x7f050174; - public static final int invite_chooser_email=0x7f050179; + public static final int invite_choice_title=0x7f050175; + public static final int invite_chooser_email=0x7f05017a; /** When I've created the invitation, in text or html, I ask Android to launch an app that can send it, typically an email or messaging app. Android then asks the user to choose which @@ -3080,30 +3081,30 @@ XLATE-ME to have launched. This string is passed to Android and used as the title of the dialog that presents that choice. */ - public static final int invite_chooser_fmt=0x7f050178; + public static final int invite_chooser_fmt=0x7f050179; /** email sms */ - public static final int invite_chooser_sms=0x7f05017a; + public static final int invite_chooser_sms=0x7f05017b; /** EXPERIMENTAL: Shown as toast when user chooses "My choice" for invitation */ - public static final int invite_copied=0x7f050323; + public static final int invite_copied=0x7f050325; /** %1$s has invited you to play Crosswords using the wordlist %2$s (for play in %3$s), but it is not installed. Would you like to download the wordlist or decline the invitation? */ - public static final int invite_dict_missing_body_fmt=0x7f050249; + public static final int invite_dict_missing_body_fmt=0x7f05024a; /** You have been invited to play Crosswords using the wordlist %2$s (for play in %3$s), but it is not installed. Would you like to download the wordlist? */ - public static final int invite_dict_missing_body_noname_fmt=0x7f05024a; + public static final int invite_dict_missing_body_noname_fmt=0x7f05024b; /** Missing wordlist */ - public static final int invite_dict_missing_title=0x7f050248; + public static final int invite_dict_missing_title=0x7f050249; public static final int invite_host=0x7f05007d; /** This is the body of the html version of the invitation. A URL is created with parameters describing the game and @@ -3130,7 +3131,7 @@ XLATE-ME encodings for the greater-than and less-than symbols which are not legal in xml strings.) */ - public static final int invite_htm_fmt=0x7f050176; + public static final int invite_htm_fmt=0x7f050177; /** Appended to message above if local device has NFC available Appended to message above if local device has NFC available (Or just Tap to Invite - if the @@ -3141,11 +3142,11 @@ XLATE-ME /** XLATE-ME Invite more than one player per remote device */ - public static final int invite_multi_summary=0x7f0502cc; + public static final int invite_multi_summary=0x7f0502cd; /** XLATE-ME Invite multiple */ - public static final int invite_multi_title=0x7f0502cb; + public static final int invite_multi_title=0x7f0502cc; /** Most users create games with only two players, which is the default, but Crosswords supports up to four. When I'm using the above string to encourage the opener of a game missing @@ -3169,23 +3170,23 @@ XLATE-ME /** */ - public static final int invite_notice_title=0x7f0501f4; + public static final int invite_notice_title=0x7f0501f5; public static final int invite_prefix=0x7f050084; /** Sending invitation to Crosswords on %1$s */ - public static final int invite_progress_fmt=0x7f0501ef; + public static final int invite_progress_fmt=0x7f0501f0; /** Connecting... */ - public static final int invite_progress_title=0x7f0501ee; + public static final int invite_progress_title=0x7f0501ef; /** XLATE-ME (This dialog will stay up until all remote players have connected. You can close the game if you expect it to take a while. They will still be able to connect.) */ - public static final int invite_stays=0x7f0502d4; + public static final int invite_stays=0x7f0502d6; /** Send invitation using SMS (texting) or via email? Send invitation using NFC (Android @@ -3217,7 +3218,7 @@ XLATE-ME This is the subject line of the email/text sent to invite someone to join a game. */ - public static final int invite_subject_fmt=0x7f050175; + public static final int invite_subject_fmt=0x7f050176; /** This is the body of the text version of the invitation. A URL is created with parameters describing the game and substituted for "%1$s". @@ -3230,7 +3231,7 @@ XLATE-ME is created with parameters describing the game and substituted for "%1$s". */ - public static final int invite_txt_fmt=0x7f050177; + public static final int invite_txt_fmt=0x7f050178; /** text of checkbox asking if user wants to search for open public rooms text of checkbox asking if user wants to search for open @@ -3413,44 +3414,44 @@ XLATE-ME different wordlists.) */ public static final int lang_label=0x7f0500b9; - public static final int lang_name_arabic=0x7f050292; - public static final int lang_name_catalan=0x7f050299; - public static final int lang_name_czech=0x7f05029c; - public static final int lang_name_danish=0x7f050296; - public static final int lang_name_dutch=0x7f050298; - public static final int lang_name_english=0x7f05028e; - public static final int lang_name_french=0x7f05028f; - public static final int lang_name_german=0x7f050290; - public static final int lang_name_greek=0x7f05029d; - public static final int lang_name_italian=0x7f050297; - public static final int lang_name_polish=0x7f050295; - public static final int lang_name_portuguese=0x7f05029a; - public static final int lang_name_russian=0x7f05029b; - public static final int lang_name_slovak=0x7f05029e; - public static final int lang_name_spanish=0x7f050293; - public static final int lang_name_swedish=0x7f050294; - public static final int lang_name_turkish=0x7f050291; + public static final int lang_name_arabic=0x7f050293; + public static final int lang_name_catalan=0x7f05029a; + public static final int lang_name_czech=0x7f05029d; + public static final int lang_name_danish=0x7f050297; + public static final int lang_name_dutch=0x7f050299; + public static final int lang_name_english=0x7f05028f; + public static final int lang_name_french=0x7f050290; + public static final int lang_name_german=0x7f050291; + public static final int lang_name_greek=0x7f05029e; + public static final int lang_name_italian=0x7f050298; + public static final int lang_name_polish=0x7f050296; + public static final int lang_name_portuguese=0x7f05029b; + public static final int lang_name_russian=0x7f05029c; + public static final int lang_name_slovak=0x7f05029f; + public static final int lang_name_spanish=0x7f050294; + public static final int lang_name_swedish=0x7f050295; + public static final int lang_name_turkish=0x7f050292; /** Unknown */ - public static final int lang_unknown=0x7f0502b1; + public static final int lang_unknown=0x7f0502b2; /** Game language/wordlist */ public static final int langdict_label=0x7f0500ba; /** Put new games here */ - public static final int list_group_default=0x7f050254; + public static final int list_group_default=0x7f050255; /** Delete group */ - public static final int list_group_delete=0x7f050252; + public static final int list_group_delete=0x7f050253; /** Move down */ - public static final int list_group_movedown=0x7f050256; + public static final int list_group_movedown=0x7f050257; /** Move up */ - public static final int list_group_moveup=0x7f050255; + public static final int list_group_moveup=0x7f050256; /** Rename */ - public static final int list_group_rename=0x7f050253; + public static final int list_group_rename=0x7f050254; /** ############## menu items ############## pulls up dialog to configure the selected game Used to format game name plus some other information as the @@ -3487,7 +3488,7 @@ XLATE-ME pulls up dialog to delete the selected game */ public static final int list_item_delete=0x7f05009b; - public static final int list_item_deselect=0x7f05032b; + public static final int list_item_deselect=0x7f05032d; /** pulls up dialog to change the group of the selected game pulls up dialog to change the group of the selected game pulls up dialog to change the group of the selected game @@ -3526,18 +3527,18 @@ XLATE-ME except for any configuration. */ public static final int list_item_reset=0x7f05009c; - public static final int list_item_select=0x7f05032a; + public static final int list_item_select=0x7f05032c; /** formatting for last move summary in notifications formatting for last move summary in notifications %1$s passed (0 points) */ - public static final int lmi_pass_fmt=0x7f0502b9; + public static final int lmi_pass_fmt=0x7f0502ba; /** %1$s lost a turn */ - public static final int lmi_phony_fmt=0x7f0502ba; + public static final int lmi_phony_fmt=0x7f0502bb; /** Tiles assigned to %1$s */ - public static final int lmi_tiles_fmt=0x7f0502bb; + public static final int lmi_tiles_fmt=0x7f0502bc; /** One of the strings used in the right column of the list of installed wordlists to describe those that are part of Crosswords and that cannot be uninstalled or moved. @@ -3579,24 +3580,24 @@ XLATE-ME public static final int loc_external=0x7f0500b0; /** All */ - public static final int loc_filters_all=0x7f05028a; + public static final int loc_filters_all=0x7f05028b; /** Latest menu */ - public static final int loc_filters_menu=0x7f05028c; + public static final int loc_filters_menu=0x7f05028d; /** Modified by me */ - public static final int loc_filters_modified=0x7f05028d; + public static final int loc_filters_modified=0x7f05028e; /** Filter by: */ - public static final int loc_filters_prompt=0x7f050288; + public static final int loc_filters_prompt=0x7f050289; /** Latest screen */ - public static final int loc_filters_screen=0x7f05028b; + public static final int loc_filters_screen=0x7f05028c; /** Illegal translation: a translated string must have the same format specifiers (e.g. %1$s) as the original. */ - public static final int loc_fmts_mismatch=0x7f0502a3; + public static final int loc_fmts_mismatch=0x7f0502a4; /** see move_dictf above see move_dictf above see move_dictf above @@ -3604,30 +3605,30 @@ XLATE-ME public static final int loc_internal=0x7f0500af; /** Check */ - public static final int loc_item_check=0x7f0502a0; + public static final int loc_item_check=0x7f0502a1; /** for loc item edit menu for loc item edit menu Clear */ - public static final int loc_item_clear=0x7f05029f; + public static final int loc_item_clear=0x7f0502a0; /** Copy official */ - public static final int loc_item_copy_bless=0x7f0502a2; + public static final int loc_item_copy_bless=0x7f0502a3; /** Copy English */ - public static final int loc_item_copy_eng=0x7f0502a1; + public static final int loc_item_copy_eng=0x7f0502a2; /** %1$s (official) */ - public static final int loc_lang_blessed=0x7f050283; + public static final int loc_lang_blessed=0x7f050284; /** %1$s (yours) */ - public static final int loc_lang_local=0x7f050284; + public static final int loc_lang_local=0x7f050285; /** Translate */ - public static final int loc_menu_xlate=0x7f050282; + public static final int loc_menu_xlate=0x7f050283; /** Search for: */ - public static final int loc_search_prompt=0x7f050289; + public static final int loc_search_prompt=0x7f05028a; /** This is the "hint" printed in light text in the empty player name field ############################################################ @@ -3674,60 +3675,60 @@ XLATE-ME This is the "hint" printed in light text in the empty player name field */ - public static final int local_name_hint=0x7f050180; + public static final int local_name_hint=0x7f050181; /** XLATE-ME Enable logging */ - public static final int logging_on=0x7f0502e6; + public static final int logging_on=0x7f0502e8; /** XLATE-ME (release builds only) */ - public static final int logging_on_summary=0x7f0502e7; + public static final int logging_on_summary=0x7f0502e9; /** Word lookup */ - public static final int lookup_title=0x7f05027e; + public static final int lookup_title=0x7f05027f; /** (Not in contacts) */ - public static final int manual_owner_name=0x7f05020a; + public static final int manual_owner_name=0x7f05020b; /** Max length */ - public static final int max_len=0x7f0501e5; + public static final int max_len=0x7f0501e6; /** Chat */ - public static final int menu_chat=0x7f05021c; + public static final int menu_chat=0x7f05021d; /** Flip board */ - public static final int menu_flip=0x7f05021a; + public static final int menu_flip=0x7f05021b; /** Next hint */ - public static final int menu_hint_next=0x7f050217; + public static final int menu_hint_next=0x7f050218; /** Prev hint */ - public static final int menu_hint_prev=0x7f050216; + public static final int menu_hint_prev=0x7f050217; /** Juggle rack */ - public static final int menu_juggle=0x7f050219; + public static final int menu_juggle=0x7f05021a; /** text of menu that brings up the Settings (preferences) dialog text of menu that brings up the Settings (preferences) dialog text of menu that brings up the Settings (preferences) dialog @@ -3735,25 +3736,25 @@ XLATE-ME public static final int menu_prefs=0x7f050092; /** Rate Crosswords */ - public static final int menu_rateme=0x7f050270; + public static final int menu_rateme=0x7f050271; /** Toggle values */ - public static final int menu_toggle_values=0x7f05021d; + public static final int menu_toggle_values=0x7f05021e; /** Zoom in/out */ - public static final int menu_zoom=0x7f05021b; + public static final int menu_zoom=0x7f05021c; /** Min length */ - public static final int min_len=0x7f0501e4; + public static final int min_len=0x7f0501e5; /** label for the field used to set the timer's inital value label for the field used to set the timer's inital value Minutes per player @@ -3766,14 +3767,14 @@ XLATE-ME wordslist that's not installed Tap to download missing wordlist */ - public static final int missing_dict_detail=0x7f050247; + public static final int missing_dict_detail=0x7f050248; /** Title of notification shown when invitation requires a wordslist that's not installed Title of notification shown when invitation requires a wordslist that's not installed Game invitation pending */ - public static final int missing_dict_title=0x7f050246; + public static final int missing_dict_title=0x7f050247; /** Used as a substitute for the names of remote players when they aren't available yet because the connection is not complete. Displayed in the lists of players found in each @@ -3853,7 +3854,7 @@ XLATE-ME Text of dialog. Player name is substituted */ - public static final int msg_ask_password_fmt=0x7f050198; + public static final int msg_ask_password_fmt=0x7f050199; /** When a game has been connected and the relay is notified that a device in the game has deleted its part of the game, this message is posted when you connect your end of it to the @@ -3924,26 +3925,26 @@ XLATE-ME public static final int msgs_progress=0x7f050094; /** %1$s moved more than %2$s ago. */ - public static final int nag_body_fmt=0x7f0502b6; + public static final int nag_body_fmt=0x7f0502b7; /** XLATE-ME Reminder intervals (minutes1,minutes2,...) */ - public static final int nag_intervals=0x7f0502f8; + public static final int nag_intervals=0x7f0502fa; /** Nagging: title of notification reminder message Nagging: title of notification reminder message Reminder: It\'s your turn */ - public static final int nag_title=0x7f0502b5; + public static final int nag_title=0x7f0502b6; /** above is inserted in this the last time I warn above is inserted in this the last time I warn Last warning: %1$s */ - public static final int nag_warn_last_fmt=0x7f0502b7; + public static final int nag_warn_last_fmt=0x7f0502b8; /** XLATE-ME %1$s copy */ - public static final int name_copy_fmt=0x7f050204; - public static final int name_dict_fmt=0x7f0502f2; + public static final int name_copy_fmt=0x7f050205; + public static final int name_dict_fmt=0x7f0502f4; public static final int nbs_port=0x7f050083; /** text of checkbox. If this checkbox is checked, games created for network play will by default have the hint feature @@ -3972,15 +3973,15 @@ XLATE-ME /** XLATE-ME Game network stats */ - public static final int netstats_title=0x7f0502ed; + public static final int netstats_title=0x7f0502ef; /** XLATE-ME For experienced players */ - public static final int network_advanced_summary=0x7f0502ca; + public static final int network_advanced_summary=0x7f0502cb; /** XLATE-ME Advanced */ - public static final int network_advanced_title=0x7f0502c9; + public static final int network_advanced_title=0x7f0502ca; /** Network game settings */ public static final int network_behavior=0x7f050159; @@ -3996,13 +3997,13 @@ XLATE-ME Tap to download and install */ - public static final int new_app_avail=0x7f05023d; + public static final int new_app_avail=0x7f05023e; /** New version of %1$s */ - public static final int new_app_avail_fmt=0x7f05023c; + public static final int new_app_avail_fmt=0x7f05023d; /** New game via Bluetooth @@ -4011,61 +4012,61 @@ XLATE-ME */ - public static final int new_bt_body_fmt=0x7f0501f5; + public static final int new_bt_body_fmt=0x7f0501f6; /** */ - public static final int new_btmove_title=0x7f0501f9; + public static final int new_btmove_title=0x7f0501fa; /** New wordlist available */ - public static final int new_dict_avail=0x7f05023a; + public static final int new_dict_avail=0x7f05023b; /** Tap to update %1$s */ - public static final int new_dict_avail_fmt=0x7f05023b; + public static final int new_dict_avail_fmt=0x7f05023c; /** XLATE-ME New one-device game */ - public static final int new_game=0x7f0502c0; + public static final int new_game=0x7f0502c1; /** XLATE-ME Would you like to create this game using default settings?\n\nOr would you like to configure it first? */ - public static final int new_game_message=0x7f0502c3; + public static final int new_game_message=0x7f0502c4; /** XLATE-ME (You will have a chance to invite other players when it is open.) */ - public static final int new_game_message_net=0x7f0502c5; + public static final int new_game_message_net=0x7f0502c6; /** XLATE-ME This game must be configured before it can be opened. */ - public static final int new_game_message_nodflt=0x7f0502c4; + public static final int new_game_message_nodflt=0x7f0502c5; /** XLATE-ME New networked game */ - public static final int new_game_networked=0x7f0502c1; + public static final int new_game_networked=0x7f0502c2; /** One or more moves has arrived */ - public static final int new_move_body=0x7f0501fa; + public static final int new_move_body=0x7f0501fb; /** %1$s has invited you to play */ - public static final int new_name_body_fmt=0x7f050207; - public static final int new_relay_body=0x7f0501f6; + public static final int new_name_body_fmt=0x7f050208; + public static final int new_relay_body=0x7f0501f7; /** hint (text shown when field is empty) for room name field hint (text shown when field is empty) for room name field Room name @@ -4107,7 +4108,7 @@ XLATE-ME Title of New user info dialog */ - public static final int newbie_title=0x7f0501ac; + public static final int newbie_title=0x7f0501ad; /** section separator (white-on-gray bar) for third section: bluetooth games section separator (white-on-gray bar) for third section: @@ -4116,7 +4117,7 @@ XLATE-ME section separator (white-on-gray bar) for third section: bluetooth games */ - public static final int newgame_bt_header=0x7f05016e; + public static final int newgame_bt_header=0x7f05016f; /** Text of second of two buttons for new standalone games. Tap this and you'll get taken to the "Game configure" screen Text of second of two buttons for new standalone games. Tap @@ -4124,7 +4125,7 @@ XLATE-ME Configure first */ public static final int newgame_configure_first=0x7f050169; - public static final int newgame_drop_relay=0x7f05016d; + public static final int newgame_drop_relay=0x7f05016e; /** Text of first of two buttons for new networked games. Tap this and a game will be created, but you probably won't see it immediately because an email or messaging app will be @@ -4140,6 +4141,7 @@ XLATE-ME launched to send your invitation. */ public static final int newgame_invite=0x7f05016c; + public static final int newgame_invite_more=0x7f05016d; /** Text of first of two buttons for new standalone games. Tap this and a new game will be created and opened. If the first player is a robot it will immediately take its turn. @@ -4243,16 +4245,16 @@ XLATE-ME */ - public static final int newgame_sms_header=0x7f050205; + public static final int newgame_sms_header=0x7f050206; /** Name your new group: */ - public static final int newgroup_label=0x7f050251; + public static final int newgroup_label=0x7f050252; /** XLATE-ME To invite via NFC just touch the back of this device against the one you want to invite—any time the game is open. */ - public static final int nfc_just_tap=0x7f0502d5; + public static final int nfc_just_tap=0x7f0502d7; /** XLATE-ME GSM XLATE-ME @@ -4260,7 +4262,7 @@ XLATE-ME XLATE-ME Send via NFC to self? */ - public static final int nfc_to_self=0x7f050302; + public static final int nfc_to_self=0x7f050304; /** Title of dialog for renaming game (triggered by selecting list_item_rename) If you try to copy a networked game you get this error @@ -4288,7 +4290,7 @@ XLATE-ME just an explanation and this button, after which the game closes. */ - public static final int no_dict_finish=0x7f050191; + public static final int no_dict_finish=0x7f050192; /** If the missing wordlist is discovered when trying to open the game, we have more options. If there's another wordlist in the same language, we can offer to substitute without needing @@ -4313,7 +4315,7 @@ XLATE-ME takes wordlist name and language substituted in for %1$ and %2$ */ - public static final int no_dict_fmt=0x7f050193; + public static final int no_dict_fmt=0x7f050194; /** This is an alternative message presented when there's also the option of downloading another wordlist. Game name, wordlist name and language are substituted in. @@ -4329,7 +4331,7 @@ XLATE-ME the option of downloading another wordlist. Game name, wordlist name and language are substituted in. */ - public static final int no_dict_subst_fmt=0x7f050194; + public static final int no_dict_subst_fmt=0x7f050195; /** ############################################################ # :Dialogs: @@ -4483,7 +4485,7 @@ XLATE-ME title of alert */ - public static final int no_dict_title=0x7f050190; + public static final int no_dict_title=0x7f050191; /** If you click on the Play button without having entered a room name you get an alert with this error message. If you click on the Play button without having entered a room @@ -4493,7 +4495,7 @@ XLATE-ME If you click on the Play button without having entered a room name you get an alert with this error message. */ - public static final int no_empty_rooms=0x7f050182; + public static final int no_empty_rooms=0x7f050183; /** If you choose the above option and have no networked games you get this error message If you choose the above option and have no networked games @@ -4504,7 +4506,7 @@ XLATE-ME public static final int no_games_to_refresh=0x7f050095; /** Google Play app not found */ - public static final int no_market=0x7f050271; + public static final int no_market=0x7f050272; /** displayed when you long-tap a scoreboard entry and there's no most recent score to show displayed when you long-tap a scoreboard entry and there's no @@ -4528,7 +4530,7 @@ XLATE-ME substituted. */ public static final int no_name_found_fmt=0x7f0500c1; - public static final int no_relay_conn=0x7f050315; + public static final int no_relay_conn=0x7f050317; /** This is not currently shown Crosswords wordlists, which are just compressed lists of words plus tile information, determine @@ -4570,25 +4572,25 @@ XLATE-ME figuring out how to play and when you tap an empty cell the arrow appears. This explains it. */ - public static final int not_again_arrow=0x7f0501bf; + public static final int not_again_arrow=0x7f0501c0; /** The back button clears any selection instead of exiting. Hit it again to exit the app. */ - public static final int not_again_backclears=0x7f050264; + public static final int not_again_backclears=0x7f050265; /** This button opens the wordlist browser on the current player\'s wordlist. */ - public static final int not_again_browse=0x7f0501e1; + public static final int not_again_browse=0x7f0501e2; /** This button opens the wordlist browser on the wordlist of your choice. */ - public static final int not_again_browseall=0x7f0501e2; + public static final int not_again_browseall=0x7f0501e3; /** Shown when you tap the chat button on the toolbar of the main Board screen Shown when you tap the chat button on the toolbar of the @@ -4599,14 +4601,14 @@ XLATE-ME Shown when you tap the chat button on the toolbar of the main Board screen */ - public static final int not_again_chat=0x7f0501b8; + public static final int not_again_chat=0x7f0501b9; /** EXPERIMENTAL: Newbie hint next when invite_choice_clip shown when chosen */ - public static final int not_again_clip_expl_fmt=0x7f050325; - public static final int not_again_comms_bt=0x7f05031e; - public static final int not_again_comms_relay=0x7f05031c; - public static final int not_again_comms_sms=0x7f05031d; + public static final int not_again_clip_expl_fmt=0x7f050327; + public static final int not_again_comms_bt=0x7f050320; + public static final int not_again_comms_relay=0x7f05031e; + public static final int not_again_comms_sms=0x7f05031f; /** This is shown in the Board screen when you successfully connecting a game to the relay and are the last device in the game to do so, i.e. the game is now complete and you should @@ -4624,7 +4626,7 @@ XLATE-ME game to do so, i.e. the game is now complete and you should expect play to begin. */ - public static final int not_again_conndall=0x7f0501be; + public static final int not_again_conndall=0x7f0501bf; /** This is shown in the Board screen when you successfully connect a game to the relay and are the first device in the game to do so. @@ -4639,7 +4641,7 @@ XLATE-ME connect a game to the relay and are the first device in the game to do so. */ - public static final int not_again_conndfirst=0x7f0501bc; + public static final int not_again_conndfirst=0x7f0501bd; /** This is shown in the Board screen when you successfully connecting a game to the relay and are not the first device in the game but not the last either. So it will only occur @@ -4656,8 +4658,8 @@ XLATE-ME in the game but not the last either. So it will only occur for games with more than two devices, which are rare. */ - public static final int not_again_conndmid=0x7f0501bd; - public static final int not_again_dfltname_fmt=0x7f05032c; + public static final int not_again_conndmid=0x7f0501be; + public static final int not_again_dfltname_fmt=0x7f05032e; /** This screen lets you install new wordslists and view the ones you already have.\n\nWhat wordlists you have installed determines:\n• What languages you can play @@ -4665,7 +4667,7 @@ XLATE-ME legal.\n\nCheck the \"Show downloadable\" box at the top to see what\'s available. */ - public static final int not_again_dicts=0x7f0502b2; + public static final int not_again_dicts=0x7f0502b3; /** This is shown when you choose the board_menu_done menu item. It's to let you know that there's a shortcut that does almost the same thing. @@ -4679,14 +4681,14 @@ XLATE-ME It's to let you know that there's a shortcut that does almost the same thing. */ - public static final int not_again_done=0x7f0501ba; + public static final int not_again_done=0x7f0501bb; /** XLATE-ME Public rooms have been made an \"advanced\" feature in this release. If you were using them and want them back, enable them now. You can turn them off again in Settings. */ - public static final int not_again_enablepublic=0x7f0502db; + public static final int not_again_enablepublic=0x7f0502dd; /** Shown when you tap the flip button on the toolbar of the main Board screen Shown when you tap the flip button on the toolbar of the main @@ -4696,13 +4698,13 @@ XLATE-ME Shown when you tap the flip button on the toolbar of the main Board screen */ - public static final int not_again_flip=0x7f0501b5; + public static final int not_again_flip=0x7f0501b6; /** This string has special format specifiers (e.g. %1$s). Please be sure that your translation has the same ones as the original.\n\n(You will not be able to save it unless it does.) */ - public static final int not_again_fmt_expl=0x7f0502a4; + public static final int not_again_fmt_expl=0x7f0502a5; /** XLATE-ME These two buttons do the same thing as the first two items in this window\'s Action Bar @@ -4711,7 +4713,7 @@ XLATE-ME section of App settings). */ - public static final int not_again_hidenewgamebuttons=0x7f0502d1; + public static final int not_again_hidenewgamebuttons=0x7f0502d2; /** Shown when you tap the next hint button on the toolbar of the main Board screen Shown when you tap the next hint button on the toolbar of the @@ -4722,7 +4724,7 @@ XLATE-ME Shown when you tap the next hint button on the toolbar of the main Board screen */ - public static final int not_again_hintnext=0x7f0501b3; + public static final int not_again_hintnext=0x7f0501b4; /** Currently not used The new game you have created has two players. Player 1 is a robot; Player 2 is you. Tap the game @@ -4748,7 +4750,7 @@ XLATE-ME Shown when you tap the Previous Hint button on the toolbar of the main Board screen */ - public static final int not_again_hintprev=0x7f0501b2; + public static final int not_again_hintprev=0x7f0501b3; /** Shown when you tap the juggle button on the toolbar of the main Board screen Shown when you tap the juggle button on the toolbar of the @@ -4758,14 +4760,14 @@ XLATE-ME Shown when you tap the juggle button on the toolbar of the main Board screen */ - public static final int not_again_juggle=0x7f0501b4; + public static final int not_again_juggle=0x7f0501b5; /** This button lets you look up, online, the words just played. */ - public static final int not_again_lookup=0x7f0501d5; + public static final int not_again_lookup=0x7f0501d6; /** Shown when you first pick the list_item_new_from menuitem Shown when you first pick the list_item_new_from menuitem Create a new ready-to-play game @@ -4773,19 +4775,19 @@ XLATE-ME as a template. Shown when you first pick the list_item_new_from menuitem */ - public static final int not_again_newfrom=0x7f0501c1; + public static final int not_again_newfrom=0x7f0501c2; /** Tapping a game opens it.\n\nYou can instead tap the icons at the left to select or deselect games, then act on selected games, e.g. to delete them, using the menu or \"Actionbar.\" */ - public static final int not_again_newselect=0x7f050263; - public static final int not_again_rematch_two_only=0x7f050320; + public static final int not_again_newselect=0x7f050264; + public static final int not_again_rematch_two_only=0x7f050322; /** The selected words will be copied to the system clipboard. You can then paste them into any app that supports pasting text, e.g. an email app. */ - public static final int not_again_studycopy=0x7f05027d; + public static final int not_again_studycopy=0x7f05027e; /** The following strings (all whose names start with "not_again") appear in the New user info dialog. @@ -4804,7 +4806,7 @@ XLATE-ME shown when user chooses the gamel_menu_checkmoves menu */ - public static final int not_again_sync=0x7f0501ae; + public static final int not_again_sync=0x7f0501af; /** Shown when the user chooses the "board_menu_trade" menu Shown when the user chooses the "board_menu_trade" menu You are entering tile-exchange @@ -4812,15 +4814,15 @@ XLATE-ME exchanged.\n\n Shown when the user chooses the "board_menu_trade" menu */ - public static final int not_again_trading=0x7f0501af; + public static final int not_again_trading=0x7f0501b0; /** Use the buttons to commit your turn or exit exchange mode. */ - public static final int not_again_trading_buttons=0x7f0501b0; + public static final int not_again_trading_buttons=0x7f0501b1; /** Use the menu or action bar to commit your turn or exit exchange mode. */ - public static final int not_again_trading_menu=0x7f0501b1; + public static final int not_again_trading_menu=0x7f0501b2; /** Shown when the board screen is visible and it's just become another players turn. The idea is to give a hint about how to find out about recent moves. @@ -4835,7 +4837,7 @@ XLATE-ME another players turn. The idea is to give a hint about how to find out about recent moves. */ - public static final int not_again_turnchanged=0x7f0501c0; + public static final int not_again_turnchanged=0x7f0501c1; /** Shown when you tap the undo/redo button on the toolbar of the main Board screen Shown when you tap the undo/redo button on the toolbar of the @@ -4845,7 +4847,7 @@ XLATE-ME Shown when you tap the undo/redo button on the toolbar of the main Board screen */ - public static final int not_again_undo=0x7f0501b7; + public static final int not_again_undo=0x7f0501b8; /** Shown in the Game configure screen when the game_locked checkbox is checked and you uncheck it. Shown in the Game configure screen when the game_locked @@ -4857,7 +4859,7 @@ XLATE-ME Shown in the Game configure screen when the game_locked checkbox is checked and you uncheck it. */ - public static final int not_again_unlock=0x7f0501bb; + public static final int not_again_unlock=0x7f0501bc; /** Shown when you tap the values button on the toolbar of the main Board screen. This is intended to allow players to remind themselves how much played tiles are worth while @@ -4874,7 +4876,7 @@ XLATE-ME remind themselves how much played tiles are worth while planning a move. */ - public static final int not_again_values=0x7f0501b9; + public static final int not_again_values=0x7f0501ba; /** Shown when you tap the zoom (+/-) button on the toolbar of the main Board screen Shown when you tap the zoom (+/-) button on the toolbar of @@ -4885,12 +4887,12 @@ XLATE-ME Shown when you tap the zoom (+/-) button on the toolbar of the main Board screen */ - public static final int not_again_zoom=0x7f0501b6; + public static final int not_again_zoom=0x7f0501b7; /** (None) */ - public static final int note_none=0x7f0502ae; - public static final int notify_chat_body_fmt=0x7f05019d; - public static final int notify_chat_title_fmt=0x7f05019c; + public static final int note_none=0x7f0502af; + public static final int notify_chat_body_fmt=0x7f05019e; + public static final int notify_chat_title_fmt=0x7f05019d; /** This text is displayed as the "summary" for both of the notify choices above, as extra information. (There could be different strings if it makes more sense in your language.) @@ -4925,7 +4927,7 @@ XLATE-ME down. Move in game %1$s */ - public static final int notify_title_fmt=0x7f05019b; + public static final int notify_title_fmt=0x7f05019c; /** When one or more new moves is found, should I vibrate the device When one or more new moves is found, should I vibrate the @@ -4938,7 +4940,7 @@ XLATE-ME /** XLATE-ME Number on this device */ - public static final int nplayers_prompt=0x7f0502c7; + public static final int nplayers_prompt=0x7f0502c8; /** text of label identifying the field where human players can enter an option password. The label and field disappear when the robot player checkbox is checked because it makes no @@ -4969,7 +4971,7 @@ XLATE-ME play – if he/she is also using NFC. \u0020pct. */ - public static final int pct_suffix=0x7f05026f; + public static final int pct_suffix=0x7f050270; /** If this preference is checked, tapping on the scoreboard entry for any player reveals that player's tiles and any pending move (after asking for his password if one is set.) @@ -5009,7 +5011,7 @@ XLATE-ME Connected number[s]: */ - public static final int phone_label=0x7f050212; + public static final int phone_label=0x7f050213; /** Don't warn, but simply force to skip turn (give 0 points) when user attempts to play word not in the wordlist. Don't warn, but simply force to skip turn (give 0 points) @@ -5206,13 +5208,13 @@ XLATE-ME Pick tiles face-up */ - public static final int pick_faceup=0x7f0501dd; + public static final int pick_faceup=0x7f0501de; /** Look up %1$s at */ - public static final int pick_url_title_fmt=0x7f0501d3; + public static final int pick_url_title_fmt=0x7f0501d4; /** Text of button at bottom. Press it and you exit this configure screen and open the game into the Board screen Text of button at bottom. Press it and you exit this @@ -5318,7 +5320,7 @@ XLATE-ME used to create default player names. Number between 1 and 4 is substituted */ - public static final int player_fmt=0x7f05019a; + public static final int player_fmt=0x7f05019b; /** text of lable identifying the field in which player's name is set/displayed Shown in the main screen when you launch Crosswords from an @@ -5362,22 +5364,22 @@ XLATE-ME public static final int players_label_standalone=0x7f0500b5; /** Prefs related to in-app localization */ - public static final int pref_group_l10n_summary=0x7f05030e; + public static final int pref_group_l10n_summary=0x7f050310; /** Localization Stuff */ - public static final int pref_group_l10n_title=0x7f05030d; + public static final int pref_group_l10n_title=0x7f05030f; /** Prefs related to play via internet/relay */ - public static final int pref_group_relay_summary=0x7f05030c; + public static final int pref_group_relay_summary=0x7f05030e; /** Relay Stuff */ - public static final int pref_group_relay_title=0x7f05030b; + public static final int pref_group_relay_title=0x7f05030d; /** Prefs related to play-via-sms */ - public static final int pref_group_sms_summary=0x7f05030a; + public static final int pref_group_sms_summary=0x7f05030c; /** SMS Stuff */ - public static final int pref_group_sms_title=0x7f050309; + public static final int pref_group_sms_title=0x7f05030b; /** Label for the first "human player" name preference Label for the first "human player" name preference Human player @@ -5385,10 +5387,10 @@ XLATE-ME public static final int pref_human_name=0x7f050121; /** Get intermediate builds */ - public static final int pref_item_update_summary=0x7f050310; + public static final int pref_item_update_summary=0x7f050312; /** Update between releases */ - public static final int pref_item_update_title=0x7f05030f; + public static final int pref_item_update_title=0x7f050311; /** Label for the first player color preference Label for the first player color preference First player @@ -5592,27 +5594,27 @@ XLATE-ME Used when prev player's name can't be looked up Your opponent */ - public static final int prev_player=0x7f0502b8; - public static final int processing_games=0x7f050329; + public static final int prev_player=0x7f0502b9; + public static final int processing_games=0x7f05032b; /** Downloading */ - public static final int progress_title=0x7f0502ac; + public static final int progress_title=0x7f0502ad; /** Words no longer than */ - public static final int prompt_max_len=0x7f0501e7; + public static final int prompt_max_len=0x7f0501e8; /** Words no shorter than */ - public static final int prompt_min_len=0x7f0501e6; + public static final int prompt_min_len=0x7f0501e7; /** XLATE-ME Relay device port */ - public static final int proxy_port=0x7f0502f1; + public static final int proxy_port=0x7f0502f3; /** Short for "points", this is shown at the right end of the tray in place of the first tile placed along with the points the current move would earn if committed. @@ -5645,17 +5647,17 @@ XLATE-ME Title for generic dialog asking a question, usually in the middle of a game, like "do you want to commit this move?" */ - public static final int query_title=0x7f0501ab; - public static final int radio_name_cdma=0x7f050301; - public static final int radio_name_gsm=0x7f050300; + public static final int query_title=0x7f0501ac; + public static final int radio_name_cdma=0x7f050303; + public static final int radio_name_gsm=0x7f050302; /** XLATE-ME Don\'t pretend */ - public static final int radio_name_real=0x7f0502fe; + public static final int radio_name_real=0x7f050300; /** XLATE-ME Tablet/no radio */ - public static final int radio_name_tablet=0x7f0502ff; + public static final int radio_name_tablet=0x7f050301; /** ############################################################ # :Dialogs: @@ -5695,8 +5697,8 @@ XLATE-ME /** XLATE-ME Invite redirect host */ - public static final int redir_host=0x7f0502e4; - public static final int rel_invite_title=0x7f050327; + public static final int redir_host=0x7f0502e6; + public static final int rel_invite_title=0x7f050329; /** Title of dialog used to alert players to relay-related problems with the current game. the color of text, e.g. "2L", shown on a bonus square on the @@ -5712,36 +5714,36 @@ XLATE-ME public static final int relay_alert=0x7f0500ea; /** Message from relay */ - public static final int relay_alert_title=0x7f050262; + public static final int relay_alert_title=0x7f050263; /** XLATE-ME Relay host */ - public static final int relay_host=0x7f0502e3; - public static final int relay_invite_title=0x7f050200; + public static final int relay_host=0x7f0502e5; + public static final int relay_invite_title=0x7f050201; /** XLATE-ME Relay game port */ - public static final int relay_port=0x7f0502f0; + public static final int relay_port=0x7f0502f2; /** Shown in toast when relaunching after switching dicts Shown in toast when relaunching after switching dicts Reloading game with %1$s Shown in toast when relaunching after switching dicts */ - public static final int reload_new_dict_fmt=0x7f050245; + public static final int reload_new_dict_fmt=0x7f050246; /** XLATE-ME Issuing rematch invitation. You will see this message until it has been accepted.\n\nYou do not need to keep this game open while waiting. You will be notified when the game is ready to play. */ - public static final int rematch_msg=0x7f0502da; - public static final int rematch_name_fmt=0x7f0502c2; + public static final int rematch_msg=0x7f0502dc; + public static final int rematch_name_fmt=0x7f0502c3; /** Processing wordlist information… */ - public static final int remote_digesting=0x7f0502a6; + public static final int remote_digesting=0x7f0502a7; /** Fetching wordlist information from server… */ - public static final int remote_empty=0x7f0502a5; + public static final int remote_empty=0x7f0502a6; /** checkbox determining of this player is on this device or remote. If remote, then the rest of the fields disappear (since they will be set by the remote device.) @@ -5757,16 +5759,16 @@ XLATE-ME /** Unable to fetch wordlist information from server. */ - public static final int remote_no_net=0x7f0502a7; + public static final int remote_no_net=0x7f0502a8; /** Remote device undid a turn. */ - public static final int remote_undone=0x7f050215; + public static final int remote_undone=0x7f050216; /** Change the name of this group to: */ - public static final int rename_group_label=0x7f050259; + public static final int rename_group_label=0x7f05025a; /** text within rename dialog (triggered by selecting list_item_rename) text within rename dialog (triggered by selecting @@ -5856,16 +5858,16 @@ XLATE-ME title for popup of public rooms found on server */ public static final int room_public_prompt=0x7f0500bf; - public static final int seeking_relay=0x7f050314; + public static final int seeking_relay=0x7f050316; /** Games: %1$d */ - public static final int sel_games_fmt=0x7f050265; + public static final int sel_games_fmt=0x7f050266; /** Groups: %1$d */ - public static final int sel_groups_fmt=0x7f050266; + public static final int sel_groups_fmt=0x7f050267; /** Selected: %1$d */ - public static final int sel_items_fmt=0x7f050281; + public static final int sel_items_fmt=0x7f050282; /** ############################################################ # :Dialogs: @@ -5889,7 +5891,7 @@ XLATE-ME /** XLATE-ME Hide buttons */ - public static final int set_pref=0x7f0502d0; + public static final int set_pref=0x7f0502d1; /** text of separator marking out other-setting area of the dialog see move_dictf above @@ -5950,10 +5952,10 @@ XLATE-ME public static final int show_arrow_summary=0x7f05013a; /** Show downloadable */ - public static final int show_remote=0x7f0502aa; + public static final int show_remote=0x7f0502ab; /** Wordlist browser */ - public static final int show_wordlist_browser=0x7f050261; + public static final int show_wordlist_browser=0x7f050262; /** If this preference is checked, the user will not be asked to confirm after selecting the "Turn done" menu (or tapping the points display at the right end of the tray) @@ -5975,37 +5977,37 @@ XLATE-ME public static final int skip_confirm_turn_summary=0x7f050150; /** Delete selected */ - public static final int slmenu_clear_sel=0x7f050277; + public static final int slmenu_clear_sel=0x7f050278; /** Copy to clipboard */ - public static final int slmenu_copy_sel=0x7f050276; + public static final int slmenu_copy_sel=0x7f050277; /** Unselect all */ - public static final int slmenu_deselect_all=0x7f050280; + public static final int slmenu_deselect_all=0x7f050281; /** Select all */ - public static final int slmenu_select_all=0x7f05027f; + public static final int slmenu_select_all=0x7f050280; /** XLATE-ME The version of Crosswords on the phone with number \"%1$s\" is incompatible with this one for play using SMS. One of you may need to upgrade before you can continue. */ - public static final int sms_bad_proto_fmt=0x7f0501f8; + public static final int sms_bad_proto_fmt=0x7f0501f9; /** Title of phone number picker during invitation to a game via SMS Title of phone number picker during invitation to a game via SMS SMS Invitation */ - public static final int sms_invite_title=0x7f0501ff; + public static final int sms_invite_title=0x7f050200; /** Tap the receiving device now */ - public static final int sms_ready_text=0x7f05026e; + public static final int sms_ready_text=0x7f05026f; /** Square rack tiles */ - public static final int square_tiles=0x7f05025e; + public static final int square_tiles=0x7f05025f; /** Even if they can be taller */ - public static final int square_tiles_summary=0x7f05025f; + public static final int square_tiles_summary=0x7f050260; /** Used in formatting moves and history Used to separate names of players when listing them on one line in a game summary. The \u0020 is a space in xml. @@ -6034,7 +6036,7 @@ XLATE-ME be disabling the buttons in this case, but if I don't and you try to get a hint you'll get this message instead. */ - public static final int str_cant_hint_while_disabled=0x7f05018c; + public static final int str_cant_hint_while_disabled=0x7f05018d; /** Displayed if you try to use the undo menuitem or button and there are no tiles on the board (no move has yet been made.) [If I'm being clever and disabling those features in this @@ -6050,7 +6052,7 @@ XLATE-ME [If I'm being clever and disabling those features in this case there may be no way to see this.] */ - public static final int str_cant_undo_tileassign=0x7f05018b; + public static final int str_cant_undo_tileassign=0x7f05018c; /** Beginning of the message presented to a user when asking him to confirm committing the current turn Used in formatting reports of trades (exchanges of tiles). @@ -6092,8 +6094,8 @@ XLATE-ME because there is empty space between some of the tiles placed, i.e. they do not form a single word. */ - public static final int str_no_empties_in_turn=0x7f050184; - public static final int str_no_hint_found=0x7f05031f; + public static final int str_no_empties_in_turn=0x7f050185; + public static final int str_no_hint_found=0x7f050321; /** Same as above, but used when you try to show tiles belonging to a player on another device (a remote player.) Same as above, but used when you try to show tiles belonging @@ -6103,7 +6105,7 @@ XLATE-ME Same as above, but used when you try to show tiles belonging to a player on another device (a remote player.) */ - public static final int str_no_peek_remote_tiles=0x7f050189; + public static final int str_no_peek_remote_tiles=0x7f05018a; /** Displayed when you try to reveal a robot player's tiles, either by tapping on its "hidden" rack (marked by "?" characters) or by tapping on its scoreboard entry. (The @@ -6125,7 +6127,7 @@ XLATE-ME controlled by the peek_other preference and is disabled by default.) */ - public static final int str_no_peek_robot_tiles=0x7f050188; + public static final int str_no_peek_robot_tiles=0x7f050189; /** Used, with remote player's name substituted for %1$s, to indicate that the player is remote. Used, with remote player's name substituted for %1$s, to @@ -6144,7 +6146,7 @@ XLATE-ME Displyed when you try to commit a move and it's not your turn. */ - public static final int str_not_your_turn=0x7f050187; + public static final int str_not_your_turn=0x7f050188; /** Used in formatting game history and move summaries Used in formatting game history and move summaries pass\n @@ -6164,7 +6166,7 @@ XLATE-ME public static final int str_phony_rejected=0x7f05010d; /** [#%d] %s: %d */ - public static final int str_placer_fmt=0x7f050240; + public static final int str_placer_fmt=0x7f050241; /** Shown when using the the Game configure screen to configure a networked game and you try to make all players local. Shown when using the the Game configure screen to configure a @@ -6196,7 +6198,7 @@ XLATE-ME many players are expected and only connects devices where the numbers match. */ - public static final int str_reg_unexpected_user=0x7f05018d; + public static final int str_reg_unexpected_user=0x7f05018e; /** Used in formatting remote player move summaries Used in formatting remote player move summaries Remote player %1$s made this @@ -6206,7 +6208,7 @@ XLATE-ME public static final int str_remote_moved_fmt=0x7f050106; /** [Resigned] %s: %d */ - public static final int str_resigned_fmt=0x7f05023f; + public static final int str_resigned_fmt=0x7f050240; /** ############################################################ # Board info/error dialog messages @@ -6240,7 +6242,7 @@ XLATE-ME play in a different language. As with the above, this should be impossible when connecting via the relay. */ - public static final int str_server_dict_wins=0x7f05018e; + public static final int str_server_dict_wins=0x7f05018f; /** Displayed when you try to commit a turn that is illegal because tiles played do not touch other tiles already on the board (or the middle/star square in the case of the initial @@ -6257,7 +6259,7 @@ XLATE-ME board (or the middle/star square in the case of the initial move.) */ - public static final int str_tiles_must_contact=0x7f050186; + public static final int str_tiles_must_contact=0x7f050187; /** error messages @@ -6287,7 +6289,7 @@ XLATE-ME because the tiles placed are not all in the same row or column. */ - public static final int str_tiles_not_in_line=0x7f050183; + public static final int str_tiles_not_in_line=0x7f050184; /** Displayed when you try to begin a trade but there are not seven or more tiles in the pool. The rules don't allow trading in this case. @@ -6300,7 +6302,7 @@ XLATE-ME seven or more tiles in the pool. The rules don't allow trading in this case. */ - public static final int str_too_few_tiles_left_to_trade=0x7f05018a; + public static final int str_too_few_tiles_left_to_trade=0x7f05018b; /** Displayed when you try to commit the first move of the game and are playing a single tile. The first move must include two or more tiles. @@ -6313,12 +6315,12 @@ XLATE-ME and are playing a single tile. The first move must include two or more tiles. */ - public static final int str_two_tiles_first_move=0x7f050185; + public static final int str_two_tiles_first_move=0x7f050186; /** Used in formatting final scores display Used in formatting final scores display [Winner] %s: %d */ - public static final int str_winner_fmt=0x7f05023e; + public static final int str_winner_fmt=0x7f05023f; /** Used in formatting game history (not move summaries since information about the current rack is hidden then) Used in formatting game history (not move summaries since @@ -6400,18 +6402,18 @@ string name="str_robot_moved">Robot provedl tento tah:Your words for: */ - public static final int study_langpick=0x7f05027a; + public static final int study_langpick=0x7f05027b; /** You have not yet saved any words into a studylist for %1$s. */ - public static final int study_no_lang_fmt=0x7f05027b; + public static final int study_no_lang_fmt=0x7f05027c; /** You have not yet saved any words into a studylist. */ - public static final int study_no_lists=0x7f05027c; + public static final int study_no_lists=0x7f05027d; /** Studylist for %1$s */ - public static final int studylist_title_fmt=0x7f050279; + public static final int studylist_title_fmt=0x7f05027a; /** If substituting an existing same-language wordlist by choosing button_substdict user gets to choose from a list of wordlists. This is the title of that list. @@ -6423,19 +6425,19 @@ string name="str_robot_moved">Robot provedl tento tah:Game in play */ - public static final int summary_conn=0x7f0501f3; + public static final int summary_conn=0x7f0501f4; /** Game in play with %1$s */ - public static final int summary_conn_sms_fmt=0x7f050213; + public static final int summary_conn_sms_fmt=0x7f050214; /** Preference to control what's listed next to game name in the first line of a game summary in the main games-list screen, e.g., if the option is "Game Language", "English" in the @@ -6465,7 +6467,7 @@ string name="str_robot_moved">Robot provedl tento tah:Game over\u200C */ - public static final int summary_gameover=0x7f0501f2; + public static final int summary_gameover=0x7f0501f3; /** The display of each networked game includes one of three states it can be in in the process of connecting to the relay. These next three strings are used to create those @@ -6519,7 +6521,7 @@ string name="str_robot_moved">Robot provedl tento tah:(GSM phones only) */ - public static final int summary_send_data_sms=0x7f0502eb; + public static final int summary_send_data_sms=0x7f0502ed; /** explanation of the above explanation of the above Sort racks whenever new tiles @@ -6530,16 +6532,16 @@ string name="str_robot_moved">Robot provedl tento tah:Offer to add to and display lists of words to remember */ - public static final int summary_studyon=0x7f050274; + public static final int summary_studyon=0x7f050275; /** Thumbnail size */ - public static final int summary_thumbsize=0x7f050267; + public static final int summary_thumbsize=0x7f050268; /** Unconnected */ - public static final int summary_wait_guest=0x7f0501f1; + public static final int summary_wait_guest=0x7f0501f2; /** Waiting for connection[s] @@ -6547,7 +6549,7 @@ string name="str_robot_moved">Robot provedl tento tah:Robot provedl tento tah:Disabled */ - public static final int thumb_off=0x7f050268; + public static final int thumb_off=0x7f050269; /** color of the tiles' background color of the "crosshairs", lines drawn vertically and horizontally through the square the user is currently @@ -6576,13 +6578,13 @@ string name="str_robot_moved">Robot provedl tento tah:Pick for me */ - public static final int tilepick_all=0x7f0501db; + public static final int tilepick_all=0x7f0501dc; /** Undo last\u200C */ - public static final int tilepick_undo=0x7f0501da; + public static final int tilepick_undo=0x7f0501db; /** title of dialog brought up in response to the board_menu_game_left menu. The dialog lists all tiles remaining in the pool, i.e. not on the board or in the rack @@ -6597,14 +6599,14 @@ string name="str_robot_moved">Robot provedl tento tah:Communicate via */ - public static final int title_addrs_pref=0x7f0502bf; + public static final int title_addrs_pref=0x7f0502c0; /** ############################################################ # :Screens: @@ -6677,10 +6679,10 @@ string name="str_robot_moved">Robot provedl tento tah:Tap to look up */ - public static final int title_lookup=0x7f0501cf; + public static final int title_lookup=0x7f0501d0; /** Tap to look up or study */ - public static final int title_lookup_study=0x7f0501d0; + public static final int title_lookup_study=0x7f0501d1; /** ############################################################ # :Screens: @@ -6725,7 +6727,7 @@ string name="str_robot_moved">Robot provedl tento tah:Send SMS as data */ - public static final int title_send_data_sms=0x7f0502ea; + public static final int title_send_data_sms=0x7f0502ec; /** If this preference is checked, tiles in the rack will be re-ordered alphabetically whenever tiles are added, i.e. after ever move. @@ -6740,7 +6742,7 @@ string name="str_robot_moved">Robot provedl tento tah:Enable studylists */ - public static final int title_studyon=0x7f050273; + public static final int title_studyon=0x7f050274; /** title of dialog allowing user to pick tiles "face up". (This feature is not yet supported on Android.) @@ -6844,16 +6846,16 @@ string name="str_robot_moved">Robot provedl tento tah:Updates are available for one or more installed wordlists. Would you like to download the new version[s] of %1$s now? */ - public static final int update_dicts_fmt=0x7f0502ab; + public static final int update_dicts_fmt=0x7f0502ac; /** XLATE-ME Use defaults */ - public static final int use_defaults=0x7f0502c6; + public static final int use_defaults=0x7f0502c7; /** text of checkbox controlling whether there's a game timer text of checkbox. If this checkbox is checked, games created for network play will by default have the hint feature @@ -6870,31 +6872,34 @@ string name="str_robot_moved">Robot provedl tento tah:\u0020vs.\u0020 */ public static final int vs_join=0x7f050110; + /** Button for alert with title above + */ + public static final int waiting_invite_title=0x7f0502d4; /** XLATE-ME Waiting for players */ - public static final int waiting_title=0x7f0502d2; + public static final int waiting_title=0x7f0502d3; /** XLATE-ME Bluetooth is currently off on this device. No moves will be sent via Bluetooth.\n\nYou can enable Bluetooth now, or later. */ - public static final int warn_bt_disabled=0x7f050234; + public static final int warn_bt_disabled=0x7f050235; /** XLATE-ME Every networked game must have at least one way of communicating. If you have no default connection options every new networked game will have to be configured manually. */ - public static final int warn_no_comms=0x7f0502d6; + public static final int warn_no_comms=0x7f0502d8; /** The number %1$s for %2$s is not a \"mobile\" number. Import anyway? */ - public static final int warn_nomobile_fmt=0x7f05020b; + public static final int warn_nomobile_fmt=0x7f05020c; /** Play via SMS is currently @@ -6907,31 +6912,31 @@ activer les parties par SMS, allez dans Paramètres->Paramètres des parties en réseau.) */ - public static final int warn_sms_disabled=0x7f050233; + public static final int warn_sms_disabled=0x7f050234; /** Are you certain this number is on an account with unlimited texting? Click cancel if you are not. */ - public static final int warn_unlimited=0x7f050214; - public static final int wifi_warning=0x7f050318; + public static final int warn_unlimited=0x7f050215; + public static final int wifi_warning=0x7f05031a; /** First letters */ - public static final int word_search_hint=0x7f0501d9; + public static final int word_search_hint=0x7f0501da; /** Add option to every screen menu */ - public static final int xlations_enabled_summary=0x7f050286; + public static final int xlations_enabled_summary=0x7f050287; /** Enable local translating */ - public static final int xlations_enabled_title=0x7f050285; + public static final int xlations_enabled_title=0x7f050286; /** XLATE-ME Fake locale for translation */ - public static final int xlations_locale=0x7f0502f6; + public static final int xlations_locale=0x7f0502f8; /** Empty in English, this should contain the name of the translator/creator of the strings.xml file for this language @@ -6945,7 +6950,7 @@ réseau.) translator/creator of the strings.xml file for this language */ - public static final int xlator=0x7f0501c7; + public static final int xlator=0x7f0501c8; public static final int xwords_nfc_mime=0x7f05007c; } public static final class style { diff --git a/xwords4/android/XWords4/res/values/strings.xml b/xwords4/android/XWords4/res/values/strings.xml index b15cc270e..4bd73c93f 100644 --- a/xwords4/android/XWords4/res/values/strings.xml +++ b/xwords4/android/XWords4/res/values/strings.xml @@ -545,6 +545,12 @@ players. Would you like to invite someone to join -- assuming you haven\'t already? + + You have already invited a remote player to + this game. We are waiting for him/her to connect back. + You have already invited %1$d players to + this game. We are waiting for them to connect back. + Or just Tap to Invite -- if the other @@ -1173,6 +1179,7 @@ it immediately because an email or messaging app will be launched to send your invitation. --> Invite now + More info Drop Relay + Waiting for response + Wait (This dialog will stay up until all remote players have connected. You can close the game if you - expect it to take a while. They will still be able to - connect.) + expect it to take a while. Remote players will still be able to + connect, and you will be notified when they do.) To invite via NFC just touch the back of this device against the one you want to invite—any time the 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 ea84bf59c..c74a879dd 100644 --- a/xwords4/android/XWords4/res_src/values-ba_CK/strings.xml +++ b/xwords4/android/XWords4/res_src/values-ba_CK/strings.xml @@ -464,6 +464,12 @@ sreyalp. Dluow uoy ekil ot etivni enoemos ot nioj -- gnimussa uoy nevah\'t ?ydaerla + + Uoy evah ydaerla detivni a etomer reyalp ot + siht emag. Ew era gnitiaw rof reh/mih ot tcennoc kcab. + Uoy evah ydaerla detivni %1$d sreyalp ot + siht emag. Ew era gnitiaw rof meht ot tcennoc kcab. + Ro tsuj Pat ot Etivni -- fi eht rehto ecived osla sah Diordna Gnimaeb dna si ybraen. @@ -1009,6 +1015,7 @@ it immediately because an email or messaging app will be launched to send your invitation. --> Etivni won + Erom ofni Pord Yaler @@ -2091,11 +2098,13 @@ Gnitiaw rof sreyalp + Gnitiaw rof esnopser + Tiaw sIht( golaid lliw yats pu litnu lla etomer sreyalp evah detcennoc. Uoy nac esolc eht emag fi uoy - tcepxe ti ot ekat a elihw. Yeht lliw llits eb elba ot - tcennoc.) + tcepxe ti ot ekat a elihw. Etomer sreyalp lliw llits eb elba ot + ,tcennoc dna uoy lliw eb deifiton nehw yeht od.) Ot etivni aiv CFN tsuj hcuot eht kcab fo siht ecived tsniaga eht eno uoy tnaw ot yna—etivni emit eht emag si nepo. 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 5e3147cc4..5cbbf0708 100644 --- a/xwords4/android/XWords4/res_src/values-ca_PS/strings.xml +++ b/xwords4/android/XWords4/res_src/values-ca_PS/strings.xml @@ -464,6 +464,12 @@ PLAYERS. WOULD YOU LIKE TO INVITE SOMEONE TO JOIN -- ASSUMING YOU HAVEN\'T ALREADY? + + YOU HAVE ALREADY INVITED A REMOTE PLAYER TO + THIS GAME. WE ARE WAITING FOR HIM/HER TO CONNECT BACK. + YOU HAVE ALREADY INVITED %1$d PLAYERS TO + THIS GAME. WE ARE WAITING FOR THEM TO CONNECT BACK. + OR JUST TAP TO INVITE -- IF THE OTHER DEVICE ALSO HAS ANDROID BEAMING AND IS NEARBY. @@ -1009,6 +1015,7 @@ it immediately because an email or messaging app will be launched to send your invitation. --> INVITE NOW + MORE INFO DROP RELAY @@ -2091,11 +2098,13 @@ WAITING FOR PLAYERS + WAITING FOR RESPONSE + WAIT (THIS DIALOG WILL STAY UP UNTIL ALL REMOTE PLAYERS HAVE CONNECTED. YOU CAN CLOSE THE GAME IF YOU - EXPECT IT TO TAKE A WHILE. THEY WILL STILL BE ABLE TO - CONNECT.) + EXPECT IT TO TAKE A WHILE. REMOTE PLAYERS WILL STILL BE ABLE TO + CONNECT, AND YOU WILL BE NOTIFIED WHEN THEY DO.) TO INVITE VIA NFC JUST TOUCH THE BACK OF THIS DEVICE AGAINST THE ONE YOU WANT TO INVITE—ANY TIME THE GAME IS OPEN. 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 8919ad945..62356b3bc 100644 --- a/xwords4/android/XWords4/src/org/eehouse/android/xw4/BoardDelegate.java +++ b/xwords4/android/XWords4/src/org/eehouse/android/xw4/BoardDelegate.java @@ -96,6 +96,7 @@ public class BoardDelegate extends DelegateBase private View m_tradeButtons; private Button m_exchCommmitButton; private Button m_exchCancelButton; + private DBUtils.SentInvitesInfo m_sentInfo; private ArrayList m_pendingChats; @@ -431,7 +432,15 @@ public class BoardDelegate extends DelegateBase lstnr = new OnClickListener() { public void onClick( DialogInterface dialog, int item ) { - if ( m_relayConnected || + if ( null != m_sentInfo + && m_sentInfo.getPlayerCount() >= m_nMissing ) { + // PENDING: probably want a new dialog here + // that includes "resend" and "new invitation" + // buttons, the latter allowing to address it + // differently. Might also want option to + // delete game here too. + showOKOnlyDialog( m_sentInfo.getAsText() ); + } else if ( m_relayConnected || ! m_connTypes.contains(CommsConnType.COMMS_CONN_RELAY) ) { showInviteChoicesThen( Action.LAUNCH_INVITE_ACTION ); } else { @@ -504,21 +513,33 @@ public class BoardDelegate extends DelegateBase buttonTxt = R.string.newgame_drop_relay; } } else { - titleID = R.string.waiting_title; - message = getQuantityString( R.plurals.invite_msg_fmt, - m_nMissing, m_nMissing ); - - String ps = null; - if ( m_nMissing > 1 ) { - ps = getString( R.string.invite_multiple ); + m_sentInfo = DBUtils.getInvitesFor( m_activity, m_rowid ); + int nSent = m_sentInfo.getPlayerCount(); + boolean haveSent = nSent >= m_nMissing; + if ( haveSent ) { + titleID = R.string.waiting_invite_title; + message = getQuantityString( R.plurals.invite_sent_fmt, + nSent, nSent ); + buttonTxt = R.string.newgame_invite_more; } else { - boolean[] avail = NFCUtils.nfcAvail( m_activity ); - if ( avail[1] ) { - ps = getString( R.string.invite_if_nfc ); - } + titleID = R.string.waiting_title; + message = getQuantityString( R.plurals.invite_msg_fmt, + m_nMissing, m_nMissing ); } - if ( null != ps ) { - message += "\n\n" + ps; + + if ( ! haveSent ) { + String ps = null; + if ( m_nMissing > 1 ) { + ps = getString( R.string.invite_multiple ); + } else { + boolean[] avail = NFCUtils.nfcAvail( m_activity ); + if ( avail[1] ) { + ps = getString( R.string.invite_if_nfc ); + } + } + if ( null != ps ) { + message += "\n\n" + ps; + } } message += "\n\n" + getString( R.string.invite_stays ); @@ -2416,6 +2437,9 @@ public class BoardDelegate extends DelegateBase } break; } + + DBUtils.recordInviteSent( m_activity, m_rowid, + m_missingMeans, dev ); } m_missingDevs = null; m_missingCounts = null; diff --git a/xwords4/android/XWords4/src/org/eehouse/android/xw4/DBHelper.java b/xwords4/android/XWords4/src/org/eehouse/android/xw4/DBHelper.java index 3796f9bb2..fac3c5819 100644 --- a/xwords4/android/XWords4/src/org/eehouse/android/xw4/DBHelper.java +++ b/xwords4/android/XWords4/src/org/eehouse/android/xw4/DBHelper.java @@ -41,8 +41,9 @@ public class DBHelper extends SQLiteOpenHelper { public static final String TABLE_NAME_STUDYLIST = "study"; public static final String TABLE_NAME_LOC = "loc"; public static final String TABLE_NAME_PAIRS = "pairs"; + public static final String TABLE_NAME_INVITES = "invites"; private static final String DB_NAME = "xwdb"; - private static final int DB_VERSION = 24; + private static final int DB_VERSION = 25; public static final String GAME_NAME = "GAME_NAME"; public static final String VISID = "VISID"; @@ -104,6 +105,10 @@ public class DBHelper extends SQLiteOpenHelper { public static final String BLESSED = "BLESSED"; public static final String XLATION = "XLATION"; + public static final String ROW = "ROW"; + public static final String MEANS = "MEANS"; + public static final String TARGET = "TARGET"; + public static final String TIMESTAMP = "TIMESTAMP"; private Context m_context; @@ -194,6 +199,13 @@ public class DBHelper extends SQLiteOpenHelper { ,{ "UNIQUE", "(" + KEY + ")" } }; + private static final String[][] s_invitesSchema = { + { ROW, "INTEGER" } + ,{ TARGET, "TEXT" } + ,{ MEANS, "INTEGER" } + ,{ TIMESTAMP, "DATETIME DEFAULT CURRENT_TIMESTAMP" } + }; + public DBHelper( Context context ) { super( context, DB_NAME, null, DB_VERSION ); @@ -217,6 +229,7 @@ public class DBHelper extends SQLiteOpenHelper { createStudyTable( db ); createLocTable( db ); createPairsTable( db ); + createInvitesTable( db ); } @Override @@ -283,6 +296,9 @@ public class DBHelper extends SQLiteOpenHelper { if ( !madeSumTable ) { addSumColumn( db, EXTRAS ); } + case 24: + createInvitesTable( db ); + break; default: db.execSQL( "DROP TABLE " + TABLE_NAME_SUM + ";" ); @@ -381,6 +397,11 @@ public class DBHelper extends SQLiteOpenHelper { createTable( db, TABLE_NAME_PAIRS, s_pairsSchema ); } + private void createInvitesTable( SQLiteDatabase db ) + { + createTable( db, TABLE_NAME_INVITES, s_invitesSchema ); + } + // Move all existing games to the row previously named "cur games' private void moveToCurGames( SQLiteDatabase db ) { diff --git a/xwords4/android/XWords4/src/org/eehouse/android/xw4/DBUtils.java b/xwords4/android/XWords4/src/org/eehouse/android/xw4/DBUtils.java index c524db255..7768ea561 100644 --- a/xwords4/android/XWords4/src/org/eehouse/android/xw4/DBUtils.java +++ b/xwords4/android/XWords4/src/org/eehouse/android/xw4/DBUtils.java @@ -34,6 +34,8 @@ import android.net.Uri; import android.os.Environment; import android.text.TextUtils; +import java.sql.Timestamp; + import java.io.ByteArrayOutputStream; import java.io.File; import java.io.FileInputStream; @@ -52,10 +54,11 @@ import java.util.Set; import java.util.StringTokenizer; import junit.framework.Assert; +import org.eehouse.android.xw4.DictUtils.DictLoc; +import org.eehouse.android.xw4.DlgDelegate.DlgClickNotify.InviteMeans; import org.eehouse.android.xw4.jni.*; import org.eehouse.android.xw4.jni.CommsAddrRec.CommsConnType; import org.eehouse.android.xw4.jni.CommsAddrRec.CommsConnTypeSet; -import org.eehouse.android.xw4.DictUtils.DictLoc; import org.eehouse.android.xw4.loc.LocUtils; public class DBUtils { @@ -426,6 +429,84 @@ public class DBUtils { return result; } + public static class SentInvitesInfo { + public long m_rowid; + private int m_count = 0; + private InviteMeans m_means; + private String m_target; + private Timestamp m_timestamp; + + private SentInvitesInfo( long rowID ) { + m_rowid = rowID; + } + + private void addEntry( InviteMeans means, String target, Timestamp ts ) + { + Assert.assertTrue( 0 == m_count ); + ++m_count; + m_means = means; + m_target = target; + m_timestamp = ts; + } + + public int getPlayerCount() { + return m_count; + } + + public String getAsText() { + return String.format( "Invite sent to dev %s via %s on %s", m_target, + m_means.toString(), m_timestamp.toString() ); + } + } + + public static SentInvitesInfo getInvitesFor( Context context, long rowid ) + { + SentInvitesInfo result = new SentInvitesInfo( rowid ); + + String[] columns = { DBHelper.MEANS, DBHelper.TIMESTAMP, DBHelper.TARGET }; + String selection = String.format( "%s = %d", DBHelper.ROW, rowid ); + + synchronized( s_dbHelper ) { + SQLiteDatabase db = s_dbHelper.getReadableDatabase(); + Cursor cursor = db.query( DBHelper.TABLE_NAME_INVITES, columns, + selection, null, null, null, null ); + if ( 0 < cursor.getCount() ) { + int indxMns = cursor.getColumnIndex( DBHelper.MEANS ); + int indxTS = cursor.getColumnIndex( DBHelper.TIMESTAMP ); + int indxTrgt = cursor.getColumnIndex( DBHelper.TARGET ); + + while ( cursor.moveToNext() ) { + InviteMeans means = InviteMeans.values()[cursor.getInt( indxMns )]; + Timestamp ts = Timestamp.valueOf(cursor.getString(indxTS)); + String target = cursor.getString( indxTrgt ); + result.addEntry( means, target, ts ); + } + } + cursor.close(); + db.close(); + } + + return result; + } + + // Only record the most recent for a given recipient! Or not. If I send to K via SMS + public static void recordInviteSent( Context context, long rowid, + InviteMeans means, String target ) + { + ContentValues values = new ContentValues(); + values.put( DBHelper.ROW, rowid ); + values.put( DBHelper.MEANS, means.ordinal() ); + values.put( DBHelper.TARGET, target ); + + initDB( context ); + synchronized( s_dbHelper ) { + SQLiteDatabase db = s_dbHelper.getWritableDatabase(); + db.insert( DBHelper.TABLE_NAME_INVITES, null, values ); + db.close(); + } + + } + private static void setInt( long rowid, String column, int value ) { ContentValues values = new ContentValues(); @@ -938,11 +1019,17 @@ public class DBUtils { public static void deleteGame( Context context, GameLock lock ) { Assert.assertTrue( lock.canWrite() ); - String selection = String.format( ROW_ID_FMT, lock.getRowid() ); + String selSummaries = String.format( ROW_ID_FMT, lock.getRowid() ); + String selInvites = String.format( "%s=%d", DBHelper.ROW, lock.getRowid() ); + initDB( context ); synchronized( s_dbHelper ) { SQLiteDatabase db = s_dbHelper.getWritableDatabase(); - db.delete( DBHelper.TABLE_NAME_SUM, selection, null ); + db.delete( DBHelper.TABLE_NAME_SUM, selSummaries, null ); + + // Delete invitations too + db.delete( DBHelper.TABLE_NAME_INVITES, selInvites, null ); + db.close(); } notifyListeners( lock.getRowid(), GameChangeType.GAME_DELETED ); 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 ffd2ad24c..b65da7b35 100644 --- a/xwords4/android/XWords4/src/org/eehouse/android/xw4/DlgDelegate.java +++ b/xwords4/android/XWords4/src/org/eehouse/android/xw4/DlgDelegate.java @@ -138,6 +138,8 @@ public class DlgDelegate { private static final String STATE_KEYF = "STATE_%d"; public interface DlgClickNotify { + // These are stored in the INVITES table. Don't change order + // gratuitously public static enum InviteMeans { SMS, EMAIL, NFC, BLUETOOTH, CLIPBOARD, RELAY, }; From 73a7a8836fc46c18d2ebb08294cb1dc9e6c11f9b Mon Sep 17 00:00:00 2001 From: Eric House Date: Sat, 9 Jan 2016 06:58:18 -0800 Subject: [PATCH 05/37] show in game list item if invitations pending --- xwords4/android/XWords4/archive/R.java | 1347 +++++++++-------- .../android/XWords4/res/values/strings.xml | 2 + .../XWords4/res_src/values-ba_CK/strings.xml | 1 + .../XWords4/res_src/values-ca_PS/strings.xml | 1 + .../org/eehouse/android/xw4/GameListItem.java | 2 +- .../eehouse/android/xw4/jni/GameSummary.java | 34 +- 6 files changed, 704 insertions(+), 683 deletions(-) diff --git a/xwords4/android/XWords4/archive/R.java b/xwords4/android/XWords4/archive/R.java index 1957142f6..20de8b44d 100644 --- a/xwords4/android/XWords4/archive/R.java +++ b/xwords4/android/XWords4/archive/R.java @@ -628,7 +628,7 @@ string name="str_robot_moved">O robô fez esta jogada:\u0020 copyright info */ - public static final int about_copyright=0x7f0501c6; + public static final int about_copyright=0x7f0501c7; /** Another paragraph giving credit for work done other than by Eric House and translators Another paragraph giving credit for work done other than by @@ -637,7 +637,7 @@ string name="str_robot_moved">O robô fez esta jogada:\u0020O robô fez esta jogada:\u0020For a manual or sourcecode see: @@ -679,42 +679,42 @@ string name="str_robot_moved">O robô fez esta jogada:\u0020 Another paragraph in the about dialog */ - public static final int about_web=0x7f0501c7; + public static final int about_web=0x7f0501c8; /** %1$s added to %2$s studylist */ - public static final int add_done_fmt=0x7f050279; + public static final int add_done_fmt=0x7f05027a; /** Add %1$s to studylist */ - public static final int add_to_study_fmt=0x7f050273; + public static final int add_to_study_fmt=0x7f050274; /** Debugging stuff. Localize if you think your langauge users will care. XLATE-ME For debugging */ - public static final int advanced=0x7f0502e3; + public static final int advanced=0x7f0502e4; /** This button takes you to the normal Game Configure screen This button takes you to the normal Game Configure screen Advanced game settings This button takes you to the normal Game Configure screen */ - public static final int advanced_config=0x7f050182; + public static final int advanced_config=0x7f050183; /** XLATE-ME You should never need these... */ - public static final int advanced_summary=0x7f0502e4; + public static final int advanced_summary=0x7f0502e5; /** The wordlist %1$s contains only tile information. There are no words to browse. */ - public static final int alert_empty_dict_fmt=0x7f0501e4; + public static final int alert_empty_dict_fmt=0x7f0501e5; public static final int app_name=0x7f050081; /** Unable to connect to Crosswords on the device %1$s. Please check that the device is within range and that Crosswords is installed on it. */ - public static final int app_not_found_fmt=0x7f0502be; + public static final int app_not_found_fmt=0x7f0502bf; public static final int app_version=0x7f050000; /** the background color of the area outside the board, e.g. between entries in the scoreboard @@ -724,7 +724,7 @@ XLATE-ME the background color of the area outside the board, e.g. between entries in the scoreboard */ - public static final int background=0x7f050146; + public static final int background=0x7f050147; /** Appended to the above in the phonies_warn case. User may ignore the warning Appended to the above in the phonies_warn case. User may @@ -734,7 +734,7 @@ XLATE-ME Appended to the above in the phonies_warn case. User may ignore the warning */ - public static final int badwords_accept=0x7f0500f1; + public static final int badwords_accept=0x7f0500f2; /** Appended to the above in the phonies_disallow case. User has lost his turn. Appended to the above in the phonies_disallow case. User has @@ -743,22 +743,22 @@ XLATE-ME Appended to the above in the phonies_disallow case. User has lost his turn. */ - public static final int badwords_lost=0x7f0500f2; + public static final int badwords_lost=0x7f0500f3; /** title of the dialog in which the above is posted. title of the dialog in which the above is posted. Illegal word[s] title of the dialog in which the above is posted. */ - public static final int badwords_title=0x7f0500f3; + public static final int badwords_title=0x7f0500f4; /** Blue */ - public static final int blue=0x7f05014a; + public static final int blue=0x7f05014b; /** board menu for small devices only board menu for small devices only Browse wordlist board menu for small devices only */ - public static final int board_menu_dict=0x7f05021f; + public static final int board_menu_dict=0x7f050220; /** ############################################################ # :Menus: @@ -787,18 +787,18 @@ XLATE-ME This menu commits the current move as it's been laid out on the board */ - public static final int board_menu_done=0x7f0500f4; + public static final int board_menu_done=0x7f0500f5; /** Brings up "About Crosswords" dialog Brings up "About Crosswords" dialog Brings up "About Crosswords" dialog */ - public static final int board_menu_file_about=0x7f050096; + public static final int board_menu_file_about=0x7f050097; /** Email author */ - public static final int board_menu_file_email=0x7f0501e9; + public static final int board_menu_file_email=0x7f0501ea; /** menu on Game submenu: brings up dialog listing all tiles in the language of the game along with how many of each there are and how many points each is worth. This display is the @@ -813,7 +813,7 @@ XLATE-ME are and how many points each is worth. This display is the same throughout the game. */ - public static final int board_menu_game_counts=0x7f0500fa; + public static final int board_menu_game_counts=0x7f0500fb; /** Brings up explanation of the game's final score. If the game is not yet over, gives you a choice whether to end it now, and if you decline does nothing. @@ -825,13 +825,13 @@ XLATE-ME is not yet over, gives you a choice whether to end it now, and if you decline does nothing. */ - public static final int board_menu_game_final=0x7f0500fd; + public static final int board_menu_game_final=0x7f0500fe; /** Brings up listing of all moves played so far this game. Brings up listing of all moves played so far this game. Game history… Brings up listing of all moves played so far this game. */ - public static final int board_menu_game_history=0x7f0500fc; + public static final int board_menu_game_history=0x7f0500fd; /** menu on Game submenu: brings up dialog listing all tiles not yet played and not in the rack of the player whose rack is visible (whose turn it is, generally). This display will @@ -849,11 +849,11 @@ XLATE-ME change as tiles are used and depending on what player is asking. */ - public static final int board_menu_game_left=0x7f0500fb; + public static final int board_menu_game_left=0x7f0500fc; /** XLATE-ME Network stats */ - public static final int board_menu_game_netstats=0x7f0502ee; + public static final int board_menu_game_netstats=0x7f0502ef; /** Meaningful only for networked games, this menu causes all messages that have not yet been acknowledged by a remote device in the game to be resent. Eventually I hope to be @@ -871,19 +871,19 @@ XLATE-ME able to remove this from non-debug versions of the game because users should not have to do do this EVER. */ - public static final int board_menu_game_resend=0x7f0500ff; + public static final int board_menu_game_resend=0x7f050100; /** Resign */ - public static final int board_menu_game_resign=0x7f0500fe; + public static final int board_menu_game_resign=0x7f0500ff; /** Invite */ - public static final int board_menu_invite=0x7f05026c; + public static final int board_menu_invite=0x7f05026d; /** Pass */ - public static final int board_menu_pass=0x7f0501d5; + public static final int board_menu_pass=0x7f0501d6; /** This menu begins an exchange of tiles: puts the board into trade mode. This menu begins an exchange of tiles: puts the board into @@ -891,7 +891,7 @@ XLATE-ME This menu begins an exchange of tiles: puts the board into trade mode. */ - public static final int board_menu_trade=0x7f0500f5; + public static final int board_menu_trade=0x7f0500f6; /** hide and shows the tray. On devices where there is enough room for the full board and tray to be shown then hiding the tray just "turns it over", i.e. shows tiles with '?' @@ -905,14 +905,14 @@ XLATE-ME tray just "turns it over", i.e. shows tiles with '?' characters. */ - public static final int board_menu_tray_hide=0x7f0500f6; - public static final int board_menu_tray_show=0x7f0500f7; + public static final int board_menu_tray_hide=0x7f0500f7; + public static final int board_menu_tray_show=0x7f0500f8; /** Undo/Redo */ - public static final int board_menu_undo_current=0x7f050219; + public static final int board_menu_undo_current=0x7f05021a; /** Undos the last *committed* turn. Note that this is different from the undo button that undoes or redoes an in-progress not-yet-committed turn. This is disabled for networked @@ -927,7 +927,7 @@ XLATE-ME not-yet-committed turn. This is disabled for networked games. */ - public static final int board_menu_undo_last=0x7f0500f8; + public static final int board_menu_undo_last=0x7f0500f9; /** preference for board size (15x15, 13x13 etc.) default new-game setting for handline phonies (words not found in the word list) @@ -946,7 +946,7 @@ XLATE-ME Board size preference for board size (15x15, 13x13 etc.) */ - public static final int board_size=0x7f05012d; + public static final int board_size=0x7f05012e; /** Title of submenu Undos the last *committed* turn. Note that this is different from the undo button that undoes or redoes an in-progress @@ -959,7 +959,7 @@ XLATE-ME Title of submenu Title of submenu */ - public static final int board_submenu_game=0x7f0500f9; + public static final int board_submenu_game=0x7f0500fa; /** The remaining strings (down to the color edit dialog below) are showns as the names of editable colors and as the the title of the color editor that comes up when the name is @@ -977,7 +977,7 @@ XLATE-ME tapped. (color for) double-letter bonus squares on the board */ - public static final int bonus_l2x=0x7f05013f; + public static final int bonus_l2x=0x7f050140; /** Bonus value hint that's displayed in gray text in the colored bonus square. Double-letter Bonus value hint that's displayed in gray text in the colored @@ -985,13 +985,13 @@ XLATE-ME Bonus value hint that's displayed in gray text in the colored bonus square. Double-letter */ - public static final int bonus_l2x_summary=0x7f0500e1; + public static final int bonus_l2x_summary=0x7f0500e2; /** (color for) triple-letter bonus squares on the board (color for) triple-letter bonus squares on the board Triple letter (color for) triple-letter bonus squares on the board */ - public static final int bonus_l3x=0x7f050140; + public static final int bonus_l3x=0x7f050141; /** Bonus value hint that's displayed in gray text in the colored bonus square. Triple-letter Bonus value hint that's displayed in gray text in the colored @@ -999,13 +999,13 @@ XLATE-ME Bonus value hint that's displayed in gray text in the colored bonus square. Triple-letter */ - public static final int bonus_l3x_summary=0x7f0500e3; + public static final int bonus_l3x_summary=0x7f0500e4; /** (color for) double-word squares on the board (color for) double-word squares on the board Double word (color for) double-word squares on the board */ - public static final int bonus_w2x=0x7f050141; + public static final int bonus_w2x=0x7f050142; /** Bonus value hint that's displayed in gray text in the colored bonus square. Double-word Bonus value hint that's displayed in gray text in the colored @@ -1013,13 +1013,13 @@ XLATE-ME Bonus value hint that's displayed in gray text in the colored bonus square. Double-word */ - public static final int bonus_w2x_summary=0x7f0500e2; + public static final int bonus_w2x_summary=0x7f0500e3; /** (color for) triple-word squares on the board (color for) triple-word squares on the board Triple word (color for) triple-word squares on the board */ - public static final int bonus_w3x=0x7f050142; + public static final int bonus_w3x=0x7f050143; /** Bonus value hint that's displayed in gray text in the colored bonus square. Triple-word Bonus value hint that's displayed in gray text in the colored @@ -1027,7 +1027,7 @@ XLATE-ME Bonus value hint that's displayed in gray text in the colored bonus square. Triple-word */ - public static final int bonus_w3x_summary=0x7f0500e4; + public static final int bonus_w3x_summary=0x7f0500e5; /** The version of Crosswords on @@ -1036,38 +1036,38 @@ XLATE-ME continue. */ - public static final int bt_bad_proto_fmt=0x7f0501f8; + public static final int bt_bad_proto_fmt=0x7f0501f9; /** Bluetooth sends to %1$s have failed too many times. Re-open the game to try again. */ - public static final int bt_fail_fmt=0x7f0501fd; + public static final int bt_fail_fmt=0x7f0501fe; /** Title of device picker during invitation to a game via Bluetooth Title of device picker during invitation to a game via Bluetooth Bluetooth Invitation */ - public static final int bt_invite_title=0x7f0501ff; + public static final int bt_invite_title=0x7f050200; /** You currently have no paired Bluetooth devices. Would you like to open the Android Settings Panel to add one or more?\n\n(You may also need to open it on the device you want to pair with.) */ - public static final int bt_no_devs=0x7f0502bd; + public static final int bt_no_devs=0x7f0502be; /** Turn Bluetooth on In the Bluetooth invite device dialog In the Bluetooth invite device dialog Add all Paired */ - public static final int bt_pick_addall_button=0x7f0501ed; + public static final int bt_pick_addall_button=0x7f0501ee; /** Remove checked */ - public static final int bt_pick_clear_button=0x7f0501ee; + public static final int bt_pick_clear_button=0x7f0501ef; /** Bluetooth send to %1$s failed; retry %3$d in @@ -1076,7 +1076,7 @@ XLATE-ME %3$d dans %2$d secondes. */ - public static final int bt_resend_fmt=0x7f0501fc; + public static final int bt_resend_fmt=0x7f0501fd; /** text of button for adding new player to game text for separator above the list of players that's used for networked games. The numbers of local and non-local players @@ -1085,22 +1085,22 @@ XLATE-ME Add player text of button for adding new player to game */ - public static final int button_add_player=0x7f0500b7; + public static final int button_add_player=0x7f0500b8; /** The only button available when the above message is displayed The only button available when the above message is displayed Close game The only button available when the above message is displayed */ - public static final int button_close_game=0x7f050193; + public static final int button_close_game=0x7f050194; /** Decline */ - public static final int button_decline=0x7f05024c; + public static final int button_decline=0x7f05024d; /** */ - public static final int button_default_both=0x7f0500ad; + public static final int button_default_both=0x7f0500ae; /** These three strings are the text for three buttons giving choices in respose to the dialog launched in response to the dicts_item_select menu (see dicts_item_select above.) @@ -1134,11 +1134,11 @@ XLATE-ME choices in respose to the dialog launched in response to the dicts_item_select menu (see dicts_item_select above.) */ - public static final int button_default_human=0x7f0500ab; + public static final int button_default_human=0x7f0500ac; /** */ - public static final int button_default_robot=0x7f0500ac; + public static final int button_default_robot=0x7f0500ad; /** When you select the gamel_menu_delete_all menuitem or list_item_delete contextual menu, you are asked to confirm. This is the text of the first button ("Cancel" is the @@ -1156,7 +1156,7 @@ XLATE-ME This is the text of the first button ("Cancel" is the second). */ - public static final int button_delete=0x7f05008f; + public static final int button_delete=0x7f050090; /** Used for button in dialog put up with the relay says the remote partner of this game has deleted it. Ok, meaning "don't discard", is the other option. This same button is @@ -1177,23 +1177,23 @@ XLATE-ME the other option, for discarding changes that would otherwise reset a game. */ - public static final int button_discard=0x7f0501a2; + public static final int button_discard=0x7f0501a3; /** XLATE-ME Discard changes */ - public static final int button_discard_changes=0x7f0502db; + public static final int button_discard_changes=0x7f0502dc; /** Done */ - public static final int button_done=0x7f0501d2; + public static final int button_done=0x7f0501d3; /** Done with %1$s */ - public static final int button_done_fmt=0x7f0501d3; + public static final int button_done_fmt=0x7f0501d4; /** Text of button displayed when downloading is an option This is an alternative message presented when there's also the option of downloading another wordlist. Game name, @@ -1213,37 +1213,37 @@ XLATE-ME Download Text of button displayed when downloading is an option */ - public static final int button_download=0x7f050196; + public static final int button_download=0x7f050197; /** XLATE-ME Edit */ - public static final int button_edit=0x7f0502da; - public static final int button_enable=0x7f05031d; + public static final int button_edit=0x7f0502db; + public static final int button_enable=0x7f05031e; /** XLATE-ME Enable Bluetooth */ - public static final int button_enable_bt=0x7f050237; + public static final int button_enable_bt=0x7f050238; /** XLATE-ME Enable SMS */ - public static final int button_enable_sms=0x7f050236; - public static final int button_go_settings=0x7f05026e; + public static final int button_enable_sms=0x7f050237; + public static final int button_go_settings=0x7f05026f; /** Invite checked */ - public static final int button_invite=0x7f0501fe; + public static final int button_invite=0x7f0501ff; /** text of button to juggle (randomly rearrange order of) players text of button to juggle (randomly rearrange order of) players Shuffle players text of button to juggle (randomly rearrange order of) players */ - public static final int button_juggle_players=0x7f0500b8; + public static final int button_juggle_players=0x7f0500b9; /** XLATE-ME Later */ - public static final int button_later=0x7f050238; + public static final int button_later=0x7f050239; /** New strings that need to be documented and found a home above. New strings that need to be documented and found a home @@ -1252,25 +1252,25 @@ XLATE-ME New strings that need to be documented and found a home above. */ - public static final int button_lookup=0x7f0501cc; + public static final int button_lookup=0x7f0501cd; /** Look up %1$s */ - public static final int button_lookup_fmt=0x7f0501ce; + public static final int button_lookup_fmt=0x7f0501cf; /** Look up/study words */ - public static final int button_lookup_study=0x7f0501cd; + public static final int button_lookup_study=0x7f0501ce; /** Look up/study %1$s */ - public static final int button_lookup_study_fmt=0x7f0501cf; + public static final int button_lookup_study_fmt=0x7f0501d0; /** Move */ - public static final int button_move=0x7f0501d7; + public static final int button_move=0x7f0501d8; /** What is \u200C? English strings are used as keys, so they all need to be unique. This glyph is non-printing and of zero-width, so it should do the trick: @@ -1349,10 +1349,10 @@ XLATE-ME public static final int button_new_group=0x7f050086; /** New group */ - public static final int button_newgroup=0x7f0501d8; + public static final int button_newgroup=0x7f0501d9; /** No */ - public static final int button_no=0x7f0501a0; + public static final int button_no=0x7f0501a1; /** Text for button in new-user-info dialog with title just above. Text for button in new-user-info dialog with title just @@ -1361,13 +1361,13 @@ XLATE-ME Text for button in new-user-info dialog with title just above. */ - public static final int button_notagain=0x7f0501ae; + public static final int button_notagain=0x7f0501af; /** Reconnect */ - public static final int button_reconnect=0x7f05025e; + public static final int button_reconnect=0x7f05025f; /** */ - public static final int button_relay_add=0x7f05020a; + public static final int button_relay_add=0x7f05020b; /** Button shown in game over dialog triggering creation of new game with the same players and parameters as the one that just ended. @@ -1379,7 +1379,7 @@ XLATE-ME game with the same players and parameters as the one that just ended. */ - public static final int button_rematch=0x7f05025d; + public static final int button_rematch=0x7f05025e; /** When you select the list_item_reset contextual menu, you are asked to confirm. This is the text of the first button ("Cancel" is the second). @@ -1390,7 +1390,7 @@ XLATE-ME asked to confirm. This is the text of the first button ("Cancel" is the second). */ - public static final int button_reset=0x7f050090; + public static final int button_reset=0x7f050091; /** Used for a button when informing user that his attempt to connect to the relay failed because the room named does not exist. (I believe this no longer occurs.) @@ -1402,7 +1402,7 @@ XLATE-ME connect to the relay failed because the room named does not exist. (I believe this no longer occurs.) */ - public static final int button_retry=0x7f0501a3; + public static final int button_retry=0x7f0501a4; /** ############################################################ # :Menus: @@ -1438,7 +1438,7 @@ XLATE-ME text of first menu item. Will revert all preferences to their default/original values */ - public static final int button_revert_all=0x7f050115; + public static final int button_revert_all=0x7f050116; /** Second menu item. Reverts only the colors to their default/original values Second menu item. Reverts only the colors to their @@ -1447,26 +1447,26 @@ XLATE-ME Second menu item. Reverts only the colors to their default/original values */ - public static final int button_revert_colors=0x7f050117; + public static final int button_revert_colors=0x7f050118; /** Used in Game config dialog to confirm saving changes that reset a game Used in Game config dialog to confirm saving changes that reset a game Save Used in Game config dialog to confirm saving changes that reset a game */ - public static final int button_save=0x7f0501a1; + public static final int button_save=0x7f0501a2; /** Find */ - public static final int button_search=0x7f0501d9; + public static final int button_search=0x7f0501da; /** Import contact */ - public static final int button_sms_add=0x7f050209; + public static final int button_sms_add=0x7f05020a; /** Text of button allowing user to choose to open with a different (but same-language wordlist) Text of button allowing user to choose to open with a @@ -1475,10 +1475,10 @@ XLATE-ME Text of button allowing user to choose to open with a different (but same-language wordlist) */ - public static final int button_substdict=0x7f050197; + public static final int button_substdict=0x7f050198; /** Cancel trade */ - public static final int button_trade_cancel=0x7f0500df; + public static final int button_trade_cancel=0x7f0500e0; /** ############################################################ # :Screens: @@ -1517,10 +1517,10 @@ XLATE-ME Buttons shown at bottom when board is in exchange mode, i.e. after user has picked board_menu_trade menu item */ - public static final int button_trade_commit=0x7f0500de; + public static final int button_trade_commit=0x7f0500df; /** Button for alert with title above */ - public static final int button_wait=0x7f0502d5; + public static final int button_wait=0x7f0502d6; /** ############################################################ # Dialogs @@ -1563,14 +1563,14 @@ XLATE-ME Text for buttons at the bottom of dialogs. These first are in many places. */ - public static final int button_yes=0x7f05019f; + public static final int button_yes=0x7f0501a0; /** The group for new games, %1$s, cannot be deleted. */ - public static final int cannot_delete_default_group_fmt=0x7f05025c; + public static final int cannot_delete_default_group_fmt=0x7f05025d; /** Move selected games to: */ - public static final int change_group=0x7f050261; + public static final int change_group=0x7f050262; /** text of button in About Crosswords dialog summoning above dialog text of button in About Crosswords dialog summoning above @@ -1579,7 +1579,7 @@ XLATE-ME text of button in About Crosswords dialog summoning above dialog */ - public static final int changes_button=0x7f0501cb; + public static final int changes_button=0x7f0501cc; /** text of dialog showing the set of changes made since the last release text of dialog showing the set of changes made since the last @@ -1588,13 +1588,13 @@ XLATE-ME text of dialog showing the set of changes made since the last release */ - public static final int changes_title=0x7f0501ca; + public static final int changes_title=0x7f0501cb; /** Prefix for local messages Prefix for local messages Me:\u0020 Prefix for local messages */ - public static final int chat_local_id=0x7f05017d; + public static final int chat_local_id=0x7f05017e; /** ############################################################ # :Menus: @@ -1627,13 +1627,13 @@ XLATE-ME other devices in the game: no "clear chat" message is transmitted. */ - public static final int chat_menu_clear=0x7f050180; + public static final int chat_menu_clear=0x7f050181; /** Prefix for remote messages Prefix for remote messages Not me:\u0020 Prefix for remote messages */ - public static final int chat_other_id=0x7f05017e; + public static final int chat_other_id=0x7f05017f; /** Text on the button that causes the contents of the message-composition field to be sent. Text on the button that causes the contents of the @@ -1642,7 +1642,7 @@ XLATE-ME Text on the button that causes the contents of the message-composition field to be sent. */ - public static final int chat_send=0x7f05017f; + public static final int chat_send=0x7f050180; /** ############################################################ # :Screens: # Chat screen @@ -1684,20 +1684,20 @@ XLATE-ME title of the chat screen. The name of the current game is substituted for %s. */ - public static final int chat_title_fmt=0x7f05017c; + public static final int chat_title_fmt=0x7f05017d; /** Checking for wordlists in %1$s… */ - public static final int checking_for_fmt=0x7f050314; + public static final int checking_for_fmt=0x7f050315; /** Checking */ - public static final int checking_title=0x7f050313; + public static final int checking_title=0x7f050314; /** Everything is up-to-date. */ - public static final int checkupdates_none_found=0x7f05023a; + public static final int checkupdates_none_found=0x7f05023b; /** EXPERIMENTAL: "label" for invite on clipboard. If it's shown it's by some Android utility */ - public static final int clip_label=0x7f050326; + public static final int clip_label=0x7f050327; /** color of the "crosshairs", lines drawn vertically and horizontally through the square the user is currently touching in order to guide the fat-fingered (most of us) in @@ -1715,15 +1715,15 @@ XLATE-ME operations that require accurately selecting a single square on the board. */ - public static final int clr_crosshairs=0x7f050143; + public static final int clr_crosshairs=0x7f050144; /** XLATE-ME This game has no way to connect and cannot be saved. Would you like to discard your changes, or edit to give it a way to connect? */ - public static final int config_no_connvia=0x7f0502d9; - public static final int confirm_clear_chat=0x7f050328; - public static final int confirm_clear_relay=0x7f050211; + public static final int config_no_connvia=0x7f0502da; + public static final int confirm_clear_chat=0x7f050329; + public static final int confirm_clear_relay=0x7f050212; /** Additional text appended to text confirm_delete_dictf in the wordlist delete confiration dialog in the case where the wordlist to be deleted is the last in its language. The name @@ -1733,29 +1733,29 @@ XLATE-ME wordlist to be deleted is the last in its language. The name of the language is substituted for %1$s. */ - public static final int confirm_deleteonly_dicts_fmt=0x7f0500a9; - public static final int confirm_drop_relay=0x7f050319; - public static final int confirm_drop_relay_bt=0x7f05031b; - public static final int confirm_drop_relay_sms=0x7f05031c; + public static final int confirm_deleteonly_dicts_fmt=0x7f0500aa; + public static final int confirm_drop_relay=0x7f05031a; + public static final int confirm_drop_relay_bt=0x7f05031c; + public static final int confirm_drop_relay_sms=0x7f05031d; /** Your device is set up for %1$s. Would you like to download a wordlist so you can play Crosswords in %1$s? */ - public static final int confirm_get_locdict_fmt=0x7f0502e2; + public static final int confirm_get_locdict_fmt=0x7f0502e3; /** Text of confirmation dialog for above Text of confirmation dialog for above Are you sure you want to restore all settings to their original values? Text of confirmation dialog for above */ - public static final int confirm_revert_all=0x7f050118; + public static final int confirm_revert_all=0x7f050119; /** Text of confirmation dialog for above Text of confirmation dialog for above Are you sure you want to restore all color settings to their original values? Text of confirmation dialog for above */ - public static final int confirm_revert_colors=0x7f050116; + public static final int confirm_revert_colors=0x7f050117; /** title of confirmation dialog put up when user has unlocked an in-progress game and wants to save changes (has hit the play button). @@ -1769,7 +1769,7 @@ XLATE-ME in-progress game and wants to save changes (has hit the play button). */ - public static final int confirm_save=0x7f0500d1; + public static final int confirm_save=0x7f0500d2; /** title of above confirmation dialog ############################################################ @@ -1800,7 +1800,7 @@ XLATE-ME Confirm save title of above confirmation dialog */ - public static final int confirm_save_title=0x7f0500d2; + public static final int confirm_save_title=0x7f0500d3; /** Warning: This feature is meant for @@ -1811,37 +1811,37 @@ XLATE-ME enabled? */ - public static final int confirm_sms_expl=0x7f05022f; + public static final int confirm_sms_expl=0x7f050230; /** No: leave disabled */ - public static final int confirm_sms_leave=0x7f050231; + public static final int confirm_sms_leave=0x7f050232; /** Enable play via SMS? */ - public static final int confirm_sms_prompt=0x7f050230; + public static final int confirm_sms_prompt=0x7f050231; /** Confirm your SMS plan */ - public static final int confirm_sms_title=0x7f05022e; + public static final int confirm_sms_title=0x7f05022f; /** Yes: I have unlimited texting */ - public static final int confirm_sms_unlimited=0x7f050232; + public static final int confirm_sms_unlimited=0x7f050233; /** Yes: I\'ll pay all carrier charges */ - public static final int confirm_sms_willpay=0x7f050233; + public static final int confirm_sms_willpay=0x7f050234; /** text of dialog shown when the menu item board_menu_undo_last is chosen. text of dialog shown when the menu item board_menu_undo_last @@ -1851,16 +1851,16 @@ XLATE-ME text of dialog shown when the menu item board_menu_undo_last is chosen. */ - public static final int confirm_undo_last=0x7f050113; + public static final int confirm_undo_last=0x7f050114; /** Once every day */ - public static final int connect_daily=0x7f050162; + public static final int connect_daily=0x7f050163; /** Every 15 minutes */ - public static final int connect_fifteen_mins=0x7f05015e; + public static final int connect_fifteen_mins=0x7f05015f; /** Every 5 minutes */ - public static final int connect_five_mins=0x7f05015d; + public static final int connect_five_mins=0x7f05015e; /** ############################################################ # :Screens: @@ -1896,12 +1896,12 @@ XLATE-ME new moves available and fetches them. This controls how frequently that check is done. */ - public static final int connect_frequency=0x7f05015b; + public static final int connect_frequency=0x7f05015c; /** text of separator marking out the connection area of the dialog XLATE-ME Connection (via %1$s) */ - public static final int connect_label_fmt=0x7f0500bb; + public static final int connect_label_fmt=0x7f0500bc; /** @@ -1913,7 +1913,7 @@ XLATE-ME */ - public static final int connect_label_sms=0x7f050212; + public static final int connect_label_sms=0x7f050213; /** These are the possible values for the connect_frequency setting presented as a drop-down list. These are the possible values for the connect_frequency @@ -1922,83 +1922,83 @@ XLATE-ME These are the possible values for the connect_frequency setting presented as a drop-down list. */ - public static final int connect_never=0x7f05015c; + public static final int connect_never=0x7f05015d; /** Every hour */ - public static final int connect_one_hour=0x7f050160; + public static final int connect_one_hour=0x7f050161; /** Every six hours */ - public static final int connect_six_hours=0x7f050161; + public static final int connect_six_hours=0x7f050162; /** Every 30 minutes */ - public static final int connect_thirty_mins=0x7f05015f; + public static final int connect_thirty_mins=0x7f050160; /** XLATE-ME Change Communicate via */ - public static final int connection_via_label=0x7f0502d0; + public static final int connection_via_label=0x7f0502d1; /** (Last failure was %1$s) */ - public static final int connstat_lastother_succ_fmt=0x7f050226; + public static final int connstat_lastother_succ_fmt=0x7f050227; /** (Last successful send was %1$s) */ - public static final int connstat_lastother_unsucc_fmt=0x7f050227; + public static final int connstat_lastother_unsucc_fmt=0x7f050228; /** Last receipt was %1$s */ - public static final int connstat_lastreceipt_fmt=0x7f050228; + public static final int connstat_lastreceipt_fmt=0x7f050229; /** Last send was %1$s (%2$s) */ - public static final int connstat_lastsend_fmt=0x7f050225; + public static final int connstat_lastsend_fmt=0x7f050226; /** Network status for game connected via %1$s: */ - public static final int connstat_net_fmt=0x7f050222; - public static final int connstat_net_noaddr=0x7f050221; + public static final int connstat_net_fmt=0x7f050223; + public static final int connstat_net_noaddr=0x7f050222; /** No messages have been received. */ - public static final int connstat_noreceipt=0x7f050229; + public static final int connstat_noreceipt=0x7f05022a; /** internet/relay */ - public static final int connstat_relay=0x7f05022a; + public static final int connstat_relay=0x7f05022b; /** sms/texting */ - public static final int connstat_sms=0x7f05022b; + public static final int connstat_sms=0x7f05022c; /** successful */ - public static final int connstat_succ=0x7f050223; + public static final int connstat_succ=0x7f050224; /** unsuccessful */ - public static final int connstat_unsucc=0x7f050224; + public static final int connstat_unsucc=0x7f050225; /** title of dialog brought up in response to the board_menu_game_counts menu. The dialog lists all tiles in the language being used for the game together with how many @@ -2013,31 +2013,31 @@ XLATE-ME the language being used for the game together with how many of each there are are and how many points each is worth. */ - public static final int counts_values_title=0x7f0501a8; + public static final int counts_values_title=0x7f0501a9; /** %1$s (in use) */ - public static final int cur_menu_marker_fmt=0x7f05026b; + public static final int cur_menu_marker_fmt=0x7f05026c; /** Tile picker\n(so far: %1$s) */ - public static final int cur_tiles_fmt=0x7f0501dd; + public static final int cur_tiles_fmt=0x7f0501de; /** SMS Data is only available on GSM phones. */ - public static final int data_gsm_only=0x7f050288; + public static final int data_gsm_only=0x7f050289; /** SD card write complete. */ - public static final int db_store_done=0x7f050315; + public static final int db_store_done=0x7f050316; /** XLATE-ME Enable debug features */ - public static final int debug_features=0x7f0502ea; + public static final int debug_features=0x7f0502eb; /** XLATE-ME Menuitems etc. (release builds only) */ - public static final int debug_features_summary=0x7f0502eb; + public static final int debug_features_summary=0x7f0502ec; /** dictionary used by default for human players when creating new game clarification of above @@ -2057,7 +2057,7 @@ XLATE-ME dictionary used by default for human players when creating new game */ - public static final int default_dict=0x7f050125; + public static final int default_dict=0x7f050126; /** other */ public static final int default_host=0x7f05007b; @@ -2065,13 +2065,13 @@ XLATE-ME label within default wordlists in app preferences Default language */ - public static final int default_language=0x7f0502bf; + public static final int default_language=0x7f0502c0; /** Store wordlists internally */ - public static final int default_loc=0x7f05024f; + public static final int default_loc=0x7f050250; /** (Not in external/sdcard memory) */ - public static final int default_loc_summary=0x7f050250; + public static final int default_loc_summary=0x7f050251; /** Welcome dialog text Welcome dialog text Thanks for installing @@ -2080,7 +2080,7 @@ XLATE-ME game default\" section of Settings.) Welcome dialog text */ - public static final int default_name_message=0x7f0501c4; + public static final int default_name_message=0x7f0501c5; /** ########################################################### # :Dialogs: @@ -2122,7 +2122,7 @@ XLATE-ME Welcome dialog title */ - public static final int default_name_title=0x7f0501c3; + public static final int default_name_title=0x7f0501c4; /** default new-game setting for handline phonies (words not found in the word list) default new-game setting for handline phonies (words not @@ -2131,7 +2131,7 @@ XLATE-ME default new-game setting for handline phonies (words not found in the word list) */ - public static final int default_phonies=0x7f05012b; + public static final int default_phonies=0x7f05012c; /** dictionary used by default for robot players when creating new game dictionary used by default for robot players when creating @@ -2140,12 +2140,12 @@ XLATE-ME dictionary used by default for robot players when creating new game */ - public static final int default_robodict=0x7f050126; + public static final int default_robodict=0x7f050127; public static final int default_update_url=0x7f050080; /** Delete wordlist[s] */ - public static final int delete_dicts=0x7f0502aa; - public static final int devid_title=0x7f0502f1; + public static final int delete_dicts=0x7f0502ab; + public static final int devid_title=0x7f0502f2; /** Playing via SMS is currently disabled. You can enable it in Settings->Network game settings. @@ -2156,14 +2156,14 @@ XLATE-ME */ - public static final int dft_sms_name_fmt=0x7f050207; + public static final int dft_sms_name_fmt=0x7f050208; /** No word in %1$s starts with %2$s. */ - public static final int dict_browse_nowords_fmt=0x7f0501e1; + public static final int dict_browse_nowords_fmt=0x7f0501e2; /** %1$s (%2$d words using %3$d @@ -2171,7 +2171,7 @@ XLATE-ME %1$s (%2$d mots utilisant %3$d jetons) */ - public static final int dict_browse_title1_fmt=0x7f0501e0; + public static final int dict_browse_title1_fmt=0x7f0501e1; /** %1$s (%2$d words using %3$d-%4$d @@ -2180,18 +2180,18 @@ XLATE-ME %4$d jetons) */ - public static final int dict_browse_title_fmt=0x7f0501df; + public static final int dict_browse_title_fmt=0x7f0501e0; /** %1$s (%2$s/%3$d words) */ - public static final int dict_desc_fmt=0x7f0502b1; + public static final int dict_desc_fmt=0x7f0502b2; /** XLATE-ME Wordlist download URL */ - public static final int dict_host=0x7f0502e7; + public static final int dict_host=0x7f0502e8; /** Number of words: %1$d\nDownload size: %2$dK\nNote: %3$s */ - public static final int dict_info_fmt=0x7f0502ae; + public static final int dict_info_fmt=0x7f0502af; /** label for dropdown by which wordlist is chosen that this player will use. The language the game will use (which constrains the choice of wordlists) is substituted in for @@ -2206,10 +2206,10 @@ XLATE-ME constrains the choice of wordlists) is substituted in for "%s". */ - public static final int dict_lang_label_fmt=0x7f0500da; + public static final int dict_lang_label_fmt=0x7f0500db; /** Tap to download */ - public static final int dict_on_server=0x7f0502b0; + public static final int dict_on_server=0x7f0502b1; /** string name="invite_mime">text/plainDo not notify me no matter how long it\'s been my turn */ - public static final int disable_nag_summary=0x7f0502e0; + public static final int disable_nag_summary=0x7f0502e1; /** Disable turn reminders */ - public static final int disable_nag_title=0x7f0502df; - public static final int disable_nags_title=0x7f0502de; + public static final int disable_nag_title=0x7f0502e0; + public static final int disable_nags_title=0x7f0502df; /** text of item at bottom of dicts choice spinner. It launches the browser pointed at the site where additional wordlists can be found. @@ -2322,26 +2322,26 @@ XLATE-ME browser pointed at the site where additional wordlists can be found. */ - public static final int download_dicts=0x7f0500a4; + public static final int download_dicts=0x7f0500a5; /** Download finished */ - public static final int download_done=0x7f05024d; + public static final int download_done=0x7f05024e; /** Download unsuccessful */ - public static final int download_failed=0x7f05024e; + public static final int download_failed=0x7f05024f; /** Downloads Directory */ - public static final int download_path_title=0x7f050251; + public static final int download_path_title=0x7f050252; /** Downloading %1$s… */ - public static final int downloading_dict_fmt=0x7f050190; - public static final int drop_relay_warning_fmt=0x7f050318; + public static final int downloading_dict_fmt=0x7f050191; + public static final int drop_relay_warning_fmt=0x7f050319; /** Display snapshots of games Display snapshots of games Invitation received but ignored: it has already been used to create a game. */ - public static final int dropped_dupe=0x7f05026a; + public static final int dropped_dupe=0x7f05026b; /** Shown in the main screen when you launch Crosswords from an invitation (received in email or messaging app, say) and there's already a game running that matches that invitation. @@ -2367,13 +2367,13 @@ XLATE-ME the same room name over and over so they'll get this warning and it's harmless to ignore it. */ - public static final int dup_game_query_fmt=0x7f0501a4; + public static final int dup_game_query_fmt=0x7f0501a5; /** Send comment via */ - public static final int email_author_chooser=0x7f0501eb; + public static final int email_author_chooser=0x7f0501ec; /** Nor is my email address */ public static final int email_author_email=0x7f05007a; @@ -2382,22 +2382,22 @@ XLATE-ME Should not be translated */ - public static final int email_author_subject=0x7f0501ea; + public static final int email_author_subject=0x7f0501eb; /** Should not be translated */ - public static final int email_body_rev_fmt=0x7f0501ec; + public static final int email_body_rev_fmt=0x7f0501ed; /** color of empty squares on the board (that are not bonus squares) color of empty squares on the board (that are not bonus squares) Empty cell/background color of empty squares on the board (that are not bonus squares) */ - public static final int empty=0x7f050145; + public static final int empty=0x7f050146; /** */ - public static final int empty_relay_inviter=0x7f05020e; + public static final int empty_relay_inviter=0x7f05020f; /** Shows in SMS Invite dialog when no phone numbers have been saved previously Shows in SMS Invite dialog when no phone numbers have been saved previously This phone list is empty. Use the @@ -2405,71 +2405,71 @@ XLATE-ME button to enter numbers directly. */ - public static final int empty_sms_inviter=0x7f05020d; + public static final int empty_sms_inviter=0x7f05020e; /** XLATE-ME Accept invitations more than once */ - public static final int enable_dupes_summary=0x7f0502f9; + public static final int enable_dupes_summary=0x7f0502fa; /** XLATE-ME Accept duplicate invites */ - public static final int enable_dupes_title=0x7f0502f7; + public static final int enable_dupes_title=0x7f0502f8; /** NFC is turned off on this device. You can use the Android Settings app to turn it on . */ - public static final int enable_nfc=0x7f05026d; + public static final int enable_nfc=0x7f05026e; /** XLATE-ME Fake invitation to aid debugging */ - public static final int enable_nfc_toself_summary=0x7f0502fc; + public static final int enable_nfc_toself_summary=0x7f0502fd; /** XLATE-ME Enable NFC to self */ - public static final int enable_nfc_toself_title=0x7f0502fb; + public static final int enable_nfc_toself_title=0x7f0502fc; /** XLATE-ME Rooms others can see and join */ - public static final int enable_pubroom_summary=0x7f0502cf; + public static final int enable_pubroom_summary=0x7f0502d0; /** XLATE-ME Enable public rooms */ - public static final int enable_pubroom_title=0x7f0502ce; - public static final int enable_relay_toself_summary=0x7f050324; - public static final int enable_relay_toself_title=0x7f050323; + public static final int enable_pubroom_title=0x7f0502cf; + public static final int enable_relay_toself_summary=0x7f050325; + public static final int enable_relay_toself_title=0x7f050324; /** Allow games via SMS */ - public static final int enable_sms=0x7f05022c; + public static final int enable_sms=0x7f05022d; /** Only if you have unlimited texting! */ - public static final int enable_sms_summary=0x7f05022d; + public static final int enable_sms_summary=0x7f05022e; /** XLATE-ME Skip radio when phone numbers same */ - public static final int enable_sms_toself_summary=0x7f0502fe; + public static final int enable_sms_toself_summary=0x7f0502ff; /** XLATE-ME Short-circuit SMS to self */ - public static final int enable_sms_toself_title=0x7f0502fd; + public static final int enable_sms_toself_title=0x7f0502fe; /** Tap tiles to select… */ - public static final int entering_trade=0x7f0500e0; + public static final int entering_trade=0x7f0500e1; /** XLATE-ME Duplicate invitation rejected: device \"%1$s\" has already accepted an invitation to this game. */ - public static final int err_dup_invite_fmt=0x7f0502c9; + public static final int err_dup_invite_fmt=0x7f0502ca; /** XLATE-ME Update checks URL */ - public static final int expl_update_url=0x7f050308; + public static final int expl_update_url=0x7f050309; /** if this preference is checked, a dialog will be posted every time a robot makes a move or a move is received from a remote player. @@ -2486,15 +2486,15 @@ XLATE-ME time a robot makes a move or a move is received from a remote player. */ - public static final int explain_robot=0x7f05014d; + public static final int explain_robot=0x7f05014e; /** explanation of the above explanation of the above Display score summary after every robot or remote turn explanation of the above */ - public static final int explain_robot_summary=0x7f05014e; - public static final int fetching_from_relay=0x7f05032a; + public static final int explain_robot_summary=0x7f05014f; + public static final int fetching_from_relay=0x7f05032b; /** title of dialog brought up in response to the board_menu_game_final menu. The dialog displays the final score and an accounting of it (including subtractions for @@ -2512,7 +2512,7 @@ XLATE-ME running out the game timer if there is one.) */ - public static final int finalscores_title=0x7f0501aa; + public static final int finalscores_title=0x7f0501ab; /** Explanatory text appears in the dialog Explanatory text appears in the dialog In a multi-device game there must be at @@ -2520,17 +2520,17 @@ XLATE-ME check off-device players. Explanatory text appears in the dialog */ - public static final int force_expl=0x7f0500d5; + public static final int force_expl=0x7f0500d6; /** XLATE-ME Pretend to have radio */ - public static final int force_radio_title=0x7f0502ff; + public static final int force_radio_title=0x7f050300; /** Even if my screen is too small */ - public static final int force_tablet_summary=0x7f0502b5; + public static final int force_tablet_summary=0x7f0502b6; /** Force tablet layout */ - public static final int force_tablet_title=0x7f0502b4; + public static final int force_tablet_title=0x7f0502b5; /** ############################################################ # :Dialogs: @@ -2572,7 +2572,7 @@ XLATE-ME title of this dialog */ - public static final int force_title=0x7f0500d4; + public static final int force_title=0x7f0500d5; /** Displayed as a "Toast" (mini window briefly displayed) if you didn't choose a remote player and I was forced to pick one. I always pick the first. @@ -2584,7 +2584,7 @@ XLATE-ME didn't choose a remote player and I was forced to pick one. I always pick the first. */ - public static final int forced_consistent=0x7f0500d6; + public static final int forced_consistent=0x7f0500d7; /** Games that have ended are listed with this string Displayed as a "Toast" (mini window briefly displayed) if you didn't choose a remote player and I was forced to pick one. I @@ -2592,7 +2592,7 @@ XLATE-ME Games that have ended are listed with this string Games that have ended are listed with this string */ - public static final int gameOver=0x7f05008e; + public static final int gameOver=0x7f05008f; /** Bluetooth game name @@ -2600,7 +2600,7 @@ XLATE-ME */ - public static final int game_btname_title=0x7f050202; + public static final int game_btname_title=0x7f050203; /** used to create default names of games (when user has not named them.) used to create default names of games (when user has not @@ -2611,7 +2611,7 @@ XLATE-ME used to create default names of games (when user has not named them.) */ - public static final int game_fmt=0x7f05019a; + public static final int game_fmt=0x7f05019b; /** ############################################################ # :Menus: @@ -2637,13 +2637,13 @@ XLATE-ME title of contextual menu. Name of the selected game is substituted in. */ - public static final int game_item_menu_title_fmt=0x7f050097; + public static final int game_item_menu_title_fmt=0x7f050098; /** Building game summary… */ - public static final int game_list_tmp=0x7f050220; + public static final int game_list_tmp=0x7f050221; /** text of checkbox at top of dialog allowing to unlock in-play game to make changes text of checkbox at top of dialog allowing to unlock in-play @@ -2652,55 +2652,55 @@ XLATE-ME text of checkbox at top of dialog allowing to unlock in-play game to make changes */ - public static final int game_locked=0x7f0500b4; + public static final int game_locked=0x7f0500b5; /** Name group */ - public static final int game_name_group_title=0x7f05025b; + public static final int game_name_group_title=0x7f05025c; /** XLATE-ME New game name: */ - public static final int game_name_label=0x7f050204; + public static final int game_name_label=0x7f050205; /** XLATE-ME Name your game */ - public static final int game_name_title=0x7f050203; + public static final int game_name_title=0x7f050204; /** */ - public static final int game_rename_title=0x7f0500a0; + public static final int game_rename_title=0x7f0500a1; /** Put nothing in the summary space, so it just reads "Game 2" Put nothing in the summary space, so it just reads "Game 2" \u003CNothing\u003E Put nothing in the summary space, so it just reads "Game 2" */ - public static final int game_summary_field_empty=0x7f050131; + public static final int game_summary_field_empty=0x7f050132; /** XLATE-ME gameid */ - public static final int game_summary_field_gameid=0x7f050306; + public static final int game_summary_field_gameid=0x7f050307; /** Put the language there, so it reads "Game 2 (English)" Put the language there, so it reads "Game 2 (English)" Game language\u200C Put the language there, so it reads "Game 2 (English)" */ - public static final int game_summary_field_language=0x7f050132; + public static final int game_summary_field_language=0x7f050133; /** XLATE-ME Pending packet count */ - public static final int game_summary_field_npackets=0x7f050307; + public static final int game_summary_field_npackets=0x7f050308; /** List names of opponents (summarized), e.g. "Game 2 (vs Kati)" List names of opponents (summarized), e.g. "Game 2 (vs Kati)" Opponent name[s] List names of opponents (summarized), e.g. "Game 2 (vs Kati)" */ - public static final int game_summary_field_opponents=0x7f050133; + public static final int game_summary_field_opponents=0x7f050134; /** XLATE-ME rowid */ - public static final int game_summary_field_rowid=0x7f050305; + public static final int game_summary_field_rowid=0x7f050306; /** List the state of the game, "Game over" or "10 moves made" etc. List the state of the game, "Game over" or "10 moves made" @@ -2709,7 +2709,7 @@ XLATE-ME List the state of the game, "Game over" or "10 moves made" etc. */ - public static final int game_summary_field_state=0x7f050134; + public static final int game_summary_field_state=0x7f050135; /** Regardless of the setting of the connect_frequency preference, checks the relay immediately for any moves for networked games on this device and posts a notification if @@ -2723,13 +2723,13 @@ XLATE-ME networked games on this device and posts a notification if any is downloaded. */ - public static final int gamel_menu_checkmoves=0x7f050093; + public static final int gamel_menu_checkmoves=0x7f050094; /** Check for updates */ - public static final int gamel_menu_checkupdates=0x7f050239; + public static final int gamel_menu_checkupdates=0x7f05023a; /** ############################################################ # :Menus: @@ -2768,50 +2768,50 @@ XLATE-ME Brings up the Wordlists (formerly Dictionaries) screen */ - public static final int gamel_menu_dicts=0x7f050091; + public static final int gamel_menu_dicts=0x7f050092; /** XLATE-ME Load DB from SD card */ - public static final int gamel_menu_loaddb=0x7f0502f6; + public static final int gamel_menu_loaddb=0x7f0502f7; /** XLATE-ME %1$s/%2$s XLATE-ME Write DB to SD card */ - public static final int gamel_menu_storedb=0x7f0502f5; + public static final int gamel_menu_storedb=0x7f0502f6; /** Studylist… */ - public static final int gamel_menu_study=0x7f050276; - public static final int get_relay_number=0x7f050210; + public static final int gamel_menu_study=0x7f050277; + public static final int get_relay_number=0x7f050211; /** Enter phone number: */ - public static final int get_sms_number=0x7f05020f; + public static final int get_sms_number=0x7f050210; /** Get info */ - public static final int getinfo=0x7f0502a9; + public static final int getinfo=0x7f0502aa; public static final int git_rev=0x7f050082; /** XLATE-ME Source version id */ - public static final int git_rev_title=0x7f0502f0; + public static final int git_rev_title=0x7f0502f1; /** Don\'t try a second time */ - public static final int got_langdict_summary=0x7f05030a; + public static final int got_langdict_summary=0x7f05030b; /** Fetch default wordlist for language */ - public static final int got_langdict_title=0x7f050309; + public static final int got_langdict_title=0x7f05030a; /** Green */ - public static final int green=0x7f050149; + public static final int green=0x7f05014a; /** My games */ - public static final int group_cur_games=0x7f050258; + public static final int group_cur_games=0x7f050259; /** New games */ - public static final int group_new_games=0x7f050259; + public static final int group_new_games=0x7f05025a; /** Used as the default name for remote players displayed within the Game configure screen Final state: game is over. @@ -2838,7 +2838,7 @@ XLATE-ME Used as the default name for remote players displayed within the Game configure screen */ - public static final int guest_name=0x7f0500d0; + public static final int guest_name=0x7f0500d1; /** If this preference is checked the "crosshairs" (vertical and horzontal lines through the cell your finger is on that help you tell where the app thinks you're actually tapping) will @@ -2862,25 +2862,25 @@ XLATE-ME large enough screens that they always know where they're tapping. */ - public static final int hide_crosshairs=0x7f050157; + public static final int hide_crosshairs=0x7f050158; /** explanation of the above explanation of the above Do not visually indicate which board cell is touched explanation of the above */ - public static final int hide_crosshairs_summary=0x7f050158; + public static final int hide_crosshairs_summary=0x7f050159; /** clarification of above XLATE-ME Hiding the newgame buttons in the main screen makes more games visible */ - public static final int hide_newgames_summary=0x7f050138; + public static final int hide_newgames_summary=0x7f050139; /** Checkbox that when set prevents showing the newgame buttons on the main screen to save space XLATE-ME Hide newgame buttons */ - public static final int hide_newgames_title=0x7f050137; + public static final int hide_newgames_title=0x7f050138; /** Checkbox that when set prevents showing a title bar in the game board window to save space Checkbox that when set prevents showing a title bar in the @@ -2889,14 +2889,14 @@ XLATE-ME Checkbox that when set prevents showing a title bar in the game board window to save space */ - public static final int hide_title=0x7f050135; + public static final int hide_title=0x7f050136; /** clarification of above clarification of above Hiding the game name lets the board be slightly larger clarification of above */ - public static final int hide_title_summary=0x7f050136; + public static final int hide_title_summary=0x7f050137; /** text of checkbox. If this checkbox is checked, buttons will appear by which the user can get high- and low-scoring moves generated based on his tray. Can be used to cheat. @@ -2908,7 +2908,7 @@ XLATE-ME appear by which the user can get high- and low-scoring moves generated based on his tray. Can be used to cheat. */ - public static final int hints_allowed=0x7f0500c3; + public static final int hints_allowed=0x7f0500c4; /** clarification on hints_allowed, whether new games will default to having the hint feature enabled(string elsewhere in this file) @@ -2920,7 +2920,7 @@ XLATE-ME default to having the hint feature enabled(string elsewhere in this file) */ - public static final int hints_allowed_sum=0x7f050127; + public static final int hints_allowed_sum=0x7f050128; /** title of dialog brought up in response to the board_menu_game_history menu. A full history of the game up to the last turn is displayed, though details about what's in @@ -2935,7 +2935,7 @@ XLATE-ME to the last turn is displayed, though details about what's in players' racks is left out if the game is not yet over. */ - public static final int history_title=0x7f0501a9; + public static final int history_title=0x7f0501aa; /** Partial text of alert posted when phonies_warn or phonies_disallow is the current setting and a "phony" is played. One of the two following strings will be appended @@ -2957,7 +2957,7 @@ XLATE-ME played. One of the two following strings will be appended */ - public static final int ids_badwords_fmt=0x7f0500f0; + public static final int ids_badwords_fmt=0x7f0500f1; /** text of confirmation dialog shown when user chooses the menu item with text board_menu_game_final and the game is not over @@ -2969,7 +2969,7 @@ XLATE-ME item with text board_menu_game_final and the game is not over */ - public static final int ids_endnow=0x7f0501ab; + public static final int ids_endnow=0x7f0501ac; /** Title of generic dialog used to display information If the dropdown is selected, this is the title displayed above the list of selectable items. The language the game @@ -2982,7 +2982,7 @@ XLATE-ME FYI… Title of generic dialog used to display information */ - public static final int info_title=0x7f0501a5; + public static final int info_title=0x7f0501a6; /** You are using the wordlist @@ -2990,7 +2990,7 @@ XLATE-ME too? */ - public static final int inform_dict_diffdict_fmt=0x7f050244; + public static final int inform_dict_diffdict_fmt=0x7f050245; /** You and the host of this @@ -2999,14 +2999,14 @@ XLATE-ME Used in formatting final scores display */ - public static final int inform_dict_diffversion_fmt=0x7f050242; + public static final int inform_dict_diffversion_fmt=0x7f050243; /** \u0020(You will have to download it first.) */ - public static final int inform_dict_download=0x7f050245; + public static final int inform_dict_download=0x7f050246; /** Wordlist mismatch */ - public static final int inform_dict_title=0x7f050243; + public static final int inform_dict_title=0x7f050244; /** Will new games, on default, randomly rearrange the start order of players. Will new games, on default, randomly rearrange the start @@ -3015,13 +3015,13 @@ XLATE-ME Will new games, on default, randomly rearrange the start order of players. */ - public static final int init_autojuggle=0x7f050129; + public static final int init_autojuggle=0x7f05012a; /** clarification on above clarification on above Randomly, for new games clarification on above */ - public static final int init_autojuggle_sum=0x7f05012a; + public static final int init_autojuggle_sum=0x7f05012b; /** default number of minutes on timer for new games clarification of the above @@ -3035,15 +3035,15 @@ XLATE-ME Timer minutes per player default number of minutes on timer for new games */ - public static final int initial_player_minutes=0x7f05012c; - public static final int invite_choice_bt=0x7f050172; - public static final int invite_choice_email=0x7f050171; + public static final int initial_player_minutes=0x7f05012d; + public static final int invite_choice_bt=0x7f050173; + public static final int invite_choice_email=0x7f050172; /** Email Bluetooth NFC (\"Android beaming\") */ - public static final int invite_choice_nfc=0x7f050173; - public static final int invite_choice_relay=0x7f050174; + public static final int invite_choice_nfc=0x7f050174; + public static final int invite_choice_relay=0x7f050175; /** EXPLAIN ME Bluetooth is not available. This may mean that your device doesn\'t support it, or that it\'s been @@ -3056,11 +3056,11 @@ XLATE-ME explanation/guidance. SMS (texting) */ - public static final int invite_choice_sms=0x7f050170; + public static final int invite_choice_sms=0x7f050171; /** Inviting players: How? */ - public static final int invite_choice_title=0x7f050175; - public static final int invite_chooser_email=0x7f05017a; + public static final int invite_choice_title=0x7f050176; + public static final int invite_chooser_email=0x7f05017b; /** When I've created the invitation, in text or html, I ask Android to launch an app that can send it, typically an email or messaging app. Android then asks the user to choose which @@ -3081,30 +3081,30 @@ XLATE-ME to have launched. This string is passed to Android and used as the title of the dialog that presents that choice. */ - public static final int invite_chooser_fmt=0x7f050179; + public static final int invite_chooser_fmt=0x7f05017a; /** email sms */ - public static final int invite_chooser_sms=0x7f05017b; + public static final int invite_chooser_sms=0x7f05017c; /** EXPERIMENTAL: Shown as toast when user chooses "My choice" for invitation */ - public static final int invite_copied=0x7f050325; + public static final int invite_copied=0x7f050326; /** %1$s has invited you to play Crosswords using the wordlist %2$s (for play in %3$s), but it is not installed. Would you like to download the wordlist or decline the invitation? */ - public static final int invite_dict_missing_body_fmt=0x7f05024a; + public static final int invite_dict_missing_body_fmt=0x7f05024b; /** You have been invited to play Crosswords using the wordlist %2$s (for play in %3$s), but it is not installed. Would you like to download the wordlist? */ - public static final int invite_dict_missing_body_noname_fmt=0x7f05024b; + public static final int invite_dict_missing_body_noname_fmt=0x7f05024c; /** Missing wordlist */ - public static final int invite_dict_missing_title=0x7f050249; + public static final int invite_dict_missing_title=0x7f05024a; public static final int invite_host=0x7f05007d; /** This is the body of the html version of the invitation. A URL is created with parameters describing the game and @@ -3131,22 +3131,22 @@ XLATE-ME encodings for the greater-than and less-than symbols which are not legal in xml strings.) */ - public static final int invite_htm_fmt=0x7f050177; + public static final int invite_htm_fmt=0x7f050178; /** Appended to message above if local device has NFC available Appended to message above if local device has NFC available (Or just Tap to Invite - if the other device also has Android Beaming and is nearby.) */ - public static final int invite_if_nfc=0x7f0500e6; + public static final int invite_if_nfc=0x7f0500e7; public static final int invite_mime=0x7f05007e; /** XLATE-ME Invite more than one player per remote device */ - public static final int invite_multi_summary=0x7f0502cd; + public static final int invite_multi_summary=0x7f0502ce; /** XLATE-ME Invite multiple */ - public static final int invite_multi_title=0x7f0502cc; + public static final int invite_multi_title=0x7f0502cd; /** Most users create games with only two players, which is the default, but Crosswords supports up to four. When I'm using the above string to encourage the opener of a game missing @@ -3166,27 +3166,27 @@ XLATE-ME players to invite, IF the number of missing players is greater than one this text is appended to the above. */ - public static final int invite_multiple=0x7f0500e7; + public static final int invite_multiple=0x7f0500e8; /** */ - public static final int invite_notice_title=0x7f0501f5; + public static final int invite_notice_title=0x7f0501f6; public static final int invite_prefix=0x7f050084; /** Sending invitation to Crosswords on %1$s */ - public static final int invite_progress_fmt=0x7f0501f0; + public static final int invite_progress_fmt=0x7f0501f1; /** Connecting... */ - public static final int invite_progress_title=0x7f0501ef; + public static final int invite_progress_title=0x7f0501f0; /** XLATE-ME (This dialog will stay up until all remote players have connected. You can close the game if you expect it to take a while. They will still be able to connect.) */ - public static final int invite_stays=0x7f0502d6; + public static final int invite_stays=0x7f0502d7; /** Send invitation using SMS (texting) or via email? Send invitation using NFC (Android @@ -3218,7 +3218,7 @@ XLATE-ME This is the subject line of the email/text sent to invite someone to join a game. */ - public static final int invite_subject_fmt=0x7f050176; + public static final int invite_subject_fmt=0x7f050177; /** This is the body of the text version of the invitation. A URL is created with parameters describing the game and substituted for "%1$s". @@ -3231,7 +3231,7 @@ XLATE-ME is created with parameters describing the game and substituted for "%1$s". */ - public static final int invite_txt_fmt=0x7f050178; + public static final int invite_txt_fmt=0x7f050179; /** text of checkbox asking if user wants to search for open public rooms text of checkbox asking if user wants to search for open @@ -3241,7 +3241,7 @@ XLATE-ME text of checkbox asking if user wants to search for open public rooms */ - public static final int join_room=0x7f0500bc; + public static final int join_room=0x7f0500bd; /** Checkbox that when set keeps the device screen from dimming if the board screen is what's displayed. This is to allow users to think about a move without having to touch the @@ -3256,13 +3256,13 @@ XLATE-ME users to think about a move without having to touch the screen all the time. */ - public static final int keep_screenon=0x7f05013b; + public static final int keep_screenon=0x7f05013c; /** clarification of above clarification of above Keep board screen on 10 mins clarification of above */ - public static final int keep_screenon_summary=0x7f05013c; + public static final int keep_screenon_summary=0x7f05013d; public static final int key_addrs_pref=0x7f05003e; public static final int key_background=0x7f05001a; public static final int key_board_size=0x7f050029; @@ -3278,7 +3278,7 @@ XLATE-ME the color of text, e.g. "2L", shown on a bonus square on the board */ - public static final int key_bonushint=0x7f050147; + public static final int key_bonushint=0x7f050148; public static final int key_bt_addrs=0x7f050040; /** database keys whose entries aren't visible prefs */ @@ -3413,45 +3413,45 @@ XLATE-ME for networked games (where players aren't allowed to have different wordlists.) */ - public static final int lang_label=0x7f0500b9; - public static final int lang_name_arabic=0x7f050293; - public static final int lang_name_catalan=0x7f05029a; - public static final int lang_name_czech=0x7f05029d; - public static final int lang_name_danish=0x7f050297; - public static final int lang_name_dutch=0x7f050299; - public static final int lang_name_english=0x7f05028f; - public static final int lang_name_french=0x7f050290; - public static final int lang_name_german=0x7f050291; - public static final int lang_name_greek=0x7f05029e; - public static final int lang_name_italian=0x7f050298; - public static final int lang_name_polish=0x7f050296; - public static final int lang_name_portuguese=0x7f05029b; - public static final int lang_name_russian=0x7f05029c; - public static final int lang_name_slovak=0x7f05029f; - public static final int lang_name_spanish=0x7f050294; - public static final int lang_name_swedish=0x7f050295; - public static final int lang_name_turkish=0x7f050292; + public static final int lang_label=0x7f0500ba; + public static final int lang_name_arabic=0x7f050294; + public static final int lang_name_catalan=0x7f05029b; + public static final int lang_name_czech=0x7f05029e; + public static final int lang_name_danish=0x7f050298; + public static final int lang_name_dutch=0x7f05029a; + public static final int lang_name_english=0x7f050290; + public static final int lang_name_french=0x7f050291; + public static final int lang_name_german=0x7f050292; + public static final int lang_name_greek=0x7f05029f; + public static final int lang_name_italian=0x7f050299; + public static final int lang_name_polish=0x7f050297; + public static final int lang_name_portuguese=0x7f05029c; + public static final int lang_name_russian=0x7f05029d; + public static final int lang_name_slovak=0x7f0502a0; + public static final int lang_name_spanish=0x7f050295; + public static final int lang_name_swedish=0x7f050296; + public static final int lang_name_turkish=0x7f050293; /** Unknown */ - public static final int lang_unknown=0x7f0502b2; + public static final int lang_unknown=0x7f0502b3; /** Game language/wordlist */ - public static final int langdict_label=0x7f0500ba; + public static final int langdict_label=0x7f0500bb; /** Put new games here */ - public static final int list_group_default=0x7f050255; + public static final int list_group_default=0x7f050256; /** Delete group */ - public static final int list_group_delete=0x7f050253; + public static final int list_group_delete=0x7f050254; /** Move down */ - public static final int list_group_movedown=0x7f050257; + public static final int list_group_movedown=0x7f050258; /** Move up */ - public static final int list_group_moveup=0x7f050256; + public static final int list_group_moveup=0x7f050257; /** Rename */ - public static final int list_group_rename=0x7f050254; + public static final int list_group_rename=0x7f050255; /** ############## menu items ############## pulls up dialog to configure the selected game Used to format game name plus some other information as the @@ -3466,7 +3466,7 @@ XLATE-ME ############## menu items ############## pulls up dialog to configure the selected game */ - public static final int list_item_config=0x7f050098; + public static final int list_item_config=0x7f050099; /** makes a copy of the selected game. This is currently disabled for networked games since there would be problems if two identically configured games started trying to talk to a @@ -3480,20 +3480,20 @@ XLATE-ME two identically configured games started trying to talk to a remote game that expected there was only one of them. */ - public static final int list_item_copy=0x7f05009e; + public static final int list_item_copy=0x7f05009f; /** pulls up dialog to delete the selected game pulls up dialog to change the group of the selected game pulls up dialog to rename (change name of) the selected game pulls up dialog to delete the selected game pulls up dialog to delete the selected game */ - public static final int list_item_delete=0x7f05009b; - public static final int list_item_deselect=0x7f05032d; + public static final int list_item_delete=0x7f05009c; + public static final int list_item_deselect=0x7f05032e; /** pulls up dialog to change the group of the selected game pulls up dialog to change the group of the selected game pulls up dialog to change the group of the selected game */ - public static final int list_item_move=0x7f05009a; + public static final int list_item_move=0x7f05009b; /** creates a new game with all configuation copied from the selected game creates a new game with all configuation copied from the @@ -3501,12 +3501,12 @@ XLATE-ME creates a new game with all configuation copied from the selected game */ - public static final int list_item_new_from=0x7f05009d; + public static final int list_item_new_from=0x7f05009e; /** pulls up dialog to rename (change name of) the selected game pulls up dialog to rename (change name of) the selected game pulls up dialog to rename (change name of) the selected game */ - public static final int list_item_rename=0x7f050099; + public static final int list_item_rename=0x7f05009a; /** pulls up dialog to reset the selected game, that is to remove all moves so that it's the same as a newly created game except for any configuration. @@ -3526,19 +3526,19 @@ XLATE-ME all moves so that it's the same as a newly created game except for any configuration. */ - public static final int list_item_reset=0x7f05009c; - public static final int list_item_select=0x7f05032c; + public static final int list_item_reset=0x7f05009d; + public static final int list_item_select=0x7f05032d; /** formatting for last move summary in notifications formatting for last move summary in notifications %1$s passed (0 points) */ - public static final int lmi_pass_fmt=0x7f0502ba; + public static final int lmi_pass_fmt=0x7f0502bb; /** %1$s lost a turn */ - public static final int lmi_phony_fmt=0x7f0502bb; + public static final int lmi_phony_fmt=0x7f0502bc; /** Tiles assigned to %1$s */ - public static final int lmi_tiles_fmt=0x7f0502bc; + public static final int lmi_tiles_fmt=0x7f0502bd; /** One of the strings used in the right column of the list of installed wordlists to describe those that are part of Crosswords and that cannot be uninstalled or moved. @@ -3555,7 +3555,7 @@ XLATE-ME loc_internal and loc_external are the other possible strings in this column. */ - public static final int loc_builtin=0x7f0500a5; + public static final int loc_builtin=0x7f0500a6; /** Used to describe wordlists that are in the Downloads directory. Currently I don't look there so this is unused, but I will eventually do so. This should be the same name as @@ -3572,63 +3572,63 @@ XLATE-ME the built-in Android web browser uses for the directory where it saves files it downloads. */ - public static final int loc_downloads=0x7f0500a6; + public static final int loc_downloads=0x7f0500a7; /** */ - public static final int loc_external=0x7f0500b0; + public static final int loc_external=0x7f0500b1; /** All */ - public static final int loc_filters_all=0x7f05028b; + public static final int loc_filters_all=0x7f05028c; /** Latest menu */ - public static final int loc_filters_menu=0x7f05028d; + public static final int loc_filters_menu=0x7f05028e; /** Modified by me */ - public static final int loc_filters_modified=0x7f05028e; + public static final int loc_filters_modified=0x7f05028f; /** Filter by: */ - public static final int loc_filters_prompt=0x7f050289; + public static final int loc_filters_prompt=0x7f05028a; /** Latest screen */ - public static final int loc_filters_screen=0x7f05028c; + public static final int loc_filters_screen=0x7f05028d; /** Illegal translation: a translated string must have the same format specifiers (e.g. %1$s) as the original. */ - public static final int loc_fmts_mismatch=0x7f0502a4; + public static final int loc_fmts_mismatch=0x7f0502a5; /** see move_dictf above see move_dictf above see move_dictf above */ - public static final int loc_internal=0x7f0500af; + public static final int loc_internal=0x7f0500b0; /** Check */ - public static final int loc_item_check=0x7f0502a1; + public static final int loc_item_check=0x7f0502a2; /** for loc item edit menu for loc item edit menu Clear */ - public static final int loc_item_clear=0x7f0502a0; + public static final int loc_item_clear=0x7f0502a1; /** Copy official */ - public static final int loc_item_copy_bless=0x7f0502a3; + public static final int loc_item_copy_bless=0x7f0502a4; /** Copy English */ - public static final int loc_item_copy_eng=0x7f0502a2; + public static final int loc_item_copy_eng=0x7f0502a3; /** %1$s (official) */ - public static final int loc_lang_blessed=0x7f050284; + public static final int loc_lang_blessed=0x7f050285; /** %1$s (yours) */ - public static final int loc_lang_local=0x7f050285; + public static final int loc_lang_local=0x7f050286; /** Translate */ - public static final int loc_menu_xlate=0x7f050283; + public static final int loc_menu_xlate=0x7f050284; /** Search for: */ - public static final int loc_search_prompt=0x7f05028a; + public static final int loc_search_prompt=0x7f05028b; /** This is the "hint" printed in light text in the empty player name field ############################################################ @@ -3675,106 +3675,106 @@ XLATE-ME This is the "hint" printed in light text in the empty player name field */ - public static final int local_name_hint=0x7f050181; + public static final int local_name_hint=0x7f050182; /** XLATE-ME Enable logging */ - public static final int logging_on=0x7f0502e8; + public static final int logging_on=0x7f0502e9; /** XLATE-ME (release builds only) */ - public static final int logging_on_summary=0x7f0502e9; + public static final int logging_on_summary=0x7f0502ea; /** Word lookup */ - public static final int lookup_title=0x7f05027f; + public static final int lookup_title=0x7f050280; /** (Not in contacts) */ - public static final int manual_owner_name=0x7f05020b; + public static final int manual_owner_name=0x7f05020c; /** Max length */ - public static final int max_len=0x7f0501e6; + public static final int max_len=0x7f0501e7; /** Chat */ - public static final int menu_chat=0x7f05021d; + public static final int menu_chat=0x7f05021e; /** Flip board */ - public static final int menu_flip=0x7f05021b; + public static final int menu_flip=0x7f05021c; /** Next hint */ - public static final int menu_hint_next=0x7f050218; + public static final int menu_hint_next=0x7f050219; /** Prev hint */ - public static final int menu_hint_prev=0x7f050217; + public static final int menu_hint_prev=0x7f050218; /** Juggle rack */ - public static final int menu_juggle=0x7f05021a; + public static final int menu_juggle=0x7f05021b; /** text of menu that brings up the Settings (preferences) dialog text of menu that brings up the Settings (preferences) dialog text of menu that brings up the Settings (preferences) dialog */ - public static final int menu_prefs=0x7f050092; + public static final int menu_prefs=0x7f050093; /** Rate Crosswords */ - public static final int menu_rateme=0x7f050271; + public static final int menu_rateme=0x7f050272; /** Toggle values */ - public static final int menu_toggle_values=0x7f05021e; + public static final int menu_toggle_values=0x7f05021f; /** Zoom in/out */ - public static final int menu_zoom=0x7f05021c; + public static final int menu_zoom=0x7f05021d; /** Min length */ - public static final int min_len=0x7f0501e5; + public static final int min_len=0x7f0501e6; /** label for the field used to set the timer's inital value label for the field used to set the timer's inital value Minutes per player label for the field used to set the timer's inital value */ - public static final int minutes_label=0x7f0500c6; + public static final int minutes_label=0x7f0500c7; /** body of notification shown when invitation requires a wordslist that's not installed body of notification shown when invitation requires a wordslist that's not installed Tap to download missing wordlist */ - public static final int missing_dict_detail=0x7f050248; + public static final int missing_dict_detail=0x7f050249; /** Title of notification shown when invitation requires a wordslist that's not installed Title of notification shown when invitation requires a wordslist that's not installed Game invitation pending */ - public static final int missing_dict_title=0x7f050247; + public static final int missing_dict_title=0x7f050248; /** Used as a substitute for the names of remote players when they aren't available yet because the connection is not complete. Displayed in the lists of players found in each @@ -3813,7 +3813,7 @@ XLATE-ME loc_internal are substitued for %2$s and %3$s (or vice-versa, depending on the current location of the wordlist.) */ - public static final int move_dict_fmt=0x7f0500ae; + public static final int move_dict_fmt=0x7f0500af; /** ############################################################ # :Dialogs: @@ -3854,7 +3854,7 @@ XLATE-ME Text of dialog. Player name is substituted */ - public static final int msg_ask_password_fmt=0x7f050199; + public static final int msg_ask_password_fmt=0x7f05019a; /** When a game has been connected and the relay is notified that a device in the game has deleted its part of the game, this message is posted when you connect your end of it to the @@ -3877,27 +3877,27 @@ XLATE-ME game so you might as well delete it (unless you're saving it for its history etc.) */ - public static final int msg_dev_deleted=0x7f0500ef; + public static final int msg_dev_deleted=0x7f0500f0; /** (I believe this can no longer occur) (I believe this can no longer occur) Another host has already registered a room using that name. Rename yours or retry later. (I believe this can no longer occur) */ - public static final int msg_dup_room=0x7f0500ed; + public static final int msg_dup_room=0x7f0500ee; /** (I believe this can no longer occur) (I believe this can no longer occur) The relay has lost contact with another device in this game. (I believe this can no longer occur) */ - public static final int msg_lost_other=0x7f0500ee; + public static final int msg_lost_other=0x7f0500ef; /** (I believe this can no longer occur) (I believe this can no longer occur) No host has registered a room by that name. (I believe this can no longer occur) */ - public static final int msg_no_room=0x7f0500ec; + public static final int msg_no_room=0x7f0500ed; /** Text of "toast" shown when a game is notified by the relay that all expected players have registered. At this point play can begin. @@ -3910,41 +3910,41 @@ XLATE-ME that all expected players have registered. At this point play can begin. */ - public static final int msg_relay_all_here_fmt=0x7f0500e9; + public static final int msg_relay_all_here_fmt=0x7f0500ea; /** (I believe this can no longer occur) (I believe this can no longer occur) You are providing more players than the host expects. (I believe this can no longer occur) */ - public static final int msg_too_many=0x7f0500eb; + public static final int msg_too_many=0x7f0500ec; /** Text of progress indicator shown while check is being conducted Text of progress indicator shown while check is being conducted Text of progress indicator shown while check is being conducted */ - public static final int msgs_progress=0x7f050094; + public static final int msgs_progress=0x7f050095; /** %1$s moved more than %2$s ago. */ - public static final int nag_body_fmt=0x7f0502b7; + public static final int nag_body_fmt=0x7f0502b8; /** XLATE-ME Reminder intervals (minutes1,minutes2,...) */ - public static final int nag_intervals=0x7f0502fa; + public static final int nag_intervals=0x7f0502fb; /** Nagging: title of notification reminder message Nagging: title of notification reminder message Reminder: It\'s your turn */ - public static final int nag_title=0x7f0502b6; + public static final int nag_title=0x7f0502b7; /** above is inserted in this the last time I warn above is inserted in this the last time I warn Last warning: %1$s */ - public static final int nag_warn_last_fmt=0x7f0502b8; + public static final int nag_warn_last_fmt=0x7f0502b9; /** XLATE-ME %1$s copy */ - public static final int name_copy_fmt=0x7f050205; - public static final int name_dict_fmt=0x7f0502f4; + public static final int name_copy_fmt=0x7f050206; + public static final int name_dict_fmt=0x7f0502f5; public static final int nbs_port=0x7f050083; /** text of checkbox. If this checkbox is checked, games created for network play will by default have the hint feature @@ -3957,7 +3957,7 @@ XLATE-ME for network play will by default have the hint feature enabled. */ - public static final int nethints_allowed=0x7f0500c4; + public static final int nethints_allowed=0x7f0500c5; /** clarification on hints_allowed, whether new NETWORKED games will default to having the hint feature enabled(string elsewhere in this file) @@ -3969,41 +3969,41 @@ XLATE-ME will default to having the hint feature enabled(string elsewhere in this file) */ - public static final int nethints_allowed_sum=0x7f050128; + public static final int nethints_allowed_sum=0x7f050129; /** XLATE-ME Game network stats */ - public static final int netstats_title=0x7f0502ef; + public static final int netstats_title=0x7f0502f0; /** XLATE-ME For experienced players */ - public static final int network_advanced_summary=0x7f0502cb; + public static final int network_advanced_summary=0x7f0502cc; /** XLATE-ME Advanced */ - public static final int network_advanced_title=0x7f0502ca; + public static final int network_advanced_title=0x7f0502cb; /** Network game settings */ - public static final int network_behavior=0x7f050159; + public static final int network_behavior=0x7f05015a; /** explanation of the above explanation of the above Settings that apply to networked games explanation of the above */ - public static final int network_behavior_summary=0x7f05015a; + public static final int network_behavior_summary=0x7f05015b; /** Tap to download and install */ - public static final int new_app_avail=0x7f05023e; + public static final int new_app_avail=0x7f05023f; /** New version of %1$s */ - public static final int new_app_avail_fmt=0x7f05023d; + public static final int new_app_avail_fmt=0x7f05023e; /** New game via Bluetooth @@ -4012,67 +4012,67 @@ XLATE-ME */ - public static final int new_bt_body_fmt=0x7f0501f6; + public static final int new_bt_body_fmt=0x7f0501f7; /** */ - public static final int new_btmove_title=0x7f0501fa; + public static final int new_btmove_title=0x7f0501fb; /** New wordlist available */ - public static final int new_dict_avail=0x7f05023b; + public static final int new_dict_avail=0x7f05023c; /** Tap to update %1$s */ - public static final int new_dict_avail_fmt=0x7f05023c; + public static final int new_dict_avail_fmt=0x7f05023d; /** XLATE-ME New one-device game */ - public static final int new_game=0x7f0502c1; + public static final int new_game=0x7f0502c2; /** XLATE-ME Would you like to create this game using default settings?\n\nOr would you like to configure it first? */ - public static final int new_game_message=0x7f0502c4; + public static final int new_game_message=0x7f0502c5; /** XLATE-ME (You will have a chance to invite other players when it is open.) */ - public static final int new_game_message_net=0x7f0502c6; + public static final int new_game_message_net=0x7f0502c7; /** XLATE-ME This game must be configured before it can be opened. */ - public static final int new_game_message_nodflt=0x7f0502c5; + public static final int new_game_message_nodflt=0x7f0502c6; /** XLATE-ME New networked game */ - public static final int new_game_networked=0x7f0502c2; + public static final int new_game_networked=0x7f0502c3; /** One or more moves has arrived */ - public static final int new_move_body=0x7f0501fb; + public static final int new_move_body=0x7f0501fc; /** %1$s has invited you to play */ - public static final int new_name_body_fmt=0x7f050208; - public static final int new_relay_body=0x7f0501f7; + public static final int new_name_body_fmt=0x7f050209; + public static final int new_relay_body=0x7f0501f8; /** hint (text shown when field is empty) for room name field hint (text shown when field is empty) for room name field Room name hint (text shown when field is empty) for room name field */ - public static final int new_room_hint=0x7f0500bd; + public static final int new_room_hint=0x7f0500be; /** ########################################################### # :Dialogs: @@ -4108,7 +4108,7 @@ XLATE-ME Title of New user info dialog */ - public static final int newbie_title=0x7f0501ad; + public static final int newbie_title=0x7f0501ae; /** section separator (white-on-gray bar) for third section: bluetooth games section separator (white-on-gray bar) for third section: @@ -4117,15 +4117,15 @@ XLATE-ME section separator (white-on-gray bar) for third section: bluetooth games */ - public static final int newgame_bt_header=0x7f05016f; + public static final int newgame_bt_header=0x7f050170; /** Text of second of two buttons for new standalone games. Tap this and you'll get taken to the "Game configure" screen Text of second of two buttons for new standalone games. Tap this and you'll get taken to the "Game configure" screen Configure first */ - public static final int newgame_configure_first=0x7f050169; - public static final int newgame_drop_relay=0x7f05016e; + public static final int newgame_configure_first=0x7f05016a; + public static final int newgame_drop_relay=0x7f05016f; /** Text of first of two buttons for new networked games. Tap this and a game will be created, but you probably won't see it immediately because an email or messaging app will be @@ -4140,8 +4140,8 @@ XLATE-ME it immediately because an email or messaging app will be launched to send your invitation. */ - public static final int newgame_invite=0x7f05016c; - public static final int newgame_invite_more=0x7f05016d; + public static final int newgame_invite=0x7f05016d; + public static final int newgame_invite_more=0x7f05016e; /** Text of first of two buttons for new standalone games. Tap this and a new game will be created and opened. If the first player is a robot it will immediately take its turn. @@ -4153,7 +4153,7 @@ XLATE-ME this and a new game will be created and opened. If the first player is a robot it will immediately take its turn. */ - public static final int newgame_local=0x7f050168; + public static final int newgame_local=0x7f050169; /** This is one of two descriptions on this screen. It explains what standalone games are and describes the two buttons used to create them. The name of the language of the default @@ -4172,7 +4172,7 @@ XLATE-ME to create them. The name of the language of the default wordlist is substituted in for %1$s. */ - public static final int newgame_local_desc_fmt=0x7f050167; + public static final int newgame_local_desc_fmt=0x7f050168; /** ############################################################ # :Screens: # New game screen @@ -4211,7 +4211,7 @@ XLATE-ME section separator (white-on-gray bar) for first section: standalone games */ - public static final int newgame_local_header=0x7f050166; + public static final int newgame_local_header=0x7f050167; /** This is the second of two descriptions on this screen. It explains what networked games are and describes the two buttons used to create them. @@ -4228,7 +4228,7 @@ XLATE-ME explains what networked games are and describes the two buttons used to create them. */ - public static final int newgame_networked_desc=0x7f05016b; + public static final int newgame_networked_desc=0x7f05016c; /** section separator (white-on-gray bar) for second section: networked games section separator (white-on-gray bar) for second section: @@ -4237,7 +4237,7 @@ XLATE-ME section separator (white-on-gray bar) for second section: networked games */ - public static final int newgame_networked_header=0x7f05016a; + public static final int newgame_networked_header=0x7f05016b; /** New SMS Game @@ -4245,16 +4245,16 @@ XLATE-ME */ - public static final int newgame_sms_header=0x7f050206; + public static final int newgame_sms_header=0x7f050207; /** Name your new group: */ - public static final int newgroup_label=0x7f050252; + public static final int newgroup_label=0x7f050253; /** XLATE-ME To invite via NFC just touch the back of this device against the one you want to invite—any time the game is open. */ - public static final int nfc_just_tap=0x7f0502d7; + public static final int nfc_just_tap=0x7f0502d8; /** XLATE-ME GSM XLATE-ME @@ -4262,7 +4262,7 @@ XLATE-ME XLATE-ME Send via NFC to self? */ - public static final int nfc_to_self=0x7f050304; + public static final int nfc_to_self=0x7f050305; /** Title of dialog for renaming game (triggered by selecting list_item_rename) If you try to copy a networked game you get this error @@ -4276,7 +4276,7 @@ XLATE-ME If you try to copy a networked game you get this error message. */ - public static final int no_copy_network=0x7f05009f; + public static final int no_copy_network=0x7f0500a0; /** If the wordlist disappears mid-game there are no choices, just an explanation and this button, after which the game closes. @@ -4290,7 +4290,7 @@ XLATE-ME just an explanation and this button, after which the game closes. */ - public static final int no_dict_finish=0x7f050192; + public static final int no_dict_finish=0x7f050193; /** If the missing wordlist is discovered when trying to open the game, we have more options. If there's another wordlist in the same language, we can offer to substitute without needing @@ -4315,7 +4315,7 @@ XLATE-ME takes wordlist name and language substituted in for %1$ and %2$ */ - public static final int no_dict_fmt=0x7f050194; + public static final int no_dict_fmt=0x7f050195; /** This is an alternative message presented when there's also the option of downloading another wordlist. Game name, wordlist name and language are substituted in. @@ -4331,7 +4331,7 @@ XLATE-ME the option of downloading another wordlist. Game name, wordlist name and language are substituted in. */ - public static final int no_dict_subst_fmt=0x7f050195; + public static final int no_dict_subst_fmt=0x7f050196; /** ############################################################ # :Dialogs: @@ -4485,7 +4485,7 @@ XLATE-ME title of alert */ - public static final int no_dict_title=0x7f050191; + public static final int no_dict_title=0x7f050192; /** If you click on the Play button without having entered a room name you get an alert with this error message. If you click on the Play button without having entered a room @@ -4495,7 +4495,7 @@ XLATE-ME If you click on the Play button without having entered a room name you get an alert with this error message. */ - public static final int no_empty_rooms=0x7f050183; + public static final int no_empty_rooms=0x7f050184; /** If you choose the above option and have no networked games you get this error message If you choose the above option and have no networked games @@ -4503,10 +4503,10 @@ XLATE-ME If you choose the above option and have no networked games you get this error message */ - public static final int no_games_to_refresh=0x7f050095; + public static final int no_games_to_refresh=0x7f050096; /** Google Play app not found */ - public static final int no_market=0x7f050272; + public static final int no_market=0x7f050273; /** displayed when you long-tap a scoreboard entry and there's no most recent score to show displayed when you long-tap a scoreboard entry and there's no @@ -4515,7 +4515,7 @@ XLATE-ME displayed when you long-tap a scoreboard entry and there's no most recent score to show */ - public static final int no_moves_made=0x7f0500e5; + public static final int no_moves_made=0x7f0500e6; /** If the query returns no rooms, this message is displayed, with the number of players in the game and its language substituted. @@ -4529,8 +4529,8 @@ XLATE-ME with the number of players in the game and its language substituted. */ - public static final int no_name_found_fmt=0x7f0500c1; - public static final int no_relay_conn=0x7f050317; + public static final int no_name_found_fmt=0x7f0500c2; + public static final int no_relay_conn=0x7f050318; /** This is not currently shown Crosswords wordlists, which are just compressed lists of words plus tile information, determine @@ -4572,25 +4572,25 @@ XLATE-ME figuring out how to play and when you tap an empty cell the arrow appears. This explains it. */ - public static final int not_again_arrow=0x7f0501c0; + public static final int not_again_arrow=0x7f0501c1; /** The back button clears any selection instead of exiting. Hit it again to exit the app. */ - public static final int not_again_backclears=0x7f050265; + public static final int not_again_backclears=0x7f050266; /** This button opens the wordlist browser on the current player\'s wordlist. */ - public static final int not_again_browse=0x7f0501e2; + public static final int not_again_browse=0x7f0501e3; /** This button opens the wordlist browser on the wordlist of your choice. */ - public static final int not_again_browseall=0x7f0501e3; + public static final int not_again_browseall=0x7f0501e4; /** Shown when you tap the chat button on the toolbar of the main Board screen Shown when you tap the chat button on the toolbar of the @@ -4601,14 +4601,14 @@ XLATE-ME Shown when you tap the chat button on the toolbar of the main Board screen */ - public static final int not_again_chat=0x7f0501b9; + public static final int not_again_chat=0x7f0501ba; /** EXPERIMENTAL: Newbie hint next when invite_choice_clip shown when chosen */ - public static final int not_again_clip_expl_fmt=0x7f050327; - public static final int not_again_comms_bt=0x7f050320; - public static final int not_again_comms_relay=0x7f05031e; - public static final int not_again_comms_sms=0x7f05031f; + public static final int not_again_clip_expl_fmt=0x7f050328; + public static final int not_again_comms_bt=0x7f050321; + public static final int not_again_comms_relay=0x7f05031f; + public static final int not_again_comms_sms=0x7f050320; /** This is shown in the Board screen when you successfully connecting a game to the relay and are the last device in the game to do so, i.e. the game is now complete and you should @@ -4626,7 +4626,7 @@ XLATE-ME game to do so, i.e. the game is now complete and you should expect play to begin. */ - public static final int not_again_conndall=0x7f0501bf; + public static final int not_again_conndall=0x7f0501c0; /** This is shown in the Board screen when you successfully connect a game to the relay and are the first device in the game to do so. @@ -4641,7 +4641,7 @@ XLATE-ME connect a game to the relay and are the first device in the game to do so. */ - public static final int not_again_conndfirst=0x7f0501bd; + public static final int not_again_conndfirst=0x7f0501be; /** This is shown in the Board screen when you successfully connecting a game to the relay and are not the first device in the game but not the last either. So it will only occur @@ -4658,8 +4658,8 @@ XLATE-ME in the game but not the last either. So it will only occur for games with more than two devices, which are rare. */ - public static final int not_again_conndmid=0x7f0501be; - public static final int not_again_dfltname_fmt=0x7f05032e; + public static final int not_again_conndmid=0x7f0501bf; + public static final int not_again_dfltname_fmt=0x7f05032f; /** This screen lets you install new wordslists and view the ones you already have.\n\nWhat wordlists you have installed determines:\n• What languages you can play @@ -4667,7 +4667,7 @@ XLATE-ME legal.\n\nCheck the \"Show downloadable\" box at the top to see what\'s available. */ - public static final int not_again_dicts=0x7f0502b3; + public static final int not_again_dicts=0x7f0502b4; /** This is shown when you choose the board_menu_done menu item. It's to let you know that there's a shortcut that does almost the same thing. @@ -4681,14 +4681,14 @@ XLATE-ME It's to let you know that there's a shortcut that does almost the same thing. */ - public static final int not_again_done=0x7f0501bb; + public static final int not_again_done=0x7f0501bc; /** XLATE-ME Public rooms have been made an \"advanced\" feature in this release. If you were using them and want them back, enable them now. You can turn them off again in Settings. */ - public static final int not_again_enablepublic=0x7f0502dd; + public static final int not_again_enablepublic=0x7f0502de; /** Shown when you tap the flip button on the toolbar of the main Board screen Shown when you tap the flip button on the toolbar of the main @@ -4698,13 +4698,13 @@ XLATE-ME Shown when you tap the flip button on the toolbar of the main Board screen */ - public static final int not_again_flip=0x7f0501b6; + public static final int not_again_flip=0x7f0501b7; /** This string has special format specifiers (e.g. %1$s). Please be sure that your translation has the same ones as the original.\n\n(You will not be able to save it unless it does.) */ - public static final int not_again_fmt_expl=0x7f0502a5; + public static final int not_again_fmt_expl=0x7f0502a6; /** XLATE-ME These two buttons do the same thing as the first two items in this window\'s Action Bar @@ -4713,7 +4713,7 @@ XLATE-ME section of App settings). */ - public static final int not_again_hidenewgamebuttons=0x7f0502d2; + public static final int not_again_hidenewgamebuttons=0x7f0502d3; /** Shown when you tap the next hint button on the toolbar of the main Board screen Shown when you tap the next hint button on the toolbar of the @@ -4724,7 +4724,7 @@ XLATE-ME Shown when you tap the next hint button on the toolbar of the main Board screen */ - public static final int not_again_hintnext=0x7f0501b4; + public static final int not_again_hintnext=0x7f0501b5; /** Currently not used The new game you have created has two players. Player 1 is a robot; Player 2 is you. Tap the game @@ -4750,7 +4750,7 @@ XLATE-ME Shown when you tap the Previous Hint button on the toolbar of the main Board screen */ - public static final int not_again_hintprev=0x7f0501b3; + public static final int not_again_hintprev=0x7f0501b4; /** Shown when you tap the juggle button on the toolbar of the main Board screen Shown when you tap the juggle button on the toolbar of the @@ -4760,14 +4760,14 @@ XLATE-ME Shown when you tap the juggle button on the toolbar of the main Board screen */ - public static final int not_again_juggle=0x7f0501b5; + public static final int not_again_juggle=0x7f0501b6; /** This button lets you look up, online, the words just played. */ - public static final int not_again_lookup=0x7f0501d6; + public static final int not_again_lookup=0x7f0501d7; /** Shown when you first pick the list_item_new_from menuitem Shown when you first pick the list_item_new_from menuitem Create a new ready-to-play game @@ -4775,19 +4775,19 @@ XLATE-ME as a template. Shown when you first pick the list_item_new_from menuitem */ - public static final int not_again_newfrom=0x7f0501c2; + public static final int not_again_newfrom=0x7f0501c3; /** Tapping a game opens it.\n\nYou can instead tap the icons at the left to select or deselect games, then act on selected games, e.g. to delete them, using the menu or \"Actionbar.\" */ - public static final int not_again_newselect=0x7f050264; - public static final int not_again_rematch_two_only=0x7f050322; + public static final int not_again_newselect=0x7f050265; + public static final int not_again_rematch_two_only=0x7f050323; /** The selected words will be copied to the system clipboard. You can then paste them into any app that supports pasting text, e.g. an email app. */ - public static final int not_again_studycopy=0x7f05027e; + public static final int not_again_studycopy=0x7f05027f; /** The following strings (all whose names start with "not_again") appear in the New user info dialog. @@ -4806,7 +4806,7 @@ XLATE-ME shown when user chooses the gamel_menu_checkmoves menu */ - public static final int not_again_sync=0x7f0501af; + public static final int not_again_sync=0x7f0501b0; /** Shown when the user chooses the "board_menu_trade" menu Shown when the user chooses the "board_menu_trade" menu You are entering tile-exchange @@ -4814,15 +4814,15 @@ XLATE-ME exchanged.\n\n Shown when the user chooses the "board_menu_trade" menu */ - public static final int not_again_trading=0x7f0501b0; + public static final int not_again_trading=0x7f0501b1; /** Use the buttons to commit your turn or exit exchange mode. */ - public static final int not_again_trading_buttons=0x7f0501b1; + public static final int not_again_trading_buttons=0x7f0501b2; /** Use the menu or action bar to commit your turn or exit exchange mode. */ - public static final int not_again_trading_menu=0x7f0501b2; + public static final int not_again_trading_menu=0x7f0501b3; /** Shown when the board screen is visible and it's just become another players turn. The idea is to give a hint about how to find out about recent moves. @@ -4837,7 +4837,7 @@ XLATE-ME another players turn. The idea is to give a hint about how to find out about recent moves. */ - public static final int not_again_turnchanged=0x7f0501c1; + public static final int not_again_turnchanged=0x7f0501c2; /** Shown when you tap the undo/redo button on the toolbar of the main Board screen Shown when you tap the undo/redo button on the toolbar of the @@ -4847,7 +4847,7 @@ XLATE-ME Shown when you tap the undo/redo button on the toolbar of the main Board screen */ - public static final int not_again_undo=0x7f0501b8; + public static final int not_again_undo=0x7f0501b9; /** Shown in the Game configure screen when the game_locked checkbox is checked and you uncheck it. Shown in the Game configure screen when the game_locked @@ -4859,7 +4859,7 @@ XLATE-ME Shown in the Game configure screen when the game_locked checkbox is checked and you uncheck it. */ - public static final int not_again_unlock=0x7f0501bc; + public static final int not_again_unlock=0x7f0501bd; /** Shown when you tap the values button on the toolbar of the main Board screen. This is intended to allow players to remind themselves how much played tiles are worth while @@ -4876,7 +4876,7 @@ XLATE-ME remind themselves how much played tiles are worth while planning a move. */ - public static final int not_again_values=0x7f0501ba; + public static final int not_again_values=0x7f0501bb; /** Shown when you tap the zoom (+/-) button on the toolbar of the main Board screen Shown when you tap the zoom (+/-) button on the toolbar of @@ -4887,12 +4887,12 @@ XLATE-ME Shown when you tap the zoom (+/-) button on the toolbar of the main Board screen */ - public static final int not_again_zoom=0x7f0501b7; + public static final int not_again_zoom=0x7f0501b8; /** (None) */ - public static final int note_none=0x7f0502af; - public static final int notify_chat_body_fmt=0x7f05019e; - public static final int notify_chat_title_fmt=0x7f05019d; + public static final int note_none=0x7f0502b0; + public static final int notify_chat_body_fmt=0x7f05019f; + public static final int notify_chat_title_fmt=0x7f05019e; /** This text is displayed as the "summary" for both of the notify choices above, as extra information. (There could be different strings if it makes more sense in your language.) @@ -4907,7 +4907,7 @@ XLATE-ME different strings if it makes more sense in your language.) */ - public static final int notify_other_summary=0x7f050165; + public static final int notify_other_summary=0x7f050166; /** When one or more new moves is found, should I play a notification sound When one or more new moves is found, should I play a @@ -4916,7 +4916,7 @@ XLATE-ME When one or more new moves is found, should I play a notification sound */ - public static final int notify_sound=0x7f050163; + public static final int notify_sound=0x7f050164; /** When a move is fetched from the relay a Notification is posted. These are its title, which appears in the top bar of the device, and the body that appears when you pull the notifications @@ -4927,7 +4927,7 @@ XLATE-ME down. Move in game %1$s */ - public static final int notify_title_fmt=0x7f05019c; + public static final int notify_title_fmt=0x7f05019d; /** When one or more new moves is found, should I vibrate the device When one or more new moves is found, should I vibrate the @@ -4936,11 +4936,11 @@ XLATE-ME When one or more new moves is found, should I vibrate the device */ - public static final int notify_vibrate=0x7f050164; + public static final int notify_vibrate=0x7f050165; /** XLATE-ME Number on this device */ - public static final int nplayers_prompt=0x7f0502c8; + public static final int nplayers_prompt=0x7f0502c9; /** text of label identifying the field where human players can enter an option password. The label and field disappear when the robot player checkbox is checked because it makes no @@ -4964,14 +4964,14 @@ XLATE-ME player on a device, so they are infrequently used in network games as well. */ - public static final int password_label=0x7f0500dd; + public static final int password_label=0x7f0500de; /** You have NFC enabled. That means that any time a board that\'s missing a player is open, you can tap a nearby person\'s device to invite him/her to play – if he/she is also using NFC. \u0020pct. */ - public static final int pct_suffix=0x7f050270; + public static final int pct_suffix=0x7f050271; /** If this preference is checked, tapping on the scoreboard entry for any player reveals that player's tiles and any pending move (after asking for his password if one is set.) @@ -4998,20 +4998,20 @@ XLATE-ME though it's not his turn e.g. while the player whose turn it is is temporarily unable to play. */ - public static final int peek_other=0x7f050155; + public static final int peek_other=0x7f050156; /** explanation of the above explanation of the above Tapping on scoreboard name shows that player\'s tiles explanation of the above */ - public static final int peek_other_summary=0x7f050156; + public static final int peek_other_summary=0x7f050157; /** Connected number[s]: */ - public static final int phone_label=0x7f050213; + public static final int phone_label=0x7f050214; /** Don't warn, but simply force to skip turn (give 0 points) when user attempts to play word not in the wordlist. Don't warn, but simply force to skip turn (give 0 points) @@ -5020,7 +5020,7 @@ XLATE-ME Don't warn, but simply force to skip turn (give 0 points) when user attempts to play word not in the wordlist. */ - public static final int phonies_disallow=0x7f0500ce; + public static final int phonies_disallow=0x7f0500cf; /** These are the three choices in the popup above whose text is phonies_spinner_prompt Don't care if words played are in the wordlist or not @@ -5180,7 +5180,7 @@ XLATE-ME phonies_spinner_prompt Don't care if words played are in the wordlist or not */ - public static final int phonies_ignore=0x7f0500cc; + public static final int phonies_ignore=0x7f0500cd; /** title of popup used to determine how words are handled that are not in the wordlist used for the game (or player if using different wordlists per player) @@ -5193,7 +5193,7 @@ XLATE-ME are not in the wordlist used for the game (or player if using different wordlists per player) */ - public static final int phonies_spinner_prompt=0x7f0500cb; + public static final int phonies_spinner_prompt=0x7f0500cc; /** warn player when word played is not in the wordlist, but allow him to play it. warn player when word played is not in the wordlist, but @@ -5202,19 +5202,19 @@ XLATE-ME warn player when word played is not in the wordlist, but allow him to play it. */ - public static final int phonies_warn=0x7f0500cd; + public static final int phonies_warn=0x7f0500ce; /** Pick tiles face-up */ - public static final int pick_faceup=0x7f0501de; + public static final int pick_faceup=0x7f0501df; /** Look up %1$s at */ - public static final int pick_url_title_fmt=0x7f0501d4; + public static final int pick_url_title_fmt=0x7f0501d5; /** Text of button at bottom. Press it and you exit this configure screen and open the game into the Board screen Text of button at bottom. Press it and you exit this @@ -5223,7 +5223,7 @@ XLATE-ME Text of button at bottom. Press it and you exit this configure screen and open the game into the Board screen */ - public static final int play=0x7f0500d3; + public static final int play=0x7f0500d4; /** ############################################################ # :Dialogs: @@ -5305,7 +5305,7 @@ XLATE-ME dialog title */ - public static final int player_edit_title=0x7f0500d7; + public static final int player_edit_title=0x7f0500d8; /** used to create default player names. Number between 1 and 4 is substituted When a move is fetched from the relay a Notification is @@ -5320,7 +5320,7 @@ XLATE-ME used to create default player names. Number between 1 and 4 is substituted */ - public static final int player_fmt=0x7f05019b; + public static final int player_fmt=0x7f05019c; /** text of lable identifying the field in which player's name is set/displayed Shown in the main screen when you launch Crosswords from an @@ -5339,7 +5339,7 @@ XLATE-ME text of lable identifying the field in which player's name is set/displayed */ - public static final int player_label=0x7f0500d9; + public static final int player_label=0x7f0500da; /** text for separator above the list of players that's used for networked games. The numbers of local and non-local players are substituted for %1$d and %2$d. @@ -5352,7 +5352,7 @@ XLATE-ME networked games. The numbers of local and non-local players are substituted for %1$d and %2$d. */ - public static final int players_label_host_fmt=0x7f0500b6; + public static final int players_label_host_fmt=0x7f0500b7; /** text for separator above the list of players that's used for non-networked games text for separator above the list of players that's used for @@ -5361,60 +5361,60 @@ XLATE-ME text for separator above the list of players that's used for non-networked games */ - public static final int players_label_standalone=0x7f0500b5; + public static final int players_label_standalone=0x7f0500b6; /** Prefs related to in-app localization */ - public static final int pref_group_l10n_summary=0x7f050310; + public static final int pref_group_l10n_summary=0x7f050311; /** Localization Stuff */ - public static final int pref_group_l10n_title=0x7f05030f; + public static final int pref_group_l10n_title=0x7f050310; /** Prefs related to play via internet/relay */ - public static final int pref_group_relay_summary=0x7f05030e; + public static final int pref_group_relay_summary=0x7f05030f; /** Relay Stuff */ - public static final int pref_group_relay_title=0x7f05030d; + public static final int pref_group_relay_title=0x7f05030e; /** Prefs related to play-via-sms */ - public static final int pref_group_sms_summary=0x7f05030c; + public static final int pref_group_sms_summary=0x7f05030d; /** SMS Stuff */ - public static final int pref_group_sms_title=0x7f05030b; + public static final int pref_group_sms_title=0x7f05030c; /** Label for the first "human player" name preference Label for the first "human player" name preference Human player */ - public static final int pref_human_name=0x7f050121; + public static final int pref_human_name=0x7f050122; /** Get intermediate builds */ - public static final int pref_item_update_summary=0x7f050312; + public static final int pref_item_update_summary=0x7f050313; /** Update between releases */ - public static final int pref_item_update_title=0x7f050311; + public static final int pref_item_update_title=0x7f050312; /** Label for the first player color preference Label for the first player color preference First player Label for the first "player name" preference */ - public static final int pref_player1_name=0x7f05011d; + public static final int pref_player1_name=0x7f05011e; /** Label for the second player color preference Label for the second player color preference Second player Label for the second "player name" preference (unused) */ - public static final int pref_player2_name=0x7f05011e; + public static final int pref_player2_name=0x7f05011f; /** Label for the third player color preference Label for the third player color preference Third player Label for the third "player name" preference (unused) */ - public static final int pref_player3_name=0x7f05011f; + public static final int pref_player3_name=0x7f050120; /** Label for the fourth player color preference Label for the fourth player color preference Fourth player Label for the fourth "player name" preference (unused) */ - public static final int pref_player4_name=0x7f050120; + public static final int pref_player4_name=0x7f050121; /** ############################################################ # :Screens: @@ -5438,14 +5438,14 @@ XLATE-ME title of this sub-preference */ - public static final int prefs_appearance=0x7f05012e; + public static final int prefs_appearance=0x7f05012f; /** clarification of the above clarification of the above Settings controlling appearance clarification of the above */ - public static final int prefs_appearance_summary=0x7f05012f; + public static final int prefs_appearance_summary=0x7f050130; /** ############################################################ # :Screens: @@ -5469,13 +5469,13 @@ XLATE-ME title of this sub-preference */ - public static final int prefs_behavior=0x7f05014b; + public static final int prefs_behavior=0x7f05014c; /** clarification of the above clarification of the above Settings controlling app behavior clarification of the above */ - public static final int prefs_behavior_summary=0x7f05014c; + public static final int prefs_behavior_summary=0x7f05014d; /** ############################################################ # :Screens: @@ -5525,13 +5525,13 @@ XLATE-ME title of this sub-preference */ - public static final int prefs_colors=0x7f05013d; + public static final int prefs_colors=0x7f05013e; /** clarification of the above clarification of the above Edit colors used on the board clarification of the above */ - public static final int prefs_colors_summary=0x7f05013e; + public static final int prefs_colors_summary=0x7f05013f; /** ############################################################ # :Screens: @@ -5555,26 +5555,26 @@ XLATE-ME title of this sub-preference */ - public static final int prefs_defaults=0x7f050119; + public static final int prefs_defaults=0x7f05011a; /** clarification of the above clarification of the above Default settings for new games clarification of the above */ - public static final int prefs_defaults_summary=0x7f05011a; + public static final int prefs_defaults_summary=0x7f05011b; /** sub-preference for dictionaries (soon to be called "word lists") sub-preference for dictionaries (soon to be called "word lists") Wordlists sub-preference for dictionaries (soon to be called "word lists") */ - public static final int prefs_dicts=0x7f050123; + public static final int prefs_dicts=0x7f050124; /** clarification of above clarification of above Default wordlists clarification of above */ - public static final int prefs_dicts_summary=0x7f050124; + public static final int prefs_dicts_summary=0x7f050125; /** sub-preference title for editing default player names. There's only enabled now, though. sub-preference title for editing default player names. @@ -5583,38 +5583,38 @@ XLATE-ME sub-preference title for editing default player names. There's only enabled now, though. */ - public static final int prefs_names=0x7f05011b; + public static final int prefs_names=0x7f05011c; /** clarification of the above clarification of the above Default player names clarification of the above */ - public static final int prefs_names_summary=0x7f05011c; + public static final int prefs_names_summary=0x7f05011d; /** Used when prev player's name can't be looked up Used when prev player's name can't be looked up Your opponent */ - public static final int prev_player=0x7f0502b9; - public static final int processing_games=0x7f05032b; + public static final int prev_player=0x7f0502ba; + public static final int processing_games=0x7f05032c; /** Downloading */ - public static final int progress_title=0x7f0502ad; + public static final int progress_title=0x7f0502ae; /** Words no longer than */ - public static final int prompt_max_len=0x7f0501e8; + public static final int prompt_max_len=0x7f0501e9; /** Words no shorter than */ - public static final int prompt_min_len=0x7f0501e7; + public static final int prompt_min_len=0x7f0501e8; /** XLATE-ME Relay device port */ - public static final int proxy_port=0x7f0502f3; + public static final int proxy_port=0x7f0502f4; /** Short for "points", this is shown at the right end of the tray in place of the first tile placed along with the points the current move would earn if committed. @@ -5622,7 +5622,7 @@ XLATE-ME tray in place of the first tile placed along with the points the current move would earn if committed. */ - public static final int pts=0x7f0500e8; + public static final int pts=0x7f0500e9; /** If you check the join_room checkbox Crosswords queries the relay. This is the text of the progress indicator displayed what that's going on. (It's often visible for only a very short @@ -5638,7 +5638,7 @@ XLATE-ME that's going on. (It's often visible for only a very short time.) */ - public static final int public_names_progress_fmt=0x7f0500c0; + public static final int public_names_progress_fmt=0x7f0500c1; /** Title for generic dialog asking a question, usually in the middle of a game, like "do you want to commit this move?" Title for generic dialog asking a question, usually in the @@ -5647,17 +5647,17 @@ XLATE-ME Title for generic dialog asking a question, usually in the middle of a game, like "do you want to commit this move?" */ - public static final int query_title=0x7f0501ac; - public static final int radio_name_cdma=0x7f050303; - public static final int radio_name_gsm=0x7f050302; + public static final int query_title=0x7f0501ad; + public static final int radio_name_cdma=0x7f050304; + public static final int radio_name_gsm=0x7f050303; /** XLATE-ME Don\'t pretend */ - public static final int radio_name_real=0x7f050300; + public static final int radio_name_real=0x7f050301; /** XLATE-ME Tablet/no radio */ - public static final int radio_name_tablet=0x7f050301; + public static final int radio_name_tablet=0x7f050302; /** ############################################################ # :Dialogs: @@ -5693,12 +5693,12 @@ XLATE-ME Names of the three colors by which colors can be edited in the color preferences dialog */ - public static final int red=0x7f050148; + public static final int red=0x7f050149; /** XLATE-ME Invite redirect host */ - public static final int redir_host=0x7f0502e6; - public static final int rel_invite_title=0x7f050329; + public static final int redir_host=0x7f0502e7; + public static final int rel_invite_title=0x7f05032a; /** Title of dialog used to alert players to relay-related problems with the current game. the color of text, e.g. "2L", shown on a bonus square on the @@ -5711,39 +5711,39 @@ XLATE-ME Title of dialog used to alert players to relay-related problems with the current game. */ - public static final int relay_alert=0x7f0500ea; + public static final int relay_alert=0x7f0500eb; /** Message from relay */ - public static final int relay_alert_title=0x7f050263; + public static final int relay_alert_title=0x7f050264; /** XLATE-ME Relay host */ - public static final int relay_host=0x7f0502e5; - public static final int relay_invite_title=0x7f050201; + public static final int relay_host=0x7f0502e6; + public static final int relay_invite_title=0x7f050202; /** XLATE-ME Relay game port */ - public static final int relay_port=0x7f0502f2; + public static final int relay_port=0x7f0502f3; /** Shown in toast when relaunching after switching dicts Shown in toast when relaunching after switching dicts Reloading game with %1$s Shown in toast when relaunching after switching dicts */ - public static final int reload_new_dict_fmt=0x7f050246; + public static final int reload_new_dict_fmt=0x7f050247; /** XLATE-ME Issuing rematch invitation. You will see this message until it has been accepted.\n\nYou do not need to keep this game open while waiting. You will be notified when the game is ready to play. */ - public static final int rematch_msg=0x7f0502dc; - public static final int rematch_name_fmt=0x7f0502c3; + public static final int rematch_msg=0x7f0502dd; + public static final int rematch_name_fmt=0x7f0502c4; /** Processing wordlist information… */ - public static final int remote_digesting=0x7f0502a7; + public static final int remote_digesting=0x7f0502a8; /** Fetching wordlist information from server… */ - public static final int remote_empty=0x7f0502a6; + public static final int remote_empty=0x7f0502a7; /** checkbox determining of this player is on this device or remote. If remote, then the rest of the fields disappear (since they will be set by the remote device.) @@ -5755,20 +5755,20 @@ XLATE-ME remote. If remote, then the rest of the fields disappear (since they will be set by the remote device.) */ - public static final int remote_label=0x7f0500d8; + public static final int remote_label=0x7f0500d9; /** Unable to fetch wordlist information from server. */ - public static final int remote_no_net=0x7f0502a8; + public static final int remote_no_net=0x7f0502a9; /** Remote device undid a turn. */ - public static final int remote_undone=0x7f050216; + public static final int remote_undone=0x7f050217; /** Change the name of this group to: */ - public static final int rename_group_label=0x7f05025a; + public static final int rename_group_label=0x7f05025b; /** text within rename dialog (triggered by selecting list_item_rename) text within rename dialog (triggered by selecting @@ -5776,12 +5776,12 @@ XLATE-ME text within rename dialog (triggered by selecting list_item_rename) */ - public static final int rename_label=0x7f0500a1; + public static final int rename_label=0x7f0500a2; /** XLATE-ME Change the name of this game (on this device only) to: */ - public static final int rename_label_caveat=0x7f0500a2; + public static final int rename_label_caveat=0x7f0500a3; /** if this preference is checked, the hardware volume keys will work to zoom the board in and out (and will not control volume) This only applies when the Board screen is @@ -5800,19 +5800,19 @@ XLATE-ME volume) This only applies when the Board screen is frontmost. */ - public static final int ringer_zoom=0x7f050153; + public static final int ringer_zoom=0x7f050154; /** explanation of the above explanation of the above Zoom board using volume keys explanation of the above */ - public static final int ringer_zoom_summary=0x7f050154; + public static final int ringer_zoom_summary=0x7f050155; /** checkbox determining if player is robot/automated or human checkbox determining if player is robot/automated or human Robot player checkbox determining if player is robot/automated or human */ - public static final int robot_label=0x7f0500dc; + public static final int robot_label=0x7f0500dd; /** Used to format robot player names in the lists of players found in each game listing Used to format game name plus some other information as the @@ -5830,13 +5830,13 @@ XLATE-ME Smart robot Three possible choices presented in the popup above */ - public static final int robot_smart=0x7f0500c8; + public static final int robot_smart=0x7f0500c9; /** Smarter robot */ - public static final int robot_smarter=0x7f0500c9; + public static final int robot_smarter=0x7f0500ca; /** Smartest robot */ - public static final int robot_smartest=0x7f0500ca; + public static final int robot_smartest=0x7f0500cb; /** title of popup used to select how "smart" (how capable) the robot player will be. title of popup used to select how "smart" (how capable) the @@ -5845,29 +5845,29 @@ XLATE-ME title of popup used to select how "smart" (how capable) the robot player will be. */ - public static final int robot_spinner_prompt=0x7f0500c7; + public static final int robot_spinner_prompt=0x7f0500c8; /** text of checkbox text of checkbox Make new room public text of checkbox */ - public static final int room_public=0x7f0500be; + public static final int room_public=0x7f0500bf; /** title for popup of public rooms found on server title for popup of public rooms found on server Select public room title for popup of public rooms found on server */ - public static final int room_public_prompt=0x7f0500bf; - public static final int seeking_relay=0x7f050316; + public static final int room_public_prompt=0x7f0500c0; + public static final int seeking_relay=0x7f050317; /** Games: %1$d */ - public static final int sel_games_fmt=0x7f050266; + public static final int sel_games_fmt=0x7f050267; /** Groups: %1$d */ - public static final int sel_groups_fmt=0x7f050267; + public static final int sel_groups_fmt=0x7f050268; /** Selected: %1$d */ - public static final int sel_items_fmt=0x7f050282; + public static final int sel_items_fmt=0x7f050283; /** ############################################################ # :Dialogs: @@ -5887,11 +5887,11 @@ XLATE-ME up when the dicts_item_select menuitem is chosen. The possible answers are the three button text strings below. */ - public static final int set_default_message_fmt=0x7f0500aa; + public static final int set_default_message_fmt=0x7f0500ab; /** XLATE-ME Hide buttons */ - public static final int set_pref=0x7f0502d1; + public static final int set_pref=0x7f0502d2; /** text of separator marking out other-setting area of the dialog see move_dictf above @@ -5930,7 +5930,7 @@ XLATE-ME Other settings text of separator marking out other-setting area of the dialog */ - public static final int settings_label=0x7f0500c2; + public static final int settings_label=0x7f0500c3; /** Checkbox that when set makes taps on the board manipulate an arrow that then directs where tiles go when tapped in the tray. @@ -5942,20 +5942,20 @@ XLATE-ME arrow that then directs where tiles go when tapped in the tray. */ - public static final int show_arrow=0x7f050139; + public static final int show_arrow=0x7f05013a; /** clarification of above clarification of above Tapped rack tiles land on this arrow when it is visible clarification of above */ - public static final int show_arrow_summary=0x7f05013a; + public static final int show_arrow_summary=0x7f05013b; /** Show downloadable */ - public static final int show_remote=0x7f0502ab; + public static final int show_remote=0x7f0502ac; /** Wordlist browser */ - public static final int show_wordlist_browser=0x7f050262; + public static final int show_wordlist_browser=0x7f050263; /** If this preference is checked, the user will not be asked to confirm after selecting the "Turn done" menu (or tapping the points display at the right end of the tray) @@ -5967,47 +5967,47 @@ XLATE-ME confirm after selecting the "Turn done" menu (or tapping the points display at the right end of the tray) */ - public static final int skip_confirm_turn=0x7f05014f; + public static final int skip_confirm_turn=0x7f050150; /** explanation of the above explanation of the above Do NOT display score summary after every human turn explanation of the above */ - public static final int skip_confirm_turn_summary=0x7f050150; + public static final int skip_confirm_turn_summary=0x7f050151; /** Delete selected */ - public static final int slmenu_clear_sel=0x7f050278; + public static final int slmenu_clear_sel=0x7f050279; /** Copy to clipboard */ - public static final int slmenu_copy_sel=0x7f050277; + public static final int slmenu_copy_sel=0x7f050278; /** Unselect all */ - public static final int slmenu_deselect_all=0x7f050281; + public static final int slmenu_deselect_all=0x7f050282; /** Select all */ - public static final int slmenu_select_all=0x7f050280; + public static final int slmenu_select_all=0x7f050281; /** XLATE-ME The version of Crosswords on the phone with number \"%1$s\" is incompatible with this one for play using SMS. One of you may need to upgrade before you can continue. */ - public static final int sms_bad_proto_fmt=0x7f0501f9; + public static final int sms_bad_proto_fmt=0x7f0501fa; /** Title of phone number picker during invitation to a game via SMS Title of phone number picker during invitation to a game via SMS SMS Invitation */ - public static final int sms_invite_title=0x7f050200; + public static final int sms_invite_title=0x7f050201; /** Tap the receiving device now */ - public static final int sms_ready_text=0x7f05026f; + public static final int sms_ready_text=0x7f050270; /** Square rack tiles */ - public static final int square_tiles=0x7f05025f; + public static final int square_tiles=0x7f050260; /** Even if they can be taller */ - public static final int square_tiles_summary=0x7f050260; + public static final int square_tiles_summary=0x7f050261; /** Used in formatting moves and history Used to separate names of players when listing them on one line in a game summary. The \u0020 is a space in xml. @@ -6019,7 +6019,7 @@ XLATE-ME line in a game summary. The \u0020 is a space in xml. Used in formatting moves and history */ - public static final int str_bonus_all=0x7f050111; + public static final int str_bonus_all=0x7f050112; /** Using the hint feature is cheating by some players, and it can be disabled via the hints_allowed preference. I should be disabling the buttons in this case, but if I don't and you @@ -6036,7 +6036,7 @@ XLATE-ME be disabling the buttons in this case, but if I don't and you try to get a hint you'll get this message instead. */ - public static final int str_cant_hint_while_disabled=0x7f05018d; + public static final int str_cant_hint_while_disabled=0x7f05018e; /** Displayed if you try to use the undo menuitem or button and there are no tiles on the board (no move has yet been made.) [If I'm being clever and disabling those features in this @@ -6052,7 +6052,7 @@ XLATE-ME [If I'm being clever and disabling those features in this case there may be no way to see this.] */ - public static final int str_cant_undo_tileassign=0x7f05018c; + public static final int str_cant_undo_tileassign=0x7f05018d; /** Beginning of the message presented to a user when asking him to confirm committing the current turn Used in formatting reports of trades (exchanges of tiles). @@ -6073,7 +6073,7 @@ XLATE-ME Beginning of the message presented to a user when asking him to confirm committing the current turn */ - public static final int str_commit_confirm=0x7f05010e; + public static final int str_commit_confirm=0x7f05010f; /** Used to format game name plus some other information as the one-line summary for each game in the main screen. The name of the game is substituted for %1$s. Something else @@ -6094,8 +6094,8 @@ XLATE-ME because there is empty space between some of the tiles placed, i.e. they do not form a single word. */ - public static final int str_no_empties_in_turn=0x7f050185; - public static final int str_no_hint_found=0x7f050321; + public static final int str_no_empties_in_turn=0x7f050186; + public static final int str_no_hint_found=0x7f050322; /** Same as above, but used when you try to show tiles belonging to a player on another device (a remote player.) Same as above, but used when you try to show tiles belonging @@ -6105,7 +6105,7 @@ XLATE-ME Same as above, but used when you try to show tiles belonging to a player on another device (a remote player.) */ - public static final int str_no_peek_remote_tiles=0x7f05018a; + public static final int str_no_peek_remote_tiles=0x7f05018b; /** Displayed when you try to reveal a robot player's tiles, either by tapping on its "hidden" rack (marked by "?" characters) or by tapping on its scoreboard entry. (The @@ -6127,7 +6127,7 @@ XLATE-ME controlled by the peek_other preference and is disabled by default.) */ - public static final int str_no_peek_robot_tiles=0x7f050189; + public static final int str_no_peek_robot_tiles=0x7f05018a; /** Used, with remote player's name substituted for %1$s, to indicate that the player is remote. Used, with remote player's name substituted for %1$s, to @@ -6136,7 +6136,7 @@ XLATE-ME Used, with remote player's name substituted for %s, to indicate that the player is remote. */ - public static final int str_nonlocal_name_fmt=0x7f05010f; + public static final int str_nonlocal_name_fmt=0x7f050110; /** Displyed when you try to commit a move and it's not your turn. Displyed when you try to commit a move and it's not your @@ -6146,12 +6146,12 @@ XLATE-ME Displyed when you try to commit a move and it's not your turn. */ - public static final int str_not_your_turn=0x7f050188; + public static final int str_not_your_turn=0x7f050189; /** Used in formatting game history and move summaries Used in formatting game history and move summaries pass\n */ - public static final int str_pass=0x7f050108; + public static final int str_pass=0x7f050109; /** Used to alert user to loss of turn when a move is made and phonies is set to lose turn when word used not in wordlist @@ -6163,10 +6163,10 @@ XLATE-ME phonies is set to lose turn when word used not in wordlist */ - public static final int str_phony_rejected=0x7f05010d; + public static final int str_phony_rejected=0x7f05010e; /** [#%d] %s: %d */ - public static final int str_placer_fmt=0x7f050241; + public static final int str_placer_fmt=0x7f050242; /** Shown when using the the Game configure screen to configure a networked game and you try to make all players local. Shown when using the the Game configure screen to configure a @@ -6176,7 +6176,7 @@ XLATE-ME Shown when using the the Game configure screen to configure a networked game and you try to make all players local. */ - public static final int str_reg_server_sans_remote=0x7f0500cf; + public static final int str_reg_server_sans_remote=0x7f0500d0; /** This error message is shown when a remote device tries to join a game and is providing more players than that game expects. I do not believe it is possible to see this message @@ -6198,17 +6198,17 @@ XLATE-ME many players are expected and only connects devices where the numbers match. */ - public static final int str_reg_unexpected_user=0x7f05018e; + public static final int str_reg_unexpected_user=0x7f05018f; /** Used in formatting remote player move summaries Used in formatting remote player move summaries Remote player %1$s made this move:\u0020 Used in formatting remote player move summaries */ - public static final int str_remote_moved_fmt=0x7f050106; + public static final int str_remote_moved_fmt=0x7f050107; /** [Resigned] %s: %d */ - public static final int str_resigned_fmt=0x7f050240; + public static final int str_resigned_fmt=0x7f050241; /** ############################################################ # Board info/error dialog messages @@ -6229,7 +6229,7 @@ XLATE-ME Notifies user of a normal robot move The robot %1$s made this move:\u0020 */ - public static final int str_robot_moved_fmt=0x7f050100; + public static final int str_robot_moved_fmt=0x7f050101; /** Shown when a remote device tries to join a game and wants to play in a different language. As with the above, this should be impossible when connecting via the relay. @@ -6242,7 +6242,7 @@ XLATE-ME play in a different language. As with the above, this should be impossible when connecting via the relay. */ - public static final int str_server_dict_wins=0x7f05018f; + public static final int str_server_dict_wins=0x7f050190; /** Displayed when you try to commit a turn that is illegal because tiles played do not touch other tiles already on the board (or the middle/star square in the case of the initial @@ -6259,7 +6259,7 @@ XLATE-ME board (or the middle/star square in the case of the initial move.) */ - public static final int str_tiles_must_contact=0x7f050187; + public static final int str_tiles_must_contact=0x7f050188; /** error messages @@ -6289,7 +6289,7 @@ XLATE-ME because the tiles placed are not all in the same row or column. */ - public static final int str_tiles_not_in_line=0x7f050184; + public static final int str_tiles_not_in_line=0x7f050185; /** Displayed when you try to begin a trade but there are not seven or more tiles in the pool. The rules don't allow trading in this case. @@ -6302,7 +6302,7 @@ XLATE-ME seven or more tiles in the pool. The rules don't allow trading in this case. */ - public static final int str_too_few_tiles_left_to_trade=0x7f05018b; + public static final int str_too_few_tiles_left_to_trade=0x7f05018c; /** Displayed when you try to commit the first move of the game and are playing a single tile. The first move must include two or more tiles. @@ -6315,12 +6315,12 @@ XLATE-ME and are playing a single tile. The first move must include two or more tiles. */ - public static final int str_two_tiles_first_move=0x7f050186; + public static final int str_two_tiles_first_move=0x7f050187; /** Used in formatting final scores display Used in formatting final scores display [Winner] %s: %d */ - public static final int str_winner_fmt=0x7f05023f; + public static final int str_winner_fmt=0x7f050240; /** Used in formatting game history (not move summaries since information about the current rack is hidden then) Used in formatting game history (not move summaries since @@ -6329,19 +6329,19 @@ XLATE-ME Used in formatting game history (not move summaries since information about the current rack is hidden then) */ - public static final int strd_cumulative_score_fmt=0x7f050105; + public static final int strd_cumulative_score_fmt=0x7f050106; /** Used in formatting game history and move summaries Used in formatting game history and move summaries + %1$d [all remaining tiles] Used in formatting game history and move summaries */ - public static final int strd_remaining_tiles_add_fmt=0x7f050102; + public static final int strd_remaining_tiles_add_fmt=0x7f050103; /** I don't know how this is used. :-) I don't know how this is used. :-) - %1$d [time] I don't know how this is used. :-) */ - public static final int strd_time_penalty_sub_fmt=0x7f050107; + public static final int strd_time_penalty_sub_fmt=0x7f050108; /** Used in formatting moves and history. The total score for one turn is substituted for %1$d. Used in formatting moves and history. The total score for @@ -6350,38 +6350,38 @@ XLATE-ME Used in formatting moves and history. The total score for one turn is substituted for %d. */ - public static final int strd_turn_score_fmt=0x7f050112; + public static final int strd_turn_score_fmt=0x7f050113; /** Used in formatting game history and move summaries Used in formatting game history and move summaries - %1$d [unused tiles] Used in formatting game history and move summaries */ - public static final int strd_unused_tiles_sub_fmt=0x7f050103; + public static final int strd_unused_tiles_sub_fmt=0x7f050104; /** Used in formatting game history and move summaries Used in formatting game history and move summaries move (from %1$s across)\n Used in formatting game history and move summaries */ - public static final int strs_move_across_fmt=0x7f050109; + public static final int strs_move_across_fmt=0x7f05010a; /** Used in formatting game history and move summaries Used in formatting game history and move summaries move (from %1$s down)\n Used in formatting game history and move summaries */ - public static final int strs_move_down_fmt=0x7f05010a; + public static final int strs_move_down_fmt=0x7f05010b; /** Used in formatting game history and move summaries Used in formatting remote player move summaries Used in formatting game history and move summaries New tiles: %1$s Used in formatting game history and move summaries */ - public static final int strs_new_tiles_fmt=0x7f050104; + public static final int strs_new_tiles_fmt=0x7f050105; /** Used in formatting game history and move summaries Used in formatting game history and move summaries Rack at start: %1$s\n Used in formatting game history and move summaries */ - public static final int strs_tray_at_start_fmt=0x7f05010b; + public static final int strs_tray_at_start_fmt=0x7f05010c; /** title for window you get when you select menu with text board_menu_game_counts string name="str_robot_moved">El robot ha fet aquesta jugada:Robot provedl tento tah:Exchanged %1$s for %2$s. Used in formatting exchange move summaries */ - public static final int strss_traded_for_fmt=0x7f05010c; + public static final int strss_traded_for_fmt=0x7f05010d; /** Your words for: */ - public static final int study_langpick=0x7f05027b; + public static final int study_langpick=0x7f05027c; /** You have not yet saved any words into a studylist for %1$s. */ - public static final int study_no_lang_fmt=0x7f05027c; + public static final int study_no_lang_fmt=0x7f05027d; /** You have not yet saved any words into a studylist. */ - public static final int study_no_lists=0x7f05027d; + public static final int study_no_lists=0x7f05027e; /** Studylist for %1$s */ - public static final int studylist_title_fmt=0x7f05027a; + public static final int studylist_title_fmt=0x7f05027b; /** If substituting an existing same-language wordlist by choosing button_substdict user gets to choose from a list of wordlists. This is the title of that list. @@ -6425,19 +6425,19 @@ string name="str_robot_moved">Robot provedl tento tah:Game in play */ - public static final int summary_conn=0x7f0501f4; + public static final int summary_conn=0x7f0501f5; /** Game in play with %1$s */ - public static final int summary_conn_sms_fmt=0x7f050214; + public static final int summary_conn_sms_fmt=0x7f050215; /** Preference to control what's listed next to game name in the first line of a game summary in the main games-list screen, e.g., if the option is "Game Language", "English" in the @@ -6461,13 +6461,14 @@ string name="str_robot_moved">Robot provedl tento tah:Game over\u200C */ - public static final int summary_gameover=0x7f0501f3; + public static final int summary_gameover=0x7f0501f4; + public static final int summary_invites_out=0x7f05008e; /** The display of each networked game includes one of three states it can be in in the process of connecting to the relay. These next three strings are used to create those @@ -6521,27 +6522,27 @@ string name="str_robot_moved">Robot provedl tento tah:(GSM phones only) */ - public static final int summary_send_data_sms=0x7f0502ed; + public static final int summary_send_data_sms=0x7f0502ee; /** explanation of the above explanation of the above Sort racks whenever new tiles are added explanation of the above */ - public static final int summary_sort_tiles=0x7f050152; + public static final int summary_sort_tiles=0x7f050153; /** Offer to add to and display lists of words to remember */ - public static final int summary_studyon=0x7f050275; + public static final int summary_studyon=0x7f050276; /** Thumbnail size */ - public static final int summary_thumbsize=0x7f050268; + public static final int summary_thumbsize=0x7f050269; /** Unconnected */ - public static final int summary_wait_guest=0x7f0501f2; + public static final int summary_wait_guest=0x7f0501f3; /** Waiting for connection[s] @@ -6549,7 +6550,7 @@ string name="str_robot_moved">Robot provedl tento tah:Robot provedl tento tah:Disabled */ - public static final int thumb_off=0x7f050269; + public static final int thumb_off=0x7f05026a; /** color of the tiles' background color of the "crosshairs", lines drawn vertically and horizontally through the square the user is currently @@ -6572,19 +6573,19 @@ string name="str_robot_moved">Robot provedl tento tah:Tile background color of the tiles' background */ - public static final int tile_back=0x7f050144; + public static final int tile_back=0x7f050145; /** Pick for me */ - public static final int tilepick_all=0x7f0501dc; + public static final int tilepick_all=0x7f0501dd; /** Undo last\u200C */ - public static final int tilepick_undo=0x7f0501db; + public static final int tilepick_undo=0x7f0501dc; /** title of dialog brought up in response to the board_menu_game_left menu. The dialog lists all tiles remaining in the pool, i.e. not on the board or in the rack @@ -6599,14 +6600,14 @@ string name="str_robot_moved">Robot provedl tento tah:Communicate via */ - public static final int title_addrs_pref=0x7f0502c0; + public static final int title_addrs_pref=0x7f0502c1; /** ############################################################ # :Screens: @@ -6635,7 +6636,7 @@ string name="str_robot_moved">Robot provedl tento tah:Robot provedl tento tah:%1$s settings (networked) alternate window title used when game is networked */ - public static final int title_gamenet_config_fmt=0x7f0500b2; + public static final int title_gamenet_config_fmt=0x7f0500b3; /** title for popup list of langugages from which user picks title for popup list of langugages from which user picks Languages (based on installed @@ -6673,16 +6674,16 @@ string name="str_robot_moved">Robot provedl tento tah:Tap to look up */ - public static final int title_lookup=0x7f0501d0; + public static final int title_lookup=0x7f0501d1; /** Tap to look up or study */ - public static final int title_lookup_study=0x7f0501d1; + public static final int title_lookup_study=0x7f0501d2; /** ############################################################ # :Screens: @@ -6723,11 +6724,11 @@ string name="str_robot_moved">Robot provedl tento tah:Send SMS as data */ - public static final int title_send_data_sms=0x7f0502ec; + public static final int title_send_data_sms=0x7f0502ed; /** If this preference is checked, tiles in the rack will be re-ordered alphabetically whenever tiles are added, i.e. after ever move. @@ -6739,10 +6740,10 @@ string name="str_robot_moved">Robot provedl tento tah:Enable studylists */ - public static final int title_studyon=0x7f050274; + public static final int title_studyon=0x7f050275; /** title of dialog allowing user to pick tiles "face up". (This feature is not yet supported on Android.) @@ -6846,16 +6847,16 @@ string name="str_robot_moved">Robot provedl tento tah:Updates are available for one or more installed wordlists. Would you like to download the new version[s] of %1$s now? */ - public static final int update_dicts_fmt=0x7f0502ac; + public static final int update_dicts_fmt=0x7f0502ad; /** XLATE-ME Use defaults */ - public static final int use_defaults=0x7f0502c7; + public static final int use_defaults=0x7f0502c8; /** text of checkbox controlling whether there's a game timer text of checkbox. If this checkbox is checked, games created for network play will by default have the hint feature @@ -6864,42 +6865,42 @@ string name="str_robot_moved">Robot provedl tento tah:Enable game timer text of checkbox controlling whether there's a game timer */ - public static final int use_timer=0x7f0500c5; + public static final int use_timer=0x7f0500c6; /** Used to separate names of players when listing them on one line in a game summary. The \u0020 is a space in xml. Used to separate names of players when listing them on one line in a game summary. The \u0020 is a space in xml. \u0020vs.\u0020 */ - public static final int vs_join=0x7f050110; + public static final int vs_join=0x7f050111; /** Button for alert with title above */ - public static final int waiting_invite_title=0x7f0502d4; + public static final int waiting_invite_title=0x7f0502d5; /** XLATE-ME Waiting for players */ - public static final int waiting_title=0x7f0502d3; + public static final int waiting_title=0x7f0502d4; /** XLATE-ME Bluetooth is currently off on this device. No moves will be sent via Bluetooth.\n\nYou can enable Bluetooth now, or later. */ - public static final int warn_bt_disabled=0x7f050235; + public static final int warn_bt_disabled=0x7f050236; /** XLATE-ME Every networked game must have at least one way of communicating. If you have no default connection options every new networked game will have to be configured manually. */ - public static final int warn_no_comms=0x7f0502d8; + public static final int warn_no_comms=0x7f0502d9; /** The number %1$s for %2$s is not a \"mobile\" number. Import anyway? */ - public static final int warn_nomobile_fmt=0x7f05020c; + public static final int warn_nomobile_fmt=0x7f05020d; /** Play via SMS is currently @@ -6912,31 +6913,31 @@ activer les parties par SMS, allez dans Paramètres->Paramètres des parties en réseau.) */ - public static final int warn_sms_disabled=0x7f050234; + public static final int warn_sms_disabled=0x7f050235; /** Are you certain this number is on an account with unlimited texting? Click cancel if you are not. */ - public static final int warn_unlimited=0x7f050215; - public static final int wifi_warning=0x7f05031a; + public static final int warn_unlimited=0x7f050216; + public static final int wifi_warning=0x7f05031b; /** First letters */ - public static final int word_search_hint=0x7f0501da; + public static final int word_search_hint=0x7f0501db; /** Add option to every screen menu */ - public static final int xlations_enabled_summary=0x7f050287; + public static final int xlations_enabled_summary=0x7f050288; /** Enable local translating */ - public static final int xlations_enabled_title=0x7f050286; + public static final int xlations_enabled_title=0x7f050287; /** XLATE-ME Fake locale for translation */ - public static final int xlations_locale=0x7f0502f8; + public static final int xlations_locale=0x7f0502f9; /** Empty in English, this should contain the name of the translator/creator of the strings.xml file for this language @@ -6950,7 +6951,7 @@ réseau.) translator/creator of the strings.xml file for this language */ - public static final int xlator=0x7f0501c8; + public static final int xlator=0x7f0501c9; public static final int xwords_nfc_mime=0x7f05007c; } public static final class style { diff --git a/xwords4/android/XWords4/res/values/strings.xml b/xwords4/android/XWords4/res/values/strings.xml index 4bd73c93f..57db7ce71 100644 --- a/xwords4/android/XWords4/res/values/strings.xml +++ b/xwords4/android/XWords4/res/values/strings.xml @@ -59,6 +59,8 @@ Game over in room \"%1$s\" + Players invited + Game over Emag revo ni moor \"%1$s\" + Sreyalp detivni Emag revo GAME OVER IN ROOM \"%1$s\" + PLAYERS INVITED GAME OVER Wait + Re-invite (This dialog will stay up until all remote players have connected. You can close the game if you 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 46983a422..fa31bb3d1 100644 --- a/xwords4/android/XWords4/res_src/values-ba_CK/strings.xml +++ b/xwords4/android/XWords4/res_src/values-ba_CK/strings.xml @@ -2102,6 +2102,7 @@ Gnitiaw rof esnopser Tiaw + Etivni-er sIht( golaid lliw yats pu litnu lla etomer sreyalp evah detcennoc. Uoy nac esolc eht emag fi uoy tcepxe ti ot ekat a elihw. Etomer sreyalp lliw llits eb elba 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 897b8a658..dba418b84 100644 --- a/xwords4/android/XWords4/res_src/values-ca_PS/strings.xml +++ b/xwords4/android/XWords4/res_src/values-ca_PS/strings.xml @@ -2102,6 +2102,7 @@ WAITING FOR RESPONSE WAIT + RE-INVITE (THIS DIALOG WILL STAY UP UNTIL ALL REMOTE PLAYERS HAVE CONNECTED. YOU CAN CLOSE THE GAME IF YOU EXPECT IT TO TAKE A WHILE. REMOTE PLAYERS WILL STILL BE ABLE TO 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 62356b3bc..05e0f0d91 100644 --- a/xwords4/android/XWords4/src/org/eehouse/android/xw4/BoardDelegate.java +++ b/xwords4/android/XWords4/src/org/eehouse/android/xw4/BoardDelegate.java @@ -432,15 +432,7 @@ public class BoardDelegate extends DelegateBase lstnr = new OnClickListener() { public void onClick( DialogInterface dialog, int item ) { - if ( null != m_sentInfo - && m_sentInfo.getPlayerCount() >= m_nMissing ) { - // PENDING: probably want a new dialog here - // that includes "resend" and "new invitation" - // buttons, the latter allowing to address it - // differently. Might also want option to - // delete game here too. - showOKOnlyDialog( m_sentInfo.getAsText() ); - } else if ( m_relayConnected || + if ( m_relayConnected || ! m_connTypes.contains(CommsConnType.COMMS_CONN_RELAY) ) { showInviteChoicesThen( Action.LAUNCH_INVITE_ACTION ); } else { @@ -448,16 +440,24 @@ public class BoardDelegate extends DelegateBase } } }; - OnClickListener lstnr2 = new OnClickListener() { + OnClickListener lstnrWait = new OnClickListener() { public void onClick( DialogInterface dialog, int item ) { finish(); } }; + OnClickListener lstnrMore = new OnClickListener() { + public void onClick( DialogInterface dialog, + int item ) { + showOKOnlyDialog( m_sentInfo.getAsText() ); + } + }; + dialog = ab.setTitle( "foo" ) .setMessage( "" ) .setPositiveButton( "", lstnr ) - .setNegativeButton( R.string.button_wait, lstnr2 ) + .setNegativeButton( R.string.button_wait, lstnrWait ) + .setNeutralButton( R.string.newgame_invite_more, lstnrMore ) .setOnCancelListener( new OnCancelListener() { public void onCancel( DialogInterface dialog ) { finish(); @@ -486,18 +486,19 @@ public class BoardDelegate extends DelegateBase AlertDialog ad = (AlertDialog)dialog; String message; int titleID; - boolean nukeButton = false; + boolean nukePosButton = false; + boolean nukeNeutButton = true; int buttonTxt = R.string.newgame_invite; if ( m_summary.hasRematchInfo() ) { titleID = R.string.info_title;; message = getString( R.string.rematch_msg ); - nukeButton = true; + nukePosButton = true; } else { if ( !m_relayConnected ) { titleID = R.string.seeking_relay; // If relay is only means, don't allow at all boolean relayOnly = 1 >= m_connTypes.size(); - nukeButton = relayOnly; + nukePosButton = relayOnly; message = getString( R.string.no_relay_conn ); if ( NetStateCache.netAvail( m_activity ) && NetStateCache.onWifi() ) { @@ -520,7 +521,8 @@ public class BoardDelegate extends DelegateBase titleID = R.string.waiting_invite_title; message = getQuantityString( R.plurals.invite_sent_fmt, nSent, nSent ); - buttonTxt = R.string.newgame_invite_more; + buttonTxt = R.string.button_reinvite; + nukeNeutButton = false; } else { titleID = R.string.waiting_title; message = getQuantityString( R.plurals.invite_msg_fmt, @@ -549,11 +551,14 @@ public class BoardDelegate extends DelegateBase ad.setMessage( message ); ad.setTitle( titleID ); - Button posButton = ad.getButton( AlertDialog.BUTTON_POSITIVE ); - posButton.setVisibility( nukeButton ? View.GONE : View.VISIBLE ); - if ( !nukeButton ) { - posButton.setText( buttonTxt ); + Button button = ad.getButton( AlertDialog.BUTTON_POSITIVE ); + button.setVisibility( nukePosButton ? View.GONE : View.VISIBLE ); + if ( !nukePosButton ) { + button.setText( buttonTxt ); } + button = ad.getButton( AlertDialog.BUTTON_NEUTRAL ); + button.setVisibility( nukeNeutButton ? View.GONE : View.VISIBLE ); + break; default: super.prepareDialog( dlgID, dialog ); @@ -1098,6 +1103,8 @@ public class BoardDelegate extends DelegateBase } else if ( InviteMeans.CLIPBOARD == means ) { GameUtils.inviteURLToClip( m_activity, nli ); } + DBUtils.recordInviteSent( m_activity, m_rowid, means ); + break; default: Assert.fail(); diff --git a/xwords4/android/XWords4/src/org/eehouse/android/xw4/DBUtils.java b/xwords4/android/XWords4/src/org/eehouse/android/xw4/DBUtils.java index 7768ea561..24e033938 100644 --- a/xwords4/android/XWords4/src/org/eehouse/android/xw4/DBUtils.java +++ b/xwords4/android/XWords4/src/org/eehouse/android/xw4/DBUtils.java @@ -432,21 +432,23 @@ public class DBUtils { public static class SentInvitesInfo { public long m_rowid; private int m_count = 0; - private InviteMeans m_means; - private String m_target; - private Timestamp m_timestamp; + private ArrayList m_means; + private ArrayList m_target; + private ArrayList m_timestamp; private SentInvitesInfo( long rowID ) { m_rowid = rowID; + m_means = new ArrayList(); + m_target = new ArrayList(); + m_timestamp = new ArrayList(); } private void addEntry( InviteMeans means, String target, Timestamp ts ) { - Assert.assertTrue( 0 == m_count ); ++m_count; - m_means = means; - m_target = target; - m_timestamp = ts; + m_means.add( means ); + m_target.add( target ); + m_timestamp.add( ts ); } public int getPlayerCount() { @@ -454,8 +456,13 @@ public class DBUtils { } public String getAsText() { - return String.format( "Invite sent to dev %s via %s on %s", m_target, - m_means.toString(), m_timestamp.toString() ); + String[] strs = new String[m_count]; + for ( int ii = 0; ii < m_count; ++ii ) { + strs[ii] = String.format( "Invite sent to dev %s via %s on %s", + m_target.get(ii), m_means.get(ii).toString(), + m_timestamp.get(ii).toString() ); + } + return TextUtils.join( "\n\n", strs ); } } @@ -465,11 +472,12 @@ public class DBUtils { String[] columns = { DBHelper.MEANS, DBHelper.TIMESTAMP, DBHelper.TARGET }; String selection = String.format( "%s = %d", DBHelper.ROW, rowid ); + String orderBy = DBHelper.TIMESTAMP + " DESC"; synchronized( s_dbHelper ) { SQLiteDatabase db = s_dbHelper.getReadableDatabase(); Cursor cursor = db.query( DBHelper.TABLE_NAME_INVITES, columns, - selection, null, null, null, null ); + selection, null, null, null, orderBy ); if ( 0 < cursor.getCount() ) { int indxMns = cursor.getColumnIndex( DBHelper.MEANS ); int indxTS = cursor.getColumnIndex( DBHelper.TIMESTAMP ); @@ -490,13 +498,21 @@ public class DBUtils { } // Only record the most recent for a given recipient! Or not. If I send to K via SMS + public static void recordInviteSent( Context context, long rowid, + InviteMeans means ) + { + recordInviteSent( context, rowid, means, null ); + } + public static void recordInviteSent( Context context, long rowid, InviteMeans means, String target ) { ContentValues values = new ContentValues(); values.put( DBHelper.ROW, rowid ); values.put( DBHelper.MEANS, means.ordinal() ); - values.put( DBHelper.TARGET, target ); + if ( null != target ) { + values.put( DBHelper.TARGET, target ); + } initDB( context ); synchronized( s_dbHelper ) { From c13b637b46979e86acb6c62fbaebdc036d3a6558 Mon Sep 17 00:00:00 2001 From: Eric House Date: Sat, 9 Jan 2016 13:02:56 -0800 Subject: [PATCH 07/37] record invites sent as part of rematch --- .../src/org/eehouse/android/xw4/BoardDelegate.java | 13 ++++++++++--- .../src/org/eehouse/android/xw4/DBUtils.java | 7 ------- 2 files changed, 10 insertions(+), 10 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 05e0f0d91..343f2e0c1 100644 --- a/xwords4/android/XWords4/src/org/eehouse/android/xw4/BoardDelegate.java +++ b/xwords4/android/XWords4/src/org/eehouse/android/xw4/BoardDelegate.java @@ -1103,7 +1103,7 @@ public class BoardDelegate extends DelegateBase } else if ( InviteMeans.CLIPBOARD == means ) { GameUtils.inviteURLToClip( m_activity, nli ); } - DBUtils.recordInviteSent( m_activity, m_rowid, means ); + recordInviteSent( means, null ); break; default: @@ -2445,8 +2445,7 @@ public class BoardDelegate extends DelegateBase break; } - DBUtils.recordInviteSent( m_activity, m_rowid, - m_missingMeans, dev ); + recordInviteSent( m_missingMeans, dev ); } m_missingDevs = null; m_missingCounts = null; @@ -2692,18 +2691,26 @@ public class BoardDelegate extends DelegateBase value = m_summary.getStringExtra( GameSummary.EXTRA_REMATCH_PHONE ); if ( null != value ) { SMSService.inviteRemote( m_activity, value, nli ); + recordInviteSent( InviteMeans.SMS, value ); } value = m_summary.getStringExtra( GameSummary.EXTRA_REMATCH_BTADDR ); if ( null != value ) { BTService.inviteRemote( m_activity, value, nli ); + recordInviteSent( InviteMeans.BLUETOOTH, value ); } value = m_summary.getStringExtra( GameSummary.EXTRA_REMATCH_RELAY ); if ( null != value ) { RelayService.inviteRemote( m_activity, 0, value, nli ); + recordInviteSent( InviteMeans.RELAY, value ); } } } + private void recordInviteSent( InviteMeans means, String dev ) + { + DBUtils.recordInviteSent( m_activity, m_rowid, means, dev ); + } + private static void noteSkip() { String msg = "BoardActivity.feedMessage[s](): skipped because " diff --git a/xwords4/android/XWords4/src/org/eehouse/android/xw4/DBUtils.java b/xwords4/android/XWords4/src/org/eehouse/android/xw4/DBUtils.java index 24e033938..d3d72c191 100644 --- a/xwords4/android/XWords4/src/org/eehouse/android/xw4/DBUtils.java +++ b/xwords4/android/XWords4/src/org/eehouse/android/xw4/DBUtils.java @@ -497,13 +497,6 @@ public class DBUtils { return result; } - // Only record the most recent for a given recipient! Or not. If I send to K via SMS - public static void recordInviteSent( Context context, long rowid, - InviteMeans means ) - { - recordInviteSent( context, rowid, means, null ); - } - public static void recordInviteSent( Context context, long rowid, InviteMeans means, String target ) { From e1f6bc3c8e7b4a936b453a3b0ca10e0df4508534 Mon Sep 17 00:00:00 2001 From: Eric House Date: Mon, 11 Jan 2016 07:23:25 -0800 Subject: [PATCH 08/37] stop posting toast about net status fix working --- .../XWords4/src/org/eehouse/android/xw4/NetStateCache.java | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/xwords4/android/XWords4/src/org/eehouse/android/xw4/NetStateCache.java b/xwords4/android/XWords4/src/org/eehouse/android/xw4/NetStateCache.java index b7b030045..6a448f810 100644 --- a/xwords4/android/XWords4/src/org/eehouse/android/xw4/NetStateCache.java +++ b/xwords4/android/XWords4/src/org/eehouse/android/xw4/NetStateCache.java @@ -82,11 +82,7 @@ public class NetStateCache { boolean netAvail = getIsConnected( context ); if ( netAvail ) { - String msg = "netAvail(): second-guessing successful!!!"; - DbgUtils.logf( msg ); - if ( BuildConfig.DEBUG ) { - Utils.showToast( context, msg ); - } + DbgUtils.logf( "netAvail(): second-guessing successful!!!" ); s_netAvail = true; if ( null != s_receiver ) { s_receiver.notifyStateChanged( context ); From e94ec486134cca2f4a6c96d2e22f4d67d7615d60 Mon Sep 17 00:00:00 2001 From: Eric House Date: Mon, 11 Jan 2016 23:53:16 -0800 Subject: [PATCH 09/37] don't encourage invited games to invite others; instead remind that they've been invited and can only wait for the game to begin. (Unless more than two devices are involved this should only happen briefly and when connections aren't working perfectly.) --- xwords4/android/XWords4/archive/R.java | 1173 +++++++++-------- .../android/XWords4/res/values/strings.xml | 4 + .../XWords4/res_src/values-ba_CK/strings.xml | 4 + .../XWords4/res_src/values-ca_PS/strings.xml | 4 + .../eehouse/android/xw4/BoardDelegate.java | 16 +- 5 files changed, 609 insertions(+), 592 deletions(-) diff --git a/xwords4/android/XWords4/archive/R.java b/xwords4/android/XWords4/archive/R.java index ab3c7da66..5bac935f2 100644 --- a/xwords4/android/XWords4/archive/R.java +++ b/xwords4/android/XWords4/archive/R.java @@ -628,7 +628,7 @@ string name="str_robot_moved">O robô fez esta jogada:\u0020 copyright info */ - public static final int about_copyright=0x7f0501c7; + public static final int about_copyright=0x7f0501c8; /** Another paragraph giving credit for work done other than by Eric House and translators Another paragraph giving credit for work done other than by @@ -637,7 +637,7 @@ string name="str_robot_moved">O robô fez esta jogada:\u0020O robô fez esta jogada:\u0020For a manual or sourcecode see: @@ -679,42 +679,42 @@ string name="str_robot_moved">O robô fez esta jogada:\u0020 Another paragraph in the about dialog */ - public static final int about_web=0x7f0501c8; + public static final int about_web=0x7f0501c9; /** %1$s added to %2$s studylist */ - public static final int add_done_fmt=0x7f05027a; + public static final int add_done_fmt=0x7f05027b; /** Add %1$s to studylist */ - public static final int add_to_study_fmt=0x7f050274; + public static final int add_to_study_fmt=0x7f050275; /** Debugging stuff. Localize if you think your langauge users will care. XLATE-ME For debugging */ - public static final int advanced=0x7f0502e5; + public static final int advanced=0x7f0502e6; /** This button takes you to the normal Game Configure screen This button takes you to the normal Game Configure screen Advanced game settings This button takes you to the normal Game Configure screen */ - public static final int advanced_config=0x7f050183; + public static final int advanced_config=0x7f050184; /** XLATE-ME You should never need these... */ - public static final int advanced_summary=0x7f0502e6; + public static final int advanced_summary=0x7f0502e7; /** The wordlist %1$s contains only tile information. There are no words to browse. */ - public static final int alert_empty_dict_fmt=0x7f0501e5; + public static final int alert_empty_dict_fmt=0x7f0501e6; public static final int app_name=0x7f050081; /** Unable to connect to Crosswords on the device %1$s. Please check that the device is within range and that Crosswords is installed on it. */ - public static final int app_not_found_fmt=0x7f0502bf; + public static final int app_not_found_fmt=0x7f0502c0; public static final int app_version=0x7f050000; /** the background color of the area outside the board, e.g. between entries in the scoreboard @@ -724,7 +724,7 @@ XLATE-ME the background color of the area outside the board, e.g. between entries in the scoreboard */ - public static final int background=0x7f050147; + public static final int background=0x7f050148; /** Appended to the above in the phonies_warn case. User may ignore the warning Appended to the above in the phonies_warn case. User may @@ -734,7 +734,7 @@ XLATE-ME Appended to the above in the phonies_warn case. User may ignore the warning */ - public static final int badwords_accept=0x7f0500f2; + public static final int badwords_accept=0x7f0500f3; /** Appended to the above in the phonies_disallow case. User has lost his turn. Appended to the above in the phonies_disallow case. User has @@ -743,22 +743,22 @@ XLATE-ME Appended to the above in the phonies_disallow case. User has lost his turn. */ - public static final int badwords_lost=0x7f0500f3; + public static final int badwords_lost=0x7f0500f4; /** title of the dialog in which the above is posted. title of the dialog in which the above is posted. Illegal word[s] title of the dialog in which the above is posted. */ - public static final int badwords_title=0x7f0500f4; + public static final int badwords_title=0x7f0500f5; /** Blue */ - public static final int blue=0x7f05014b; + public static final int blue=0x7f05014c; /** board menu for small devices only board menu for small devices only Browse wordlist board menu for small devices only */ - public static final int board_menu_dict=0x7f050220; + public static final int board_menu_dict=0x7f050221; /** ############################################################ # :Menus: @@ -787,7 +787,7 @@ XLATE-ME This menu commits the current move as it's been laid out on the board */ - public static final int board_menu_done=0x7f0500f5; + public static final int board_menu_done=0x7f0500f6; /** Brings up "About Crosswords" dialog Brings up "About Crosswords" dialog Brings up "About Crosswords" dialog @@ -798,7 +798,7 @@ XLATE-ME Email author */ - public static final int board_menu_file_email=0x7f0501ea; + public static final int board_menu_file_email=0x7f0501eb; /** menu on Game submenu: brings up dialog listing all tiles in the language of the game along with how many of each there are and how many points each is worth. This display is the @@ -813,7 +813,7 @@ XLATE-ME are and how many points each is worth. This display is the same throughout the game. */ - public static final int board_menu_game_counts=0x7f0500fb; + public static final int board_menu_game_counts=0x7f0500fc; /** Brings up explanation of the game's final score. If the game is not yet over, gives you a choice whether to end it now, and if you decline does nothing. @@ -825,13 +825,13 @@ XLATE-ME is not yet over, gives you a choice whether to end it now, and if you decline does nothing. */ - public static final int board_menu_game_final=0x7f0500fe; + public static final int board_menu_game_final=0x7f0500ff; /** Brings up listing of all moves played so far this game. Brings up listing of all moves played so far this game. Game history… Brings up listing of all moves played so far this game. */ - public static final int board_menu_game_history=0x7f0500fd; + public static final int board_menu_game_history=0x7f0500fe; /** menu on Game submenu: brings up dialog listing all tiles not yet played and not in the rack of the player whose rack is visible (whose turn it is, generally). This display will @@ -849,11 +849,11 @@ XLATE-ME change as tiles are used and depending on what player is asking. */ - public static final int board_menu_game_left=0x7f0500fc; + public static final int board_menu_game_left=0x7f0500fd; /** XLATE-ME Network stats */ - public static final int board_menu_game_netstats=0x7f0502f0; + public static final int board_menu_game_netstats=0x7f0502f1; /** Meaningful only for networked games, this menu causes all messages that have not yet been acknowledged by a remote device in the game to be resent. Eventually I hope to be @@ -871,19 +871,19 @@ XLATE-ME able to remove this from non-debug versions of the game because users should not have to do do this EVER. */ - public static final int board_menu_game_resend=0x7f050100; + public static final int board_menu_game_resend=0x7f050101; /** Resign */ - public static final int board_menu_game_resign=0x7f0500ff; + public static final int board_menu_game_resign=0x7f050100; /** Invite */ - public static final int board_menu_invite=0x7f05026d; + public static final int board_menu_invite=0x7f05026e; /** Pass */ - public static final int board_menu_pass=0x7f0501d6; + public static final int board_menu_pass=0x7f0501d7; /** This menu begins an exchange of tiles: puts the board into trade mode. This menu begins an exchange of tiles: puts the board into @@ -891,7 +891,7 @@ XLATE-ME This menu begins an exchange of tiles: puts the board into trade mode. */ - public static final int board_menu_trade=0x7f0500f6; + public static final int board_menu_trade=0x7f0500f7; /** hide and shows the tray. On devices where there is enough room for the full board and tray to be shown then hiding the tray just "turns it over", i.e. shows tiles with '?' @@ -905,14 +905,14 @@ XLATE-ME tray just "turns it over", i.e. shows tiles with '?' characters. */ - public static final int board_menu_tray_hide=0x7f0500f7; - public static final int board_menu_tray_show=0x7f0500f8; + public static final int board_menu_tray_hide=0x7f0500f8; + public static final int board_menu_tray_show=0x7f0500f9; /** Undo/Redo */ - public static final int board_menu_undo_current=0x7f05021a; + public static final int board_menu_undo_current=0x7f05021b; /** Undos the last *committed* turn. Note that this is different from the undo button that undoes or redoes an in-progress not-yet-committed turn. This is disabled for networked @@ -927,7 +927,7 @@ XLATE-ME not-yet-committed turn. This is disabled for networked games. */ - public static final int board_menu_undo_last=0x7f0500f9; + public static final int board_menu_undo_last=0x7f0500fa; /** preference for board size (15x15, 13x13 etc.) default new-game setting for handline phonies (words not found in the word list) @@ -946,7 +946,7 @@ XLATE-ME Board size preference for board size (15x15, 13x13 etc.) */ - public static final int board_size=0x7f05012e; + public static final int board_size=0x7f05012f; /** Title of submenu Undos the last *committed* turn. Note that this is different from the undo button that undoes or redoes an in-progress @@ -959,7 +959,7 @@ XLATE-ME Title of submenu Title of submenu */ - public static final int board_submenu_game=0x7f0500fa; + public static final int board_submenu_game=0x7f0500fb; /** The remaining strings (down to the color edit dialog below) are showns as the names of editable colors and as the the title of the color editor that comes up when the name is @@ -977,7 +977,7 @@ XLATE-ME tapped. (color for) double-letter bonus squares on the board */ - public static final int bonus_l2x=0x7f050140; + public static final int bonus_l2x=0x7f050141; /** Bonus value hint that's displayed in gray text in the colored bonus square. Double-letter Bonus value hint that's displayed in gray text in the colored @@ -991,7 +991,7 @@ XLATE-ME Triple letter (color for) triple-letter bonus squares on the board */ - public static final int bonus_l3x=0x7f050141; + public static final int bonus_l3x=0x7f050142; /** Bonus value hint that's displayed in gray text in the colored bonus square. Triple-letter Bonus value hint that's displayed in gray text in the colored @@ -1005,7 +1005,7 @@ XLATE-ME Double word (color for) double-word squares on the board */ - public static final int bonus_w2x=0x7f050142; + public static final int bonus_w2x=0x7f050143; /** Bonus value hint that's displayed in gray text in the colored bonus square. Double-word Bonus value hint that's displayed in gray text in the colored @@ -1019,7 +1019,7 @@ XLATE-ME Triple word (color for) triple-word squares on the board */ - public static final int bonus_w3x=0x7f050143; + public static final int bonus_w3x=0x7f050144; /** Bonus value hint that's displayed in gray text in the colored bonus square. Triple-word Bonus value hint that's displayed in gray text in the colored @@ -1036,38 +1036,38 @@ XLATE-ME continue. */ - public static final int bt_bad_proto_fmt=0x7f0501f9; + public static final int bt_bad_proto_fmt=0x7f0501fa; /** Bluetooth sends to %1$s have failed too many times. Re-open the game to try again. */ - public static final int bt_fail_fmt=0x7f0501fe; + public static final int bt_fail_fmt=0x7f0501ff; /** Title of device picker during invitation to a game via Bluetooth Title of device picker during invitation to a game via Bluetooth Bluetooth Invitation */ - public static final int bt_invite_title=0x7f050200; + public static final int bt_invite_title=0x7f050201; /** You currently have no paired Bluetooth devices. Would you like to open the Android Settings Panel to add one or more?\n\n(You may also need to open it on the device you want to pair with.) */ - public static final int bt_no_devs=0x7f0502be; + public static final int bt_no_devs=0x7f0502bf; /** Turn Bluetooth on In the Bluetooth invite device dialog In the Bluetooth invite device dialog Add all Paired */ - public static final int bt_pick_addall_button=0x7f0501ee; + public static final int bt_pick_addall_button=0x7f0501ef; /** Remove checked */ - public static final int bt_pick_clear_button=0x7f0501ef; + public static final int bt_pick_clear_button=0x7f0501f0; /** Bluetooth send to %1$s failed; retry %3$d in @@ -1076,7 +1076,7 @@ XLATE-ME %3$d dans %2$d secondes. */ - public static final int bt_resend_fmt=0x7f0501fd; + public static final int bt_resend_fmt=0x7f0501fe; /** text of button for adding new player to game text for separator above the list of players that's used for networked games. The numbers of local and non-local players @@ -1091,10 +1091,10 @@ XLATE-ME Close game The only button available when the above message is displayed */ - public static final int button_close_game=0x7f050194; + public static final int button_close_game=0x7f050195; /** Decline */ - public static final int button_decline=0x7f05024d; + public static final int button_decline=0x7f05024e; /** @@ -1177,23 +1177,23 @@ XLATE-ME the other option, for discarding changes that would otherwise reset a game. */ - public static final int button_discard=0x7f0501a3; + public static final int button_discard=0x7f0501a4; /** XLATE-ME Discard changes */ - public static final int button_discard_changes=0x7f0502dd; + public static final int button_discard_changes=0x7f0502de; /** Done */ - public static final int button_done=0x7f0501d3; + public static final int button_done=0x7f0501d4; /** Done with %1$s */ - public static final int button_done_fmt=0x7f0501d4; + public static final int button_done_fmt=0x7f0501d5; /** Text of button displayed when downloading is an option This is an alternative message presented when there's also the option of downloading another wordlist. Game name, @@ -1213,27 +1213,27 @@ XLATE-ME Download Text of button displayed when downloading is an option */ - public static final int button_download=0x7f050197; + public static final int button_download=0x7f050198; /** XLATE-ME Edit */ - public static final int button_edit=0x7f0502dc; - public static final int button_enable=0x7f05031f; + public static final int button_edit=0x7f0502dd; + public static final int button_enable=0x7f050320; /** XLATE-ME Enable Bluetooth */ - public static final int button_enable_bt=0x7f050238; + public static final int button_enable_bt=0x7f050239; /** XLATE-ME Enable SMS */ - public static final int button_enable_sms=0x7f050237; - public static final int button_go_settings=0x7f05026f; + public static final int button_enable_sms=0x7f050238; + public static final int button_go_settings=0x7f050270; /** Invite checked */ - public static final int button_invite=0x7f0501ff; + public static final int button_invite=0x7f050200; /** text of button to juggle (randomly rearrange order of) players text of button to juggle (randomly rearrange order of) players Shuffle players @@ -1243,7 +1243,7 @@ XLATE-ME /** XLATE-ME Later */ - public static final int button_later=0x7f050239; + public static final int button_later=0x7f05023a; /** New strings that need to be documented and found a home above. New strings that need to be documented and found a home @@ -1252,25 +1252,25 @@ XLATE-ME New strings that need to be documented and found a home above. */ - public static final int button_lookup=0x7f0501cd; + public static final int button_lookup=0x7f0501ce; /** Look up %1$s */ - public static final int button_lookup_fmt=0x7f0501cf; + public static final int button_lookup_fmt=0x7f0501d0; /** Look up/study words */ - public static final int button_lookup_study=0x7f0501ce; + public static final int button_lookup_study=0x7f0501cf; /** Look up/study %1$s */ - public static final int button_lookup_study_fmt=0x7f0501d0; + public static final int button_lookup_study_fmt=0x7f0501d1; /** Move */ - public static final int button_move=0x7f0501d8; + public static final int button_move=0x7f0501d9; /** What is \u200C? English strings are used as keys, so they all need to be unique. This glyph is non-printing and of zero-width, so it should do the trick: @@ -1349,10 +1349,10 @@ XLATE-ME public static final int button_new_group=0x7f050086; /** New group */ - public static final int button_newgroup=0x7f0501d9; + public static final int button_newgroup=0x7f0501da; /** No */ - public static final int button_no=0x7f0501a1; + public static final int button_no=0x7f0501a2; /** Text for button in new-user-info dialog with title just above. Text for button in new-user-info dialog with title just @@ -1361,14 +1361,14 @@ XLATE-ME Text for button in new-user-info dialog with title just above. */ - public static final int button_notagain=0x7f0501af; + public static final int button_notagain=0x7f0501b0; /** Reconnect */ - public static final int button_reconnect=0x7f05025f; - public static final int button_reinvite=0x7f0502d7; + public static final int button_reconnect=0x7f050260; + public static final int button_reinvite=0x7f0502d8; /** */ - public static final int button_relay_add=0x7f05020b; + public static final int button_relay_add=0x7f05020c; /** Button shown in game over dialog triggering creation of new game with the same players and parameters as the one that just ended. @@ -1380,7 +1380,7 @@ XLATE-ME game with the same players and parameters as the one that just ended. */ - public static final int button_rematch=0x7f05025e; + public static final int button_rematch=0x7f05025f; /** When you select the list_item_reset contextual menu, you are asked to confirm. This is the text of the first button ("Cancel" is the second). @@ -1403,7 +1403,7 @@ XLATE-ME connect to the relay failed because the room named does not exist. (I believe this no longer occurs.) */ - public static final int button_retry=0x7f0501a4; + public static final int button_retry=0x7f0501a5; /** ############################################################ # :Menus: @@ -1439,7 +1439,7 @@ XLATE-ME text of first menu item. Will revert all preferences to their default/original values */ - public static final int button_revert_all=0x7f050116; + public static final int button_revert_all=0x7f050117; /** Second menu item. Reverts only the colors to their default/original values Second menu item. Reverts only the colors to their @@ -1448,26 +1448,26 @@ XLATE-ME Second menu item. Reverts only the colors to their default/original values */ - public static final int button_revert_colors=0x7f050118; + public static final int button_revert_colors=0x7f050119; /** Used in Game config dialog to confirm saving changes that reset a game Used in Game config dialog to confirm saving changes that reset a game Save Used in Game config dialog to confirm saving changes that reset a game */ - public static final int button_save=0x7f0501a2; + public static final int button_save=0x7f0501a3; /** Find */ - public static final int button_search=0x7f0501da; + public static final int button_search=0x7f0501db; /** Import contact */ - public static final int button_sms_add=0x7f05020a; + public static final int button_sms_add=0x7f05020b; /** Text of button allowing user to choose to open with a different (but same-language wordlist) Text of button allowing user to choose to open with a @@ -1476,7 +1476,7 @@ XLATE-ME Text of button allowing user to choose to open with a different (but same-language wordlist) */ - public static final int button_substdict=0x7f050198; + public static final int button_substdict=0x7f050199; /** Cancel trade */ public static final int button_trade_cancel=0x7f0500e0; @@ -1521,7 +1521,7 @@ XLATE-ME public static final int button_trade_commit=0x7f0500df; /** Button for alert with title above */ - public static final int button_wait=0x7f0502d6; + public static final int button_wait=0x7f0502d7; /** ############################################################ # Dialogs @@ -1564,14 +1564,14 @@ XLATE-ME Text for buttons at the bottom of dialogs. These first are in many places. */ - public static final int button_yes=0x7f0501a0; + public static final int button_yes=0x7f0501a1; /** The group for new games, %1$s, cannot be deleted. */ - public static final int cannot_delete_default_group_fmt=0x7f05025d; + public static final int cannot_delete_default_group_fmt=0x7f05025e; /** Move selected games to: */ - public static final int change_group=0x7f050262; + public static final int change_group=0x7f050263; /** text of button in About Crosswords dialog summoning above dialog text of button in About Crosswords dialog summoning above @@ -1580,7 +1580,7 @@ XLATE-ME text of button in About Crosswords dialog summoning above dialog */ - public static final int changes_button=0x7f0501cc; + public static final int changes_button=0x7f0501cd; /** text of dialog showing the set of changes made since the last release text of dialog showing the set of changes made since the last @@ -1589,13 +1589,13 @@ XLATE-ME text of dialog showing the set of changes made since the last release */ - public static final int changes_title=0x7f0501cb; + public static final int changes_title=0x7f0501cc; /** Prefix for local messages Prefix for local messages Me:\u0020 Prefix for local messages */ - public static final int chat_local_id=0x7f05017e; + public static final int chat_local_id=0x7f05017f; /** ############################################################ # :Menus: @@ -1628,13 +1628,13 @@ XLATE-ME other devices in the game: no "clear chat" message is transmitted. */ - public static final int chat_menu_clear=0x7f050181; + public static final int chat_menu_clear=0x7f050182; /** Prefix for remote messages Prefix for remote messages Not me:\u0020 Prefix for remote messages */ - public static final int chat_other_id=0x7f05017f; + public static final int chat_other_id=0x7f050180; /** Text on the button that causes the contents of the message-composition field to be sent. Text on the button that causes the contents of the @@ -1643,7 +1643,7 @@ XLATE-ME Text on the button that causes the contents of the message-composition field to be sent. */ - public static final int chat_send=0x7f050180; + public static final int chat_send=0x7f050181; /** ############################################################ # :Screens: # Chat screen @@ -1685,20 +1685,20 @@ XLATE-ME title of the chat screen. The name of the current game is substituted for %s. */ - public static final int chat_title_fmt=0x7f05017d; + public static final int chat_title_fmt=0x7f05017e; /** Checking for wordlists in %1$s… */ - public static final int checking_for_fmt=0x7f050316; + public static final int checking_for_fmt=0x7f050317; /** Checking */ - public static final int checking_title=0x7f050315; + public static final int checking_title=0x7f050316; /** Everything is up-to-date. */ - public static final int checkupdates_none_found=0x7f05023b; + public static final int checkupdates_none_found=0x7f05023c; /** EXPERIMENTAL: "label" for invite on clipboard. If it's shown it's by some Android utility */ - public static final int clip_label=0x7f050328; + public static final int clip_label=0x7f050329; /** color of the "crosshairs", lines drawn vertically and horizontally through the square the user is currently touching in order to guide the fat-fingered (most of us) in @@ -1716,15 +1716,15 @@ XLATE-ME operations that require accurately selecting a single square on the board. */ - public static final int clr_crosshairs=0x7f050144; + public static final int clr_crosshairs=0x7f050145; /** XLATE-ME This game has no way to connect and cannot be saved. Would you like to discard your changes, or edit to give it a way to connect? */ - public static final int config_no_connvia=0x7f0502db; - public static final int confirm_clear_chat=0x7f05032a; - public static final int confirm_clear_relay=0x7f050212; + public static final int config_no_connvia=0x7f0502dc; + public static final int confirm_clear_chat=0x7f05032b; + public static final int confirm_clear_relay=0x7f050213; /** Additional text appended to text confirm_delete_dictf in the wordlist delete confiration dialog in the case where the wordlist to be deleted is the last in its language. The name @@ -1735,28 +1735,28 @@ XLATE-ME of the language is substituted for %1$s. */ public static final int confirm_deleteonly_dicts_fmt=0x7f0500aa; - public static final int confirm_drop_relay=0x7f05031b; - public static final int confirm_drop_relay_bt=0x7f05031d; - public static final int confirm_drop_relay_sms=0x7f05031e; + public static final int confirm_drop_relay=0x7f05031c; + public static final int confirm_drop_relay_bt=0x7f05031e; + public static final int confirm_drop_relay_sms=0x7f05031f; /** Your device is set up for %1$s. Would you like to download a wordlist so you can play Crosswords in %1$s? */ - public static final int confirm_get_locdict_fmt=0x7f0502e4; + public static final int confirm_get_locdict_fmt=0x7f0502e5; /** Text of confirmation dialog for above Text of confirmation dialog for above Are you sure you want to restore all settings to their original values? Text of confirmation dialog for above */ - public static final int confirm_revert_all=0x7f050119; + public static final int confirm_revert_all=0x7f05011a; /** Text of confirmation dialog for above Text of confirmation dialog for above Are you sure you want to restore all color settings to their original values? Text of confirmation dialog for above */ - public static final int confirm_revert_colors=0x7f050117; + public static final int confirm_revert_colors=0x7f050118; /** title of confirmation dialog put up when user has unlocked an in-progress game and wants to save changes (has hit the play button). @@ -1812,37 +1812,37 @@ XLATE-ME enabled? */ - public static final int confirm_sms_expl=0x7f050230; + public static final int confirm_sms_expl=0x7f050231; /** No: leave disabled */ - public static final int confirm_sms_leave=0x7f050232; + public static final int confirm_sms_leave=0x7f050233; /** Enable play via SMS? */ - public static final int confirm_sms_prompt=0x7f050231; + public static final int confirm_sms_prompt=0x7f050232; /** Confirm your SMS plan */ - public static final int confirm_sms_title=0x7f05022f; + public static final int confirm_sms_title=0x7f050230; /** Yes: I have unlimited texting */ - public static final int confirm_sms_unlimited=0x7f050233; + public static final int confirm_sms_unlimited=0x7f050234; /** Yes: I\'ll pay all carrier charges */ - public static final int confirm_sms_willpay=0x7f050234; + public static final int confirm_sms_willpay=0x7f050235; /** text of dialog shown when the menu item board_menu_undo_last is chosen. text of dialog shown when the menu item board_menu_undo_last @@ -1852,16 +1852,16 @@ XLATE-ME text of dialog shown when the menu item board_menu_undo_last is chosen. */ - public static final int confirm_undo_last=0x7f050114; + public static final int confirm_undo_last=0x7f050115; /** Once every day */ - public static final int connect_daily=0x7f050163; + public static final int connect_daily=0x7f050164; /** Every 15 minutes */ - public static final int connect_fifteen_mins=0x7f05015f; + public static final int connect_fifteen_mins=0x7f050160; /** Every 5 minutes */ - public static final int connect_five_mins=0x7f05015e; + public static final int connect_five_mins=0x7f05015f; /** ############################################################ # :Screens: @@ -1897,7 +1897,7 @@ XLATE-ME new moves available and fetches them. This controls how frequently that check is done. */ - public static final int connect_frequency=0x7f05015c; + public static final int connect_frequency=0x7f05015d; /** text of separator marking out the connection area of the dialog XLATE-ME Connection (via %1$s) @@ -1914,7 +1914,7 @@ XLATE-ME */ - public static final int connect_label_sms=0x7f050213; + public static final int connect_label_sms=0x7f050214; /** These are the possible values for the connect_frequency setting presented as a drop-down list. These are the possible values for the connect_frequency @@ -1923,83 +1923,83 @@ XLATE-ME These are the possible values for the connect_frequency setting presented as a drop-down list. */ - public static final int connect_never=0x7f05015d; + public static final int connect_never=0x7f05015e; /** Every hour */ - public static final int connect_one_hour=0x7f050161; + public static final int connect_one_hour=0x7f050162; /** Every six hours */ - public static final int connect_six_hours=0x7f050162; + public static final int connect_six_hours=0x7f050163; /** Every 30 minutes */ - public static final int connect_thirty_mins=0x7f050160; + public static final int connect_thirty_mins=0x7f050161; /** XLATE-ME Change Communicate via */ - public static final int connection_via_label=0x7f0502d1; + public static final int connection_via_label=0x7f0502d2; /** (Last failure was %1$s) */ - public static final int connstat_lastother_succ_fmt=0x7f050227; + public static final int connstat_lastother_succ_fmt=0x7f050228; /** (Last successful send was %1$s) */ - public static final int connstat_lastother_unsucc_fmt=0x7f050228; + public static final int connstat_lastother_unsucc_fmt=0x7f050229; /** Last receipt was %1$s */ - public static final int connstat_lastreceipt_fmt=0x7f050229; + public static final int connstat_lastreceipt_fmt=0x7f05022a; /** Last send was %1$s (%2$s) */ - public static final int connstat_lastsend_fmt=0x7f050226; + public static final int connstat_lastsend_fmt=0x7f050227; /** Network status for game connected via %1$s: */ - public static final int connstat_net_fmt=0x7f050223; - public static final int connstat_net_noaddr=0x7f050222; + public static final int connstat_net_fmt=0x7f050224; + public static final int connstat_net_noaddr=0x7f050223; /** No messages have been received. */ - public static final int connstat_noreceipt=0x7f05022a; + public static final int connstat_noreceipt=0x7f05022b; /** internet/relay */ - public static final int connstat_relay=0x7f05022b; + public static final int connstat_relay=0x7f05022c; /** sms/texting */ - public static final int connstat_sms=0x7f05022c; + public static final int connstat_sms=0x7f05022d; /** successful */ - public static final int connstat_succ=0x7f050224; + public static final int connstat_succ=0x7f050225; /** unsuccessful */ - public static final int connstat_unsucc=0x7f050225; + public static final int connstat_unsucc=0x7f050226; /** title of dialog brought up in response to the board_menu_game_counts menu. The dialog lists all tiles in the language being used for the game together with how many @@ -2014,31 +2014,31 @@ XLATE-ME the language being used for the game together with how many of each there are are and how many points each is worth. */ - public static final int counts_values_title=0x7f0501a9; + public static final int counts_values_title=0x7f0501aa; /** %1$s (in use) */ - public static final int cur_menu_marker_fmt=0x7f05026c; + public static final int cur_menu_marker_fmt=0x7f05026d; /** Tile picker\n(so far: %1$s) */ - public static final int cur_tiles_fmt=0x7f0501de; + public static final int cur_tiles_fmt=0x7f0501df; /** SMS Data is only available on GSM phones. */ - public static final int data_gsm_only=0x7f050289; + public static final int data_gsm_only=0x7f05028a; /** SD card write complete. */ - public static final int db_store_done=0x7f050317; + public static final int db_store_done=0x7f050318; /** XLATE-ME Enable debug features */ - public static final int debug_features=0x7f0502ec; + public static final int debug_features=0x7f0502ed; /** XLATE-ME Menuitems etc. (release builds only) */ - public static final int debug_features_summary=0x7f0502ed; + public static final int debug_features_summary=0x7f0502ee; /** dictionary used by default for human players when creating new game clarification of above @@ -2058,7 +2058,7 @@ XLATE-ME dictionary used by default for human players when creating new game */ - public static final int default_dict=0x7f050126; + public static final int default_dict=0x7f050127; /** other */ public static final int default_host=0x7f05007b; @@ -2066,13 +2066,13 @@ XLATE-ME label within default wordlists in app preferences Default language */ - public static final int default_language=0x7f0502c0; + public static final int default_language=0x7f0502c1; /** Store wordlists internally */ - public static final int default_loc=0x7f050250; + public static final int default_loc=0x7f050251; /** (Not in external/sdcard memory) */ - public static final int default_loc_summary=0x7f050251; + public static final int default_loc_summary=0x7f050252; /** Welcome dialog text Welcome dialog text Thanks for installing @@ -2081,7 +2081,7 @@ XLATE-ME game default\" section of Settings.) Welcome dialog text */ - public static final int default_name_message=0x7f0501c5; + public static final int default_name_message=0x7f0501c6; /** ########################################################### # :Dialogs: @@ -2123,7 +2123,7 @@ XLATE-ME Welcome dialog title */ - public static final int default_name_title=0x7f0501c4; + public static final int default_name_title=0x7f0501c5; /** default new-game setting for handline phonies (words not found in the word list) default new-game setting for handline phonies (words not @@ -2132,7 +2132,7 @@ XLATE-ME default new-game setting for handline phonies (words not found in the word list) */ - public static final int default_phonies=0x7f05012c; + public static final int default_phonies=0x7f05012d; /** dictionary used by default for robot players when creating new game dictionary used by default for robot players when creating @@ -2141,12 +2141,12 @@ XLATE-ME dictionary used by default for robot players when creating new game */ - public static final int default_robodict=0x7f050127; + public static final int default_robodict=0x7f050128; public static final int default_update_url=0x7f050080; /** Delete wordlist[s] */ - public static final int delete_dicts=0x7f0502ab; - public static final int devid_title=0x7f0502f3; + public static final int delete_dicts=0x7f0502ac; + public static final int devid_title=0x7f0502f4; /** Playing via SMS is currently disabled. You can enable it in Settings->Network game settings. @@ -2157,14 +2157,14 @@ XLATE-ME */ - public static final int dft_sms_name_fmt=0x7f050208; + public static final int dft_sms_name_fmt=0x7f050209; /** No word in %1$s starts with %2$s. */ - public static final int dict_browse_nowords_fmt=0x7f0501e2; + public static final int dict_browse_nowords_fmt=0x7f0501e3; /** %1$s (%2$d words using %3$d @@ -2172,7 +2172,7 @@ XLATE-ME %1$s (%2$d mots utilisant %3$d jetons) */ - public static final int dict_browse_title1_fmt=0x7f0501e1; + public static final int dict_browse_title1_fmt=0x7f0501e2; /** %1$s (%2$d words using %3$d-%4$d @@ -2181,18 +2181,18 @@ XLATE-ME %4$d jetons) */ - public static final int dict_browse_title_fmt=0x7f0501e0; + public static final int dict_browse_title_fmt=0x7f0501e1; /** %1$s (%2$s/%3$d words) */ - public static final int dict_desc_fmt=0x7f0502b2; + public static final int dict_desc_fmt=0x7f0502b3; /** XLATE-ME Wordlist download URL */ - public static final int dict_host=0x7f0502e9; + public static final int dict_host=0x7f0502ea; /** Number of words: %1$d\nDownload size: %2$dK\nNote: %3$s */ - public static final int dict_info_fmt=0x7f0502af; + public static final int dict_info_fmt=0x7f0502b0; /** label for dropdown by which wordlist is chosen that this player will use. The language the game will use (which constrains the choice of wordlists) is substituted in for @@ -2210,7 +2210,7 @@ XLATE-ME public static final int dict_lang_label_fmt=0x7f0500db; /** Tap to download */ - public static final int dict_on_server=0x7f0502b1; + public static final int dict_on_server=0x7f0502b2; /** string name="invite_mime">text/plainDo not notify me no matter how long it\'s been my turn */ - public static final int disable_nag_summary=0x7f0502e2; + public static final int disable_nag_summary=0x7f0502e3; /** Disable turn reminders */ - public static final int disable_nag_title=0x7f0502e1; - public static final int disable_nags_title=0x7f0502e0; + public static final int disable_nag_title=0x7f0502e2; + public static final int disable_nags_title=0x7f0502e1; /** text of item at bottom of dicts choice spinner. It launches the browser pointed at the site where additional wordlists can be found. @@ -2326,23 +2326,23 @@ XLATE-ME public static final int download_dicts=0x7f0500a5; /** Download finished */ - public static final int download_done=0x7f05024e; + public static final int download_done=0x7f05024f; /** Download unsuccessful */ - public static final int download_failed=0x7f05024f; + public static final int download_failed=0x7f050250; /** Downloads Directory */ - public static final int download_path_title=0x7f050252; + public static final int download_path_title=0x7f050253; /** Downloading %1$s… */ - public static final int downloading_dict_fmt=0x7f050191; - public static final int drop_relay_warning_fmt=0x7f05031a; + public static final int downloading_dict_fmt=0x7f050192; + public static final int drop_relay_warning_fmt=0x7f05031b; /** Display snapshots of games Display snapshots of games Invitation received but ignored: it has already been used to create a game. */ - public static final int dropped_dupe=0x7f05026b; + public static final int dropped_dupe=0x7f05026c; /** Shown in the main screen when you launch Crosswords from an invitation (received in email or messaging app, say) and there's already a game running that matches that invitation. @@ -2368,13 +2368,13 @@ XLATE-ME the same room name over and over so they'll get this warning and it's harmless to ignore it. */ - public static final int dup_game_query_fmt=0x7f0501a5; + public static final int dup_game_query_fmt=0x7f0501a6; /** Send comment via */ - public static final int email_author_chooser=0x7f0501ec; + public static final int email_author_chooser=0x7f0501ed; /** Nor is my email address */ public static final int email_author_email=0x7f05007a; @@ -2383,22 +2383,22 @@ XLATE-ME Should not be translated */ - public static final int email_author_subject=0x7f0501eb; + public static final int email_author_subject=0x7f0501ec; /** Should not be translated */ - public static final int email_body_rev_fmt=0x7f0501ed; + public static final int email_body_rev_fmt=0x7f0501ee; /** color of empty squares on the board (that are not bonus squares) color of empty squares on the board (that are not bonus squares) Empty cell/background color of empty squares on the board (that are not bonus squares) */ - public static final int empty=0x7f050146; + public static final int empty=0x7f050147; /** */ - public static final int empty_relay_inviter=0x7f05020f; + public static final int empty_relay_inviter=0x7f050210; /** Shows in SMS Invite dialog when no phone numbers have been saved previously Shows in SMS Invite dialog when no phone numbers have been saved previously This phone list is empty. Use the @@ -2406,58 +2406,58 @@ XLATE-ME button to enter numbers directly. */ - public static final int empty_sms_inviter=0x7f05020e; + public static final int empty_sms_inviter=0x7f05020f; /** XLATE-ME Accept invitations more than once */ - public static final int enable_dupes_summary=0x7f0502fb; + public static final int enable_dupes_summary=0x7f0502fc; /** XLATE-ME Accept duplicate invites */ - public static final int enable_dupes_title=0x7f0502f9; + public static final int enable_dupes_title=0x7f0502fa; /** NFC is turned off on this device. You can use the Android Settings app to turn it on . */ - public static final int enable_nfc=0x7f05026e; + public static final int enable_nfc=0x7f05026f; /** XLATE-ME Fake invitation to aid debugging */ - public static final int enable_nfc_toself_summary=0x7f0502fe; + public static final int enable_nfc_toself_summary=0x7f0502ff; /** XLATE-ME Enable NFC to self */ - public static final int enable_nfc_toself_title=0x7f0502fd; + public static final int enable_nfc_toself_title=0x7f0502fe; /** XLATE-ME Rooms others can see and join */ - public static final int enable_pubroom_summary=0x7f0502d0; + public static final int enable_pubroom_summary=0x7f0502d1; /** XLATE-ME Enable public rooms */ - public static final int enable_pubroom_title=0x7f0502cf; - public static final int enable_relay_toself_summary=0x7f050326; - public static final int enable_relay_toself_title=0x7f050325; + public static final int enable_pubroom_title=0x7f0502d0; + public static final int enable_relay_toself_summary=0x7f050327; + public static final int enable_relay_toself_title=0x7f050326; /** Allow games via SMS */ - public static final int enable_sms=0x7f05022d; + public static final int enable_sms=0x7f05022e; /** Only if you have unlimited texting! */ - public static final int enable_sms_summary=0x7f05022e; + public static final int enable_sms_summary=0x7f05022f; /** XLATE-ME Skip radio when phone numbers same */ - public static final int enable_sms_toself_summary=0x7f050300; + public static final int enable_sms_toself_summary=0x7f050301; /** XLATE-ME Short-circuit SMS to self */ - public static final int enable_sms_toself_title=0x7f0502ff; + public static final int enable_sms_toself_title=0x7f050300; /** Tap tiles to select… */ public static final int entering_trade=0x7f0500e1; @@ -2466,11 +2466,11 @@ XLATE-ME device \"%1$s\" has already accepted an invitation to this game. */ - public static final int err_dup_invite_fmt=0x7f0502ca; + public static final int err_dup_invite_fmt=0x7f0502cb; /** XLATE-ME Update checks URL */ - public static final int expl_update_url=0x7f05030a; + public static final int expl_update_url=0x7f05030b; /** if this preference is checked, a dialog will be posted every time a robot makes a move or a move is received from a remote player. @@ -2487,15 +2487,15 @@ XLATE-ME time a robot makes a move or a move is received from a remote player. */ - public static final int explain_robot=0x7f05014e; + public static final int explain_robot=0x7f05014f; /** explanation of the above explanation of the above Display score summary after every robot or remote turn explanation of the above */ - public static final int explain_robot_summary=0x7f05014f; - public static final int fetching_from_relay=0x7f05032c; + public static final int explain_robot_summary=0x7f050150; + public static final int fetching_from_relay=0x7f05032d; /** title of dialog brought up in response to the board_menu_game_final menu. The dialog displays the final score and an accounting of it (including subtractions for @@ -2513,7 +2513,7 @@ XLATE-ME running out the game timer if there is one.) */ - public static final int finalscores_title=0x7f0501ab; + public static final int finalscores_title=0x7f0501ac; /** Explanatory text appears in the dialog Explanatory text appears in the dialog In a multi-device game there must be at @@ -2525,13 +2525,13 @@ XLATE-ME /** XLATE-ME Pretend to have radio */ - public static final int force_radio_title=0x7f050301; + public static final int force_radio_title=0x7f050302; /** Even if my screen is too small */ - public static final int force_tablet_summary=0x7f0502b6; + public static final int force_tablet_summary=0x7f0502b7; /** Force tablet layout */ - public static final int force_tablet_title=0x7f0502b5; + public static final int force_tablet_title=0x7f0502b6; /** ############################################################ # :Dialogs: @@ -2601,7 +2601,7 @@ XLATE-ME */ - public static final int game_btname_title=0x7f050203; + public static final int game_btname_title=0x7f050204; /** used to create default names of games (when user has not named them.) used to create default names of games (when user has not @@ -2612,7 +2612,7 @@ XLATE-ME used to create default names of games (when user has not named them.) */ - public static final int game_fmt=0x7f05019b; + public static final int game_fmt=0x7f05019c; /** ############################################################ # :Menus: @@ -2644,7 +2644,7 @@ XLATE-ME Building game summary… */ - public static final int game_list_tmp=0x7f050221; + public static final int game_list_tmp=0x7f050222; /** text of checkbox at top of dialog allowing to unlock in-play game to make changes text of checkbox at top of dialog allowing to unlock in-play @@ -2656,17 +2656,17 @@ XLATE-ME public static final int game_locked=0x7f0500b5; /** Name group */ - public static final int game_name_group_title=0x7f05025c; + public static final int game_name_group_title=0x7f05025d; /** XLATE-ME New game name: */ - public static final int game_name_label=0x7f050205; + public static final int game_name_label=0x7f050206; /** XLATE-ME Name your game */ - public static final int game_name_title=0x7f050204; + public static final int game_name_title=0x7f050205; /** @@ -2677,31 +2677,31 @@ XLATE-ME \u003CNothing\u003E Put nothing in the summary space, so it just reads "Game 2" */ - public static final int game_summary_field_empty=0x7f050132; + public static final int game_summary_field_empty=0x7f050133; /** XLATE-ME gameid */ - public static final int game_summary_field_gameid=0x7f050308; + public static final int game_summary_field_gameid=0x7f050309; /** Put the language there, so it reads "Game 2 (English)" Put the language there, so it reads "Game 2 (English)" Game language\u200C Put the language there, so it reads "Game 2 (English)" */ - public static final int game_summary_field_language=0x7f050133; + public static final int game_summary_field_language=0x7f050134; /** XLATE-ME Pending packet count */ - public static final int game_summary_field_npackets=0x7f050309; + public static final int game_summary_field_npackets=0x7f05030a; /** List names of opponents (summarized), e.g. "Game 2 (vs Kati)" List names of opponents (summarized), e.g. "Game 2 (vs Kati)" Opponent name[s] List names of opponents (summarized), e.g. "Game 2 (vs Kati)" */ - public static final int game_summary_field_opponents=0x7f050134; + public static final int game_summary_field_opponents=0x7f050135; /** XLATE-ME rowid */ - public static final int game_summary_field_rowid=0x7f050307; + public static final int game_summary_field_rowid=0x7f050308; /** List the state of the game, "Game over" or "10 moves made" etc. List the state of the game, "Game over" or "10 moves made" @@ -2710,7 +2710,7 @@ XLATE-ME List the state of the game, "Game over" or "10 moves made" etc. */ - public static final int game_summary_field_state=0x7f050135; + public static final int game_summary_field_state=0x7f050136; /** Regardless of the setting of the connect_frequency preference, checks the relay immediately for any moves for networked games on this device and posts a notification if @@ -2730,7 +2730,7 @@ XLATE-ME Check for updates */ - public static final int gamel_menu_checkupdates=0x7f05023a; + public static final int gamel_menu_checkupdates=0x7f05023b; /** ############################################################ # :Menus: @@ -2773,46 +2773,46 @@ XLATE-ME /** XLATE-ME Load DB from SD card */ - public static final int gamel_menu_loaddb=0x7f0502f8; + public static final int gamel_menu_loaddb=0x7f0502f9; /** XLATE-ME %1$s/%2$s XLATE-ME Write DB to SD card */ - public static final int gamel_menu_storedb=0x7f0502f7; + public static final int gamel_menu_storedb=0x7f0502f8; /** Studylist… */ - public static final int gamel_menu_study=0x7f050277; - public static final int get_relay_number=0x7f050211; + public static final int gamel_menu_study=0x7f050278; + public static final int get_relay_number=0x7f050212; /** Enter phone number: */ - public static final int get_sms_number=0x7f050210; + public static final int get_sms_number=0x7f050211; /** Get info */ - public static final int getinfo=0x7f0502aa; + public static final int getinfo=0x7f0502ab; public static final int git_rev=0x7f050082; /** XLATE-ME Source version id */ - public static final int git_rev_title=0x7f0502f2; + public static final int git_rev_title=0x7f0502f3; /** Don\'t try a second time */ - public static final int got_langdict_summary=0x7f05030c; + public static final int got_langdict_summary=0x7f05030d; /** Fetch default wordlist for language */ - public static final int got_langdict_title=0x7f05030b; + public static final int got_langdict_title=0x7f05030c; /** Green */ - public static final int green=0x7f05014a; + public static final int green=0x7f05014b; /** My games */ - public static final int group_cur_games=0x7f050259; + public static final int group_cur_games=0x7f05025a; /** New games */ - public static final int group_new_games=0x7f05025a; + public static final int group_new_games=0x7f05025b; /** Used as the default name for remote players displayed within the Game configure screen Final state: game is over. @@ -2863,25 +2863,25 @@ XLATE-ME large enough screens that they always know where they're tapping. */ - public static final int hide_crosshairs=0x7f050158; + public static final int hide_crosshairs=0x7f050159; /** explanation of the above explanation of the above Do not visually indicate which board cell is touched explanation of the above */ - public static final int hide_crosshairs_summary=0x7f050159; + public static final int hide_crosshairs_summary=0x7f05015a; /** clarification of above XLATE-ME Hiding the newgame buttons in the main screen makes more games visible */ - public static final int hide_newgames_summary=0x7f050139; + public static final int hide_newgames_summary=0x7f05013a; /** Checkbox that when set prevents showing the newgame buttons on the main screen to save space XLATE-ME Hide newgame buttons */ - public static final int hide_newgames_title=0x7f050138; + public static final int hide_newgames_title=0x7f050139; /** Checkbox that when set prevents showing a title bar in the game board window to save space Checkbox that when set prevents showing a title bar in the @@ -2890,14 +2890,14 @@ XLATE-ME Checkbox that when set prevents showing a title bar in the game board window to save space */ - public static final int hide_title=0x7f050136; + public static final int hide_title=0x7f050137; /** clarification of above clarification of above Hiding the game name lets the board be slightly larger clarification of above */ - public static final int hide_title_summary=0x7f050137; + public static final int hide_title_summary=0x7f050138; /** text of checkbox. If this checkbox is checked, buttons will appear by which the user can get high- and low-scoring moves generated based on his tray. Can be used to cheat. @@ -2921,7 +2921,7 @@ XLATE-ME default to having the hint feature enabled(string elsewhere in this file) */ - public static final int hints_allowed_sum=0x7f050128; + public static final int hints_allowed_sum=0x7f050129; /** title of dialog brought up in response to the board_menu_game_history menu. A full history of the game up to the last turn is displayed, though details about what's in @@ -2936,7 +2936,7 @@ XLATE-ME to the last turn is displayed, though details about what's in players' racks is left out if the game is not yet over. */ - public static final int history_title=0x7f0501aa; + public static final int history_title=0x7f0501ab; /** Partial text of alert posted when phonies_warn or phonies_disallow is the current setting and a "phony" is played. One of the two following strings will be appended @@ -2958,7 +2958,7 @@ XLATE-ME played. One of the two following strings will be appended */ - public static final int ids_badwords_fmt=0x7f0500f1; + public static final int ids_badwords_fmt=0x7f0500f2; /** text of confirmation dialog shown when user chooses the menu item with text board_menu_game_final and the game is not over @@ -2970,7 +2970,7 @@ XLATE-ME item with text board_menu_game_final and the game is not over */ - public static final int ids_endnow=0x7f0501ac; + public static final int ids_endnow=0x7f0501ad; /** Title of generic dialog used to display information If the dropdown is selected, this is the title displayed above the list of selectable items. The language the game @@ -2983,7 +2983,7 @@ XLATE-ME FYI… Title of generic dialog used to display information */ - public static final int info_title=0x7f0501a6; + public static final int info_title=0x7f0501a7; /** You are using the wordlist @@ -2991,7 +2991,7 @@ XLATE-ME too? */ - public static final int inform_dict_diffdict_fmt=0x7f050245; + public static final int inform_dict_diffdict_fmt=0x7f050246; /** You and the host of this @@ -3000,14 +3000,14 @@ XLATE-ME Used in formatting final scores display */ - public static final int inform_dict_diffversion_fmt=0x7f050243; + public static final int inform_dict_diffversion_fmt=0x7f050244; /** \u0020(You will have to download it first.) */ - public static final int inform_dict_download=0x7f050246; + public static final int inform_dict_download=0x7f050247; /** Wordlist mismatch */ - public static final int inform_dict_title=0x7f050244; + public static final int inform_dict_title=0x7f050245; /** Will new games, on default, randomly rearrange the start order of players. Will new games, on default, randomly rearrange the start @@ -3016,13 +3016,13 @@ XLATE-ME Will new games, on default, randomly rearrange the start order of players. */ - public static final int init_autojuggle=0x7f05012a; + public static final int init_autojuggle=0x7f05012b; /** clarification on above clarification on above Randomly, for new games clarification on above */ - public static final int init_autojuggle_sum=0x7f05012b; + public static final int init_autojuggle_sum=0x7f05012c; /** default number of minutes on timer for new games clarification of the above @@ -3036,15 +3036,15 @@ XLATE-ME Timer minutes per player default number of minutes on timer for new games */ - public static final int initial_player_minutes=0x7f05012d; - public static final int invite_choice_bt=0x7f050173; - public static final int invite_choice_email=0x7f050172; + public static final int initial_player_minutes=0x7f05012e; + public static final int invite_choice_bt=0x7f050174; + public static final int invite_choice_email=0x7f050173; /** Email Bluetooth NFC (\"Android beaming\") */ - public static final int invite_choice_nfc=0x7f050174; - public static final int invite_choice_relay=0x7f050175; + public static final int invite_choice_nfc=0x7f050175; + public static final int invite_choice_relay=0x7f050176; /** EXPLAIN ME Bluetooth is not available. This may mean that your device doesn\'t support it, or that it\'s been @@ -3057,11 +3057,11 @@ XLATE-ME explanation/guidance. SMS (texting) */ - public static final int invite_choice_sms=0x7f050171; + public static final int invite_choice_sms=0x7f050172; /** Inviting players: How? */ - public static final int invite_choice_title=0x7f050176; - public static final int invite_chooser_email=0x7f05017b; + public static final int invite_choice_title=0x7f050177; + public static final int invite_chooser_email=0x7f05017c; /** When I've created the invitation, in text or html, I ask Android to launch an app that can send it, typically an email or messaging app. Android then asks the user to choose which @@ -3082,30 +3082,30 @@ XLATE-ME to have launched. This string is passed to Android and used as the title of the dialog that presents that choice. */ - public static final int invite_chooser_fmt=0x7f05017a; + public static final int invite_chooser_fmt=0x7f05017b; /** email sms */ - public static final int invite_chooser_sms=0x7f05017c; + public static final int invite_chooser_sms=0x7f05017d; /** EXPERIMENTAL: Shown as toast when user chooses "My choice" for invitation */ - public static final int invite_copied=0x7f050327; + public static final int invite_copied=0x7f050328; /** %1$s has invited you to play Crosswords using the wordlist %2$s (for play in %3$s), but it is not installed. Would you like to download the wordlist or decline the invitation? */ - public static final int invite_dict_missing_body_fmt=0x7f05024b; + public static final int invite_dict_missing_body_fmt=0x7f05024c; /** You have been invited to play Crosswords using the wordlist %2$s (for play in %3$s), but it is not installed. Would you like to download the wordlist? */ - public static final int invite_dict_missing_body_noname_fmt=0x7f05024c; + public static final int invite_dict_missing_body_noname_fmt=0x7f05024d; /** Missing wordlist */ - public static final int invite_dict_missing_title=0x7f05024a; + public static final int invite_dict_missing_title=0x7f05024b; public static final int invite_host=0x7f05007d; /** This is the body of the html version of the invitation. A URL is created with parameters describing the game and @@ -3132,22 +3132,22 @@ XLATE-ME encodings for the greater-than and less-than symbols which are not legal in xml strings.) */ - public static final int invite_htm_fmt=0x7f050178; + public static final int invite_htm_fmt=0x7f050179; /** Appended to message above if local device has NFC available Appended to message above if local device has NFC available (Or just Tap to Invite - if the other device also has Android Beaming and is nearby.) */ - public static final int invite_if_nfc=0x7f0500e7; + public static final int invite_if_nfc=0x7f0500e8; public static final int invite_mime=0x7f05007e; /** XLATE-ME Invite more than one player per remote device */ - public static final int invite_multi_summary=0x7f0502ce; + public static final int invite_multi_summary=0x7f0502cf; /** XLATE-ME Invite multiple */ - public static final int invite_multi_title=0x7f0502cd; + public static final int invite_multi_title=0x7f0502ce; /** Most users create games with only two players, which is the default, but Crosswords supports up to four. When I'm using the above string to encourage the opener of a game missing @@ -3167,27 +3167,27 @@ XLATE-ME players to invite, IF the number of missing players is greater than one this text is appended to the above. */ - public static final int invite_multiple=0x7f0500e8; + public static final int invite_multiple=0x7f0500e9; /** */ - public static final int invite_notice_title=0x7f0501f6; + public static final int invite_notice_title=0x7f0501f7; public static final int invite_prefix=0x7f050084; /** Sending invitation to Crosswords on %1$s */ - public static final int invite_progress_fmt=0x7f0501f1; + public static final int invite_progress_fmt=0x7f0501f2; /** Connecting... */ - public static final int invite_progress_title=0x7f0501f0; + public static final int invite_progress_title=0x7f0501f1; /** XLATE-ME (This dialog will stay up until all remote players have connected. You can close the game if you expect it to take a while. They will still be able to connect.) */ - public static final int invite_stays=0x7f0502d8; + public static final int invite_stays=0x7f0502d9; /** Send invitation using SMS (texting) or via email? Send invitation using NFC (Android @@ -3219,7 +3219,7 @@ XLATE-ME This is the subject line of the email/text sent to invite someone to join a game. */ - public static final int invite_subject_fmt=0x7f050177; + public static final int invite_subject_fmt=0x7f050178; /** This is the body of the text version of the invitation. A URL is created with parameters describing the game and substituted for "%1$s". @@ -3232,7 +3232,8 @@ XLATE-ME is created with parameters describing the game and substituted for "%1$s". */ - public static final int invite_txt_fmt=0x7f050179; + public static final int invite_txt_fmt=0x7f05017a; + public static final int invited_msg=0x7f0500e7; /** text of checkbox asking if user wants to search for open public rooms text of checkbox asking if user wants to search for open @@ -3257,13 +3258,13 @@ XLATE-ME users to think about a move without having to touch the screen all the time. */ - public static final int keep_screenon=0x7f05013c; + public static final int keep_screenon=0x7f05013d; /** clarification of above clarification of above Keep board screen on 10 mins clarification of above */ - public static final int keep_screenon_summary=0x7f05013d; + public static final int keep_screenon_summary=0x7f05013e; public static final int key_addrs_pref=0x7f05003e; public static final int key_background=0x7f05001a; public static final int key_board_size=0x7f050029; @@ -3279,7 +3280,7 @@ XLATE-ME the color of text, e.g. "2L", shown on a bonus square on the board */ - public static final int key_bonushint=0x7f050148; + public static final int key_bonushint=0x7f050149; public static final int key_bt_addrs=0x7f050040; /** database keys whose entries aren't visible prefs */ @@ -3415,44 +3416,44 @@ XLATE-ME different wordlists.) */ public static final int lang_label=0x7f0500ba; - public static final int lang_name_arabic=0x7f050294; - public static final int lang_name_catalan=0x7f05029b; - public static final int lang_name_czech=0x7f05029e; - public static final int lang_name_danish=0x7f050298; - public static final int lang_name_dutch=0x7f05029a; - public static final int lang_name_english=0x7f050290; - public static final int lang_name_french=0x7f050291; - public static final int lang_name_german=0x7f050292; - public static final int lang_name_greek=0x7f05029f; - public static final int lang_name_italian=0x7f050299; - public static final int lang_name_polish=0x7f050297; - public static final int lang_name_portuguese=0x7f05029c; - public static final int lang_name_russian=0x7f05029d; - public static final int lang_name_slovak=0x7f0502a0; - public static final int lang_name_spanish=0x7f050295; - public static final int lang_name_swedish=0x7f050296; - public static final int lang_name_turkish=0x7f050293; + public static final int lang_name_arabic=0x7f050295; + public static final int lang_name_catalan=0x7f05029c; + public static final int lang_name_czech=0x7f05029f; + public static final int lang_name_danish=0x7f050299; + public static final int lang_name_dutch=0x7f05029b; + public static final int lang_name_english=0x7f050291; + public static final int lang_name_french=0x7f050292; + public static final int lang_name_german=0x7f050293; + public static final int lang_name_greek=0x7f0502a0; + public static final int lang_name_italian=0x7f05029a; + public static final int lang_name_polish=0x7f050298; + public static final int lang_name_portuguese=0x7f05029d; + public static final int lang_name_russian=0x7f05029e; + public static final int lang_name_slovak=0x7f0502a1; + public static final int lang_name_spanish=0x7f050296; + public static final int lang_name_swedish=0x7f050297; + public static final int lang_name_turkish=0x7f050294; /** Unknown */ - public static final int lang_unknown=0x7f0502b3; + public static final int lang_unknown=0x7f0502b4; /** Game language/wordlist */ public static final int langdict_label=0x7f0500bb; /** Put new games here */ - public static final int list_group_default=0x7f050256; + public static final int list_group_default=0x7f050257; /** Delete group */ - public static final int list_group_delete=0x7f050254; + public static final int list_group_delete=0x7f050255; /** Move down */ - public static final int list_group_movedown=0x7f050258; + public static final int list_group_movedown=0x7f050259; /** Move up */ - public static final int list_group_moveup=0x7f050257; + public static final int list_group_moveup=0x7f050258; /** Rename */ - public static final int list_group_rename=0x7f050255; + public static final int list_group_rename=0x7f050256; /** ############## menu items ############## pulls up dialog to configure the selected game Used to format game name plus some other information as the @@ -3489,7 +3490,7 @@ XLATE-ME pulls up dialog to delete the selected game */ public static final int list_item_delete=0x7f05009c; - public static final int list_item_deselect=0x7f05032f; + public static final int list_item_deselect=0x7f050330; /** pulls up dialog to change the group of the selected game pulls up dialog to change the group of the selected game pulls up dialog to change the group of the selected game @@ -3528,18 +3529,18 @@ XLATE-ME except for any configuration. */ public static final int list_item_reset=0x7f05009d; - public static final int list_item_select=0x7f05032e; + public static final int list_item_select=0x7f05032f; /** formatting for last move summary in notifications formatting for last move summary in notifications %1$s passed (0 points) */ - public static final int lmi_pass_fmt=0x7f0502bb; + public static final int lmi_pass_fmt=0x7f0502bc; /** %1$s lost a turn */ - public static final int lmi_phony_fmt=0x7f0502bc; + public static final int lmi_phony_fmt=0x7f0502bd; /** Tiles assigned to %1$s */ - public static final int lmi_tiles_fmt=0x7f0502bd; + public static final int lmi_tiles_fmt=0x7f0502be; /** One of the strings used in the right column of the list of installed wordlists to describe those that are part of Crosswords and that cannot be uninstalled or moved. @@ -3581,24 +3582,24 @@ XLATE-ME public static final int loc_external=0x7f0500b1; /** All */ - public static final int loc_filters_all=0x7f05028c; + public static final int loc_filters_all=0x7f05028d; /** Latest menu */ - public static final int loc_filters_menu=0x7f05028e; + public static final int loc_filters_menu=0x7f05028f; /** Modified by me */ - public static final int loc_filters_modified=0x7f05028f; + public static final int loc_filters_modified=0x7f050290; /** Filter by: */ - public static final int loc_filters_prompt=0x7f05028a; + public static final int loc_filters_prompt=0x7f05028b; /** Latest screen */ - public static final int loc_filters_screen=0x7f05028d; + public static final int loc_filters_screen=0x7f05028e; /** Illegal translation: a translated string must have the same format specifiers (e.g. %1$s) as the original. */ - public static final int loc_fmts_mismatch=0x7f0502a5; + public static final int loc_fmts_mismatch=0x7f0502a6; /** see move_dictf above see move_dictf above see move_dictf above @@ -3606,30 +3607,30 @@ XLATE-ME public static final int loc_internal=0x7f0500b0; /** Check */ - public static final int loc_item_check=0x7f0502a2; + public static final int loc_item_check=0x7f0502a3; /** for loc item edit menu for loc item edit menu Clear */ - public static final int loc_item_clear=0x7f0502a1; + public static final int loc_item_clear=0x7f0502a2; /** Copy official */ - public static final int loc_item_copy_bless=0x7f0502a4; + public static final int loc_item_copy_bless=0x7f0502a5; /** Copy English */ - public static final int loc_item_copy_eng=0x7f0502a3; + public static final int loc_item_copy_eng=0x7f0502a4; /** %1$s (official) */ - public static final int loc_lang_blessed=0x7f050285; + public static final int loc_lang_blessed=0x7f050286; /** %1$s (yours) */ - public static final int loc_lang_local=0x7f050286; + public static final int loc_lang_local=0x7f050287; /** Translate */ - public static final int loc_menu_xlate=0x7f050284; + public static final int loc_menu_xlate=0x7f050285; /** Search for: */ - public static final int loc_search_prompt=0x7f05028b; + public static final int loc_search_prompt=0x7f05028c; /** This is the "hint" printed in light text in the empty player name field ############################################################ @@ -3676,60 +3677,60 @@ XLATE-ME This is the "hint" printed in light text in the empty player name field */ - public static final int local_name_hint=0x7f050182; + public static final int local_name_hint=0x7f050183; /** XLATE-ME Enable logging */ - public static final int logging_on=0x7f0502ea; + public static final int logging_on=0x7f0502eb; /** XLATE-ME (release builds only) */ - public static final int logging_on_summary=0x7f0502eb; + public static final int logging_on_summary=0x7f0502ec; /** Word lookup */ - public static final int lookup_title=0x7f050280; + public static final int lookup_title=0x7f050281; /** (Not in contacts) */ - public static final int manual_owner_name=0x7f05020c; + public static final int manual_owner_name=0x7f05020d; /** Max length */ - public static final int max_len=0x7f0501e7; + public static final int max_len=0x7f0501e8; /** Chat */ - public static final int menu_chat=0x7f05021e; + public static final int menu_chat=0x7f05021f; /** Flip board */ - public static final int menu_flip=0x7f05021c; + public static final int menu_flip=0x7f05021d; /** Next hint */ - public static final int menu_hint_next=0x7f050219; + public static final int menu_hint_next=0x7f05021a; /** Prev hint */ - public static final int menu_hint_prev=0x7f050218; + public static final int menu_hint_prev=0x7f050219; /** Juggle rack */ - public static final int menu_juggle=0x7f05021b; + public static final int menu_juggle=0x7f05021c; /** text of menu that brings up the Settings (preferences) dialog text of menu that brings up the Settings (preferences) dialog text of menu that brings up the Settings (preferences) dialog @@ -3737,25 +3738,25 @@ XLATE-ME public static final int menu_prefs=0x7f050093; /** Rate Crosswords */ - public static final int menu_rateme=0x7f050272; + public static final int menu_rateme=0x7f050273; /** Toggle values */ - public static final int menu_toggle_values=0x7f05021f; + public static final int menu_toggle_values=0x7f050220; /** Zoom in/out */ - public static final int menu_zoom=0x7f05021d; + public static final int menu_zoom=0x7f05021e; /** Min length */ - public static final int min_len=0x7f0501e6; + public static final int min_len=0x7f0501e7; /** label for the field used to set the timer's inital value label for the field used to set the timer's inital value Minutes per player @@ -3768,14 +3769,14 @@ XLATE-ME wordslist that's not installed Tap to download missing wordlist */ - public static final int missing_dict_detail=0x7f050249; + public static final int missing_dict_detail=0x7f05024a; /** Title of notification shown when invitation requires a wordslist that's not installed Title of notification shown when invitation requires a wordslist that's not installed Game invitation pending */ - public static final int missing_dict_title=0x7f050248; + public static final int missing_dict_title=0x7f050249; /** Used as a substitute for the names of remote players when they aren't available yet because the connection is not complete. Displayed in the lists of players found in each @@ -3855,7 +3856,7 @@ XLATE-ME Text of dialog. Player name is substituted */ - public static final int msg_ask_password_fmt=0x7f05019a; + public static final int msg_ask_password_fmt=0x7f05019b; /** When a game has been connected and the relay is notified that a device in the game has deleted its part of the game, this message is posted when you connect your end of it to the @@ -3878,27 +3879,27 @@ XLATE-ME game so you might as well delete it (unless you're saving it for its history etc.) */ - public static final int msg_dev_deleted=0x7f0500f0; + public static final int msg_dev_deleted=0x7f0500f1; /** (I believe this can no longer occur) (I believe this can no longer occur) Another host has already registered a room using that name. Rename yours or retry later. (I believe this can no longer occur) */ - public static final int msg_dup_room=0x7f0500ee; + public static final int msg_dup_room=0x7f0500ef; /** (I believe this can no longer occur) (I believe this can no longer occur) The relay has lost contact with another device in this game. (I believe this can no longer occur) */ - public static final int msg_lost_other=0x7f0500ef; + public static final int msg_lost_other=0x7f0500f0; /** (I believe this can no longer occur) (I believe this can no longer occur) No host has registered a room by that name. (I believe this can no longer occur) */ - public static final int msg_no_room=0x7f0500ed; + public static final int msg_no_room=0x7f0500ee; /** Text of "toast" shown when a game is notified by the relay that all expected players have registered. At this point play can begin. @@ -3911,14 +3912,14 @@ XLATE-ME that all expected players have registered. At this point play can begin. */ - public static final int msg_relay_all_here_fmt=0x7f0500ea; + public static final int msg_relay_all_here_fmt=0x7f0500eb; /** (I believe this can no longer occur) (I believe this can no longer occur) You are providing more players than the host expects. (I believe this can no longer occur) */ - public static final int msg_too_many=0x7f0500ec; + public static final int msg_too_many=0x7f0500ed; /** Text of progress indicator shown while check is being conducted Text of progress indicator shown while check is being conducted Text of progress indicator shown while check is being conducted @@ -3926,26 +3927,26 @@ XLATE-ME public static final int msgs_progress=0x7f050095; /** %1$s moved more than %2$s ago. */ - public static final int nag_body_fmt=0x7f0502b8; + public static final int nag_body_fmt=0x7f0502b9; /** XLATE-ME Reminder intervals (minutes1,minutes2,...) */ - public static final int nag_intervals=0x7f0502fc; + public static final int nag_intervals=0x7f0502fd; /** Nagging: title of notification reminder message Nagging: title of notification reminder message Reminder: It\'s your turn */ - public static final int nag_title=0x7f0502b7; + public static final int nag_title=0x7f0502b8; /** above is inserted in this the last time I warn above is inserted in this the last time I warn Last warning: %1$s */ - public static final int nag_warn_last_fmt=0x7f0502b9; + public static final int nag_warn_last_fmt=0x7f0502ba; /** XLATE-ME %1$s copy */ - public static final int name_copy_fmt=0x7f050206; - public static final int name_dict_fmt=0x7f0502f6; + public static final int name_copy_fmt=0x7f050207; + public static final int name_dict_fmt=0x7f0502f7; public static final int nbs_port=0x7f050083; /** text of checkbox. If this checkbox is checked, games created for network play will by default have the hint feature @@ -3970,41 +3971,41 @@ XLATE-ME will default to having the hint feature enabled(string elsewhere in this file) */ - public static final int nethints_allowed_sum=0x7f050129; + public static final int nethints_allowed_sum=0x7f05012a; /** XLATE-ME Game network stats */ - public static final int netstats_title=0x7f0502f1; + public static final int netstats_title=0x7f0502f2; /** XLATE-ME For experienced players */ - public static final int network_advanced_summary=0x7f0502cc; + public static final int network_advanced_summary=0x7f0502cd; /** XLATE-ME Advanced */ - public static final int network_advanced_title=0x7f0502cb; + public static final int network_advanced_title=0x7f0502cc; /** Network game settings */ - public static final int network_behavior=0x7f05015a; + public static final int network_behavior=0x7f05015b; /** explanation of the above explanation of the above Settings that apply to networked games explanation of the above */ - public static final int network_behavior_summary=0x7f05015b; + public static final int network_behavior_summary=0x7f05015c; /** Tap to download and install */ - public static final int new_app_avail=0x7f05023f; + public static final int new_app_avail=0x7f050240; /** New version of %1$s */ - public static final int new_app_avail_fmt=0x7f05023e; + public static final int new_app_avail_fmt=0x7f05023f; /** New game via Bluetooth @@ -4013,61 +4014,61 @@ XLATE-ME */ - public static final int new_bt_body_fmt=0x7f0501f7; + public static final int new_bt_body_fmt=0x7f0501f8; /** */ - public static final int new_btmove_title=0x7f0501fb; + public static final int new_btmove_title=0x7f0501fc; /** New wordlist available */ - public static final int new_dict_avail=0x7f05023c; + public static final int new_dict_avail=0x7f05023d; /** Tap to update %1$s */ - public static final int new_dict_avail_fmt=0x7f05023d; + public static final int new_dict_avail_fmt=0x7f05023e; /** XLATE-ME New one-device game */ - public static final int new_game=0x7f0502c2; + public static final int new_game=0x7f0502c3; /** XLATE-ME Would you like to create this game using default settings?\n\nOr would you like to configure it first? */ - public static final int new_game_message=0x7f0502c5; + public static final int new_game_message=0x7f0502c6; /** XLATE-ME (You will have a chance to invite other players when it is open.) */ - public static final int new_game_message_net=0x7f0502c7; + public static final int new_game_message_net=0x7f0502c8; /** XLATE-ME This game must be configured before it can be opened. */ - public static final int new_game_message_nodflt=0x7f0502c6; + public static final int new_game_message_nodflt=0x7f0502c7; /** XLATE-ME New networked game */ - public static final int new_game_networked=0x7f0502c3; + public static final int new_game_networked=0x7f0502c4; /** One or more moves has arrived */ - public static final int new_move_body=0x7f0501fc; + public static final int new_move_body=0x7f0501fd; /** %1$s has invited you to play */ - public static final int new_name_body_fmt=0x7f050209; - public static final int new_relay_body=0x7f0501f8; + public static final int new_name_body_fmt=0x7f05020a; + public static final int new_relay_body=0x7f0501f9; /** hint (text shown when field is empty) for room name field hint (text shown when field is empty) for room name field Room name @@ -4109,7 +4110,7 @@ XLATE-ME Title of New user info dialog */ - public static final int newbie_title=0x7f0501ae; + public static final int newbie_title=0x7f0501af; /** section separator (white-on-gray bar) for third section: bluetooth games section separator (white-on-gray bar) for third section: @@ -4118,15 +4119,15 @@ XLATE-ME section separator (white-on-gray bar) for third section: bluetooth games */ - public static final int newgame_bt_header=0x7f050170; + public static final int newgame_bt_header=0x7f050171; /** Text of second of two buttons for new standalone games. Tap this and you'll get taken to the "Game configure" screen Text of second of two buttons for new standalone games. Tap this and you'll get taken to the "Game configure" screen Configure first */ - public static final int newgame_configure_first=0x7f05016a; - public static final int newgame_drop_relay=0x7f05016f; + public static final int newgame_configure_first=0x7f05016b; + public static final int newgame_drop_relay=0x7f050170; /** Text of first of two buttons for new networked games. Tap this and a game will be created, but you probably won't see it immediately because an email or messaging app will be @@ -4141,8 +4142,8 @@ XLATE-ME it immediately because an email or messaging app will be launched to send your invitation. */ - public static final int newgame_invite=0x7f05016d; - public static final int newgame_invite_more=0x7f05016e; + public static final int newgame_invite=0x7f05016e; + public static final int newgame_invite_more=0x7f05016f; /** Text of first of two buttons for new standalone games. Tap this and a new game will be created and opened. If the first player is a robot it will immediately take its turn. @@ -4154,7 +4155,7 @@ XLATE-ME this and a new game will be created and opened. If the first player is a robot it will immediately take its turn. */ - public static final int newgame_local=0x7f050169; + public static final int newgame_local=0x7f05016a; /** This is one of two descriptions on this screen. It explains what standalone games are and describes the two buttons used to create them. The name of the language of the default @@ -4173,7 +4174,7 @@ XLATE-ME to create them. The name of the language of the default wordlist is substituted in for %1$s. */ - public static final int newgame_local_desc_fmt=0x7f050168; + public static final int newgame_local_desc_fmt=0x7f050169; /** ############################################################ # :Screens: # New game screen @@ -4212,7 +4213,7 @@ XLATE-ME section separator (white-on-gray bar) for first section: standalone games */ - public static final int newgame_local_header=0x7f050167; + public static final int newgame_local_header=0x7f050168; /** This is the second of two descriptions on this screen. It explains what networked games are and describes the two buttons used to create them. @@ -4229,7 +4230,7 @@ XLATE-ME explains what networked games are and describes the two buttons used to create them. */ - public static final int newgame_networked_desc=0x7f05016c; + public static final int newgame_networked_desc=0x7f05016d; /** section separator (white-on-gray bar) for second section: networked games section separator (white-on-gray bar) for second section: @@ -4238,7 +4239,7 @@ XLATE-ME section separator (white-on-gray bar) for second section: networked games */ - public static final int newgame_networked_header=0x7f05016b; + public static final int newgame_networked_header=0x7f05016c; /** New SMS Game @@ -4246,16 +4247,16 @@ XLATE-ME */ - public static final int newgame_sms_header=0x7f050207; + public static final int newgame_sms_header=0x7f050208; /** Name your new group: */ - public static final int newgroup_label=0x7f050253; + public static final int newgroup_label=0x7f050254; /** XLATE-ME To invite via NFC just touch the back of this device against the one you want to invite—any time the game is open. */ - public static final int nfc_just_tap=0x7f0502d9; + public static final int nfc_just_tap=0x7f0502da; /** XLATE-ME GSM XLATE-ME @@ -4263,7 +4264,7 @@ XLATE-ME XLATE-ME Send via NFC to self? */ - public static final int nfc_to_self=0x7f050306; + public static final int nfc_to_self=0x7f050307; /** Title of dialog for renaming game (triggered by selecting list_item_rename) If you try to copy a networked game you get this error @@ -4291,7 +4292,7 @@ XLATE-ME just an explanation and this button, after which the game closes. */ - public static final int no_dict_finish=0x7f050193; + public static final int no_dict_finish=0x7f050194; /** If the missing wordlist is discovered when trying to open the game, we have more options. If there's another wordlist in the same language, we can offer to substitute without needing @@ -4316,7 +4317,7 @@ XLATE-ME takes wordlist name and language substituted in for %1$ and %2$ */ - public static final int no_dict_fmt=0x7f050195; + public static final int no_dict_fmt=0x7f050196; /** This is an alternative message presented when there's also the option of downloading another wordlist. Game name, wordlist name and language are substituted in. @@ -4332,7 +4333,7 @@ XLATE-ME the option of downloading another wordlist. Game name, wordlist name and language are substituted in. */ - public static final int no_dict_subst_fmt=0x7f050196; + public static final int no_dict_subst_fmt=0x7f050197; /** ############################################################ # :Dialogs: @@ -4486,7 +4487,7 @@ XLATE-ME title of alert */ - public static final int no_dict_title=0x7f050192; + public static final int no_dict_title=0x7f050193; /** If you click on the Play button without having entered a room name you get an alert with this error message. If you click on the Play button without having entered a room @@ -4496,7 +4497,7 @@ XLATE-ME If you click on the Play button without having entered a room name you get an alert with this error message. */ - public static final int no_empty_rooms=0x7f050184; + public static final int no_empty_rooms=0x7f050185; /** If you choose the above option and have no networked games you get this error message If you choose the above option and have no networked games @@ -4507,7 +4508,7 @@ XLATE-ME public static final int no_games_to_refresh=0x7f050096; /** Google Play app not found */ - public static final int no_market=0x7f050273; + public static final int no_market=0x7f050274; /** displayed when you long-tap a scoreboard entry and there's no most recent score to show displayed when you long-tap a scoreboard entry and there's no @@ -4531,7 +4532,7 @@ XLATE-ME substituted. */ public static final int no_name_found_fmt=0x7f0500c2; - public static final int no_relay_conn=0x7f050319; + public static final int no_relay_conn=0x7f05031a; /** This is not currently shown Crosswords wordlists, which are just compressed lists of words plus tile information, determine @@ -4573,25 +4574,25 @@ XLATE-ME figuring out how to play and when you tap an empty cell the arrow appears. This explains it. */ - public static final int not_again_arrow=0x7f0501c1; + public static final int not_again_arrow=0x7f0501c2; /** The back button clears any selection instead of exiting. Hit it again to exit the app. */ - public static final int not_again_backclears=0x7f050266; + public static final int not_again_backclears=0x7f050267; /** This button opens the wordlist browser on the current player\'s wordlist. */ - public static final int not_again_browse=0x7f0501e3; + public static final int not_again_browse=0x7f0501e4; /** This button opens the wordlist browser on the wordlist of your choice. */ - public static final int not_again_browseall=0x7f0501e4; + public static final int not_again_browseall=0x7f0501e5; /** Shown when you tap the chat button on the toolbar of the main Board screen Shown when you tap the chat button on the toolbar of the @@ -4602,14 +4603,14 @@ XLATE-ME Shown when you tap the chat button on the toolbar of the main Board screen */ - public static final int not_again_chat=0x7f0501ba; + public static final int not_again_chat=0x7f0501bb; /** EXPERIMENTAL: Newbie hint next when invite_choice_clip shown when chosen */ - public static final int not_again_clip_expl_fmt=0x7f050329; - public static final int not_again_comms_bt=0x7f050322; - public static final int not_again_comms_relay=0x7f050320; - public static final int not_again_comms_sms=0x7f050321; + public static final int not_again_clip_expl_fmt=0x7f05032a; + public static final int not_again_comms_bt=0x7f050323; + public static final int not_again_comms_relay=0x7f050321; + public static final int not_again_comms_sms=0x7f050322; /** This is shown in the Board screen when you successfully connecting a game to the relay and are the last device in the game to do so, i.e. the game is now complete and you should @@ -4627,7 +4628,7 @@ XLATE-ME game to do so, i.e. the game is now complete and you should expect play to begin. */ - public static final int not_again_conndall=0x7f0501c0; + public static final int not_again_conndall=0x7f0501c1; /** This is shown in the Board screen when you successfully connect a game to the relay and are the first device in the game to do so. @@ -4642,7 +4643,7 @@ XLATE-ME connect a game to the relay and are the first device in the game to do so. */ - public static final int not_again_conndfirst=0x7f0501be; + public static final int not_again_conndfirst=0x7f0501bf; /** This is shown in the Board screen when you successfully connecting a game to the relay and are not the first device in the game but not the last either. So it will only occur @@ -4659,8 +4660,8 @@ XLATE-ME in the game but not the last either. So it will only occur for games with more than two devices, which are rare. */ - public static final int not_again_conndmid=0x7f0501bf; - public static final int not_again_dfltname_fmt=0x7f050330; + public static final int not_again_conndmid=0x7f0501c0; + public static final int not_again_dfltname_fmt=0x7f050331; /** This screen lets you install new wordslists and view the ones you already have.\n\nWhat wordlists you have installed determines:\n• What languages you can play @@ -4668,7 +4669,7 @@ XLATE-ME legal.\n\nCheck the \"Show downloadable\" box at the top to see what\'s available. */ - public static final int not_again_dicts=0x7f0502b4; + public static final int not_again_dicts=0x7f0502b5; /** This is shown when you choose the board_menu_done menu item. It's to let you know that there's a shortcut that does almost the same thing. @@ -4682,14 +4683,14 @@ XLATE-ME It's to let you know that there's a shortcut that does almost the same thing. */ - public static final int not_again_done=0x7f0501bc; + public static final int not_again_done=0x7f0501bd; /** XLATE-ME Public rooms have been made an \"advanced\" feature in this release. If you were using them and want them back, enable them now. You can turn them off again in Settings. */ - public static final int not_again_enablepublic=0x7f0502df; + public static final int not_again_enablepublic=0x7f0502e0; /** Shown when you tap the flip button on the toolbar of the main Board screen Shown when you tap the flip button on the toolbar of the main @@ -4699,13 +4700,13 @@ XLATE-ME Shown when you tap the flip button on the toolbar of the main Board screen */ - public static final int not_again_flip=0x7f0501b7; + public static final int not_again_flip=0x7f0501b8; /** This string has special format specifiers (e.g. %1$s). Please be sure that your translation has the same ones as the original.\n\n(You will not be able to save it unless it does.) */ - public static final int not_again_fmt_expl=0x7f0502a6; + public static final int not_again_fmt_expl=0x7f0502a7; /** XLATE-ME These two buttons do the same thing as the first two items in this window\'s Action Bar @@ -4714,7 +4715,7 @@ XLATE-ME section of App settings). */ - public static final int not_again_hidenewgamebuttons=0x7f0502d3; + public static final int not_again_hidenewgamebuttons=0x7f0502d4; /** Shown when you tap the next hint button on the toolbar of the main Board screen Shown when you tap the next hint button on the toolbar of the @@ -4725,7 +4726,7 @@ XLATE-ME Shown when you tap the next hint button on the toolbar of the main Board screen */ - public static final int not_again_hintnext=0x7f0501b5; + public static final int not_again_hintnext=0x7f0501b6; /** Currently not used The new game you have created has two players. Player 1 is a robot; Player 2 is you. Tap the game @@ -4751,7 +4752,7 @@ XLATE-ME Shown when you tap the Previous Hint button on the toolbar of the main Board screen */ - public static final int not_again_hintprev=0x7f0501b4; + public static final int not_again_hintprev=0x7f0501b5; /** Shown when you tap the juggle button on the toolbar of the main Board screen Shown when you tap the juggle button on the toolbar of the @@ -4761,14 +4762,14 @@ XLATE-ME Shown when you tap the juggle button on the toolbar of the main Board screen */ - public static final int not_again_juggle=0x7f0501b6; + public static final int not_again_juggle=0x7f0501b7; /** This button lets you look up, online, the words just played. */ - public static final int not_again_lookup=0x7f0501d7; + public static final int not_again_lookup=0x7f0501d8; /** Shown when you first pick the list_item_new_from menuitem Shown when you first pick the list_item_new_from menuitem Create a new ready-to-play game @@ -4776,19 +4777,19 @@ XLATE-ME as a template. Shown when you first pick the list_item_new_from menuitem */ - public static final int not_again_newfrom=0x7f0501c3; + public static final int not_again_newfrom=0x7f0501c4; /** Tapping a game opens it.\n\nYou can instead tap the icons at the left to select or deselect games, then act on selected games, e.g. to delete them, using the menu or \"Actionbar.\" */ - public static final int not_again_newselect=0x7f050265; - public static final int not_again_rematch_two_only=0x7f050324; + public static final int not_again_newselect=0x7f050266; + public static final int not_again_rematch_two_only=0x7f050325; /** The selected words will be copied to the system clipboard. You can then paste them into any app that supports pasting text, e.g. an email app. */ - public static final int not_again_studycopy=0x7f05027f; + public static final int not_again_studycopy=0x7f050280; /** The following strings (all whose names start with "not_again") appear in the New user info dialog. @@ -4807,7 +4808,7 @@ XLATE-ME shown when user chooses the gamel_menu_checkmoves menu */ - public static final int not_again_sync=0x7f0501b0; + public static final int not_again_sync=0x7f0501b1; /** Shown when the user chooses the "board_menu_trade" menu Shown when the user chooses the "board_menu_trade" menu You are entering tile-exchange @@ -4815,15 +4816,15 @@ XLATE-ME exchanged.\n\n Shown when the user chooses the "board_menu_trade" menu */ - public static final int not_again_trading=0x7f0501b1; + public static final int not_again_trading=0x7f0501b2; /** Use the buttons to commit your turn or exit exchange mode. */ - public static final int not_again_trading_buttons=0x7f0501b2; + public static final int not_again_trading_buttons=0x7f0501b3; /** Use the menu or action bar to commit your turn or exit exchange mode. */ - public static final int not_again_trading_menu=0x7f0501b3; + public static final int not_again_trading_menu=0x7f0501b4; /** Shown when the board screen is visible and it's just become another players turn. The idea is to give a hint about how to find out about recent moves. @@ -4838,7 +4839,7 @@ XLATE-ME another players turn. The idea is to give a hint about how to find out about recent moves. */ - public static final int not_again_turnchanged=0x7f0501c2; + public static final int not_again_turnchanged=0x7f0501c3; /** Shown when you tap the undo/redo button on the toolbar of the main Board screen Shown when you tap the undo/redo button on the toolbar of the @@ -4848,7 +4849,7 @@ XLATE-ME Shown when you tap the undo/redo button on the toolbar of the main Board screen */ - public static final int not_again_undo=0x7f0501b9; + public static final int not_again_undo=0x7f0501ba; /** Shown in the Game configure screen when the game_locked checkbox is checked and you uncheck it. Shown in the Game configure screen when the game_locked @@ -4860,7 +4861,7 @@ XLATE-ME Shown in the Game configure screen when the game_locked checkbox is checked and you uncheck it. */ - public static final int not_again_unlock=0x7f0501bd; + public static final int not_again_unlock=0x7f0501be; /** Shown when you tap the values button on the toolbar of the main Board screen. This is intended to allow players to remind themselves how much played tiles are worth while @@ -4877,7 +4878,7 @@ XLATE-ME remind themselves how much played tiles are worth while planning a move. */ - public static final int not_again_values=0x7f0501bb; + public static final int not_again_values=0x7f0501bc; /** Shown when you tap the zoom (+/-) button on the toolbar of the main Board screen Shown when you tap the zoom (+/-) button on the toolbar of @@ -4888,12 +4889,12 @@ XLATE-ME Shown when you tap the zoom (+/-) button on the toolbar of the main Board screen */ - public static final int not_again_zoom=0x7f0501b8; + public static final int not_again_zoom=0x7f0501b9; /** (None) */ - public static final int note_none=0x7f0502b0; - public static final int notify_chat_body_fmt=0x7f05019f; - public static final int notify_chat_title_fmt=0x7f05019e; + public static final int note_none=0x7f0502b1; + public static final int notify_chat_body_fmt=0x7f0501a0; + public static final int notify_chat_title_fmt=0x7f05019f; /** This text is displayed as the "summary" for both of the notify choices above, as extra information. (There could be different strings if it makes more sense in your language.) @@ -4908,7 +4909,7 @@ XLATE-ME different strings if it makes more sense in your language.) */ - public static final int notify_other_summary=0x7f050166; + public static final int notify_other_summary=0x7f050167; /** When one or more new moves is found, should I play a notification sound When one or more new moves is found, should I play a @@ -4917,7 +4918,7 @@ XLATE-ME When one or more new moves is found, should I play a notification sound */ - public static final int notify_sound=0x7f050164; + public static final int notify_sound=0x7f050165; /** When a move is fetched from the relay a Notification is posted. These are its title, which appears in the top bar of the device, and the body that appears when you pull the notifications @@ -4928,7 +4929,7 @@ XLATE-ME down. Move in game %1$s */ - public static final int notify_title_fmt=0x7f05019d; + public static final int notify_title_fmt=0x7f05019e; /** When one or more new moves is found, should I vibrate the device When one or more new moves is found, should I vibrate the @@ -4937,11 +4938,11 @@ XLATE-ME When one or more new moves is found, should I vibrate the device */ - public static final int notify_vibrate=0x7f050165; + public static final int notify_vibrate=0x7f050166; /** XLATE-ME Number on this device */ - public static final int nplayers_prompt=0x7f0502c9; + public static final int nplayers_prompt=0x7f0502ca; /** text of label identifying the field where human players can enter an option password. The label and field disappear when the robot player checkbox is checked because it makes no @@ -4972,7 +4973,7 @@ XLATE-ME play – if he/she is also using NFC. \u0020pct. */ - public static final int pct_suffix=0x7f050271; + public static final int pct_suffix=0x7f050272; /** If this preference is checked, tapping on the scoreboard entry for any player reveals that player's tiles and any pending move (after asking for his password if one is set.) @@ -4999,20 +5000,20 @@ XLATE-ME though it's not his turn e.g. while the player whose turn it is is temporarily unable to play. */ - public static final int peek_other=0x7f050156; + public static final int peek_other=0x7f050157; /** explanation of the above explanation of the above Tapping on scoreboard name shows that player\'s tiles explanation of the above */ - public static final int peek_other_summary=0x7f050157; + public static final int peek_other_summary=0x7f050158; /** Connected number[s]: */ - public static final int phone_label=0x7f050214; + public static final int phone_label=0x7f050215; /** Don't warn, but simply force to skip turn (give 0 points) when user attempts to play word not in the wordlist. Don't warn, but simply force to skip turn (give 0 points) @@ -5209,13 +5210,13 @@ XLATE-ME Pick tiles face-up */ - public static final int pick_faceup=0x7f0501df; + public static final int pick_faceup=0x7f0501e0; /** Look up %1$s at */ - public static final int pick_url_title_fmt=0x7f0501d5; + public static final int pick_url_title_fmt=0x7f0501d6; /** Text of button at bottom. Press it and you exit this configure screen and open the game into the Board screen Text of button at bottom. Press it and you exit this @@ -5321,7 +5322,7 @@ XLATE-ME used to create default player names. Number between 1 and 4 is substituted */ - public static final int player_fmt=0x7f05019c; + public static final int player_fmt=0x7f05019d; /** text of lable identifying the field in which player's name is set/displayed Shown in the main screen when you launch Crosswords from an @@ -5365,57 +5366,57 @@ XLATE-ME public static final int players_label_standalone=0x7f0500b6; /** Prefs related to in-app localization */ - public static final int pref_group_l10n_summary=0x7f050312; + public static final int pref_group_l10n_summary=0x7f050313; /** Localization Stuff */ - public static final int pref_group_l10n_title=0x7f050311; + public static final int pref_group_l10n_title=0x7f050312; /** Prefs related to play via internet/relay */ - public static final int pref_group_relay_summary=0x7f050310; + public static final int pref_group_relay_summary=0x7f050311; /** Relay Stuff */ - public static final int pref_group_relay_title=0x7f05030f; + public static final int pref_group_relay_title=0x7f050310; /** Prefs related to play-via-sms */ - public static final int pref_group_sms_summary=0x7f05030e; + public static final int pref_group_sms_summary=0x7f05030f; /** SMS Stuff */ - public static final int pref_group_sms_title=0x7f05030d; + public static final int pref_group_sms_title=0x7f05030e; /** Label for the first "human player" name preference Label for the first "human player" name preference Human player */ - public static final int pref_human_name=0x7f050122; + public static final int pref_human_name=0x7f050123; /** Get intermediate builds */ - public static final int pref_item_update_summary=0x7f050314; + public static final int pref_item_update_summary=0x7f050315; /** Update between releases */ - public static final int pref_item_update_title=0x7f050313; + public static final int pref_item_update_title=0x7f050314; /** Label for the first player color preference Label for the first player color preference First player Label for the first "player name" preference */ - public static final int pref_player1_name=0x7f05011e; + public static final int pref_player1_name=0x7f05011f; /** Label for the second player color preference Label for the second player color preference Second player Label for the second "player name" preference (unused) */ - public static final int pref_player2_name=0x7f05011f; + public static final int pref_player2_name=0x7f050120; /** Label for the third player color preference Label for the third player color preference Third player Label for the third "player name" preference (unused) */ - public static final int pref_player3_name=0x7f050120; + public static final int pref_player3_name=0x7f050121; /** Label for the fourth player color preference Label for the fourth player color preference Fourth player Label for the fourth "player name" preference (unused) */ - public static final int pref_player4_name=0x7f050121; + public static final int pref_player4_name=0x7f050122; /** ############################################################ # :Screens: @@ -5439,14 +5440,14 @@ XLATE-ME title of this sub-preference */ - public static final int prefs_appearance=0x7f05012f; + public static final int prefs_appearance=0x7f050130; /** clarification of the above clarification of the above Settings controlling appearance clarification of the above */ - public static final int prefs_appearance_summary=0x7f050130; + public static final int prefs_appearance_summary=0x7f050131; /** ############################################################ # :Screens: @@ -5470,13 +5471,13 @@ XLATE-ME title of this sub-preference */ - public static final int prefs_behavior=0x7f05014c; + public static final int prefs_behavior=0x7f05014d; /** clarification of the above clarification of the above Settings controlling app behavior clarification of the above */ - public static final int prefs_behavior_summary=0x7f05014d; + public static final int prefs_behavior_summary=0x7f05014e; /** ############################################################ # :Screens: @@ -5526,13 +5527,13 @@ XLATE-ME title of this sub-preference */ - public static final int prefs_colors=0x7f05013e; + public static final int prefs_colors=0x7f05013f; /** clarification of the above clarification of the above Edit colors used on the board clarification of the above */ - public static final int prefs_colors_summary=0x7f05013f; + public static final int prefs_colors_summary=0x7f050140; /** ############################################################ # :Screens: @@ -5556,26 +5557,26 @@ XLATE-ME title of this sub-preference */ - public static final int prefs_defaults=0x7f05011a; + public static final int prefs_defaults=0x7f05011b; /** clarification of the above clarification of the above Default settings for new games clarification of the above */ - public static final int prefs_defaults_summary=0x7f05011b; + public static final int prefs_defaults_summary=0x7f05011c; /** sub-preference for dictionaries (soon to be called "word lists") sub-preference for dictionaries (soon to be called "word lists") Wordlists sub-preference for dictionaries (soon to be called "word lists") */ - public static final int prefs_dicts=0x7f050124; + public static final int prefs_dicts=0x7f050125; /** clarification of above clarification of above Default wordlists clarification of above */ - public static final int prefs_dicts_summary=0x7f050125; + public static final int prefs_dicts_summary=0x7f050126; /** sub-preference title for editing default player names. There's only enabled now, though. sub-preference title for editing default player names. @@ -5584,38 +5585,38 @@ XLATE-ME sub-preference title for editing default player names. There's only enabled now, though. */ - public static final int prefs_names=0x7f05011c; + public static final int prefs_names=0x7f05011d; /** clarification of the above clarification of the above Default player names clarification of the above */ - public static final int prefs_names_summary=0x7f05011d; + public static final int prefs_names_summary=0x7f05011e; /** Used when prev player's name can't be looked up Used when prev player's name can't be looked up Your opponent */ - public static final int prev_player=0x7f0502ba; - public static final int processing_games=0x7f05032d; + public static final int prev_player=0x7f0502bb; + public static final int processing_games=0x7f05032e; /** Downloading */ - public static final int progress_title=0x7f0502ae; + public static final int progress_title=0x7f0502af; /** Words no longer than */ - public static final int prompt_max_len=0x7f0501e9; + public static final int prompt_max_len=0x7f0501ea; /** Words no shorter than */ - public static final int prompt_min_len=0x7f0501e8; + public static final int prompt_min_len=0x7f0501e9; /** XLATE-ME Relay device port */ - public static final int proxy_port=0x7f0502f5; + public static final int proxy_port=0x7f0502f6; /** Short for "points", this is shown at the right end of the tray in place of the first tile placed along with the points the current move would earn if committed. @@ -5623,7 +5624,7 @@ XLATE-ME tray in place of the first tile placed along with the points the current move would earn if committed. */ - public static final int pts=0x7f0500e9; + public static final int pts=0x7f0500ea; /** If you check the join_room checkbox Crosswords queries the relay. This is the text of the progress indicator displayed what that's going on. (It's often visible for only a very short @@ -5648,17 +5649,17 @@ XLATE-ME Title for generic dialog asking a question, usually in the middle of a game, like "do you want to commit this move?" */ - public static final int query_title=0x7f0501ad; - public static final int radio_name_cdma=0x7f050305; - public static final int radio_name_gsm=0x7f050304; + public static final int query_title=0x7f0501ae; + public static final int radio_name_cdma=0x7f050306; + public static final int radio_name_gsm=0x7f050305; /** XLATE-ME Don\'t pretend */ - public static final int radio_name_real=0x7f050302; + public static final int radio_name_real=0x7f050303; /** XLATE-ME Tablet/no radio */ - public static final int radio_name_tablet=0x7f050303; + public static final int radio_name_tablet=0x7f050304; /** ############################################################ # :Dialogs: @@ -5694,12 +5695,12 @@ XLATE-ME Names of the three colors by which colors can be edited in the color preferences dialog */ - public static final int red=0x7f050149; + public static final int red=0x7f05014a; /** XLATE-ME Invite redirect host */ - public static final int redir_host=0x7f0502e8; - public static final int rel_invite_title=0x7f05032b; + public static final int redir_host=0x7f0502e9; + public static final int rel_invite_title=0x7f05032c; /** Title of dialog used to alert players to relay-related problems with the current game. the color of text, e.g. "2L", shown on a bonus square on the @@ -5712,39 +5713,39 @@ XLATE-ME Title of dialog used to alert players to relay-related problems with the current game. */ - public static final int relay_alert=0x7f0500eb; + public static final int relay_alert=0x7f0500ec; /** Message from relay */ - public static final int relay_alert_title=0x7f050264; + public static final int relay_alert_title=0x7f050265; /** XLATE-ME Relay host */ - public static final int relay_host=0x7f0502e7; - public static final int relay_invite_title=0x7f050202; + public static final int relay_host=0x7f0502e8; + public static final int relay_invite_title=0x7f050203; /** XLATE-ME Relay game port */ - public static final int relay_port=0x7f0502f4; + public static final int relay_port=0x7f0502f5; /** Shown in toast when relaunching after switching dicts Shown in toast when relaunching after switching dicts Reloading game with %1$s Shown in toast when relaunching after switching dicts */ - public static final int reload_new_dict_fmt=0x7f050247; + public static final int reload_new_dict_fmt=0x7f050248; /** XLATE-ME Issuing rematch invitation. You will see this message until it has been accepted.\n\nYou do not need to keep this game open while waiting. You will be notified when the game is ready to play. */ - public static final int rematch_msg=0x7f0502de; - public static final int rematch_name_fmt=0x7f0502c4; + public static final int rematch_msg=0x7f0502df; + public static final int rematch_name_fmt=0x7f0502c5; /** Processing wordlist information… */ - public static final int remote_digesting=0x7f0502a8; + public static final int remote_digesting=0x7f0502a9; /** Fetching wordlist information from server… */ - public static final int remote_empty=0x7f0502a7; + public static final int remote_empty=0x7f0502a8; /** checkbox determining of this player is on this device or remote. If remote, then the rest of the fields disappear (since they will be set by the remote device.) @@ -5760,16 +5761,16 @@ XLATE-ME /** Unable to fetch wordlist information from server. */ - public static final int remote_no_net=0x7f0502a9; + public static final int remote_no_net=0x7f0502aa; /** Remote device undid a turn. */ - public static final int remote_undone=0x7f050217; + public static final int remote_undone=0x7f050218; /** Change the name of this group to: */ - public static final int rename_group_label=0x7f05025b; + public static final int rename_group_label=0x7f05025c; /** text within rename dialog (triggered by selecting list_item_rename) text within rename dialog (triggered by selecting @@ -5801,13 +5802,13 @@ XLATE-ME volume) This only applies when the Board screen is frontmost. */ - public static final int ringer_zoom=0x7f050154; + public static final int ringer_zoom=0x7f050155; /** explanation of the above explanation of the above Zoom board using volume keys explanation of the above */ - public static final int ringer_zoom_summary=0x7f050155; + public static final int ringer_zoom_summary=0x7f050156; /** checkbox determining if player is robot/automated or human checkbox determining if player is robot/automated or human Robot player @@ -5859,16 +5860,16 @@ XLATE-ME title for popup of public rooms found on server */ public static final int room_public_prompt=0x7f0500c0; - public static final int seeking_relay=0x7f050318; + public static final int seeking_relay=0x7f050319; /** Games: %1$d */ - public static final int sel_games_fmt=0x7f050267; + public static final int sel_games_fmt=0x7f050268; /** Groups: %1$d */ - public static final int sel_groups_fmt=0x7f050268; + public static final int sel_groups_fmt=0x7f050269; /** Selected: %1$d */ - public static final int sel_items_fmt=0x7f050283; + public static final int sel_items_fmt=0x7f050284; /** ############################################################ # :Dialogs: @@ -5892,7 +5893,7 @@ XLATE-ME /** XLATE-ME Hide buttons */ - public static final int set_pref=0x7f0502d2; + public static final int set_pref=0x7f0502d3; /** text of separator marking out other-setting area of the dialog see move_dictf above @@ -5943,20 +5944,20 @@ XLATE-ME arrow that then directs where tiles go when tapped in the tray. */ - public static final int show_arrow=0x7f05013a; + public static final int show_arrow=0x7f05013b; /** clarification of above clarification of above Tapped rack tiles land on this arrow when it is visible clarification of above */ - public static final int show_arrow_summary=0x7f05013b; + public static final int show_arrow_summary=0x7f05013c; /** Show downloadable */ - public static final int show_remote=0x7f0502ac; + public static final int show_remote=0x7f0502ad; /** Wordlist browser */ - public static final int show_wordlist_browser=0x7f050263; + public static final int show_wordlist_browser=0x7f050264; /** If this preference is checked, the user will not be asked to confirm after selecting the "Turn done" menu (or tapping the points display at the right end of the tray) @@ -5968,47 +5969,47 @@ XLATE-ME confirm after selecting the "Turn done" menu (or tapping the points display at the right end of the tray) */ - public static final int skip_confirm_turn=0x7f050150; + public static final int skip_confirm_turn=0x7f050151; /** explanation of the above explanation of the above Do NOT display score summary after every human turn explanation of the above */ - public static final int skip_confirm_turn_summary=0x7f050151; + public static final int skip_confirm_turn_summary=0x7f050152; /** Delete selected */ - public static final int slmenu_clear_sel=0x7f050279; + public static final int slmenu_clear_sel=0x7f05027a; /** Copy to clipboard */ - public static final int slmenu_copy_sel=0x7f050278; + public static final int slmenu_copy_sel=0x7f050279; /** Unselect all */ - public static final int slmenu_deselect_all=0x7f050282; + public static final int slmenu_deselect_all=0x7f050283; /** Select all */ - public static final int slmenu_select_all=0x7f050281; + public static final int slmenu_select_all=0x7f050282; /** XLATE-ME The version of Crosswords on the phone with number \"%1$s\" is incompatible with this one for play using SMS. One of you may need to upgrade before you can continue. */ - public static final int sms_bad_proto_fmt=0x7f0501fa; + public static final int sms_bad_proto_fmt=0x7f0501fb; /** Title of phone number picker during invitation to a game via SMS Title of phone number picker during invitation to a game via SMS SMS Invitation */ - public static final int sms_invite_title=0x7f050201; + public static final int sms_invite_title=0x7f050202; /** Tap the receiving device now */ - public static final int sms_ready_text=0x7f050270; + public static final int sms_ready_text=0x7f050271; /** Square rack tiles */ - public static final int square_tiles=0x7f050260; + public static final int square_tiles=0x7f050261; /** Even if they can be taller */ - public static final int square_tiles_summary=0x7f050261; + public static final int square_tiles_summary=0x7f050262; /** Used in formatting moves and history Used to separate names of players when listing them on one line in a game summary. The \u0020 is a space in xml. @@ -6020,7 +6021,7 @@ XLATE-ME line in a game summary. The \u0020 is a space in xml. Used in formatting moves and history */ - public static final int str_bonus_all=0x7f050112; + public static final int str_bonus_all=0x7f050113; /** Using the hint feature is cheating by some players, and it can be disabled via the hints_allowed preference. I should be disabling the buttons in this case, but if I don't and you @@ -6037,7 +6038,7 @@ XLATE-ME be disabling the buttons in this case, but if I don't and you try to get a hint you'll get this message instead. */ - public static final int str_cant_hint_while_disabled=0x7f05018e; + public static final int str_cant_hint_while_disabled=0x7f05018f; /** Displayed if you try to use the undo menuitem or button and there are no tiles on the board (no move has yet been made.) [If I'm being clever and disabling those features in this @@ -6053,7 +6054,7 @@ XLATE-ME [If I'm being clever and disabling those features in this case there may be no way to see this.] */ - public static final int str_cant_undo_tileassign=0x7f05018d; + public static final int str_cant_undo_tileassign=0x7f05018e; /** Beginning of the message presented to a user when asking him to confirm committing the current turn Used in formatting reports of trades (exchanges of tiles). @@ -6074,7 +6075,7 @@ XLATE-ME Beginning of the message presented to a user when asking him to confirm committing the current turn */ - public static final int str_commit_confirm=0x7f05010f; + public static final int str_commit_confirm=0x7f050110; /** Used to format game name plus some other information as the one-line summary for each game in the main screen. The name of the game is substituted for %1$s. Something else @@ -6095,8 +6096,8 @@ XLATE-ME because there is empty space between some of the tiles placed, i.e. they do not form a single word. */ - public static final int str_no_empties_in_turn=0x7f050186; - public static final int str_no_hint_found=0x7f050323; + public static final int str_no_empties_in_turn=0x7f050187; + public static final int str_no_hint_found=0x7f050324; /** Same as above, but used when you try to show tiles belonging to a player on another device (a remote player.) Same as above, but used when you try to show tiles belonging @@ -6106,7 +6107,7 @@ XLATE-ME Same as above, but used when you try to show tiles belonging to a player on another device (a remote player.) */ - public static final int str_no_peek_remote_tiles=0x7f05018b; + public static final int str_no_peek_remote_tiles=0x7f05018c; /** Displayed when you try to reveal a robot player's tiles, either by tapping on its "hidden" rack (marked by "?" characters) or by tapping on its scoreboard entry. (The @@ -6128,7 +6129,7 @@ XLATE-ME controlled by the peek_other preference and is disabled by default.) */ - public static final int str_no_peek_robot_tiles=0x7f05018a; + public static final int str_no_peek_robot_tiles=0x7f05018b; /** Used, with remote player's name substituted for %1$s, to indicate that the player is remote. Used, with remote player's name substituted for %1$s, to @@ -6137,7 +6138,7 @@ XLATE-ME Used, with remote player's name substituted for %s, to indicate that the player is remote. */ - public static final int str_nonlocal_name_fmt=0x7f050110; + public static final int str_nonlocal_name_fmt=0x7f050111; /** Displyed when you try to commit a move and it's not your turn. Displyed when you try to commit a move and it's not your @@ -6147,12 +6148,12 @@ XLATE-ME Displyed when you try to commit a move and it's not your turn. */ - public static final int str_not_your_turn=0x7f050189; + public static final int str_not_your_turn=0x7f05018a; /** Used in formatting game history and move summaries Used in formatting game history and move summaries pass\n */ - public static final int str_pass=0x7f050109; + public static final int str_pass=0x7f05010a; /** Used to alert user to loss of turn when a move is made and phonies is set to lose turn when word used not in wordlist @@ -6164,10 +6165,10 @@ XLATE-ME phonies is set to lose turn when word used not in wordlist */ - public static final int str_phony_rejected=0x7f05010e; + public static final int str_phony_rejected=0x7f05010f; /** [#%d] %s: %d */ - public static final int str_placer_fmt=0x7f050242; + public static final int str_placer_fmt=0x7f050243; /** Shown when using the the Game configure screen to configure a networked game and you try to make all players local. Shown when using the the Game configure screen to configure a @@ -6199,17 +6200,17 @@ XLATE-ME many players are expected and only connects devices where the numbers match. */ - public static final int str_reg_unexpected_user=0x7f05018f; + public static final int str_reg_unexpected_user=0x7f050190; /** Used in formatting remote player move summaries Used in formatting remote player move summaries Remote player %1$s made this move:\u0020 Used in formatting remote player move summaries */ - public static final int str_remote_moved_fmt=0x7f050107; + public static final int str_remote_moved_fmt=0x7f050108; /** [Resigned] %s: %d */ - public static final int str_resigned_fmt=0x7f050241; + public static final int str_resigned_fmt=0x7f050242; /** ############################################################ # Board info/error dialog messages @@ -6230,7 +6231,7 @@ XLATE-ME Notifies user of a normal robot move The robot %1$s made this move:\u0020 */ - public static final int str_robot_moved_fmt=0x7f050101; + public static final int str_robot_moved_fmt=0x7f050102; /** Shown when a remote device tries to join a game and wants to play in a different language. As with the above, this should be impossible when connecting via the relay. @@ -6243,7 +6244,7 @@ XLATE-ME play in a different language. As with the above, this should be impossible when connecting via the relay. */ - public static final int str_server_dict_wins=0x7f050190; + public static final int str_server_dict_wins=0x7f050191; /** Displayed when you try to commit a turn that is illegal because tiles played do not touch other tiles already on the board (or the middle/star square in the case of the initial @@ -6260,7 +6261,7 @@ XLATE-ME board (or the middle/star square in the case of the initial move.) */ - public static final int str_tiles_must_contact=0x7f050188; + public static final int str_tiles_must_contact=0x7f050189; /** error messages @@ -6290,7 +6291,7 @@ XLATE-ME because the tiles placed are not all in the same row or column. */ - public static final int str_tiles_not_in_line=0x7f050185; + public static final int str_tiles_not_in_line=0x7f050186; /** Displayed when you try to begin a trade but there are not seven or more tiles in the pool. The rules don't allow trading in this case. @@ -6303,7 +6304,7 @@ XLATE-ME seven or more tiles in the pool. The rules don't allow trading in this case. */ - public static final int str_too_few_tiles_left_to_trade=0x7f05018c; + public static final int str_too_few_tiles_left_to_trade=0x7f05018d; /** Displayed when you try to commit the first move of the game and are playing a single tile. The first move must include two or more tiles. @@ -6316,12 +6317,12 @@ XLATE-ME and are playing a single tile. The first move must include two or more tiles. */ - public static final int str_two_tiles_first_move=0x7f050187; + public static final int str_two_tiles_first_move=0x7f050188; /** Used in formatting final scores display Used in formatting final scores display [Winner] %s: %d */ - public static final int str_winner_fmt=0x7f050240; + public static final int str_winner_fmt=0x7f050241; /** Used in formatting game history (not move summaries since information about the current rack is hidden then) Used in formatting game history (not move summaries since @@ -6330,19 +6331,19 @@ XLATE-ME Used in formatting game history (not move summaries since information about the current rack is hidden then) */ - public static final int strd_cumulative_score_fmt=0x7f050106; + public static final int strd_cumulative_score_fmt=0x7f050107; /** Used in formatting game history and move summaries Used in formatting game history and move summaries + %1$d [all remaining tiles] Used in formatting game history and move summaries */ - public static final int strd_remaining_tiles_add_fmt=0x7f050103; + public static final int strd_remaining_tiles_add_fmt=0x7f050104; /** I don't know how this is used. :-) I don't know how this is used. :-) - %1$d [time] I don't know how this is used. :-) */ - public static final int strd_time_penalty_sub_fmt=0x7f050108; + public static final int strd_time_penalty_sub_fmt=0x7f050109; /** Used in formatting moves and history. The total score for one turn is substituted for %1$d. Used in formatting moves and history. The total score for @@ -6351,38 +6352,38 @@ XLATE-ME Used in formatting moves and history. The total score for one turn is substituted for %d. */ - public static final int strd_turn_score_fmt=0x7f050113; + public static final int strd_turn_score_fmt=0x7f050114; /** Used in formatting game history and move summaries Used in formatting game history and move summaries - %1$d [unused tiles] Used in formatting game history and move summaries */ - public static final int strd_unused_tiles_sub_fmt=0x7f050104; + public static final int strd_unused_tiles_sub_fmt=0x7f050105; /** Used in formatting game history and move summaries Used in formatting game history and move summaries move (from %1$s across)\n Used in formatting game history and move summaries */ - public static final int strs_move_across_fmt=0x7f05010a; + public static final int strs_move_across_fmt=0x7f05010b; /** Used in formatting game history and move summaries Used in formatting game history and move summaries move (from %1$s down)\n Used in formatting game history and move summaries */ - public static final int strs_move_down_fmt=0x7f05010b; + public static final int strs_move_down_fmt=0x7f05010c; /** Used in formatting game history and move summaries Used in formatting remote player move summaries Used in formatting game history and move summaries New tiles: %1$s Used in formatting game history and move summaries */ - public static final int strs_new_tiles_fmt=0x7f050105; + public static final int strs_new_tiles_fmt=0x7f050106; /** Used in formatting game history and move summaries Used in formatting game history and move summaries Rack at start: %1$s\n Used in formatting game history and move summaries */ - public static final int strs_tray_at_start_fmt=0x7f05010c; + public static final int strs_tray_at_start_fmt=0x7f05010d; /** title for window you get when you select menu with text board_menu_game_counts string name="str_robot_moved">El robot ha fet aquesta jugada:Robot provedl tento tah:Exchanged %1$s for %2$s. Used in formatting exchange move summaries */ - public static final int strss_traded_for_fmt=0x7f05010d; + public static final int strss_traded_for_fmt=0x7f05010e; /** Your words for: */ - public static final int study_langpick=0x7f05027c; + public static final int study_langpick=0x7f05027d; /** You have not yet saved any words into a studylist for %1$s. */ - public static final int study_no_lang_fmt=0x7f05027d; + public static final int study_no_lang_fmt=0x7f05027e; /** You have not yet saved any words into a studylist. */ - public static final int study_no_lists=0x7f05027e; + public static final int study_no_lists=0x7f05027f; /** Studylist for %1$s */ - public static final int studylist_title_fmt=0x7f05027b; + public static final int studylist_title_fmt=0x7f05027c; /** If substituting an existing same-language wordlist by choosing button_substdict user gets to choose from a list of wordlists. This is the title of that list. @@ -6426,19 +6427,19 @@ string name="str_robot_moved">Robot provedl tento tah:Game in play */ - public static final int summary_conn=0x7f0501f5; + public static final int summary_conn=0x7f0501f6; /** Game in play with %1$s */ - public static final int summary_conn_sms_fmt=0x7f050215; + public static final int summary_conn_sms_fmt=0x7f050216; /** Preference to control what's listed next to game name in the first line of a game summary in the main games-list screen, e.g., if the option is "Game Language", "English" in the @@ -6462,13 +6463,13 @@ string name="str_robot_moved">Robot provedl tento tah:Game over\u200C */ - public static final int summary_gameover=0x7f0501f4; + public static final int summary_gameover=0x7f0501f5; public static final int summary_invites_out=0x7f05008e; /** The display of each networked game includes one of three states it can be in in the process of connecting to the @@ -6523,27 +6524,27 @@ string name="str_robot_moved">Robot provedl tento tah:(GSM phones only) */ - public static final int summary_send_data_sms=0x7f0502ef; + public static final int summary_send_data_sms=0x7f0502f0; /** explanation of the above explanation of the above Sort racks whenever new tiles are added explanation of the above */ - public static final int summary_sort_tiles=0x7f050153; + public static final int summary_sort_tiles=0x7f050154; /** Offer to add to and display lists of words to remember */ - public static final int summary_studyon=0x7f050276; + public static final int summary_studyon=0x7f050277; /** Thumbnail size */ - public static final int summary_thumbsize=0x7f050269; + public static final int summary_thumbsize=0x7f05026a; /** Unconnected */ - public static final int summary_wait_guest=0x7f0501f3; + public static final int summary_wait_guest=0x7f0501f4; /** Waiting for connection[s] @@ -6551,7 +6552,7 @@ string name="str_robot_moved">Robot provedl tento tah:Robot provedl tento tah:Disabled */ - public static final int thumb_off=0x7f05026a; + public static final int thumb_off=0x7f05026b; /** color of the tiles' background color of the "crosshairs", lines drawn vertically and horizontally through the square the user is currently @@ -6574,19 +6575,19 @@ string name="str_robot_moved">Robot provedl tento tah:Tile background color of the tiles' background */ - public static final int tile_back=0x7f050145; + public static final int tile_back=0x7f050146; /** Pick for me */ - public static final int tilepick_all=0x7f0501dd; + public static final int tilepick_all=0x7f0501de; /** Undo last\u200C */ - public static final int tilepick_undo=0x7f0501dc; + public static final int tilepick_undo=0x7f0501dd; /** title of dialog brought up in response to the board_menu_game_left menu. The dialog lists all tiles remaining in the pool, i.e. not on the board or in the rack @@ -6601,14 +6602,14 @@ string name="str_robot_moved">Robot provedl tento tah:Communicate via */ - public static final int title_addrs_pref=0x7f0502c1; + public static final int title_addrs_pref=0x7f0502c2; /** ############################################################ # :Screens: @@ -6681,10 +6682,10 @@ string name="str_robot_moved">Robot provedl tento tah:Tap to look up */ - public static final int title_lookup=0x7f0501d1; + public static final int title_lookup=0x7f0501d2; /** Tap to look up or study */ - public static final int title_lookup_study=0x7f0501d2; + public static final int title_lookup_study=0x7f0501d3; /** ############################################################ # :Screens: @@ -6725,11 +6726,11 @@ string name="str_robot_moved">Robot provedl tento tah:Send SMS as data */ - public static final int title_send_data_sms=0x7f0502ee; + public static final int title_send_data_sms=0x7f0502ef; /** If this preference is checked, tiles in the rack will be re-ordered alphabetically whenever tiles are added, i.e. after ever move. @@ -6741,10 +6742,10 @@ string name="str_robot_moved">Robot provedl tento tah:Enable studylists */ - public static final int title_studyon=0x7f050275; + public static final int title_studyon=0x7f050276; /** title of dialog allowing user to pick tiles "face up". (This feature is not yet supported on Android.) @@ -6848,16 +6849,16 @@ string name="str_robot_moved">Robot provedl tento tah:Updates are available for one or more installed wordlists. Would you like to download the new version[s] of %1$s now? */ - public static final int update_dicts_fmt=0x7f0502ad; + public static final int update_dicts_fmt=0x7f0502ae; /** XLATE-ME Use defaults */ - public static final int use_defaults=0x7f0502c8; + public static final int use_defaults=0x7f0502c9; /** text of checkbox controlling whether there's a game timer text of checkbox. If this checkbox is checked, games created for network play will by default have the hint feature @@ -6873,35 +6874,35 @@ string name="str_robot_moved">Robot provedl tento tah:\u0020vs.\u0020 */ - public static final int vs_join=0x7f050111; + public static final int vs_join=0x7f050112; /** Button for alert with title above */ - public static final int waiting_invite_title=0x7f0502d5; + public static final int waiting_invite_title=0x7f0502d6; /** XLATE-ME Waiting for players */ - public static final int waiting_title=0x7f0502d4; + public static final int waiting_title=0x7f0502d5; /** XLATE-ME Bluetooth is currently off on this device. No moves will be sent via Bluetooth.\n\nYou can enable Bluetooth now, or later. */ - public static final int warn_bt_disabled=0x7f050236; + public static final int warn_bt_disabled=0x7f050237; /** XLATE-ME Every networked game must have at least one way of communicating. If you have no default connection options every new networked game will have to be configured manually. */ - public static final int warn_no_comms=0x7f0502da; + public static final int warn_no_comms=0x7f0502db; /** The number %1$s for %2$s is not a \"mobile\" number. Import anyway? */ - public static final int warn_nomobile_fmt=0x7f05020d; + public static final int warn_nomobile_fmt=0x7f05020e; /** Play via SMS is currently @@ -6914,31 +6915,31 @@ activer les parties par SMS, allez dans Paramètres->Paramètres des parties en réseau.) */ - public static final int warn_sms_disabled=0x7f050235; + public static final int warn_sms_disabled=0x7f050236; /** Are you certain this number is on an account with unlimited texting? Click cancel if you are not. */ - public static final int warn_unlimited=0x7f050216; - public static final int wifi_warning=0x7f05031c; + public static final int warn_unlimited=0x7f050217; + public static final int wifi_warning=0x7f05031d; /** First letters */ - public static final int word_search_hint=0x7f0501db; + public static final int word_search_hint=0x7f0501dc; /** Add option to every screen menu */ - public static final int xlations_enabled_summary=0x7f050288; + public static final int xlations_enabled_summary=0x7f050289; /** Enable local translating */ - public static final int xlations_enabled_title=0x7f050287; + public static final int xlations_enabled_title=0x7f050288; /** XLATE-ME Fake locale for translation */ - public static final int xlations_locale=0x7f0502fa; + public static final int xlations_locale=0x7f0502fb; /** Empty in English, this should contain the name of the translator/creator of the strings.xml file for this language @@ -6952,7 +6953,7 @@ réseau.) translator/creator of the strings.xml file for this language */ - public static final int xlator=0x7f0501c9; + public static final int xlator=0x7f0501ca; public static final int xwords_nfc_mime=0x7f05007c; } public static final class style { diff --git a/xwords4/android/XWords4/res/values/strings.xml b/xwords4/android/XWords4/res/values/strings.xml index 488b9cc86..9de1254b6 100644 --- a/xwords4/android/XWords4/res/values/strings.xml +++ b/xwords4/android/XWords4/res/values/strings.xml @@ -553,6 +553,10 @@ You have already invited %1$d players to this game. We are waiting for them to connect back. + This game was created from an + invitation you received. As soon as it is able to connect to the + sender and any other invitees have arrived play will + begin. Or just Tap to Invite -- if the other 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 fa31bb3d1..60bc7185f 100644 --- a/xwords4/android/XWords4/res_src/values-ba_CK/strings.xml +++ b/xwords4/android/XWords4/res_src/values-ba_CK/strings.xml @@ -471,6 +471,10 @@ Uoy evah ydaerla detivni %1$d sreyalp ot siht emag. Ew era gnitiaw rof meht ot tcennoc kcab. + Siht emag saw detaerc morf na + noitativni uoy deviecer. Sa noos sa ti si elba ot tcennoc ot eht + rednes dna yna rehto seetivni evah devirra yalp lliw + nigeb. Ro tsuj Pat ot Etivni -- fi eht rehto ecived osla sah Diordna Gnimaeb dna si ybraen. 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 dba418b84..2397db4fd 100644 --- a/xwords4/android/XWords4/res_src/values-ca_PS/strings.xml +++ b/xwords4/android/XWords4/res_src/values-ca_PS/strings.xml @@ -471,6 +471,10 @@ YOU HAVE ALREADY INVITED %1$d PLAYERS TO THIS GAME. WE ARE WAITING FOR THEM TO CONNECT BACK. + THIS GAME WAS CREATED FROM AN + INVITATION YOU RECEIVED. AS SOON AS IT IS ABLE TO CONNECT TO THE + SENDER AND ANY OTHER INVITEES HAVE ARRIVED PLAY WILL + BEGIN. OR JUST TAP TO INVITE -- IF THE OTHER DEVICE ALSO HAS ANDROID BEAMING AND IS NEARBY. 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 343f2e0c1..8999b7123 100644 --- a/xwords4/android/XWords4/src/org/eehouse/android/xw4/BoardDelegate.java +++ b/xwords4/android/XWords4/src/org/eehouse/android/xw4/BoardDelegate.java @@ -486,19 +486,19 @@ public class BoardDelegate extends DelegateBase AlertDialog ad = (AlertDialog)dialog; String message; int titleID; - boolean nukePosButton = false; + boolean nukeInviteButton = false; boolean nukeNeutButton = true; int buttonTxt = R.string.newgame_invite; if ( m_summary.hasRematchInfo() ) { titleID = R.string.info_title;; message = getString( R.string.rematch_msg ); - nukePosButton = true; + nukeInviteButton = true; } else { if ( !m_relayConnected ) { titleID = R.string.seeking_relay; // If relay is only means, don't allow at all boolean relayOnly = 1 >= m_connTypes.size(); - nukePosButton = relayOnly; + nukeInviteButton = relayOnly; message = getString( R.string.no_relay_conn ); if ( NetStateCache.netAvail( m_activity ) && NetStateCache.onWifi() ) { @@ -523,13 +523,17 @@ public class BoardDelegate extends DelegateBase nSent, nSent ); buttonTxt = R.string.button_reinvite; nukeNeutButton = false; + } else if ( DeviceRole.SERVER_ISCLIENT == m_gi.serverRole ) { + message = getString( R.string.invited_msg ); + titleID = R.string.waiting_title; + nukeInviteButton = true; } else { titleID = R.string.waiting_title; message = getQuantityString( R.plurals.invite_msg_fmt, m_nMissing, m_nMissing ); } - if ( ! haveSent ) { + if ( ! haveSent && ! nukeInviteButton ) { String ps = null; if ( m_nMissing > 1 ) { ps = getString( R.string.invite_multiple ); @@ -552,8 +556,8 @@ public class BoardDelegate extends DelegateBase ad.setTitle( titleID ); Button button = ad.getButton( AlertDialog.BUTTON_POSITIVE ); - button.setVisibility( nukePosButton ? View.GONE : View.VISIBLE ); - if ( !nukePosButton ) { + button.setVisibility( nukeInviteButton ? View.GONE : View.VISIBLE ); + if ( !nukeInviteButton ) { button.setText( buttonTxt ); } button = ad.getButton( AlertDialog.BUTTON_NEUTRAL ); From bb2ebe812824798463ce985c869972023adb9f1c Mon Sep 17 00:00:00 2001 From: Eric House Date: Mon, 11 Jan 2016 23:56:56 -0800 Subject: [PATCH 10/37] code cleanup --- .../src/org/eehouse/android/xw4/BTService.java | 17 ----------------- .../src/org/eehouse/android/xw4/GameUtils.java | 4 ++-- .../eehouse/android/xw4/GamesListDelegate.java | 5 ++--- 3 files changed, 4 insertions(+), 22 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 dbc0fd031..2cfe22f4a 100644 --- a/xwords4/android/XWords4/src/org/eehouse/android/xw4/BTService.java +++ b/xwords4/android/XWords4/src/org/eehouse/android/xw4/BTService.java @@ -271,23 +271,6 @@ public class BTService extends XWService { context.startService( intent ); } - // public static void inviteRemote( Context context, String btAddr, - // int gameID, String initialName, int lang, - // String dict, int nPlayersT, int nPlayersH ) - // { - // Intent intent = getIntentTo( context, INVITE ); - // intent.putExtra( GAMEID_KEY, gameID ); - // intent.putExtra( ADDR_KEY, btAddr ); - // Assert.assertNotNull( initialName ); - // intent.putExtra( GAMENAME_KEY, initialName ); - // intent.putExtra( LANG_KEY, lang ); - // intent.putExtra( DICT_KEY, dict ); - // intent.putExtra( NTO_KEY, nPlayersT ); - // intent.putExtra( NHE_KEY, nPlayersH ); - - // context.startService( intent ); - // } - public static void inviteRemote( Context context, String btAddr, NetLaunchInfo nli ) { 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 f18ec62db..d8beb89d1 100644 --- a/xwords4/android/XWords4/src/org/eehouse/android/xw4/GameUtils.java +++ b/xwords4/android/XWords4/src/org/eehouse/android/xw4/GameUtils.java @@ -469,8 +469,8 @@ public class GameUtils { addr, new int[] {nli.lang}, new String[] { nli.dict }, nli.nPlayersT, nli.nPlayersH, nli.forceChannel, - nli.inviteID(), nli.gameID(), nli.gameName, - false ); + nli.inviteID(), nli.gameID(), + nli.gameName, false ); } public static long makeNewMultiGame( Context context, long groupID, 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 a4b5702de..6006a3bf5 100644 --- a/xwords4/android/XWords4/src/org/eehouse/android/xw4/GamesListDelegate.java +++ b/xwords4/android/XWords4/src/org/eehouse/android/xw4/GamesListDelegate.java @@ -2045,9 +2045,8 @@ public class GamesListDelegate extends ListDelegateBase DBUtils.setName( m_activity, newid, gameName ); } else { long groupID = DBUtils.getGroupForGame( m_activity, srcRowID ); - newid = GameUtils.makeNewMultiGame( m_activity, groupID, - dict, lang, - addrs, gameName ); + newid = GameUtils.makeNewMultiGame( m_activity, groupID, dict, + lang, addrs, gameName ); DBUtils.addRematchInfo( m_activity, newid, btAddr, phone, relayID ); } From a1f590642a71b092bb5800dcc48d5c132345bc7a Mon Sep 17 00:00:00 2001 From: Eric House Date: Tue, 12 Jan 2016 00:09:34 -0800 Subject: [PATCH 11/37] don't write DB column that's never read, nor pass the value that was being written. --- .../src/org/eehouse/android/xw4/DBHelper.java | 5 ++--- .../src/org/eehouse/android/xw4/DBUtils.java | 9 --------- .../org/eehouse/android/xw4/GameUtils.java | 19 ++++++------------- 3 files changed, 8 insertions(+), 25 deletions(-) diff --git a/xwords4/android/XWords4/src/org/eehouse/android/xw4/DBHelper.java b/xwords4/android/XWords4/src/org/eehouse/android/xw4/DBHelper.java index fac3c5819..55545207d 100644 --- a/xwords4/android/XWords4/src/org/eehouse/android/xw4/DBHelper.java +++ b/xwords4/android/XWords4/src/org/eehouse/android/xw4/DBHelper.java @@ -70,7 +70,8 @@ public class DBHelper extends SQLiteOpenHelper { public static final String CONTYPE = "CONTYPE"; public static final String SERVERROLE = "SERVERROLE"; public static final String ROOMNAME = "ROOMNAME"; - public static final String INVITEID = "INVITEID"; + // written but never read; can go away + // public static final String INVITEID = "INVITEID"; public static final String RELAYID = "RELAYID"; public static final String SEED = "SEED"; public static final String SMSPHONE = "SMSPHONE"; // unused -- so far @@ -126,7 +127,6 @@ public class DBHelper extends SQLiteOpenHelper { ,{ SERVERROLE, "INTEGER" } ,{ CONTYPE, "INTEGER" } ,{ ROOMNAME, "TEXT" } - ,{ INVITEID, "TEXT" } ,{ RELAYID, "TEXT" } ,{ SEED, "INTEGER" } ,{ DICTLANG, "INTEGER" } @@ -254,7 +254,6 @@ public class DBHelper extends SQLiteOpenHelper { case 9: addSumColumn( db, DICTLIST ); case 10: - addSumColumn( db, INVITEID ); case 11: addSumColumn( db, REMOTEDEVS ); case 12: diff --git a/xwords4/android/XWords4/src/org/eehouse/android/xw4/DBUtils.java b/xwords4/android/XWords4/src/org/eehouse/android/xw4/DBUtils.java index d3d72c191..6a6e702f1 100644 --- a/xwords4/android/XWords4/src/org/eehouse/android/xw4/DBUtils.java +++ b/xwords4/android/XWords4/src/org/eehouse/android/xw4/DBUtils.java @@ -271,12 +271,6 @@ public class DBUtils { public static void saveSummary( Context context, GameLock lock, GameSummary summary ) - { - saveSummary( context, lock, summary, null ); - } - - public static void saveSummary( Context context, GameLock lock, - GameSummary summary, String inviteID ) { boolean needsTimer = false; Assert.assertTrue( lock.canWrite() ); @@ -305,9 +299,6 @@ public class DBUtils { values.put( DBHelper.NEXTNAG, nextNag ); values.put( DBHelper.DICTLIST, summary.dictNames(DICTS_SEP) ); - if ( null != inviteID ) { - values.put( DBHelper.INVITEID, inviteID ); - } if ( null != summary.scores ) { StringBuffer sb = new StringBuffer(); 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 d8beb89d1..3cfcc52a0 100644 --- a/xwords4/android/XWords4/src/org/eehouse/android/xw4/GameUtils.java +++ b/xwords4/android/XWords4/src/org/eehouse/android/xw4/GameUtils.java @@ -543,7 +543,7 @@ public class GameUtils { if ( DBUtils.ROWID_NOTFOUND != rowid ) { GameLock lock = new GameLock( rowid, true ).lock(); - applyChanges( context, sink, gi, util, addr, inviteID, lock, false ); + applyChanges( context, sink, gi, util, addr, lock, false ); lock.unlock(); } @@ -986,24 +986,17 @@ public class GameUtils { } // replaceDicts public static void applyChanges( Context context, CurGameInfo gi, - CommsAddrRec car, GameLock lock, + CommsAddrRec car, GameLock lock, boolean forceNew ) - { - applyChanges( context, gi, car, null, lock, forceNew ); - } - - public static void applyChanges( Context context, CurGameInfo gi, - CommsAddrRec car, String inviteID, - GameLock lock, boolean forceNew ) { applyChanges( context, (MultiMsgSink)null, gi, (UtilCtxt)null, car, - inviteID, lock, forceNew ); + lock, forceNew ); } public static void applyChanges( Context context, MultiMsgSink sink, CurGameInfo gi, UtilCtxt util, - CommsAddrRec car, String inviteID, - GameLock lock, boolean forceNew ) + CommsAddrRec car, GameLock lock, + boolean forceNew ) { // This should be a separate function, commitChanges() or // somesuch. But: do we have a way to save changes to a gi @@ -1049,7 +1042,7 @@ public class GameUtils { GameSummary summary = new GameSummary( context, gi ); XwJNI.game_summarize( gamePtr, summary ); - DBUtils.saveSummary( context, lock, summary, inviteID ); + DBUtils.saveSummary( context, lock, summary ); XwJNI.game_dispose( gamePtr ); } // applyChanges From dffaf2335efd952a4ea36edb35a2d5a01b19f967 Mon Sep 17 00:00:00 2001 From: Eric House Date: Wed, 13 Jan 2016 06:48:13 -0800 Subject: [PATCH 12/37] get rid of Dialog theme for invite activities for Dbg version too --- xwords4/android/XWords4-dbg/AndroidManifest.xml | 3 --- 1 file changed, 3 deletions(-) diff --git a/xwords4/android/XWords4-dbg/AndroidManifest.xml b/xwords4/android/XWords4-dbg/AndroidManifest.xml index 0f12e377d..f375ebade 100644 --- a/xwords4/android/XWords4-dbg/AndroidManifest.xml +++ b/xwords4/android/XWords4-dbg/AndroidManifest.xml @@ -98,18 +98,15 @@ From 26d0aedb8fafb3c4bf628247e356e442154e209b Mon Sep 17 00:00:00 2001 From: Eric House Date: Wed, 13 Jan 2016 07:58:59 -0800 Subject: [PATCH 13/37] Comment out apk-renaming stuff. It's confusing AS. --- xwords4/android/XWords4/app/build.gradle | 48 ++++++++++++------------ 1 file changed, 24 insertions(+), 24 deletions(-) diff --git a/xwords4/android/XWords4/app/build.gradle b/xwords4/android/XWords4/app/build.gradle index 6766c9cc8..87e878d6c 100644 --- a/xwords4/android/XWords4/app/build.gradle +++ b/xwords4/android/XWords4/app/build.gradle @@ -21,9 +21,9 @@ android { } // Rename all output artifacts to include version information - applicationVariants.all { variant -> - renameArtifact(variant) - } + // applicationVariants.all { variant -> + // renameArtifact(variant) + // } // flavorDimensions "variant", "abi" // productFlavors { @@ -185,25 +185,25 @@ tasks.whenTaskAdded { theTask -> } } -def getVersionName() { - try { - def stdout = new ByteArrayOutputStream() - exec { - commandLine 'git', 'describe', '--dirty' - standardOutput = stdout - } - return stdout.toString().trim() - } - catch (ignored) { - return null; - } -} +// def getVersionName() { +// try { +// def stdout = new ByteArrayOutputStream() +// exec { +// commandLine 'git', 'describe', '--dirty' +// standardOutput = stdout +// } +// return stdout.toString().trim() +// } +// catch (ignored) { +// return null; +// } +// } -def renameArtifact(variant) { - variant.outputs.each { output -> - def name = String.format( "XWords4-%s-%s.apk", variant.name, - getVersionName() ) - output.outputFile = new File( (String)output.outputFile.parent, - (String)name ) - } -} +// def renameArtifact(variant) { +// variant.outputs.each { output -> +// def name = String.format( "XWords4-%s-%s.apk", variant.name, +// getVersionName() ) +// output.outputFile = new File( (String)output.outputFile.parent, +// (String)name ) +// } +// } From 42574550d036bb4561437ca68c2d28b5b59347ca Mon Sep 17 00:00:00 2001 From: Eric House Date: Wed, 13 Jan 2016 07:59:46 -0800 Subject: [PATCH 14/37] move method next to others with same name --- .../org/eehouse/android/xw4/DwnldDelegate.java | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/xwords4/android/XWords4/src/org/eehouse/android/xw4/DwnldDelegate.java b/xwords4/android/XWords4/src/org/eehouse/android/xw4/DwnldDelegate.java index c9603482b..7471ae145 100644 --- a/xwords4/android/XWords4/src/org/eehouse/android/xw4/DwnldDelegate.java +++ b/xwords4/android/XWords4/src/org/eehouse/android/xw4/DwnldDelegate.java @@ -391,6 +391,15 @@ public class DwnldDelegate extends ListDelegateBase { downloadDictInBack( context, uri, name, lstnr ); } + public static void downloadDictInBack( Context context, Uri uri, + String name, + DownloadFinishedListener lstnr ) + { + Uri[] uris = new Uri[] { uri }; + String[] names = new String[] { name }; + downloadDictsInBack( context, uris, names, lstnr ); + } + public static void downloadDictsInBack( Context context, Uri[] uris, String[] names, DownloadFinishedListener lstnr ) @@ -406,15 +415,6 @@ public class DwnldDelegate extends ListDelegateBase { context.startActivity( intent ); } - public static void downloadDictInBack( Context context, Uri uri, - String name, - DownloadFinishedListener lstnr ) - { - Uri[] uris = new Uri[] { uri }; - String[] names = new String[] { name }; - downloadDictsInBack( context, uris, names, lstnr ); - } - public static Intent makeAppDownloadIntent( Context context, String url ) { Intent intent = new Intent( context, DwnldActivity.class ); From e98ba8d84aa85631bc1ed1a65e41c8cb7f292d69 Mon Sep 17 00:00:00 2001 From: Eric House Date: Wed, 13 Jan 2016 08:00:28 -0800 Subject: [PATCH 15/37] make explicitly public --- .../XWords4/src/org/eehouse/android/xw4/MultiService.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/xwords4/android/XWords4/src/org/eehouse/android/xw4/MultiService.java b/xwords4/android/XWords4/src/org/eehouse/android/xw4/MultiService.java index 4ab83eeec..a6c382e9a 100644 --- a/xwords4/android/XWords4/src/org/eehouse/android/xw4/MultiService.java +++ b/xwords4/android/XWords4/src/org/eehouse/android/xw4/MultiService.java @@ -159,7 +159,7 @@ public class MultiService { // resend the intent, but only if the dict it names is here. (If // it's not, we may need to try again later, e.g. because our cue // was a focus gain.) - static boolean returnOnDownload( Context context, Intent intent ) + public static boolean returnOnDownload( Context context, Intent intent ) { boolean downloaded = isMissingDictIntent( intent ); if ( downloaded ) { From bdafcfa91671f7e2a01a278525f113821e703928 Mon Sep 17 00:00:00 2001 From: Eric House Date: Wed, 13 Jan 2016 19:51:24 -0800 Subject: [PATCH 16/37] improve text around invitations --- xwords4/android/XWords4/archive/R.java | 1172 +++++++++-------- .../android/XWords4/res/values/strings.xml | 19 +- .../XWords4/res_src/values-ba_CK/strings.xml | 18 +- .../XWords4/res_src/values-ca_PS/strings.xml | 18 +- .../eehouse/android/xw4/BoardDelegate.java | 6 +- .../src/org/eehouse/android/xw4/DBUtils.java | 86 +- .../eehouse/android/xw4/jni/GameSummary.java | 2 +- 7 files changed, 712 insertions(+), 609 deletions(-) diff --git a/xwords4/android/XWords4/archive/R.java b/xwords4/android/XWords4/archive/R.java index 5bac935f2..b6c260c3b 100644 --- a/xwords4/android/XWords4/archive/R.java +++ b/xwords4/android/XWords4/archive/R.java @@ -628,7 +628,7 @@ string name="str_robot_moved">O robô fez esta jogada:\u0020 copyright info */ - public static final int about_copyright=0x7f0501c8; + public static final int about_copyright=0x7f0501cc; /** Another paragraph giving credit for work done other than by Eric House and translators Another paragraph giving credit for work done other than by @@ -637,7 +637,7 @@ string name="str_robot_moved">O robô fez esta jogada:\u0020O robô fez esta jogada:\u0020For a manual or sourcecode see: @@ -679,42 +679,42 @@ string name="str_robot_moved">O robô fez esta jogada:\u0020 Another paragraph in the about dialog */ - public static final int about_web=0x7f0501c9; + public static final int about_web=0x7f0501cd; /** %1$s added to %2$s studylist */ - public static final int add_done_fmt=0x7f05027b; + public static final int add_done_fmt=0x7f05027f; /** Add %1$s to studylist */ - public static final int add_to_study_fmt=0x7f050275; + public static final int add_to_study_fmt=0x7f050279; /** Debugging stuff. Localize if you think your langauge users will care. XLATE-ME For debugging */ - public static final int advanced=0x7f0502e6; + public static final int advanced=0x7f0502ea; /** This button takes you to the normal Game Configure screen This button takes you to the normal Game Configure screen Advanced game settings This button takes you to the normal Game Configure screen */ - public static final int advanced_config=0x7f050184; + public static final int advanced_config=0x7f050188; /** XLATE-ME You should never need these... */ - public static final int advanced_summary=0x7f0502e7; + public static final int advanced_summary=0x7f0502eb; /** The wordlist %1$s contains only tile information. There are no words to browse. */ - public static final int alert_empty_dict_fmt=0x7f0501e6; + public static final int alert_empty_dict_fmt=0x7f0501ea; public static final int app_name=0x7f050081; /** Unable to connect to Crosswords on the device %1$s. Please check that the device is within range and that Crosswords is installed on it. */ - public static final int app_not_found_fmt=0x7f0502c0; + public static final int app_not_found_fmt=0x7f0502c4; public static final int app_version=0x7f050000; /** the background color of the area outside the board, e.g. between entries in the scoreboard @@ -724,7 +724,7 @@ XLATE-ME the background color of the area outside the board, e.g. between entries in the scoreboard */ - public static final int background=0x7f050148; + public static final int background=0x7f05014c; /** Appended to the above in the phonies_warn case. User may ignore the warning Appended to the above in the phonies_warn case. User may @@ -734,7 +734,7 @@ XLATE-ME Appended to the above in the phonies_warn case. User may ignore the warning */ - public static final int badwords_accept=0x7f0500f3; + public static final int badwords_accept=0x7f0500f7; /** Appended to the above in the phonies_disallow case. User has lost his turn. Appended to the above in the phonies_disallow case. User has @@ -743,22 +743,22 @@ XLATE-ME Appended to the above in the phonies_disallow case. User has lost his turn. */ - public static final int badwords_lost=0x7f0500f4; + public static final int badwords_lost=0x7f0500f8; /** title of the dialog in which the above is posted. title of the dialog in which the above is posted. Illegal word[s] title of the dialog in which the above is posted. */ - public static final int badwords_title=0x7f0500f5; + public static final int badwords_title=0x7f0500f9; /** Blue */ - public static final int blue=0x7f05014c; + public static final int blue=0x7f050150; /** board menu for small devices only board menu for small devices only Browse wordlist board menu for small devices only */ - public static final int board_menu_dict=0x7f050221; + public static final int board_menu_dict=0x7f050225; /** ############################################################ # :Menus: @@ -787,7 +787,7 @@ XLATE-ME This menu commits the current move as it's been laid out on the board */ - public static final int board_menu_done=0x7f0500f6; + public static final int board_menu_done=0x7f0500fa; /** Brings up "About Crosswords" dialog Brings up "About Crosswords" dialog Brings up "About Crosswords" dialog @@ -798,7 +798,7 @@ XLATE-ME Email author */ - public static final int board_menu_file_email=0x7f0501eb; + public static final int board_menu_file_email=0x7f0501ef; /** menu on Game submenu: brings up dialog listing all tiles in the language of the game along with how many of each there are and how many points each is worth. This display is the @@ -813,7 +813,7 @@ XLATE-ME are and how many points each is worth. This display is the same throughout the game. */ - public static final int board_menu_game_counts=0x7f0500fc; + public static final int board_menu_game_counts=0x7f050100; /** Brings up explanation of the game's final score. If the game is not yet over, gives you a choice whether to end it now, and if you decline does nothing. @@ -825,13 +825,13 @@ XLATE-ME is not yet over, gives you a choice whether to end it now, and if you decline does nothing. */ - public static final int board_menu_game_final=0x7f0500ff; + public static final int board_menu_game_final=0x7f050103; /** Brings up listing of all moves played so far this game. Brings up listing of all moves played so far this game. Game history… Brings up listing of all moves played so far this game. */ - public static final int board_menu_game_history=0x7f0500fe; + public static final int board_menu_game_history=0x7f050102; /** menu on Game submenu: brings up dialog listing all tiles not yet played and not in the rack of the player whose rack is visible (whose turn it is, generally). This display will @@ -849,11 +849,11 @@ XLATE-ME change as tiles are used and depending on what player is asking. */ - public static final int board_menu_game_left=0x7f0500fd; + public static final int board_menu_game_left=0x7f050101; /** XLATE-ME Network stats */ - public static final int board_menu_game_netstats=0x7f0502f1; + public static final int board_menu_game_netstats=0x7f0502f5; /** Meaningful only for networked games, this menu causes all messages that have not yet been acknowledged by a remote device in the game to be resent. Eventually I hope to be @@ -871,19 +871,19 @@ XLATE-ME able to remove this from non-debug versions of the game because users should not have to do do this EVER. */ - public static final int board_menu_game_resend=0x7f050101; + public static final int board_menu_game_resend=0x7f050105; /** Resign */ - public static final int board_menu_game_resign=0x7f050100; + public static final int board_menu_game_resign=0x7f050104; /** Invite */ - public static final int board_menu_invite=0x7f05026e; + public static final int board_menu_invite=0x7f050272; /** Pass */ - public static final int board_menu_pass=0x7f0501d7; + public static final int board_menu_pass=0x7f0501db; /** This menu begins an exchange of tiles: puts the board into trade mode. This menu begins an exchange of tiles: puts the board into @@ -891,7 +891,7 @@ XLATE-ME This menu begins an exchange of tiles: puts the board into trade mode. */ - public static final int board_menu_trade=0x7f0500f7; + public static final int board_menu_trade=0x7f0500fb; /** hide and shows the tray. On devices where there is enough room for the full board and tray to be shown then hiding the tray just "turns it over", i.e. shows tiles with '?' @@ -905,14 +905,14 @@ XLATE-ME tray just "turns it over", i.e. shows tiles with '?' characters. */ - public static final int board_menu_tray_hide=0x7f0500f8; - public static final int board_menu_tray_show=0x7f0500f9; + public static final int board_menu_tray_hide=0x7f0500fc; + public static final int board_menu_tray_show=0x7f0500fd; /** Undo/Redo */ - public static final int board_menu_undo_current=0x7f05021b; + public static final int board_menu_undo_current=0x7f05021f; /** Undos the last *committed* turn. Note that this is different from the undo button that undoes or redoes an in-progress not-yet-committed turn. This is disabled for networked @@ -927,7 +927,7 @@ XLATE-ME not-yet-committed turn. This is disabled for networked games. */ - public static final int board_menu_undo_last=0x7f0500fa; + public static final int board_menu_undo_last=0x7f0500fe; /** preference for board size (15x15, 13x13 etc.) default new-game setting for handline phonies (words not found in the word list) @@ -946,7 +946,7 @@ XLATE-ME Board size preference for board size (15x15, 13x13 etc.) */ - public static final int board_size=0x7f05012f; + public static final int board_size=0x7f050133; /** Title of submenu Undos the last *committed* turn. Note that this is different from the undo button that undoes or redoes an in-progress @@ -959,7 +959,7 @@ XLATE-ME Title of submenu Title of submenu */ - public static final int board_submenu_game=0x7f0500fb; + public static final int board_submenu_game=0x7f0500ff; /** The remaining strings (down to the color edit dialog below) are showns as the names of editable colors and as the the title of the color editor that comes up when the name is @@ -977,7 +977,7 @@ XLATE-ME tapped. (color for) double-letter bonus squares on the board */ - public static final int bonus_l2x=0x7f050141; + public static final int bonus_l2x=0x7f050145; /** Bonus value hint that's displayed in gray text in the colored bonus square. Double-letter Bonus value hint that's displayed in gray text in the colored @@ -991,7 +991,7 @@ XLATE-ME Triple letter (color for) triple-letter bonus squares on the board */ - public static final int bonus_l3x=0x7f050142; + public static final int bonus_l3x=0x7f050146; /** Bonus value hint that's displayed in gray text in the colored bonus square. Triple-letter Bonus value hint that's displayed in gray text in the colored @@ -1005,7 +1005,7 @@ XLATE-ME Double word (color for) double-word squares on the board */ - public static final int bonus_w2x=0x7f050143; + public static final int bonus_w2x=0x7f050147; /** Bonus value hint that's displayed in gray text in the colored bonus square. Double-word Bonus value hint that's displayed in gray text in the colored @@ -1019,7 +1019,7 @@ XLATE-ME Triple word (color for) triple-word squares on the board */ - public static final int bonus_w3x=0x7f050144; + public static final int bonus_w3x=0x7f050148; /** Bonus value hint that's displayed in gray text in the colored bonus square. Triple-word Bonus value hint that's displayed in gray text in the colored @@ -1036,38 +1036,38 @@ XLATE-ME continue. */ - public static final int bt_bad_proto_fmt=0x7f0501fa; + public static final int bt_bad_proto_fmt=0x7f0501fe; /** Bluetooth sends to %1$s have failed too many times. Re-open the game to try again. */ - public static final int bt_fail_fmt=0x7f0501ff; + public static final int bt_fail_fmt=0x7f050203; /** Title of device picker during invitation to a game via Bluetooth Title of device picker during invitation to a game via Bluetooth Bluetooth Invitation */ - public static final int bt_invite_title=0x7f050201; + public static final int bt_invite_title=0x7f050205; /** You currently have no paired Bluetooth devices. Would you like to open the Android Settings Panel to add one or more?\n\n(You may also need to open it on the device you want to pair with.) */ - public static final int bt_no_devs=0x7f0502bf; + public static final int bt_no_devs=0x7f0502c3; /** Turn Bluetooth on In the Bluetooth invite device dialog In the Bluetooth invite device dialog Add all Paired */ - public static final int bt_pick_addall_button=0x7f0501ef; + public static final int bt_pick_addall_button=0x7f0501f3; /** Remove checked */ - public static final int bt_pick_clear_button=0x7f0501f0; + public static final int bt_pick_clear_button=0x7f0501f4; /** Bluetooth send to %1$s failed; retry %3$d in @@ -1076,7 +1076,7 @@ XLATE-ME %3$d dans %2$d secondes. */ - public static final int bt_resend_fmt=0x7f0501fe; + public static final int bt_resend_fmt=0x7f050202; /** text of button for adding new player to game text for separator above the list of players that's used for networked games. The numbers of local and non-local players @@ -1091,10 +1091,10 @@ XLATE-ME Close game The only button available when the above message is displayed */ - public static final int button_close_game=0x7f050195; + public static final int button_close_game=0x7f050199; /** Decline */ - public static final int button_decline=0x7f05024e; + public static final int button_decline=0x7f050252; /** @@ -1177,23 +1177,23 @@ XLATE-ME the other option, for discarding changes that would otherwise reset a game. */ - public static final int button_discard=0x7f0501a4; + public static final int button_discard=0x7f0501a8; /** XLATE-ME Discard changes */ - public static final int button_discard_changes=0x7f0502de; + public static final int button_discard_changes=0x7f0502e2; /** Done */ - public static final int button_done=0x7f0501d4; + public static final int button_done=0x7f0501d8; /** Done with %1$s */ - public static final int button_done_fmt=0x7f0501d5; + public static final int button_done_fmt=0x7f0501d9; /** Text of button displayed when downloading is an option This is an alternative message presented when there's also the option of downloading another wordlist. Game name, @@ -1213,27 +1213,27 @@ XLATE-ME Download Text of button displayed when downloading is an option */ - public static final int button_download=0x7f050198; + public static final int button_download=0x7f05019c; /** XLATE-ME Edit */ - public static final int button_edit=0x7f0502dd; - public static final int button_enable=0x7f050320; + public static final int button_edit=0x7f0502e1; + public static final int button_enable=0x7f050324; /** XLATE-ME Enable Bluetooth */ - public static final int button_enable_bt=0x7f050239; + public static final int button_enable_bt=0x7f05023d; /** XLATE-ME Enable SMS */ - public static final int button_enable_sms=0x7f050238; - public static final int button_go_settings=0x7f050270; + public static final int button_enable_sms=0x7f05023c; + public static final int button_go_settings=0x7f050274; /** Invite checked */ - public static final int button_invite=0x7f050200; + public static final int button_invite=0x7f050204; /** text of button to juggle (randomly rearrange order of) players text of button to juggle (randomly rearrange order of) players Shuffle players @@ -1243,7 +1243,7 @@ XLATE-ME /** XLATE-ME Later */ - public static final int button_later=0x7f05023a; + public static final int button_later=0x7f05023e; /** New strings that need to be documented and found a home above. New strings that need to be documented and found a home @@ -1252,25 +1252,25 @@ XLATE-ME New strings that need to be documented and found a home above. */ - public static final int button_lookup=0x7f0501ce; + public static final int button_lookup=0x7f0501d2; /** Look up %1$s */ - public static final int button_lookup_fmt=0x7f0501d0; + public static final int button_lookup_fmt=0x7f0501d4; /** Look up/study words */ - public static final int button_lookup_study=0x7f0501cf; + public static final int button_lookup_study=0x7f0501d3; /** Look up/study %1$s */ - public static final int button_lookup_study_fmt=0x7f0501d1; + public static final int button_lookup_study_fmt=0x7f0501d5; /** Move */ - public static final int button_move=0x7f0501d9; + public static final int button_move=0x7f0501dd; /** What is \u200C? English strings are used as keys, so they all need to be unique. This glyph is non-printing and of zero-width, so it should do the trick: @@ -1349,10 +1349,10 @@ XLATE-ME public static final int button_new_group=0x7f050086; /** New group */ - public static final int button_newgroup=0x7f0501da; + public static final int button_newgroup=0x7f0501de; /** No */ - public static final int button_no=0x7f0501a2; + public static final int button_no=0x7f0501a6; /** Text for button in new-user-info dialog with title just above. Text for button in new-user-info dialog with title just @@ -1361,14 +1361,14 @@ XLATE-ME Text for button in new-user-info dialog with title just above. */ - public static final int button_notagain=0x7f0501b0; + public static final int button_notagain=0x7f0501b4; /** Reconnect */ - public static final int button_reconnect=0x7f050260; - public static final int button_reinvite=0x7f0502d8; + public static final int button_reconnect=0x7f050264; + public static final int button_reinvite=0x7f0502dc; /** */ - public static final int button_relay_add=0x7f05020c; + public static final int button_relay_add=0x7f050210; /** Button shown in game over dialog triggering creation of new game with the same players and parameters as the one that just ended. @@ -1380,7 +1380,7 @@ XLATE-ME game with the same players and parameters as the one that just ended. */ - public static final int button_rematch=0x7f05025f; + public static final int button_rematch=0x7f050263; /** When you select the list_item_reset contextual menu, you are asked to confirm. This is the text of the first button ("Cancel" is the second). @@ -1403,7 +1403,7 @@ XLATE-ME connect to the relay failed because the room named does not exist. (I believe this no longer occurs.) */ - public static final int button_retry=0x7f0501a5; + public static final int button_retry=0x7f0501a9; /** ############################################################ # :Menus: @@ -1439,7 +1439,7 @@ XLATE-ME text of first menu item. Will revert all preferences to their default/original values */ - public static final int button_revert_all=0x7f050117; + public static final int button_revert_all=0x7f05011b; /** Second menu item. Reverts only the colors to their default/original values Second menu item. Reverts only the colors to their @@ -1448,26 +1448,26 @@ XLATE-ME Second menu item. Reverts only the colors to their default/original values */ - public static final int button_revert_colors=0x7f050119; + public static final int button_revert_colors=0x7f05011d; /** Used in Game config dialog to confirm saving changes that reset a game Used in Game config dialog to confirm saving changes that reset a game Save Used in Game config dialog to confirm saving changes that reset a game */ - public static final int button_save=0x7f0501a3; + public static final int button_save=0x7f0501a7; /** Find */ - public static final int button_search=0x7f0501db; + public static final int button_search=0x7f0501df; /** Import contact */ - public static final int button_sms_add=0x7f05020b; + public static final int button_sms_add=0x7f05020f; /** Text of button allowing user to choose to open with a different (but same-language wordlist) Text of button allowing user to choose to open with a @@ -1476,7 +1476,7 @@ XLATE-ME Text of button allowing user to choose to open with a different (but same-language wordlist) */ - public static final int button_substdict=0x7f050199; + public static final int button_substdict=0x7f05019d; /** Cancel trade */ public static final int button_trade_cancel=0x7f0500e0; @@ -1521,7 +1521,7 @@ XLATE-ME public static final int button_trade_commit=0x7f0500df; /** Button for alert with title above */ - public static final int button_wait=0x7f0502d7; + public static final int button_wait=0x7f0502db; /** ############################################################ # Dialogs @@ -1564,14 +1564,14 @@ XLATE-ME Text for buttons at the bottom of dialogs. These first are in many places. */ - public static final int button_yes=0x7f0501a1; + public static final int button_yes=0x7f0501a5; /** The group for new games, %1$s, cannot be deleted. */ - public static final int cannot_delete_default_group_fmt=0x7f05025e; + public static final int cannot_delete_default_group_fmt=0x7f050262; /** Move selected games to: */ - public static final int change_group=0x7f050263; + public static final int change_group=0x7f050267; /** text of button in About Crosswords dialog summoning above dialog text of button in About Crosswords dialog summoning above @@ -1580,7 +1580,7 @@ XLATE-ME text of button in About Crosswords dialog summoning above dialog */ - public static final int changes_button=0x7f0501cd; + public static final int changes_button=0x7f0501d1; /** text of dialog showing the set of changes made since the last release text of dialog showing the set of changes made since the last @@ -1589,13 +1589,13 @@ XLATE-ME text of dialog showing the set of changes made since the last release */ - public static final int changes_title=0x7f0501cc; + public static final int changes_title=0x7f0501d0; /** Prefix for local messages Prefix for local messages Me:\u0020 Prefix for local messages */ - public static final int chat_local_id=0x7f05017f; + public static final int chat_local_id=0x7f050183; /** ############################################################ # :Menus: @@ -1628,13 +1628,13 @@ XLATE-ME other devices in the game: no "clear chat" message is transmitted. */ - public static final int chat_menu_clear=0x7f050182; + public static final int chat_menu_clear=0x7f050186; /** Prefix for remote messages Prefix for remote messages Not me:\u0020 Prefix for remote messages */ - public static final int chat_other_id=0x7f050180; + public static final int chat_other_id=0x7f050184; /** Text on the button that causes the contents of the message-composition field to be sent. Text on the button that causes the contents of the @@ -1643,7 +1643,7 @@ XLATE-ME Text on the button that causes the contents of the message-composition field to be sent. */ - public static final int chat_send=0x7f050181; + public static final int chat_send=0x7f050185; /** ############################################################ # :Screens: # Chat screen @@ -1685,20 +1685,20 @@ XLATE-ME title of the chat screen. The name of the current game is substituted for %s. */ - public static final int chat_title_fmt=0x7f05017e; + public static final int chat_title_fmt=0x7f050182; /** Checking for wordlists in %1$s… */ - public static final int checking_for_fmt=0x7f050317; + public static final int checking_for_fmt=0x7f05031b; /** Checking */ - public static final int checking_title=0x7f050316; + public static final int checking_title=0x7f05031a; /** Everything is up-to-date. */ - public static final int checkupdates_none_found=0x7f05023c; + public static final int checkupdates_none_found=0x7f050240; /** EXPERIMENTAL: "label" for invite on clipboard. If it's shown it's by some Android utility */ - public static final int clip_label=0x7f050329; + public static final int clip_label=0x7f05032d; /** color of the "crosshairs", lines drawn vertically and horizontally through the square the user is currently touching in order to guide the fat-fingered (most of us) in @@ -1716,15 +1716,15 @@ XLATE-ME operations that require accurately selecting a single square on the board. */ - public static final int clr_crosshairs=0x7f050145; + public static final int clr_crosshairs=0x7f050149; /** XLATE-ME This game has no way to connect and cannot be saved. Would you like to discard your changes, or edit to give it a way to connect? */ - public static final int config_no_connvia=0x7f0502dc; - public static final int confirm_clear_chat=0x7f05032b; - public static final int confirm_clear_relay=0x7f050213; + public static final int config_no_connvia=0x7f0502e0; + public static final int confirm_clear_chat=0x7f05032f; + public static final int confirm_clear_relay=0x7f050217; /** Additional text appended to text confirm_delete_dictf in the wordlist delete confiration dialog in the case where the wordlist to be deleted is the last in its language. The name @@ -1735,28 +1735,28 @@ XLATE-ME of the language is substituted for %1$s. */ public static final int confirm_deleteonly_dicts_fmt=0x7f0500aa; - public static final int confirm_drop_relay=0x7f05031c; - public static final int confirm_drop_relay_bt=0x7f05031e; - public static final int confirm_drop_relay_sms=0x7f05031f; + public static final int confirm_drop_relay=0x7f050320; + public static final int confirm_drop_relay_bt=0x7f050322; + public static final int confirm_drop_relay_sms=0x7f050323; /** Your device is set up for %1$s. Would you like to download a wordlist so you can play Crosswords in %1$s? */ - public static final int confirm_get_locdict_fmt=0x7f0502e5; + public static final int confirm_get_locdict_fmt=0x7f0502e9; /** Text of confirmation dialog for above Text of confirmation dialog for above Are you sure you want to restore all settings to their original values? Text of confirmation dialog for above */ - public static final int confirm_revert_all=0x7f05011a; + public static final int confirm_revert_all=0x7f05011e; /** Text of confirmation dialog for above Text of confirmation dialog for above Are you sure you want to restore all color settings to their original values? Text of confirmation dialog for above */ - public static final int confirm_revert_colors=0x7f050118; + public static final int confirm_revert_colors=0x7f05011c; /** title of confirmation dialog put up when user has unlocked an in-progress game and wants to save changes (has hit the play button). @@ -1812,37 +1812,37 @@ XLATE-ME enabled? */ - public static final int confirm_sms_expl=0x7f050231; + public static final int confirm_sms_expl=0x7f050235; /** No: leave disabled */ - public static final int confirm_sms_leave=0x7f050233; + public static final int confirm_sms_leave=0x7f050237; /** Enable play via SMS? */ - public static final int confirm_sms_prompt=0x7f050232; + public static final int confirm_sms_prompt=0x7f050236; /** Confirm your SMS plan */ - public static final int confirm_sms_title=0x7f050230; + public static final int confirm_sms_title=0x7f050234; /** Yes: I have unlimited texting */ - public static final int confirm_sms_unlimited=0x7f050234; + public static final int confirm_sms_unlimited=0x7f050238; /** Yes: I\'ll pay all carrier charges */ - public static final int confirm_sms_willpay=0x7f050235; + public static final int confirm_sms_willpay=0x7f050239; /** text of dialog shown when the menu item board_menu_undo_last is chosen. text of dialog shown when the menu item board_menu_undo_last @@ -1852,16 +1852,16 @@ XLATE-ME text of dialog shown when the menu item board_menu_undo_last is chosen. */ - public static final int confirm_undo_last=0x7f050115; + public static final int confirm_undo_last=0x7f050119; /** Once every day */ - public static final int connect_daily=0x7f050164; + public static final int connect_daily=0x7f050168; /** Every 15 minutes */ - public static final int connect_fifteen_mins=0x7f050160; + public static final int connect_fifteen_mins=0x7f050164; /** Every 5 minutes */ - public static final int connect_five_mins=0x7f05015f; + public static final int connect_five_mins=0x7f050163; /** ############################################################ # :Screens: @@ -1897,7 +1897,7 @@ XLATE-ME new moves available and fetches them. This controls how frequently that check is done. */ - public static final int connect_frequency=0x7f05015d; + public static final int connect_frequency=0x7f050161; /** text of separator marking out the connection area of the dialog XLATE-ME Connection (via %1$s) @@ -1914,7 +1914,7 @@ XLATE-ME */ - public static final int connect_label_sms=0x7f050214; + public static final int connect_label_sms=0x7f050218; /** These are the possible values for the connect_frequency setting presented as a drop-down list. These are the possible values for the connect_frequency @@ -1923,83 +1923,83 @@ XLATE-ME These are the possible values for the connect_frequency setting presented as a drop-down list. */ - public static final int connect_never=0x7f05015e; + public static final int connect_never=0x7f050162; /** Every hour */ - public static final int connect_one_hour=0x7f050162; + public static final int connect_one_hour=0x7f050166; /** Every six hours */ - public static final int connect_six_hours=0x7f050163; + public static final int connect_six_hours=0x7f050167; /** Every 30 minutes */ - public static final int connect_thirty_mins=0x7f050161; + public static final int connect_thirty_mins=0x7f050165; /** XLATE-ME Change Communicate via */ - public static final int connection_via_label=0x7f0502d2; + public static final int connection_via_label=0x7f0502d6; /** (Last failure was %1$s) */ - public static final int connstat_lastother_succ_fmt=0x7f050228; + public static final int connstat_lastother_succ_fmt=0x7f05022c; /** (Last successful send was %1$s) */ - public static final int connstat_lastother_unsucc_fmt=0x7f050229; + public static final int connstat_lastother_unsucc_fmt=0x7f05022d; /** Last receipt was %1$s */ - public static final int connstat_lastreceipt_fmt=0x7f05022a; + public static final int connstat_lastreceipt_fmt=0x7f05022e; /** Last send was %1$s (%2$s) */ - public static final int connstat_lastsend_fmt=0x7f050227; + public static final int connstat_lastsend_fmt=0x7f05022b; /** Network status for game connected via %1$s: */ - public static final int connstat_net_fmt=0x7f050224; - public static final int connstat_net_noaddr=0x7f050223; + public static final int connstat_net_fmt=0x7f050228; + public static final int connstat_net_noaddr=0x7f050227; /** No messages have been received. */ - public static final int connstat_noreceipt=0x7f05022b; + public static final int connstat_noreceipt=0x7f05022f; /** internet/relay */ - public static final int connstat_relay=0x7f05022c; + public static final int connstat_relay=0x7f050230; /** sms/texting */ - public static final int connstat_sms=0x7f05022d; + public static final int connstat_sms=0x7f050231; /** successful */ - public static final int connstat_succ=0x7f050225; + public static final int connstat_succ=0x7f050229; /** unsuccessful */ - public static final int connstat_unsucc=0x7f050226; + public static final int connstat_unsucc=0x7f05022a; /** title of dialog brought up in response to the board_menu_game_counts menu. The dialog lists all tiles in the language being used for the game together with how many @@ -2014,31 +2014,31 @@ XLATE-ME the language being used for the game together with how many of each there are are and how many points each is worth. */ - public static final int counts_values_title=0x7f0501aa; + public static final int counts_values_title=0x7f0501ae; /** %1$s (in use) */ - public static final int cur_menu_marker_fmt=0x7f05026d; + public static final int cur_menu_marker_fmt=0x7f050271; /** Tile picker\n(so far: %1$s) */ - public static final int cur_tiles_fmt=0x7f0501df; + public static final int cur_tiles_fmt=0x7f0501e3; /** SMS Data is only available on GSM phones. */ - public static final int data_gsm_only=0x7f05028a; + public static final int data_gsm_only=0x7f05028e; /** SD card write complete. */ - public static final int db_store_done=0x7f050318; + public static final int db_store_done=0x7f05031c; /** XLATE-ME Enable debug features */ - public static final int debug_features=0x7f0502ed; + public static final int debug_features=0x7f0502f1; /** XLATE-ME Menuitems etc. (release builds only) */ - public static final int debug_features_summary=0x7f0502ee; + public static final int debug_features_summary=0x7f0502f2; /** dictionary used by default for human players when creating new game clarification of above @@ -2058,7 +2058,7 @@ XLATE-ME dictionary used by default for human players when creating new game */ - public static final int default_dict=0x7f050127; + public static final int default_dict=0x7f05012b; /** other */ public static final int default_host=0x7f05007b; @@ -2066,13 +2066,13 @@ XLATE-ME label within default wordlists in app preferences Default language */ - public static final int default_language=0x7f0502c1; + public static final int default_language=0x7f0502c5; /** Store wordlists internally */ - public static final int default_loc=0x7f050251; + public static final int default_loc=0x7f050255; /** (Not in external/sdcard memory) */ - public static final int default_loc_summary=0x7f050252; + public static final int default_loc_summary=0x7f050256; /** Welcome dialog text Welcome dialog text Thanks for installing @@ -2081,7 +2081,7 @@ XLATE-ME game default\" section of Settings.) Welcome dialog text */ - public static final int default_name_message=0x7f0501c6; + public static final int default_name_message=0x7f0501ca; /** ########################################################### # :Dialogs: @@ -2123,7 +2123,7 @@ XLATE-ME Welcome dialog title */ - public static final int default_name_title=0x7f0501c5; + public static final int default_name_title=0x7f0501c9; /** default new-game setting for handline phonies (words not found in the word list) default new-game setting for handline phonies (words not @@ -2132,7 +2132,7 @@ XLATE-ME default new-game setting for handline phonies (words not found in the word list) */ - public static final int default_phonies=0x7f05012d; + public static final int default_phonies=0x7f050131; /** dictionary used by default for robot players when creating new game dictionary used by default for robot players when creating @@ -2141,12 +2141,12 @@ XLATE-ME dictionary used by default for robot players when creating new game */ - public static final int default_robodict=0x7f050128; + public static final int default_robodict=0x7f05012c; public static final int default_update_url=0x7f050080; /** Delete wordlist[s] */ - public static final int delete_dicts=0x7f0502ac; - public static final int devid_title=0x7f0502f4; + public static final int delete_dicts=0x7f0502b0; + public static final int devid_title=0x7f0502f8; /** Playing via SMS is currently disabled. You can enable it in Settings->Network game settings. @@ -2157,14 +2157,14 @@ XLATE-ME */ - public static final int dft_sms_name_fmt=0x7f050209; + public static final int dft_sms_name_fmt=0x7f05020d; /** No word in %1$s starts with %2$s. */ - public static final int dict_browse_nowords_fmt=0x7f0501e3; + public static final int dict_browse_nowords_fmt=0x7f0501e7; /** %1$s (%2$d words using %3$d @@ -2172,7 +2172,7 @@ XLATE-ME %1$s (%2$d mots utilisant %3$d jetons) */ - public static final int dict_browse_title1_fmt=0x7f0501e2; + public static final int dict_browse_title1_fmt=0x7f0501e6; /** %1$s (%2$d words using %3$d-%4$d @@ -2181,18 +2181,18 @@ XLATE-ME %4$d jetons) */ - public static final int dict_browse_title_fmt=0x7f0501e1; + public static final int dict_browse_title_fmt=0x7f0501e5; /** %1$s (%2$s/%3$d words) */ - public static final int dict_desc_fmt=0x7f0502b3; + public static final int dict_desc_fmt=0x7f0502b7; /** XLATE-ME Wordlist download URL */ - public static final int dict_host=0x7f0502ea; + public static final int dict_host=0x7f0502ee; /** Number of words: %1$d\nDownload size: %2$dK\nNote: %3$s */ - public static final int dict_info_fmt=0x7f0502b0; + public static final int dict_info_fmt=0x7f0502b4; /** label for dropdown by which wordlist is chosen that this player will use. The language the game will use (which constrains the choice of wordlists) is substituted in for @@ -2210,7 +2210,7 @@ XLATE-ME public static final int dict_lang_label_fmt=0x7f0500db; /** Tap to download */ - public static final int dict_on_server=0x7f0502b2; + public static final int dict_on_server=0x7f0502b6; /** string name="invite_mime">text/plainDo not notify me no matter how long it\'s been my turn */ - public static final int disable_nag_summary=0x7f0502e3; + public static final int disable_nag_summary=0x7f0502e7; /** Disable turn reminders */ - public static final int disable_nag_title=0x7f0502e2; - public static final int disable_nags_title=0x7f0502e1; + public static final int disable_nag_title=0x7f0502e6; + public static final int disable_nags_title=0x7f0502e5; /** text of item at bottom of dicts choice spinner. It launches the browser pointed at the site where additional wordlists can be found. @@ -2326,23 +2326,23 @@ XLATE-ME public static final int download_dicts=0x7f0500a5; /** Download finished */ - public static final int download_done=0x7f05024f; + public static final int download_done=0x7f050253; /** Download unsuccessful */ - public static final int download_failed=0x7f050250; + public static final int download_failed=0x7f050254; /** Downloads Directory */ - public static final int download_path_title=0x7f050253; + public static final int download_path_title=0x7f050257; /** Downloading %1$s… */ - public static final int downloading_dict_fmt=0x7f050192; - public static final int drop_relay_warning_fmt=0x7f05031b; + public static final int downloading_dict_fmt=0x7f050196; + public static final int drop_relay_warning_fmt=0x7f05031f; /** Display snapshots of games Display snapshots of games Invitation received but ignored: it has already been used to create a game. */ - public static final int dropped_dupe=0x7f05026c; + public static final int dropped_dupe=0x7f050270; /** Shown in the main screen when you launch Crosswords from an invitation (received in email or messaging app, say) and there's already a game running that matches that invitation. @@ -2368,13 +2368,13 @@ XLATE-ME the same room name over and over so they'll get this warning and it's harmless to ignore it. */ - public static final int dup_game_query_fmt=0x7f0501a6; + public static final int dup_game_query_fmt=0x7f0501aa; /** Send comment via */ - public static final int email_author_chooser=0x7f0501ed; + public static final int email_author_chooser=0x7f0501f1; /** Nor is my email address */ public static final int email_author_email=0x7f05007a; @@ -2383,22 +2383,22 @@ XLATE-ME Should not be translated */ - public static final int email_author_subject=0x7f0501ec; + public static final int email_author_subject=0x7f0501f0; /** Should not be translated */ - public static final int email_body_rev_fmt=0x7f0501ee; + public static final int email_body_rev_fmt=0x7f0501f2; /** color of empty squares on the board (that are not bonus squares) color of empty squares on the board (that are not bonus squares) Empty cell/background color of empty squares on the board (that are not bonus squares) */ - public static final int empty=0x7f050147; + public static final int empty=0x7f05014b; /** */ - public static final int empty_relay_inviter=0x7f050210; + public static final int empty_relay_inviter=0x7f050214; /** Shows in SMS Invite dialog when no phone numbers have been saved previously Shows in SMS Invite dialog when no phone numbers have been saved previously This phone list is empty. Use the @@ -2406,58 +2406,58 @@ XLATE-ME button to enter numbers directly. */ - public static final int empty_sms_inviter=0x7f05020f; + public static final int empty_sms_inviter=0x7f050213; /** XLATE-ME Accept invitations more than once */ - public static final int enable_dupes_summary=0x7f0502fc; + public static final int enable_dupes_summary=0x7f050300; /** XLATE-ME Accept duplicate invites */ - public static final int enable_dupes_title=0x7f0502fa; + public static final int enable_dupes_title=0x7f0502fe; /** NFC is turned off on this device. You can use the Android Settings app to turn it on . */ - public static final int enable_nfc=0x7f05026f; + public static final int enable_nfc=0x7f050273; /** XLATE-ME Fake invitation to aid debugging */ - public static final int enable_nfc_toself_summary=0x7f0502ff; + public static final int enable_nfc_toself_summary=0x7f050303; /** XLATE-ME Enable NFC to self */ - public static final int enable_nfc_toself_title=0x7f0502fe; + public static final int enable_nfc_toself_title=0x7f050302; /** XLATE-ME Rooms others can see and join */ - public static final int enable_pubroom_summary=0x7f0502d1; + public static final int enable_pubroom_summary=0x7f0502d5; /** XLATE-ME Enable public rooms */ - public static final int enable_pubroom_title=0x7f0502d0; - public static final int enable_relay_toself_summary=0x7f050327; - public static final int enable_relay_toself_title=0x7f050326; + public static final int enable_pubroom_title=0x7f0502d4; + public static final int enable_relay_toself_summary=0x7f05032b; + public static final int enable_relay_toself_title=0x7f05032a; /** Allow games via SMS */ - public static final int enable_sms=0x7f05022e; + public static final int enable_sms=0x7f050232; /** Only if you have unlimited texting! */ - public static final int enable_sms_summary=0x7f05022f; + public static final int enable_sms_summary=0x7f050233; /** XLATE-ME Skip radio when phone numbers same */ - public static final int enable_sms_toself_summary=0x7f050301; + public static final int enable_sms_toself_summary=0x7f050305; /** XLATE-ME Short-circuit SMS to self */ - public static final int enable_sms_toself_title=0x7f050300; + public static final int enable_sms_toself_title=0x7f050304; /** Tap tiles to select… */ public static final int entering_trade=0x7f0500e1; @@ -2466,11 +2466,11 @@ XLATE-ME device \"%1$s\" has already accepted an invitation to this game. */ - public static final int err_dup_invite_fmt=0x7f0502cb; + public static final int err_dup_invite_fmt=0x7f0502cf; /** XLATE-ME Update checks URL */ - public static final int expl_update_url=0x7f05030b; + public static final int expl_update_url=0x7f05030f; /** if this preference is checked, a dialog will be posted every time a robot makes a move or a move is received from a remote player. @@ -2487,15 +2487,15 @@ XLATE-ME time a robot makes a move or a move is received from a remote player. */ - public static final int explain_robot=0x7f05014f; + public static final int explain_robot=0x7f050153; /** explanation of the above explanation of the above Display score summary after every robot or remote turn explanation of the above */ - public static final int explain_robot_summary=0x7f050150; - public static final int fetching_from_relay=0x7f05032d; + public static final int explain_robot_summary=0x7f050154; + public static final int fetching_from_relay=0x7f050331; /** title of dialog brought up in response to the board_menu_game_final menu. The dialog displays the final score and an accounting of it (including subtractions for @@ -2513,7 +2513,7 @@ XLATE-ME running out the game timer if there is one.) */ - public static final int finalscores_title=0x7f0501ac; + public static final int finalscores_title=0x7f0501b0; /** Explanatory text appears in the dialog Explanatory text appears in the dialog In a multi-device game there must be at @@ -2525,13 +2525,13 @@ XLATE-ME /** XLATE-ME Pretend to have radio */ - public static final int force_radio_title=0x7f050302; + public static final int force_radio_title=0x7f050306; /** Even if my screen is too small */ - public static final int force_tablet_summary=0x7f0502b7; + public static final int force_tablet_summary=0x7f0502bb; /** Force tablet layout */ - public static final int force_tablet_title=0x7f0502b6; + public static final int force_tablet_title=0x7f0502ba; /** ############################################################ # :Dialogs: @@ -2601,7 +2601,7 @@ XLATE-ME */ - public static final int game_btname_title=0x7f050204; + public static final int game_btname_title=0x7f050208; /** used to create default names of games (when user has not named them.) used to create default names of games (when user has not @@ -2612,7 +2612,7 @@ XLATE-ME used to create default names of games (when user has not named them.) */ - public static final int game_fmt=0x7f05019c; + public static final int game_fmt=0x7f0501a0; /** ############################################################ # :Menus: @@ -2644,7 +2644,7 @@ XLATE-ME Building game summary… */ - public static final int game_list_tmp=0x7f050222; + public static final int game_list_tmp=0x7f050226; /** text of checkbox at top of dialog allowing to unlock in-play game to make changes text of checkbox at top of dialog allowing to unlock in-play @@ -2656,17 +2656,17 @@ XLATE-ME public static final int game_locked=0x7f0500b5; /** Name group */ - public static final int game_name_group_title=0x7f05025d; + public static final int game_name_group_title=0x7f050261; /** XLATE-ME New game name: */ - public static final int game_name_label=0x7f050206; + public static final int game_name_label=0x7f05020a; /** XLATE-ME Name your game */ - public static final int game_name_title=0x7f050205; + public static final int game_name_title=0x7f050209; /** @@ -2677,31 +2677,31 @@ XLATE-ME \u003CNothing\u003E Put nothing in the summary space, so it just reads "Game 2" */ - public static final int game_summary_field_empty=0x7f050133; + public static final int game_summary_field_empty=0x7f050137; /** XLATE-ME gameid */ - public static final int game_summary_field_gameid=0x7f050309; + public static final int game_summary_field_gameid=0x7f05030d; /** Put the language there, so it reads "Game 2 (English)" Put the language there, so it reads "Game 2 (English)" Game language\u200C Put the language there, so it reads "Game 2 (English)" */ - public static final int game_summary_field_language=0x7f050134; + public static final int game_summary_field_language=0x7f050138; /** XLATE-ME Pending packet count */ - public static final int game_summary_field_npackets=0x7f05030a; + public static final int game_summary_field_npackets=0x7f05030e; /** List names of opponents (summarized), e.g. "Game 2 (vs Kati)" List names of opponents (summarized), e.g. "Game 2 (vs Kati)" Opponent name[s] List names of opponents (summarized), e.g. "Game 2 (vs Kati)" */ - public static final int game_summary_field_opponents=0x7f050135; + public static final int game_summary_field_opponents=0x7f050139; /** XLATE-ME rowid */ - public static final int game_summary_field_rowid=0x7f050308; + public static final int game_summary_field_rowid=0x7f05030c; /** List the state of the game, "Game over" or "10 moves made" etc. List the state of the game, "Game over" or "10 moves made" @@ -2710,7 +2710,7 @@ XLATE-ME List the state of the game, "Game over" or "10 moves made" etc. */ - public static final int game_summary_field_state=0x7f050136; + public static final int game_summary_field_state=0x7f05013a; /** Regardless of the setting of the connect_frequency preference, checks the relay immediately for any moves for networked games on this device and posts a notification if @@ -2730,7 +2730,7 @@ XLATE-ME Check for updates */ - public static final int gamel_menu_checkupdates=0x7f05023b; + public static final int gamel_menu_checkupdates=0x7f05023f; /** ############################################################ # :Menus: @@ -2773,46 +2773,46 @@ XLATE-ME /** XLATE-ME Load DB from SD card */ - public static final int gamel_menu_loaddb=0x7f0502f9; + public static final int gamel_menu_loaddb=0x7f0502fd; /** XLATE-ME %1$s/%2$s XLATE-ME Write DB to SD card */ - public static final int gamel_menu_storedb=0x7f0502f8; + public static final int gamel_menu_storedb=0x7f0502fc; /** Studylist… */ - public static final int gamel_menu_study=0x7f050278; - public static final int get_relay_number=0x7f050212; + public static final int gamel_menu_study=0x7f05027c; + public static final int get_relay_number=0x7f050216; /** Enter phone number: */ - public static final int get_sms_number=0x7f050211; + public static final int get_sms_number=0x7f050215; /** Get info */ - public static final int getinfo=0x7f0502ab; + public static final int getinfo=0x7f0502af; public static final int git_rev=0x7f050082; /** XLATE-ME Source version id */ - public static final int git_rev_title=0x7f0502f3; + public static final int git_rev_title=0x7f0502f7; /** Don\'t try a second time */ - public static final int got_langdict_summary=0x7f05030d; + public static final int got_langdict_summary=0x7f050311; /** Fetch default wordlist for language */ - public static final int got_langdict_title=0x7f05030c; + public static final int got_langdict_title=0x7f050310; /** Green */ - public static final int green=0x7f05014b; + public static final int green=0x7f05014f; /** My games */ - public static final int group_cur_games=0x7f05025a; + public static final int group_cur_games=0x7f05025e; /** New games */ - public static final int group_new_games=0x7f05025b; + public static final int group_new_games=0x7f05025f; /** Used as the default name for remote players displayed within the Game configure screen Final state: game is over. @@ -2863,25 +2863,25 @@ XLATE-ME large enough screens that they always know where they're tapping. */ - public static final int hide_crosshairs=0x7f050159; + public static final int hide_crosshairs=0x7f05015d; /** explanation of the above explanation of the above Do not visually indicate which board cell is touched explanation of the above */ - public static final int hide_crosshairs_summary=0x7f05015a; + public static final int hide_crosshairs_summary=0x7f05015e; /** clarification of above XLATE-ME Hiding the newgame buttons in the main screen makes more games visible */ - public static final int hide_newgames_summary=0x7f05013a; + public static final int hide_newgames_summary=0x7f05013e; /** Checkbox that when set prevents showing the newgame buttons on the main screen to save space XLATE-ME Hide newgame buttons */ - public static final int hide_newgames_title=0x7f050139; + public static final int hide_newgames_title=0x7f05013d; /** Checkbox that when set prevents showing a title bar in the game board window to save space Checkbox that when set prevents showing a title bar in the @@ -2890,14 +2890,14 @@ XLATE-ME Checkbox that when set prevents showing a title bar in the game board window to save space */ - public static final int hide_title=0x7f050137; + public static final int hide_title=0x7f05013b; /** clarification of above clarification of above Hiding the game name lets the board be slightly larger clarification of above */ - public static final int hide_title_summary=0x7f050138; + public static final int hide_title_summary=0x7f05013c; /** text of checkbox. If this checkbox is checked, buttons will appear by which the user can get high- and low-scoring moves generated based on his tray. Can be used to cheat. @@ -2921,7 +2921,7 @@ XLATE-ME default to having the hint feature enabled(string elsewhere in this file) */ - public static final int hints_allowed_sum=0x7f050129; + public static final int hints_allowed_sum=0x7f05012d; /** title of dialog brought up in response to the board_menu_game_history menu. A full history of the game up to the last turn is displayed, though details about what's in @@ -2936,7 +2936,7 @@ XLATE-ME to the last turn is displayed, though details about what's in players' racks is left out if the game is not yet over. */ - public static final int history_title=0x7f0501ab; + public static final int history_title=0x7f0501af; /** Partial text of alert posted when phonies_warn or phonies_disallow is the current setting and a "phony" is played. One of the two following strings will be appended @@ -2958,7 +2958,7 @@ XLATE-ME played. One of the two following strings will be appended */ - public static final int ids_badwords_fmt=0x7f0500f2; + public static final int ids_badwords_fmt=0x7f0500f6; /** text of confirmation dialog shown when user chooses the menu item with text board_menu_game_final and the game is not over @@ -2970,7 +2970,7 @@ XLATE-ME item with text board_menu_game_final and the game is not over */ - public static final int ids_endnow=0x7f0501ad; + public static final int ids_endnow=0x7f0501b1; /** Title of generic dialog used to display information If the dropdown is selected, this is the title displayed above the list of selectable items. The language the game @@ -2983,7 +2983,7 @@ XLATE-ME FYI… Title of generic dialog used to display information */ - public static final int info_title=0x7f0501a7; + public static final int info_title=0x7f0501ab; /** You are using the wordlist @@ -2991,7 +2991,7 @@ XLATE-ME too? */ - public static final int inform_dict_diffdict_fmt=0x7f050246; + public static final int inform_dict_diffdict_fmt=0x7f05024a; /** You and the host of this @@ -3000,14 +3000,14 @@ XLATE-ME Used in formatting final scores display */ - public static final int inform_dict_diffversion_fmt=0x7f050244; + public static final int inform_dict_diffversion_fmt=0x7f050248; /** \u0020(You will have to download it first.) */ - public static final int inform_dict_download=0x7f050247; + public static final int inform_dict_download=0x7f05024b; /** Wordlist mismatch */ - public static final int inform_dict_title=0x7f050245; + public static final int inform_dict_title=0x7f050249; /** Will new games, on default, randomly rearrange the start order of players. Will new games, on default, randomly rearrange the start @@ -3016,13 +3016,13 @@ XLATE-ME Will new games, on default, randomly rearrange the start order of players. */ - public static final int init_autojuggle=0x7f05012b; + public static final int init_autojuggle=0x7f05012f; /** clarification on above clarification on above Randomly, for new games clarification on above */ - public static final int init_autojuggle_sum=0x7f05012c; + public static final int init_autojuggle_sum=0x7f050130; /** default number of minutes on timer for new games clarification of the above @@ -3036,15 +3036,19 @@ XLATE-ME Timer minutes per player default number of minutes on timer for new games */ - public static final int initial_player_minutes=0x7f05012e; - public static final int invite_choice_bt=0x7f050174; - public static final int invite_choice_email=0x7f050173; + public static final int initial_player_minutes=0x7f050132; + public static final int invit_expl_bt_fmt=0x7f0500eb; + public static final int invit_expl_notarget_fmt=0x7f0500ed; + public static final int invit_expl_relay_fmt=0x7f0500ec; + public static final int invit_expl_sms_fmt=0x7f0500ea; + public static final int invite_choice_bt=0x7f050178; + public static final int invite_choice_email=0x7f050177; /** Email Bluetooth NFC (\"Android beaming\") */ - public static final int invite_choice_nfc=0x7f050175; - public static final int invite_choice_relay=0x7f050176; + public static final int invite_choice_nfc=0x7f050179; + public static final int invite_choice_relay=0x7f05017a; /** EXPLAIN ME Bluetooth is not available. This may mean that your device doesn\'t support it, or that it\'s been @@ -3057,11 +3061,11 @@ XLATE-ME explanation/guidance. SMS (texting) */ - public static final int invite_choice_sms=0x7f050172; + public static final int invite_choice_sms=0x7f050176; /** Inviting players: How? */ - public static final int invite_choice_title=0x7f050177; - public static final int invite_chooser_email=0x7f05017c; + public static final int invite_choice_title=0x7f05017b; + public static final int invite_chooser_email=0x7f050180; /** When I've created the invitation, in text or html, I ask Android to launch an app that can send it, typically an email or messaging app. Android then asks the user to choose which @@ -3082,30 +3086,30 @@ XLATE-ME to have launched. This string is passed to Android and used as the title of the dialog that presents that choice. */ - public static final int invite_chooser_fmt=0x7f05017b; + public static final int invite_chooser_fmt=0x7f05017f; /** email sms */ - public static final int invite_chooser_sms=0x7f05017d; + public static final int invite_chooser_sms=0x7f050181; /** EXPERIMENTAL: Shown as toast when user chooses "My choice" for invitation */ - public static final int invite_copied=0x7f050328; + public static final int invite_copied=0x7f05032c; /** %1$s has invited you to play Crosswords using the wordlist %2$s (for play in %3$s), but it is not installed. Would you like to download the wordlist or decline the invitation? */ - public static final int invite_dict_missing_body_fmt=0x7f05024c; + public static final int invite_dict_missing_body_fmt=0x7f050250; /** You have been invited to play Crosswords using the wordlist %2$s (for play in %3$s), but it is not installed. Would you like to download the wordlist? */ - public static final int invite_dict_missing_body_noname_fmt=0x7f05024d; + public static final int invite_dict_missing_body_noname_fmt=0x7f050251; /** Missing wordlist */ - public static final int invite_dict_missing_title=0x7f05024b; + public static final int invite_dict_missing_title=0x7f05024f; public static final int invite_host=0x7f05007d; /** This is the body of the html version of the invitation. A URL is created with parameters describing the game and @@ -3132,7 +3136,7 @@ XLATE-ME encodings for the greater-than and less-than symbols which are not legal in xml strings.) */ - public static final int invite_htm_fmt=0x7f050179; + public static final int invite_htm_fmt=0x7f05017d; /** Appended to message above if local device has NFC available Appended to message above if local device has NFC available (Or just Tap to Invite - if the @@ -3143,11 +3147,11 @@ XLATE-ME /** XLATE-ME Invite more than one player per remote device */ - public static final int invite_multi_summary=0x7f0502cf; + public static final int invite_multi_summary=0x7f0502d3; /** XLATE-ME Invite multiple */ - public static final int invite_multi_title=0x7f0502ce; + public static final int invite_multi_title=0x7f0502d2; /** Most users create games with only two players, which is the default, but Crosswords supports up to four. When I'm using the above string to encourage the opener of a game missing @@ -3171,23 +3175,23 @@ XLATE-ME /** */ - public static final int invite_notice_title=0x7f0501f7; + public static final int invite_notice_title=0x7f0501fb; public static final int invite_prefix=0x7f050084; /** Sending invitation to Crosswords on %1$s */ - public static final int invite_progress_fmt=0x7f0501f2; + public static final int invite_progress_fmt=0x7f0501f6; /** Connecting... */ - public static final int invite_progress_title=0x7f0501f1; + public static final int invite_progress_title=0x7f0501f5; /** XLATE-ME (This dialog will stay up until all remote players have connected. You can close the game if you expect it to take a while. They will still be able to connect.) */ - public static final int invite_stays=0x7f0502d9; + public static final int invite_stays=0x7f0502dd; /** Send invitation using SMS (texting) or via email? Send invitation using NFC (Android @@ -3219,7 +3223,7 @@ XLATE-ME This is the subject line of the email/text sent to invite someone to join a game. */ - public static final int invite_subject_fmt=0x7f050178; + public static final int invite_subject_fmt=0x7f05017c; /** This is the body of the text version of the invitation. A URL is created with parameters describing the game and substituted for "%1$s". @@ -3232,7 +3236,7 @@ XLATE-ME is created with parameters describing the game and substituted for "%1$s". */ - public static final int invite_txt_fmt=0x7f05017a; + public static final int invite_txt_fmt=0x7f05017e; public static final int invited_msg=0x7f0500e7; /** text of checkbox asking if user wants to search for open public rooms @@ -3258,13 +3262,13 @@ XLATE-ME users to think about a move without having to touch the screen all the time. */ - public static final int keep_screenon=0x7f05013d; + public static final int keep_screenon=0x7f050141; /** clarification of above clarification of above Keep board screen on 10 mins clarification of above */ - public static final int keep_screenon_summary=0x7f05013e; + public static final int keep_screenon_summary=0x7f050142; public static final int key_addrs_pref=0x7f05003e; public static final int key_background=0x7f05001a; public static final int key_board_size=0x7f050029; @@ -3280,7 +3284,7 @@ XLATE-ME the color of text, e.g. "2L", shown on a bonus square on the board */ - public static final int key_bonushint=0x7f050149; + public static final int key_bonushint=0x7f05014d; public static final int key_bt_addrs=0x7f050040; /** database keys whose entries aren't visible prefs */ @@ -3416,44 +3420,44 @@ XLATE-ME different wordlists.) */ public static final int lang_label=0x7f0500ba; - public static final int lang_name_arabic=0x7f050295; - public static final int lang_name_catalan=0x7f05029c; - public static final int lang_name_czech=0x7f05029f; - public static final int lang_name_danish=0x7f050299; - public static final int lang_name_dutch=0x7f05029b; - public static final int lang_name_english=0x7f050291; - public static final int lang_name_french=0x7f050292; - public static final int lang_name_german=0x7f050293; - public static final int lang_name_greek=0x7f0502a0; - public static final int lang_name_italian=0x7f05029a; - public static final int lang_name_polish=0x7f050298; - public static final int lang_name_portuguese=0x7f05029d; - public static final int lang_name_russian=0x7f05029e; - public static final int lang_name_slovak=0x7f0502a1; - public static final int lang_name_spanish=0x7f050296; - public static final int lang_name_swedish=0x7f050297; - public static final int lang_name_turkish=0x7f050294; + public static final int lang_name_arabic=0x7f050299; + public static final int lang_name_catalan=0x7f0502a0; + public static final int lang_name_czech=0x7f0502a3; + public static final int lang_name_danish=0x7f05029d; + public static final int lang_name_dutch=0x7f05029f; + public static final int lang_name_english=0x7f050295; + public static final int lang_name_french=0x7f050296; + public static final int lang_name_german=0x7f050297; + public static final int lang_name_greek=0x7f0502a4; + public static final int lang_name_italian=0x7f05029e; + public static final int lang_name_polish=0x7f05029c; + public static final int lang_name_portuguese=0x7f0502a1; + public static final int lang_name_russian=0x7f0502a2; + public static final int lang_name_slovak=0x7f0502a5; + public static final int lang_name_spanish=0x7f05029a; + public static final int lang_name_swedish=0x7f05029b; + public static final int lang_name_turkish=0x7f050298; /** Unknown */ - public static final int lang_unknown=0x7f0502b4; + public static final int lang_unknown=0x7f0502b8; /** Game language/wordlist */ public static final int langdict_label=0x7f0500bb; /** Put new games here */ - public static final int list_group_default=0x7f050257; + public static final int list_group_default=0x7f05025b; /** Delete group */ - public static final int list_group_delete=0x7f050255; + public static final int list_group_delete=0x7f050259; /** Move down */ - public static final int list_group_movedown=0x7f050259; + public static final int list_group_movedown=0x7f05025d; /** Move up */ - public static final int list_group_moveup=0x7f050258; + public static final int list_group_moveup=0x7f05025c; /** Rename */ - public static final int list_group_rename=0x7f050256; + public static final int list_group_rename=0x7f05025a; /** ############## menu items ############## pulls up dialog to configure the selected game Used to format game name plus some other information as the @@ -3490,7 +3494,7 @@ XLATE-ME pulls up dialog to delete the selected game */ public static final int list_item_delete=0x7f05009c; - public static final int list_item_deselect=0x7f050330; + public static final int list_item_deselect=0x7f050334; /** pulls up dialog to change the group of the selected game pulls up dialog to change the group of the selected game pulls up dialog to change the group of the selected game @@ -3529,18 +3533,18 @@ XLATE-ME except for any configuration. */ public static final int list_item_reset=0x7f05009d; - public static final int list_item_select=0x7f05032f; + public static final int list_item_select=0x7f050333; /** formatting for last move summary in notifications formatting for last move summary in notifications %1$s passed (0 points) */ - public static final int lmi_pass_fmt=0x7f0502bc; + public static final int lmi_pass_fmt=0x7f0502c0; /** %1$s lost a turn */ - public static final int lmi_phony_fmt=0x7f0502bd; + public static final int lmi_phony_fmt=0x7f0502c1; /** Tiles assigned to %1$s */ - public static final int lmi_tiles_fmt=0x7f0502be; + public static final int lmi_tiles_fmt=0x7f0502c2; /** One of the strings used in the right column of the list of installed wordlists to describe those that are part of Crosswords and that cannot be uninstalled or moved. @@ -3582,24 +3586,24 @@ XLATE-ME public static final int loc_external=0x7f0500b1; /** All */ - public static final int loc_filters_all=0x7f05028d; + public static final int loc_filters_all=0x7f050291; /** Latest menu */ - public static final int loc_filters_menu=0x7f05028f; + public static final int loc_filters_menu=0x7f050293; /** Modified by me */ - public static final int loc_filters_modified=0x7f050290; + public static final int loc_filters_modified=0x7f050294; /** Filter by: */ - public static final int loc_filters_prompt=0x7f05028b; + public static final int loc_filters_prompt=0x7f05028f; /** Latest screen */ - public static final int loc_filters_screen=0x7f05028e; + public static final int loc_filters_screen=0x7f050292; /** Illegal translation: a translated string must have the same format specifiers (e.g. %1$s) as the original. */ - public static final int loc_fmts_mismatch=0x7f0502a6; + public static final int loc_fmts_mismatch=0x7f0502aa; /** see move_dictf above see move_dictf above see move_dictf above @@ -3607,30 +3611,30 @@ XLATE-ME public static final int loc_internal=0x7f0500b0; /** Check */ - public static final int loc_item_check=0x7f0502a3; + public static final int loc_item_check=0x7f0502a7; /** for loc item edit menu for loc item edit menu Clear */ - public static final int loc_item_clear=0x7f0502a2; + public static final int loc_item_clear=0x7f0502a6; /** Copy official */ - public static final int loc_item_copy_bless=0x7f0502a5; + public static final int loc_item_copy_bless=0x7f0502a9; /** Copy English */ - public static final int loc_item_copy_eng=0x7f0502a4; + public static final int loc_item_copy_eng=0x7f0502a8; /** %1$s (official) */ - public static final int loc_lang_blessed=0x7f050286; + public static final int loc_lang_blessed=0x7f05028a; /** %1$s (yours) */ - public static final int loc_lang_local=0x7f050287; + public static final int loc_lang_local=0x7f05028b; /** Translate */ - public static final int loc_menu_xlate=0x7f050285; + public static final int loc_menu_xlate=0x7f050289; /** Search for: */ - public static final int loc_search_prompt=0x7f05028c; + public static final int loc_search_prompt=0x7f050290; /** This is the "hint" printed in light text in the empty player name field ############################################################ @@ -3677,60 +3681,60 @@ XLATE-ME This is the "hint" printed in light text in the empty player name field */ - public static final int local_name_hint=0x7f050183; + public static final int local_name_hint=0x7f050187; /** XLATE-ME Enable logging */ - public static final int logging_on=0x7f0502eb; + public static final int logging_on=0x7f0502ef; /** XLATE-ME (release builds only) */ - public static final int logging_on_summary=0x7f0502ec; + public static final int logging_on_summary=0x7f0502f0; /** Word lookup */ - public static final int lookup_title=0x7f050281; + public static final int lookup_title=0x7f050285; /** (Not in contacts) */ - public static final int manual_owner_name=0x7f05020d; + public static final int manual_owner_name=0x7f050211; /** Max length */ - public static final int max_len=0x7f0501e8; + public static final int max_len=0x7f0501ec; /** Chat */ - public static final int menu_chat=0x7f05021f; + public static final int menu_chat=0x7f050223; /** Flip board */ - public static final int menu_flip=0x7f05021d; + public static final int menu_flip=0x7f050221; /** Next hint */ - public static final int menu_hint_next=0x7f05021a; + public static final int menu_hint_next=0x7f05021e; /** Prev hint */ - public static final int menu_hint_prev=0x7f050219; + public static final int menu_hint_prev=0x7f05021d; /** Juggle rack */ - public static final int menu_juggle=0x7f05021c; + public static final int menu_juggle=0x7f050220; /** text of menu that brings up the Settings (preferences) dialog text of menu that brings up the Settings (preferences) dialog text of menu that brings up the Settings (preferences) dialog @@ -3738,25 +3742,25 @@ XLATE-ME public static final int menu_prefs=0x7f050093; /** Rate Crosswords */ - public static final int menu_rateme=0x7f050273; + public static final int menu_rateme=0x7f050277; /** Toggle values */ - public static final int menu_toggle_values=0x7f050220; + public static final int menu_toggle_values=0x7f050224; /** Zoom in/out */ - public static final int menu_zoom=0x7f05021e; + public static final int menu_zoom=0x7f050222; /** Min length */ - public static final int min_len=0x7f0501e7; + public static final int min_len=0x7f0501eb; /** label for the field used to set the timer's inital value label for the field used to set the timer's inital value Minutes per player @@ -3769,14 +3773,14 @@ XLATE-ME wordslist that's not installed Tap to download missing wordlist */ - public static final int missing_dict_detail=0x7f05024a; + public static final int missing_dict_detail=0x7f05024e; /** Title of notification shown when invitation requires a wordslist that's not installed Title of notification shown when invitation requires a wordslist that's not installed Game invitation pending */ - public static final int missing_dict_title=0x7f050249; + public static final int missing_dict_title=0x7f05024d; /** Used as a substitute for the names of remote players when they aren't available yet because the connection is not complete. Displayed in the lists of players found in each @@ -3856,7 +3860,7 @@ XLATE-ME Text of dialog. Player name is substituted */ - public static final int msg_ask_password_fmt=0x7f05019b; + public static final int msg_ask_password_fmt=0x7f05019f; /** When a game has been connected and the relay is notified that a device in the game has deleted its part of the game, this message is posted when you connect your end of it to the @@ -3879,27 +3883,27 @@ XLATE-ME game so you might as well delete it (unless you're saving it for its history etc.) */ - public static final int msg_dev_deleted=0x7f0500f1; + public static final int msg_dev_deleted=0x7f0500f5; /** (I believe this can no longer occur) (I believe this can no longer occur) Another host has already registered a room using that name. Rename yours or retry later. (I believe this can no longer occur) */ - public static final int msg_dup_room=0x7f0500ef; + public static final int msg_dup_room=0x7f0500f3; /** (I believe this can no longer occur) (I believe this can no longer occur) The relay has lost contact with another device in this game. (I believe this can no longer occur) */ - public static final int msg_lost_other=0x7f0500f0; + public static final int msg_lost_other=0x7f0500f4; /** (I believe this can no longer occur) (I believe this can no longer occur) No host has registered a room by that name. (I believe this can no longer occur) */ - public static final int msg_no_room=0x7f0500ee; + public static final int msg_no_room=0x7f0500f2; /** Text of "toast" shown when a game is notified by the relay that all expected players have registered. At this point play can begin. @@ -3912,14 +3916,14 @@ XLATE-ME that all expected players have registered. At this point play can begin. */ - public static final int msg_relay_all_here_fmt=0x7f0500eb; + public static final int msg_relay_all_here_fmt=0x7f0500ef; /** (I believe this can no longer occur) (I believe this can no longer occur) You are providing more players than the host expects. (I believe this can no longer occur) */ - public static final int msg_too_many=0x7f0500ed; + public static final int msg_too_many=0x7f0500f1; /** Text of progress indicator shown while check is being conducted Text of progress indicator shown while check is being conducted Text of progress indicator shown while check is being conducted @@ -3927,26 +3931,26 @@ XLATE-ME public static final int msgs_progress=0x7f050095; /** %1$s moved more than %2$s ago. */ - public static final int nag_body_fmt=0x7f0502b9; + public static final int nag_body_fmt=0x7f0502bd; /** XLATE-ME Reminder intervals (minutes1,minutes2,...) */ - public static final int nag_intervals=0x7f0502fd; + public static final int nag_intervals=0x7f050301; /** Nagging: title of notification reminder message Nagging: title of notification reminder message Reminder: It\'s your turn */ - public static final int nag_title=0x7f0502b8; + public static final int nag_title=0x7f0502bc; /** above is inserted in this the last time I warn above is inserted in this the last time I warn Last warning: %1$s */ - public static final int nag_warn_last_fmt=0x7f0502ba; + public static final int nag_warn_last_fmt=0x7f0502be; /** XLATE-ME %1$s copy */ - public static final int name_copy_fmt=0x7f050207; - public static final int name_dict_fmt=0x7f0502f7; + public static final int name_copy_fmt=0x7f05020b; + public static final int name_dict_fmt=0x7f0502fb; public static final int nbs_port=0x7f050083; /** text of checkbox. If this checkbox is checked, games created for network play will by default have the hint feature @@ -3971,41 +3975,41 @@ XLATE-ME will default to having the hint feature enabled(string elsewhere in this file) */ - public static final int nethints_allowed_sum=0x7f05012a; + public static final int nethints_allowed_sum=0x7f05012e; /** XLATE-ME Game network stats */ - public static final int netstats_title=0x7f0502f2; + public static final int netstats_title=0x7f0502f6; /** XLATE-ME For experienced players */ - public static final int network_advanced_summary=0x7f0502cd; + public static final int network_advanced_summary=0x7f0502d1; /** XLATE-ME Advanced */ - public static final int network_advanced_title=0x7f0502cc; + public static final int network_advanced_title=0x7f0502d0; /** Network game settings */ - public static final int network_behavior=0x7f05015b; + public static final int network_behavior=0x7f05015f; /** explanation of the above explanation of the above Settings that apply to networked games explanation of the above */ - public static final int network_behavior_summary=0x7f05015c; + public static final int network_behavior_summary=0x7f050160; /** Tap to download and install */ - public static final int new_app_avail=0x7f050240; + public static final int new_app_avail=0x7f050244; /** New version of %1$s */ - public static final int new_app_avail_fmt=0x7f05023f; + public static final int new_app_avail_fmt=0x7f050243; /** New game via Bluetooth @@ -4014,61 +4018,61 @@ XLATE-ME */ - public static final int new_bt_body_fmt=0x7f0501f8; + public static final int new_bt_body_fmt=0x7f0501fc; /** */ - public static final int new_btmove_title=0x7f0501fc; + public static final int new_btmove_title=0x7f050200; /** New wordlist available */ - public static final int new_dict_avail=0x7f05023d; + public static final int new_dict_avail=0x7f050241; /** Tap to update %1$s */ - public static final int new_dict_avail_fmt=0x7f05023e; + public static final int new_dict_avail_fmt=0x7f050242; /** XLATE-ME New one-device game */ - public static final int new_game=0x7f0502c3; + public static final int new_game=0x7f0502c7; /** XLATE-ME Would you like to create this game using default settings?\n\nOr would you like to configure it first? */ - public static final int new_game_message=0x7f0502c6; + public static final int new_game_message=0x7f0502ca; /** XLATE-ME (You will have a chance to invite other players when it is open.) */ - public static final int new_game_message_net=0x7f0502c8; + public static final int new_game_message_net=0x7f0502cc; /** XLATE-ME This game must be configured before it can be opened. */ - public static final int new_game_message_nodflt=0x7f0502c7; + public static final int new_game_message_nodflt=0x7f0502cb; /** XLATE-ME New networked game */ - public static final int new_game_networked=0x7f0502c4; + public static final int new_game_networked=0x7f0502c8; /** One or more moves has arrived */ - public static final int new_move_body=0x7f0501fd; + public static final int new_move_body=0x7f050201; /** %1$s has invited you to play */ - public static final int new_name_body_fmt=0x7f05020a; - public static final int new_relay_body=0x7f0501f9; + public static final int new_name_body_fmt=0x7f05020e; + public static final int new_relay_body=0x7f0501fd; /** hint (text shown when field is empty) for room name field hint (text shown when field is empty) for room name field Room name @@ -4110,7 +4114,7 @@ XLATE-ME Title of New user info dialog */ - public static final int newbie_title=0x7f0501af; + public static final int newbie_title=0x7f0501b3; /** section separator (white-on-gray bar) for third section: bluetooth games section separator (white-on-gray bar) for third section: @@ -4119,15 +4123,15 @@ XLATE-ME section separator (white-on-gray bar) for third section: bluetooth games */ - public static final int newgame_bt_header=0x7f050171; + public static final int newgame_bt_header=0x7f050175; /** Text of second of two buttons for new standalone games. Tap this and you'll get taken to the "Game configure" screen Text of second of two buttons for new standalone games. Tap this and you'll get taken to the "Game configure" screen Configure first */ - public static final int newgame_configure_first=0x7f05016b; - public static final int newgame_drop_relay=0x7f050170; + public static final int newgame_configure_first=0x7f05016f; + public static final int newgame_drop_relay=0x7f050174; /** Text of first of two buttons for new networked games. Tap this and a game will be created, but you probably won't see it immediately because an email or messaging app will be @@ -4142,8 +4146,8 @@ XLATE-ME it immediately because an email or messaging app will be launched to send your invitation. */ - public static final int newgame_invite=0x7f05016e; - public static final int newgame_invite_more=0x7f05016f; + public static final int newgame_invite=0x7f050172; + public static final int newgame_invite_more=0x7f050173; /** Text of first of two buttons for new standalone games. Tap this and a new game will be created and opened. If the first player is a robot it will immediately take its turn. @@ -4155,7 +4159,7 @@ XLATE-ME this and a new game will be created and opened. If the first player is a robot it will immediately take its turn. */ - public static final int newgame_local=0x7f05016a; + public static final int newgame_local=0x7f05016e; /** This is one of two descriptions on this screen. It explains what standalone games are and describes the two buttons used to create them. The name of the language of the default @@ -4174,7 +4178,7 @@ XLATE-ME to create them. The name of the language of the default wordlist is substituted in for %1$s. */ - public static final int newgame_local_desc_fmt=0x7f050169; + public static final int newgame_local_desc_fmt=0x7f05016d; /** ############################################################ # :Screens: # New game screen @@ -4213,7 +4217,7 @@ XLATE-ME section separator (white-on-gray bar) for first section: standalone games */ - public static final int newgame_local_header=0x7f050168; + public static final int newgame_local_header=0x7f05016c; /** This is the second of two descriptions on this screen. It explains what networked games are and describes the two buttons used to create them. @@ -4230,7 +4234,7 @@ XLATE-ME explains what networked games are and describes the two buttons used to create them. */ - public static final int newgame_networked_desc=0x7f05016d; + public static final int newgame_networked_desc=0x7f050171; /** section separator (white-on-gray bar) for second section: networked games section separator (white-on-gray bar) for second section: @@ -4239,7 +4243,7 @@ XLATE-ME section separator (white-on-gray bar) for second section: networked games */ - public static final int newgame_networked_header=0x7f05016c; + public static final int newgame_networked_header=0x7f050170; /** New SMS Game @@ -4247,16 +4251,16 @@ XLATE-ME */ - public static final int newgame_sms_header=0x7f050208; + public static final int newgame_sms_header=0x7f05020c; /** Name your new group: */ - public static final int newgroup_label=0x7f050254; + public static final int newgroup_label=0x7f050258; /** XLATE-ME To invite via NFC just touch the back of this device against the one you want to invite—any time the game is open. */ - public static final int nfc_just_tap=0x7f0502da; + public static final int nfc_just_tap=0x7f0502de; /** XLATE-ME GSM XLATE-ME @@ -4264,7 +4268,7 @@ XLATE-ME XLATE-ME Send via NFC to self? */ - public static final int nfc_to_self=0x7f050307; + public static final int nfc_to_self=0x7f05030b; /** Title of dialog for renaming game (triggered by selecting list_item_rename) If you try to copy a networked game you get this error @@ -4292,7 +4296,7 @@ XLATE-ME just an explanation and this button, after which the game closes. */ - public static final int no_dict_finish=0x7f050194; + public static final int no_dict_finish=0x7f050198; /** If the missing wordlist is discovered when trying to open the game, we have more options. If there's another wordlist in the same language, we can offer to substitute without needing @@ -4317,7 +4321,7 @@ XLATE-ME takes wordlist name and language substituted in for %1$ and %2$ */ - public static final int no_dict_fmt=0x7f050196; + public static final int no_dict_fmt=0x7f05019a; /** This is an alternative message presented when there's also the option of downloading another wordlist. Game name, wordlist name and language are substituted in. @@ -4333,7 +4337,7 @@ XLATE-ME the option of downloading another wordlist. Game name, wordlist name and language are substituted in. */ - public static final int no_dict_subst_fmt=0x7f050197; + public static final int no_dict_subst_fmt=0x7f05019b; /** ############################################################ # :Dialogs: @@ -4487,7 +4491,7 @@ XLATE-ME title of alert */ - public static final int no_dict_title=0x7f050193; + public static final int no_dict_title=0x7f050197; /** If you click on the Play button without having entered a room name you get an alert with this error message. If you click on the Play button without having entered a room @@ -4497,7 +4501,7 @@ XLATE-ME If you click on the Play button without having entered a room name you get an alert with this error message. */ - public static final int no_empty_rooms=0x7f050185; + public static final int no_empty_rooms=0x7f050189; /** If you choose the above option and have no networked games you get this error message If you choose the above option and have no networked games @@ -4508,7 +4512,7 @@ XLATE-ME public static final int no_games_to_refresh=0x7f050096; /** Google Play app not found */ - public static final int no_market=0x7f050274; + public static final int no_market=0x7f050278; /** displayed when you long-tap a scoreboard entry and there's no most recent score to show displayed when you long-tap a scoreboard entry and there's no @@ -4532,7 +4536,7 @@ XLATE-ME substituted. */ public static final int no_name_found_fmt=0x7f0500c2; - public static final int no_relay_conn=0x7f05031a; + public static final int no_relay_conn=0x7f05031e; /** This is not currently shown Crosswords wordlists, which are just compressed lists of words plus tile information, determine @@ -4574,25 +4578,25 @@ XLATE-ME figuring out how to play and when you tap an empty cell the arrow appears. This explains it. */ - public static final int not_again_arrow=0x7f0501c2; + public static final int not_again_arrow=0x7f0501c6; /** The back button clears any selection instead of exiting. Hit it again to exit the app. */ - public static final int not_again_backclears=0x7f050267; + public static final int not_again_backclears=0x7f05026b; /** This button opens the wordlist browser on the current player\'s wordlist. */ - public static final int not_again_browse=0x7f0501e4; + public static final int not_again_browse=0x7f0501e8; /** This button opens the wordlist browser on the wordlist of your choice. */ - public static final int not_again_browseall=0x7f0501e5; + public static final int not_again_browseall=0x7f0501e9; /** Shown when you tap the chat button on the toolbar of the main Board screen Shown when you tap the chat button on the toolbar of the @@ -4603,14 +4607,14 @@ XLATE-ME Shown when you tap the chat button on the toolbar of the main Board screen */ - public static final int not_again_chat=0x7f0501bb; + public static final int not_again_chat=0x7f0501bf; /** EXPERIMENTAL: Newbie hint next when invite_choice_clip shown when chosen */ - public static final int not_again_clip_expl_fmt=0x7f05032a; - public static final int not_again_comms_bt=0x7f050323; - public static final int not_again_comms_relay=0x7f050321; - public static final int not_again_comms_sms=0x7f050322; + public static final int not_again_clip_expl_fmt=0x7f05032e; + public static final int not_again_comms_bt=0x7f050327; + public static final int not_again_comms_relay=0x7f050325; + public static final int not_again_comms_sms=0x7f050326; /** This is shown in the Board screen when you successfully connecting a game to the relay and are the last device in the game to do so, i.e. the game is now complete and you should @@ -4628,7 +4632,7 @@ XLATE-ME game to do so, i.e. the game is now complete and you should expect play to begin. */ - public static final int not_again_conndall=0x7f0501c1; + public static final int not_again_conndall=0x7f0501c5; /** This is shown in the Board screen when you successfully connect a game to the relay and are the first device in the game to do so. @@ -4643,7 +4647,7 @@ XLATE-ME connect a game to the relay and are the first device in the game to do so. */ - public static final int not_again_conndfirst=0x7f0501bf; + public static final int not_again_conndfirst=0x7f0501c3; /** This is shown in the Board screen when you successfully connecting a game to the relay and are not the first device in the game but not the last either. So it will only occur @@ -4660,8 +4664,8 @@ XLATE-ME in the game but not the last either. So it will only occur for games with more than two devices, which are rare. */ - public static final int not_again_conndmid=0x7f0501c0; - public static final int not_again_dfltname_fmt=0x7f050331; + public static final int not_again_conndmid=0x7f0501c4; + public static final int not_again_dfltname_fmt=0x7f050335; /** This screen lets you install new wordslists and view the ones you already have.\n\nWhat wordlists you have installed determines:\n• What languages you can play @@ -4669,7 +4673,7 @@ XLATE-ME legal.\n\nCheck the \"Show downloadable\" box at the top to see what\'s available. */ - public static final int not_again_dicts=0x7f0502b5; + public static final int not_again_dicts=0x7f0502b9; /** This is shown when you choose the board_menu_done menu item. It's to let you know that there's a shortcut that does almost the same thing. @@ -4683,14 +4687,14 @@ XLATE-ME It's to let you know that there's a shortcut that does almost the same thing. */ - public static final int not_again_done=0x7f0501bd; + public static final int not_again_done=0x7f0501c1; /** XLATE-ME Public rooms have been made an \"advanced\" feature in this release. If you were using them and want them back, enable them now. You can turn them off again in Settings. */ - public static final int not_again_enablepublic=0x7f0502e0; + public static final int not_again_enablepublic=0x7f0502e4; /** Shown when you tap the flip button on the toolbar of the main Board screen Shown when you tap the flip button on the toolbar of the main @@ -4700,13 +4704,13 @@ XLATE-ME Shown when you tap the flip button on the toolbar of the main Board screen */ - public static final int not_again_flip=0x7f0501b8; + public static final int not_again_flip=0x7f0501bc; /** This string has special format specifiers (e.g. %1$s). Please be sure that your translation has the same ones as the original.\n\n(You will not be able to save it unless it does.) */ - public static final int not_again_fmt_expl=0x7f0502a7; + public static final int not_again_fmt_expl=0x7f0502ab; /** XLATE-ME These two buttons do the same thing as the first two items in this window\'s Action Bar @@ -4715,7 +4719,7 @@ XLATE-ME section of App settings). */ - public static final int not_again_hidenewgamebuttons=0x7f0502d4; + public static final int not_again_hidenewgamebuttons=0x7f0502d8; /** Shown when you tap the next hint button on the toolbar of the main Board screen Shown when you tap the next hint button on the toolbar of the @@ -4726,7 +4730,7 @@ XLATE-ME Shown when you tap the next hint button on the toolbar of the main Board screen */ - public static final int not_again_hintnext=0x7f0501b6; + public static final int not_again_hintnext=0x7f0501ba; /** Currently not used The new game you have created has two players. Player 1 is a robot; Player 2 is you. Tap the game @@ -4752,7 +4756,7 @@ XLATE-ME Shown when you tap the Previous Hint button on the toolbar of the main Board screen */ - public static final int not_again_hintprev=0x7f0501b5; + public static final int not_again_hintprev=0x7f0501b9; /** Shown when you tap the juggle button on the toolbar of the main Board screen Shown when you tap the juggle button on the toolbar of the @@ -4762,14 +4766,14 @@ XLATE-ME Shown when you tap the juggle button on the toolbar of the main Board screen */ - public static final int not_again_juggle=0x7f0501b7; + public static final int not_again_juggle=0x7f0501bb; /** This button lets you look up, online, the words just played. */ - public static final int not_again_lookup=0x7f0501d8; + public static final int not_again_lookup=0x7f0501dc; /** Shown when you first pick the list_item_new_from menuitem Shown when you first pick the list_item_new_from menuitem Create a new ready-to-play game @@ -4777,19 +4781,19 @@ XLATE-ME as a template. Shown when you first pick the list_item_new_from menuitem */ - public static final int not_again_newfrom=0x7f0501c4; + public static final int not_again_newfrom=0x7f0501c8; /** Tapping a game opens it.\n\nYou can instead tap the icons at the left to select or deselect games, then act on selected games, e.g. to delete them, using the menu or \"Actionbar.\" */ - public static final int not_again_newselect=0x7f050266; - public static final int not_again_rematch_two_only=0x7f050325; + public static final int not_again_newselect=0x7f05026a; + public static final int not_again_rematch_two_only=0x7f050329; /** The selected words will be copied to the system clipboard. You can then paste them into any app that supports pasting text, e.g. an email app. */ - public static final int not_again_studycopy=0x7f050280; + public static final int not_again_studycopy=0x7f050284; /** The following strings (all whose names start with "not_again") appear in the New user info dialog. @@ -4808,7 +4812,7 @@ XLATE-ME shown when user chooses the gamel_menu_checkmoves menu */ - public static final int not_again_sync=0x7f0501b1; + public static final int not_again_sync=0x7f0501b5; /** Shown when the user chooses the "board_menu_trade" menu Shown when the user chooses the "board_menu_trade" menu You are entering tile-exchange @@ -4816,15 +4820,15 @@ XLATE-ME exchanged.\n\n Shown when the user chooses the "board_menu_trade" menu */ - public static final int not_again_trading=0x7f0501b2; + public static final int not_again_trading=0x7f0501b6; /** Use the buttons to commit your turn or exit exchange mode. */ - public static final int not_again_trading_buttons=0x7f0501b3; + public static final int not_again_trading_buttons=0x7f0501b7; /** Use the menu or action bar to commit your turn or exit exchange mode. */ - public static final int not_again_trading_menu=0x7f0501b4; + public static final int not_again_trading_menu=0x7f0501b8; /** Shown when the board screen is visible and it's just become another players turn. The idea is to give a hint about how to find out about recent moves. @@ -4839,7 +4843,7 @@ XLATE-ME another players turn. The idea is to give a hint about how to find out about recent moves. */ - public static final int not_again_turnchanged=0x7f0501c3; + public static final int not_again_turnchanged=0x7f0501c7; /** Shown when you tap the undo/redo button on the toolbar of the main Board screen Shown when you tap the undo/redo button on the toolbar of the @@ -4849,7 +4853,7 @@ XLATE-ME Shown when you tap the undo/redo button on the toolbar of the main Board screen */ - public static final int not_again_undo=0x7f0501ba; + public static final int not_again_undo=0x7f0501be; /** Shown in the Game configure screen when the game_locked checkbox is checked and you uncheck it. Shown in the Game configure screen when the game_locked @@ -4861,7 +4865,7 @@ XLATE-ME Shown in the Game configure screen when the game_locked checkbox is checked and you uncheck it. */ - public static final int not_again_unlock=0x7f0501be; + public static final int not_again_unlock=0x7f0501c2; /** Shown when you tap the values button on the toolbar of the main Board screen. This is intended to allow players to remind themselves how much played tiles are worth while @@ -4878,7 +4882,7 @@ XLATE-ME remind themselves how much played tiles are worth while planning a move. */ - public static final int not_again_values=0x7f0501bc; + public static final int not_again_values=0x7f0501c0; /** Shown when you tap the zoom (+/-) button on the toolbar of the main Board screen Shown when you tap the zoom (+/-) button on the toolbar of @@ -4889,12 +4893,12 @@ XLATE-ME Shown when you tap the zoom (+/-) button on the toolbar of the main Board screen */ - public static final int not_again_zoom=0x7f0501b9; + public static final int not_again_zoom=0x7f0501bd; /** (None) */ - public static final int note_none=0x7f0502b1; - public static final int notify_chat_body_fmt=0x7f0501a0; - public static final int notify_chat_title_fmt=0x7f05019f; + public static final int note_none=0x7f0502b5; + public static final int notify_chat_body_fmt=0x7f0501a4; + public static final int notify_chat_title_fmt=0x7f0501a3; /** This text is displayed as the "summary" for both of the notify choices above, as extra information. (There could be different strings if it makes more sense in your language.) @@ -4909,7 +4913,7 @@ XLATE-ME different strings if it makes more sense in your language.) */ - public static final int notify_other_summary=0x7f050167; + public static final int notify_other_summary=0x7f05016b; /** When one or more new moves is found, should I play a notification sound When one or more new moves is found, should I play a @@ -4918,7 +4922,7 @@ XLATE-ME When one or more new moves is found, should I play a notification sound */ - public static final int notify_sound=0x7f050165; + public static final int notify_sound=0x7f050169; /** When a move is fetched from the relay a Notification is posted. These are its title, which appears in the top bar of the device, and the body that appears when you pull the notifications @@ -4929,7 +4933,7 @@ XLATE-ME down. Move in game %1$s */ - public static final int notify_title_fmt=0x7f05019e; + public static final int notify_title_fmt=0x7f0501a2; /** When one or more new moves is found, should I vibrate the device When one or more new moves is found, should I vibrate the @@ -4938,11 +4942,11 @@ XLATE-ME When one or more new moves is found, should I vibrate the device */ - public static final int notify_vibrate=0x7f050166; + public static final int notify_vibrate=0x7f05016a; /** XLATE-ME Number on this device */ - public static final int nplayers_prompt=0x7f0502ca; + public static final int nplayers_prompt=0x7f0502ce; /** text of label identifying the field where human players can enter an option password. The label and field disappear when the robot player checkbox is checked because it makes no @@ -4973,7 +4977,7 @@ XLATE-ME play – if he/she is also using NFC. \u0020pct. */ - public static final int pct_suffix=0x7f050272; + public static final int pct_suffix=0x7f050276; /** If this preference is checked, tapping on the scoreboard entry for any player reveals that player's tiles and any pending move (after asking for his password if one is set.) @@ -5000,20 +5004,20 @@ XLATE-ME though it's not his turn e.g. while the player whose turn it is is temporarily unable to play. */ - public static final int peek_other=0x7f050157; + public static final int peek_other=0x7f05015b; /** explanation of the above explanation of the above Tapping on scoreboard name shows that player\'s tiles explanation of the above */ - public static final int peek_other_summary=0x7f050158; + public static final int peek_other_summary=0x7f05015c; /** Connected number[s]: */ - public static final int phone_label=0x7f050215; + public static final int phone_label=0x7f050219; /** Don't warn, but simply force to skip turn (give 0 points) when user attempts to play word not in the wordlist. Don't warn, but simply force to skip turn (give 0 points) @@ -5210,13 +5214,13 @@ XLATE-ME Pick tiles face-up */ - public static final int pick_faceup=0x7f0501e0; + public static final int pick_faceup=0x7f0501e4; /** Look up %1$s at */ - public static final int pick_url_title_fmt=0x7f0501d6; + public static final int pick_url_title_fmt=0x7f0501da; /** Text of button at bottom. Press it and you exit this configure screen and open the game into the Board screen Text of button at bottom. Press it and you exit this @@ -5322,7 +5326,7 @@ XLATE-ME used to create default player names. Number between 1 and 4 is substituted */ - public static final int player_fmt=0x7f05019d; + public static final int player_fmt=0x7f0501a1; /** text of lable identifying the field in which player's name is set/displayed Shown in the main screen when you launch Crosswords from an @@ -5366,57 +5370,57 @@ XLATE-ME public static final int players_label_standalone=0x7f0500b6; /** Prefs related to in-app localization */ - public static final int pref_group_l10n_summary=0x7f050313; + public static final int pref_group_l10n_summary=0x7f050317; /** Localization Stuff */ - public static final int pref_group_l10n_title=0x7f050312; + public static final int pref_group_l10n_title=0x7f050316; /** Prefs related to play via internet/relay */ - public static final int pref_group_relay_summary=0x7f050311; + public static final int pref_group_relay_summary=0x7f050315; /** Relay Stuff */ - public static final int pref_group_relay_title=0x7f050310; + public static final int pref_group_relay_title=0x7f050314; /** Prefs related to play-via-sms */ - public static final int pref_group_sms_summary=0x7f05030f; + public static final int pref_group_sms_summary=0x7f050313; /** SMS Stuff */ - public static final int pref_group_sms_title=0x7f05030e; + public static final int pref_group_sms_title=0x7f050312; /** Label for the first "human player" name preference Label for the first "human player" name preference Human player */ - public static final int pref_human_name=0x7f050123; + public static final int pref_human_name=0x7f050127; /** Get intermediate builds */ - public static final int pref_item_update_summary=0x7f050315; + public static final int pref_item_update_summary=0x7f050319; /** Update between releases */ - public static final int pref_item_update_title=0x7f050314; + public static final int pref_item_update_title=0x7f050318; /** Label for the first player color preference Label for the first player color preference First player Label for the first "player name" preference */ - public static final int pref_player1_name=0x7f05011f; + public static final int pref_player1_name=0x7f050123; /** Label for the second player color preference Label for the second player color preference Second player Label for the second "player name" preference (unused) */ - public static final int pref_player2_name=0x7f050120; + public static final int pref_player2_name=0x7f050124; /** Label for the third player color preference Label for the third player color preference Third player Label for the third "player name" preference (unused) */ - public static final int pref_player3_name=0x7f050121; + public static final int pref_player3_name=0x7f050125; /** Label for the fourth player color preference Label for the fourth player color preference Fourth player Label for the fourth "player name" preference (unused) */ - public static final int pref_player4_name=0x7f050122; + public static final int pref_player4_name=0x7f050126; /** ############################################################ # :Screens: @@ -5440,14 +5444,14 @@ XLATE-ME title of this sub-preference */ - public static final int prefs_appearance=0x7f050130; + public static final int prefs_appearance=0x7f050134; /** clarification of the above clarification of the above Settings controlling appearance clarification of the above */ - public static final int prefs_appearance_summary=0x7f050131; + public static final int prefs_appearance_summary=0x7f050135; /** ############################################################ # :Screens: @@ -5471,13 +5475,13 @@ XLATE-ME title of this sub-preference */ - public static final int prefs_behavior=0x7f05014d; + public static final int prefs_behavior=0x7f050151; /** clarification of the above clarification of the above Settings controlling app behavior clarification of the above */ - public static final int prefs_behavior_summary=0x7f05014e; + public static final int prefs_behavior_summary=0x7f050152; /** ############################################################ # :Screens: @@ -5527,13 +5531,13 @@ XLATE-ME title of this sub-preference */ - public static final int prefs_colors=0x7f05013f; + public static final int prefs_colors=0x7f050143; /** clarification of the above clarification of the above Edit colors used on the board clarification of the above */ - public static final int prefs_colors_summary=0x7f050140; + public static final int prefs_colors_summary=0x7f050144; /** ############################################################ # :Screens: @@ -5557,26 +5561,26 @@ XLATE-ME title of this sub-preference */ - public static final int prefs_defaults=0x7f05011b; + public static final int prefs_defaults=0x7f05011f; /** clarification of the above clarification of the above Default settings for new games clarification of the above */ - public static final int prefs_defaults_summary=0x7f05011c; + public static final int prefs_defaults_summary=0x7f050120; /** sub-preference for dictionaries (soon to be called "word lists") sub-preference for dictionaries (soon to be called "word lists") Wordlists sub-preference for dictionaries (soon to be called "word lists") */ - public static final int prefs_dicts=0x7f050125; + public static final int prefs_dicts=0x7f050129; /** clarification of above clarification of above Default wordlists clarification of above */ - public static final int prefs_dicts_summary=0x7f050126; + public static final int prefs_dicts_summary=0x7f05012a; /** sub-preference title for editing default player names. There's only enabled now, though. sub-preference title for editing default player names. @@ -5585,38 +5589,38 @@ XLATE-ME sub-preference title for editing default player names. There's only enabled now, though. */ - public static final int prefs_names=0x7f05011d; + public static final int prefs_names=0x7f050121; /** clarification of the above clarification of the above Default player names clarification of the above */ - public static final int prefs_names_summary=0x7f05011e; + public static final int prefs_names_summary=0x7f050122; /** Used when prev player's name can't be looked up Used when prev player's name can't be looked up Your opponent */ - public static final int prev_player=0x7f0502bb; - public static final int processing_games=0x7f05032e; + public static final int prev_player=0x7f0502bf; + public static final int processing_games=0x7f050332; /** Downloading */ - public static final int progress_title=0x7f0502af; + public static final int progress_title=0x7f0502b3; /** Words no longer than */ - public static final int prompt_max_len=0x7f0501ea; + public static final int prompt_max_len=0x7f0501ee; /** Words no shorter than */ - public static final int prompt_min_len=0x7f0501e9; + public static final int prompt_min_len=0x7f0501ed; /** XLATE-ME Relay device port */ - public static final int proxy_port=0x7f0502f6; + public static final int proxy_port=0x7f0502fa; /** Short for "points", this is shown at the right end of the tray in place of the first tile placed along with the points the current move would earn if committed. @@ -5624,7 +5628,7 @@ XLATE-ME tray in place of the first tile placed along with the points the current move would earn if committed. */ - public static final int pts=0x7f0500ea; + public static final int pts=0x7f0500ee; /** If you check the join_room checkbox Crosswords queries the relay. This is the text of the progress indicator displayed what that's going on. (It's often visible for only a very short @@ -5649,17 +5653,17 @@ XLATE-ME Title for generic dialog asking a question, usually in the middle of a game, like "do you want to commit this move?" */ - public static final int query_title=0x7f0501ae; - public static final int radio_name_cdma=0x7f050306; - public static final int radio_name_gsm=0x7f050305; + public static final int query_title=0x7f0501b2; + public static final int radio_name_cdma=0x7f05030a; + public static final int radio_name_gsm=0x7f050309; /** XLATE-ME Don\'t pretend */ - public static final int radio_name_real=0x7f050303; + public static final int radio_name_real=0x7f050307; /** XLATE-ME Tablet/no radio */ - public static final int radio_name_tablet=0x7f050304; + public static final int radio_name_tablet=0x7f050308; /** ############################################################ # :Dialogs: @@ -5695,12 +5699,12 @@ XLATE-ME Names of the three colors by which colors can be edited in the color preferences dialog */ - public static final int red=0x7f05014a; + public static final int red=0x7f05014e; /** XLATE-ME Invite redirect host */ - public static final int redir_host=0x7f0502e9; - public static final int rel_invite_title=0x7f05032c; + public static final int redir_host=0x7f0502ed; + public static final int rel_invite_title=0x7f050330; /** Title of dialog used to alert players to relay-related problems with the current game. the color of text, e.g. "2L", shown on a bonus square on the @@ -5713,39 +5717,39 @@ XLATE-ME Title of dialog used to alert players to relay-related problems with the current game. */ - public static final int relay_alert=0x7f0500ec; + public static final int relay_alert=0x7f0500f0; /** Message from relay */ - public static final int relay_alert_title=0x7f050265; + public static final int relay_alert_title=0x7f050269; /** XLATE-ME Relay host */ - public static final int relay_host=0x7f0502e8; - public static final int relay_invite_title=0x7f050203; + public static final int relay_host=0x7f0502ec; + public static final int relay_invite_title=0x7f050207; /** XLATE-ME Relay game port */ - public static final int relay_port=0x7f0502f5; + public static final int relay_port=0x7f0502f9; /** Shown in toast when relaunching after switching dicts Shown in toast when relaunching after switching dicts Reloading game with %1$s Shown in toast when relaunching after switching dicts */ - public static final int reload_new_dict_fmt=0x7f050248; + public static final int reload_new_dict_fmt=0x7f05024c; /** XLATE-ME Issuing rematch invitation. You will see this message until it has been accepted.\n\nYou do not need to keep this game open while waiting. You will be notified when the game is ready to play. */ - public static final int rematch_msg=0x7f0502df; - public static final int rematch_name_fmt=0x7f0502c5; + public static final int rematch_msg=0x7f0502e3; + public static final int rematch_name_fmt=0x7f0502c9; /** Processing wordlist information… */ - public static final int remote_digesting=0x7f0502a9; + public static final int remote_digesting=0x7f0502ad; /** Fetching wordlist information from server… */ - public static final int remote_empty=0x7f0502a8; + public static final int remote_empty=0x7f0502ac; /** checkbox determining of this player is on this device or remote. If remote, then the rest of the fields disappear (since they will be set by the remote device.) @@ -5761,16 +5765,16 @@ XLATE-ME /** Unable to fetch wordlist information from server. */ - public static final int remote_no_net=0x7f0502aa; + public static final int remote_no_net=0x7f0502ae; /** Remote device undid a turn. */ - public static final int remote_undone=0x7f050218; + public static final int remote_undone=0x7f05021c; /** Change the name of this group to: */ - public static final int rename_group_label=0x7f05025c; + public static final int rename_group_label=0x7f050260; /** text within rename dialog (triggered by selecting list_item_rename) text within rename dialog (triggered by selecting @@ -5802,13 +5806,13 @@ XLATE-ME volume) This only applies when the Board screen is frontmost. */ - public static final int ringer_zoom=0x7f050155; + public static final int ringer_zoom=0x7f050159; /** explanation of the above explanation of the above Zoom board using volume keys explanation of the above */ - public static final int ringer_zoom_summary=0x7f050156; + public static final int ringer_zoom_summary=0x7f05015a; /** checkbox determining if player is robot/automated or human checkbox determining if player is robot/automated or human Robot player @@ -5860,16 +5864,16 @@ XLATE-ME title for popup of public rooms found on server */ public static final int room_public_prompt=0x7f0500c0; - public static final int seeking_relay=0x7f050319; + public static final int seeking_relay=0x7f05031d; /** Games: %1$d */ - public static final int sel_games_fmt=0x7f050268; + public static final int sel_games_fmt=0x7f05026c; /** Groups: %1$d */ - public static final int sel_groups_fmt=0x7f050269; + public static final int sel_groups_fmt=0x7f05026d; /** Selected: %1$d */ - public static final int sel_items_fmt=0x7f050284; + public static final int sel_items_fmt=0x7f050288; /** ############################################################ # :Dialogs: @@ -5893,7 +5897,7 @@ XLATE-ME /** XLATE-ME Hide buttons */ - public static final int set_pref=0x7f0502d3; + public static final int set_pref=0x7f0502d7; /** text of separator marking out other-setting area of the dialog see move_dictf above @@ -5944,20 +5948,20 @@ XLATE-ME arrow that then directs where tiles go when tapped in the tray. */ - public static final int show_arrow=0x7f05013b; + public static final int show_arrow=0x7f05013f; /** clarification of above clarification of above Tapped rack tiles land on this arrow when it is visible clarification of above */ - public static final int show_arrow_summary=0x7f05013c; + public static final int show_arrow_summary=0x7f050140; /** Show downloadable */ - public static final int show_remote=0x7f0502ad; + public static final int show_remote=0x7f0502b1; /** Wordlist browser */ - public static final int show_wordlist_browser=0x7f050264; + public static final int show_wordlist_browser=0x7f050268; /** If this preference is checked, the user will not be asked to confirm after selecting the "Turn done" menu (or tapping the points display at the right end of the tray) @@ -5969,47 +5973,47 @@ XLATE-ME confirm after selecting the "Turn done" menu (or tapping the points display at the right end of the tray) */ - public static final int skip_confirm_turn=0x7f050151; + public static final int skip_confirm_turn=0x7f050155; /** explanation of the above explanation of the above Do NOT display score summary after every human turn explanation of the above */ - public static final int skip_confirm_turn_summary=0x7f050152; + public static final int skip_confirm_turn_summary=0x7f050156; /** Delete selected */ - public static final int slmenu_clear_sel=0x7f05027a; + public static final int slmenu_clear_sel=0x7f05027e; /** Copy to clipboard */ - public static final int slmenu_copy_sel=0x7f050279; + public static final int slmenu_copy_sel=0x7f05027d; /** Unselect all */ - public static final int slmenu_deselect_all=0x7f050283; + public static final int slmenu_deselect_all=0x7f050287; /** Select all */ - public static final int slmenu_select_all=0x7f050282; + public static final int slmenu_select_all=0x7f050286; /** XLATE-ME The version of Crosswords on the phone with number \"%1$s\" is incompatible with this one for play using SMS. One of you may need to upgrade before you can continue. */ - public static final int sms_bad_proto_fmt=0x7f0501fb; + public static final int sms_bad_proto_fmt=0x7f0501ff; /** Title of phone number picker during invitation to a game via SMS Title of phone number picker during invitation to a game via SMS SMS Invitation */ - public static final int sms_invite_title=0x7f050202; + public static final int sms_invite_title=0x7f050206; /** Tap the receiving device now */ - public static final int sms_ready_text=0x7f050271; + public static final int sms_ready_text=0x7f050275; /** Square rack tiles */ - public static final int square_tiles=0x7f050261; + public static final int square_tiles=0x7f050265; /** Even if they can be taller */ - public static final int square_tiles_summary=0x7f050262; + public static final int square_tiles_summary=0x7f050266; /** Used in formatting moves and history Used to separate names of players when listing them on one line in a game summary. The \u0020 is a space in xml. @@ -6021,7 +6025,7 @@ XLATE-ME line in a game summary. The \u0020 is a space in xml. Used in formatting moves and history */ - public static final int str_bonus_all=0x7f050113; + public static final int str_bonus_all=0x7f050117; /** Using the hint feature is cheating by some players, and it can be disabled via the hints_allowed preference. I should be disabling the buttons in this case, but if I don't and you @@ -6038,7 +6042,7 @@ XLATE-ME be disabling the buttons in this case, but if I don't and you try to get a hint you'll get this message instead. */ - public static final int str_cant_hint_while_disabled=0x7f05018f; + public static final int str_cant_hint_while_disabled=0x7f050193; /** Displayed if you try to use the undo menuitem or button and there are no tiles on the board (no move has yet been made.) [If I'm being clever and disabling those features in this @@ -6054,7 +6058,7 @@ XLATE-ME [If I'm being clever and disabling those features in this case there may be no way to see this.] */ - public static final int str_cant_undo_tileassign=0x7f05018e; + public static final int str_cant_undo_tileassign=0x7f050192; /** Beginning of the message presented to a user when asking him to confirm committing the current turn Used in formatting reports of trades (exchanges of tiles). @@ -6075,7 +6079,7 @@ XLATE-ME Beginning of the message presented to a user when asking him to confirm committing the current turn */ - public static final int str_commit_confirm=0x7f050110; + public static final int str_commit_confirm=0x7f050114; /** Used to format game name plus some other information as the one-line summary for each game in the main screen. The name of the game is substituted for %1$s. Something else @@ -6096,8 +6100,8 @@ XLATE-ME because there is empty space between some of the tiles placed, i.e. they do not form a single word. */ - public static final int str_no_empties_in_turn=0x7f050187; - public static final int str_no_hint_found=0x7f050324; + public static final int str_no_empties_in_turn=0x7f05018b; + public static final int str_no_hint_found=0x7f050328; /** Same as above, but used when you try to show tiles belonging to a player on another device (a remote player.) Same as above, but used when you try to show tiles belonging @@ -6107,7 +6111,7 @@ XLATE-ME Same as above, but used when you try to show tiles belonging to a player on another device (a remote player.) */ - public static final int str_no_peek_remote_tiles=0x7f05018c; + public static final int str_no_peek_remote_tiles=0x7f050190; /** Displayed when you try to reveal a robot player's tiles, either by tapping on its "hidden" rack (marked by "?" characters) or by tapping on its scoreboard entry. (The @@ -6129,7 +6133,7 @@ XLATE-ME controlled by the peek_other preference and is disabled by default.) */ - public static final int str_no_peek_robot_tiles=0x7f05018b; + public static final int str_no_peek_robot_tiles=0x7f05018f; /** Used, with remote player's name substituted for %1$s, to indicate that the player is remote. Used, with remote player's name substituted for %1$s, to @@ -6138,7 +6142,7 @@ XLATE-ME Used, with remote player's name substituted for %s, to indicate that the player is remote. */ - public static final int str_nonlocal_name_fmt=0x7f050111; + public static final int str_nonlocal_name_fmt=0x7f050115; /** Displyed when you try to commit a move and it's not your turn. Displyed when you try to commit a move and it's not your @@ -6148,12 +6152,12 @@ XLATE-ME Displyed when you try to commit a move and it's not your turn. */ - public static final int str_not_your_turn=0x7f05018a; + public static final int str_not_your_turn=0x7f05018e; /** Used in formatting game history and move summaries Used in formatting game history and move summaries pass\n */ - public static final int str_pass=0x7f05010a; + public static final int str_pass=0x7f05010e; /** Used to alert user to loss of turn when a move is made and phonies is set to lose turn when word used not in wordlist @@ -6165,10 +6169,10 @@ XLATE-ME phonies is set to lose turn when word used not in wordlist */ - public static final int str_phony_rejected=0x7f05010f; + public static final int str_phony_rejected=0x7f050113; /** [#%d] %s: %d */ - public static final int str_placer_fmt=0x7f050243; + public static final int str_placer_fmt=0x7f050247; /** Shown when using the the Game configure screen to configure a networked game and you try to make all players local. Shown when using the the Game configure screen to configure a @@ -6200,17 +6204,17 @@ XLATE-ME many players are expected and only connects devices where the numbers match. */ - public static final int str_reg_unexpected_user=0x7f050190; + public static final int str_reg_unexpected_user=0x7f050194; /** Used in formatting remote player move summaries Used in formatting remote player move summaries Remote player %1$s made this move:\u0020 Used in formatting remote player move summaries */ - public static final int str_remote_moved_fmt=0x7f050108; + public static final int str_remote_moved_fmt=0x7f05010c; /** [Resigned] %s: %d */ - public static final int str_resigned_fmt=0x7f050242; + public static final int str_resigned_fmt=0x7f050246; /** ############################################################ # Board info/error dialog messages @@ -6231,7 +6235,7 @@ XLATE-ME Notifies user of a normal robot move The robot %1$s made this move:\u0020 */ - public static final int str_robot_moved_fmt=0x7f050102; + public static final int str_robot_moved_fmt=0x7f050106; /** Shown when a remote device tries to join a game and wants to play in a different language. As with the above, this should be impossible when connecting via the relay. @@ -6244,7 +6248,7 @@ XLATE-ME play in a different language. As with the above, this should be impossible when connecting via the relay. */ - public static final int str_server_dict_wins=0x7f050191; + public static final int str_server_dict_wins=0x7f050195; /** Displayed when you try to commit a turn that is illegal because tiles played do not touch other tiles already on the board (or the middle/star square in the case of the initial @@ -6261,7 +6265,7 @@ XLATE-ME board (or the middle/star square in the case of the initial move.) */ - public static final int str_tiles_must_contact=0x7f050189; + public static final int str_tiles_must_contact=0x7f05018d; /** error messages @@ -6291,7 +6295,7 @@ XLATE-ME because the tiles placed are not all in the same row or column. */ - public static final int str_tiles_not_in_line=0x7f050186; + public static final int str_tiles_not_in_line=0x7f05018a; /** Displayed when you try to begin a trade but there are not seven or more tiles in the pool. The rules don't allow trading in this case. @@ -6304,7 +6308,7 @@ XLATE-ME seven or more tiles in the pool. The rules don't allow trading in this case. */ - public static final int str_too_few_tiles_left_to_trade=0x7f05018d; + public static final int str_too_few_tiles_left_to_trade=0x7f050191; /** Displayed when you try to commit the first move of the game and are playing a single tile. The first move must include two or more tiles. @@ -6317,12 +6321,12 @@ XLATE-ME and are playing a single tile. The first move must include two or more tiles. */ - public static final int str_two_tiles_first_move=0x7f050188; + public static final int str_two_tiles_first_move=0x7f05018c; /** Used in formatting final scores display Used in formatting final scores display [Winner] %s: %d */ - public static final int str_winner_fmt=0x7f050241; + public static final int str_winner_fmt=0x7f050245; /** Used in formatting game history (not move summaries since information about the current rack is hidden then) Used in formatting game history (not move summaries since @@ -6331,19 +6335,19 @@ XLATE-ME Used in formatting game history (not move summaries since information about the current rack is hidden then) */ - public static final int strd_cumulative_score_fmt=0x7f050107; + public static final int strd_cumulative_score_fmt=0x7f05010b; /** Used in formatting game history and move summaries Used in formatting game history and move summaries + %1$d [all remaining tiles] Used in formatting game history and move summaries */ - public static final int strd_remaining_tiles_add_fmt=0x7f050104; + public static final int strd_remaining_tiles_add_fmt=0x7f050108; /** I don't know how this is used. :-) I don't know how this is used. :-) - %1$d [time] I don't know how this is used. :-) */ - public static final int strd_time_penalty_sub_fmt=0x7f050109; + public static final int strd_time_penalty_sub_fmt=0x7f05010d; /** Used in formatting moves and history. The total score for one turn is substituted for %1$d. Used in formatting moves and history. The total score for @@ -6352,38 +6356,38 @@ XLATE-ME Used in formatting moves and history. The total score for one turn is substituted for %d. */ - public static final int strd_turn_score_fmt=0x7f050114; + public static final int strd_turn_score_fmt=0x7f050118; /** Used in formatting game history and move summaries Used in formatting game history and move summaries - %1$d [unused tiles] Used in formatting game history and move summaries */ - public static final int strd_unused_tiles_sub_fmt=0x7f050105; + public static final int strd_unused_tiles_sub_fmt=0x7f050109; /** Used in formatting game history and move summaries Used in formatting game history and move summaries move (from %1$s across)\n Used in formatting game history and move summaries */ - public static final int strs_move_across_fmt=0x7f05010b; + public static final int strs_move_across_fmt=0x7f05010f; /** Used in formatting game history and move summaries Used in formatting game history and move summaries move (from %1$s down)\n Used in formatting game history and move summaries */ - public static final int strs_move_down_fmt=0x7f05010c; + public static final int strs_move_down_fmt=0x7f050110; /** Used in formatting game history and move summaries Used in formatting remote player move summaries Used in formatting game history and move summaries New tiles: %1$s Used in formatting game history and move summaries */ - public static final int strs_new_tiles_fmt=0x7f050106; + public static final int strs_new_tiles_fmt=0x7f05010a; /** Used in formatting game history and move summaries Used in formatting game history and move summaries Rack at start: %1$s\n Used in formatting game history and move summaries */ - public static final int strs_tray_at_start_fmt=0x7f05010d; + public static final int strs_tray_at_start_fmt=0x7f050111; /** title for window you get when you select menu with text board_menu_game_counts string name="str_robot_moved">El robot ha fet aquesta jugada:Robot provedl tento tah:Exchanged %1$s for %2$s. Used in formatting exchange move summaries */ - public static final int strss_traded_for_fmt=0x7f05010e; + public static final int strss_traded_for_fmt=0x7f050112; /** Your words for: */ - public static final int study_langpick=0x7f05027d; + public static final int study_langpick=0x7f050281; /** You have not yet saved any words into a studylist for %1$s. */ - public static final int study_no_lang_fmt=0x7f05027e; + public static final int study_no_lang_fmt=0x7f050282; /** You have not yet saved any words into a studylist. */ - public static final int study_no_lists=0x7f05027f; + public static final int study_no_lists=0x7f050283; /** Studylist for %1$s */ - public static final int studylist_title_fmt=0x7f05027c; + public static final int studylist_title_fmt=0x7f050280; /** If substituting an existing same-language wordlist by choosing button_substdict user gets to choose from a list of wordlists. This is the title of that list. @@ -6427,19 +6431,19 @@ string name="str_robot_moved">Robot provedl tento tah:Game in play */ - public static final int summary_conn=0x7f0501f6; + public static final int summary_conn=0x7f0501fa; /** Game in play with %1$s */ - public static final int summary_conn_sms_fmt=0x7f050216; + public static final int summary_conn_sms_fmt=0x7f05021a; /** Preference to control what's listed next to game name in the first line of a game summary in the main games-list screen, e.g., if the option is "Game Language", "English" in the @@ -6463,13 +6467,13 @@ string name="str_robot_moved">Robot provedl tento tah:Game over\u200C */ - public static final int summary_gameover=0x7f0501f5; + public static final int summary_gameover=0x7f0501f9; public static final int summary_invites_out=0x7f05008e; /** The display of each networked game includes one of three states it can be in in the process of connecting to the @@ -6524,27 +6528,27 @@ string name="str_robot_moved">Robot provedl tento tah:(GSM phones only) */ - public static final int summary_send_data_sms=0x7f0502f0; + public static final int summary_send_data_sms=0x7f0502f4; /** explanation of the above explanation of the above Sort racks whenever new tiles are added explanation of the above */ - public static final int summary_sort_tiles=0x7f050154; + public static final int summary_sort_tiles=0x7f050158; /** Offer to add to and display lists of words to remember */ - public static final int summary_studyon=0x7f050277; + public static final int summary_studyon=0x7f05027b; /** Thumbnail size */ - public static final int summary_thumbsize=0x7f05026a; + public static final int summary_thumbsize=0x7f05026e; /** Unconnected */ - public static final int summary_wait_guest=0x7f0501f4; + public static final int summary_wait_guest=0x7f0501f8; /** Waiting for connection[s] @@ -6552,7 +6556,7 @@ string name="str_robot_moved">Robot provedl tento tah:Robot provedl tento tah:Disabled */ - public static final int thumb_off=0x7f05026b; + public static final int thumb_off=0x7f05026f; /** color of the tiles' background color of the "crosshairs", lines drawn vertically and horizontally through the square the user is currently @@ -6575,19 +6579,19 @@ string name="str_robot_moved">Robot provedl tento tah:Tile background color of the tiles' background */ - public static final int tile_back=0x7f050146; + public static final int tile_back=0x7f05014a; /** Pick for me */ - public static final int tilepick_all=0x7f0501de; + public static final int tilepick_all=0x7f0501e2; /** Undo last\u200C */ - public static final int tilepick_undo=0x7f0501dd; + public static final int tilepick_undo=0x7f0501e1; /** title of dialog brought up in response to the board_menu_game_left menu. The dialog lists all tiles remaining in the pool, i.e. not on the board or in the rack @@ -6602,14 +6606,14 @@ string name="str_robot_moved">Robot provedl tento tah:Communicate via */ - public static final int title_addrs_pref=0x7f0502c2; + public static final int title_addrs_pref=0x7f0502c6; /** ############################################################ # :Screens: @@ -6682,10 +6686,10 @@ string name="str_robot_moved">Robot provedl tento tah:Tap to look up */ - public static final int title_lookup=0x7f0501d2; + public static final int title_lookup=0x7f0501d6; /** Tap to look up or study */ - public static final int title_lookup_study=0x7f0501d3; + public static final int title_lookup_study=0x7f0501d7; /** ############################################################ # :Screens: @@ -6726,11 +6730,11 @@ string name="str_robot_moved">Robot provedl tento tah:Send SMS as data */ - public static final int title_send_data_sms=0x7f0502ef; + public static final int title_send_data_sms=0x7f0502f3; /** If this preference is checked, tiles in the rack will be re-ordered alphabetically whenever tiles are added, i.e. after ever move. @@ -6742,10 +6746,10 @@ string name="str_robot_moved">Robot provedl tento tah:Enable studylists */ - public static final int title_studyon=0x7f050276; + public static final int title_studyon=0x7f05027a; /** title of dialog allowing user to pick tiles "face up". (This feature is not yet supported on Android.) @@ -6849,16 +6853,16 @@ string name="str_robot_moved">Robot provedl tento tah:Updates are available for one or more installed wordlists. Would you like to download the new version[s] of %1$s now? */ - public static final int update_dicts_fmt=0x7f0502ae; + public static final int update_dicts_fmt=0x7f0502b2; /** XLATE-ME Use defaults */ - public static final int use_defaults=0x7f0502c9; + public static final int use_defaults=0x7f0502cd; /** text of checkbox controlling whether there's a game timer text of checkbox. If this checkbox is checked, games created for network play will by default have the hint feature @@ -6874,35 +6878,35 @@ string name="str_robot_moved">Robot provedl tento tah:\u0020vs.\u0020 */ - public static final int vs_join=0x7f050112; + public static final int vs_join=0x7f050116; /** Button for alert with title above */ - public static final int waiting_invite_title=0x7f0502d6; + public static final int waiting_invite_title=0x7f0502da; /** XLATE-ME Waiting for players */ - public static final int waiting_title=0x7f0502d5; + public static final int waiting_title=0x7f0502d9; /** XLATE-ME Bluetooth is currently off on this device. No moves will be sent via Bluetooth.\n\nYou can enable Bluetooth now, or later. */ - public static final int warn_bt_disabled=0x7f050237; + public static final int warn_bt_disabled=0x7f05023b; /** XLATE-ME Every networked game must have at least one way of communicating. If you have no default connection options every new networked game will have to be configured manually. */ - public static final int warn_no_comms=0x7f0502db; + public static final int warn_no_comms=0x7f0502df; /** The number %1$s for %2$s is not a \"mobile\" number. Import anyway? */ - public static final int warn_nomobile_fmt=0x7f05020e; + public static final int warn_nomobile_fmt=0x7f050212; /** Play via SMS is currently @@ -6915,31 +6919,31 @@ activer les parties par SMS, allez dans Paramètres->Paramètres des parties en réseau.) */ - public static final int warn_sms_disabled=0x7f050236; + public static final int warn_sms_disabled=0x7f05023a; /** Are you certain this number is on an account with unlimited texting? Click cancel if you are not. */ - public static final int warn_unlimited=0x7f050217; - public static final int wifi_warning=0x7f05031d; + public static final int warn_unlimited=0x7f05021b; + public static final int wifi_warning=0x7f050321; /** First letters */ - public static final int word_search_hint=0x7f0501dc; + public static final int word_search_hint=0x7f0501e0; /** Add option to every screen menu */ - public static final int xlations_enabled_summary=0x7f050289; + public static final int xlations_enabled_summary=0x7f05028d; /** Enable local translating */ - public static final int xlations_enabled_title=0x7f050288; + public static final int xlations_enabled_title=0x7f05028c; /** XLATE-ME Fake locale for translation */ - public static final int xlations_locale=0x7f0502fb; + public static final int xlations_locale=0x7f0502ff; /** Empty in English, this should contain the name of the translator/creator of the strings.xml file for this language @@ -6953,7 +6957,7 @@ réseau.) translator/creator of the strings.xml file for this language */ - public static final int xlator=0x7f0501ca; + public static final int xlator=0x7f0501ce; public static final int xwords_nfc_mime=0x7f05007c; } public static final class style { diff --git a/xwords4/android/XWords4/res/values/strings.xml b/xwords4/android/XWords4/res/values/strings.xml index 9de1254b6..3a7064dcf 100644 --- a/xwords4/android/XWords4/res/values/strings.xml +++ b/xwords4/android/XWords4/res/values/strings.xml @@ -549,9 +549,13 @@ You have already invited a remote player to - this game. We are waiting for him/her to connect back. - You have already invited %1$d players to - this game. We are waiting for them to connect back. + this game. We are waiting for him/her to respond. Please + use the re-invite button if you think the invitation did not go + out. + You have already sent %1$d unique + invitations for this game. We are waiting for %2$d of the + recipients to respond. Please use the re-invite button if you + think the invitations did not go out. This game was created from an invitation you received. As soon as it is able to connect to the @@ -579,6 +583,15 @@ this alert will not be dismissed until everybody has been invited and all invitations have been accepted.) + Invite sent via SMS to phone + number %1$s on %2$s + Invite sent via Bluetooth to + paired device %1$s on %2$s + Invite forwarded by the relay + to another device on %1$s + Invite sent via %1$s on + %2$s. Recipient unknown. + 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 60bc7185f..1e9c54f46 100644 --- a/xwords4/android/XWords4/res_src/values-ba_CK/strings.xml +++ b/xwords4/android/XWords4/res_src/values-ba_CK/strings.xml @@ -467,9 +467,13 @@ Uoy evah ydaerla detivni a etomer reyalp ot - siht emag. Ew era gnitiaw rof reh/mih ot tcennoc kcab. - Uoy evah ydaerla detivni %1$d sreyalp ot - siht emag. Ew era gnitiaw rof meht ot tcennoc kcab. + siht emag. Ew era gnitiaw rof reh/mih ot dnopser. Esaelp + esu eht etivni-er nottub fi uoy kniht eht noitativni did ton og + tuo. + Uoy evah ydaerla tnes %1$d euqinu + snoitativni rof siht emag. Ew era gnitiaw rof %2$d fo eht + stneipicer ot dnopser. Esaelp esu eht etivni-er nottub fi uoy + kniht eht snoitativni did ton og tuo. Siht emag saw detaerc morf na noitativni uoy deviecer. Sa noos sa ti si elba ot tcennoc ot eht @@ -493,6 +497,14 @@ etomer sreyalp. Uoy nod\'t evah ot etivni meht lla ta ,ecno tub siht trela lliw ton eb dessimsid litnu ydobyreve sah neeb detivni dna lla snoitativni evah neeb detpecca.) + Etivni tnes aiv SMS ot enohp + rebmun %1$s no %2$s + Etivni tnes aiv Htooteulb ot + deriap ecived %1$s no %2$s + Etivni dedrawrof yb eht yaler + ot rehtona ecived no %1$s + Etivni tnes aiv %1$s no + %2$s. Tneipicer nwonknu. 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 2397db4fd..e11190a21 100644 --- a/xwords4/android/XWords4/res_src/values-ca_PS/strings.xml +++ b/xwords4/android/XWords4/res_src/values-ca_PS/strings.xml @@ -467,9 +467,13 @@ YOU HAVE ALREADY INVITED A REMOTE PLAYER TO - THIS GAME. WE ARE WAITING FOR HIM/HER TO CONNECT BACK. - YOU HAVE ALREADY INVITED %1$d PLAYERS TO - THIS GAME. WE ARE WAITING FOR THEM TO CONNECT BACK. + THIS GAME. WE ARE WAITING FOR HIM/HER TO RESPOND. PLEASE + USE THE RE-INVITE BUTTON IF YOU THINK THE INVITATION DID NOT GO + OUT. + YOU HAVE ALREADY SENT %1$d UNIQUE + INVITATIONS FOR THIS GAME. WE ARE WAITING FOR %2$d OF THE + RECIPIENTS TO RESPOND. PLEASE USE THE RE-INVITE BUTTON IF YOU + THINK THE INVITATIONS DID NOT GO OUT. THIS GAME WAS CREATED FROM AN INVITATION YOU RECEIVED. AS SOON AS IT IS ABLE TO CONNECT TO THE @@ -493,6 +497,14 @@ REMOTE PLAYERS. YOU DON\'T HAVE TO INVITE THEM ALL AT ONCE, BUT THIS ALERT WILL NOT BE DISMISSED UNTIL EVERYBODY HAS BEEN INVITED AND ALL INVITATIONS HAVE BEEN ACCEPTED.) + INVITE SENT VIA SMS TO PHONE + NUMBER %1$s ON %2$s + INVITE SENT VIA BLUETOOTH TO + PAIRED DEVICE %1$s ON %2$s + INVITE FORWARDED BY THE RELAY + TO ANOTHER DEVICE ON %1$s + INVITE SENT VIA %1$s ON + %2$s. RECIPIENT UNKNOWN. 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 8999b7123..5cb131eb0 100644 --- a/xwords4/android/XWords4/src/org/eehouse/android/xw4/BoardDelegate.java +++ b/xwords4/android/XWords4/src/org/eehouse/android/xw4/BoardDelegate.java @@ -449,7 +449,7 @@ public class BoardDelegate extends DelegateBase OnClickListener lstnrMore = new OnClickListener() { public void onClick( DialogInterface dialog, int item ) { - showOKOnlyDialog( m_sentInfo.getAsText() ); + showOKOnlyDialog( m_sentInfo.getAsText( m_activity ) ); } }; @@ -515,12 +515,12 @@ public class BoardDelegate extends DelegateBase } } else { m_sentInfo = DBUtils.getInvitesFor( m_activity, m_rowid ); - int nSent = m_sentInfo.getPlayerCount(); + int nSent = m_sentInfo.getMinPlayerCount(); boolean haveSent = nSent >= m_nMissing; if ( haveSent ) { titleID = R.string.waiting_invite_title; message = getQuantityString( R.plurals.invite_sent_fmt, - nSent, nSent ); + nSent, nSent, m_nMissing ); buttonTxt = R.string.button_reinvite; nukeNeutButton = false; } else if ( DeviceRole.SERVER_ISCLIENT == m_gi.serverRole ) { diff --git a/xwords4/android/XWords4/src/org/eehouse/android/xw4/DBUtils.java b/xwords4/android/XWords4/src/org/eehouse/android/xw4/DBUtils.java index 6a6e702f1..0937134a7 100644 --- a/xwords4/android/XWords4/src/org/eehouse/android/xw4/DBUtils.java +++ b/xwords4/android/XWords4/src/org/eehouse/android/xw4/DBUtils.java @@ -422,10 +422,10 @@ public class DBUtils { public static class SentInvitesInfo { public long m_rowid; - private int m_count = 0; private ArrayList m_means; private ArrayList m_target; private ArrayList m_timestamp; + private int m_cachedCount = 0; private SentInvitesInfo( long rowID ) { m_rowid = rowID; @@ -436,22 +436,84 @@ public class DBUtils { private void addEntry( InviteMeans means, String target, Timestamp ts ) { - ++m_count; m_means.add( means ); m_target.add( target ); m_timestamp.add( ts ); - } - - public int getPlayerCount() { - return m_count; + m_cachedCount = -1; } - public String getAsText() { - String[] strs = new String[m_count]; - for ( int ii = 0; ii < m_count; ++ii ) { - strs[ii] = String.format( "Invite sent to dev %s via %s on %s", - m_target.get(ii), m_means.get(ii).toString(), - m_timestamp.get(ii).toString() ); + // There will be lots of duplicates, but we can't detect them all. BUT + // if means and target are the same it's definitely a dup. So count + // them all and return the largest number we have. 99% of the time we + // care only that it's non-0. + public int getMinPlayerCount() { + if ( -1 == m_cachedCount ) { + DbgUtils.logf( "getMinPlayerCount(%H)", this ); + int count = m_timestamp.size(); + Map> hashes + = new HashMap>(); + int fakeCount = 0; // make all null-targets count for one + for ( int ii = 0; ii < count; ++ii ) { + InviteMeans means = m_means.get(ii); + Set devs; + if ( ! hashes.containsKey( means ) ) { + DbgUtils.logf( "creating new hash for means %s", means.toString() ); + devs = new HashSet(); + hashes.put( means, devs ); + } + devs = hashes.get( means ); + String target = m_target.get( ii ); + if ( null == target ) { + target = String.format( "%d", ++fakeCount ); + } + devs.add( target ); + DbgUtils.logf( "added target %s for means %s", target, means.toString() ); + } + + // Now find the max + m_cachedCount = 0; + for ( InviteMeans means : InviteMeans.values() ) { + if ( hashes.containsKey( means ) ) { + int siz = hashes.get( means ).size(); + m_cachedCount += siz; + DbgUtils.logf( "counting: means %s has unique count of %d", + means.toString(), siz ); + } + } + } + DbgUtils.logf( "getMinPlayerCount(%H) => %d", this, m_cachedCount ); + return m_cachedCount; + } + + public String getAsText( Context context ) + { + int count = m_timestamp.size(); + String[] strs = new String[count]; + for ( int ii = 0; ii < count; ++ii ) { + InviteMeans means = m_means.get(ii); + String target = m_target.get(ii); + String timestamp = m_timestamp.get(ii).toString(); + String msg; + + switch ( means ) { + case SMS: + msg = LocUtils.getString( context, R.string.invit_expl_sms_fmt, + target, timestamp ); + break; + case BLUETOOTH: + msg = LocUtils.getString( context, R.string.invit_expl_bt_fmt, + target, timestamp ); + break; + case RELAY: + msg = LocUtils.getString( context, R.string.invit_expl_relay_fmt, + timestamp ); + break; + default: + msg = LocUtils.getString( context, R.string.invit_expl_notarget_fmt, + means.toString(), timestamp ); + + } + strs[ii] = msg; } return TextUtils.join( "\n\n", strs ); } diff --git a/xwords4/android/XWords4/src/org/eehouse/android/xw4/jni/GameSummary.java b/xwords4/android/XWords4/src/org/eehouse/android/xw4/jni/GameSummary.java index a1bdb625d..a20e2d45c 100644 --- a/xwords4/android/XWords4/src/org/eehouse/android/xw4/jni/GameSummary.java +++ b/xwords4/android/XWords4/src/org/eehouse/android/xw4/jni/GameSummary.java @@ -207,7 +207,7 @@ public class GameSummary { if ( 0 < missing ) { DBUtils.SentInvitesInfo si = DBUtils.getInvitesFor( m_context, rowid ); - if ( si.getPlayerCount() >= missing ) { + if ( si.getMinPlayerCount() >= missing ) { result = LocUtils.getString( m_context, R.string.summary_invites_out ); } From 90f7438290bc31f1a01d4d6a63a26dd9ca75e754 Mon Sep 17 00:00:00 2001 From: Eric House Date: Thu, 14 Jan 2016 07:37:47 -0800 Subject: [PATCH 17/37] allow deleting dict that doesn't exist (don't assert) --- .../XWords4/src/org/eehouse/android/xw4/DictUtils.java | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/xwords4/android/XWords4/src/org/eehouse/android/xw4/DictUtils.java b/xwords4/android/XWords4/src/org/eehouse/android/xw4/DictUtils.java index 2c96ee45b..bc001a44a 100644 --- a/xwords4/android/XWords4/src/org/eehouse/android/xw4/DictUtils.java +++ b/xwords4/android/XWords4/src/org/eehouse/android/xw4/DictUtils.java @@ -304,7 +304,10 @@ public class DictUtils { public static void deleteDict( Context context, String name ) { - deleteDict( context, name, getDictLoc( context, name ) ); + DictLoc loc = getDictLoc( context, name ); + if ( null != loc ) { + deleteDict( context, name, getDictLoc(context, name) ); + } } private static byte[] openDict( Context context, String name, DictLoc loc ) From 1e50181b122bd39f40a3a73f9b1c7b3dd65447ca Mon Sep 17 00:00:00 2001 From: Eric House Date: Thu, 14 Jan 2016 07:55:49 -0800 Subject: [PATCH 18/37] fix handling of SMS invitations specifying a dictionary that's missing --- .../android/xw4/GamesListDelegate.java | 2 +- .../org/eehouse/android/xw4/MultiService.java | 13 +++++++- .../eehouse/android/xw4/NetLaunchInfo.java | 7 ----- .../org/eehouse/android/xw4/SMSService.java | 31 ++++++------------- 4 files changed, 23 insertions(+), 30 deletions(-) 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 6006a3bf5..02540821d 100644 --- a/xwords4/android/XWords4/src/org/eehouse/android/xw4/GamesListDelegate.java +++ b/xwords4/android/XWords4/src/org/eehouse/android/xw4/GamesListDelegate.java @@ -1986,7 +1986,7 @@ public class GamesListDelegate extends ListDelegateBase { NetLaunchInfo nli = null; if ( MultiService.isMissingDictIntent( intent ) ) { - nli = new NetLaunchInfo( m_activity, intent ); + nli = MultiService.getMissingDictData( m_activity, intent ); } else { Uri data = intent.getData(); if ( null != data ) { diff --git a/xwords4/android/XWords4/src/org/eehouse/android/xw4/MultiService.java b/xwords4/android/XWords4/src/org/eehouse/android/xw4/MultiService.java index a6c382e9a..cba0d60cf 100644 --- a/xwords4/android/XWords4/src/org/eehouse/android/xw4/MultiService.java +++ b/xwords4/android/XWords4/src/org/eehouse/android/xw4/MultiService.java @@ -26,6 +26,8 @@ import android.content.Context; import android.content.Intent; import android.content.DialogInterface.OnClickListener; +import junit.framework.Assert; + import org.eehouse.android.xw4.loc.LocUtils; public class MultiService { @@ -43,7 +45,7 @@ public class MultiService { public static final String OWNER = "OWNER"; public static final String BT_NAME = "BT_NAME"; public static final String BT_ADDRESS = "BT_ADDRESS"; - public static final String NLI_DATA = "nli"; + private static final String NLI_DATA = "nli"; public enum DictFetchOwner { _NONE, OWNER_SMS, @@ -128,6 +130,15 @@ public class MultiService { return result; } + public static NetLaunchInfo getMissingDictData( Context context, + Intent intent ) + { + Assert.assertTrue( isMissingDictIntent( intent ) ); + String nliData = intent.getStringExtra( NLI_DATA ); + NetLaunchInfo nli = new NetLaunchInfo( context, nliData ); + return nli; + } + public static Dialog missingDictDialog( Context context, Intent intent, OnClickListener onDownload, OnClickListener onDecline ) diff --git a/xwords4/android/XWords4/src/org/eehouse/android/xw4/NetLaunchInfo.java b/xwords4/android/XWords4/src/org/eehouse/android/xw4/NetLaunchInfo.java index 2d77d38bd..17540d7b1 100644 --- a/xwords4/android/XWords4/src/org/eehouse/android/xw4/NetLaunchInfo.java +++ b/xwords4/android/XWords4/src/org/eehouse/android/xw4/NetLaunchInfo.java @@ -88,13 +88,6 @@ public class NetLaunchInfo { init( context, data ); } - public NetLaunchInfo( Context context, Intent intent ) - { - String data = intent.getStringExtra( MultiService.NLI_DATA ); - Assert.assertNotNull( data ); - init( context, data ); - } - private NetLaunchInfo( Bundle bundle ) { lang = bundle.getInt( MultiService.LANG ); 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 ce38b3c19..21855ea1d 100644 --- a/xwords4/android/XWords4/src/org/eehouse/android/xw4/SMSService.java +++ b/xwords4/android/XWords4/src/org/eehouse/android/xw4/SMSService.java @@ -56,6 +56,7 @@ import java.util.Set; import junit.framework.Assert; import org.eehouse.android.xw4.GameUtils.BackMoveResult; +import org.eehouse.android.xw4.MultiService.DictFetchOwner; import org.eehouse.android.xw4.MultiService.MultiEvent; import org.eehouse.android.xw4.jni.CommsAddrRec.CommsConnType; import org.eehouse.android.xw4.jni.CommsAddrRec; @@ -348,20 +349,15 @@ public class SMSService extends XWService { inviteRemote( phone, intent.getStringExtra( GAMEDATA_STR ) ); break; case ADDED_MISSING: + NetLaunchInfo nli + = MultiService.getMissingDictData( this, intent ); phone = intent.getStringExtra( PHONE ); - int gameID = intent.getIntExtra( MultiService.GAMEID, -1 ); - String gameName = intent.getStringExtra( MultiService.GAMENAME ); - int lang = intent.getIntExtra( MultiService.LANG, -1 ); - String dict = intent.getStringExtra( MultiService.DICT ); - int nPlayersT = intent.getIntExtra( MultiService.NPLAYERST, -1 ); - int nPlayersH = intent.getIntExtra( MultiService.NPLAYERSH, -1 ); - makeForInvite( phone, gameID, gameName, lang, dict, - nPlayersT, nPlayersH, 1 ); + makeForInvite( phone, nli ); break; case SEND: phone = intent.getStringExtra( PHONE ); byte[] bytes = intent.getByteArrayExtra( BINBUFFER ); - gameID = intent.getIntExtra( MultiService.GAMEID, -1 ); + int gameID = intent.getIntExtra( MultiService.GAMEID, -1 ); sendPacket( phone, gameID, bytes ); break; case REMOVE: @@ -512,18 +508,11 @@ public class SMSService extends XWService { if ( DictLangCache.haveDict( this, nli.lang, nli.dict ) ) { makeForInvite( phone, nli ); } else { - Assert.fail(); - // Intent intent = MultiService - // .makeMissingDictIntent( this, gameName, lang, dict, - // nPlayersT, nPlayersH ); - // intent.putExtra( PHONE, phone ); - // intent.putExtra( MultiService.OWNER, - // MultiService.OWNER_SMS ); - // intent.putExtra( MultiService.INVITER, - // Utils.phoneToContact( this, phone, true ) ); - // intent.putExtra( MultiService.GAMEID, gameID ); - // MultiService.postMissingDictNotification( this, intent, - // gameID ); + Intent intent = MultiService + .makeMissingDictIntent( this, nli, + DictFetchOwner.OWNER_SMS ); + MultiService.postMissingDictNotification( this, intent, + nli.gameID() ); } } else { DbgUtils.logf( "invalid nli from: %s", nliData ); From fe0504a308bdfc60adff59953c11cbf30b2bc462 Mon Sep 17 00:00:00 2001 From: Eric House Date: Thu, 14 Jan 2016 20:45:58 -0800 Subject: [PATCH 19/37] put a different title on notifications when it's now a player's turn. Probably only matters in three-device games, but I like it. --- xwords4/android/XWords4/archive/R.java | 807 +++++++++--------- .../android/XWords4/res/values/strings.xml | 9 +- .../XWords4/res_src/values-ba_CK/strings.xml | 9 +- .../XWords4/res_src/values-ca_PS/strings.xml | 9 +- .../org/eehouse/android/xw4/BTService.java | 7 +- .../org/eehouse/android/xw4/GameUtils.java | 25 +- .../org/eehouse/android/xw4/RelayService.java | 20 +- .../org/eehouse/android/xw4/SMSService.java | 6 +- 8 files changed, 460 insertions(+), 432 deletions(-) diff --git a/xwords4/android/XWords4/archive/R.java b/xwords4/android/XWords4/archive/R.java index b6c260c3b..ecde95aca 100644 --- a/xwords4/android/XWords4/archive/R.java +++ b/xwords4/android/XWords4/archive/R.java @@ -628,7 +628,7 @@ string name="str_robot_moved">O robô fez esta jogada:\u0020 copyright info */ - public static final int about_copyright=0x7f0501cc; + public static final int about_copyright=0x7f0501cd; /** Another paragraph giving credit for work done other than by Eric House and translators Another paragraph giving credit for work done other than by @@ -637,7 +637,7 @@ string name="str_robot_moved">O robô fez esta jogada:\u0020O robô fez esta jogada:\u0020For a manual or sourcecode see: @@ -679,19 +679,19 @@ string name="str_robot_moved">O robô fez esta jogada:\u0020 Another paragraph in the about dialog */ - public static final int about_web=0x7f0501cd; + public static final int about_web=0x7f0501ce; /** %1$s added to %2$s studylist */ - public static final int add_done_fmt=0x7f05027f; + public static final int add_done_fmt=0x7f050280; /** Add %1$s to studylist */ - public static final int add_to_study_fmt=0x7f050279; + public static final int add_to_study_fmt=0x7f05027a; /** Debugging stuff. Localize if you think your langauge users will care. XLATE-ME For debugging */ - public static final int advanced=0x7f0502ea; + public static final int advanced=0x7f0502eb; /** This button takes you to the normal Game Configure screen This button takes you to the normal Game Configure screen Advanced game settings @@ -701,20 +701,20 @@ XLATE-ME /** XLATE-ME You should never need these... */ - public static final int advanced_summary=0x7f0502eb; + public static final int advanced_summary=0x7f0502ec; /** The wordlist %1$s contains only tile information. There are no words to browse. */ - public static final int alert_empty_dict_fmt=0x7f0501ea; + public static final int alert_empty_dict_fmt=0x7f0501eb; public static final int app_name=0x7f050081; /** Unable to connect to Crosswords on the device %1$s. Please check that the device is within range and that Crosswords is installed on it. */ - public static final int app_not_found_fmt=0x7f0502c4; + public static final int app_not_found_fmt=0x7f0502c5; public static final int app_version=0x7f050000; /** the background color of the area outside the board, e.g. between entries in the scoreboard @@ -758,7 +758,7 @@ XLATE-ME Browse wordlist board menu for small devices only */ - public static final int board_menu_dict=0x7f050225; + public static final int board_menu_dict=0x7f050226; /** ############################################################ # :Menus: @@ -798,7 +798,7 @@ XLATE-ME Email author */ - public static final int board_menu_file_email=0x7f0501ef; + public static final int board_menu_file_email=0x7f0501f0; /** menu on Game submenu: brings up dialog listing all tiles in the language of the game along with how many of each there are and how many points each is worth. This display is the @@ -853,7 +853,7 @@ XLATE-ME /** XLATE-ME Network stats */ - public static final int board_menu_game_netstats=0x7f0502f5; + public static final int board_menu_game_netstats=0x7f0502f6; /** Meaningful only for networked games, this menu causes all messages that have not yet been acknowledged by a remote device in the game to be resent. Eventually I hope to be @@ -877,13 +877,13 @@ XLATE-ME public static final int board_menu_game_resign=0x7f050104; /** Invite */ - public static final int board_menu_invite=0x7f050272; + public static final int board_menu_invite=0x7f050273; /** Pass */ - public static final int board_menu_pass=0x7f0501db; + public static final int board_menu_pass=0x7f0501dc; /** This menu begins an exchange of tiles: puts the board into trade mode. This menu begins an exchange of tiles: puts the board into @@ -912,7 +912,7 @@ XLATE-ME Undo/Redo */ - public static final int board_menu_undo_current=0x7f05021f; + public static final int board_menu_undo_current=0x7f050220; /** Undos the last *committed* turn. Note that this is different from the undo button that undoes or redoes an in-progress not-yet-committed turn. This is disabled for networked @@ -1036,38 +1036,38 @@ XLATE-ME continue. */ - public static final int bt_bad_proto_fmt=0x7f0501fe; + public static final int bt_bad_proto_fmt=0x7f0501ff; /** Bluetooth sends to %1$s have failed too many times. Re-open the game to try again. */ - public static final int bt_fail_fmt=0x7f050203; + public static final int bt_fail_fmt=0x7f050204; /** Title of device picker during invitation to a game via Bluetooth Title of device picker during invitation to a game via Bluetooth Bluetooth Invitation */ - public static final int bt_invite_title=0x7f050205; + public static final int bt_invite_title=0x7f050206; /** You currently have no paired Bluetooth devices. Would you like to open the Android Settings Panel to add one or more?\n\n(You may also need to open it on the device you want to pair with.) */ - public static final int bt_no_devs=0x7f0502c3; + public static final int bt_no_devs=0x7f0502c4; /** Turn Bluetooth on In the Bluetooth invite device dialog In the Bluetooth invite device dialog Add all Paired */ - public static final int bt_pick_addall_button=0x7f0501f3; + public static final int bt_pick_addall_button=0x7f0501f4; /** Remove checked */ - public static final int bt_pick_clear_button=0x7f0501f4; + public static final int bt_pick_clear_button=0x7f0501f5; /** Bluetooth send to %1$s failed; retry %3$d in @@ -1076,7 +1076,7 @@ XLATE-ME %3$d dans %2$d secondes. */ - public static final int bt_resend_fmt=0x7f050202; + public static final int bt_resend_fmt=0x7f050203; /** text of button for adding new player to game text for separator above the list of players that's used for networked games. The numbers of local and non-local players @@ -1094,7 +1094,7 @@ XLATE-ME public static final int button_close_game=0x7f050199; /** Decline */ - public static final int button_decline=0x7f050252; + public static final int button_decline=0x7f050253; /** @@ -1177,23 +1177,23 @@ XLATE-ME the other option, for discarding changes that would otherwise reset a game. */ - public static final int button_discard=0x7f0501a8; + public static final int button_discard=0x7f0501a9; /** XLATE-ME Discard changes */ - public static final int button_discard_changes=0x7f0502e2; + public static final int button_discard_changes=0x7f0502e3; /** Done */ - public static final int button_done=0x7f0501d8; + public static final int button_done=0x7f0501d9; /** Done with %1$s */ - public static final int button_done_fmt=0x7f0501d9; + public static final int button_done_fmt=0x7f0501da; /** Text of button displayed when downloading is an option This is an alternative message presented when there's also the option of downloading another wordlist. Game name, @@ -1217,23 +1217,23 @@ XLATE-ME /** XLATE-ME Edit */ - public static final int button_edit=0x7f0502e1; - public static final int button_enable=0x7f050324; + public static final int button_edit=0x7f0502e2; + public static final int button_enable=0x7f050325; /** XLATE-ME Enable Bluetooth */ - public static final int button_enable_bt=0x7f05023d; + public static final int button_enable_bt=0x7f05023e; /** XLATE-ME Enable SMS */ - public static final int button_enable_sms=0x7f05023c; - public static final int button_go_settings=0x7f050274; + public static final int button_enable_sms=0x7f05023d; + public static final int button_go_settings=0x7f050275; /** Invite checked */ - public static final int button_invite=0x7f050204; + public static final int button_invite=0x7f050205; /** text of button to juggle (randomly rearrange order of) players text of button to juggle (randomly rearrange order of) players Shuffle players @@ -1243,7 +1243,7 @@ XLATE-ME /** XLATE-ME Later */ - public static final int button_later=0x7f05023e; + public static final int button_later=0x7f05023f; /** New strings that need to be documented and found a home above. New strings that need to be documented and found a home @@ -1252,25 +1252,25 @@ XLATE-ME New strings that need to be documented and found a home above. */ - public static final int button_lookup=0x7f0501d2; + public static final int button_lookup=0x7f0501d3; /** Look up %1$s */ - public static final int button_lookup_fmt=0x7f0501d4; + public static final int button_lookup_fmt=0x7f0501d5; /** Look up/study words */ - public static final int button_lookup_study=0x7f0501d3; + public static final int button_lookup_study=0x7f0501d4; /** Look up/study %1$s */ - public static final int button_lookup_study_fmt=0x7f0501d5; + public static final int button_lookup_study_fmt=0x7f0501d6; /** Move */ - public static final int button_move=0x7f0501dd; + public static final int button_move=0x7f0501de; /** What is \u200C? English strings are used as keys, so they all need to be unique. This glyph is non-printing and of zero-width, so it should do the trick: @@ -1349,10 +1349,10 @@ XLATE-ME public static final int button_new_group=0x7f050086; /** New group */ - public static final int button_newgroup=0x7f0501de; + public static final int button_newgroup=0x7f0501df; /** No */ - public static final int button_no=0x7f0501a6; + public static final int button_no=0x7f0501a7; /** Text for button in new-user-info dialog with title just above. Text for button in new-user-info dialog with title just @@ -1361,14 +1361,14 @@ XLATE-ME Text for button in new-user-info dialog with title just above. */ - public static final int button_notagain=0x7f0501b4; + public static final int button_notagain=0x7f0501b5; /** Reconnect */ - public static final int button_reconnect=0x7f050264; - public static final int button_reinvite=0x7f0502dc; + public static final int button_reconnect=0x7f050265; + public static final int button_reinvite=0x7f0502dd; /** */ - public static final int button_relay_add=0x7f050210; + public static final int button_relay_add=0x7f050211; /** Button shown in game over dialog triggering creation of new game with the same players and parameters as the one that just ended. @@ -1380,7 +1380,7 @@ XLATE-ME game with the same players and parameters as the one that just ended. */ - public static final int button_rematch=0x7f050263; + public static final int button_rematch=0x7f050264; /** When you select the list_item_reset contextual menu, you are asked to confirm. This is the text of the first button ("Cancel" is the second). @@ -1403,7 +1403,7 @@ XLATE-ME connect to the relay failed because the room named does not exist. (I believe this no longer occurs.) */ - public static final int button_retry=0x7f0501a9; + public static final int button_retry=0x7f0501aa; /** ############################################################ # :Menus: @@ -1454,20 +1454,20 @@ XLATE-ME Save Used in Game config dialog to confirm saving changes that reset a game */ - public static final int button_save=0x7f0501a7; + public static final int button_save=0x7f0501a8; /** Find */ - public static final int button_search=0x7f0501df; + public static final int button_search=0x7f0501e0; /** Import contact */ - public static final int button_sms_add=0x7f05020f; + public static final int button_sms_add=0x7f050210; /** Text of button allowing user to choose to open with a different (but same-language wordlist) Text of button allowing user to choose to open with a @@ -1521,7 +1521,7 @@ XLATE-ME public static final int button_trade_commit=0x7f0500df; /** Button for alert with title above */ - public static final int button_wait=0x7f0502db; + public static final int button_wait=0x7f0502dc; /** ############################################################ # Dialogs @@ -1564,14 +1564,14 @@ XLATE-ME Text for buttons at the bottom of dialogs. These first are in many places. */ - public static final int button_yes=0x7f0501a5; + public static final int button_yes=0x7f0501a6; /** The group for new games, %1$s, cannot be deleted. */ - public static final int cannot_delete_default_group_fmt=0x7f050262; + public static final int cannot_delete_default_group_fmt=0x7f050263; /** Move selected games to: */ - public static final int change_group=0x7f050267; + public static final int change_group=0x7f050268; /** text of button in About Crosswords dialog summoning above dialog text of button in About Crosswords dialog summoning above @@ -1580,7 +1580,7 @@ XLATE-ME text of button in About Crosswords dialog summoning above dialog */ - public static final int changes_button=0x7f0501d1; + public static final int changes_button=0x7f0501d2; /** text of dialog showing the set of changes made since the last release text of dialog showing the set of changes made since the last @@ -1589,7 +1589,7 @@ XLATE-ME text of dialog showing the set of changes made since the last release */ - public static final int changes_title=0x7f0501d0; + public static final int changes_title=0x7f0501d1; /** Prefix for local messages Prefix for local messages Me:\u0020 @@ -1688,17 +1688,17 @@ XLATE-ME public static final int chat_title_fmt=0x7f050182; /** Checking for wordlists in %1$s… */ - public static final int checking_for_fmt=0x7f05031b; + public static final int checking_for_fmt=0x7f05031c; /** Checking */ - public static final int checking_title=0x7f05031a; + public static final int checking_title=0x7f05031b; /** Everything is up-to-date. */ - public static final int checkupdates_none_found=0x7f050240; + public static final int checkupdates_none_found=0x7f050241; /** EXPERIMENTAL: "label" for invite on clipboard. If it's shown it's by some Android utility */ - public static final int clip_label=0x7f05032d; + public static final int clip_label=0x7f05032e; /** color of the "crosshairs", lines drawn vertically and horizontally through the square the user is currently touching in order to guide the fat-fingered (most of us) in @@ -1722,9 +1722,9 @@ XLATE-ME and cannot be saved. Would you like to discard your changes, or edit to give it a way to connect? */ - public static final int config_no_connvia=0x7f0502e0; - public static final int confirm_clear_chat=0x7f05032f; - public static final int confirm_clear_relay=0x7f050217; + public static final int config_no_connvia=0x7f0502e1; + public static final int confirm_clear_chat=0x7f050330; + public static final int confirm_clear_relay=0x7f050218; /** Additional text appended to text confirm_delete_dictf in the wordlist delete confiration dialog in the case where the wordlist to be deleted is the last in its language. The name @@ -1735,14 +1735,14 @@ XLATE-ME of the language is substituted for %1$s. */ public static final int confirm_deleteonly_dicts_fmt=0x7f0500aa; - public static final int confirm_drop_relay=0x7f050320; - public static final int confirm_drop_relay_bt=0x7f050322; - public static final int confirm_drop_relay_sms=0x7f050323; + public static final int confirm_drop_relay=0x7f050321; + public static final int confirm_drop_relay_bt=0x7f050323; + public static final int confirm_drop_relay_sms=0x7f050324; /** Your device is set up for %1$s. Would you like to download a wordlist so you can play Crosswords in %1$s? */ - public static final int confirm_get_locdict_fmt=0x7f0502e9; + public static final int confirm_get_locdict_fmt=0x7f0502ea; /** Text of confirmation dialog for above Text of confirmation dialog for above Are you sure you want to restore @@ -1812,37 +1812,37 @@ XLATE-ME enabled? */ - public static final int confirm_sms_expl=0x7f050235; + public static final int confirm_sms_expl=0x7f050236; /** No: leave disabled */ - public static final int confirm_sms_leave=0x7f050237; + public static final int confirm_sms_leave=0x7f050238; /** Enable play via SMS? */ - public static final int confirm_sms_prompt=0x7f050236; + public static final int confirm_sms_prompt=0x7f050237; /** Confirm your SMS plan */ - public static final int confirm_sms_title=0x7f050234; + public static final int confirm_sms_title=0x7f050235; /** Yes: I have unlimited texting */ - public static final int confirm_sms_unlimited=0x7f050238; + public static final int confirm_sms_unlimited=0x7f050239; /** Yes: I\'ll pay all carrier charges */ - public static final int confirm_sms_willpay=0x7f050239; + public static final int confirm_sms_willpay=0x7f05023a; /** text of dialog shown when the menu item board_menu_undo_last is chosen. text of dialog shown when the menu item board_menu_undo_last @@ -1914,7 +1914,7 @@ XLATE-ME */ - public static final int connect_label_sms=0x7f050218; + public static final int connect_label_sms=0x7f050219; /** These are the possible values for the connect_frequency setting presented as a drop-down list. These are the possible values for the connect_frequency @@ -1936,70 +1936,70 @@ XLATE-ME /** XLATE-ME Change Communicate via */ - public static final int connection_via_label=0x7f0502d6; + public static final int connection_via_label=0x7f0502d7; /** (Last failure was %1$s) */ - public static final int connstat_lastother_succ_fmt=0x7f05022c; + public static final int connstat_lastother_succ_fmt=0x7f05022d; /** (Last successful send was %1$s) */ - public static final int connstat_lastother_unsucc_fmt=0x7f05022d; + public static final int connstat_lastother_unsucc_fmt=0x7f05022e; /** Last receipt was %1$s */ - public static final int connstat_lastreceipt_fmt=0x7f05022e; + public static final int connstat_lastreceipt_fmt=0x7f05022f; /** Last send was %1$s (%2$s) */ - public static final int connstat_lastsend_fmt=0x7f05022b; + public static final int connstat_lastsend_fmt=0x7f05022c; /** Network status for game connected via %1$s: */ - public static final int connstat_net_fmt=0x7f050228; - public static final int connstat_net_noaddr=0x7f050227; + public static final int connstat_net_fmt=0x7f050229; + public static final int connstat_net_noaddr=0x7f050228; /** No messages have been received. */ - public static final int connstat_noreceipt=0x7f05022f; + public static final int connstat_noreceipt=0x7f050230; /** internet/relay */ - public static final int connstat_relay=0x7f050230; + public static final int connstat_relay=0x7f050231; /** sms/texting */ - public static final int connstat_sms=0x7f050231; + public static final int connstat_sms=0x7f050232; /** successful */ - public static final int connstat_succ=0x7f050229; + public static final int connstat_succ=0x7f05022a; /** unsuccessful */ - public static final int connstat_unsucc=0x7f05022a; + public static final int connstat_unsucc=0x7f05022b; /** title of dialog brought up in response to the board_menu_game_counts menu. The dialog lists all tiles in the language being used for the game together with how many @@ -2014,31 +2014,31 @@ XLATE-ME the language being used for the game together with how many of each there are are and how many points each is worth. */ - public static final int counts_values_title=0x7f0501ae; + public static final int counts_values_title=0x7f0501af; /** %1$s (in use) */ - public static final int cur_menu_marker_fmt=0x7f050271; + public static final int cur_menu_marker_fmt=0x7f050272; /** Tile picker\n(so far: %1$s) */ - public static final int cur_tiles_fmt=0x7f0501e3; + public static final int cur_tiles_fmt=0x7f0501e4; /** SMS Data is only available on GSM phones. */ - public static final int data_gsm_only=0x7f05028e; + public static final int data_gsm_only=0x7f05028f; /** SD card write complete. */ - public static final int db_store_done=0x7f05031c; + public static final int db_store_done=0x7f05031d; /** XLATE-ME Enable debug features */ - public static final int debug_features=0x7f0502f1; + public static final int debug_features=0x7f0502f2; /** XLATE-ME Menuitems etc. (release builds only) */ - public static final int debug_features_summary=0x7f0502f2; + public static final int debug_features_summary=0x7f0502f3; /** dictionary used by default for human players when creating new game clarification of above @@ -2066,13 +2066,13 @@ XLATE-ME label within default wordlists in app preferences Default language */ - public static final int default_language=0x7f0502c5; + public static final int default_language=0x7f0502c6; /** Store wordlists internally */ - public static final int default_loc=0x7f050255; + public static final int default_loc=0x7f050256; /** (Not in external/sdcard memory) */ - public static final int default_loc_summary=0x7f050256; + public static final int default_loc_summary=0x7f050257; /** Welcome dialog text Welcome dialog text Thanks for installing @@ -2081,7 +2081,7 @@ XLATE-ME game default\" section of Settings.) Welcome dialog text */ - public static final int default_name_message=0x7f0501ca; + public static final int default_name_message=0x7f0501cb; /** ########################################################### # :Dialogs: @@ -2123,7 +2123,7 @@ XLATE-ME Welcome dialog title */ - public static final int default_name_title=0x7f0501c9; + public static final int default_name_title=0x7f0501ca; /** default new-game setting for handline phonies (words not found in the word list) default new-game setting for handline phonies (words not @@ -2145,8 +2145,8 @@ XLATE-ME public static final int default_update_url=0x7f050080; /** Delete wordlist[s] */ - public static final int delete_dicts=0x7f0502b0; - public static final int devid_title=0x7f0502f8; + public static final int delete_dicts=0x7f0502b1; + public static final int devid_title=0x7f0502f9; /** Playing via SMS is currently disabled. You can enable it in Settings->Network game settings. @@ -2157,14 +2157,14 @@ XLATE-ME */ - public static final int dft_sms_name_fmt=0x7f05020d; + public static final int dft_sms_name_fmt=0x7f05020e; /** No word in %1$s starts with %2$s. */ - public static final int dict_browse_nowords_fmt=0x7f0501e7; + public static final int dict_browse_nowords_fmt=0x7f0501e8; /** %1$s (%2$d words using %3$d @@ -2172,7 +2172,7 @@ XLATE-ME %1$s (%2$d mots utilisant %3$d jetons) */ - public static final int dict_browse_title1_fmt=0x7f0501e6; + public static final int dict_browse_title1_fmt=0x7f0501e7; /** %1$s (%2$d words using %3$d-%4$d @@ -2181,18 +2181,18 @@ XLATE-ME %4$d jetons) */ - public static final int dict_browse_title_fmt=0x7f0501e5; + public static final int dict_browse_title_fmt=0x7f0501e6; /** %1$s (%2$s/%3$d words) */ - public static final int dict_desc_fmt=0x7f0502b7; + public static final int dict_desc_fmt=0x7f0502b8; /** XLATE-ME Wordlist download URL */ - public static final int dict_host=0x7f0502ee; + public static final int dict_host=0x7f0502ef; /** Number of words: %1$d\nDownload size: %2$dK\nNote: %3$s */ - public static final int dict_info_fmt=0x7f0502b4; + public static final int dict_info_fmt=0x7f0502b5; /** label for dropdown by which wordlist is chosen that this player will use. The language the game will use (which constrains the choice of wordlists) is substituted in for @@ -2210,7 +2210,7 @@ XLATE-ME public static final int dict_lang_label_fmt=0x7f0500db; /** Tap to download */ - public static final int dict_on_server=0x7f0502b6; + public static final int dict_on_server=0x7f0502b7; /** string name="invite_mime">text/plainDo not notify me no matter how long it\'s been my turn */ - public static final int disable_nag_summary=0x7f0502e7; + public static final int disable_nag_summary=0x7f0502e8; /** Disable turn reminders */ - public static final int disable_nag_title=0x7f0502e6; - public static final int disable_nags_title=0x7f0502e5; + public static final int disable_nag_title=0x7f0502e7; + public static final int disable_nags_title=0x7f0502e6; /** text of item at bottom of dicts choice spinner. It launches the browser pointed at the site where additional wordlists can be found. @@ -2326,23 +2326,23 @@ XLATE-ME public static final int download_dicts=0x7f0500a5; /** Download finished */ - public static final int download_done=0x7f050253; + public static final int download_done=0x7f050254; /** Download unsuccessful */ - public static final int download_failed=0x7f050254; + public static final int download_failed=0x7f050255; /** Downloads Directory */ - public static final int download_path_title=0x7f050257; + public static final int download_path_title=0x7f050258; /** Downloading %1$s… */ public static final int downloading_dict_fmt=0x7f050196; - public static final int drop_relay_warning_fmt=0x7f05031f; + public static final int drop_relay_warning_fmt=0x7f050320; /** Display snapshots of games Display snapshots of games Invitation received but ignored: it has already been used to create a game. */ - public static final int dropped_dupe=0x7f050270; + public static final int dropped_dupe=0x7f050271; /** Shown in the main screen when you launch Crosswords from an invitation (received in email or messaging app, say) and there's already a game running that matches that invitation. @@ -2368,13 +2368,13 @@ XLATE-ME the same room name over and over so they'll get this warning and it's harmless to ignore it. */ - public static final int dup_game_query_fmt=0x7f0501aa; + public static final int dup_game_query_fmt=0x7f0501ab; /** Send comment via */ - public static final int email_author_chooser=0x7f0501f1; + public static final int email_author_chooser=0x7f0501f2; /** Nor is my email address */ public static final int email_author_email=0x7f05007a; @@ -2383,13 +2383,13 @@ XLATE-ME Should not be translated */ - public static final int email_author_subject=0x7f0501f0; + public static final int email_author_subject=0x7f0501f1; /** Should not be translated */ - public static final int email_body_rev_fmt=0x7f0501f2; + public static final int email_body_rev_fmt=0x7f0501f3; /** color of empty squares on the board (that are not bonus squares) color of empty squares on the board (that are not bonus squares) Empty cell/background @@ -2398,7 +2398,7 @@ XLATE-ME public static final int empty=0x7f05014b; /** */ - public static final int empty_relay_inviter=0x7f050214; + public static final int empty_relay_inviter=0x7f050215; /** Shows in SMS Invite dialog when no phone numbers have been saved previously Shows in SMS Invite dialog when no phone numbers have been saved previously This phone list is empty. Use the @@ -2406,58 +2406,58 @@ XLATE-ME button to enter numbers directly. */ - public static final int empty_sms_inviter=0x7f050213; + public static final int empty_sms_inviter=0x7f050214; /** XLATE-ME Accept invitations more than once */ - public static final int enable_dupes_summary=0x7f050300; + public static final int enable_dupes_summary=0x7f050301; /** XLATE-ME Accept duplicate invites */ - public static final int enable_dupes_title=0x7f0502fe; + public static final int enable_dupes_title=0x7f0502ff; /** NFC is turned off on this device. You can use the Android Settings app to turn it on . */ - public static final int enable_nfc=0x7f050273; + public static final int enable_nfc=0x7f050274; /** XLATE-ME Fake invitation to aid debugging */ - public static final int enable_nfc_toself_summary=0x7f050303; + public static final int enable_nfc_toself_summary=0x7f050304; /** XLATE-ME Enable NFC to self */ - public static final int enable_nfc_toself_title=0x7f050302; + public static final int enable_nfc_toself_title=0x7f050303; /** XLATE-ME Rooms others can see and join */ - public static final int enable_pubroom_summary=0x7f0502d5; + public static final int enable_pubroom_summary=0x7f0502d6; /** XLATE-ME Enable public rooms */ - public static final int enable_pubroom_title=0x7f0502d4; - public static final int enable_relay_toself_summary=0x7f05032b; - public static final int enable_relay_toself_title=0x7f05032a; + public static final int enable_pubroom_title=0x7f0502d5; + public static final int enable_relay_toself_summary=0x7f05032c; + public static final int enable_relay_toself_title=0x7f05032b; /** Allow games via SMS */ - public static final int enable_sms=0x7f050232; + public static final int enable_sms=0x7f050233; /** Only if you have unlimited texting! */ - public static final int enable_sms_summary=0x7f050233; + public static final int enable_sms_summary=0x7f050234; /** XLATE-ME Skip radio when phone numbers same */ - public static final int enable_sms_toself_summary=0x7f050305; + public static final int enable_sms_toself_summary=0x7f050306; /** XLATE-ME Short-circuit SMS to self */ - public static final int enable_sms_toself_title=0x7f050304; + public static final int enable_sms_toself_title=0x7f050305; /** Tap tiles to select… */ public static final int entering_trade=0x7f0500e1; @@ -2466,11 +2466,11 @@ XLATE-ME device \"%1$s\" has already accepted an invitation to this game. */ - public static final int err_dup_invite_fmt=0x7f0502cf; + public static final int err_dup_invite_fmt=0x7f0502d0; /** XLATE-ME Update checks URL */ - public static final int expl_update_url=0x7f05030f; + public static final int expl_update_url=0x7f050310; /** if this preference is checked, a dialog will be posted every time a robot makes a move or a move is received from a remote player. @@ -2495,7 +2495,7 @@ XLATE-ME explanation of the above */ public static final int explain_robot_summary=0x7f050154; - public static final int fetching_from_relay=0x7f050331; + public static final int fetching_from_relay=0x7f050332; /** title of dialog brought up in response to the board_menu_game_final menu. The dialog displays the final score and an accounting of it (including subtractions for @@ -2513,7 +2513,7 @@ XLATE-ME running out the game timer if there is one.) */ - public static final int finalscores_title=0x7f0501b0; + public static final int finalscores_title=0x7f0501b1; /** Explanatory text appears in the dialog Explanatory text appears in the dialog In a multi-device game there must be at @@ -2525,13 +2525,13 @@ XLATE-ME /** XLATE-ME Pretend to have radio */ - public static final int force_radio_title=0x7f050306; + public static final int force_radio_title=0x7f050307; /** Even if my screen is too small */ - public static final int force_tablet_summary=0x7f0502bb; + public static final int force_tablet_summary=0x7f0502bc; /** Force tablet layout */ - public static final int force_tablet_title=0x7f0502ba; + public static final int force_tablet_title=0x7f0502bb; /** ############################################################ # :Dialogs: @@ -2601,7 +2601,7 @@ XLATE-ME */ - public static final int game_btname_title=0x7f050208; + public static final int game_btname_title=0x7f050209; /** used to create default names of games (when user has not named them.) used to create default names of games (when user has not @@ -2644,7 +2644,7 @@ XLATE-ME Building game summary… */ - public static final int game_list_tmp=0x7f050226; + public static final int game_list_tmp=0x7f050227; /** text of checkbox at top of dialog allowing to unlock in-play game to make changes text of checkbox at top of dialog allowing to unlock in-play @@ -2656,17 +2656,17 @@ XLATE-ME public static final int game_locked=0x7f0500b5; /** Name group */ - public static final int game_name_group_title=0x7f050261; + public static final int game_name_group_title=0x7f050262; /** XLATE-ME New game name: */ - public static final int game_name_label=0x7f05020a; + public static final int game_name_label=0x7f05020b; /** XLATE-ME Name your game */ - public static final int game_name_title=0x7f050209; + public static final int game_name_title=0x7f05020a; /** @@ -2681,7 +2681,7 @@ XLATE-ME /** XLATE-ME gameid */ - public static final int game_summary_field_gameid=0x7f05030d; + public static final int game_summary_field_gameid=0x7f05030e; /** Put the language there, so it reads "Game 2 (English)" Put the language there, so it reads "Game 2 (English)" Game language\u200C @@ -2691,7 +2691,7 @@ XLATE-ME /** XLATE-ME Pending packet count */ - public static final int game_summary_field_npackets=0x7f05030e; + public static final int game_summary_field_npackets=0x7f05030f; /** List names of opponents (summarized), e.g. "Game 2 (vs Kati)" List names of opponents (summarized), e.g. "Game 2 (vs Kati)" Opponent name[s] @@ -2701,7 +2701,7 @@ XLATE-ME /** XLATE-ME rowid */ - public static final int game_summary_field_rowid=0x7f05030c; + public static final int game_summary_field_rowid=0x7f05030d; /** List the state of the game, "Game over" or "10 moves made" etc. List the state of the game, "Game over" or "10 moves made" @@ -2730,7 +2730,7 @@ XLATE-ME Check for updates */ - public static final int gamel_menu_checkupdates=0x7f05023f; + public static final int gamel_menu_checkupdates=0x7f050240; /** ############################################################ # :Menus: @@ -2773,46 +2773,46 @@ XLATE-ME /** XLATE-ME Load DB from SD card */ - public static final int gamel_menu_loaddb=0x7f0502fd; + public static final int gamel_menu_loaddb=0x7f0502fe; /** XLATE-ME %1$s/%2$s XLATE-ME Write DB to SD card */ - public static final int gamel_menu_storedb=0x7f0502fc; + public static final int gamel_menu_storedb=0x7f0502fd; /** Studylist… */ - public static final int gamel_menu_study=0x7f05027c; - public static final int get_relay_number=0x7f050216; + public static final int gamel_menu_study=0x7f05027d; + public static final int get_relay_number=0x7f050217; /** Enter phone number: */ - public static final int get_sms_number=0x7f050215; + public static final int get_sms_number=0x7f050216; /** Get info */ - public static final int getinfo=0x7f0502af; + public static final int getinfo=0x7f0502b0; public static final int git_rev=0x7f050082; /** XLATE-ME Source version id */ - public static final int git_rev_title=0x7f0502f7; + public static final int git_rev_title=0x7f0502f8; /** Don\'t try a second time */ - public static final int got_langdict_summary=0x7f050311; + public static final int got_langdict_summary=0x7f050312; /** Fetch default wordlist for language */ - public static final int got_langdict_title=0x7f050310; + public static final int got_langdict_title=0x7f050311; /** Green */ public static final int green=0x7f05014f; /** My games */ - public static final int group_cur_games=0x7f05025e; + public static final int group_cur_games=0x7f05025f; /** New games */ - public static final int group_new_games=0x7f05025f; + public static final int group_new_games=0x7f050260; /** Used as the default name for remote players displayed within the Game configure screen Final state: game is over. @@ -2936,7 +2936,7 @@ XLATE-ME to the last turn is displayed, though details about what's in players' racks is left out if the game is not yet over. */ - public static final int history_title=0x7f0501af; + public static final int history_title=0x7f0501b0; /** Partial text of alert posted when phonies_warn or phonies_disallow is the current setting and a "phony" is played. One of the two following strings will be appended @@ -2970,7 +2970,7 @@ XLATE-ME item with text board_menu_game_final and the game is not over */ - public static final int ids_endnow=0x7f0501b1; + public static final int ids_endnow=0x7f0501b2; /** Title of generic dialog used to display information If the dropdown is selected, this is the title displayed above the list of selectable items. The language the game @@ -2983,7 +2983,7 @@ XLATE-ME FYI… Title of generic dialog used to display information */ - public static final int info_title=0x7f0501ab; + public static final int info_title=0x7f0501ac; /** You are using the wordlist @@ -2991,7 +2991,7 @@ XLATE-ME too? */ - public static final int inform_dict_diffdict_fmt=0x7f05024a; + public static final int inform_dict_diffdict_fmt=0x7f05024b; /** You and the host of this @@ -3000,14 +3000,14 @@ XLATE-ME Used in formatting final scores display */ - public static final int inform_dict_diffversion_fmt=0x7f050248; + public static final int inform_dict_diffversion_fmt=0x7f050249; /** \u0020(You will have to download it first.) */ - public static final int inform_dict_download=0x7f05024b; + public static final int inform_dict_download=0x7f05024c; /** Wordlist mismatch */ - public static final int inform_dict_title=0x7f050249; + public static final int inform_dict_title=0x7f05024a; /** Will new games, on default, randomly rearrange the start order of players. Will new games, on default, randomly rearrange the start @@ -3094,22 +3094,22 @@ XLATE-ME /** EXPERIMENTAL: Shown as toast when user chooses "My choice" for invitation */ - public static final int invite_copied=0x7f05032c; + public static final int invite_copied=0x7f05032d; /** %1$s has invited you to play Crosswords using the wordlist %2$s (for play in %3$s), but it is not installed. Would you like to download the wordlist or decline the invitation? */ - public static final int invite_dict_missing_body_fmt=0x7f050250; + public static final int invite_dict_missing_body_fmt=0x7f050251; /** You have been invited to play Crosswords using the wordlist %2$s (for play in %3$s), but it is not installed. Would you like to download the wordlist? */ - public static final int invite_dict_missing_body_noname_fmt=0x7f050251; + public static final int invite_dict_missing_body_noname_fmt=0x7f050252; /** Missing wordlist */ - public static final int invite_dict_missing_title=0x7f05024f; + public static final int invite_dict_missing_title=0x7f050250; public static final int invite_host=0x7f05007d; /** This is the body of the html version of the invitation. A URL is created with parameters describing the game and @@ -3147,11 +3147,11 @@ XLATE-ME /** XLATE-ME Invite more than one player per remote device */ - public static final int invite_multi_summary=0x7f0502d3; + public static final int invite_multi_summary=0x7f0502d4; /** XLATE-ME Invite multiple */ - public static final int invite_multi_title=0x7f0502d2; + public static final int invite_multi_title=0x7f0502d3; /** Most users create games with only two players, which is the default, but Crosswords supports up to four. When I'm using the above string to encourage the opener of a game missing @@ -3175,23 +3175,23 @@ XLATE-ME /** */ - public static final int invite_notice_title=0x7f0501fb; + public static final int invite_notice_title=0x7f0501fc; public static final int invite_prefix=0x7f050084; /** Sending invitation to Crosswords on %1$s */ - public static final int invite_progress_fmt=0x7f0501f6; + public static final int invite_progress_fmt=0x7f0501f7; /** Connecting... */ - public static final int invite_progress_title=0x7f0501f5; + public static final int invite_progress_title=0x7f0501f6; /** XLATE-ME (This dialog will stay up until all remote players have connected. You can close the game if you expect it to take a while. They will still be able to connect.) */ - public static final int invite_stays=0x7f0502dd; + public static final int invite_stays=0x7f0502de; /** Send invitation using SMS (texting) or via email? Send invitation using NFC (Android @@ -3420,44 +3420,44 @@ XLATE-ME different wordlists.) */ public static final int lang_label=0x7f0500ba; - public static final int lang_name_arabic=0x7f050299; - public static final int lang_name_catalan=0x7f0502a0; - public static final int lang_name_czech=0x7f0502a3; - public static final int lang_name_danish=0x7f05029d; - public static final int lang_name_dutch=0x7f05029f; - public static final int lang_name_english=0x7f050295; - public static final int lang_name_french=0x7f050296; - public static final int lang_name_german=0x7f050297; - public static final int lang_name_greek=0x7f0502a4; - public static final int lang_name_italian=0x7f05029e; - public static final int lang_name_polish=0x7f05029c; - public static final int lang_name_portuguese=0x7f0502a1; - public static final int lang_name_russian=0x7f0502a2; - public static final int lang_name_slovak=0x7f0502a5; - public static final int lang_name_spanish=0x7f05029a; - public static final int lang_name_swedish=0x7f05029b; - public static final int lang_name_turkish=0x7f050298; + public static final int lang_name_arabic=0x7f05029a; + public static final int lang_name_catalan=0x7f0502a1; + public static final int lang_name_czech=0x7f0502a4; + public static final int lang_name_danish=0x7f05029e; + public static final int lang_name_dutch=0x7f0502a0; + public static final int lang_name_english=0x7f050296; + public static final int lang_name_french=0x7f050297; + public static final int lang_name_german=0x7f050298; + public static final int lang_name_greek=0x7f0502a5; + public static final int lang_name_italian=0x7f05029f; + public static final int lang_name_polish=0x7f05029d; + public static final int lang_name_portuguese=0x7f0502a2; + public static final int lang_name_russian=0x7f0502a3; + public static final int lang_name_slovak=0x7f0502a6; + public static final int lang_name_spanish=0x7f05029b; + public static final int lang_name_swedish=0x7f05029c; + public static final int lang_name_turkish=0x7f050299; /** Unknown */ - public static final int lang_unknown=0x7f0502b8; + public static final int lang_unknown=0x7f0502b9; /** Game language/wordlist */ public static final int langdict_label=0x7f0500bb; /** Put new games here */ - public static final int list_group_default=0x7f05025b; + public static final int list_group_default=0x7f05025c; /** Delete group */ - public static final int list_group_delete=0x7f050259; + public static final int list_group_delete=0x7f05025a; /** Move down */ - public static final int list_group_movedown=0x7f05025d; + public static final int list_group_movedown=0x7f05025e; /** Move up */ - public static final int list_group_moveup=0x7f05025c; + public static final int list_group_moveup=0x7f05025d; /** Rename */ - public static final int list_group_rename=0x7f05025a; + public static final int list_group_rename=0x7f05025b; /** ############## menu items ############## pulls up dialog to configure the selected game Used to format game name plus some other information as the @@ -3494,7 +3494,7 @@ XLATE-ME pulls up dialog to delete the selected game */ public static final int list_item_delete=0x7f05009c; - public static final int list_item_deselect=0x7f050334; + public static final int list_item_deselect=0x7f050335; /** pulls up dialog to change the group of the selected game pulls up dialog to change the group of the selected game pulls up dialog to change the group of the selected game @@ -3533,18 +3533,18 @@ XLATE-ME except for any configuration. */ public static final int list_item_reset=0x7f05009d; - public static final int list_item_select=0x7f050333; + public static final int list_item_select=0x7f050334; /** formatting for last move summary in notifications formatting for last move summary in notifications %1$s passed (0 points) */ - public static final int lmi_pass_fmt=0x7f0502c0; + public static final int lmi_pass_fmt=0x7f0502c1; /** %1$s lost a turn */ - public static final int lmi_phony_fmt=0x7f0502c1; + public static final int lmi_phony_fmt=0x7f0502c2; /** Tiles assigned to %1$s */ - public static final int lmi_tiles_fmt=0x7f0502c2; + public static final int lmi_tiles_fmt=0x7f0502c3; /** One of the strings used in the right column of the list of installed wordlists to describe those that are part of Crosswords and that cannot be uninstalled or moved. @@ -3586,24 +3586,24 @@ XLATE-ME public static final int loc_external=0x7f0500b1; /** All */ - public static final int loc_filters_all=0x7f050291; + public static final int loc_filters_all=0x7f050292; /** Latest menu */ - public static final int loc_filters_menu=0x7f050293; + public static final int loc_filters_menu=0x7f050294; /** Modified by me */ - public static final int loc_filters_modified=0x7f050294; + public static final int loc_filters_modified=0x7f050295; /** Filter by: */ - public static final int loc_filters_prompt=0x7f05028f; + public static final int loc_filters_prompt=0x7f050290; /** Latest screen */ - public static final int loc_filters_screen=0x7f050292; + public static final int loc_filters_screen=0x7f050293; /** Illegal translation: a translated string must have the same format specifiers (e.g. %1$s) as the original. */ - public static final int loc_fmts_mismatch=0x7f0502aa; + public static final int loc_fmts_mismatch=0x7f0502ab; /** see move_dictf above see move_dictf above see move_dictf above @@ -3611,30 +3611,30 @@ XLATE-ME public static final int loc_internal=0x7f0500b0; /** Check */ - public static final int loc_item_check=0x7f0502a7; + public static final int loc_item_check=0x7f0502a8; /** for loc item edit menu for loc item edit menu Clear */ - public static final int loc_item_clear=0x7f0502a6; + public static final int loc_item_clear=0x7f0502a7; /** Copy official */ - public static final int loc_item_copy_bless=0x7f0502a9; + public static final int loc_item_copy_bless=0x7f0502aa; /** Copy English */ - public static final int loc_item_copy_eng=0x7f0502a8; + public static final int loc_item_copy_eng=0x7f0502a9; /** %1$s (official) */ - public static final int loc_lang_blessed=0x7f05028a; + public static final int loc_lang_blessed=0x7f05028b; /** %1$s (yours) */ - public static final int loc_lang_local=0x7f05028b; + public static final int loc_lang_local=0x7f05028c; /** Translate */ - public static final int loc_menu_xlate=0x7f050289; + public static final int loc_menu_xlate=0x7f05028a; /** Search for: */ - public static final int loc_search_prompt=0x7f050290; + public static final int loc_search_prompt=0x7f050291; /** This is the "hint" printed in light text in the empty player name field ############################################################ @@ -3685,56 +3685,56 @@ XLATE-ME /** XLATE-ME Enable logging */ - public static final int logging_on=0x7f0502ef; + public static final int logging_on=0x7f0502f0; /** XLATE-ME (release builds only) */ - public static final int logging_on_summary=0x7f0502f0; + public static final int logging_on_summary=0x7f0502f1; /** Word lookup */ - public static final int lookup_title=0x7f050285; + public static final int lookup_title=0x7f050286; /** (Not in contacts) */ - public static final int manual_owner_name=0x7f050211; + public static final int manual_owner_name=0x7f050212; /** Max length */ - public static final int max_len=0x7f0501ec; + public static final int max_len=0x7f0501ed; /** Chat */ - public static final int menu_chat=0x7f050223; + public static final int menu_chat=0x7f050224; /** Flip board */ - public static final int menu_flip=0x7f050221; + public static final int menu_flip=0x7f050222; /** Next hint */ - public static final int menu_hint_next=0x7f05021e; + public static final int menu_hint_next=0x7f05021f; /** Prev hint */ - public static final int menu_hint_prev=0x7f05021d; + public static final int menu_hint_prev=0x7f05021e; /** Juggle rack */ - public static final int menu_juggle=0x7f050220; + public static final int menu_juggle=0x7f050221; /** text of menu that brings up the Settings (preferences) dialog text of menu that brings up the Settings (preferences) dialog text of menu that brings up the Settings (preferences) dialog @@ -3742,25 +3742,25 @@ XLATE-ME public static final int menu_prefs=0x7f050093; /** Rate Crosswords */ - public static final int menu_rateme=0x7f050277; + public static final int menu_rateme=0x7f050278; /** Toggle values */ - public static final int menu_toggle_values=0x7f050224; + public static final int menu_toggle_values=0x7f050225; /** Zoom in/out */ - public static final int menu_zoom=0x7f050222; + public static final int menu_zoom=0x7f050223; /** Min length */ - public static final int min_len=0x7f0501eb; + public static final int min_len=0x7f0501ec; /** label for the field used to set the timer's inital value label for the field used to set the timer's inital value Minutes per player @@ -3773,14 +3773,14 @@ XLATE-ME wordslist that's not installed Tap to download missing wordlist */ - public static final int missing_dict_detail=0x7f05024e; + public static final int missing_dict_detail=0x7f05024f; /** Title of notification shown when invitation requires a wordslist that's not installed Title of notification shown when invitation requires a wordslist that's not installed Game invitation pending */ - public static final int missing_dict_title=0x7f05024d; + public static final int missing_dict_title=0x7f05024e; /** Used as a substitute for the names of remote players when they aren't available yet because the connection is not complete. Displayed in the lists of players found in each @@ -3931,26 +3931,26 @@ XLATE-ME public static final int msgs_progress=0x7f050095; /** %1$s moved more than %2$s ago. */ - public static final int nag_body_fmt=0x7f0502bd; + public static final int nag_body_fmt=0x7f0502be; /** XLATE-ME Reminder intervals (minutes1,minutes2,...) */ - public static final int nag_intervals=0x7f050301; + public static final int nag_intervals=0x7f050302; /** Nagging: title of notification reminder message Nagging: title of notification reminder message Reminder: It\'s your turn */ - public static final int nag_title=0x7f0502bc; + public static final int nag_title=0x7f0502bd; /** above is inserted in this the last time I warn above is inserted in this the last time I warn Last warning: %1$s */ - public static final int nag_warn_last_fmt=0x7f0502be; + public static final int nag_warn_last_fmt=0x7f0502bf; /** XLATE-ME %1$s copy */ - public static final int name_copy_fmt=0x7f05020b; - public static final int name_dict_fmt=0x7f0502fb; + public static final int name_copy_fmt=0x7f05020c; + public static final int name_dict_fmt=0x7f0502fc; public static final int nbs_port=0x7f050083; /** text of checkbox. If this checkbox is checked, games created for network play will by default have the hint feature @@ -3979,15 +3979,15 @@ XLATE-ME /** XLATE-ME Game network stats */ - public static final int netstats_title=0x7f0502f6; + public static final int netstats_title=0x7f0502f7; /** XLATE-ME For experienced players */ - public static final int network_advanced_summary=0x7f0502d1; + public static final int network_advanced_summary=0x7f0502d2; /** XLATE-ME Advanced */ - public static final int network_advanced_title=0x7f0502d0; + public static final int network_advanced_title=0x7f0502d1; /** Network game settings */ public static final int network_behavior=0x7f05015f; @@ -4003,13 +4003,13 @@ XLATE-ME Tap to download and install */ - public static final int new_app_avail=0x7f050244; + public static final int new_app_avail=0x7f050245; /** New version of %1$s */ - public static final int new_app_avail_fmt=0x7f050243; + public static final int new_app_avail_fmt=0x7f050244; /** New game via Bluetooth @@ -4018,61 +4018,61 @@ XLATE-ME */ - public static final int new_bt_body_fmt=0x7f0501fc; + public static final int new_bt_body_fmt=0x7f0501fd; /** */ - public static final int new_btmove_title=0x7f050200; + public static final int new_btmove_title=0x7f050201; /** New wordlist available */ - public static final int new_dict_avail=0x7f050241; + public static final int new_dict_avail=0x7f050242; /** Tap to update %1$s */ - public static final int new_dict_avail_fmt=0x7f050242; + public static final int new_dict_avail_fmt=0x7f050243; /** XLATE-ME New one-device game */ - public static final int new_game=0x7f0502c7; + public static final int new_game=0x7f0502c8; /** XLATE-ME Would you like to create this game using default settings?\n\nOr would you like to configure it first? */ - public static final int new_game_message=0x7f0502ca; + public static final int new_game_message=0x7f0502cb; /** XLATE-ME (You will have a chance to invite other players when it is open.) */ - public static final int new_game_message_net=0x7f0502cc; + public static final int new_game_message_net=0x7f0502cd; /** XLATE-ME This game must be configured before it can be opened. */ - public static final int new_game_message_nodflt=0x7f0502cb; + public static final int new_game_message_nodflt=0x7f0502cc; /** XLATE-ME New networked game */ - public static final int new_game_networked=0x7f0502c8; + public static final int new_game_networked=0x7f0502c9; /** One or more moves has arrived */ - public static final int new_move_body=0x7f050201; + public static final int new_move_body=0x7f050202; /** %1$s has invited you to play */ - public static final int new_name_body_fmt=0x7f05020e; - public static final int new_relay_body=0x7f0501fd; + public static final int new_name_body_fmt=0x7f05020f; + public static final int new_relay_body=0x7f0501fe; /** hint (text shown when field is empty) for room name field hint (text shown when field is empty) for room name field Room name @@ -4114,7 +4114,7 @@ XLATE-ME Title of New user info dialog */ - public static final int newbie_title=0x7f0501b3; + public static final int newbie_title=0x7f0501b4; /** section separator (white-on-gray bar) for third section: bluetooth games section separator (white-on-gray bar) for third section: @@ -4251,16 +4251,16 @@ XLATE-ME */ - public static final int newgame_sms_header=0x7f05020c; + public static final int newgame_sms_header=0x7f05020d; /** Name your new group: */ - public static final int newgroup_label=0x7f050258; + public static final int newgroup_label=0x7f050259; /** XLATE-ME To invite via NFC just touch the back of this device against the one you want to invite—any time the game is open. */ - public static final int nfc_just_tap=0x7f0502de; + public static final int nfc_just_tap=0x7f0502df; /** XLATE-ME GSM XLATE-ME @@ -4268,7 +4268,7 @@ XLATE-ME XLATE-ME Send via NFC to self? */ - public static final int nfc_to_self=0x7f05030b; + public static final int nfc_to_self=0x7f05030c; /** Title of dialog for renaming game (triggered by selecting list_item_rename) If you try to copy a networked game you get this error @@ -4512,7 +4512,7 @@ XLATE-ME public static final int no_games_to_refresh=0x7f050096; /** Google Play app not found */ - public static final int no_market=0x7f050278; + public static final int no_market=0x7f050279; /** displayed when you long-tap a scoreboard entry and there's no most recent score to show displayed when you long-tap a scoreboard entry and there's no @@ -4536,7 +4536,7 @@ XLATE-ME substituted. */ public static final int no_name_found_fmt=0x7f0500c2; - public static final int no_relay_conn=0x7f05031e; + public static final int no_relay_conn=0x7f05031f; /** This is not currently shown Crosswords wordlists, which are just compressed lists of words plus tile information, determine @@ -4578,25 +4578,25 @@ XLATE-ME figuring out how to play and when you tap an empty cell the arrow appears. This explains it. */ - public static final int not_again_arrow=0x7f0501c6; + public static final int not_again_arrow=0x7f0501c7; /** The back button clears any selection instead of exiting. Hit it again to exit the app. */ - public static final int not_again_backclears=0x7f05026b; + public static final int not_again_backclears=0x7f05026c; /** This button opens the wordlist browser on the current player\'s wordlist. */ - public static final int not_again_browse=0x7f0501e8; + public static final int not_again_browse=0x7f0501e9; /** This button opens the wordlist browser on the wordlist of your choice. */ - public static final int not_again_browseall=0x7f0501e9; + public static final int not_again_browseall=0x7f0501ea; /** Shown when you tap the chat button on the toolbar of the main Board screen Shown when you tap the chat button on the toolbar of the @@ -4607,14 +4607,14 @@ XLATE-ME Shown when you tap the chat button on the toolbar of the main Board screen */ - public static final int not_again_chat=0x7f0501bf; + public static final int not_again_chat=0x7f0501c0; /** EXPERIMENTAL: Newbie hint next when invite_choice_clip shown when chosen */ - public static final int not_again_clip_expl_fmt=0x7f05032e; - public static final int not_again_comms_bt=0x7f050327; - public static final int not_again_comms_relay=0x7f050325; - public static final int not_again_comms_sms=0x7f050326; + public static final int not_again_clip_expl_fmt=0x7f05032f; + public static final int not_again_comms_bt=0x7f050328; + public static final int not_again_comms_relay=0x7f050326; + public static final int not_again_comms_sms=0x7f050327; /** This is shown in the Board screen when you successfully connecting a game to the relay and are the last device in the game to do so, i.e. the game is now complete and you should @@ -4632,7 +4632,7 @@ XLATE-ME game to do so, i.e. the game is now complete and you should expect play to begin. */ - public static final int not_again_conndall=0x7f0501c5; + public static final int not_again_conndall=0x7f0501c6; /** This is shown in the Board screen when you successfully connect a game to the relay and are the first device in the game to do so. @@ -4647,7 +4647,7 @@ XLATE-ME connect a game to the relay and are the first device in the game to do so. */ - public static final int not_again_conndfirst=0x7f0501c3; + public static final int not_again_conndfirst=0x7f0501c4; /** This is shown in the Board screen when you successfully connecting a game to the relay and are not the first device in the game but not the last either. So it will only occur @@ -4664,8 +4664,8 @@ XLATE-ME in the game but not the last either. So it will only occur for games with more than two devices, which are rare. */ - public static final int not_again_conndmid=0x7f0501c4; - public static final int not_again_dfltname_fmt=0x7f050335; + public static final int not_again_conndmid=0x7f0501c5; + public static final int not_again_dfltname_fmt=0x7f050336; /** This screen lets you install new wordslists and view the ones you already have.\n\nWhat wordlists you have installed determines:\n• What languages you can play @@ -4673,7 +4673,7 @@ XLATE-ME legal.\n\nCheck the \"Show downloadable\" box at the top to see what\'s available. */ - public static final int not_again_dicts=0x7f0502b9; + public static final int not_again_dicts=0x7f0502ba; /** This is shown when you choose the board_menu_done menu item. It's to let you know that there's a shortcut that does almost the same thing. @@ -4687,14 +4687,14 @@ XLATE-ME It's to let you know that there's a shortcut that does almost the same thing. */ - public static final int not_again_done=0x7f0501c1; + public static final int not_again_done=0x7f0501c2; /** XLATE-ME Public rooms have been made an \"advanced\" feature in this release. If you were using them and want them back, enable them now. You can turn them off again in Settings. */ - public static final int not_again_enablepublic=0x7f0502e4; + public static final int not_again_enablepublic=0x7f0502e5; /** Shown when you tap the flip button on the toolbar of the main Board screen Shown when you tap the flip button on the toolbar of the main @@ -4704,13 +4704,13 @@ XLATE-ME Shown when you tap the flip button on the toolbar of the main Board screen */ - public static final int not_again_flip=0x7f0501bc; + public static final int not_again_flip=0x7f0501bd; /** This string has special format specifiers (e.g. %1$s). Please be sure that your translation has the same ones as the original.\n\n(You will not be able to save it unless it does.) */ - public static final int not_again_fmt_expl=0x7f0502ab; + public static final int not_again_fmt_expl=0x7f0502ac; /** XLATE-ME These two buttons do the same thing as the first two items in this window\'s Action Bar @@ -4719,7 +4719,7 @@ XLATE-ME section of App settings). */ - public static final int not_again_hidenewgamebuttons=0x7f0502d8; + public static final int not_again_hidenewgamebuttons=0x7f0502d9; /** Shown when you tap the next hint button on the toolbar of the main Board screen Shown when you tap the next hint button on the toolbar of the @@ -4730,7 +4730,7 @@ XLATE-ME Shown when you tap the next hint button on the toolbar of the main Board screen */ - public static final int not_again_hintnext=0x7f0501ba; + public static final int not_again_hintnext=0x7f0501bb; /** Currently not used The new game you have created has two players. Player 1 is a robot; Player 2 is you. Tap the game @@ -4756,7 +4756,7 @@ XLATE-ME Shown when you tap the Previous Hint button on the toolbar of the main Board screen */ - public static final int not_again_hintprev=0x7f0501b9; + public static final int not_again_hintprev=0x7f0501ba; /** Shown when you tap the juggle button on the toolbar of the main Board screen Shown when you tap the juggle button on the toolbar of the @@ -4766,14 +4766,14 @@ XLATE-ME Shown when you tap the juggle button on the toolbar of the main Board screen */ - public static final int not_again_juggle=0x7f0501bb; + public static final int not_again_juggle=0x7f0501bc; /** This button lets you look up, online, the words just played. */ - public static final int not_again_lookup=0x7f0501dc; + public static final int not_again_lookup=0x7f0501dd; /** Shown when you first pick the list_item_new_from menuitem Shown when you first pick the list_item_new_from menuitem Create a new ready-to-play game @@ -4781,19 +4781,19 @@ XLATE-ME as a template. Shown when you first pick the list_item_new_from menuitem */ - public static final int not_again_newfrom=0x7f0501c8; + public static final int not_again_newfrom=0x7f0501c9; /** Tapping a game opens it.\n\nYou can instead tap the icons at the left to select or deselect games, then act on selected games, e.g. to delete them, using the menu or \"Actionbar.\" */ - public static final int not_again_newselect=0x7f05026a; - public static final int not_again_rematch_two_only=0x7f050329; + public static final int not_again_newselect=0x7f05026b; + public static final int not_again_rematch_two_only=0x7f05032a; /** The selected words will be copied to the system clipboard. You can then paste them into any app that supports pasting text, e.g. an email app. */ - public static final int not_again_studycopy=0x7f050284; + public static final int not_again_studycopy=0x7f050285; /** The following strings (all whose names start with "not_again") appear in the New user info dialog. @@ -4812,7 +4812,7 @@ XLATE-ME shown when user chooses the gamel_menu_checkmoves menu */ - public static final int not_again_sync=0x7f0501b5; + public static final int not_again_sync=0x7f0501b6; /** Shown when the user chooses the "board_menu_trade" menu Shown when the user chooses the "board_menu_trade" menu You are entering tile-exchange @@ -4820,15 +4820,15 @@ XLATE-ME exchanged.\n\n Shown when the user chooses the "board_menu_trade" menu */ - public static final int not_again_trading=0x7f0501b6; + public static final int not_again_trading=0x7f0501b7; /** Use the buttons to commit your turn or exit exchange mode. */ - public static final int not_again_trading_buttons=0x7f0501b7; + public static final int not_again_trading_buttons=0x7f0501b8; /** Use the menu or action bar to commit your turn or exit exchange mode. */ - public static final int not_again_trading_menu=0x7f0501b8; + public static final int not_again_trading_menu=0x7f0501b9; /** Shown when the board screen is visible and it's just become another players turn. The idea is to give a hint about how to find out about recent moves. @@ -4843,7 +4843,7 @@ XLATE-ME another players turn. The idea is to give a hint about how to find out about recent moves. */ - public static final int not_again_turnchanged=0x7f0501c7; + public static final int not_again_turnchanged=0x7f0501c8; /** Shown when you tap the undo/redo button on the toolbar of the main Board screen Shown when you tap the undo/redo button on the toolbar of the @@ -4853,7 +4853,7 @@ XLATE-ME Shown when you tap the undo/redo button on the toolbar of the main Board screen */ - public static final int not_again_undo=0x7f0501be; + public static final int not_again_undo=0x7f0501bf; /** Shown in the Game configure screen when the game_locked checkbox is checked and you uncheck it. Shown in the Game configure screen when the game_locked @@ -4865,7 +4865,7 @@ XLATE-ME Shown in the Game configure screen when the game_locked checkbox is checked and you uncheck it. */ - public static final int not_again_unlock=0x7f0501c2; + public static final int not_again_unlock=0x7f0501c3; /** Shown when you tap the values button on the toolbar of the main Board screen. This is intended to allow players to remind themselves how much played tiles are worth while @@ -4882,7 +4882,7 @@ XLATE-ME remind themselves how much played tiles are worth while planning a move. */ - public static final int not_again_values=0x7f0501c0; + public static final int not_again_values=0x7f0501c1; /** Shown when you tap the zoom (+/-) button on the toolbar of the main Board screen Shown when you tap the zoom (+/-) button on the toolbar of @@ -4893,12 +4893,12 @@ XLATE-ME Shown when you tap the zoom (+/-) button on the toolbar of the main Board screen */ - public static final int not_again_zoom=0x7f0501bd; + public static final int not_again_zoom=0x7f0501be; /** (None) */ - public static final int note_none=0x7f0502b5; - public static final int notify_chat_body_fmt=0x7f0501a4; - public static final int notify_chat_title_fmt=0x7f0501a3; + public static final int note_none=0x7f0502b6; + public static final int notify_chat_body_fmt=0x7f0501a5; + public static final int notify_chat_title_fmt=0x7f0501a4; /** This text is displayed as the "summary" for both of the notify choices above, as extra information. (There could be different strings if it makes more sense in your language.) @@ -4934,6 +4934,7 @@ XLATE-ME Move in game %1$s */ public static final int notify_title_fmt=0x7f0501a2; + public static final int notify_title_turn_fmt=0x7f0501a3; /** When one or more new moves is found, should I vibrate the device When one or more new moves is found, should I vibrate the @@ -4946,7 +4947,7 @@ XLATE-ME /** XLATE-ME Number on this device */ - public static final int nplayers_prompt=0x7f0502ce; + public static final int nplayers_prompt=0x7f0502cf; /** text of label identifying the field where human players can enter an option password. The label and field disappear when the robot player checkbox is checked because it makes no @@ -4977,7 +4978,7 @@ XLATE-ME play – if he/she is also using NFC. \u0020pct. */ - public static final int pct_suffix=0x7f050276; + public static final int pct_suffix=0x7f050277; /** If this preference is checked, tapping on the scoreboard entry for any player reveals that player's tiles and any pending move (after asking for his password if one is set.) @@ -5017,7 +5018,7 @@ XLATE-ME Connected number[s]: */ - public static final int phone_label=0x7f050219; + public static final int phone_label=0x7f05021a; /** Don't warn, but simply force to skip turn (give 0 points) when user attempts to play word not in the wordlist. Don't warn, but simply force to skip turn (give 0 points) @@ -5214,13 +5215,13 @@ XLATE-ME Pick tiles face-up */ - public static final int pick_faceup=0x7f0501e4; + public static final int pick_faceup=0x7f0501e5; /** Look up %1$s at */ - public static final int pick_url_title_fmt=0x7f0501da; + public static final int pick_url_title_fmt=0x7f0501db; /** Text of button at bottom. Press it and you exit this configure screen and open the game into the Board screen Text of button at bottom. Press it and you exit this @@ -5370,22 +5371,22 @@ XLATE-ME public static final int players_label_standalone=0x7f0500b6; /** Prefs related to in-app localization */ - public static final int pref_group_l10n_summary=0x7f050317; + public static final int pref_group_l10n_summary=0x7f050318; /** Localization Stuff */ - public static final int pref_group_l10n_title=0x7f050316; + public static final int pref_group_l10n_title=0x7f050317; /** Prefs related to play via internet/relay */ - public static final int pref_group_relay_summary=0x7f050315; + public static final int pref_group_relay_summary=0x7f050316; /** Relay Stuff */ - public static final int pref_group_relay_title=0x7f050314; + public static final int pref_group_relay_title=0x7f050315; /** Prefs related to play-via-sms */ - public static final int pref_group_sms_summary=0x7f050313; + public static final int pref_group_sms_summary=0x7f050314; /** SMS Stuff */ - public static final int pref_group_sms_title=0x7f050312; + public static final int pref_group_sms_title=0x7f050313; /** Label for the first "human player" name preference Label for the first "human player" name preference Human player @@ -5393,10 +5394,10 @@ XLATE-ME public static final int pref_human_name=0x7f050127; /** Get intermediate builds */ - public static final int pref_item_update_summary=0x7f050319; + public static final int pref_item_update_summary=0x7f05031a; /** Update between releases */ - public static final int pref_item_update_title=0x7f050318; + public static final int pref_item_update_title=0x7f050319; /** Label for the first player color preference Label for the first player color preference First player @@ -5600,27 +5601,27 @@ XLATE-ME Used when prev player's name can't be looked up Your opponent */ - public static final int prev_player=0x7f0502bf; - public static final int processing_games=0x7f050332; + public static final int prev_player=0x7f0502c0; + public static final int processing_games=0x7f050333; /** Downloading */ - public static final int progress_title=0x7f0502b3; + public static final int progress_title=0x7f0502b4; /** Words no longer than */ - public static final int prompt_max_len=0x7f0501ee; + public static final int prompt_max_len=0x7f0501ef; /** Words no shorter than */ - public static final int prompt_min_len=0x7f0501ed; + public static final int prompt_min_len=0x7f0501ee; /** XLATE-ME Relay device port */ - public static final int proxy_port=0x7f0502fa; + public static final int proxy_port=0x7f0502fb; /** Short for "points", this is shown at the right end of the tray in place of the first tile placed along with the points the current move would earn if committed. @@ -5653,17 +5654,17 @@ XLATE-ME Title for generic dialog asking a question, usually in the middle of a game, like "do you want to commit this move?" */ - public static final int query_title=0x7f0501b2; - public static final int radio_name_cdma=0x7f05030a; - public static final int radio_name_gsm=0x7f050309; + public static final int query_title=0x7f0501b3; + public static final int radio_name_cdma=0x7f05030b; + public static final int radio_name_gsm=0x7f05030a; /** XLATE-ME Don\'t pretend */ - public static final int radio_name_real=0x7f050307; + public static final int radio_name_real=0x7f050308; /** XLATE-ME Tablet/no radio */ - public static final int radio_name_tablet=0x7f050308; + public static final int radio_name_tablet=0x7f050309; /** ############################################################ # :Dialogs: @@ -5703,8 +5704,8 @@ XLATE-ME /** XLATE-ME Invite redirect host */ - public static final int redir_host=0x7f0502ed; - public static final int rel_invite_title=0x7f050330; + public static final int redir_host=0x7f0502ee; + public static final int rel_invite_title=0x7f050331; /** Title of dialog used to alert players to relay-related problems with the current game. the color of text, e.g. "2L", shown on a bonus square on the @@ -5720,36 +5721,36 @@ XLATE-ME public static final int relay_alert=0x7f0500f0; /** Message from relay */ - public static final int relay_alert_title=0x7f050269; + public static final int relay_alert_title=0x7f05026a; /** XLATE-ME Relay host */ - public static final int relay_host=0x7f0502ec; - public static final int relay_invite_title=0x7f050207; + public static final int relay_host=0x7f0502ed; + public static final int relay_invite_title=0x7f050208; /** XLATE-ME Relay game port */ - public static final int relay_port=0x7f0502f9; + public static final int relay_port=0x7f0502fa; /** Shown in toast when relaunching after switching dicts Shown in toast when relaunching after switching dicts Reloading game with %1$s Shown in toast when relaunching after switching dicts */ - public static final int reload_new_dict_fmt=0x7f05024c; + public static final int reload_new_dict_fmt=0x7f05024d; /** XLATE-ME Issuing rematch invitation. You will see this message until it has been accepted.\n\nYou do not need to keep this game open while waiting. You will be notified when the game is ready to play. */ - public static final int rematch_msg=0x7f0502e3; - public static final int rematch_name_fmt=0x7f0502c9; + public static final int rematch_msg=0x7f0502e4; + public static final int rematch_name_fmt=0x7f0502ca; /** Processing wordlist information… */ - public static final int remote_digesting=0x7f0502ad; + public static final int remote_digesting=0x7f0502ae; /** Fetching wordlist information from server… */ - public static final int remote_empty=0x7f0502ac; + public static final int remote_empty=0x7f0502ad; /** checkbox determining of this player is on this device or remote. If remote, then the rest of the fields disappear (since they will be set by the remote device.) @@ -5765,16 +5766,16 @@ XLATE-ME /** Unable to fetch wordlist information from server. */ - public static final int remote_no_net=0x7f0502ae; + public static final int remote_no_net=0x7f0502af; /** Remote device undid a turn. */ - public static final int remote_undone=0x7f05021c; + public static final int remote_undone=0x7f05021d; /** Change the name of this group to: */ - public static final int rename_group_label=0x7f050260; + public static final int rename_group_label=0x7f050261; /** text within rename dialog (triggered by selecting list_item_rename) text within rename dialog (triggered by selecting @@ -5864,16 +5865,16 @@ XLATE-ME title for popup of public rooms found on server */ public static final int room_public_prompt=0x7f0500c0; - public static final int seeking_relay=0x7f05031d; + public static final int seeking_relay=0x7f05031e; /** Games: %1$d */ - public static final int sel_games_fmt=0x7f05026c; + public static final int sel_games_fmt=0x7f05026d; /** Groups: %1$d */ - public static final int sel_groups_fmt=0x7f05026d; + public static final int sel_groups_fmt=0x7f05026e; /** Selected: %1$d */ - public static final int sel_items_fmt=0x7f050288; + public static final int sel_items_fmt=0x7f050289; /** ############################################################ # :Dialogs: @@ -5897,7 +5898,7 @@ XLATE-ME /** XLATE-ME Hide buttons */ - public static final int set_pref=0x7f0502d7; + public static final int set_pref=0x7f0502d8; /** text of separator marking out other-setting area of the dialog see move_dictf above @@ -5958,10 +5959,10 @@ XLATE-ME public static final int show_arrow_summary=0x7f050140; /** Show downloadable */ - public static final int show_remote=0x7f0502b1; + public static final int show_remote=0x7f0502b2; /** Wordlist browser */ - public static final int show_wordlist_browser=0x7f050268; + public static final int show_wordlist_browser=0x7f050269; /** If this preference is checked, the user will not be asked to confirm after selecting the "Turn done" menu (or tapping the points display at the right end of the tray) @@ -5983,37 +5984,37 @@ XLATE-ME public static final int skip_confirm_turn_summary=0x7f050156; /** Delete selected */ - public static final int slmenu_clear_sel=0x7f05027e; + public static final int slmenu_clear_sel=0x7f05027f; /** Copy to clipboard */ - public static final int slmenu_copy_sel=0x7f05027d; + public static final int slmenu_copy_sel=0x7f05027e; /** Unselect all */ - public static final int slmenu_deselect_all=0x7f050287; + public static final int slmenu_deselect_all=0x7f050288; /** Select all */ - public static final int slmenu_select_all=0x7f050286; + public static final int slmenu_select_all=0x7f050287; /** XLATE-ME The version of Crosswords on the phone with number \"%1$s\" is incompatible with this one for play using SMS. One of you may need to upgrade before you can continue. */ - public static final int sms_bad_proto_fmt=0x7f0501ff; + public static final int sms_bad_proto_fmt=0x7f050200; /** Title of phone number picker during invitation to a game via SMS Title of phone number picker during invitation to a game via SMS SMS Invitation */ - public static final int sms_invite_title=0x7f050206; + public static final int sms_invite_title=0x7f050207; /** Tap the receiving device now */ - public static final int sms_ready_text=0x7f050275; + public static final int sms_ready_text=0x7f050276; /** Square rack tiles */ - public static final int square_tiles=0x7f050265; + public static final int square_tiles=0x7f050266; /** Even if they can be taller */ - public static final int square_tiles_summary=0x7f050266; + public static final int square_tiles_summary=0x7f050267; /** Used in formatting moves and history Used to separate names of players when listing them on one line in a game summary. The \u0020 is a space in xml. @@ -6101,7 +6102,7 @@ XLATE-ME placed, i.e. they do not form a single word. */ public static final int str_no_empties_in_turn=0x7f05018b; - public static final int str_no_hint_found=0x7f050328; + public static final int str_no_hint_found=0x7f050329; /** Same as above, but used when you try to show tiles belonging to a player on another device (a remote player.) Same as above, but used when you try to show tiles belonging @@ -6172,7 +6173,7 @@ XLATE-ME public static final int str_phony_rejected=0x7f050113; /** [#%d] %s: %d */ - public static final int str_placer_fmt=0x7f050247; + public static final int str_placer_fmt=0x7f050248; /** Shown when using the the Game configure screen to configure a networked game and you try to make all players local. Shown when using the the Game configure screen to configure a @@ -6214,7 +6215,7 @@ XLATE-ME public static final int str_remote_moved_fmt=0x7f05010c; /** [Resigned] %s: %d */ - public static final int str_resigned_fmt=0x7f050246; + public static final int str_resigned_fmt=0x7f050247; /** ############################################################ # Board info/error dialog messages @@ -6326,7 +6327,7 @@ XLATE-ME Used in formatting final scores display [Winner] %s: %d */ - public static final int str_winner_fmt=0x7f050245; + public static final int str_winner_fmt=0x7f050246; /** Used in formatting game history (not move summaries since information about the current rack is hidden then) Used in formatting game history (not move summaries since @@ -6408,18 +6409,18 @@ string name="str_robot_moved">Robot provedl tento tah:Your words for: */ - public static final int study_langpick=0x7f050281; + public static final int study_langpick=0x7f050282; /** You have not yet saved any words into a studylist for %1$s. */ - public static final int study_no_lang_fmt=0x7f050282; + public static final int study_no_lang_fmt=0x7f050283; /** You have not yet saved any words into a studylist. */ - public static final int study_no_lists=0x7f050283; + public static final int study_no_lists=0x7f050284; /** Studylist for %1$s */ - public static final int studylist_title_fmt=0x7f050280; + public static final int studylist_title_fmt=0x7f050281; /** If substituting an existing same-language wordlist by choosing button_substdict user gets to choose from a list of wordlists. This is the title of that list. @@ -6437,13 +6438,13 @@ string name="str_robot_moved">Robot provedl tento tah:Game in play */ - public static final int summary_conn=0x7f0501fa; + public static final int summary_conn=0x7f0501fb; /** Game in play with %1$s */ - public static final int summary_conn_sms_fmt=0x7f05021a; + public static final int summary_conn_sms_fmt=0x7f05021b; /** Preference to control what's listed next to game name in the first line of a game summary in the main games-list screen, e.g., if the option is "Game Language", "English" in the @@ -6473,7 +6474,7 @@ string name="str_robot_moved">Robot provedl tento tah:Game over\u200C */ - public static final int summary_gameover=0x7f0501f9; + public static final int summary_gameover=0x7f0501fa; public static final int summary_invites_out=0x7f05008e; /** The display of each networked game includes one of three states it can be in in the process of connecting to the @@ -6528,7 +6529,7 @@ string name="str_robot_moved">Robot provedl tento tah:(GSM phones only) */ - public static final int summary_send_data_sms=0x7f0502f4; + public static final int summary_send_data_sms=0x7f0502f5; /** explanation of the above explanation of the above Sort racks whenever new tiles @@ -6539,16 +6540,16 @@ string name="str_robot_moved">Robot provedl tento tah:Offer to add to and display lists of words to remember */ - public static final int summary_studyon=0x7f05027b; + public static final int summary_studyon=0x7f05027c; /** Thumbnail size */ - public static final int summary_thumbsize=0x7f05026e; + public static final int summary_thumbsize=0x7f05026f; /** Unconnected */ - public static final int summary_wait_guest=0x7f0501f8; + public static final int summary_wait_guest=0x7f0501f9; /** Waiting for connection[s] @@ -6556,7 +6557,7 @@ string name="str_robot_moved">Robot provedl tento tah:Robot provedl tento tah:Disabled */ - public static final int thumb_off=0x7f05026f; + public static final int thumb_off=0x7f050270; /** color of the tiles' background color of the "crosshairs", lines drawn vertically and horizontally through the square the user is currently @@ -6585,13 +6586,13 @@ string name="str_robot_moved">Robot provedl tento tah:Pick for me */ - public static final int tilepick_all=0x7f0501e2; + public static final int tilepick_all=0x7f0501e3; /** Undo last\u200C */ - public static final int tilepick_undo=0x7f0501e1; + public static final int tilepick_undo=0x7f0501e2; /** title of dialog brought up in response to the board_menu_game_left menu. The dialog lists all tiles remaining in the pool, i.e. not on the board or in the rack @@ -6606,14 +6607,14 @@ string name="str_robot_moved">Robot provedl tento tah:Communicate via */ - public static final int title_addrs_pref=0x7f0502c6; + public static final int title_addrs_pref=0x7f0502c7; /** ############################################################ # :Screens: @@ -6686,10 +6687,10 @@ string name="str_robot_moved">Robot provedl tento tah:Tap to look up */ - public static final int title_lookup=0x7f0501d6; + public static final int title_lookup=0x7f0501d7; /** Tap to look up or study */ - public static final int title_lookup_study=0x7f0501d7; + public static final int title_lookup_study=0x7f0501d8; /** ############################################################ # :Screens: @@ -6734,7 +6735,7 @@ string name="str_robot_moved">Robot provedl tento tah:Send SMS as data */ - public static final int title_send_data_sms=0x7f0502f3; + public static final int title_send_data_sms=0x7f0502f4; /** If this preference is checked, tiles in the rack will be re-ordered alphabetically whenever tiles are added, i.e. after ever move. @@ -6749,7 +6750,7 @@ string name="str_robot_moved">Robot provedl tento tah:Enable studylists */ - public static final int title_studyon=0x7f05027a; + public static final int title_studyon=0x7f05027b; /** title of dialog allowing user to pick tiles "face up". (This feature is not yet supported on Android.) @@ -6853,16 +6854,16 @@ string name="str_robot_moved">Robot provedl tento tah:Updates are available for one or more installed wordlists. Would you like to download the new version[s] of %1$s now? */ - public static final int update_dicts_fmt=0x7f0502b2; + public static final int update_dicts_fmt=0x7f0502b3; /** XLATE-ME Use defaults */ - public static final int use_defaults=0x7f0502cd; + public static final int use_defaults=0x7f0502ce; /** text of checkbox controlling whether there's a game timer text of checkbox. If this checkbox is checked, games created for network play will by default have the hint feature @@ -6881,32 +6882,32 @@ string name="str_robot_moved">Robot provedl tento tah:Waiting for players */ - public static final int waiting_title=0x7f0502d9; + public static final int waiting_title=0x7f0502da; /** XLATE-ME Bluetooth is currently off on this device. No moves will be sent via Bluetooth.\n\nYou can enable Bluetooth now, or later. */ - public static final int warn_bt_disabled=0x7f05023b; + public static final int warn_bt_disabled=0x7f05023c; /** XLATE-ME Every networked game must have at least one way of communicating. If you have no default connection options every new networked game will have to be configured manually. */ - public static final int warn_no_comms=0x7f0502df; + public static final int warn_no_comms=0x7f0502e0; /** The number %1$s for %2$s is not a \"mobile\" number. Import anyway? */ - public static final int warn_nomobile_fmt=0x7f050212; + public static final int warn_nomobile_fmt=0x7f050213; /** Play via SMS is currently @@ -6919,31 +6920,31 @@ activer les parties par SMS, allez dans Paramètres->Paramètres des parties en réseau.) */ - public static final int warn_sms_disabled=0x7f05023a; + public static final int warn_sms_disabled=0x7f05023b; /** Are you certain this number is on an account with unlimited texting? Click cancel if you are not. */ - public static final int warn_unlimited=0x7f05021b; - public static final int wifi_warning=0x7f050321; + public static final int warn_unlimited=0x7f05021c; + public static final int wifi_warning=0x7f050322; /** First letters */ - public static final int word_search_hint=0x7f0501e0; + public static final int word_search_hint=0x7f0501e1; /** Add option to every screen menu */ - public static final int xlations_enabled_summary=0x7f05028d; + public static final int xlations_enabled_summary=0x7f05028e; /** Enable local translating */ - public static final int xlations_enabled_title=0x7f05028c; + public static final int xlations_enabled_title=0x7f05028d; /** XLATE-ME Fake locale for translation */ - public static final int xlations_locale=0x7f0502ff; + public static final int xlations_locale=0x7f050300; /** Empty in English, this should contain the name of the translator/creator of the strings.xml file for this language @@ -6957,7 +6958,7 @@ réseau.) translator/creator of the strings.xml file for this language */ - public static final int xlator=0x7f0501ce; + public static final int xlator=0x7f0501cf; public static final int xwords_nfc_mime=0x7f05007c; } public static final class style { diff --git a/xwords4/android/XWords4/res/values/strings.xml b/xwords4/android/XWords4/res/values/strings.xml index 3a7064dcf..0b124bb86 100644 --- a/xwords4/android/XWords4/res/values/strings.xml +++ b/xwords4/android/XWords4/res/values/strings.xml @@ -1496,6 +1496,7 @@ device, and the body that appears when you pull the notifications down. --> Move in game %1$s + Your turn in game %1$s Chat message in game %1$s %1$s: %2$s Evom ni emag %1$s + Ruoy nrut ni emag %1$s Tahc egassem ni emag %1$s %1$s: %2$s 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 e11190a21..9822b4882 100644 --- a/xwords4/android/XWords4/res_src/values-ca_PS/strings.xml +++ b/xwords4/android/XWords4/res_src/values-ca_PS/strings.xml @@ -1283,6 +1283,7 @@ device, and the body that appears when you pull the notifications down. --> MOVE IN GAME %1$s + YOUR TURN IN GAME %1$s CHAT MESSAGE IN GAME %1$s %1$s: %2$s 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 2cfe22f4a..c2fbae420 100644 --- a/xwords4/android/XWords4/src/org/eehouse/android/xw4/BTService.java +++ b/xwords4/android/XWords4/src/org/eehouse/android/xw4/BTService.java @@ -595,6 +595,7 @@ public class BTService extends XWService { CommsAddrRec addr = new CommsAddrRec( host.getName(), host.getAddress() ); + boolean[] isLocalP = new boolean[1]; for ( long rowid : rowids ) { boolean consumed = BoardDelegate.feedMessage( rowid, buffer, addr ); @@ -603,10 +604,12 @@ public class BTService extends XWService { new GameUtils.BackMoveResult(); if ( GameUtils.feedMessage( BTService.this, rowid, buffer, addr, - m_btMsgSink, bmr ) ) { + m_btMsgSink, bmr, + isLocalP ) ) { consumed = true; GameUtils.postMoveNotification( BTService.this, - rowid, bmr ); + rowid, bmr, + isLocalP[0] ); } } if ( !consumed ) { 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 3cfcc52a0..1319d4c18 100644 --- a/xwords4/android/XWords4/src/org/eehouse/android/xw4/GameUtils.java +++ b/xwords4/android/XWords4/src/org/eehouse/android/xw4/GameUtils.java @@ -875,7 +875,8 @@ public class GameUtils { public static boolean feedMessages( Context context, long rowid, byte[][] msgs, CommsAddrRec ret, - MultiMsgSink sink, BackMoveResult bmr ) + MultiMsgSink sink, BackMoveResult bmr, + boolean[] isLocalOut ) { boolean draw = false; Assert.assertTrue( -1 != rowid ); @@ -920,7 +921,12 @@ public class GameUtils { } saveGame( context, gamePtr, gi, lock, false ); - summarizeAndClose( context, lock, gamePtr, gi ); + GameSummary summary = summarizeAndClose( context, lock, + gamePtr, gi ); + if ( null != isLocalOut ) { + isLocalOut[0] = 0 <= summary.turn + && gi.players[summary.turn].isLocal; + } int flags = setFromFeedImpl( feedImpl ); if ( GameSummary.MSG_FLAGS_NONE != flags ) { @@ -937,12 +943,12 @@ public class GameUtils { public static boolean feedMessage( Context context, long rowid, byte[] msg, CommsAddrRec ret, MultiMsgSink sink, - BackMoveResult bmr ) + BackMoveResult bmr, boolean[] isLocalOut ) { Assert.assertTrue( DBUtils.ROWID_NOTFOUND != rowid ); byte[][] msgs = new byte[1][]; msgs[0] = msg; - return feedMessages( context, rowid, msgs, ret, sink, bmr ); + return feedMessages( context, rowid, msgs, ret, sink, bmr, isLocalOut ); } // This *must* involve a reset if the language is changing!!! @@ -1079,7 +1085,8 @@ public class GameUtils { } public static void postMoveNotification( Context context, long rowid, - BackMoveResult bmr ) + BackMoveResult bmr, + boolean isTurnNow ) { if ( null != bmr ) { Intent intent = GamesListDelegate.makeRowidIntent( context, rowid ); @@ -1095,8 +1102,12 @@ public class GameUtils { msg = bmr.m_chat; } } else if ( null != bmr.m_lmi ) { - titleID = R.string.notify_title_fmt; - msg = bmr.m_lmi.format( context ); // NPE + if ( isTurnNow ) { + titleID = R.string.notify_title_turn_fmt; + } else { + titleID = R.string.notify_title_fmt; + } + msg = bmr.m_lmi.format( context ); } if ( 0 != titleID ) { 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 a23ccbb6d..07cb39fba 100644 --- a/xwords4/android/XWords4/src/org/eehouse/android/xw4/RelayService.java +++ b/xwords4/android/XWords4/src/org/eehouse/android/xw4/RelayService.java @@ -452,7 +452,8 @@ public class RelayService extends XWService startService( this ); // bad name: will *stop* threads too } - private void setupNotifications( String[] relayIDs, BackMoveResult[] bmrs ) + private void setupNotifications( String[] relayIDs, BackMoveResult[] bmrs, + ArrayList locals ) { for ( int ii = 0; ii < relayIDs.length; ++ii ) { String relayID = relayIDs[ii]; @@ -460,7 +461,8 @@ public class RelayService extends XWService long[] rowids = DBUtils.getRowIDsFor( this, relayID ); if ( null != rowids ) { for ( long rowid : rowids ) { - GameUtils.postMoveNotification( this, rowid, bmr ); + GameUtils.postMoveNotification( this, rowid, bmr, + locals.get(ii) ); } } } @@ -993,9 +995,10 @@ public class RelayService extends XWService RelayMsgSink sink = new RelayMsgSink(); sink.setRowID( rowid ); BackMoveResult bmr = new BackMoveResult(); + boolean[] isLocalP = new boolean[1]; if ( GameUtils.feedMessage( this, rowid, msg, s_addr, - sink, bmr ) ) { - GameUtils.postMoveNotification( this, rowid, bmr ); + sink, bmr, isLocalP ) ) { + GameUtils.postMoveNotification( this, rowid, bmr, isLocalP[0] ); } else { DbgUtils.logdf( "feedMessage(): background dropped it" ); } @@ -1018,9 +1021,11 @@ public class RelayService extends XWService RelayMsgSink sink = new RelayMsgSink(); int nameCount = relayIDs.length; ArrayList idsWMsgs = new ArrayList( nameCount ); + ArrayList isLocals = new ArrayList( nameCount ); ArrayList bmrs = new ArrayList( nameCount ); + boolean[] isLocalP = new boolean[1]; for ( int ii = 0; ii < nameCount; ++ii ) { byte[][] forOne = msgs[ii]; @@ -1028,12 +1033,15 @@ public class RelayService extends XWService if ( null != forOne ) { BackMoveResult bmr = new BackMoveResult(); sink.setRowID( rowIDs[ii] ); + // since BoardDelegate.feedMessages can't know: + isLocalP[0] = false; if ( BoardDelegate.feedMessages( rowIDs[ii], forOne, s_addr ) || GameUtils.feedMessages( this, rowIDs[ii], forOne, s_addr, - sink, bmr ) ) { + sink, bmr, isLocalP ) ) { idsWMsgs.add( relayIDs[ii] ); bmrs.add( bmr ); + isLocals.add( isLocalP[0] ); } else { DbgUtils.logf( "RelayService.process(): message for %s (rowid %d)" + " not consumed", relayIDs[ii], rowIDs[ii] ); @@ -1045,7 +1053,7 @@ public class RelayService extends XWService idsWMsgs.toArray( tmp ); BackMoveResult[] bmrsa = new BackMoveResult[bmrs.size()]; bmrs.toArray( bmrsa ); - setupNotifications( tmp, bmrsa ); + setupNotifications( tmp, bmrsa, isLocals ); } sink.send( this ); } 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 21855ea1d..c17ccee2a 100644 --- a/xwords4/android/XWords4/src/org/eehouse/android/xw4/SMSService.java +++ b/xwords4/android/XWords4/src/org/eehouse/android/xw4/SMSService.java @@ -718,6 +718,7 @@ public class SMSService extends XWService { if ( null == rowids || 0 == rowids.length ) { sendDiedPacket( addr.sms_phone, gameID ); } else { + boolean[] isLocalP = new boolean[1]; for ( long rowid : rowids ) { if ( BoardDelegate.feedMessage( rowid, msg, addr ) ) { // do nothing @@ -725,8 +726,9 @@ public class SMSService extends XWService { SMSMsgSink sink = new SMSMsgSink( this ); BackMoveResult bmr = new BackMoveResult(); if ( GameUtils.feedMessage( this, rowid, msg, addr, - sink, bmr ) ) { - GameUtils.postMoveNotification( this, rowid, bmr ); + sink, bmr, isLocalP ) ) { + GameUtils.postMoveNotification( this, rowid, bmr, + isLocalP[0] ); } } } From 9d20aea6be752bb99c6cb0b2d2d291468d066552 Mon Sep 17 00:00:00 2001 From: Eric House Date: Fri, 15 Jan 2016 06:01:35 -0800 Subject: [PATCH 20/37] record NFC invites --- .../XWords4/src/org/eehouse/android/xw4/BoardDelegate.java | 2 ++ 1 file changed, 2 insertions(+) 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 5cb131eb0..db79ef47b 100644 --- a/xwords4/android/XWords4/src/org/eehouse/android/xw4/BoardDelegate.java +++ b/xwords4/android/XWords4/src/org/eehouse/android/xw4/BoardDelegate.java @@ -1324,6 +1324,8 @@ public class BoardDelegate extends DelegateBase } if ( null != data ) { removeDialog( DlgID.CONFIRM_THEN ); + + recordInviteSent( InviteMeans.NFC, null ); } return data; } From e8ceb82d8d4ed7dc421992030e54e6cad2797b1d Mon Sep 17 00:00:00 2001 From: Eric House Date: Fri, 15 Jan 2016 20:48:53 -0800 Subject: [PATCH 21/37] add debug-only menu to show game's sent invitations --- xwords4/android/XWords4/archive/R.java | 242 +++++++++--------- .../XWords4/res/menu-small/board_menu.xml | 2 + .../android/XWords4/res/menu/board_menu.xml | 2 + .../android/XWords4/res/values/strings.xml | 1 + .../XWords4/res_src/values-ba_CK/strings.xml | 1 + .../XWords4/res_src/values-ca_PS/strings.xml | 1 + .../eehouse/android/xw4/BoardDelegate.java | 8 +- 7 files changed, 136 insertions(+), 121 deletions(-) diff --git a/xwords4/android/XWords4/archive/R.java b/xwords4/android/XWords4/archive/R.java index ecde95aca..be8bca382 100644 --- a/xwords4/android/XWords4/archive/R.java +++ b/xwords4/android/XWords4/archive/R.java @@ -85,30 +85,31 @@ public final class R { public static final int add_player=0x7f0a0030; public static final int advertise_new_room_check=0x7f0a0037; public static final int blessed_label=0x7f0a0057; - public static final int board_menu_chat=0x7f0a009f; - public static final int board_menu_dict=0x7f0a009b; + public static final int board_menu_chat=0x7f0a00a0; + public static final int board_menu_dict=0x7f0a009c; public static final int board_menu_done=0x7f0a0086; public static final int board_menu_file_prefs=0x7f0a0093; - public static final int board_menu_flip=0x7f0a009d; + public static final int board_menu_flip=0x7f0a009e; public static final int board_menu_game_counts=0x7f0a008c; public static final int board_menu_game_history=0x7f0a008e; + public static final int board_menu_game_invites=0x7f0a0095; public static final int board_menu_game_left=0x7f0a008d; public static final int board_menu_game_netstats=0x7f0a0094; public static final int board_menu_game_resend=0x7f0a0090; public static final int board_menu_game_resign=0x7f0a008f; - public static final int board_menu_hint_next=0x7f0a0099; - public static final int board_menu_hint_prev=0x7f0a0098; - public static final int board_menu_invite=0x7f0a0095; - public static final int board_menu_juggle=0x7f0a009c; + public static final int board_menu_hint_next=0x7f0a009a; + public static final int board_menu_hint_prev=0x7f0a0099; + public static final int board_menu_invite=0x7f0a0096; + public static final int board_menu_juggle=0x7f0a009d; public static final int board_menu_rematch=0x7f0a0085; - public static final int board_menu_toggle=0x7f0a00a0; + public static final int board_menu_toggle=0x7f0a00a1; public static final int board_menu_trade=0x7f0a0087; public static final int board_menu_trade_cancel=0x7f0a0088; public static final int board_menu_trade_commit=0x7f0a0089; public static final int board_menu_tray=0x7f0a008b; - public static final int board_menu_undo_current=0x7f0a009a; + public static final int board_menu_undo_current=0x7f0a009b; public static final int board_menu_undo_last=0x7f0a008a; - public static final int board_menu_zoom=0x7f0a009e; + public static final int board_menu_zoom=0x7f0a009f; public static final int board_root=0x7f0a0002; public static final int board_view=0x7f0a0003; public static final int boardsize_spinner=0x7f0a0043; @@ -124,8 +125,8 @@ public final class R { public static final int chat_button=0x7f0a0080; public static final int chat_edit=0x7f0a0011; public static final int chat_history=0x7f0a0010; - public static final int chat_menu_clear=0x7f0a00a2; - public static final int chat_menu_send=0x7f0a00a1; + public static final int chat_menu_clear=0x7f0a00a3; + public static final int chat_menu_send=0x7f0a00a2; public static final int checkbox=0x7f0a0051; public static final int color_display_sample=0x7f0a0012; public static final int color_edit_sample=0x7f0a0013; @@ -140,11 +141,11 @@ public final class R { public static final int dict_label=0x7f0a0069; public static final int dict_spinner=0x7f0a002d; public static final int dictlist_button=0x7f0a007f; - public static final int dicts_delete=0x7f0a00a5; - public static final int dicts_deselect_all=0x7f0a00a4; - public static final int dicts_download=0x7f0a00a3; - public static final int dicts_move=0x7f0a00a6; - public static final int dicts_select=0x7f0a00a7; + public static final int dicts_delete=0x7f0a00a6; + public static final int dicts_deselect_all=0x7f0a00a5; + public static final int dicts_download=0x7f0a00a4; + public static final int dicts_move=0x7f0a00a7; + public static final int dicts_select=0x7f0a00a8; public static final int divider=0x7f0a0024; public static final int download_button=0x7f0a0073; public static final int dwnld_message=0x7f0a004f; @@ -163,38 +164,38 @@ public final class R { public static final int game_locked_check=0x7f0a0028; public static final int game_name=0x7f0a0046; public static final int gamel_menu_checkmoves=0x7f0a0092; - public static final int games_game_config=0x7f0a00aa; - public static final int games_game_copy=0x7f0a00af; - public static final int games_game_delete=0x7f0a00a8; - public static final int games_game_deselect=0x7f0a00b1; - public static final int games_game_move=0x7f0a00ab; - public static final int games_game_new_from=0x7f0a00ad; - public static final int games_game_rematch=0x7f0a00a9; - public static final int games_game_rename=0x7f0a00ae; - public static final int games_game_reset=0x7f0a00ac; - public static final int games_game_select=0x7f0a00b0; - public static final int games_group_default=0x7f0a00b5; - public static final int games_group_delete=0x7f0a00b4; - public static final int games_group_movedown=0x7f0a00b3; - public static final int games_group_moveup=0x7f0a00b2; - public static final int games_group_rename=0x7f0a00b6; - public static final int games_menu_about=0x7f0a00be; - public static final int games_menu_checkmoves=0x7f0a00c0; - public static final int games_menu_checkupdates=0x7f0a00c1; - public static final int games_menu_dicts=0x7f0a00bc; - public static final int games_menu_email=0x7f0a00bd; - public static final int games_menu_loaddb=0x7f0a00c3; - public static final int games_menu_newgame_net=0x7f0a00b8; - public static final int games_menu_newgame_solo=0x7f0a00b7; - public static final int games_menu_newgroup=0x7f0a00b9; - public static final int games_menu_prefs=0x7f0a00ba; - public static final int games_menu_rateme=0x7f0a00bb; - public static final int games_menu_resend=0x7f0a00bf; - public static final int games_menu_storedb=0x7f0a00c2; + public static final int games_game_config=0x7f0a00ab; + public static final int games_game_copy=0x7f0a00b0; + public static final int games_game_delete=0x7f0a00a9; + public static final int games_game_deselect=0x7f0a00b2; + public static final int games_game_move=0x7f0a00ac; + public static final int games_game_new_from=0x7f0a00ae; + public static final int games_game_rematch=0x7f0a00aa; + public static final int games_game_rename=0x7f0a00af; + public static final int games_game_reset=0x7f0a00ad; + public static final int games_game_select=0x7f0a00b1; + public static final int games_group_default=0x7f0a00b6; + public static final int games_group_delete=0x7f0a00b5; + public static final int games_group_movedown=0x7f0a00b4; + public static final int games_group_moveup=0x7f0a00b3; + public static final int games_group_rename=0x7f0a00b7; + public static final int games_menu_about=0x7f0a00bf; + public static final int games_menu_checkmoves=0x7f0a00c1; + public static final int games_menu_checkupdates=0x7f0a00c2; + public static final int games_menu_dicts=0x7f0a00bd; + public static final int games_menu_email=0x7f0a00be; + public static final int games_menu_loaddb=0x7f0a00c4; + public static final int games_menu_newgame_net=0x7f0a00b9; + public static final int games_menu_newgame_solo=0x7f0a00b8; + public static final int games_menu_newgroup=0x7f0a00ba; + public static final int games_menu_prefs=0x7f0a00bb; + public static final int games_menu_rateme=0x7f0a00bc; + public static final int games_menu_resend=0x7f0a00c0; + public static final int games_menu_storedb=0x7f0a00c3; public static final int games_menu_study=0x7f0a0091; public static final int group_done=0x7f0a0084; - public static final int group_exchange=0x7f0a0096; - public static final int group_hint=0x7f0a0097; + public static final int group_exchange=0x7f0a0097; + public static final int group_hint=0x7f0a0098; public static final int hideable=0x7f0a004b; public static final int hints_allowed=0x7f0a003c; public static final int invite_desc=0x7f0a0009; @@ -206,10 +207,10 @@ public final class R { public static final int label=0x7f0a0025; public static final int lang_separator=0x7f0a002b; public static final int lang_spinner=0x7f0a002c; - public static final int loc_item_check=0x7f0a00c5; - public static final int loc_item_clear=0x7f0a00c4; - public static final int loc_item_copy_bless=0x7f0a00c7; - public static final int loc_item_copy_eng=0x7f0a00c6; + public static final int loc_item_check=0x7f0a00c6; + public static final int loc_item_clear=0x7f0a00c5; + public static final int loc_item_copy_bless=0x7f0a00c8; + public static final int loc_item_copy_eng=0x7f0a00c7; public static final int loc_search_button=0x7f0a005e; public static final int loc_search_field=0x7f0a005d; public static final int local_label=0x7f0a0059; @@ -257,11 +258,11 @@ public final class R { public static final int seek_red=0x7f0a0014; public static final int show_remote=0x7f0a001e; public static final int shuffle_button=0x7f0a007d; - public static final int slmenu_clear_sel=0x7f0a00cc; - public static final int slmenu_copy_sel=0x7f0a00cb; - public static final int slmenu_deselect_all=0x7f0a00ca; - public static final int slmenu_lookup_sel=0x7f0a00c8; - public static final int slmenu_select_all=0x7f0a00c9; + public static final int slmenu_clear_sel=0x7f0a00cd; + public static final int slmenu_copy_sel=0x7f0a00cc; + public static final int slmenu_deselect_all=0x7f0a00cb; + public static final int slmenu_lookup_sel=0x7f0a00c9; + public static final int slmenu_select_all=0x7f0a00ca; public static final int smart_robot=0x7f0a0040; public static final int state=0x7f0a004d; public static final int summary=0x7f0a0060; @@ -875,6 +876,7 @@ XLATE-ME /** Resign */ public static final int board_menu_game_resign=0x7f050104; + public static final int board_menu_game_showInvites=0x7f0502f7; /** Invite */ public static final int board_menu_invite=0x7f050273; @@ -1218,7 +1220,7 @@ XLATE-ME Edit */ public static final int button_edit=0x7f0502e2; - public static final int button_enable=0x7f050325; + public static final int button_enable=0x7f050326; /** XLATE-ME Enable Bluetooth */ @@ -1688,17 +1690,17 @@ XLATE-ME public static final int chat_title_fmt=0x7f050182; /** Checking for wordlists in %1$s… */ - public static final int checking_for_fmt=0x7f05031c; + public static final int checking_for_fmt=0x7f05031d; /** Checking */ - public static final int checking_title=0x7f05031b; + public static final int checking_title=0x7f05031c; /** Everything is up-to-date. */ public static final int checkupdates_none_found=0x7f050241; /** EXPERIMENTAL: "label" for invite on clipboard. If it's shown it's by some Android utility */ - public static final int clip_label=0x7f05032e; + public static final int clip_label=0x7f05032f; /** color of the "crosshairs", lines drawn vertically and horizontally through the square the user is currently touching in order to guide the fat-fingered (most of us) in @@ -1723,7 +1725,7 @@ XLATE-ME edit to give it a way to connect? */ public static final int config_no_connvia=0x7f0502e1; - public static final int confirm_clear_chat=0x7f050330; + public static final int confirm_clear_chat=0x7f050331; public static final int confirm_clear_relay=0x7f050218; /** Additional text appended to text confirm_delete_dictf in the wordlist delete confiration dialog in the case where the @@ -1735,9 +1737,9 @@ XLATE-ME of the language is substituted for %1$s. */ public static final int confirm_deleteonly_dicts_fmt=0x7f0500aa; - public static final int confirm_drop_relay=0x7f050321; - public static final int confirm_drop_relay_bt=0x7f050323; - public static final int confirm_drop_relay_sms=0x7f050324; + public static final int confirm_drop_relay=0x7f050322; + public static final int confirm_drop_relay_bt=0x7f050324; + public static final int confirm_drop_relay_sms=0x7f050325; /** Your device is set up for %1$s. Would you like to download a wordlist so you can play Crosswords in %1$s? @@ -2029,7 +2031,7 @@ XLATE-ME public static final int data_gsm_only=0x7f05028f; /** SD card write complete. */ - public static final int db_store_done=0x7f05031d; + public static final int db_store_done=0x7f05031e; /** XLATE-ME Enable debug features */ @@ -2146,7 +2148,7 @@ XLATE-ME /** Delete wordlist[s] */ public static final int delete_dicts=0x7f0502b1; - public static final int devid_title=0x7f0502f9; + public static final int devid_title=0x7f0502fa; /** Playing via SMS is currently disabled. You can enable it in Settings->Network game settings. @@ -2336,7 +2338,7 @@ XLATE-ME /** Downloading %1$s… */ public static final int downloading_dict_fmt=0x7f050196; - public static final int drop_relay_warning_fmt=0x7f050320; + public static final int drop_relay_warning_fmt=0x7f050321; /** Display snapshots of games Display snapshots of games Invitation received but ignored: it @@ -2410,11 +2412,11 @@ XLATE-ME /** XLATE-ME Accept invitations more than once */ - public static final int enable_dupes_summary=0x7f050301; + public static final int enable_dupes_summary=0x7f050302; /** XLATE-ME Accept duplicate invites */ - public static final int enable_dupes_title=0x7f0502ff; + public static final int enable_dupes_title=0x7f050300; /** NFC is turned off on this device. You can use the Android Settings app to turn it on . */ @@ -2422,11 +2424,11 @@ XLATE-ME /** XLATE-ME Fake invitation to aid debugging */ - public static final int enable_nfc_toself_summary=0x7f050304; + public static final int enable_nfc_toself_summary=0x7f050305; /** XLATE-ME Enable NFC to self */ - public static final int enable_nfc_toself_title=0x7f050303; + public static final int enable_nfc_toself_title=0x7f050304; /** XLATE-ME Rooms others can see and join */ @@ -2435,8 +2437,8 @@ XLATE-ME Enable public rooms */ public static final int enable_pubroom_title=0x7f0502d5; - public static final int enable_relay_toself_summary=0x7f05032c; - public static final int enable_relay_toself_title=0x7f05032b; + public static final int enable_relay_toself_summary=0x7f05032d; + public static final int enable_relay_toself_title=0x7f05032c; /** Allow games via SMS @@ -2453,11 +2455,11 @@ XLATE-ME /** XLATE-ME Skip radio when phone numbers same */ - public static final int enable_sms_toself_summary=0x7f050306; + public static final int enable_sms_toself_summary=0x7f050307; /** XLATE-ME Short-circuit SMS to self */ - public static final int enable_sms_toself_title=0x7f050305; + public static final int enable_sms_toself_title=0x7f050306; /** Tap tiles to select… */ public static final int entering_trade=0x7f0500e1; @@ -2470,7 +2472,7 @@ XLATE-ME /** XLATE-ME Update checks URL */ - public static final int expl_update_url=0x7f050310; + public static final int expl_update_url=0x7f050311; /** if this preference is checked, a dialog will be posted every time a robot makes a move or a move is received from a remote player. @@ -2495,7 +2497,7 @@ XLATE-ME explanation of the above */ public static final int explain_robot_summary=0x7f050154; - public static final int fetching_from_relay=0x7f050332; + public static final int fetching_from_relay=0x7f050333; /** title of dialog brought up in response to the board_menu_game_final menu. The dialog displays the final score and an accounting of it (including subtractions for @@ -2525,7 +2527,7 @@ XLATE-ME /** XLATE-ME Pretend to have radio */ - public static final int force_radio_title=0x7f050307; + public static final int force_radio_title=0x7f050308; /** Even if my screen is too small */ public static final int force_tablet_summary=0x7f0502bc; @@ -2681,7 +2683,7 @@ XLATE-ME /** XLATE-ME gameid */ - public static final int game_summary_field_gameid=0x7f05030e; + public static final int game_summary_field_gameid=0x7f05030f; /** Put the language there, so it reads "Game 2 (English)" Put the language there, so it reads "Game 2 (English)" Game language\u200C @@ -2691,7 +2693,7 @@ XLATE-ME /** XLATE-ME Pending packet count */ - public static final int game_summary_field_npackets=0x7f05030f; + public static final int game_summary_field_npackets=0x7f050310; /** List names of opponents (summarized), e.g. "Game 2 (vs Kati)" List names of opponents (summarized), e.g. "Game 2 (vs Kati)" Opponent name[s] @@ -2701,7 +2703,7 @@ XLATE-ME /** XLATE-ME rowid */ - public static final int game_summary_field_rowid=0x7f05030d; + public static final int game_summary_field_rowid=0x7f05030e; /** List the state of the game, "Game over" or "10 moves made" etc. List the state of the game, "Game over" or "10 moves made" @@ -2773,13 +2775,13 @@ XLATE-ME /** XLATE-ME Load DB from SD card */ - public static final int gamel_menu_loaddb=0x7f0502fe; + public static final int gamel_menu_loaddb=0x7f0502ff; /** XLATE-ME %1$s/%2$s XLATE-ME Write DB to SD card */ - public static final int gamel_menu_storedb=0x7f0502fd; + public static final int gamel_menu_storedb=0x7f0502fe; /** Studylist… */ public static final int gamel_menu_study=0x7f05027d; @@ -2797,13 +2799,13 @@ XLATE-ME /** XLATE-ME Source version id */ - public static final int git_rev_title=0x7f0502f8; + public static final int git_rev_title=0x7f0502f9; /** Don\'t try a second time */ - public static final int got_langdict_summary=0x7f050312; + public static final int got_langdict_summary=0x7f050313; /** Fetch default wordlist for language */ - public static final int got_langdict_title=0x7f050311; + public static final int got_langdict_title=0x7f050312; /** Green */ public static final int green=0x7f05014f; @@ -3094,7 +3096,7 @@ XLATE-ME /** EXPERIMENTAL: Shown as toast when user chooses "My choice" for invitation */ - public static final int invite_copied=0x7f05032d; + public static final int invite_copied=0x7f05032e; /** %1$s has invited you to play Crosswords using the wordlist %2$s (for play in %3$s), but it is not installed. Would you like to download the wordlist or @@ -3494,7 +3496,7 @@ XLATE-ME pulls up dialog to delete the selected game */ public static final int list_item_delete=0x7f05009c; - public static final int list_item_deselect=0x7f050335; + public static final int list_item_deselect=0x7f050336; /** pulls up dialog to change the group of the selected game pulls up dialog to change the group of the selected game pulls up dialog to change the group of the selected game @@ -3533,7 +3535,7 @@ XLATE-ME except for any configuration. */ public static final int list_item_reset=0x7f05009d; - public static final int list_item_select=0x7f050334; + public static final int list_item_select=0x7f050335; /** formatting for last move summary in notifications formatting for last move summary in notifications %1$s passed (0 points) @@ -3935,7 +3937,7 @@ XLATE-ME /** XLATE-ME Reminder intervals (minutes1,minutes2,...) */ - public static final int nag_intervals=0x7f050302; + public static final int nag_intervals=0x7f050303; /** Nagging: title of notification reminder message Nagging: title of notification reminder message Reminder: It\'s your turn @@ -3950,7 +3952,7 @@ XLATE-ME %1$s copy */ public static final int name_copy_fmt=0x7f05020c; - public static final int name_dict_fmt=0x7f0502fc; + public static final int name_dict_fmt=0x7f0502fd; public static final int nbs_port=0x7f050083; /** text of checkbox. If this checkbox is checked, games created for network play will by default have the hint feature @@ -3979,7 +3981,7 @@ XLATE-ME /** XLATE-ME Game network stats */ - public static final int netstats_title=0x7f0502f7; + public static final int netstats_title=0x7f0502f8; /** XLATE-ME For experienced players */ @@ -4268,7 +4270,7 @@ XLATE-ME XLATE-ME Send via NFC to self? */ - public static final int nfc_to_self=0x7f05030c; + public static final int nfc_to_self=0x7f05030d; /** Title of dialog for renaming game (triggered by selecting list_item_rename) If you try to copy a networked game you get this error @@ -4536,7 +4538,7 @@ XLATE-ME substituted. */ public static final int no_name_found_fmt=0x7f0500c2; - public static final int no_relay_conn=0x7f05031f; + public static final int no_relay_conn=0x7f050320; /** This is not currently shown Crosswords wordlists, which are just compressed lists of words plus tile information, determine @@ -4611,10 +4613,10 @@ XLATE-ME /** EXPERIMENTAL: Newbie hint next when invite_choice_clip shown when chosen */ - public static final int not_again_clip_expl_fmt=0x7f05032f; - public static final int not_again_comms_bt=0x7f050328; - public static final int not_again_comms_relay=0x7f050326; - public static final int not_again_comms_sms=0x7f050327; + public static final int not_again_clip_expl_fmt=0x7f050330; + public static final int not_again_comms_bt=0x7f050329; + public static final int not_again_comms_relay=0x7f050327; + public static final int not_again_comms_sms=0x7f050328; /** This is shown in the Board screen when you successfully connecting a game to the relay and are the last device in the game to do so, i.e. the game is now complete and you should @@ -4665,7 +4667,7 @@ XLATE-ME for games with more than two devices, which are rare. */ public static final int not_again_conndmid=0x7f0501c5; - public static final int not_again_dfltname_fmt=0x7f050336; + public static final int not_again_dfltname_fmt=0x7f050337; /** This screen lets you install new wordslists and view the ones you already have.\n\nWhat wordlists you have installed determines:\n• What languages you can play @@ -4788,7 +4790,7 @@ XLATE-ME \"Actionbar.\" */ public static final int not_again_newselect=0x7f05026b; - public static final int not_again_rematch_two_only=0x7f05032a; + public static final int not_again_rematch_two_only=0x7f05032b; /** The selected words will be copied to the system clipboard. You can then paste them into any app that supports pasting text, e.g. an email app. @@ -5371,22 +5373,22 @@ XLATE-ME public static final int players_label_standalone=0x7f0500b6; /** Prefs related to in-app localization */ - public static final int pref_group_l10n_summary=0x7f050318; + public static final int pref_group_l10n_summary=0x7f050319; /** Localization Stuff */ - public static final int pref_group_l10n_title=0x7f050317; + public static final int pref_group_l10n_title=0x7f050318; /** Prefs related to play via internet/relay */ - public static final int pref_group_relay_summary=0x7f050316; + public static final int pref_group_relay_summary=0x7f050317; /** Relay Stuff */ - public static final int pref_group_relay_title=0x7f050315; + public static final int pref_group_relay_title=0x7f050316; /** Prefs related to play-via-sms */ - public static final int pref_group_sms_summary=0x7f050314; + public static final int pref_group_sms_summary=0x7f050315; /** SMS Stuff */ - public static final int pref_group_sms_title=0x7f050313; + public static final int pref_group_sms_title=0x7f050314; /** Label for the first "human player" name preference Label for the first "human player" name preference Human player @@ -5394,10 +5396,10 @@ XLATE-ME public static final int pref_human_name=0x7f050127; /** Get intermediate builds */ - public static final int pref_item_update_summary=0x7f05031a; + public static final int pref_item_update_summary=0x7f05031b; /** Update between releases */ - public static final int pref_item_update_title=0x7f050319; + public static final int pref_item_update_title=0x7f05031a; /** Label for the first player color preference Label for the first player color preference First player @@ -5602,7 +5604,7 @@ XLATE-ME Your opponent */ public static final int prev_player=0x7f0502c0; - public static final int processing_games=0x7f050333; + public static final int processing_games=0x7f050334; /** Downloading */ public static final int progress_title=0x7f0502b4; @@ -5621,7 +5623,7 @@ XLATE-ME /** XLATE-ME Relay device port */ - public static final int proxy_port=0x7f0502fb; + public static final int proxy_port=0x7f0502fc; /** Short for "points", this is shown at the right end of the tray in place of the first tile placed along with the points the current move would earn if committed. @@ -5655,16 +5657,16 @@ XLATE-ME middle of a game, like "do you want to commit this move?" */ public static final int query_title=0x7f0501b3; - public static final int radio_name_cdma=0x7f05030b; - public static final int radio_name_gsm=0x7f05030a; + public static final int radio_name_cdma=0x7f05030c; + public static final int radio_name_gsm=0x7f05030b; /** XLATE-ME Don\'t pretend */ - public static final int radio_name_real=0x7f050308; + public static final int radio_name_real=0x7f050309; /** XLATE-ME Tablet/no radio */ - public static final int radio_name_tablet=0x7f050309; + public static final int radio_name_tablet=0x7f05030a; /** ############################################################ # :Dialogs: @@ -5705,7 +5707,7 @@ XLATE-ME Invite redirect host */ public static final int redir_host=0x7f0502ee; - public static final int rel_invite_title=0x7f050331; + public static final int rel_invite_title=0x7f050332; /** Title of dialog used to alert players to relay-related problems with the current game. the color of text, e.g. "2L", shown on a bonus square on the @@ -5730,7 +5732,7 @@ XLATE-ME /** XLATE-ME Relay game port */ - public static final int relay_port=0x7f0502fa; + public static final int relay_port=0x7f0502fb; /** Shown in toast when relaunching after switching dicts Shown in toast when relaunching after switching dicts Reloading game with %1$s @@ -5865,7 +5867,7 @@ XLATE-ME title for popup of public rooms found on server */ public static final int room_public_prompt=0x7f0500c0; - public static final int seeking_relay=0x7f05031e; + public static final int seeking_relay=0x7f05031f; /** Games: %1$d */ public static final int sel_games_fmt=0x7f05026d; @@ -6102,7 +6104,7 @@ XLATE-ME placed, i.e. they do not form a single word. */ public static final int str_no_empties_in_turn=0x7f05018b; - public static final int str_no_hint_found=0x7f050329; + public static final int str_no_hint_found=0x7f05032a; /** Same as above, but used when you try to show tiles belonging to a player on another device (a remote player.) Same as above, but used when you try to show tiles belonging @@ -6928,7 +6930,7 @@ réseau.) */ public static final int warn_unlimited=0x7f05021c; - public static final int wifi_warning=0x7f050322; + public static final int wifi_warning=0x7f050323; /** First letters @@ -6944,7 +6946,7 @@ réseau.) /** XLATE-ME Fake locale for translation */ - public static final int xlations_locale=0x7f050300; + public static final int xlations_locale=0x7f050301; /** Empty in English, this should contain the name of the translator/creator of the strings.xml file for this language diff --git a/xwords4/android/XWords4/res/menu-small/board_menu.xml b/xwords4/android/XWords4/res/menu-small/board_menu.xml index f933fe7b9..ea043766c 100644 --- a/xwords4/android/XWords4/res/menu-small/board_menu.xml +++ b/xwords4/android/XWords4/res/menu-small/board_menu.xml @@ -95,5 +95,7 @@ /> + diff --git a/xwords4/android/XWords4/res/menu/board_menu.xml b/xwords4/android/XWords4/res/menu/board_menu.xml index 9f8d0e652..35e3997ef 100644 --- a/xwords4/android/XWords4/res/menu/board_menu.xml +++ b/xwords4/android/XWords4/res/menu/board_menu.xml @@ -72,5 +72,7 @@ + diff --git a/xwords4/android/XWords4/res/values/strings.xml b/xwords4/android/XWords4/res/values/strings.xml index 0b124bb86..8a9cd4f2d 100644 --- a/xwords4/android/XWords4/res/values/strings.xml +++ b/xwords4/android/XWords4/res/values/strings.xml @@ -2526,6 +2526,7 @@ Send SMS as data (GSM phones only) Network stats + Show invites Game network stats Source version id 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 fc7c2952a..575fb3b84 100644 --- a/xwords4/android/XWords4/res_src/values-ba_CK/strings.xml +++ b/xwords4/android/XWords4/res_src/values-ba_CK/strings.xml @@ -2167,6 +2167,7 @@ Dnes SMS sa atad mSG( senohp )ylno Krowten stats + Wohs setivni Emag krowten stats Ecruos noisrev di Ecived DI no( )yaler 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 9822b4882..c45864b18 100644 --- a/xwords4/android/XWords4/res_src/values-ca_PS/strings.xml +++ b/xwords4/android/XWords4/res_src/values-ca_PS/strings.xml @@ -2167,6 +2167,7 @@ SEND SMS AS DATA (GSM PHONES ONLY) NETWORK STATS + SHOW INVITES GAME NETWORK STATS SOURCE VERSION ID DEVICE ID (ON RELAY) 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 db79ef47b..c75911642 100644 --- a/xwords4/android/XWords4/src/org/eehouse/android/xw4/BoardDelegate.java +++ b/xwords4/android/XWords4/src/org/eehouse/android/xw4/BoardDelegate.java @@ -53,6 +53,7 @@ import java.util.concurrent.Semaphore; import junit.framework.Assert; +import org.eehouse.android.xw4.DBUtils.SentInvitesInfo; import org.eehouse.android.xw4.DlgDelegate.Action; import org.eehouse.android.xw4.DlgDelegate.DlgClickNotify.InviteMeans; import org.eehouse.android.xw4.jni.*; @@ -96,7 +97,7 @@ public class BoardDelegate extends DelegateBase private View m_tradeButtons; private Button m_exchCommmitButton; private Button m_exchCancelButton; - private DBUtils.SentInvitesInfo m_sentInfo; + private SentInvitesInfo m_sentInfo; private ArrayList m_pendingChats; @@ -842,6 +843,7 @@ public class BoardDelegate extends DelegateBase enable = enable && BuildConfig.DEBUG; Utils.setItemVisible( menu, R.id.board_menu_game_netstats, enable ); + Utils.setItemVisible( menu, R.id.board_menu_game_invites, enable ); enable = XWPrefs.getStudyEnabled( m_activity ); Utils.setItemVisible( menu, R.id.games_menu_study, enable ); @@ -921,6 +923,10 @@ public class BoardDelegate extends DelegateBase case R.id.board_menu_game_netstats: m_jniThread.handle( JNICmd.CMD_NETSTATS, R.string.netstats_title ); break; + case R.id.board_menu_game_invites: + SentInvitesInfo sentInfo = DBUtils.getInvitesFor( m_activity, m_rowid ); + showOKOnlyDialog( sentInfo.getAsText( m_activity ) ); + break; case R.id.board_menu_undo_current: cmd = JNICmd.CMD_UNDO_CUR; break; From 84fe06e029c907475697db4f94e913ab61116d69 Mon Sep 17 00:00:00 2001 From: Eric House Date: Fri, 15 Jan 2016 20:52:39 -0800 Subject: [PATCH 22/37] in invite, record bt device name rather than (unreadable) addr --- .../XWords4/src/org/eehouse/android/xw4/BoardDelegate.java | 6 ++++-- 1 file changed, 4 insertions(+), 2 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 c75911642..5c2260dd6 100644 --- a/xwords4/android/XWords4/src/org/eehouse/android/xw4/BoardDelegate.java +++ b/xwords4/android/XWords4/src/org/eehouse/android/xw4/BoardDelegate.java @@ -2418,6 +2418,7 @@ public class BoardDelegate extends DelegateBase m_invitesPending = m_missingDevs.length; for ( int ii = 0; ii < m_missingDevs.length; ++ii ) { String dev = m_missingDevs[ii]; + String devName = dev; int nPlayers = m_missingCounts[ii]; Assert.assertTrue( 0 <= m_nGuestDevs ); int forceChannel = ii + m_nGuestDevs + 1; @@ -2431,7 +2432,8 @@ public class BoardDelegate extends DelegateBase case BLUETOOTH: if ( ! m_progressShown ) { m_progressShown = true; - String progMsg = BTService.nameForAddr( dev ); + devName = BTService.nameForAddr( dev ); + String progMsg = devName; progMsg = getString( R.string.invite_progress_fmt, progMsg ); startProgress( R.string.invite_progress_title, progMsg, new OnCancelListener() { @@ -2457,7 +2459,7 @@ public class BoardDelegate extends DelegateBase break; } - recordInviteSent( m_missingMeans, dev ); + recordInviteSent( m_missingMeans, devName ); } m_missingDevs = null; m_missingCounts = null; From 3ca47cdd82379fb184c2234f3e61f49862ed170a Mon Sep 17 00:00:00 2001 From: Eric House Date: Sat, 16 Jan 2016 12:08:36 -0800 Subject: [PATCH 23/37] add debug-only context menu giving conn-via config and invites for GamesList games. --- xwords4/android/XWords4/archive/R.java | 598 +++++++++--------- .../XWords4/res/menu/games_list_game_menu.xml | 5 + .../android/XWords4/res/values/strings.xml | 3 + .../XWords4/res_src/values-ba_CK/strings.xml | 3 + .../XWords4/res_src/values-ca_PS/strings.xml | 3 + .../org/eehouse/android/xw4/GameListItem.java | 6 + .../android/xw4/GamesListDelegate.java | 37 +- 7 files changed, 350 insertions(+), 305 deletions(-) diff --git a/xwords4/android/XWords4/archive/R.java b/xwords4/android/XWords4/archive/R.java index be8bca382..6c9dece10 100644 --- a/xwords4/android/XWords4/archive/R.java +++ b/xwords4/android/XWords4/archive/R.java @@ -168,30 +168,31 @@ public final class R { public static final int games_game_copy=0x7f0a00b0; public static final int games_game_delete=0x7f0a00a9; public static final int games_game_deselect=0x7f0a00b2; + public static final int games_game_invites=0x7f0a00b3; public static final int games_game_move=0x7f0a00ac; public static final int games_game_new_from=0x7f0a00ae; public static final int games_game_rematch=0x7f0a00aa; public static final int games_game_rename=0x7f0a00af; public static final int games_game_reset=0x7f0a00ad; public static final int games_game_select=0x7f0a00b1; - public static final int games_group_default=0x7f0a00b6; - public static final int games_group_delete=0x7f0a00b5; - public static final int games_group_movedown=0x7f0a00b4; - public static final int games_group_moveup=0x7f0a00b3; - public static final int games_group_rename=0x7f0a00b7; - public static final int games_menu_about=0x7f0a00bf; - public static final int games_menu_checkmoves=0x7f0a00c1; - public static final int games_menu_checkupdates=0x7f0a00c2; - public static final int games_menu_dicts=0x7f0a00bd; - public static final int games_menu_email=0x7f0a00be; - public static final int games_menu_loaddb=0x7f0a00c4; - public static final int games_menu_newgame_net=0x7f0a00b9; - public static final int games_menu_newgame_solo=0x7f0a00b8; - public static final int games_menu_newgroup=0x7f0a00ba; - public static final int games_menu_prefs=0x7f0a00bb; - public static final int games_menu_rateme=0x7f0a00bc; - public static final int games_menu_resend=0x7f0a00c0; - public static final int games_menu_storedb=0x7f0a00c3; + public static final int games_group_default=0x7f0a00b7; + public static final int games_group_delete=0x7f0a00b6; + public static final int games_group_movedown=0x7f0a00b5; + public static final int games_group_moveup=0x7f0a00b4; + public static final int games_group_rename=0x7f0a00b8; + public static final int games_menu_about=0x7f0a00c0; + public static final int games_menu_checkmoves=0x7f0a00c2; + public static final int games_menu_checkupdates=0x7f0a00c3; + public static final int games_menu_dicts=0x7f0a00be; + public static final int games_menu_email=0x7f0a00bf; + public static final int games_menu_loaddb=0x7f0a00c5; + public static final int games_menu_newgame_net=0x7f0a00ba; + public static final int games_menu_newgame_solo=0x7f0a00b9; + public static final int games_menu_newgroup=0x7f0a00bb; + public static final int games_menu_prefs=0x7f0a00bc; + public static final int games_menu_rateme=0x7f0a00bd; + public static final int games_menu_resend=0x7f0a00c1; + public static final int games_menu_storedb=0x7f0a00c4; public static final int games_menu_study=0x7f0a0091; public static final int group_done=0x7f0a0084; public static final int group_exchange=0x7f0a0097; @@ -207,10 +208,10 @@ public final class R { public static final int label=0x7f0a0025; public static final int lang_separator=0x7f0a002b; public static final int lang_spinner=0x7f0a002c; - public static final int loc_item_check=0x7f0a00c6; - public static final int loc_item_clear=0x7f0a00c5; - public static final int loc_item_copy_bless=0x7f0a00c8; - public static final int loc_item_copy_eng=0x7f0a00c7; + public static final int loc_item_check=0x7f0a00c7; + public static final int loc_item_clear=0x7f0a00c6; + public static final int loc_item_copy_bless=0x7f0a00c9; + public static final int loc_item_copy_eng=0x7f0a00c8; public static final int loc_search_button=0x7f0a005e; public static final int loc_search_field=0x7f0a005d; public static final int local_label=0x7f0a0059; @@ -258,11 +259,11 @@ public final class R { public static final int seek_red=0x7f0a0014; public static final int show_remote=0x7f0a001e; public static final int shuffle_button=0x7f0a007d; - public static final int slmenu_clear_sel=0x7f0a00cd; - public static final int slmenu_copy_sel=0x7f0a00cc; - public static final int slmenu_deselect_all=0x7f0a00cb; - public static final int slmenu_lookup_sel=0x7f0a00c9; - public static final int slmenu_select_all=0x7f0a00ca; + public static final int slmenu_clear_sel=0x7f0a00ce; + public static final int slmenu_copy_sel=0x7f0a00cd; + public static final int slmenu_deselect_all=0x7f0a00cc; + public static final int slmenu_lookup_sel=0x7f0a00ca; + public static final int slmenu_select_all=0x7f0a00cb; public static final int smart_robot=0x7f0a0040; public static final int state=0x7f0a004d; public static final int summary=0x7f0a0060; @@ -683,16 +684,16 @@ string name="str_robot_moved">O robô fez esta jogada:\u0020%1$s added to %2$s studylist */ - public static final int add_done_fmt=0x7f050280; + public static final int add_done_fmt=0x7f050281; /** Add %1$s to studylist */ - public static final int add_to_study_fmt=0x7f05027a; + public static final int add_to_study_fmt=0x7f05027b; /** Debugging stuff. Localize if you think your langauge users will care. XLATE-ME For debugging */ - public static final int advanced=0x7f0502eb; + public static final int advanced=0x7f0502ec; /** This button takes you to the normal Game Configure screen This button takes you to the normal Game Configure screen Advanced game settings @@ -702,7 +703,7 @@ XLATE-ME /** XLATE-ME You should never need these... */ - public static final int advanced_summary=0x7f0502ec; + public static final int advanced_summary=0x7f0502ed; /** The wordlist %1$s contains only @@ -715,7 +716,7 @@ XLATE-ME on the device %1$s. Please check that the device is within range and that Crosswords is installed on it. */ - public static final int app_not_found_fmt=0x7f0502c5; + public static final int app_not_found_fmt=0x7f0502c6; public static final int app_version=0x7f050000; /** the background color of the area outside the board, e.g. between entries in the scoreboard @@ -854,7 +855,7 @@ XLATE-ME /** XLATE-ME Network stats */ - public static final int board_menu_game_netstats=0x7f0502f6; + public static final int board_menu_game_netstats=0x7f0502f7; /** Meaningful only for networked games, this menu causes all messages that have not yet been acknowledged by a remote device in the game to be resent. Eventually I hope to be @@ -876,10 +877,10 @@ XLATE-ME /** Resign */ public static final int board_menu_game_resign=0x7f050104; - public static final int board_menu_game_showInvites=0x7f0502f7; + public static final int board_menu_game_showInvites=0x7f0502f8; /** Invite */ - public static final int board_menu_invite=0x7f050273; + public static final int board_menu_invite=0x7f050274; /** Pass @@ -1056,7 +1057,7 @@ XLATE-ME one or more?\n\n(You may also need to open it on the device you want to pair with.) */ - public static final int bt_no_devs=0x7f0502c4; + public static final int bt_no_devs=0x7f0502c5; /** Turn Bluetooth on In the Bluetooth invite device dialog In the Bluetooth invite device dialog @@ -1096,7 +1097,7 @@ XLATE-ME public static final int button_close_game=0x7f050199; /** Decline */ - public static final int button_decline=0x7f050253; + public static final int button_decline=0x7f050254; /** @@ -1183,7 +1184,7 @@ XLATE-ME /** XLATE-ME Discard changes */ - public static final int button_discard_changes=0x7f0502e3; + public static final int button_discard_changes=0x7f0502e4; /** Done @@ -1219,17 +1220,17 @@ XLATE-ME /** XLATE-ME Edit */ - public static final int button_edit=0x7f0502e2; - public static final int button_enable=0x7f050326; + public static final int button_edit=0x7f0502e3; + public static final int button_enable=0x7f050327; /** XLATE-ME Enable Bluetooth */ - public static final int button_enable_bt=0x7f05023e; + public static final int button_enable_bt=0x7f05023f; /** XLATE-ME Enable SMS */ - public static final int button_enable_sms=0x7f05023d; - public static final int button_go_settings=0x7f050275; + public static final int button_enable_sms=0x7f05023e; + public static final int button_go_settings=0x7f050276; /** Invite checked @@ -1245,7 +1246,7 @@ XLATE-ME /** XLATE-ME Later */ - public static final int button_later=0x7f05023f; + public static final int button_later=0x7f050240; /** New strings that need to be documented and found a home above. New strings that need to be documented and found a home @@ -1366,8 +1367,8 @@ XLATE-ME public static final int button_notagain=0x7f0501b5; /** Reconnect */ - public static final int button_reconnect=0x7f050265; - public static final int button_reinvite=0x7f0502dd; + public static final int button_reconnect=0x7f050266; + public static final int button_reinvite=0x7f0502de; /** */ public static final int button_relay_add=0x7f050211; @@ -1382,7 +1383,7 @@ XLATE-ME game with the same players and parameters as the one that just ended. */ - public static final int button_rematch=0x7f050264; + public static final int button_rematch=0x7f050265; /** When you select the list_item_reset contextual menu, you are asked to confirm. This is the text of the first button ("Cancel" is the second). @@ -1523,7 +1524,7 @@ XLATE-ME public static final int button_trade_commit=0x7f0500df; /** Button for alert with title above */ - public static final int button_wait=0x7f0502dc; + public static final int button_wait=0x7f0502dd; /** ############################################################ # Dialogs @@ -1570,10 +1571,10 @@ XLATE-ME /** The group for new games, %1$s, cannot be deleted. */ - public static final int cannot_delete_default_group_fmt=0x7f050263; + public static final int cannot_delete_default_group_fmt=0x7f050264; /** Move selected games to: */ - public static final int change_group=0x7f050268; + public static final int change_group=0x7f050269; /** text of button in About Crosswords dialog summoning above dialog text of button in About Crosswords dialog summoning above @@ -1690,17 +1691,17 @@ XLATE-ME public static final int chat_title_fmt=0x7f050182; /** Checking for wordlists in %1$s… */ - public static final int checking_for_fmt=0x7f05031d; + public static final int checking_for_fmt=0x7f05031e; /** Checking */ - public static final int checking_title=0x7f05031c; + public static final int checking_title=0x7f05031d; /** Everything is up-to-date. */ - public static final int checkupdates_none_found=0x7f050241; + public static final int checkupdates_none_found=0x7f050242; /** EXPERIMENTAL: "label" for invite on clipboard. If it's shown it's by some Android utility */ - public static final int clip_label=0x7f05032f; + public static final int clip_label=0x7f050330; /** color of the "crosshairs", lines drawn vertically and horizontally through the square the user is currently touching in order to guide the fat-fingered (most of us) in @@ -1724,8 +1725,8 @@ XLATE-ME and cannot be saved. Would you like to discard your changes, or edit to give it a way to connect? */ - public static final int config_no_connvia=0x7f0502e1; - public static final int confirm_clear_chat=0x7f050331; + public static final int config_no_connvia=0x7f0502e2; + public static final int confirm_clear_chat=0x7f050332; public static final int confirm_clear_relay=0x7f050218; /** Additional text appended to text confirm_delete_dictf in the wordlist delete confiration dialog in the case where the @@ -1737,14 +1738,14 @@ XLATE-ME of the language is substituted for %1$s. */ public static final int confirm_deleteonly_dicts_fmt=0x7f0500aa; - public static final int confirm_drop_relay=0x7f050322; - public static final int confirm_drop_relay_bt=0x7f050324; - public static final int confirm_drop_relay_sms=0x7f050325; + public static final int confirm_drop_relay=0x7f050323; + public static final int confirm_drop_relay_bt=0x7f050325; + public static final int confirm_drop_relay_sms=0x7f050326; /** Your device is set up for %1$s. Would you like to download a wordlist so you can play Crosswords in %1$s? */ - public static final int confirm_get_locdict_fmt=0x7f0502ea; + public static final int confirm_get_locdict_fmt=0x7f0502eb; /** Text of confirmation dialog for above Text of confirmation dialog for above Are you sure you want to restore @@ -1814,37 +1815,37 @@ XLATE-ME enabled? */ - public static final int confirm_sms_expl=0x7f050236; + public static final int confirm_sms_expl=0x7f050237; /** No: leave disabled */ - public static final int confirm_sms_leave=0x7f050238; + public static final int confirm_sms_leave=0x7f050239; /** Enable play via SMS? */ - public static final int confirm_sms_prompt=0x7f050237; + public static final int confirm_sms_prompt=0x7f050238; /** Confirm your SMS plan */ - public static final int confirm_sms_title=0x7f050235; + public static final int confirm_sms_title=0x7f050236; /** Yes: I have unlimited texting */ - public static final int confirm_sms_unlimited=0x7f050239; + public static final int confirm_sms_unlimited=0x7f05023a; /** Yes: I\'ll pay all carrier charges */ - public static final int confirm_sms_willpay=0x7f05023a; + public static final int confirm_sms_willpay=0x7f05023b; /** text of dialog shown when the menu item board_menu_undo_last is chosen. text of dialog shown when the menu item board_menu_undo_last @@ -1938,32 +1939,32 @@ XLATE-ME /** XLATE-ME Change Communicate via */ - public static final int connection_via_label=0x7f0502d7; + public static final int connection_via_label=0x7f0502d8; /** (Last failure was %1$s) */ - public static final int connstat_lastother_succ_fmt=0x7f05022d; + public static final int connstat_lastother_succ_fmt=0x7f05022e; /** (Last successful send was %1$s) */ - public static final int connstat_lastother_unsucc_fmt=0x7f05022e; + public static final int connstat_lastother_unsucc_fmt=0x7f05022f; /** Last receipt was %1$s */ - public static final int connstat_lastreceipt_fmt=0x7f05022f; + public static final int connstat_lastreceipt_fmt=0x7f050230; /** Last send was %1$s (%2$s) */ - public static final int connstat_lastsend_fmt=0x7f05022c; + public static final int connstat_lastsend_fmt=0x7f05022d; /** Network status for game connected via @@ -1977,31 +1978,31 @@ XLATE-ME No messages have been received. */ - public static final int connstat_noreceipt=0x7f050230; + public static final int connstat_noreceipt=0x7f050231; /** internet/relay */ - public static final int connstat_relay=0x7f050231; + public static final int connstat_relay=0x7f050232; /** sms/texting */ - public static final int connstat_sms=0x7f050232; + public static final int connstat_sms=0x7f050233; /** successful */ - public static final int connstat_succ=0x7f05022a; + public static final int connstat_succ=0x7f05022b; /** unsuccessful */ - public static final int connstat_unsucc=0x7f05022b; + public static final int connstat_unsucc=0x7f05022c; /** title of dialog brought up in response to the board_menu_game_counts menu. The dialog lists all tiles in the language being used for the game together with how many @@ -2019,7 +2020,7 @@ XLATE-ME public static final int counts_values_title=0x7f0501af; /** %1$s (in use) */ - public static final int cur_menu_marker_fmt=0x7f050272; + public static final int cur_menu_marker_fmt=0x7f050273; /** Tile picker\n(so far: %1$s) @@ -2028,19 +2029,19 @@ XLATE-ME public static final int cur_tiles_fmt=0x7f0501e4; /** SMS Data is only available on GSM phones. */ - public static final int data_gsm_only=0x7f05028f; + public static final int data_gsm_only=0x7f050290; /** SD card write complete. */ - public static final int db_store_done=0x7f05031e; + public static final int db_store_done=0x7f05031f; /** XLATE-ME Enable debug features */ - public static final int debug_features=0x7f0502f2; + public static final int debug_features=0x7f0502f3; /** XLATE-ME Menuitems etc. (release builds only) */ - public static final int debug_features_summary=0x7f0502f3; + public static final int debug_features_summary=0x7f0502f4; /** dictionary used by default for human players when creating new game clarification of above @@ -2068,13 +2069,13 @@ XLATE-ME label within default wordlists in app preferences Default language */ - public static final int default_language=0x7f0502c6; + public static final int default_language=0x7f0502c7; /** Store wordlists internally */ - public static final int default_loc=0x7f050256; + public static final int default_loc=0x7f050257; /** (Not in external/sdcard memory) */ - public static final int default_loc_summary=0x7f050257; + public static final int default_loc_summary=0x7f050258; /** Welcome dialog text Welcome dialog text Thanks for installing @@ -2147,8 +2148,8 @@ XLATE-ME public static final int default_update_url=0x7f050080; /** Delete wordlist[s] */ - public static final int delete_dicts=0x7f0502b1; - public static final int devid_title=0x7f0502fa; + public static final int delete_dicts=0x7f0502b2; + public static final int devid_title=0x7f0502fb; /** Playing via SMS is currently disabled. You can enable it in Settings->Network game settings. @@ -2186,15 +2187,15 @@ XLATE-ME public static final int dict_browse_title_fmt=0x7f0501e6; /** %1$s (%2$s/%3$d words) */ - public static final int dict_desc_fmt=0x7f0502b8; + public static final int dict_desc_fmt=0x7f0502b9; /** XLATE-ME Wordlist download URL */ - public static final int dict_host=0x7f0502ef; + public static final int dict_host=0x7f0502f0; /** Number of words: %1$d\nDownload size: %2$dK\nNote: %3$s */ - public static final int dict_info_fmt=0x7f0502b5; + public static final int dict_info_fmt=0x7f0502b6; /** label for dropdown by which wordlist is chosen that this player will use. The language the game will use (which constrains the choice of wordlists) is substituted in for @@ -2212,7 +2213,7 @@ XLATE-ME public static final int dict_lang_label_fmt=0x7f0500db; /** Tap to download */ - public static final int dict_on_server=0x7f0502b7; + public static final int dict_on_server=0x7f0502b8; /** string name="invite_mime">text/plainDo not notify me no matter how long it\'s been my turn */ - public static final int disable_nag_summary=0x7f0502e8; + public static final int disable_nag_summary=0x7f0502e9; /** Disable turn reminders */ - public static final int disable_nag_title=0x7f0502e7; - public static final int disable_nags_title=0x7f0502e6; + public static final int disable_nag_title=0x7f0502e8; + public static final int disable_nags_title=0x7f0502e7; /** text of item at bottom of dicts choice spinner. It launches the browser pointed at the site where additional wordlists can be found. @@ -2328,23 +2329,23 @@ XLATE-ME public static final int download_dicts=0x7f0500a5; /** Download finished */ - public static final int download_done=0x7f050254; + public static final int download_done=0x7f050255; /** Download unsuccessful */ - public static final int download_failed=0x7f050255; + public static final int download_failed=0x7f050256; /** Downloads Directory */ - public static final int download_path_title=0x7f050258; + public static final int download_path_title=0x7f050259; /** Downloading %1$s… */ public static final int downloading_dict_fmt=0x7f050196; - public static final int drop_relay_warning_fmt=0x7f050321; + public static final int drop_relay_warning_fmt=0x7f050322; /** Display snapshots of games Display snapshots of games Invitation received but ignored: it has already been used to create a game. */ - public static final int dropped_dupe=0x7f050271; + public static final int dropped_dupe=0x7f050272; /** Shown in the main screen when you launch Crosswords from an invitation (received in email or messaging app, say) and there's already a game running that matches that invitation. @@ -2412,54 +2413,54 @@ XLATE-ME /** XLATE-ME Accept invitations more than once */ - public static final int enable_dupes_summary=0x7f050302; + public static final int enable_dupes_summary=0x7f050303; /** XLATE-ME Accept duplicate invites */ - public static final int enable_dupes_title=0x7f050300; + public static final int enable_dupes_title=0x7f050301; /** NFC is turned off on this device. You can use the Android Settings app to turn it on . */ - public static final int enable_nfc=0x7f050274; + public static final int enable_nfc=0x7f050275; /** XLATE-ME Fake invitation to aid debugging */ - public static final int enable_nfc_toself_summary=0x7f050305; + public static final int enable_nfc_toself_summary=0x7f050306; /** XLATE-ME Enable NFC to self */ - public static final int enable_nfc_toself_title=0x7f050304; + public static final int enable_nfc_toself_title=0x7f050305; /** XLATE-ME Rooms others can see and join */ - public static final int enable_pubroom_summary=0x7f0502d6; + public static final int enable_pubroom_summary=0x7f0502d7; /** XLATE-ME Enable public rooms */ - public static final int enable_pubroom_title=0x7f0502d5; - public static final int enable_relay_toself_summary=0x7f05032d; - public static final int enable_relay_toself_title=0x7f05032c; + public static final int enable_pubroom_title=0x7f0502d6; + public static final int enable_relay_toself_summary=0x7f05032e; + public static final int enable_relay_toself_title=0x7f05032d; /** Allow games via SMS */ - public static final int enable_sms=0x7f050233; + public static final int enable_sms=0x7f050234; /** Only if you have unlimited texting! */ - public static final int enable_sms_summary=0x7f050234; + public static final int enable_sms_summary=0x7f050235; /** XLATE-ME Skip radio when phone numbers same */ - public static final int enable_sms_toself_summary=0x7f050307; + public static final int enable_sms_toself_summary=0x7f050308; /** XLATE-ME Short-circuit SMS to self */ - public static final int enable_sms_toself_title=0x7f050306; + public static final int enable_sms_toself_title=0x7f050307; /** Tap tiles to select… */ public static final int entering_trade=0x7f0500e1; @@ -2468,11 +2469,11 @@ XLATE-ME device \"%1$s\" has already accepted an invitation to this game. */ - public static final int err_dup_invite_fmt=0x7f0502d0; + public static final int err_dup_invite_fmt=0x7f0502d1; /** XLATE-ME Update checks URL */ - public static final int expl_update_url=0x7f050311; + public static final int expl_update_url=0x7f050312; /** if this preference is checked, a dialog will be posted every time a robot makes a move or a move is received from a remote player. @@ -2497,7 +2498,7 @@ XLATE-ME explanation of the above */ public static final int explain_robot_summary=0x7f050154; - public static final int fetching_from_relay=0x7f050333; + public static final int fetching_from_relay=0x7f050334; /** title of dialog brought up in response to the board_menu_game_final menu. The dialog displays the final score and an accounting of it (including subtractions for @@ -2527,13 +2528,13 @@ XLATE-ME /** XLATE-ME Pretend to have radio */ - public static final int force_radio_title=0x7f050308; + public static final int force_radio_title=0x7f050309; /** Even if my screen is too small */ - public static final int force_tablet_summary=0x7f0502bc; + public static final int force_tablet_summary=0x7f0502bd; /** Force tablet layout */ - public static final int force_tablet_title=0x7f0502bb; + public static final int force_tablet_title=0x7f0502bc; /** ############################################################ # :Dialogs: @@ -2658,7 +2659,7 @@ XLATE-ME public static final int game_locked=0x7f0500b5; /** Name group */ - public static final int game_name_group_title=0x7f050262; + public static final int game_name_group_title=0x7f050263; /** XLATE-ME New game name: @@ -2683,7 +2684,7 @@ XLATE-ME /** XLATE-ME gameid */ - public static final int game_summary_field_gameid=0x7f05030f; + public static final int game_summary_field_gameid=0x7f050310; /** Put the language there, so it reads "Game 2 (English)" Put the language there, so it reads "Game 2 (English)" Game language\u200C @@ -2693,7 +2694,7 @@ XLATE-ME /** XLATE-ME Pending packet count */ - public static final int game_summary_field_npackets=0x7f050310; + public static final int game_summary_field_npackets=0x7f050311; /** List names of opponents (summarized), e.g. "Game 2 (vs Kati)" List names of opponents (summarized), e.g. "Game 2 (vs Kati)" Opponent name[s] @@ -2703,7 +2704,7 @@ XLATE-ME /** XLATE-ME rowid */ - public static final int game_summary_field_rowid=0x7f05030e; + public static final int game_summary_field_rowid=0x7f05030f; /** List the state of the game, "Game over" or "10 moves made" etc. List the state of the game, "Game over" or "10 moves made" @@ -2732,7 +2733,7 @@ XLATE-ME Check for updates */ - public static final int gamel_menu_checkupdates=0x7f050240; + public static final int gamel_menu_checkupdates=0x7f050241; /** ############################################################ # :Menus: @@ -2775,16 +2776,16 @@ XLATE-ME /** XLATE-ME Load DB from SD card */ - public static final int gamel_menu_loaddb=0x7f0502ff; + public static final int gamel_menu_loaddb=0x7f050300; /** XLATE-ME %1$s/%2$s XLATE-ME Write DB to SD card */ - public static final int gamel_menu_storedb=0x7f0502fe; + public static final int gamel_menu_storedb=0x7f0502ff; /** Studylist… */ - public static final int gamel_menu_study=0x7f05027d; + public static final int gamel_menu_study=0x7f05027e; public static final int get_relay_number=0x7f050217; /** @@ -2794,27 +2795,27 @@ XLATE-ME public static final int get_sms_number=0x7f050216; /** Get info */ - public static final int getinfo=0x7f0502b0; + public static final int getinfo=0x7f0502b1; public static final int git_rev=0x7f050082; /** XLATE-ME Source version id */ - public static final int git_rev_title=0x7f0502f9; + public static final int git_rev_title=0x7f0502fa; /** Don\'t try a second time */ - public static final int got_langdict_summary=0x7f050313; + public static final int got_langdict_summary=0x7f050314; /** Fetch default wordlist for language */ - public static final int got_langdict_title=0x7f050312; + public static final int got_langdict_title=0x7f050313; /** Green */ public static final int green=0x7f05014f; /** My games */ - public static final int group_cur_games=0x7f05025f; + public static final int group_cur_games=0x7f050260; /** New games */ - public static final int group_new_games=0x7f050260; + public static final int group_new_games=0x7f050261; /** Used as the default name for remote players displayed within the Game configure screen Final state: game is over. @@ -2993,7 +2994,7 @@ XLATE-ME too? */ - public static final int inform_dict_diffdict_fmt=0x7f05024b; + public static final int inform_dict_diffdict_fmt=0x7f05024c; /** You and the host of this @@ -3002,14 +3003,14 @@ XLATE-ME Used in formatting final scores display */ - public static final int inform_dict_diffversion_fmt=0x7f050249; + public static final int inform_dict_diffversion_fmt=0x7f05024a; /** \u0020(You will have to download it first.) */ - public static final int inform_dict_download=0x7f05024c; + public static final int inform_dict_download=0x7f05024d; /** Wordlist mismatch */ - public static final int inform_dict_title=0x7f05024a; + public static final int inform_dict_title=0x7f05024b; /** Will new games, on default, randomly rearrange the start order of players. Will new games, on default, randomly rearrange the start @@ -3096,22 +3097,22 @@ XLATE-ME /** EXPERIMENTAL: Shown as toast when user chooses "My choice" for invitation */ - public static final int invite_copied=0x7f05032e; + public static final int invite_copied=0x7f05032f; /** %1$s has invited you to play Crosswords using the wordlist %2$s (for play in %3$s), but it is not installed. Would you like to download the wordlist or decline the invitation? */ - public static final int invite_dict_missing_body_fmt=0x7f050251; + public static final int invite_dict_missing_body_fmt=0x7f050252; /** You have been invited to play Crosswords using the wordlist %2$s (for play in %3$s), but it is not installed. Would you like to download the wordlist? */ - public static final int invite_dict_missing_body_noname_fmt=0x7f050252; + public static final int invite_dict_missing_body_noname_fmt=0x7f050253; /** Missing wordlist */ - public static final int invite_dict_missing_title=0x7f050250; + public static final int invite_dict_missing_title=0x7f050251; public static final int invite_host=0x7f05007d; /** This is the body of the html version of the invitation. A URL is created with parameters describing the game and @@ -3149,11 +3150,11 @@ XLATE-ME /** XLATE-ME Invite more than one player per remote device */ - public static final int invite_multi_summary=0x7f0502d4; + public static final int invite_multi_summary=0x7f0502d5; /** XLATE-ME Invite multiple */ - public static final int invite_multi_title=0x7f0502d3; + public static final int invite_multi_title=0x7f0502d4; /** Most users create games with only two players, which is the default, but Crosswords supports up to four. When I'm using the above string to encourage the opener of a game missing @@ -3193,7 +3194,7 @@ XLATE-ME expect it to take a while. They will still be able to connect.) */ - public static final int invite_stays=0x7f0502de; + public static final int invite_stays=0x7f0502df; /** Send invitation using SMS (texting) or via email? Send invitation using NFC (Android @@ -3240,6 +3241,9 @@ XLATE-ME */ public static final int invite_txt_fmt=0x7f05017e; public static final int invited_msg=0x7f0500e7; + /** First line of debug-only Invites list dialog + */ + public static final int invites_net_fmt=0x7f05022a; /** text of checkbox asking if user wants to search for open public rooms text of checkbox asking if user wants to search for open @@ -3422,44 +3426,44 @@ XLATE-ME different wordlists.) */ public static final int lang_label=0x7f0500ba; - public static final int lang_name_arabic=0x7f05029a; - public static final int lang_name_catalan=0x7f0502a1; - public static final int lang_name_czech=0x7f0502a4; - public static final int lang_name_danish=0x7f05029e; - public static final int lang_name_dutch=0x7f0502a0; - public static final int lang_name_english=0x7f050296; - public static final int lang_name_french=0x7f050297; - public static final int lang_name_german=0x7f050298; - public static final int lang_name_greek=0x7f0502a5; - public static final int lang_name_italian=0x7f05029f; - public static final int lang_name_polish=0x7f05029d; - public static final int lang_name_portuguese=0x7f0502a2; - public static final int lang_name_russian=0x7f0502a3; - public static final int lang_name_slovak=0x7f0502a6; - public static final int lang_name_spanish=0x7f05029b; - public static final int lang_name_swedish=0x7f05029c; - public static final int lang_name_turkish=0x7f050299; + public static final int lang_name_arabic=0x7f05029b; + public static final int lang_name_catalan=0x7f0502a2; + public static final int lang_name_czech=0x7f0502a5; + public static final int lang_name_danish=0x7f05029f; + public static final int lang_name_dutch=0x7f0502a1; + public static final int lang_name_english=0x7f050297; + public static final int lang_name_french=0x7f050298; + public static final int lang_name_german=0x7f050299; + public static final int lang_name_greek=0x7f0502a6; + public static final int lang_name_italian=0x7f0502a0; + public static final int lang_name_polish=0x7f05029e; + public static final int lang_name_portuguese=0x7f0502a3; + public static final int lang_name_russian=0x7f0502a4; + public static final int lang_name_slovak=0x7f0502a7; + public static final int lang_name_spanish=0x7f05029c; + public static final int lang_name_swedish=0x7f05029d; + public static final int lang_name_turkish=0x7f05029a; /** Unknown */ - public static final int lang_unknown=0x7f0502b9; + public static final int lang_unknown=0x7f0502ba; /** Game language/wordlist */ public static final int langdict_label=0x7f0500bb; /** Put new games here */ - public static final int list_group_default=0x7f05025c; + public static final int list_group_default=0x7f05025d; /** Delete group */ - public static final int list_group_delete=0x7f05025a; + public static final int list_group_delete=0x7f05025b; /** Move down */ - public static final int list_group_movedown=0x7f05025e; + public static final int list_group_movedown=0x7f05025f; /** Move up */ - public static final int list_group_moveup=0x7f05025d; + public static final int list_group_moveup=0x7f05025e; /** Rename */ - public static final int list_group_rename=0x7f05025b; + public static final int list_group_rename=0x7f05025c; /** ############## menu items ############## pulls up dialog to configure the selected game Used to format game name plus some other information as the @@ -3496,7 +3500,7 @@ XLATE-ME pulls up dialog to delete the selected game */ public static final int list_item_delete=0x7f05009c; - public static final int list_item_deselect=0x7f050336; + public static final int list_item_deselect=0x7f050337; /** pulls up dialog to change the group of the selected game pulls up dialog to change the group of the selected game pulls up dialog to change the group of the selected game @@ -3535,18 +3539,18 @@ XLATE-ME except for any configuration. */ public static final int list_item_reset=0x7f05009d; - public static final int list_item_select=0x7f050335; + public static final int list_item_select=0x7f050336; /** formatting for last move summary in notifications formatting for last move summary in notifications %1$s passed (0 points) */ - public static final int lmi_pass_fmt=0x7f0502c1; + public static final int lmi_pass_fmt=0x7f0502c2; /** %1$s lost a turn */ - public static final int lmi_phony_fmt=0x7f0502c2; + public static final int lmi_phony_fmt=0x7f0502c3; /** Tiles assigned to %1$s */ - public static final int lmi_tiles_fmt=0x7f0502c3; + public static final int lmi_tiles_fmt=0x7f0502c4; /** One of the strings used in the right column of the list of installed wordlists to describe those that are part of Crosswords and that cannot be uninstalled or moved. @@ -3588,24 +3592,24 @@ XLATE-ME public static final int loc_external=0x7f0500b1; /** All */ - public static final int loc_filters_all=0x7f050292; + public static final int loc_filters_all=0x7f050293; /** Latest menu */ - public static final int loc_filters_menu=0x7f050294; + public static final int loc_filters_menu=0x7f050295; /** Modified by me */ - public static final int loc_filters_modified=0x7f050295; + public static final int loc_filters_modified=0x7f050296; /** Filter by: */ - public static final int loc_filters_prompt=0x7f050290; + public static final int loc_filters_prompt=0x7f050291; /** Latest screen */ - public static final int loc_filters_screen=0x7f050293; + public static final int loc_filters_screen=0x7f050294; /** Illegal translation: a translated string must have the same format specifiers (e.g. %1$s) as the original. */ - public static final int loc_fmts_mismatch=0x7f0502ab; + public static final int loc_fmts_mismatch=0x7f0502ac; /** see move_dictf above see move_dictf above see move_dictf above @@ -3613,30 +3617,30 @@ XLATE-ME public static final int loc_internal=0x7f0500b0; /** Check */ - public static final int loc_item_check=0x7f0502a8; + public static final int loc_item_check=0x7f0502a9; /** for loc item edit menu for loc item edit menu Clear */ - public static final int loc_item_clear=0x7f0502a7; + public static final int loc_item_clear=0x7f0502a8; /** Copy official */ - public static final int loc_item_copy_bless=0x7f0502aa; + public static final int loc_item_copy_bless=0x7f0502ab; /** Copy English */ - public static final int loc_item_copy_eng=0x7f0502a9; + public static final int loc_item_copy_eng=0x7f0502aa; /** %1$s (official) */ - public static final int loc_lang_blessed=0x7f05028b; + public static final int loc_lang_blessed=0x7f05028c; /** %1$s (yours) */ - public static final int loc_lang_local=0x7f05028c; + public static final int loc_lang_local=0x7f05028d; /** Translate */ - public static final int loc_menu_xlate=0x7f05028a; + public static final int loc_menu_xlate=0x7f05028b; /** Search for: */ - public static final int loc_search_prompt=0x7f050291; + public static final int loc_search_prompt=0x7f050292; /** This is the "hint" printed in light text in the empty player name field ############################################################ @@ -3687,14 +3691,14 @@ XLATE-ME /** XLATE-ME Enable logging */ - public static final int logging_on=0x7f0502f0; + public static final int logging_on=0x7f0502f1; /** XLATE-ME (release builds only) */ - public static final int logging_on_summary=0x7f0502f1; + public static final int logging_on_summary=0x7f0502f2; /** Word lookup */ - public static final int lookup_title=0x7f050286; + public static final int lookup_title=0x7f050287; /** (Not in contacts) @@ -3744,7 +3748,7 @@ XLATE-ME public static final int menu_prefs=0x7f050093; /** Rate Crosswords */ - public static final int menu_rateme=0x7f050278; + public static final int menu_rateme=0x7f050279; /** Toggle values @@ -3775,14 +3779,14 @@ XLATE-ME wordslist that's not installed Tap to download missing wordlist */ - public static final int missing_dict_detail=0x7f05024f; + public static final int missing_dict_detail=0x7f050250; /** Title of notification shown when invitation requires a wordslist that's not installed Title of notification shown when invitation requires a wordslist that's not installed Game invitation pending */ - public static final int missing_dict_title=0x7f05024e; + public static final int missing_dict_title=0x7f05024f; /** Used as a substitute for the names of remote players when they aren't available yet because the connection is not complete. Displayed in the lists of players found in each @@ -3933,26 +3937,26 @@ XLATE-ME public static final int msgs_progress=0x7f050095; /** %1$s moved more than %2$s ago. */ - public static final int nag_body_fmt=0x7f0502be; + public static final int nag_body_fmt=0x7f0502bf; /** XLATE-ME Reminder intervals (minutes1,minutes2,...) */ - public static final int nag_intervals=0x7f050303; + public static final int nag_intervals=0x7f050304; /** Nagging: title of notification reminder message Nagging: title of notification reminder message Reminder: It\'s your turn */ - public static final int nag_title=0x7f0502bd; + public static final int nag_title=0x7f0502be; /** above is inserted in this the last time I warn above is inserted in this the last time I warn Last warning: %1$s */ - public static final int nag_warn_last_fmt=0x7f0502bf; + public static final int nag_warn_last_fmt=0x7f0502c0; /** XLATE-ME %1$s copy */ public static final int name_copy_fmt=0x7f05020c; - public static final int name_dict_fmt=0x7f0502fd; + public static final int name_dict_fmt=0x7f0502fe; public static final int nbs_port=0x7f050083; /** text of checkbox. If this checkbox is checked, games created for network play will by default have the hint feature @@ -3981,15 +3985,15 @@ XLATE-ME /** XLATE-ME Game network stats */ - public static final int netstats_title=0x7f0502f8; + public static final int netstats_title=0x7f0502f9; /** XLATE-ME For experienced players */ - public static final int network_advanced_summary=0x7f0502d2; + public static final int network_advanced_summary=0x7f0502d3; /** XLATE-ME Advanced */ - public static final int network_advanced_title=0x7f0502d1; + public static final int network_advanced_title=0x7f0502d2; /** Network game settings */ public static final int network_behavior=0x7f05015f; @@ -4005,13 +4009,13 @@ XLATE-ME Tap to download and install */ - public static final int new_app_avail=0x7f050245; + public static final int new_app_avail=0x7f050246; /** New version of %1$s */ - public static final int new_app_avail_fmt=0x7f050244; + public static final int new_app_avail_fmt=0x7f050245; /** New game via Bluetooth @@ -4030,37 +4034,37 @@ XLATE-ME New wordlist available */ - public static final int new_dict_avail=0x7f050242; + public static final int new_dict_avail=0x7f050243; /** Tap to update %1$s */ - public static final int new_dict_avail_fmt=0x7f050243; + public static final int new_dict_avail_fmt=0x7f050244; /** XLATE-ME New one-device game */ - public static final int new_game=0x7f0502c8; + public static final int new_game=0x7f0502c9; /** XLATE-ME Would you like to create this game using default settings?\n\nOr would you like to configure it first? */ - public static final int new_game_message=0x7f0502cb; + public static final int new_game_message=0x7f0502cc; /** XLATE-ME (You will have a chance to invite other players when it is open.) */ - public static final int new_game_message_net=0x7f0502cd; + public static final int new_game_message_net=0x7f0502ce; /** XLATE-ME This game must be configured before it can be opened. */ - public static final int new_game_message_nodflt=0x7f0502cc; + public static final int new_game_message_nodflt=0x7f0502cd; /** XLATE-ME New networked game */ - public static final int new_game_networked=0x7f0502c9; + public static final int new_game_networked=0x7f0502ca; /** @@ -4256,13 +4260,13 @@ XLATE-ME public static final int newgame_sms_header=0x7f05020d; /** Name your new group: */ - public static final int newgroup_label=0x7f050259; + public static final int newgroup_label=0x7f05025a; /** XLATE-ME To invite via NFC just touch the back of this device against the one you want to invite—any time the game is open. */ - public static final int nfc_just_tap=0x7f0502df; + public static final int nfc_just_tap=0x7f0502e0; /** XLATE-ME GSM XLATE-ME @@ -4270,7 +4274,7 @@ XLATE-ME XLATE-ME Send via NFC to self? */ - public static final int nfc_to_self=0x7f05030d; + public static final int nfc_to_self=0x7f05030e; /** Title of dialog for renaming game (triggered by selecting list_item_rename) If you try to copy a networked game you get this error @@ -4514,7 +4518,7 @@ XLATE-ME public static final int no_games_to_refresh=0x7f050096; /** Google Play app not found */ - public static final int no_market=0x7f050279; + public static final int no_market=0x7f05027a; /** displayed when you long-tap a scoreboard entry and there's no most recent score to show displayed when you long-tap a scoreboard entry and there's no @@ -4538,7 +4542,7 @@ XLATE-ME substituted. */ public static final int no_name_found_fmt=0x7f0500c2; - public static final int no_relay_conn=0x7f050320; + public static final int no_relay_conn=0x7f050321; /** This is not currently shown Crosswords wordlists, which are just compressed lists of words plus tile information, determine @@ -4585,7 +4589,7 @@ XLATE-ME selection instead of exiting. Hit it again to exit the app. */ - public static final int not_again_backclears=0x7f05026c; + public static final int not_again_backclears=0x7f05026d; /** This button opens the wordlist @@ -4613,10 +4617,10 @@ XLATE-ME /** EXPERIMENTAL: Newbie hint next when invite_choice_clip shown when chosen */ - public static final int not_again_clip_expl_fmt=0x7f050330; - public static final int not_again_comms_bt=0x7f050329; - public static final int not_again_comms_relay=0x7f050327; - public static final int not_again_comms_sms=0x7f050328; + public static final int not_again_clip_expl_fmt=0x7f050331; + public static final int not_again_comms_bt=0x7f05032a; + public static final int not_again_comms_relay=0x7f050328; + public static final int not_again_comms_sms=0x7f050329; /** This is shown in the Board screen when you successfully connecting a game to the relay and are the last device in the game to do so, i.e. the game is now complete and you should @@ -4667,7 +4671,7 @@ XLATE-ME for games with more than two devices, which are rare. */ public static final int not_again_conndmid=0x7f0501c5; - public static final int not_again_dfltname_fmt=0x7f050337; + public static final int not_again_dfltname_fmt=0x7f050338; /** This screen lets you install new wordslists and view the ones you already have.\n\nWhat wordlists you have installed determines:\n• What languages you can play @@ -4675,7 +4679,7 @@ XLATE-ME legal.\n\nCheck the \"Show downloadable\" box at the top to see what\'s available. */ - public static final int not_again_dicts=0x7f0502ba; + public static final int not_again_dicts=0x7f0502bb; /** This is shown when you choose the board_menu_done menu item. It's to let you know that there's a shortcut that does almost the same thing. @@ -4696,7 +4700,7 @@ XLATE-ME and want them back, enable them now. You can turn them off again in Settings. */ - public static final int not_again_enablepublic=0x7f0502e5; + public static final int not_again_enablepublic=0x7f0502e6; /** Shown when you tap the flip button on the toolbar of the main Board screen Shown when you tap the flip button on the toolbar of the main @@ -4712,7 +4716,7 @@ XLATE-ME the same ones as the original.\n\n(You will not be able to save it unless it does.) */ - public static final int not_again_fmt_expl=0x7f0502ac; + public static final int not_again_fmt_expl=0x7f0502ad; /** XLATE-ME These two buttons do the same thing as the first two items in this window\'s Action Bar @@ -4721,7 +4725,7 @@ XLATE-ME section of App settings). */ - public static final int not_again_hidenewgamebuttons=0x7f0502d9; + public static final int not_again_hidenewgamebuttons=0x7f0502da; /** Shown when you tap the next hint button on the toolbar of the main Board screen Shown when you tap the next hint button on the toolbar of the @@ -4789,13 +4793,13 @@ XLATE-ME then act on selected games, e.g. to delete them, using the menu or \"Actionbar.\" */ - public static final int not_again_newselect=0x7f05026b; - public static final int not_again_rematch_two_only=0x7f05032b; + public static final int not_again_newselect=0x7f05026c; + public static final int not_again_rematch_two_only=0x7f05032c; /** The selected words will be copied to the system clipboard. You can then paste them into any app that supports pasting text, e.g. an email app. */ - public static final int not_again_studycopy=0x7f050285; + public static final int not_again_studycopy=0x7f050286; /** The following strings (all whose names start with "not_again") appear in the New user info dialog. @@ -4898,7 +4902,7 @@ XLATE-ME public static final int not_again_zoom=0x7f0501be; /** (None) */ - public static final int note_none=0x7f0502b6; + public static final int note_none=0x7f0502b7; public static final int notify_chat_body_fmt=0x7f0501a5; public static final int notify_chat_title_fmt=0x7f0501a4; /** This text is displayed as the "summary" for both of the @@ -4949,7 +4953,7 @@ XLATE-ME /** XLATE-ME Number on this device */ - public static final int nplayers_prompt=0x7f0502cf; + public static final int nplayers_prompt=0x7f0502d0; /** text of label identifying the field where human players can enter an option password. The label and field disappear when the robot player checkbox is checked because it makes no @@ -4980,7 +4984,7 @@ XLATE-ME play – if he/she is also using NFC. \u0020pct. */ - public static final int pct_suffix=0x7f050277; + public static final int pct_suffix=0x7f050278; /** If this preference is checked, tapping on the scoreboard entry for any player reveals that player's tiles and any pending move (after asking for his password if one is set.) @@ -5373,22 +5377,22 @@ XLATE-ME public static final int players_label_standalone=0x7f0500b6; /** Prefs related to in-app localization */ - public static final int pref_group_l10n_summary=0x7f050319; + public static final int pref_group_l10n_summary=0x7f05031a; /** Localization Stuff */ - public static final int pref_group_l10n_title=0x7f050318; + public static final int pref_group_l10n_title=0x7f050319; /** Prefs related to play via internet/relay */ - public static final int pref_group_relay_summary=0x7f050317; + public static final int pref_group_relay_summary=0x7f050318; /** Relay Stuff */ - public static final int pref_group_relay_title=0x7f050316; + public static final int pref_group_relay_title=0x7f050317; /** Prefs related to play-via-sms */ - public static final int pref_group_sms_summary=0x7f050315; + public static final int pref_group_sms_summary=0x7f050316; /** SMS Stuff */ - public static final int pref_group_sms_title=0x7f050314; + public static final int pref_group_sms_title=0x7f050315; /** Label for the first "human player" name preference Label for the first "human player" name preference Human player @@ -5396,10 +5400,10 @@ XLATE-ME public static final int pref_human_name=0x7f050127; /** Get intermediate builds */ - public static final int pref_item_update_summary=0x7f05031b; + public static final int pref_item_update_summary=0x7f05031c; /** Update between releases */ - public static final int pref_item_update_title=0x7f05031a; + public static final int pref_item_update_title=0x7f05031b; /** Label for the first player color preference Label for the first player color preference First player @@ -5603,11 +5607,11 @@ XLATE-ME Used when prev player's name can't be looked up Your opponent */ - public static final int prev_player=0x7f0502c0; - public static final int processing_games=0x7f050334; + public static final int prev_player=0x7f0502c1; + public static final int processing_games=0x7f050335; /** Downloading */ - public static final int progress_title=0x7f0502b4; + public static final int progress_title=0x7f0502b5; /** Words no longer than @@ -5623,7 +5627,7 @@ XLATE-ME /** XLATE-ME Relay device port */ - public static final int proxy_port=0x7f0502fc; + public static final int proxy_port=0x7f0502fd; /** Short for "points", this is shown at the right end of the tray in place of the first tile placed along with the points the current move would earn if committed. @@ -5657,16 +5661,16 @@ XLATE-ME middle of a game, like "do you want to commit this move?" */ public static final int query_title=0x7f0501b3; - public static final int radio_name_cdma=0x7f05030c; - public static final int radio_name_gsm=0x7f05030b; + public static final int radio_name_cdma=0x7f05030d; + public static final int radio_name_gsm=0x7f05030c; /** XLATE-ME Don\'t pretend */ - public static final int radio_name_real=0x7f050309; + public static final int radio_name_real=0x7f05030a; /** XLATE-ME Tablet/no radio */ - public static final int radio_name_tablet=0x7f05030a; + public static final int radio_name_tablet=0x7f05030b; /** ############################################################ # :Dialogs: @@ -5706,8 +5710,8 @@ XLATE-ME /** XLATE-ME Invite redirect host */ - public static final int redir_host=0x7f0502ee; - public static final int rel_invite_title=0x7f050332; + public static final int redir_host=0x7f0502ef; + public static final int rel_invite_title=0x7f050333; /** Title of dialog used to alert players to relay-related problems with the current game. the color of text, e.g. "2L", shown on a bonus square on the @@ -5723,36 +5727,36 @@ XLATE-ME public static final int relay_alert=0x7f0500f0; /** Message from relay */ - public static final int relay_alert_title=0x7f05026a; + public static final int relay_alert_title=0x7f05026b; /** XLATE-ME Relay host */ - public static final int relay_host=0x7f0502ed; + public static final int relay_host=0x7f0502ee; public static final int relay_invite_title=0x7f050208; /** XLATE-ME Relay game port */ - public static final int relay_port=0x7f0502fb; + public static final int relay_port=0x7f0502fc; /** Shown in toast when relaunching after switching dicts Shown in toast when relaunching after switching dicts Reloading game with %1$s Shown in toast when relaunching after switching dicts */ - public static final int reload_new_dict_fmt=0x7f05024d; + public static final int reload_new_dict_fmt=0x7f05024e; /** XLATE-ME Issuing rematch invitation. You will see this message until it has been accepted.\n\nYou do not need to keep this game open while waiting. You will be notified when the game is ready to play. */ - public static final int rematch_msg=0x7f0502e4; - public static final int rematch_name_fmt=0x7f0502ca; + public static final int rematch_msg=0x7f0502e5; + public static final int rematch_name_fmt=0x7f0502cb; /** Processing wordlist information… */ - public static final int remote_digesting=0x7f0502ae; + public static final int remote_digesting=0x7f0502af; /** Fetching wordlist information from server… */ - public static final int remote_empty=0x7f0502ad; + public static final int remote_empty=0x7f0502ae; /** checkbox determining of this player is on this device or remote. If remote, then the rest of the fields disappear (since they will be set by the remote device.) @@ -5768,7 +5772,7 @@ XLATE-ME /** Unable to fetch wordlist information from server. */ - public static final int remote_no_net=0x7f0502af; + public static final int remote_no_net=0x7f0502b0; /** Remote device undid a turn. @@ -5777,7 +5781,7 @@ XLATE-ME public static final int remote_undone=0x7f05021d; /** Change the name of this group to: */ - public static final int rename_group_label=0x7f050261; + public static final int rename_group_label=0x7f050262; /** text within rename dialog (triggered by selecting list_item_rename) text within rename dialog (triggered by selecting @@ -5867,16 +5871,16 @@ XLATE-ME title for popup of public rooms found on server */ public static final int room_public_prompt=0x7f0500c0; - public static final int seeking_relay=0x7f05031f; + public static final int seeking_relay=0x7f050320; /** Games: %1$d */ - public static final int sel_games_fmt=0x7f05026d; + public static final int sel_games_fmt=0x7f05026e; /** Groups: %1$d */ - public static final int sel_groups_fmt=0x7f05026e; + public static final int sel_groups_fmt=0x7f05026f; /** Selected: %1$d */ - public static final int sel_items_fmt=0x7f050289; + public static final int sel_items_fmt=0x7f05028a; /** ############################################################ # :Dialogs: @@ -5900,7 +5904,7 @@ XLATE-ME /** XLATE-ME Hide buttons */ - public static final int set_pref=0x7f0502d8; + public static final int set_pref=0x7f0502d9; /** text of separator marking out other-setting area of the dialog see move_dictf above @@ -5961,10 +5965,10 @@ XLATE-ME public static final int show_arrow_summary=0x7f050140; /** Show downloadable */ - public static final int show_remote=0x7f0502b2; + public static final int show_remote=0x7f0502b3; /** Wordlist browser */ - public static final int show_wordlist_browser=0x7f050269; + public static final int show_wordlist_browser=0x7f05026a; /** If this preference is checked, the user will not be asked to confirm after selecting the "Turn done" menu (or tapping the points display at the right end of the tray) @@ -5986,16 +5990,16 @@ XLATE-ME public static final int skip_confirm_turn_summary=0x7f050156; /** Delete selected */ - public static final int slmenu_clear_sel=0x7f05027f; + public static final int slmenu_clear_sel=0x7f050280; /** Copy to clipboard */ - public static final int slmenu_copy_sel=0x7f05027e; + public static final int slmenu_copy_sel=0x7f05027f; /** Unselect all */ - public static final int slmenu_deselect_all=0x7f050288; + public static final int slmenu_deselect_all=0x7f050289; /** Select all */ - public static final int slmenu_select_all=0x7f050287; + public static final int slmenu_select_all=0x7f050288; /** XLATE-ME The version of Crosswords on the phone with number \"%1$s\" is incompatible with this one for play @@ -6010,13 +6014,13 @@ XLATE-ME public static final int sms_invite_title=0x7f050207; /** Tap the receiving device now */ - public static final int sms_ready_text=0x7f050276; + public static final int sms_ready_text=0x7f050277; /** Square rack tiles */ - public static final int square_tiles=0x7f050266; + public static final int square_tiles=0x7f050267; /** Even if they can be taller */ - public static final int square_tiles_summary=0x7f050267; + public static final int square_tiles_summary=0x7f050268; /** Used in formatting moves and history Used to separate names of players when listing them on one line in a game summary. The \u0020 is a space in xml. @@ -6104,7 +6108,7 @@ XLATE-ME placed, i.e. they do not form a single word. */ public static final int str_no_empties_in_turn=0x7f05018b; - public static final int str_no_hint_found=0x7f05032a; + public static final int str_no_hint_found=0x7f05032b; /** Same as above, but used when you try to show tiles belonging to a player on another device (a remote player.) Same as above, but used when you try to show tiles belonging @@ -6175,7 +6179,7 @@ XLATE-ME public static final int str_phony_rejected=0x7f050113; /** [#%d] %s: %d */ - public static final int str_placer_fmt=0x7f050248; + public static final int str_placer_fmt=0x7f050249; /** Shown when using the the Game configure screen to configure a networked game and you try to make all players local. Shown when using the the Game configure screen to configure a @@ -6217,7 +6221,7 @@ XLATE-ME public static final int str_remote_moved_fmt=0x7f05010c; /** [Resigned] %s: %d */ - public static final int str_resigned_fmt=0x7f050247; + public static final int str_resigned_fmt=0x7f050248; /** ############################################################ # Board info/error dialog messages @@ -6329,7 +6333,7 @@ XLATE-ME Used in formatting final scores display [Winner] %s: %d */ - public static final int str_winner_fmt=0x7f050246; + public static final int str_winner_fmt=0x7f050247; /** Used in formatting game history (not move summaries since information about the current rack is hidden then) Used in formatting game history (not move summaries since @@ -6411,18 +6415,18 @@ string name="str_robot_moved">Robot provedl tento tah:Your words for: */ - public static final int study_langpick=0x7f050282; + public static final int study_langpick=0x7f050283; /** You have not yet saved any words into a studylist for %1$s. */ - public static final int study_no_lang_fmt=0x7f050283; + public static final int study_no_lang_fmt=0x7f050284; /** You have not yet saved any words into a studylist. */ - public static final int study_no_lists=0x7f050284; + public static final int study_no_lists=0x7f050285; /** Studylist for %1$s */ - public static final int studylist_title_fmt=0x7f050281; + public static final int studylist_title_fmt=0x7f050282; /** If substituting an existing same-language wordlist by choosing button_substdict user gets to choose from a list of wordlists. This is the title of that list. @@ -6531,7 +6535,7 @@ string name="str_robot_moved">Robot provedl tento tah:(GSM phones only) */ - public static final int summary_send_data_sms=0x7f0502f5; + public static final int summary_send_data_sms=0x7f0502f6; /** explanation of the above explanation of the above Sort racks whenever new tiles @@ -6542,10 +6546,10 @@ string name="str_robot_moved">Robot provedl tento tah:Offer to add to and display lists of words to remember */ - public static final int summary_studyon=0x7f05027c; + public static final int summary_studyon=0x7f05027d; /** Thumbnail size */ - public static final int summary_thumbsize=0x7f05026f; + public static final int summary_thumbsize=0x7f050270; /** Unconnected @@ -6571,7 +6575,7 @@ string name="str_robot_moved">Robot provedl tento tah:Disabled */ - public static final int thumb_off=0x7f050270; + public static final int thumb_off=0x7f050271; /** color of the tiles' background color of the "crosshairs", lines drawn vertically and horizontally through the square the user is currently @@ -6616,7 +6620,7 @@ string name="str_robot_moved">Robot provedl tento tah:Communicate via */ - public static final int title_addrs_pref=0x7f0502c7; + public static final int title_addrs_pref=0x7f0502c8; /** ############################################################ # :Screens: @@ -6737,7 +6741,7 @@ string name="str_robot_moved">Robot provedl tento tah:Send SMS as data */ - public static final int title_send_data_sms=0x7f0502f4; + public static final int title_send_data_sms=0x7f0502f5; /** If this preference is checked, tiles in the rack will be re-ordered alphabetically whenever tiles are added, i.e. after ever move. @@ -6752,7 +6756,7 @@ string name="str_robot_moved">Robot provedl tento tah:Enable studylists */ - public static final int title_studyon=0x7f05027b; + public static final int title_studyon=0x7f05027c; /** title of dialog allowing user to pick tiles "face up". (This feature is not yet supported on Android.) @@ -6861,11 +6865,11 @@ string name="str_robot_moved">Robot provedl tento tah: */ - public static final int update_dicts_fmt=0x7f0502b3; + public static final int update_dicts_fmt=0x7f0502b4; /** XLATE-ME Use defaults */ - public static final int use_defaults=0x7f0502ce; + public static final int use_defaults=0x7f0502cf; /** text of checkbox controlling whether there's a game timer text of checkbox. If this checkbox is checked, games created for network play will by default have the hint feature @@ -6884,25 +6888,25 @@ string name="str_robot_moved">Robot provedl tento tah:Waiting for players */ - public static final int waiting_title=0x7f0502da; + public static final int waiting_title=0x7f0502db; /** XLATE-ME Bluetooth is currently off on this device. No moves will be sent via Bluetooth.\n\nYou can enable Bluetooth now, or later. */ - public static final int warn_bt_disabled=0x7f05023c; + public static final int warn_bt_disabled=0x7f05023d; /** XLATE-ME Every networked game must have at least one way of communicating. If you have no default connection options every new networked game will have to be configured manually. */ - public static final int warn_no_comms=0x7f0502e0; + public static final int warn_no_comms=0x7f0502e1; /** The number %1$s for %2$s is not @@ -6922,7 +6926,7 @@ activer les parties par SMS, allez dans Paramètres->Paramètres des parties en réseau.) */ - public static final int warn_sms_disabled=0x7f05023b; + public static final int warn_sms_disabled=0x7f05023c; /** Are you certain this number is on an @@ -6930,7 +6934,7 @@ réseau.) */ public static final int warn_unlimited=0x7f05021c; - public static final int wifi_warning=0x7f050323; + public static final int wifi_warning=0x7f050324; /** First letters @@ -6939,14 +6943,14 @@ réseau.) public static final int word_search_hint=0x7f0501e1; /** Add option to every screen menu */ - public static final int xlations_enabled_summary=0x7f05028e; + public static final int xlations_enabled_summary=0x7f05028f; /** Enable local translating */ - public static final int xlations_enabled_title=0x7f05028d; + public static final int xlations_enabled_title=0x7f05028e; /** XLATE-ME Fake locale for translation */ - public static final int xlations_locale=0x7f050301; + public static final int xlations_locale=0x7f050302; /** Empty in English, this should contain the name of the translator/creator of the strings.xml file for this language diff --git a/xwords4/android/XWords4/res/menu/games_list_game_menu.xml b/xwords4/android/XWords4/res/menu/games_list_game_menu.xml index f6d2cfa88..8627fe01c 100644 --- a/xwords4/android/XWords4/res/menu/games_list_game_menu.xml +++ b/xwords4/android/XWords4/res/menu/games_list_game_menu.xml @@ -31,4 +31,9 @@ + + + diff --git a/xwords4/android/XWords4/res/values/strings.xml b/xwords4/android/XWords4/res/values/strings.xml index 8a9cd4f2d..070a18d10 100644 --- a/xwords4/android/XWords4/res/values/strings.xml +++ b/xwords4/android/XWords4/res/values/strings.xml @@ -2043,6 +2043,9 @@ Network status for game connected via %1$s: + + Invitations sent for game connected via + %1$s: successful 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 575fb3b84..4fc56b596 100644 --- a/xwords4/android/XWords4/res_src/values-ba_CK/strings.xml +++ b/xwords4/android/XWords4/res_src/values-ba_CK/strings.xml @@ -1766,6 +1766,9 @@ Krowten sutats rof emag detcennoc aiv %1$s: + + Snoitativni tnes rof emag detcennoc aiv + %1$s: lufsseccus 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 c45864b18..852260b62 100644 --- a/xwords4/android/XWords4/res_src/values-ca_PS/strings.xml +++ b/xwords4/android/XWords4/res_src/values-ca_PS/strings.xml @@ -1766,6 +1766,9 @@ NETWORK STATUS FOR GAME CONNECTED VIA %1$s: + + INVITATIONS SENT FOR GAME CONNECTED VIA + %1$s: SUCCESSFUL diff --git a/xwords4/android/XWords4/src/org/eehouse/android/xw4/GameListItem.java b/xwords4/android/XWords4/src/org/eehouse/android/xw4/GameListItem.java index 877261327..1fe93c2af 100644 --- a/xwords4/android/XWords4/src/org/eehouse/android/xw4/GameListItem.java +++ b/xwords4/android/XWords4/src/org/eehouse/android/xw4/GameListItem.java @@ -102,6 +102,12 @@ public class GameListItem extends LinearLayout } ); } + public GameSummary getSummary() + { + Assert.assertNotNull( m_summary ); + return m_summary; + } + private void init( Handler handler, long rowid, int fieldID, SelectableItem cb ) { 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 02540821d..4995b4f67 100644 --- a/xwords4/android/XWords4/src/org/eehouse/android/xw4/GamesListDelegate.java +++ b/xwords4/android/XWords4/src/org/eehouse/android/xw4/GamesListDelegate.java @@ -60,14 +60,15 @@ import junit.framework.Assert; import org.eehouse.android.xw4.DBUtils.GameChangeType; import org.eehouse.android.xw4.DBUtils.GameGroupInfo; +import org.eehouse.android.xw4.DBUtils.SentInvitesInfo; import org.eehouse.android.xw4.DlgDelegate.Action; import org.eehouse.android.xw4.DlgDelegate.ActionPair; +import org.eehouse.android.xw4.DwnldDelegate.DownloadFinishedListener; +import org.eehouse.android.xw4.DwnldDelegate.OnGotLcDictListener; import org.eehouse.android.xw4.jni.*; import org.eehouse.android.xw4.jni.CommsAddrRec.CommsConnType; import org.eehouse.android.xw4.jni.CommsAddrRec.CommsConnTypeSet; import org.eehouse.android.xw4.loc.LocUtils; -import org.eehouse.android.xw4.DwnldDelegate.DownloadFinishedListener; -import org.eehouse.android.xw4.DwnldDelegate.OnGotLcDictListener; public class GamesListDelegate extends ListDelegateBase implements OnItemLongClickListener, @@ -1517,21 +1518,22 @@ public class GamesListDelegate extends ListDelegateBase public void onCreateContextMenu( ContextMenu menu, View view, ContextMenuInfo menuInfo ) { + boolean enable; super.onCreateContextMenu( menu, view, menuInfo ); int id = 0; boolean selected = false; - long gameRowID = 0; + GameListItem item = null; AdapterView.AdapterContextMenuInfo info = (AdapterView.AdapterContextMenuInfo)menuInfo; View targetView = info.targetView; DbgUtils.logf( "onCreateContextMenu(t=%s)", targetView.getClass().getName() ); if ( targetView instanceof GameListItem ) { + item = (GameListItem)targetView; id = R.menu.games_list_game_menu; - gameRowID = ((GameListItem)targetView).getRowID(); - selected = m_selGames.contains( gameRowID ); + selected = m_selGames.contains( item.getRowID() ); } else if ( targetView instanceof GameListGroup ) { id = R.menu.games_list_group_menu; @@ -1548,12 +1550,16 @@ public class GamesListDelegate extends ListDelegateBase ? R.id.games_game_select : R.id.games_game_deselect; Utils.setItemVisible( menu, hideId, false ); - if ( 0 != gameRowID ) { - boolean enable = BoardDelegate.rematchSupported( m_activity, - gameRowID ); + if ( null != item ) { + enable = BoardDelegate.rematchSupported( m_activity, + item.getRowID() ); Utils.setItemVisible( menu, R.id.games_game_rematch, enable ); + + enable = BuildConfig.DEBUG && item.getSummary().isMultiGame(); + Utils.setItemVisible( menu, R.id.games_game_invites, enable ); } } + } public boolean onContextItemSelected( MenuItem item ) @@ -1714,6 +1720,21 @@ public class GamesListDelegate extends ListDelegateBase m_rowid = selRowIDs[0]; showDialog( DlgID.RENAME_GAME ); break; + + // DEBUG only + case R.id.games_game_invites: + msg = DBUtils.getSummary( m_activity, selRowIDs[0] ) + .conTypes.toString( m_activity ); + msg = getString( R.string.invites_net_fmt, msg ); + + SentInvitesInfo info = DBUtils.getInvitesFor( m_activity, + selRowIDs[0] ); + if ( null != info ) { + msg += "\n\n" + info.getAsText( m_activity ); + } + showOKOnlyDialog( msg ); + break; + default: handled = false; } From 6c1394a3a51fb23ec80ada0fdb9c44859795c52a Mon Sep 17 00:00:00 2001 From: Eric House Date: Sat, 16 Jan 2016 13:52:30 -0800 Subject: [PATCH 24/37] separate explanatory dialogs for games sending invites based on whether they were created for a rematch. If for a rematch, don't give user ability to change invite target; just resend (if asked) and show a toast. Also, send rematch invites only when there aren't already some, i.e. the first time the game's opened. --- xwords4/android/XWords4/archive/R.java | 186 ++++++++-------- .../android/XWords4/res/values/strings.xml | 9 +- .../XWords4/res_src/values-ba_CK/strings.xml | 9 +- .../XWords4/res_src/values-ca_PS/strings.xml | 9 +- .../eehouse/android/xw4/BoardDelegate.java | 205 +++++++++--------- 5 files changed, 217 insertions(+), 201 deletions(-) diff --git a/xwords4/android/XWords4/archive/R.java b/xwords4/android/XWords4/archive/R.java index 6c9dece10..5d3546333 100644 --- a/xwords4/android/XWords4/archive/R.java +++ b/xwords4/android/XWords4/archive/R.java @@ -693,7 +693,7 @@ string name="str_robot_moved">O robô fez esta jogada:\u0020For debugging */ - public static final int advanced=0x7f0502ec; + public static final int advanced=0x7f0502ee; /** This button takes you to the normal Game Configure screen This button takes you to the normal Game Configure screen Advanced game settings @@ -703,7 +703,7 @@ XLATE-ME /** XLATE-ME You should never need these... */ - public static final int advanced_summary=0x7f0502ed; + public static final int advanced_summary=0x7f0502ef; /** The wordlist %1$s contains only @@ -855,7 +855,7 @@ XLATE-ME /** XLATE-ME Network stats */ - public static final int board_menu_game_netstats=0x7f0502f7; + public static final int board_menu_game_netstats=0x7f0502f9; /** Meaningful only for networked games, this menu causes all messages that have not yet been acknowledged by a remote device in the game to be resent. Eventually I hope to be @@ -877,7 +877,7 @@ XLATE-ME /** Resign */ public static final int board_menu_game_resign=0x7f050104; - public static final int board_menu_game_showInvites=0x7f0502f8; + public static final int board_menu_game_showInvites=0x7f0502fa; /** Invite */ public static final int board_menu_invite=0x7f050274; @@ -1184,7 +1184,7 @@ XLATE-ME /** XLATE-ME Discard changes */ - public static final int button_discard_changes=0x7f0502e4; + public static final int button_discard_changes=0x7f0502e5; /** Done @@ -1220,8 +1220,8 @@ XLATE-ME /** XLATE-ME Edit */ - public static final int button_edit=0x7f0502e3; - public static final int button_enable=0x7f050327; + public static final int button_edit=0x7f0502e4; + public static final int button_enable=0x7f050329; /** XLATE-ME Enable Bluetooth */ @@ -1368,7 +1368,7 @@ XLATE-ME /** Reconnect */ public static final int button_reconnect=0x7f050266; - public static final int button_reinvite=0x7f0502de; + public static final int button_reinvite=0x7f0502df; /** */ public static final int button_relay_add=0x7f050211; @@ -1524,7 +1524,7 @@ XLATE-ME public static final int button_trade_commit=0x7f0500df; /** Button for alert with title above */ - public static final int button_wait=0x7f0502dd; + public static final int button_wait=0x7f0502de; /** ############################################################ # Dialogs @@ -1691,17 +1691,17 @@ XLATE-ME public static final int chat_title_fmt=0x7f050182; /** Checking for wordlists in %1$s… */ - public static final int checking_for_fmt=0x7f05031e; + public static final int checking_for_fmt=0x7f050320; /** Checking */ - public static final int checking_title=0x7f05031d; + public static final int checking_title=0x7f05031f; /** Everything is up-to-date. */ public static final int checkupdates_none_found=0x7f050242; /** EXPERIMENTAL: "label" for invite on clipboard. If it's shown it's by some Android utility */ - public static final int clip_label=0x7f050330; + public static final int clip_label=0x7f050332; /** color of the "crosshairs", lines drawn vertically and horizontally through the square the user is currently touching in order to guide the fat-fingered (most of us) in @@ -1725,8 +1725,8 @@ XLATE-ME and cannot be saved. Would you like to discard your changes, or edit to give it a way to connect? */ - public static final int config_no_connvia=0x7f0502e2; - public static final int confirm_clear_chat=0x7f050332; + public static final int config_no_connvia=0x7f0502e3; + public static final int confirm_clear_chat=0x7f050334; public static final int confirm_clear_relay=0x7f050218; /** Additional text appended to text confirm_delete_dictf in the wordlist delete confiration dialog in the case where the @@ -1738,14 +1738,14 @@ XLATE-ME of the language is substituted for %1$s. */ public static final int confirm_deleteonly_dicts_fmt=0x7f0500aa; - public static final int confirm_drop_relay=0x7f050323; - public static final int confirm_drop_relay_bt=0x7f050325; - public static final int confirm_drop_relay_sms=0x7f050326; + public static final int confirm_drop_relay=0x7f050325; + public static final int confirm_drop_relay_bt=0x7f050327; + public static final int confirm_drop_relay_sms=0x7f050328; /** Your device is set up for %1$s. Would you like to download a wordlist so you can play Crosswords in %1$s? */ - public static final int confirm_get_locdict_fmt=0x7f0502eb; + public static final int confirm_get_locdict_fmt=0x7f0502ed; /** Text of confirmation dialog for above Text of confirmation dialog for above Are you sure you want to restore @@ -2032,16 +2032,16 @@ XLATE-ME public static final int data_gsm_only=0x7f050290; /** SD card write complete. */ - public static final int db_store_done=0x7f05031f; + public static final int db_store_done=0x7f050321; /** XLATE-ME Enable debug features */ - public static final int debug_features=0x7f0502f3; + public static final int debug_features=0x7f0502f5; /** XLATE-ME Menuitems etc. (release builds only) */ - public static final int debug_features_summary=0x7f0502f4; + public static final int debug_features_summary=0x7f0502f6; /** dictionary used by default for human players when creating new game clarification of above @@ -2149,7 +2149,7 @@ XLATE-ME /** Delete wordlist[s] */ public static final int delete_dicts=0x7f0502b2; - public static final int devid_title=0x7f0502fb; + public static final int devid_title=0x7f0502fd; /** Playing via SMS is currently disabled. You can enable it in Settings->Network game settings. @@ -2191,7 +2191,7 @@ XLATE-ME /** XLATE-ME Wordlist download URL */ - public static final int dict_host=0x7f0502f0; + public static final int dict_host=0x7f0502f2; /** Number of words: %1$d\nDownload size: %2$dK\nNote: %3$s */ @@ -2301,15 +2301,15 @@ XLATE-ME will use is substituted in for "%s". */ public static final int dicts_list_prompt_fmt=0x7f0500dc; - public static final int disable_nag_solo_title=0x7f0502ea; + public static final int disable_nag_solo_title=0x7f0502ec; /** Do not notify me no matter how long it\'s been my turn */ - public static final int disable_nag_summary=0x7f0502e9; + public static final int disable_nag_summary=0x7f0502eb; /** Disable turn reminders */ - public static final int disable_nag_title=0x7f0502e8; - public static final int disable_nags_title=0x7f0502e7; + public static final int disable_nag_title=0x7f0502ea; + public static final int disable_nags_title=0x7f0502e9; /** text of item at bottom of dicts choice spinner. It launches the browser pointed at the site where additional wordlists can be found. @@ -2339,7 +2339,7 @@ XLATE-ME /** Downloading %1$s… */ public static final int downloading_dict_fmt=0x7f050196; - public static final int drop_relay_warning_fmt=0x7f050322; + public static final int drop_relay_warning_fmt=0x7f050324; /** Display snapshots of games Display snapshots of games Invitation received but ignored: it @@ -2413,11 +2413,11 @@ XLATE-ME /** XLATE-ME Accept invitations more than once */ - public static final int enable_dupes_summary=0x7f050303; + public static final int enable_dupes_summary=0x7f050305; /** XLATE-ME Accept duplicate invites */ - public static final int enable_dupes_title=0x7f050301; + public static final int enable_dupes_title=0x7f050303; /** NFC is turned off on this device. You can use the Android Settings app to turn it on . */ @@ -2425,11 +2425,11 @@ XLATE-ME /** XLATE-ME Fake invitation to aid debugging */ - public static final int enable_nfc_toself_summary=0x7f050306; + public static final int enable_nfc_toself_summary=0x7f050308; /** XLATE-ME Enable NFC to self */ - public static final int enable_nfc_toself_title=0x7f050305; + public static final int enable_nfc_toself_title=0x7f050307; /** XLATE-ME Rooms others can see and join */ @@ -2438,8 +2438,8 @@ XLATE-ME Enable public rooms */ public static final int enable_pubroom_title=0x7f0502d6; - public static final int enable_relay_toself_summary=0x7f05032e; - public static final int enable_relay_toself_title=0x7f05032d; + public static final int enable_relay_toself_summary=0x7f050330; + public static final int enable_relay_toself_title=0x7f05032f; /** Allow games via SMS @@ -2456,11 +2456,11 @@ XLATE-ME /** XLATE-ME Skip radio when phone numbers same */ - public static final int enable_sms_toself_summary=0x7f050308; + public static final int enable_sms_toself_summary=0x7f05030a; /** XLATE-ME Short-circuit SMS to self */ - public static final int enable_sms_toself_title=0x7f050307; + public static final int enable_sms_toself_title=0x7f050309; /** Tap tiles to select… */ public static final int entering_trade=0x7f0500e1; @@ -2473,7 +2473,7 @@ XLATE-ME /** XLATE-ME Update checks URL */ - public static final int expl_update_url=0x7f050312; + public static final int expl_update_url=0x7f050314; /** if this preference is checked, a dialog will be posted every time a robot makes a move or a move is received from a remote player. @@ -2498,7 +2498,7 @@ XLATE-ME explanation of the above */ public static final int explain_robot_summary=0x7f050154; - public static final int fetching_from_relay=0x7f050334; + public static final int fetching_from_relay=0x7f050336; /** title of dialog brought up in response to the board_menu_game_final menu. The dialog displays the final score and an accounting of it (including subtractions for @@ -2528,7 +2528,7 @@ XLATE-ME /** XLATE-ME Pretend to have radio */ - public static final int force_radio_title=0x7f050309; + public static final int force_radio_title=0x7f05030b; /** Even if my screen is too small */ public static final int force_tablet_summary=0x7f0502bd; @@ -2684,7 +2684,7 @@ XLATE-ME /** XLATE-ME gameid */ - public static final int game_summary_field_gameid=0x7f050310; + public static final int game_summary_field_gameid=0x7f050312; /** Put the language there, so it reads "Game 2 (English)" Put the language there, so it reads "Game 2 (English)" Game language\u200C @@ -2694,7 +2694,7 @@ XLATE-ME /** XLATE-ME Pending packet count */ - public static final int game_summary_field_npackets=0x7f050311; + public static final int game_summary_field_npackets=0x7f050313; /** List names of opponents (summarized), e.g. "Game 2 (vs Kati)" List names of opponents (summarized), e.g. "Game 2 (vs Kati)" Opponent name[s] @@ -2704,7 +2704,7 @@ XLATE-ME /** XLATE-ME rowid */ - public static final int game_summary_field_rowid=0x7f05030f; + public static final int game_summary_field_rowid=0x7f050311; /** List the state of the game, "Game over" or "10 moves made" etc. List the state of the game, "Game over" or "10 moves made" @@ -2776,13 +2776,13 @@ XLATE-ME /** XLATE-ME Load DB from SD card */ - public static final int gamel_menu_loaddb=0x7f050300; + public static final int gamel_menu_loaddb=0x7f050302; /** XLATE-ME %1$s/%2$s XLATE-ME Write DB to SD card */ - public static final int gamel_menu_storedb=0x7f0502ff; + public static final int gamel_menu_storedb=0x7f050301; /** Studylist… */ public static final int gamel_menu_study=0x7f05027e; @@ -2800,13 +2800,13 @@ XLATE-ME /** XLATE-ME Source version id */ - public static final int git_rev_title=0x7f0502fa; + public static final int git_rev_title=0x7f0502fc; /** Don\'t try a second time */ - public static final int got_langdict_summary=0x7f050314; + public static final int got_langdict_summary=0x7f050316; /** Fetch default wordlist for language */ - public static final int got_langdict_title=0x7f050313; + public static final int got_langdict_title=0x7f050315; /** Green */ public static final int green=0x7f05014f; @@ -3097,7 +3097,7 @@ XLATE-ME /** EXPERIMENTAL: Shown as toast when user chooses "My choice" for invitation */ - public static final int invite_copied=0x7f05032f; + public static final int invite_copied=0x7f050331; /** %1$s has invited you to play Crosswords using the wordlist %2$s (for play in %3$s), but it is not installed. Would you like to download the wordlist or @@ -3194,7 +3194,7 @@ XLATE-ME expect it to take a while. They will still be able to connect.) */ - public static final int invite_stays=0x7f0502df; + public static final int invite_stays=0x7f0502e0; /** Send invitation using SMS (texting) or via email? Send invitation using NFC (Android @@ -3500,7 +3500,7 @@ XLATE-ME pulls up dialog to delete the selected game */ public static final int list_item_delete=0x7f05009c; - public static final int list_item_deselect=0x7f050337; + public static final int list_item_deselect=0x7f050339; /** pulls up dialog to change the group of the selected game pulls up dialog to change the group of the selected game pulls up dialog to change the group of the selected game @@ -3539,7 +3539,7 @@ XLATE-ME except for any configuration. */ public static final int list_item_reset=0x7f05009d; - public static final int list_item_select=0x7f050336; + public static final int list_item_select=0x7f050338; /** formatting for last move summary in notifications formatting for last move summary in notifications %1$s passed (0 points) @@ -3691,11 +3691,11 @@ XLATE-ME /** XLATE-ME Enable logging */ - public static final int logging_on=0x7f0502f1; + public static final int logging_on=0x7f0502f3; /** XLATE-ME (release builds only) */ - public static final int logging_on_summary=0x7f0502f2; + public static final int logging_on_summary=0x7f0502f4; /** Word lookup */ public static final int lookup_title=0x7f050287; @@ -3941,7 +3941,7 @@ XLATE-ME /** XLATE-ME Reminder intervals (minutes1,minutes2,...) */ - public static final int nag_intervals=0x7f050304; + public static final int nag_intervals=0x7f050306; /** Nagging: title of notification reminder message Nagging: title of notification reminder message Reminder: It\'s your turn @@ -3956,7 +3956,7 @@ XLATE-ME %1$s copy */ public static final int name_copy_fmt=0x7f05020c; - public static final int name_dict_fmt=0x7f0502fe; + public static final int name_dict_fmt=0x7f050300; public static final int nbs_port=0x7f050083; /** text of checkbox. If this checkbox is checked, games created for network play will by default have the hint feature @@ -3985,7 +3985,7 @@ XLATE-ME /** XLATE-ME Game network stats */ - public static final int netstats_title=0x7f0502f9; + public static final int netstats_title=0x7f0502fb; /** XLATE-ME For experienced players */ @@ -4266,7 +4266,7 @@ XLATE-ME of this device against the one you want to invite—any time the game is open. */ - public static final int nfc_just_tap=0x7f0502e0; + public static final int nfc_just_tap=0x7f0502e1; /** XLATE-ME GSM XLATE-ME @@ -4274,7 +4274,7 @@ XLATE-ME XLATE-ME Send via NFC to self? */ - public static final int nfc_to_self=0x7f05030e; + public static final int nfc_to_self=0x7f050310; /** Title of dialog for renaming game (triggered by selecting list_item_rename) If you try to copy a networked game you get this error @@ -4542,7 +4542,7 @@ XLATE-ME substituted. */ public static final int no_name_found_fmt=0x7f0500c2; - public static final int no_relay_conn=0x7f050321; + public static final int no_relay_conn=0x7f050323; /** This is not currently shown Crosswords wordlists, which are just compressed lists of words plus tile information, determine @@ -4617,10 +4617,10 @@ XLATE-ME /** EXPERIMENTAL: Newbie hint next when invite_choice_clip shown when chosen */ - public static final int not_again_clip_expl_fmt=0x7f050331; - public static final int not_again_comms_bt=0x7f05032a; - public static final int not_again_comms_relay=0x7f050328; - public static final int not_again_comms_sms=0x7f050329; + public static final int not_again_clip_expl_fmt=0x7f050333; + public static final int not_again_comms_bt=0x7f05032c; + public static final int not_again_comms_relay=0x7f05032a; + public static final int not_again_comms_sms=0x7f05032b; /** This is shown in the Board screen when you successfully connecting a game to the relay and are the last device in the game to do so, i.e. the game is now complete and you should @@ -4671,7 +4671,7 @@ XLATE-ME for games with more than two devices, which are rare. */ public static final int not_again_conndmid=0x7f0501c5; - public static final int not_again_dfltname_fmt=0x7f050338; + public static final int not_again_dfltname_fmt=0x7f05033a; /** This screen lets you install new wordslists and view the ones you already have.\n\nWhat wordlists you have installed determines:\n• What languages you can play @@ -4700,7 +4700,7 @@ XLATE-ME and want them back, enable them now. You can turn them off again in Settings. */ - public static final int not_again_enablepublic=0x7f0502e6; + public static final int not_again_enablepublic=0x7f0502e8; /** Shown when you tap the flip button on the toolbar of the main Board screen Shown when you tap the flip button on the toolbar of the main @@ -4794,7 +4794,7 @@ XLATE-ME \"Actionbar.\" */ public static final int not_again_newselect=0x7f05026c; - public static final int not_again_rematch_two_only=0x7f05032c; + public static final int not_again_rematch_two_only=0x7f05032e; /** The selected words will be copied to the system clipboard. You can then paste them into any app that supports pasting text, e.g. an email app. @@ -5377,22 +5377,22 @@ XLATE-ME public static final int players_label_standalone=0x7f0500b6; /** Prefs related to in-app localization */ - public static final int pref_group_l10n_summary=0x7f05031a; + public static final int pref_group_l10n_summary=0x7f05031c; /** Localization Stuff */ - public static final int pref_group_l10n_title=0x7f050319; + public static final int pref_group_l10n_title=0x7f05031b; /** Prefs related to play via internet/relay */ - public static final int pref_group_relay_summary=0x7f050318; + public static final int pref_group_relay_summary=0x7f05031a; /** Relay Stuff */ - public static final int pref_group_relay_title=0x7f050317; + public static final int pref_group_relay_title=0x7f050319; /** Prefs related to play-via-sms */ - public static final int pref_group_sms_summary=0x7f050316; + public static final int pref_group_sms_summary=0x7f050318; /** SMS Stuff */ - public static final int pref_group_sms_title=0x7f050315; + public static final int pref_group_sms_title=0x7f050317; /** Label for the first "human player" name preference Label for the first "human player" name preference Human player @@ -5400,10 +5400,10 @@ XLATE-ME public static final int pref_human_name=0x7f050127; /** Get intermediate builds */ - public static final int pref_item_update_summary=0x7f05031c; + public static final int pref_item_update_summary=0x7f05031e; /** Update between releases */ - public static final int pref_item_update_title=0x7f05031b; + public static final int pref_item_update_title=0x7f05031d; /** Label for the first player color preference Label for the first player color preference First player @@ -5608,7 +5608,7 @@ XLATE-ME Your opponent */ public static final int prev_player=0x7f0502c1; - public static final int processing_games=0x7f050335; + public static final int processing_games=0x7f050337; /** Downloading */ public static final int progress_title=0x7f0502b5; @@ -5627,7 +5627,7 @@ XLATE-ME /** XLATE-ME Relay device port */ - public static final int proxy_port=0x7f0502fd; + public static final int proxy_port=0x7f0502ff; /** Short for "points", this is shown at the right end of the tray in place of the first tile placed along with the points the current move would earn if committed. @@ -5661,16 +5661,16 @@ XLATE-ME middle of a game, like "do you want to commit this move?" */ public static final int query_title=0x7f0501b3; - public static final int radio_name_cdma=0x7f05030d; - public static final int radio_name_gsm=0x7f05030c; + public static final int radio_name_cdma=0x7f05030f; + public static final int radio_name_gsm=0x7f05030e; /** XLATE-ME Don\'t pretend */ - public static final int radio_name_real=0x7f05030a; + public static final int radio_name_real=0x7f05030c; /** XLATE-ME Tablet/no radio */ - public static final int radio_name_tablet=0x7f05030b; + public static final int radio_name_tablet=0x7f05030d; /** ############################################################ # :Dialogs: @@ -5710,8 +5710,8 @@ XLATE-ME /** XLATE-ME Invite redirect host */ - public static final int redir_host=0x7f0502ef; - public static final int rel_invite_title=0x7f050333; + public static final int redir_host=0x7f0502f1; + public static final int rel_invite_title=0x7f050335; /** Title of dialog used to alert players to relay-related problems with the current game. the color of text, e.g. "2L", shown on a bonus square on the @@ -5731,12 +5731,12 @@ XLATE-ME /** XLATE-ME Relay host */ - public static final int relay_host=0x7f0502ee; + public static final int relay_host=0x7f0502f0; public static final int relay_invite_title=0x7f050208; /** XLATE-ME Relay game port */ - public static final int relay_port=0x7f0502fc; + public static final int relay_port=0x7f0502fe; /** Shown in toast when relaunching after switching dicts Shown in toast when relaunching after switching dicts Reloading game with %1$s @@ -5749,8 +5749,9 @@ XLATE-ME keep this game open while waiting. You will be notified when the game is ready to play. */ - public static final int rematch_msg=0x7f0502e5; + public static final int rematch_msg=0x7f0502e7; public static final int rematch_name_fmt=0x7f0502cb; + public static final int rematch_sent_toast=0x7f0502e6; /** Processing wordlist information… */ public static final int remote_digesting=0x7f0502af; @@ -5871,7 +5872,7 @@ XLATE-ME title for popup of public rooms found on server */ public static final int room_public_prompt=0x7f0500c0; - public static final int seeking_relay=0x7f050320; + public static final int seeking_relay=0x7f050322; /** Games: %1$d */ public static final int sel_games_fmt=0x7f05026e; @@ -6108,7 +6109,7 @@ XLATE-ME placed, i.e. they do not form a single word. */ public static final int str_no_empties_in_turn=0x7f05018b; - public static final int str_no_hint_found=0x7f05032b; + public static final int str_no_hint_found=0x7f05032d; /** Same as above, but used when you try to show tiles belonging to a player on another device (a remote player.) Same as above, but used when you try to show tiles belonging @@ -6535,7 +6536,7 @@ string name="str_robot_moved">Robot provedl tento tah:(GSM phones only) */ - public static final int summary_send_data_sms=0x7f0502f6; + public static final int summary_send_data_sms=0x7f0502f8; /** explanation of the above explanation of the above Sort racks whenever new tiles @@ -6741,7 +6742,7 @@ string name="str_robot_moved">Robot provedl tento tah:Send SMS as data */ - public static final int title_send_data_sms=0x7f0502f5; + public static final int title_send_data_sms=0x7f0502f7; /** If this preference is checked, tiles in the rack will be re-ordered alphabetically whenever tiles are added, i.e. after ever move. @@ -6889,6 +6890,7 @@ string name="str_robot_moved">Robot provedl tento tah:Waiting for players */ @@ -6906,7 +6908,7 @@ string name="str_robot_moved">Robot provedl tento tah: */ - public static final int warn_no_comms=0x7f0502e1; + public static final int warn_no_comms=0x7f0502e2; /** The number %1$s for %2$s is not @@ -6934,7 +6936,7 @@ réseau.) */ public static final int warn_unlimited=0x7f05021c; - public static final int wifi_warning=0x7f050324; + public static final int wifi_warning=0x7f050326; /** First letters @@ -6950,7 +6952,7 @@ réseau.) /** XLATE-ME Fake locale for translation */ - public static final int xlations_locale=0x7f050302; + public static final int xlations_locale=0x7f050304; /** Empty in English, this should contain the name of the translator/creator of the strings.xml file for this language diff --git a/xwords4/android/XWords4/res/values/strings.xml b/xwords4/android/XWords4/res/values/strings.xml index 070a18d10..4841f7ae5 100644 --- a/xwords4/android/XWords4/res/values/strings.xml +++ b/xwords4/android/XWords4/res/values/strings.xml @@ -2470,6 +2470,7 @@ Waiting for players Waiting for response + Rematch in progress Wait Re-invite @@ -2494,10 +2495,10 @@ Edit Discard changes - Issuing rematch invitation. You will - see this message until it has been accepted.\n\nYou do not need to - keep this game open while waiting. You will be notified when the - game is ready to play. + Rematch invitations sent + This game is hosting a rematch, and has + sent an invitation. You will see this message until it has been + accepted. Public rooms have been made an \"advanced\" feature in this release. If you were using them 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 4fc56b596..a5e871cb2 100644 --- a/xwords4/android/XWords4/res_src/values-ba_CK/strings.xml +++ b/xwords4/android/XWords4/res_src/values-ba_CK/strings.xml @@ -2120,6 +2120,7 @@ Gnitiaw rof sreyalp Gnitiaw rof esnopser + Hctamer ni ssergorp Tiaw Etivni-er @@ -2139,10 +2140,10 @@ tide ot evig ti a yaw ot ?tcennoc Tide Dracsid segnahc - Gniussi hctamer noitativni. Uoy lliw - ees siht egassem litnu ti sah neeb detpecca.\n\nUoy od ton deen ot - peek siht emag nepo elihw gnitiaw. Uoy lliw eb deifiton nehw eht - emag si ydaer ot yalp. + Hctamer snoitativni tnes + Siht emag si gnitsoh a ,hctamer dna sah + tnes na noitativni. Uoy lliw ees siht egassem litnu ti sah neeb + detpecca. Cilbup smoor evah neeb edam na \"decnavda\" erutaef ni siht esaeler. Fi uoy erew gnisu meht dna tnaw meht ,kcab elbane meht won. Uoy nac nrut meht ffo niaga 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 852260b62..b7200d8e2 100644 --- a/xwords4/android/XWords4/res_src/values-ca_PS/strings.xml +++ b/xwords4/android/XWords4/res_src/values-ca_PS/strings.xml @@ -2120,6 +2120,7 @@ WAITING FOR PLAYERS WAITING FOR RESPONSE + REMATCH IN PROGRESS WAIT RE-INVITE @@ -2139,10 +2140,10 @@ EDIT TO GIVE IT A WAY TO CONNECT? EDIT DISCARD CHANGES - ISSUING REMATCH INVITATION. YOU WILL - SEE THIS MESSAGE UNTIL IT HAS BEEN ACCEPTED.\n\nYOU DO NOT NEED TO - KEEP THIS GAME OPEN WHILE WAITING. YOU WILL BE NOTIFIED WHEN THE - GAME IS READY TO PLAY. + REMATCH INVITATIONS SENT + THIS GAME IS HOSTING A REMATCH, AND HAS + SENT AN INVITATION. YOU WILL SEE THIS MESSAGE UNTIL IT HAS BEEN + ACCEPTED. PUBLIC ROOMS HAVE BEEN MADE AN \"ADVANCED\" FEATURE IN THIS RELEASE. IF YOU WERE USING THEM AND WANT THEM BACK, ENABLE THEM NOW. YOU CAN TURN THEM OFF AGAIN 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 5c2260dd6..065609c12 100644 --- a/xwords4/android/XWords4/src/org/eehouse/android/xw4/BoardDelegate.java +++ b/xwords4/android/XWords4/src/org/eehouse/android/xw4/BoardDelegate.java @@ -1,6 +1,6 @@ /* -*- compile-command: "find-and-ant.sh debug install"; -*- */ /* - * Copyright 2009 - 2014 by Eric House (xwords@eehouse.org). All + * Copyright 2009 - 2016 by Eric House (xwords@eehouse.org). All * rights reserved. * * This program is free software; you can redistribute it and/or @@ -87,7 +87,7 @@ public class BoardDelegate extends DelegateBase private GameLock m_gameLock; private CurGameInfo m_gi; private GameSummary m_summary; - private boolean m_relayConnected; + private boolean m_relayMissing; private CommsTransport m_xport; private Handler m_handler = null; private TimerRunnable[] m_timers; @@ -140,7 +140,6 @@ public class BoardDelegate extends DelegateBase private int m_nGuestDevs = -1; private boolean m_haveInvited = false; private boolean m_overNotShown; - private boolean m_rematchInvitesSent = false; private static Set s_this = new HashSet(); @@ -433,9 +432,14 @@ public class BoardDelegate extends DelegateBase lstnr = new OnClickListener() { public void onClick( DialogInterface dialog, int item ) { - if ( m_relayConnected || + if ( !m_relayMissing || ! m_connTypes.contains(CommsConnType.COMMS_CONN_RELAY) ) { - showInviteChoicesThen( Action.LAUNCH_INVITE_ACTION ); + Assert.assertTrue( 0 < m_nMissing ); + if ( m_summary.hasRematchInfo() ) { + tryRematchInvites( true ); + } else { + showInviteChoicesThen( Action.LAUNCH_INVITE_ACTION ); + } } else { askDropRelay(); } @@ -490,67 +494,67 @@ public class BoardDelegate extends DelegateBase boolean nukeInviteButton = false; boolean nukeNeutButton = true; int buttonTxt = R.string.newgame_invite; - if ( m_summary.hasRematchInfo() ) { - titleID = R.string.info_title;; - message = getString( R.string.rematch_msg ); - nukeInviteButton = true; - } else { - if ( !m_relayConnected ) { - titleID = R.string.seeking_relay; - // If relay is only means, don't allow at all - boolean relayOnly = 1 >= m_connTypes.size(); - nukeInviteButton = relayOnly; - message = getString( R.string.no_relay_conn ); - if ( NetStateCache.netAvail( m_activity ) - && NetStateCache.onWifi() ) { - message += getString( R.string.wifi_warning ); - } - if ( !relayOnly ) { - CommsConnTypeSet without = (CommsConnTypeSet) - m_connTypes.clone(); - without.remove( CommsConnType.COMMS_CONN_RELAY ); - message += "\n\n" - + getString( R.string.drop_relay_warning_fmt, - without.toString( m_activity ) ); - buttonTxt = R.string.newgame_drop_relay; - } - } else { - m_sentInfo = DBUtils.getInvitesFor( m_activity, m_rowid ); - int nSent = m_sentInfo.getMinPlayerCount(); - boolean haveSent = nSent >= m_nMissing; - if ( haveSent ) { + if ( m_relayMissing ) { + titleID = R.string.seeking_relay; + // If relay is only means, don't allow at all + boolean relayOnly = 1 >= m_connTypes.size(); + nukeInviteButton = relayOnly; + message = getString( R.string.no_relay_conn ); + if ( NetStateCache.netAvail( m_activity ) + && NetStateCache.onWifi() ) { + message += getString( R.string.wifi_warning ); + } + if ( !relayOnly ) { + CommsConnTypeSet without = (CommsConnTypeSet) + m_connTypes.clone(); + without.remove( CommsConnType.COMMS_CONN_RELAY ); + message += "\n\n" + + getString( R.string.drop_relay_warning_fmt, + without.toString( m_activity ) ); + buttonTxt = R.string.newgame_drop_relay; + } + } else { + m_sentInfo = DBUtils.getInvitesFor( m_activity, m_rowid ); + int nSent = m_sentInfo.getMinPlayerCount(); + boolean invitesSent = nSent >= m_nMissing; + if ( invitesSent ) { + if ( m_summary.hasRematchInfo() ) { + titleID = R.string.waiting_rematch_title; + message = getString( R.string.rematch_msg ); + } else { titleID = R.string.waiting_invite_title; message = getQuantityString( R.plurals.invite_sent_fmt, nSent, nSent, m_nMissing ); - buttonTxt = R.string.button_reinvite; - nukeNeutButton = false; - } else if ( DeviceRole.SERVER_ISCLIENT == m_gi.serverRole ) { - message = getString( R.string.invited_msg ); - titleID = R.string.waiting_title; - nukeInviteButton = true; - } else { - titleID = R.string.waiting_title; - message = getQuantityString( R.plurals.invite_msg_fmt, - m_nMissing, m_nMissing ); } - - if ( ! haveSent && ! nukeInviteButton ) { - String ps = null; - if ( m_nMissing > 1 ) { - ps = getString( R.string.invite_multiple ); - } else { - boolean[] avail = NFCUtils.nfcAvail( m_activity ); - if ( avail[1] ) { - ps = getString( R.string.invite_if_nfc ); - } - } - if ( null != ps ) { - message += "\n\n" + ps; - } - } - - message += "\n\n" + getString( R.string.invite_stays ); + buttonTxt = R.string.button_reinvite; + nukeNeutButton = false; + } else if ( DeviceRole.SERVER_ISCLIENT == m_gi.serverRole ) { + Assert.assertFalse( m_summary.hasRematchInfo() ); + message = getString( R.string.invited_msg ); + titleID = R.string.waiting_title; + nukeInviteButton = true; + } else { + titleID = R.string.waiting_title; + message = getQuantityString( R.plurals.invite_msg_fmt, + m_nMissing, m_nMissing ); } + + if ( ! invitesSent && ! nukeInviteButton ) { + String ps = null; + if ( m_nMissing > 1 ) { + ps = getString( R.string.invite_multiple ); + } else { + boolean[] avail = NFCUtils.nfcAvail( m_activity ); + if ( avail[1] ) { + ps = getString( R.string.invite_if_nfc ); + } + } + if ( null != ps ) { + message += "\n\n" + ps; + } + } + + message += "\n\n" + getString( R.string.invite_stays ); } ad.setMessage( message ); @@ -719,7 +723,7 @@ public class BoardDelegate extends DelegateBase setBackgroundColor(); setKeepScreenOn(); } else if ( ! isFinishing() ) { - if ( !m_relayConnected || 0 < m_nMissing ) { + if ( m_relayMissing || 0 < m_nMissing ) { showDialog( DlgID.DLG_INVITE ); } } @@ -1105,7 +1109,7 @@ public class BoardDelegate extends DelegateBase case CLIPBOARD: NetLaunchInfo nli = new NetLaunchInfo( m_summary, m_gi, 1, 1 + m_nGuestDevs ); - if ( !m_relayConnected ) { + if ( m_relayMissing ) { nli.removeAddress( CommsConnType.COMMS_CONN_RELAY ); } if ( InviteMeans.EMAIL == means ) { @@ -1516,7 +1520,7 @@ public class BoardDelegate extends DelegateBase } } else if ( nMissing > 0 ) { if ( m_summary.hasRematchInfo() ) { - tryRematchInvites(); + tryRematchInvites( false ); } else { if ( !m_haveInvited ) { m_haveInvited = true; @@ -1859,7 +1863,7 @@ public class BoardDelegate extends DelegateBase m_nGuestDevs = nDevs; // If we might have put up an alert earlier, take it down - dismissInviteAlert( nMissing, m_relayConnected ); + dismissInviteAlert( nMissing, !m_relayMissing ); m_nMissing = nMissing; // will be 0 unless isServer is true @@ -2018,7 +2022,7 @@ public class BoardDelegate extends DelegateBase String langName = m_gi.langName(); m_summary = DBUtils.getSummary( m_activity, m_gameLock ); - m_relayConnected = !m_summary.relayConnectPending(); + m_relayMissing = m_summary.relayConnectPending(); setThis( this ); @@ -2180,10 +2184,10 @@ public class BoardDelegate extends DelegateBase { runOnUiThread( new Runnable() { public void run() { - if ( !m_relayConnected && connected ) { - m_relayConnected = true; + if ( m_relayMissing && connected ) { + m_relayMissing = false; } - if ( 0 == nMissing || m_relayConnected ) { + if ( 0 == nMissing || !m_relayMissing ) { dismissDialog( DlgID.DLG_INVITE ); } } @@ -2411,7 +2415,7 @@ public class BoardDelegate extends DelegateBase private void tryInvites() { if ( 0 < m_nMissing && m_summary.hasRematchInfo() ) { - tryRematchInvites(); + tryRematchInvites( false ); } else if ( null != m_missingDevs ) { Assert.assertNotNull( m_missingMeans ); String gameName = GameUtils.getName( m_activity, m_rowid ); @@ -2424,7 +2428,7 @@ public class BoardDelegate extends DelegateBase int forceChannel = ii + m_nGuestDevs + 1; NetLaunchInfo nli = new NetLaunchInfo( m_summary, m_gi, nPlayers, forceChannel ); - if ( !m_relayConnected ) { + if ( m_relayMissing ) { nli.removeAddress( CommsConnType.COMMS_CONN_RELAY ); } @@ -2688,34 +2692,41 @@ public class BoardDelegate extends DelegateBase } } - private void tryRematchInvites() + private void tryRematchInvites( boolean force ) { - if ( XWApp.REMATCH_SUPPORTED && !m_rematchInvitesSent ) { - m_rematchInvitesSent = true; - - Assert.assertNotNull( m_summary ); - Assert.assertNotNull( m_gi ); - // only supports a single invite for now! - int numHere = 1; - int forceChannel = 1; - NetLaunchInfo nli = new NetLaunchInfo( m_summary, m_gi, numHere, - forceChannel ); - - String value; - value = m_summary.getStringExtra( GameSummary.EXTRA_REMATCH_PHONE ); - if ( null != value ) { - SMSService.inviteRemote( m_activity, value, nli ); - recordInviteSent( InviteMeans.SMS, value ); + if ( XWApp.REMATCH_SUPPORTED ) { + if ( !force ) { + SentInvitesInfo info = DBUtils.getInvitesFor( m_activity, m_rowid ); + force = 0 == info.getMinPlayerCount(); } - value = m_summary.getStringExtra( GameSummary.EXTRA_REMATCH_BTADDR ); - if ( null != value ) { - BTService.inviteRemote( m_activity, value, nli ); - recordInviteSent( InviteMeans.BLUETOOTH, value ); - } - value = m_summary.getStringExtra( GameSummary.EXTRA_REMATCH_RELAY ); - if ( null != value ) { - RelayService.inviteRemote( m_activity, 0, value, nli ); - recordInviteSent( InviteMeans.RELAY, value ); + + if ( force ) { + Assert.assertNotNull( m_summary ); + Assert.assertNotNull( m_gi ); + // only supports a single invite for now! + int numHere = 1; + int forceChannel = 1; + NetLaunchInfo nli = new NetLaunchInfo( m_summary, m_gi, numHere, + forceChannel ); + + String value; + value = m_summary.getStringExtra( GameSummary.EXTRA_REMATCH_PHONE ); + if ( null != value ) { + SMSService.inviteRemote( m_activity, value, nli ); + recordInviteSent( InviteMeans.SMS, value ); + } + value = m_summary.getStringExtra( GameSummary.EXTRA_REMATCH_BTADDR ); + if ( null != value ) { + BTService.inviteRemote( m_activity, value, nli ); + recordInviteSent( InviteMeans.BLUETOOTH, value ); + } + value = m_summary.getStringExtra( GameSummary.EXTRA_REMATCH_RELAY ); + if ( null != value ) { + RelayService.inviteRemote( m_activity, 0, value, nli ); + recordInviteSent( InviteMeans.RELAY, value ); + } + + showToast( R.string.rematch_sent_toast ); } } } From 38898776bd079f32e506b6954994d1f552fa170e Mon Sep 17 00:00:00 2001 From: Eric House Date: Mon, 18 Jan 2016 07:41:47 -0800 Subject: [PATCH 25/37] when re-inviting, pre-populate BT and SMS invite dialogs from the most recent invitation of that "means" recorded for that game --- .../android/XWords4/res/values/strings.xml | 2 +- .../XWords4/res_src/values-ba_CK/strings.xml | 2 +- .../XWords4/res_src/values-ca_PS/strings.xml | 2 +- .../eehouse/android/xw4/BTInviteDelegate.java | 12 +++++- .../eehouse/android/xw4/BoardDelegate.java | 15 +++---- .../src/org/eehouse/android/xw4/DBUtils.java | 41 +++++++++++++------ .../org/eehouse/android/xw4/DelegateBase.java | 5 ++- .../org/eehouse/android/xw4/DlgDelegate.java | 36 +++++++++++----- .../src/org/eehouse/android/xw4/DlgState.java | 5 +++ .../eehouse/android/xw4/InviteDelegate.java | 3 ++ .../android/xw4/SMSInviteDelegate.java | 13 ++++-- 11 files changed, 97 insertions(+), 39 deletions(-) diff --git a/xwords4/android/XWords4/res/values/strings.xml b/xwords4/android/XWords4/res/values/strings.xml index 4841f7ae5..c76ee3622 100644 --- a/xwords4/android/XWords4/res/values/strings.xml +++ b/xwords4/android/XWords4/res/values/strings.xml @@ -586,7 +586,7 @@ Invite sent via SMS to phone number %1$s on %2$s Invite sent via Bluetooth to - paired device %1$s on %2$s + paired device \"%1$s\" on %2$s Invite forwarded by the relay to another device on %1$s Invite sent via %1$s on 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 a5e871cb2..b9277fd92 100644 --- a/xwords4/android/XWords4/res_src/values-ba_CK/strings.xml +++ b/xwords4/android/XWords4/res_src/values-ba_CK/strings.xml @@ -500,7 +500,7 @@ Etivni tnes aiv SMS ot enohp rebmun %1$s no %2$s Etivni tnes aiv Htooteulb ot - deriap ecived %1$s no %2$s + deriap ecived \"%1$s\" no %2$s Etivni dedrawrof yb eht yaler ot rehtona ecived no %1$s Etivni tnes aiv %1$s no 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 b7200d8e2..914682cbf 100644 --- a/xwords4/android/XWords4/res_src/values-ca_PS/strings.xml +++ b/xwords4/android/XWords4/res_src/values-ca_PS/strings.xml @@ -500,7 +500,7 @@ INVITE SENT VIA SMS TO PHONE NUMBER %1$s ON %2$s INVITE SENT VIA BLUETOOTH TO - PAIRED DEVICE %1$s ON %2$s + PAIRED DEVICE \"%1$s\" ON %2$s INVITE FORWARDED BY THE RELAY TO ANOTHER DEVICE ON %1$s INVITE SENT VIA %1$s ON diff --git a/xwords4/android/XWords4/src/org/eehouse/android/xw4/BTInviteDelegate.java b/xwords4/android/XWords4/src/org/eehouse/android/xw4/BTInviteDelegate.java index 16337eb9a..26869a062 100644 --- a/xwords4/android/XWords4/src/org/eehouse/android/xw4/BTInviteDelegate.java +++ b/xwords4/android/XWords4/src/org/eehouse/android/xw4/BTInviteDelegate.java @@ -44,6 +44,8 @@ import java.util.Iterator; import junit.framework.Assert; import org.eehouse.android.xw4.DlgDelegate.Action; +import org.eehouse.android.xw4.DBUtils.SentInvitesInfo; +import org.eehouse.android.xw4.DlgDelegate.DlgClickNotify.InviteMeans; public class BTInviteDelegate extends InviteDelegate { @@ -53,12 +55,17 @@ public class BTInviteDelegate extends InviteDelegate { private boolean m_setChecked; private BTDevsAdapter m_adapter; - public static void launchForResult( Activity activity, int nMissing, + public static void launchForResult( Activity activity, int nMissing, + SentInvitesInfo info, RequestCode requestCode ) { Assert.assertTrue( 0 < nMissing ); // don't call if nMissing == 0 Intent intent = new Intent( activity, BTInviteActivity.class ); intent.putExtra( INTENT_KEY_NMISSING, nMissing ); + if ( null != info ) { + String lastDev = info.getLastDev( InviteMeans.BLUETOOTH ); + intent.putExtra( INTENT_KEY_LASTDEV, lastDev ); + } activity.startActivityForResult( intent, requestCode.ordinal() ); } @@ -239,6 +246,9 @@ public class BTInviteDelegate extends InviteDelegate { if ( m_setChecked || m_checked.contains( btAddr ) ) { box.setChecked( true ); + } else if ( null != m_lastDev && m_lastDev.equals( btAddr ) ) { + m_lastDev = null; + box.setChecked( true ); } return layout; } 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 065609c12..4dada4fa6 100644 --- a/xwords4/android/XWords4/src/org/eehouse/android/xw4/BoardDelegate.java +++ b/xwords4/android/XWords4/src/org/eehouse/android/xw4/BoardDelegate.java @@ -438,7 +438,8 @@ public class BoardDelegate extends DelegateBase if ( m_summary.hasRematchInfo() ) { tryRematchInvites( true ); } else { - showInviteChoicesThen( Action.LAUNCH_INVITE_ACTION ); + showInviteChoicesThen( Action.LAUNCH_INVITE_ACTION, + m_sentInfo ); } } else { askDropRelay(); @@ -1083,6 +1084,8 @@ public class BoardDelegate extends DelegateBase Object[] params ) { if ( action == Action.LAUNCH_INVITE_ACTION ) { + SentInvitesInfo info = params[0] instanceof SentInvitesInfo + ? (SentInvitesInfo)params[0] : null; switch( means ) { case NFC: if ( XWPrefs.getNFCToSelfEnabled( m_activity ) ) { @@ -1094,11 +1097,11 @@ public class BoardDelegate extends DelegateBase } break; case BLUETOOTH: - BTInviteDelegate.launchForResult( m_activity, m_nMissing, + BTInviteDelegate.launchForResult( m_activity, m_nMissing, info, RequestCode.BT_INVITE_RESULT ); break; case SMS: - SMSInviteDelegate.launchForResult( m_activity, m_nMissing, + SMSInviteDelegate.launchForResult( m_activity, m_nMissing, info, RequestCode.SMS_INVITE_RESULT ); break; case RELAY: @@ -2422,7 +2425,6 @@ public class BoardDelegate extends DelegateBase m_invitesPending = m_missingDevs.length; for ( int ii = 0; ii < m_missingDevs.length; ++ii ) { String dev = m_missingDevs[ii]; - String devName = dev; int nPlayers = m_missingCounts[ii]; Assert.assertTrue( 0 <= m_nGuestDevs ); int forceChannel = ii + m_nGuestDevs + 1; @@ -2436,8 +2438,7 @@ public class BoardDelegate extends DelegateBase case BLUETOOTH: if ( ! m_progressShown ) { m_progressShown = true; - devName = BTService.nameForAddr( dev ); - String progMsg = devName; + String progMsg = BTService.nameForAddr( dev ); progMsg = getString( R.string.invite_progress_fmt, progMsg ); startProgress( R.string.invite_progress_title, progMsg, new OnCancelListener() { @@ -2463,7 +2464,7 @@ public class BoardDelegate extends DelegateBase break; } - recordInviteSent( m_missingMeans, devName ); + recordInviteSent( m_missingMeans, dev ); } m_missingDevs = null; m_missingCounts = null; diff --git a/xwords4/android/XWords4/src/org/eehouse/android/xw4/DBUtils.java b/xwords4/android/XWords4/src/org/eehouse/android/xw4/DBUtils.java index 0937134a7..9260eeaee 100644 --- a/xwords4/android/XWords4/src/org/eehouse/android/xw4/DBUtils.java +++ b/xwords4/android/XWords4/src/org/eehouse/android/xw4/DBUtils.java @@ -423,25 +423,41 @@ public class DBUtils { public static class SentInvitesInfo { public long m_rowid; private ArrayList m_means; - private ArrayList m_target; - private ArrayList m_timestamp; + private ArrayList m_targets; + private ArrayList m_timestamps; private int m_cachedCount = 0; private SentInvitesInfo( long rowID ) { m_rowid = rowID; m_means = new ArrayList(); - m_target = new ArrayList(); - m_timestamp = new ArrayList(); + m_targets = new ArrayList(); + m_timestamps = new ArrayList(); } private void addEntry( InviteMeans means, String target, Timestamp ts ) { m_means.add( means ); - m_target.add( target ); - m_timestamp.add( ts ); + m_targets.add( target ); + m_timestamps.add( ts ); m_cachedCount = -1; } + public InviteMeans getLastMeans() + { + return 0 < m_means.size() ? m_means.get(0) : null; + } + + public String getLastDev( InviteMeans means ) + { + String result = null; + for ( int ii = 0; null == result && ii < m_means.size(); ++ii ) { + if ( means == m_means.get( ii ) ) { + result = m_targets.get( ii ); + } + } + return result; + } + // There will be lots of duplicates, but we can't detect them all. BUT // if means and target are the same it's definitely a dup. So count // them all and return the largest number we have. 99% of the time we @@ -449,7 +465,7 @@ public class DBUtils { public int getMinPlayerCount() { if ( -1 == m_cachedCount ) { DbgUtils.logf( "getMinPlayerCount(%H)", this ); - int count = m_timestamp.size(); + int count = m_timestamps.size(); Map> hashes = new HashMap>(); int fakeCount = 0; // make all null-targets count for one @@ -462,7 +478,7 @@ public class DBUtils { hashes.put( means, devs ); } devs = hashes.get( means ); - String target = m_target.get( ii ); + String target = m_targets.get( ii ); if ( null == target ) { target = String.format( "%d", ++fakeCount ); } @@ -487,12 +503,12 @@ public class DBUtils { public String getAsText( Context context ) { - int count = m_timestamp.size(); + int count = m_timestamps.size(); String[] strs = new String[count]; for ( int ii = 0; ii < count; ++ii ) { InviteMeans means = m_means.get(ii); - String target = m_target.get(ii); - String timestamp = m_timestamp.get(ii).toString(); + String target = m_targets.get(ii); + String timestamp = m_timestamps.get(ii).toString(); String msg; switch ( means ) { @@ -501,8 +517,9 @@ public class DBUtils { target, timestamp ); break; case BLUETOOTH: + String devName = BTService.nameForAddr( target ); msg = LocUtils.getString( context, R.string.invit_expl_bt_fmt, - target, timestamp ); + devName, timestamp ); break; case RELAY: msg = LocUtils.getString( context, R.string.invit_expl_relay_fmt, diff --git a/xwords4/android/XWords4/src/org/eehouse/android/xw4/DelegateBase.java b/xwords4/android/XWords4/src/org/eehouse/android/xw4/DelegateBase.java index 04957cc80..f1deb5acf 100644 --- a/xwords4/android/XWords4/src/org/eehouse/android/xw4/DelegateBase.java +++ b/xwords4/android/XWords4/src/org/eehouse/android/xw4/DelegateBase.java @@ -465,9 +465,10 @@ public class DelegateBase implements DlgClickNotify, m_dlgDelegate.launchLookup( words, lang, !studyOn ); } - protected void showInviteChoicesThen( Action action ) + protected void showInviteChoicesThen( Action action, + DBUtils.SentInvitesInfo info ) { - m_dlgDelegate.showInviteChoicesThen( action ); + m_dlgDelegate.showInviteChoicesThen( action, info ); } protected void showOKOnlyDialogThen( String msg, Action action ) 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 b65da7b35..847264bce 100644 --- a/xwords4/android/XWords4/src/org/eehouse/android/xw4/DlgDelegate.java +++ b/xwords4/android/XWords4/src/org/eehouse/android/xw4/DlgDelegate.java @@ -47,6 +47,7 @@ import java.util.Iterator; import junit.framework.Assert; import org.eehouse.android.xw4.loc.LocUtils; +import org.eehouse.android.xw4.DBUtils.SentInvitesInfo; public class DlgDelegate { @@ -391,13 +392,14 @@ public class DlgDelegate { showDialog( DlgID.CONFIRM_THEN ); } - public void showInviteChoicesThen( final Action action ) + public void showInviteChoicesThen( final Action action, + SentInvitesInfo info ) { if ( (XWApp.SMS_INVITE_ENABLED && Utils.deviceSupportsSMS( m_activity )) || XWPrefs.getNFCToSelfEnabled( m_activity ) || NFCUtils.nfcAvail( m_activity )[0] || BTService.BTAvailable() ) { - DlgState state = new DlgState( DlgID.INVITE_CHOICES_THEN, action ); + DlgState state = new DlgState( DlgID.INVITE_CHOICES_THEN, action, info ); addState( state ); showDialog( DlgID.INVITE_CHOICES_THEN ); } else { @@ -616,6 +618,12 @@ public class DlgDelegate { final ArrayList means = new ArrayList(); ArrayList items = new ArrayList(); + DlgClickNotify.InviteMeans lastMeans = null; + if ( null != state.m_params + && state.m_params[0] instanceof SentInvitesInfo ) { + lastMeans =((SentInvitesInfo)state.m_params[0]).getLastMeans(); + } + if ( XWApp.SMS_INVITE_ENABLED && Utils.deviceSupportsSMS(m_activity) ) { items.add( getString( R.string.invite_choice_sms ) ); means.add( DlgClickNotify.InviteMeans.SMS ); @@ -640,22 +648,27 @@ public class DlgDelegate { means.add( DlgClickNotify.InviteMeans.CLIPBOARD ); final int[] sel = { -1 }; + if ( null != lastMeans ) { + for ( int ii = 0; ii < means.size(); ++ii ) { + if ( lastMeans == means.get(ii) ) { + sel[0] = ii; + break; + } + } + } + OnClickListener selChanged = new OnClickListener() { public void onClick( DialogInterface dlg, int view ) { - // First time through, enable the button - if ( -1 == sel[0] ) { - ((AlertDialog)dlg) - .getButton( AlertDialog.BUTTON_POSITIVE ) - .setEnabled( true ); - } sel[0] = view; - if ( view == clipPos ) { String msg = getString( R.string.not_again_clip_expl_fmt, getString(R.string.slmenu_copy_sel) ); showNotAgainDlgThen( msg, R.string.key_na_clip_expl ); } + Button button = ((AlertDialog)dlg) + .getButton( AlertDialog.BUTTON_POSITIVE ); + button.setEnabled( true ); } }; OnClickListener okClicked = new OnClickListener() { @@ -672,7 +685,7 @@ public class DlgDelegate { AlertDialog.Builder builder = LocUtils.makeAlertBuilder( m_activity ) .setTitle( R.string.invite_choice_title ) - .setSingleChoiceItems( items.toArray( new String[items.size()] ), + .setSingleChoiceItems( items.toArray( new String[items.size()] ), sel[0], selChanged ) .setPositiveButton( android.R.string.ok, okClicked ) .setNegativeButton( android.R.string.cancel, null ); @@ -685,7 +698,8 @@ public class DlgDelegate { AlertDialog ad = (AlertDialog)dialog; Button button = ad.getButton( AlertDialog.BUTTON_POSITIVE ); if ( null != button ) { - button.setEnabled( false ); + long[] ids = ad.getListView().getCheckedItemIds(); + button.setEnabled( 1 == ids.length ); } } diff --git a/xwords4/android/XWords4/src/org/eehouse/android/xw4/DlgState.java b/xwords4/android/XWords4/src/org/eehouse/android/xw4/DlgState.java index 7f7ca2e06..96e3e28c7 100644 --- a/xwords4/android/XWords4/src/org/eehouse/android/xw4/DlgState.java +++ b/xwords4/android/XWords4/src/org/eehouse/android/xw4/DlgState.java @@ -91,6 +91,11 @@ public class DlgState implements Parcelable { this( dlgID, null, 0, null, 0, params ); } + public DlgState( DlgID dlgID, Action action, Object... params ) + { + this( dlgID, null, 0, action, 0, params ); + } + public int describeContents() { return 0; } diff --git a/xwords4/android/XWords4/src/org/eehouse/android/xw4/InviteDelegate.java b/xwords4/android/XWords4/src/org/eehouse/android/xw4/InviteDelegate.java index 284df01c7..f14125772 100644 --- a/xwords4/android/XWords4/src/org/eehouse/android/xw4/InviteDelegate.java +++ b/xwords4/android/XWords4/src/org/eehouse/android/xw4/InviteDelegate.java @@ -40,8 +40,10 @@ abstract class InviteDelegate extends ListDelegateBase public static final String DEVS = "DEVS"; public static final String COUNTS = "COUNTS"; protected static final String INTENT_KEY_NMISSING = "NMISSING"; + protected static final String INTENT_KEY_LASTDEV = "LDEV"; protected int m_nMissing; + protected String m_lastDev; protected Button m_okButton; protected Button m_rescanButton; protected Button m_clearButton; @@ -56,6 +58,7 @@ abstract class InviteDelegate extends ListDelegateBase m_activity = delegator.getActivity(); Intent intent = getIntent(); m_nMissing = intent.getIntExtra( INTENT_KEY_NMISSING, -1 ); + m_lastDev = intent.getStringExtra( INTENT_KEY_LASTDEV ); } protected void init( int button_invite, int button_rescan, 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 3d7589ad2..53614f4db 100644 --- a/xwords4/android/XWords4/src/org/eehouse/android/xw4/SMSInviteDelegate.java +++ b/xwords4/android/XWords4/src/org/eehouse/android/xw4/SMSInviteDelegate.java @@ -49,6 +49,7 @@ import java.util.Map; import junit.framework.Assert; import org.eehouse.android.xw4.DlgDelegate.Action; +import org.eehouse.android.xw4.DBUtils.SentInvitesInfo; public class SMSInviteDelegate extends InviteDelegate { @@ -63,11 +64,16 @@ public class SMSInviteDelegate extends InviteDelegate { private boolean m_immobileConfirmed; private Activity m_activity; - public static void launchForResult( Activity activity, int nMissing, + public static void launchForResult( Activity activity, int nMissing, + SentInvitesInfo info, RequestCode requestCode ) { Intent intent = new Intent( activity, SMSInviteActivity.class ); intent.putExtra( INTENT_KEY_NMISSING, nMissing ); + if ( null != info ) { + String lastDev = info.getLastDev( InviteMeans.SMS ); + intent.putExtra( INTENT_KEY_LASTDEV, lastDev ); + } activity.startActivityForResult( intent, requestCode.ordinal() ); } @@ -327,7 +333,8 @@ public class SMSInviteDelegate extends InviteDelegate { m_phoneRecs = new ArrayList(phones.length); for ( String phone : phones ) { - PhoneRec rec = new PhoneRec( phone ); + boolean matches = phone.equals( m_lastDev ); + PhoneRec rec = new PhoneRec( null, phone, matches ); m_phoneRecs.add( rec ); } } @@ -383,7 +390,7 @@ public class SMSInviteDelegate extends InviteDelegate { this( null, phone, false ); } - public PhoneRec( String name, String phone, boolean checked ) + private PhoneRec( String name, String phone, boolean checked ) { m_phone = phone; m_isChecked = checked; From 177a591a239aaa4b296e0e7fe83221eb5eaae3dc Mon Sep 17 00:00:00 2001 From: Eric House Date: Mon, 18 Jan 2016 08:36:25 -0800 Subject: [PATCH 26/37] During SMS and BT invitation, when a single target is sought uncheck the old selection when a new one is made. --- .../eehouse/android/xw4/BTInviteDelegate.java | 19 +++++++++++++++++++ .../android/xw4/SMSInviteDelegate.java | 19 +++++++++++++++++++ 2 files changed, 38 insertions(+) diff --git a/xwords4/android/XWords4/src/org/eehouse/android/xw4/BTInviteDelegate.java b/xwords4/android/XWords4/src/org/eehouse/android/xw4/BTInviteDelegate.java index 26869a062..fe68db3ba 100644 --- a/xwords4/android/XWords4/src/org/eehouse/android/xw4/BTInviteDelegate.java +++ b/xwords4/android/XWords4/src/org/eehouse/android/xw4/BTInviteDelegate.java @@ -185,11 +185,24 @@ public class BTInviteDelegate extends InviteDelegate { private class BTDevsAdapter extends XWListAdapter { private String[] m_devAddrs; private String[] m_devNames; + private LinearLayout[] m_views; + public BTDevsAdapter( String[] btAddrs, String[] btNames ) { super( null == btAddrs? 0 : btAddrs.length ); m_devAddrs = btAddrs; m_devNames = btNames; + m_views = new LinearLayout[getCount()]; + } + + public void clearCheckedExcept( CompoundButton buttonView ) + { + for ( LinearLayout layout : m_views ) { + if ( null != layout ) { + CheckBox box = (CheckBox)layout.findViewById( R.id.inviter_check ); + box.setChecked( box.equals(buttonView) ); + } + } } public Object getItem( int position ) { return m_devNames[position]; } @@ -233,6 +246,11 @@ public class BTInviteDelegate extends InviteDelegate { boolean isChecked ) { if ( isChecked ) { + if ( 1 == m_nMissing && 1 == m_checked.size() ) { + m_checked.clear(); + m_adapter.clearCheckedExcept( buttonView ); + } + m_checked.add( btAddr ); } else { m_checked.remove( btAddr ); @@ -250,6 +268,7 @@ public class BTInviteDelegate extends InviteDelegate { m_lastDev = null; box.setChecked( true ); } + m_views[position] = layout; return layout; } 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 53614f4db..74f2fac32 100644 --- a/xwords4/android/XWords4/src/org/eehouse/android/xw4/SMSInviteDelegate.java +++ b/xwords4/android/XWords4/src/org/eehouse/android/xw4/SMSInviteDelegate.java @@ -376,6 +376,24 @@ public class SMSInviteDelegate extends InviteDelegate { saveAndRebuild(); } + private void clearIfSingle() + { + if ( 1 == m_nMissing ) { + int count = m_adapter.getCount(); + for ( int ii = count - 1; ii >= 0; --ii ) { + PhoneRec rec = m_phoneRecs.get( ii ); + if ( rec.m_isChecked ) { + rec.m_isChecked = false; + } + } + post( new Runnable() { + public void run() { + rebuildList( false ); + } + } ); + } + } + private class PhoneRec { public String m_phone; public String m_name; @@ -431,6 +449,7 @@ public class SMSInviteDelegate extends InviteDelegate { new CompoundButton.OnCheckedChangeListener() { public void onCheckedChanged( CompoundButton bv, boolean isChecked ) { + clearIfSingle(); m_phoneRecs.get(position).m_isChecked = isChecked; tryEnable(); } From eee13bcdd6da88a9ad69d0ba1c056e873d67887b Mon Sep 17 00:00:00 2001 From: Eric House Date: Tue, 19 Jan 2016 06:41:44 -0800 Subject: [PATCH 27/37] fix assertion failure by dropping packet for which I can't get an address. It was in a three-player game with two on the server device. --- .../org/eehouse/android/xw4/BTService.java | 24 +++++++++---------- 1 file changed, 11 insertions(+), 13 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 c2fbae420..a5d14eda1 100644 --- a/xwords4/android/XWords4/src/org/eehouse/android/xw4/BTService.java +++ b/xwords4/android/XWords4/src/org/eehouse/android/xw4/BTService.java @@ -129,13 +129,7 @@ public class BTService extends XWService { NetLaunchInfo m_nli; public BTQueueElem( BTCmd cmd ) { m_cmd = cmd; m_failCount = 0; } - // public BTQueueElem( BTCmd cmd, String btAddr, - // int gameID, String gameName, int lang, - // String dict, int nPlayersT, int nPlayersH ) { - // this( cmd, null, btAddr, gameID ); - // m_lang = lang; m_dict = dict; m_nPlayersT = nPlayersT; - // m_nPlayersH = nPlayersH; m_gameName = gameName; - // } + public BTQueueElem( BTCmd cmd, byte[] buf, String btAddr, int gameID ) { this( cmd ); Assert.assertTrue( null != btAddr && 0 < btAddr.length() ); @@ -1235,13 +1229,17 @@ public class BTService extends XWService { @Override public int sendViaBluetooth( byte[] buf, int gameID, CommsAddrRec addr ) { + int nSent = -1; String btAddr = getSafeAddr( addr ); - - Assert.assertTrue( addr.contains( CommsConnType.COMMS_CONN_BT ) ); - m_sender.add( new BTQueueElem( BTCmd.MESG_SEND, buf, - btAddr, gameID ) ); - return buf.length; + if ( null != btAddr && 0 < btAddr.length() ) { + m_sender.add( new BTQueueElem( BTCmd.MESG_SEND, buf, btAddr, + gameID ) ); + nSent = buf.length; + } else { + DbgUtils.logf( "sendViaBluetooth(): no addr for dev %s", + addr.bt_hostName ); + } + return nSent; } } - } From 7ba7879a55e9959e5bd9d3222c3d52efbb8a0a7c Mon Sep 17 00:00:00 2001 From: Eric House Date: Tue, 19 Jan 2016 06:53:43 -0800 Subject: [PATCH 28/37] cleanup: track only checked items, not all items. --- .../eehouse/android/xw4/BTInviteDelegate.java | 39 +++++++------------ 1 file changed, 15 insertions(+), 24 deletions(-) diff --git a/xwords4/android/XWords4/src/org/eehouse/android/xw4/BTInviteDelegate.java b/xwords4/android/XWords4/src/org/eehouse/android/xw4/BTInviteDelegate.java index fe68db3ba..99ff62cc1 100644 --- a/xwords4/android/XWords4/src/org/eehouse/android/xw4/BTInviteDelegate.java +++ b/xwords4/android/XWords4/src/org/eehouse/android/xw4/BTInviteDelegate.java @@ -50,7 +50,7 @@ import org.eehouse.android.xw4.DlgDelegate.DlgClickNotify.InviteMeans; public class BTInviteDelegate extends InviteDelegate { private Activity m_activity; - private Set m_checked; + private Set m_checked; private Map m_counts; private boolean m_setChecked; private BTDevsAdapter m_adapter; @@ -78,7 +78,7 @@ public class BTInviteDelegate extends InviteDelegate { @Override protected void init( Bundle savedInstanceState ) { - m_checked = new HashSet(); + m_checked = new HashSet(); m_counts = new HashMap(); String msg = getString( R.string.bt_pick_addall_button ); @@ -156,9 +156,11 @@ public class BTInviteDelegate extends InviteDelegate { } int nxt = 0; - for ( Iterator iter = m_checked.iterator(); + for ( Iterator iter = m_checked.iterator(); iter.hasNext(); ) { - String btAddr = iter.next(); + LinearLayout layout = iter.next(); + CheckBox box = (CheckBox)layout.findViewById( R.id.inviter_check ); + String btAddr = (String)box.getTag(); devs[nxt] = btAddr; if ( null != counts ) { counts[nxt] = m_counts.get( btAddr ); @@ -185,31 +187,19 @@ public class BTInviteDelegate extends InviteDelegate { private class BTDevsAdapter extends XWListAdapter { private String[] m_devAddrs; private String[] m_devNames; - private LinearLayout[] m_views; public BTDevsAdapter( String[] btAddrs, String[] btNames ) { super( null == btAddrs? 0 : btAddrs.length ); m_devAddrs = btAddrs; m_devNames = btNames; - m_views = new LinearLayout[getCount()]; - } - - public void clearCheckedExcept( CompoundButton buttonView ) - { - for ( LinearLayout layout : m_views ) { - if ( null != layout ) { - CheckBox box = (CheckBox)layout.findViewById( R.id.inviter_check ); - box.setChecked( box.equals(buttonView) ); - } - } } public Object getItem( int position ) { return m_devNames[position]; } public View getView( int position, View convertView, ViewGroup parent ) { final String btAddr = m_devAddrs[position]; - LinearLayout layout = (LinearLayout)inflate( R.layout.btinviter_item ); + final LinearLayout layout = (LinearLayout)inflate( R.layout.btinviter_item ); CheckBox box = (CheckBox)layout.findViewById( R.id.inviter_check ); box.setText( m_devNames[position] ); box.setTag( btAddr ); @@ -243,17 +233,19 @@ public class BTInviteDelegate extends InviteDelegate { CompoundButton.OnCheckedChangeListener listener = new CompoundButton.OnCheckedChangeListener() { public void onCheckedChanged( CompoundButton buttonView, - boolean isChecked ) - { + boolean isChecked ) { if ( isChecked ) { if ( 1 == m_nMissing && 1 == m_checked.size() ) { + LinearLayout checked = m_checked.iterator().next(); + CheckBox box = (CheckBox)checked + .findViewById( R.id.inviter_check ); + box.setChecked( false ); m_checked.clear(); - m_adapter.clearCheckedExcept( buttonView ); } - m_checked.add( btAddr ); + m_checked.add( layout ); } else { - m_checked.remove( btAddr ); + m_checked.remove( layout ); // User's now making changes; don't check new views m_setChecked = false; } @@ -262,13 +254,12 @@ public class BTInviteDelegate extends InviteDelegate { }; box.setOnCheckedChangeListener( listener ); - if ( m_setChecked || m_checked.contains( btAddr ) ) { + if ( m_setChecked || m_checked.contains( layout ) ) { box.setChecked( true ); } else if ( null != m_lastDev && m_lastDev.equals( btAddr ) ) { m_lastDev = null; box.setChecked( true ); } - m_views[position] = layout; return layout; } From f65d42732b75f4c3f61bb8e01794246eb7a64c92 Mon Sep 17 00:00:00 2001 From: Eric House Date: Tue, 19 Jan 2016 07:17:29 -0800 Subject: [PATCH 29/37] offer invites-info menu on release builds too if debug features enabled. --- .../src/org/eehouse/android/xw4/BoardDelegate.java | 12 ++++++------ .../org/eehouse/android/xw4/GamesListDelegate.java | 3 ++- 2 files changed, 8 insertions(+), 7 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 4dada4fa6..098075bf8 100644 --- a/xwords4/android/XWords4/src/org/eehouse/android/xw4/BoardDelegate.java +++ b/xwords4/android/XWords4/src/org/eehouse/android/xw4/BoardDelegate.java @@ -839,14 +839,14 @@ public class BoardDelegate extends DelegateBase enable = m_gameOver && rematchSupported( false ); Utils.setItemVisible( menu, R.id.board_menu_rematch, enable ); - enable = null != m_gi + boolean netGame = null != m_gi && DeviceRole.SERVER_STANDALONE != m_gi.serverRole; - Utils.setItemVisible( menu, R.id.gamel_menu_checkmoves, enable ); - Utils.setItemVisible( menu, R.id.board_menu_game_resend, - enable && null != m_gsi && - 0 < m_gsi.nPendingMessages ); + Utils.setItemVisible( menu, R.id.gamel_menu_checkmoves, netGame ); + enable = netGame && null != m_gsi && 0 < m_gsi.nPendingMessages; + Utils.setItemVisible( menu, R.id.board_menu_game_resend, enable ); - enable = enable && BuildConfig.DEBUG; + enable = netGame && (BuildConfig.DEBUG + || XWPrefs.getDebugEnabled( m_activity ) ); Utils.setItemVisible( menu, R.id.board_menu_game_netstats, enable ); Utils.setItemVisible( menu, R.id.board_menu_game_invites, enable ); 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 4995b4f67..8e2863e46 100644 --- a/xwords4/android/XWords4/src/org/eehouse/android/xw4/GamesListDelegate.java +++ b/xwords4/android/XWords4/src/org/eehouse/android/xw4/GamesListDelegate.java @@ -1555,7 +1555,8 @@ public class GamesListDelegate extends ListDelegateBase item.getRowID() ); Utils.setItemVisible( menu, R.id.games_game_rematch, enable ); - enable = BuildConfig.DEBUG && item.getSummary().isMultiGame(); + enable = item.getSummary().isMultiGame() + && (BuildConfig.DEBUG || XWPrefs.getDebugEnabled( m_activity )); Utils.setItemVisible( menu, R.id.games_game_invites, enable ); } } From eb08e8e78dad9b8579f70461a939892f7b29b87a Mon Sep 17 00:00:00 2001 From: Eric House Date: Wed, 20 Jan 2016 07:58:01 -0800 Subject: [PATCH 30/37] give user a chance to turn on play-via-SMS when sending an SMS invitation (which will otherwise fail silently). Required a hack passing params from one dialog to another, but I like that better (today) than creating new single-purpose iVars in BoardDelegate. --- .../eehouse/android/xw4/BoardDelegate.java | 50 +++++++++++++++++-- .../org/eehouse/android/xw4/DelegateBase.java | 17 ++++--- .../org/eehouse/android/xw4/DlgDelegate.java | 26 +++++++--- 3 files changed, 75 insertions(+), 18 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 098075bf8..e2fbbfe99 100644 --- a/xwords4/android/XWords4/src/org/eehouse/android/xw4/BoardDelegate.java +++ b/xwords4/android/XWords4/src/org/eehouse/android/xw4/BoardDelegate.java @@ -992,7 +992,8 @@ public class BoardDelegate extends DelegateBase // DlgDelegate.DlgClickNotify interface ////////////////////////////////////////////////// @Override - public void dlgButtonClicked( Action action, int which, Object[] params ) + public void dlgButtonClicked( Action action, int which, + final Object[] params ) { boolean handled = false; if ( AlertDialog.BUTTON_POSITIVE == which ) { @@ -1066,6 +1067,17 @@ public class BoardDelegate extends DelegateBase case DELETE_AND_EXIT: deleteAndClose(); break; + + case ENABLE_SMS_DO: + handled = false; // so super gets called, before + // retrySMSInvites + post( new Runnable() { + public void run() { + retrySMSInvites( params ); + } + } ); + break; + default: handled = false; } @@ -2451,7 +2463,8 @@ public class BoardDelegate extends DelegateBase BTService.inviteRemote( m_activity, dev, nli ); break; case SMS: - SMSService.inviteRemote( m_activity, dev, nli ); + sendSMSInviteIf( dev, nli, true ); + dev = null; // don't record send a second time break; case RELAY: try { @@ -2464,7 +2477,9 @@ public class BoardDelegate extends DelegateBase break; } - recordInviteSent( m_missingMeans, dev ); + if ( null != dev ) { + recordInviteSent( m_missingMeans, dev ); + } } m_missingDevs = null; m_missingCounts = null; @@ -2713,8 +2728,7 @@ public class BoardDelegate extends DelegateBase String value; value = m_summary.getStringExtra( GameSummary.EXTRA_REMATCH_PHONE ); if ( null != value ) { - SMSService.inviteRemote( m_activity, value, nli ); - recordInviteSent( InviteMeans.SMS, value ); + sendSMSInviteIf( value, nli, true ); } value = m_summary.getStringExtra( GameSummary.EXTRA_REMATCH_BTADDR ); if ( null != value ) { @@ -2732,6 +2746,32 @@ public class BoardDelegate extends DelegateBase } } + private void sendSMSInviteIf( String phone, NetLaunchInfo nli, + boolean askOk ) + { + if ( XWPrefs.getSMSEnabled( m_activity ) ) { + SMSService.inviteRemote( m_activity, phone, nli ); + recordInviteSent( InviteMeans.SMS, phone ); + } else if ( askOk ) { + showConfirmThen( R.string.warn_sms_disabled, + R.string.button_enable_sms, + R.string.button_later, + Action.ENABLE_SMS_ASK, nli, phone ); + } + } + + private void retrySMSInvites( Object[] params ) + { + if ( null != params && 2 == params.length + && params[0] instanceof NetLaunchInfo + && params[1] instanceof String ) { + sendSMSInviteIf( (String)params[1], (NetLaunchInfo)params[0], + false ); + } else { + DbgUtils.logf( "retrySMSInvites: tests failed" ); + } + } + private void recordInviteSent( InviteMeans means, String dev ) { DBUtils.recordInviteSent( m_activity, m_rowid, means, dev ); diff --git a/xwords4/android/XWords4/src/org/eehouse/android/xw4/DelegateBase.java b/xwords4/android/XWords4/src/org/eehouse/android/xw4/DelegateBase.java index f1deb5acf..2c307d28a 100644 --- a/xwords4/android/XWords4/src/org/eehouse/android/xw4/DelegateBase.java +++ b/xwords4/android/XWords4/src/org/eehouse/android/xw4/DelegateBase.java @@ -426,6 +426,12 @@ public class DelegateBase implements DlgClickNotify, m_dlgDelegate.showConfirmThen( msg, posButton, negButton, action ); } + protected void showConfirmThen( int msg, int posButton, int negButton, + Action action, Object... params ) + { + m_dlgDelegate.showConfirmThen( msg, posButton, negButton, action, params ); + } + protected void showConfirmThen( int msg, int posButton, Action action, Object... params ) { @@ -513,9 +519,9 @@ public class DelegateBase implements DlgClickNotify, m_dlgDelegate.showDictGoneFinish(); } - protected void showSMSEnableDialog( Action action ) + protected void showSMSEnableDialog( Action action, Object... params ) { - m_dlgDelegate.showSMSEnableDialog( action ); + m_dlgDelegate.showSMSEnableDialog( action, params ); } ////////////////////////////////////////////////// @@ -566,14 +572,11 @@ public class DelegateBase implements DlgClickNotify, if ( AlertDialog.BUTTON_POSITIVE == button ) { switch( action ) { case ENABLE_SMS_ASK: - showSMSEnableDialog( Action.ENABLE_SMS_DO ); + showSMSEnableDialog( Action.ENABLE_SMS_DO, params ); handled = true; break; case ENABLE_SMS_DO: - boolean enabled = (Boolean)params[0]; - if ( enabled ) { - XWPrefs.setSMSEnabled( m_activity, true ); - } + XWPrefs.setSMSEnabled( m_activity, true ); break; case ENABLE_BT_DO: BTService.enable(); 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 847264bce..b18e5b566 100644 --- a/xwords4/android/XWords4/src/org/eehouse/android/xw4/DlgDelegate.java +++ b/xwords4/android/XWords4/src/org/eehouse/android/xw4/DlgDelegate.java @@ -283,9 +283,9 @@ public class DlgDelegate { // Puts up alert asking to choose a reason to enable SMS, and on dismiss // calls dlgButtonClicked with the action and in params a Boolean // indicating whether enabling is now ok. - public void showSMSEnableDialog( Action action ) + public void showSMSEnableDialog( Action action, Object... params ) { - DlgState state = new DlgState( DlgID.DIALOG_ENABLESMS, action ); + DlgState state = new DlgState( DlgID.DIALOG_ENABLESMS, action, params ); addState( state ); showDialog( DlgID.DIALOG_ENABLESMS ); } @@ -369,6 +369,12 @@ public class DlgDelegate { showConfirmThen( null, getString(msg), posButton, negButton, action, null ); } + public void showConfirmThen( int msg, int posButton, int negButton, Action action, + Object... params ) + { + showConfirmThen( null, getString(msg), posButton, negButton, action, params ); + } + public void showConfirmThen( int msg, int posButton, Action action, Object[] params ) { @@ -643,7 +649,6 @@ public class DlgDelegate { items.add( getString( R.string.invite_choice_relay ) ); means.add( DlgClickNotify.InviteMeans.RELAY ); } - final int clipPos = means.size(); items.add( getString( R.string.slmenu_copy_sel ) ); means.add( DlgClickNotify.InviteMeans.CLIPBOARD ); @@ -660,11 +665,21 @@ public class DlgDelegate { OnClickListener selChanged = new OnClickListener() { public void onClick( DialogInterface dlg, int view ) { sel[0] = view; - if ( view == clipPos ) { + switch ( means.get(view) ) { + case CLIPBOARD: String msg = getString( R.string.not_again_clip_expl_fmt, getString(R.string.slmenu_copy_sel) ); showNotAgainDlgThen( msg, R.string.key_na_clip_expl ); + break; + case SMS: + if ( ! XWPrefs.getSMSEnabled( m_activity ) ) { + showConfirmThen( R.string.warn_sms_disabled, + R.string.button_enable_sms, + R.string.button_later, + Action.ENABLE_SMS_ASK ); + } + break; } Button button = ((AlertDialog)dlg) .getButton( AlertDialog.BUTTON_POSITIVE ); @@ -731,10 +746,9 @@ public class DlgDelegate { layout.findViewById( R.id.confirm_sms_reasons ); boolean enabled = 0 < reasons.getSelectedItemPosition(); Assert.assertTrue( enabled ); - Object[] params = { new Boolean(enabled), }; m_clickCallback.dlgButtonClicked( state.m_action, AlertDialog.BUTTON_POSITIVE, - params ); + state.m_params ); } }; From 7d62614ced66ddada75732d7aef22d027d8e8963 Mon Sep 17 00:00:00 2001 From: Eric House Date: Wed, 20 Jan 2016 07:58:41 -0800 Subject: [PATCH 31/37] Recent AS metadata changes. I'm waiting for the changes to stop.... --- xwords4/android/XWords4/.idea/codeStyleSettings.xml | 8 +++----- xwords4/android/XWords4/app/app.iml | 7 ------- 2 files changed, 3 insertions(+), 12 deletions(-) diff --git a/xwords4/android/XWords4/.idea/codeStyleSettings.xml b/xwords4/android/XWords4/.idea/codeStyleSettings.xml index ded962ca0..d8f708f14 100644 --- a/xwords4/android/XWords4/.idea/codeStyleSettings.xml +++ b/xwords4/android/XWords4/.idea/codeStyleSettings.xml @@ -63,9 +63,7 @@ -