mirror of
git://xwords.git.sourceforge.net/gitroot/xwords/xwords
synced 2025-01-28 07:58:08 +01:00
replace scan that tries to connect to all paired devices, taking 20
seconds to discover that some 20-miles-away device isn't here and resisting use of concurrency, with simple listing of paired devices. If user tries to invite a headset, try and fail with an error message. Fix up re-invite and detection of whether players are missing to support this.
This commit is contained in:
parent
aa566ad1f0
commit
2beb897b2c
10 changed files with 325 additions and 305 deletions
|
@ -369,8 +369,8 @@ public final class R {
|
|||
/** Another paragraph in the about dialog
|
||||
*/
|
||||
public static final int about_web=0x7f0501de;
|
||||
public static final int add_done_fmt=0x7f050292;
|
||||
public static final int add_to_study_fmt=0x7f05028a;
|
||||
public static final int add_done_fmt=0x7f050290;
|
||||
public static final int add_to_study_fmt=0x7f050288;
|
||||
/** Debugging stuff. No point in localizing it.
|
||||
*/
|
||||
public static final int advanced=0x7f050076;
|
||||
|
@ -384,6 +384,7 @@ public final class R {
|
|||
/** The name of the app. Not localized!
|
||||
*/
|
||||
public static final int app_name=0x7f050001;
|
||||
public static final int app_not_found_fmt=0x7f0502cc;
|
||||
public static final int app_version=0x7f050000;
|
||||
/** the background color of the area outside the board,
|
||||
e.g. between entries in the scoreboard
|
||||
|
@ -403,7 +404,7 @@ public final class R {
|
|||
public static final int blue=0x7f05015b;
|
||||
/** board menu for small devices only
|
||||
*/
|
||||
public static final int board_menu_dict=0x7f050234;
|
||||
public static final int board_menu_dict=0x7f050232;
|
||||
/**
|
||||
############################################################
|
||||
# :Menus:
|
||||
|
@ -450,7 +451,7 @@ public final class R {
|
|||
*/
|
||||
public static final int board_menu_game_resend=0x7f05010f;
|
||||
public static final int board_menu_game_resign=0x7f05010e;
|
||||
public static final int board_menu_invite=0x7f050281;
|
||||
public static final int board_menu_invite=0x7f05027f;
|
||||
/**
|
||||
*/
|
||||
public static final int board_menu_pass=0x7f0501ec;
|
||||
|
@ -467,7 +468,7 @@ public final class R {
|
|||
public static final int board_menu_tray_show=0x7f050107;
|
||||
/**
|
||||
*/
|
||||
public static final int board_menu_undo_current=0x7f05022e;
|
||||
public static final int board_menu_undo_current=0x7f05022c;
|
||||
/** 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
|
||||
|
@ -514,30 +515,30 @@ public final class R {
|
|||
public static final int bonus_w3x_summary=0x7f0500f1;
|
||||
/**
|
||||
*/
|
||||
public static final int bt_bad_proto_fmt=0x7f05020e;
|
||||
public static final int bt_bad_proto_fmt=0x7f05020c;
|
||||
/** EXPLAIN ME
|
||||
*/
|
||||
public static final int bt_disabled=0x7f05017f;
|
||||
public static final int bt_err_count_fmt=0x7f0502cc;
|
||||
public static final int bt_err_count_fmt=0x7f0502ca;
|
||||
/**
|
||||
*/
|
||||
public static final int bt_fail_fmt=0x7f050213;
|
||||
public static final int bt_fail_fmt=0x7f050211;
|
||||
/** EXPLAIN ME
|
||||
*/
|
||||
public static final int bt_networked_desc=0x7f050180;
|
||||
public static final int bt_no_devs=0x7f0502cd;
|
||||
public static final int bt_no_devs=0x7f0502cb;
|
||||
/** In the Bluetooth invite device dialog
|
||||
*/
|
||||
public static final int bt_pick_addall_button=0x7f050204;
|
||||
/**
|
||||
*/
|
||||
public static final int bt_pick_clear_button=0x7f050205;
|
||||
/**
|
||||
*/
|
||||
public static final int bt_pick_rescan_button=0x7f050204;
|
||||
public static final int bt_resend_fmt=0x7f050210;
|
||||
/**
|
||||
*/
|
||||
public static final int bt_resend_fmt=0x7f050212;
|
||||
/**
|
||||
*/
|
||||
public static final int btname_label=0x7f050215;
|
||||
public static final int btname_label=0x7f050213;
|
||||
/** text of button for adding new player to game
|
||||
*/
|
||||
public static final int button_add_player=0x7f0500c4;
|
||||
|
@ -545,7 +546,7 @@ public final class R {
|
|||
/** The only button available when the above message is displayed
|
||||
*/
|
||||
public static final int button_close_game=0x7f0501aa;
|
||||
public static final int button_decline=0x7f05025d;
|
||||
public static final int button_decline=0x7f05025b;
|
||||
/**
|
||||
*/
|
||||
public static final int button_default_both=0x7f0500b9;
|
||||
|
@ -580,11 +581,11 @@ public final class R {
|
|||
/** Text of button displayed when downloading is an option
|
||||
*/
|
||||
public static final int button_download=0x7f0501ad;
|
||||
public static final int button_go_settings=0x7f050283;
|
||||
public static final int button_go_settings=0x7f050281;
|
||||
public static final int button_html=0x7f050185;
|
||||
/**
|
||||
*/
|
||||
public static final int button_invite=0x7f050214;
|
||||
public static final int button_invite=0x7f050212;
|
||||
/** text of button to juggle (randomly rearrange order of) players
|
||||
*/
|
||||
public static final int button_juggle_players=0x7f0500c5;
|
||||
|
@ -634,12 +635,12 @@ public final class R {
|
|||
in many places.
|
||||
*/
|
||||
public static final int button_ok=0x7f0501b4;
|
||||
public static final int button_reconnect=0x7f050273;
|
||||
public static final int button_reconnect=0x7f050271;
|
||||
/** Button shown in game over dialog triggering creation of new
|
||||
game with the same players and parameters as the one that
|
||||
just ended.
|
||||
*/
|
||||
public static final int button_rematch=0x7f050272;
|
||||
public static final int button_rematch=0x7f050270;
|
||||
/** 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).
|
||||
|
@ -675,7 +676,7 @@ public final class R {
|
|||
public static final int button_search=0x7f0501ef;
|
||||
/**
|
||||
*/
|
||||
public static final int button_sms_add=0x7f050220;
|
||||
public static final int button_sms_add=0x7f05021e;
|
||||
/** Text of button allowing user to choose to open with a
|
||||
different (but same-language wordlist)
|
||||
*/
|
||||
|
@ -701,8 +702,8 @@ public final class R {
|
|||
*/
|
||||
public static final int button_trade_commit=0x7f0500eb;
|
||||
public static final int button_yes=0x7f0501b6;
|
||||
public static final int cannot_delete_default_group_fmt=0x7f05026f;
|
||||
public static final int change_group=0x7f050276;
|
||||
public static final int cannot_delete_default_group_fmt=0x7f05026d;
|
||||
public static final int change_group=0x7f050274;
|
||||
/** text of button in About Crosswords dialog summoning above
|
||||
dialog
|
||||
*/
|
||||
|
@ -748,7 +749,7 @@ public final class R {
|
|||
substituted for %1$s.
|
||||
*/
|
||||
public static final int chat_title_fmt=0x7f05018e;
|
||||
public static final int checkupdates_none_found=0x7f05024c;
|
||||
public static final int checkupdates_none_found=0x7f05024a;
|
||||
/** 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
|
||||
|
@ -758,7 +759,7 @@ public final class R {
|
|||
public static final int clr_crosshairs=0x7f050154;
|
||||
/**
|
||||
*/
|
||||
public static final int confirm_clear=0x7f050226;
|
||||
public static final int confirm_clear=0x7f050224;
|
||||
/** 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
|
||||
|
@ -792,23 +793,23 @@ public final class R {
|
|||
public static final int confirm_seldeletes_fmt=0x7f0500ac;
|
||||
/**
|
||||
*/
|
||||
public static final int confirm_sms_expl=0x7f050245;
|
||||
public static final int confirm_sms_expl=0x7f050243;
|
||||
/**
|
||||
*/
|
||||
public static final int confirm_sms_leave=0x7f050247;
|
||||
public static final int confirm_sms_leave=0x7f050245;
|
||||
/**
|
||||
*/
|
||||
public static final int confirm_sms_prompt=0x7f050246;
|
||||
public static final int confirm_sms_prompt=0x7f050244;
|
||||
/**
|
||||
*/
|
||||
public static final int confirm_sms_title=0x7f050244;
|
||||
public static final int confirm_sms_title=0x7f050242;
|
||||
/**
|
||||
*/
|
||||
public static final int confirm_sms_unlimited=0x7f050248;
|
||||
public static final int confirm_sms_unlimited=0x7f050246;
|
||||
/**
|
||||
*/
|
||||
public static final int confirm_sms_willpay=0x7f050249;
|
||||
public static final int confirm_studylist_clear_fmt=0x7f050290;
|
||||
public static final int confirm_sms_willpay=0x7f050247;
|
||||
public static final int confirm_studylist_clear_fmt=0x7f05028e;
|
||||
/** text of dialog shown when the menu item board_menu_undo_last
|
||||
is chosen.
|
||||
*/
|
||||
|
@ -834,7 +835,7 @@ public final class R {
|
|||
public static final int connect_label_relay=0x7f0500c8;
|
||||
/**
|
||||
*/
|
||||
public static final int connect_label_sms=0x7f050227;
|
||||
public static final int connect_label_sms=0x7f050225;
|
||||
/** These are the possible values for the connect_frequency
|
||||
setting presented as a drop-down list.
|
||||
*/
|
||||
|
@ -844,51 +845,51 @@ public final class R {
|
|||
public static final int connect_thirty_mins=0x7f050170;
|
||||
/**
|
||||
*/
|
||||
public static final int connstat_bt=0x7f050241;
|
||||
public static final int connstat_bt=0x7f05023f;
|
||||
/**
|
||||
*/
|
||||
public static final int connstat_lastother_succ_fmt=0x7f05023b;
|
||||
public static final int connstat_lastother_succ_fmt=0x7f050239;
|
||||
/**
|
||||
*/
|
||||
public static final int connstat_lastother_unsucc_fmt=0x7f05023c;
|
||||
public static final int connstat_lastother_unsucc_fmt=0x7f05023a;
|
||||
/**
|
||||
*/
|
||||
public static final int connstat_lastreceipt_fmt=0x7f05023d;
|
||||
public static final int connstat_lastreceipt_fmt=0x7f05023b;
|
||||
/**
|
||||
*/
|
||||
public static final int connstat_lastsend_fmt=0x7f05023a;
|
||||
public static final int connstat_lastsend_fmt=0x7f050238;
|
||||
/**
|
||||
*/
|
||||
public static final int connstat_net_fmt=0x7f050237;
|
||||
public static final int connstat_net_fmt=0x7f050235;
|
||||
/**
|
||||
*/
|
||||
public static final int connstat_nonet=0x7f050236;
|
||||
public static final int connstat_nonet=0x7f050234;
|
||||
/**
|
||||
*/
|
||||
public static final int connstat_noreceipt=0x7f05023e;
|
||||
public static final int connstat_noreceipt=0x7f05023c;
|
||||
/**
|
||||
*/
|
||||
public static final int connstat_relay=0x7f05023f;
|
||||
public static final int connstat_relay=0x7f05023d;
|
||||
/**
|
||||
*/
|
||||
public static final int connstat_sms=0x7f050240;
|
||||
public static final int connstat_sms=0x7f05023e;
|
||||
/**
|
||||
*/
|
||||
public static final int connstat_succ=0x7f050238;
|
||||
public static final int connstat_succ=0x7f050236;
|
||||
/**
|
||||
*/
|
||||
public static final int connstat_unsucc=0x7f050239;
|
||||
public static final int connstat_unsucc=0x7f050237;
|
||||
/** 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
|
||||
of each there are are and how many points each is worth.
|
||||
*/
|
||||
public static final int counts_values_title=0x7f0501bf;
|
||||
public static final int cur_menu_marker_fmt=0x7f050280;
|
||||
public static final int cur_menu_marker_fmt=0x7f05027e;
|
||||
/**
|
||||
*/
|
||||
public static final int cur_tiles_fmt=0x7f0501f3;
|
||||
public static final int data_gsm_only=0x7f0502a2;
|
||||
public static final int data_gsm_only=0x7f0502a0;
|
||||
public static final int debug_features=0x7f05007d;
|
||||
public static final int debug_features_summary=0x7f05007e;
|
||||
/** dictionary used by default for human players when creating
|
||||
|
@ -898,8 +899,8 @@ public final class R {
|
|||
/** other
|
||||
*/
|
||||
public static final int default_host=0x7f05006b;
|
||||
public static final int default_loc=0x7f050260;
|
||||
public static final int default_loc_summary=0x7f050261;
|
||||
public static final int default_loc=0x7f05025e;
|
||||
public static final int default_loc_summary=0x7f05025f;
|
||||
/** Welcome dialog text
|
||||
*/
|
||||
public static final int default_name_message=0x7f0501db;
|
||||
|
@ -927,13 +928,13 @@ public final class R {
|
|||
*/
|
||||
public static final int default_robodict=0x7f050139;
|
||||
public static final int default_update_url=0x7f050075;
|
||||
public static final int delete_dicts=0x7f0502b4;
|
||||
public static final int delete_dicts=0x7f0502b2;
|
||||
/**
|
||||
*/
|
||||
public static final int dft_name_fmt=0x7f050219;
|
||||
public static final int dft_name_fmt=0x7f050217;
|
||||
/**
|
||||
*/
|
||||
public static final int dft_sms_name_fmt=0x7f05021d;
|
||||
public static final int dft_sms_name_fmt=0x7f05021b;
|
||||
/**
|
||||
*/
|
||||
public static final int dict_browse_nowords_fmt=0x7f0501f7;
|
||||
|
@ -944,14 +945,14 @@ public final class R {
|
|||
*/
|
||||
public static final int dict_browse_title_fmt=0x7f0501f5;
|
||||
public static final int dict_host=0x7f05007a;
|
||||
public static final int dict_info_fmt=0x7f0502b8;
|
||||
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
|
||||
"%1$s".
|
||||
*/
|
||||
public static final int dict_lang_label_fmt=0x7f0500e7;
|
||||
public static final int dict_on_server=0x7f0502ba;
|
||||
public static final int dict_on_server=0x7f0502b8;
|
||||
/** string name="invite_mime">text/plain</string
|
||||
*/
|
||||
public static final int dict_url=0x7f050073;
|
||||
|
@ -985,13 +986,13 @@ public final class R {
|
|||
wordlists can be found.
|
||||
*/
|
||||
public static final int download_dicts=0x7f0500af;
|
||||
public static final int download_done=0x7f05025e;
|
||||
public static final int download_failed=0x7f05025f;
|
||||
public static final int download_path_title=0x7f050262;
|
||||
public static final int download_done=0x7f05025c;
|
||||
public static final int download_failed=0x7f05025d;
|
||||
public static final int download_path_title=0x7f050260;
|
||||
public static final int downloading_dict_fmt=0x7f0501a7;
|
||||
/** <string name="summary_thumb_enabled">Display snapshots of games</string>
|
||||
*/
|
||||
public static final int dropped_dupe=0x7f05027f;
|
||||
public static final int dropped_dupe=0x7f05027d;
|
||||
/** 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.
|
||||
|
@ -1018,16 +1019,16 @@ public final class R {
|
|||
public static final int empty=0x7f050156;
|
||||
/**
|
||||
*/
|
||||
public static final int empty_sms_inviter=0x7f050224;
|
||||
public static final int empty_sms_inviter=0x7f050222;
|
||||
public static final int enable_dupes_summary=0x7f05008b;
|
||||
public static final int enable_dupes_title=0x7f050089;
|
||||
public static final int enable_nfc=0x7f050282;
|
||||
public static final int enable_nfc=0x7f050280;
|
||||
/**
|
||||
*/
|
||||
public static final int enable_sms=0x7f050242;
|
||||
public static final int enable_sms=0x7f050240;
|
||||
/**
|
||||
*/
|
||||
public static final int enable_sms_summary=0x7f050243;
|
||||
public static final int enable_sms_summary=0x7f050241;
|
||||
public static final int entering_trade=0x7f0500ed;
|
||||
public static final int expl_update_url=0x7f050074;
|
||||
/** These four strings are displayed as step-by-step
|
||||
|
@ -1055,8 +1056,8 @@ public final class R {
|
|||
/** Explanatory text appears in the dialog
|
||||
*/
|
||||
public static final int force_expl=0x7f0500e2;
|
||||
public static final int force_tablet_summary=0x7f0502bf;
|
||||
public static final int force_tablet_title=0x7f0502be;
|
||||
public static final int force_tablet_summary=0x7f0502bd;
|
||||
public static final int force_tablet_title=0x7f0502bc;
|
||||
/**
|
||||
############################################################
|
||||
# :Dialogs:
|
||||
|
@ -1082,7 +1083,7 @@ public final class R {
|
|||
public static final int gameOver=0x7f050097;
|
||||
/**
|
||||
*/
|
||||
public static final int game_btname_title=0x7f050217;
|
||||
public static final int game_btname_title=0x7f050215;
|
||||
/** used to create default names of games (when user has not
|
||||
named them.)
|
||||
*/
|
||||
|
@ -1099,18 +1100,18 @@ public final class R {
|
|||
public static final int game_item_menu_title_fmt=0x7f0500a1;
|
||||
/**
|
||||
*/
|
||||
public static final int game_list_tmp=0x7f050235;
|
||||
public static final int game_list_tmp=0x7f050233;
|
||||
/** text of checkbox at top of dialog allowing to unlock in-play
|
||||
game to make changes
|
||||
*/
|
||||
public static final int game_locked=0x7f0500c1;
|
||||
public static final int game_name_group_title=0x7f05026e;
|
||||
public static final int game_name_group_title=0x7f05026c;
|
||||
/**
|
||||
*/
|
||||
public static final int game_rename_title=0x7f0500aa;
|
||||
/**
|
||||
*/
|
||||
public static final int game_smsname_title=0x7f050218;
|
||||
public static final int game_smsname_title=0x7f050216;
|
||||
/** Put nothing in the summary space, so it just reads "Game 2"
|
||||
*/
|
||||
public static final int game_summary_field_empty=0x7f050144;
|
||||
|
@ -1135,7 +1136,7 @@ public final class R {
|
|||
public static final int gamel_menu_checkmoves=0x7f05009d;
|
||||
/**
|
||||
*/
|
||||
public static final int gamel_menu_checkupdates=0x7f05024b;
|
||||
public static final int gamel_menu_checkupdates=0x7f050249;
|
||||
/**
|
||||
############################################################
|
||||
# :Menus:
|
||||
|
@ -1150,19 +1151,19 @@ public final class R {
|
|||
public static final int gamel_menu_dicts=0x7f05009b;
|
||||
public static final int gamel_menu_loaddb=0x7f050088;
|
||||
public static final int gamel_menu_storedb=0x7f050087;
|
||||
public static final int gamel_menu_study=0x7f05028d;
|
||||
public static final int gamel_menu_study=0x7f05028b;
|
||||
/**
|
||||
*/
|
||||
public static final int get_sms_number=0x7f050225;
|
||||
public static final int getinfo=0x7f0502b3;
|
||||
public static final int get_sms_number=0x7f050223;
|
||||
public static final int getinfo=0x7f0502b1;
|
||||
public static final int git_rev=0x7f05008d;
|
||||
public static final int git_rev_title=0x7f050083;
|
||||
public static final int green=0x7f05015a;
|
||||
public static final int group_cur_games=0x7f050269;
|
||||
public static final int group_name_fmt=0x7f050271;
|
||||
public static final int group_new_games=0x7f05026a;
|
||||
public static final int groups_confirm_del_fmt=0x7f05026b;
|
||||
public static final int groups_confirm_del_games_fmt=0x7f05026c;
|
||||
public static final int group_cur_games=0x7f050267;
|
||||
public static final int group_name_fmt=0x7f05026f;
|
||||
public static final int group_new_games=0x7f050268;
|
||||
public static final int groups_confirm_del_fmt=0x7f050269;
|
||||
public static final int groups_confirm_del_games_fmt=0x7f05026a;
|
||||
/** Used as the default name for remote players displayed within
|
||||
the Game configure screen
|
||||
*/
|
||||
|
@ -1218,12 +1219,12 @@ public final class R {
|
|||
public static final int info_title=0x7f0501bc;
|
||||
/**
|
||||
*/
|
||||
public static final int inform_dict_diffdict_fmt=0x7f050255;
|
||||
public static final int inform_dict_diffdict_fmt=0x7f050253;
|
||||
/**
|
||||
*/
|
||||
public static final int inform_dict_diffversion_fmt=0x7f050253;
|
||||
public static final int inform_dict_download=0x7f050256;
|
||||
public static final int inform_dict_title=0x7f050254;
|
||||
public static final int inform_dict_diffversion_fmt=0x7f050251;
|
||||
public static final int inform_dict_download=0x7f050254;
|
||||
public static final int inform_dict_title=0x7f050252;
|
||||
/** Will new games, on default, randomly rearrange the start
|
||||
order of players.
|
||||
*/
|
||||
|
@ -1236,7 +1237,7 @@ public final class R {
|
|||
public static final int initial_player_minutes=0x7f05013f;
|
||||
/**
|
||||
*/
|
||||
public static final int invite_bt_desc_fmt=0x7f050211;
|
||||
public static final int invite_bt_desc_fmt=0x7f05020f;
|
||||
public static final int invite_chooser_email=0x7f05018b;
|
||||
/** When I've created the invitation, in text or html, I ask
|
||||
Android to launch an app that can send it, typically an email
|
||||
|
@ -1247,9 +1248,9 @@ public final class R {
|
|||
*/
|
||||
public static final int invite_chooser_fmt=0x7f05018a;
|
||||
public static final int invite_chooser_sms=0x7f05018c;
|
||||
public static final int invite_dict_missing_body_fmt=0x7f05025b;
|
||||
public static final int invite_dict_missing_body_noname_fmt=0x7f05025c;
|
||||
public static final int invite_dict_missing_title=0x7f05025a;
|
||||
public static final int invite_dict_missing_body_fmt=0x7f050259;
|
||||
public static final int invite_dict_missing_body_noname_fmt=0x7f05025a;
|
||||
public static final int invite_dict_missing_title=0x7f050258;
|
||||
public static final int invite_host=0x7f05006d;
|
||||
/** This is the body of the html version of the invitation. A URL
|
||||
is created with parameters describing the game and
|
||||
|
@ -1282,7 +1283,7 @@ public final class R {
|
|||
public static final int invite_prefix=0x7f05006e;
|
||||
/**
|
||||
*/
|
||||
public static final int invite_sms_desc_fmt=0x7f050221;
|
||||
public static final int invite_sms_desc_fmt=0x7f05021f;
|
||||
/** This is the subject line of the email/text sent to invite
|
||||
someone to join a game.
|
||||
*/
|
||||
|
@ -1423,14 +1424,14 @@ public final class R {
|
|||
different wordlists.)
|
||||
*/
|
||||
public static final int lang_label=0x7f0500c6;
|
||||
public static final int lang_name_fmt=0x7f0502bb;
|
||||
public static final int lang_unknown=0x7f0502bc;
|
||||
public static final int lang_name_fmt=0x7f0502b9;
|
||||
public static final int lang_unknown=0x7f0502ba;
|
||||
public static final int langdict_label=0x7f0500c7;
|
||||
public static final int list_group_default=0x7f050266;
|
||||
public static final int list_group_delete=0x7f050264;
|
||||
public static final int list_group_movedown=0x7f050268;
|
||||
public static final int list_group_moveup=0x7f050267;
|
||||
public static final int list_group_rename=0x7f050265;
|
||||
public static final int list_group_default=0x7f050264;
|
||||
public static final int list_group_delete=0x7f050262;
|
||||
public static final int list_group_movedown=0x7f050266;
|
||||
public static final int list_group_moveup=0x7f050265;
|
||||
public static final int list_group_rename=0x7f050263;
|
||||
/** ############## menu items ##############
|
||||
pulls up dialog to configure the selected game
|
||||
*/
|
||||
|
@ -1459,13 +1460,13 @@ public final class R {
|
|||
except for any configuration.
|
||||
*/
|
||||
public static final int list_item_reset=0x7f0500a6;
|
||||
public static final int lmi_move_fmt=0x7f0502c8;
|
||||
public static final int lmi_move_fmt=0x7f0502c6;
|
||||
/** formatting for last move summary in notifications
|
||||
*/
|
||||
public static final int lmi_pass_fmt=0x7f0502c7;
|
||||
public static final int lmi_phony_fmt=0x7f0502ca;
|
||||
public static final int lmi_tiles_fmt=0x7f0502cb;
|
||||
public static final int lmi_trade_fmt=0x7f0502c9;
|
||||
public static final int lmi_pass_fmt=0x7f0502c5;
|
||||
public static final int lmi_phony_fmt=0x7f0502c8;
|
||||
public static final int lmi_tiles_fmt=0x7f0502c9;
|
||||
public static final int lmi_trade_fmt=0x7f0502c7;
|
||||
/** 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.
|
||||
|
@ -1483,72 +1484,72 @@ public final class R {
|
|||
/**
|
||||
*/
|
||||
public static final int loc_external=0x7f0500bc;
|
||||
public static final int loc_filters_all=0x7f0502a5;
|
||||
public static final int loc_filters_menu=0x7f0502a7;
|
||||
public static final int loc_filters_modified=0x7f0502a8;
|
||||
public static final int loc_filters_prompt=0x7f0502a3;
|
||||
public static final int loc_filters_screen=0x7f0502a6;
|
||||
public static final int loc_fmts_mismatch=0x7f0502ae;
|
||||
public static final int loc_filters_all=0x7f0502a3;
|
||||
public static final int loc_filters_menu=0x7f0502a5;
|
||||
public static final int loc_filters_modified=0x7f0502a6;
|
||||
public static final int loc_filters_prompt=0x7f0502a1;
|
||||
public static final int loc_filters_screen=0x7f0502a4;
|
||||
public static final int loc_fmts_mismatch=0x7f0502ac;
|
||||
/** see move_dictf above
|
||||
*/
|
||||
public static final int loc_internal=0x7f0500bb;
|
||||
public static final int loc_item_check=0x7f0502ab;
|
||||
public static final int loc_item_check=0x7f0502a9;
|
||||
/** for loc item edit menu
|
||||
*/
|
||||
public static final int loc_item_clear=0x7f0502aa;
|
||||
public static final int loc_item_copy_bless=0x7f0502ad;
|
||||
public static final int loc_item_copy_eng=0x7f0502ac;
|
||||
public static final int loc_lang_blessed=0x7f05029d;
|
||||
public static final int loc_lang_local=0x7f05029e;
|
||||
public static final int loc_main_english=0x7f0502a9;
|
||||
public static final int loc_menu_xlate=0x7f05029c;
|
||||
public static final int loc_search_prompt=0x7f0502a4;
|
||||
public static final int loc_item_clear=0x7f0502a8;
|
||||
public static final int loc_item_copy_bless=0x7f0502ab;
|
||||
public static final int loc_item_copy_eng=0x7f0502aa;
|
||||
public static final int loc_lang_blessed=0x7f05029b;
|
||||
public static final int loc_lang_local=0x7f05029c;
|
||||
public static final int loc_main_english=0x7f0502a7;
|
||||
public static final int loc_menu_xlate=0x7f05029a;
|
||||
public static final int loc_search_prompt=0x7f0502a2;
|
||||
/** This is the "hint" printed in light text in the empty player
|
||||
name field
|
||||
*/
|
||||
public static final int local_name_hint=0x7f050198;
|
||||
public static final int logging_on=0x7f05007b;
|
||||
public static final int logging_on_summary=0x7f05007c;
|
||||
public static final int lookup_title=0x7f050298;
|
||||
public static final int lookup_title=0x7f050296;
|
||||
/**
|
||||
*/
|
||||
public static final int manual_owner_name=0x7f050222;
|
||||
public static final int manual_owner_name=0x7f050220;
|
||||
/**
|
||||
*/
|
||||
public static final int max_len=0x7f0501fc;
|
||||
/**
|
||||
*/
|
||||
public static final int menu_chat=0x7f050232;
|
||||
public static final int menu_chat=0x7f050230;
|
||||
/**
|
||||
*/
|
||||
public static final int menu_flip=0x7f050230;
|
||||
public static final int menu_flip=0x7f05022e;
|
||||
/**
|
||||
*/
|
||||
public static final int menu_hint_next=0x7f05022d;
|
||||
public static final int menu_hint_next=0x7f05022b;
|
||||
/**
|
||||
*/
|
||||
public static final int menu_hint_prev=0x7f05022c;
|
||||
public static final int menu_hint_prev=0x7f05022a;
|
||||
/**
|
||||
*/
|
||||
public static final int menu_juggle=0x7f05022f;
|
||||
public static final int menu_juggle=0x7f05022d;
|
||||
/** text of menu that brings up the Settings (preferences) dialog
|
||||
*/
|
||||
public static final int menu_prefs=0x7f05009c;
|
||||
public static final int menu_rateme=0x7f050288;
|
||||
public static final int menu_rateme=0x7f050286;
|
||||
/**
|
||||
*/
|
||||
public static final int menu_toggle_values=0x7f050233;
|
||||
public static final int menu_toggle_values=0x7f050231;
|
||||
/**
|
||||
*/
|
||||
public static final int menu_zoom=0x7f050231;
|
||||
public static final int menu_zoom=0x7f05022f;
|
||||
/**
|
||||
*/
|
||||
public static final int min_len=0x7f0501fb;
|
||||
/** label for the field used to set the timer's inital value
|
||||
*/
|
||||
public static final int minutes_label=0x7f0500d3;
|
||||
public static final int missing_dict_detail=0x7f050259;
|
||||
public static final int missing_dict_title=0x7f050258;
|
||||
public static final int missing_dict_detail=0x7f050257;
|
||||
public static final int missing_dict_title=0x7f050256;
|
||||
/** 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
|
||||
|
@ -1616,22 +1617,22 @@ public final class R {
|
|||
/** Text of progress indicator shown while check is being conducted
|
||||
*/
|
||||
public static final int msgs_progress=0x7f05009e;
|
||||
public static final int nag_body_fmt=0x7f0502c4;
|
||||
public static final int nag_days_fmt=0x7f0502c3;
|
||||
public static final int nag_hours_fmt=0x7f0502c2;
|
||||
public static final int nag_body_fmt=0x7f0502c2;
|
||||
public static final int nag_days_fmt=0x7f0502c1;
|
||||
public static final int nag_hours_fmt=0x7f0502c0;
|
||||
public static final int nag_intervals=0x7f05008c;
|
||||
/** 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=0x7f0502c1;
|
||||
public static final int nag_minutes_fmt=0x7f0502bf;
|
||||
/** Nagging: title of notification reminder message
|
||||
*/
|
||||
public static final int nag_title=0x7f0502c0;
|
||||
public static final int nag_title=0x7f0502be;
|
||||
/** above is inserted in this the last time I warn
|
||||
*/
|
||||
public static final int nag_warn_last_fmt=0x7f0502c5;
|
||||
public static final int nag_warn_last_fmt=0x7f0502c3;
|
||||
public static final int name_dict_fmt=0x7f050086;
|
||||
/** text of checkbox. If this checkbox is checked, games created
|
||||
for network play will by default have the hint feature
|
||||
|
@ -1650,38 +1651,38 @@ public final class R {
|
|||
public static final int network_behavior_summary=0x7f05016b;
|
||||
/**
|
||||
*/
|
||||
public static final int new_app_avail=0x7f050250;
|
||||
public static final int new_app_avail=0x7f05024e;
|
||||
/**
|
||||
*/
|
||||
public static final int new_app_avail_fmt=0x7f05024f;
|
||||
public static final int new_app_avail_fmt=0x7f05024d;
|
||||
/**
|
||||
*/
|
||||
public static final int new_bt_body_fmt=0x7f05020d;
|
||||
public static final int new_bt_body_fmt=0x7f05020b;
|
||||
/**
|
||||
*/
|
||||
public static final int new_bt_title=0x7f05020c;
|
||||
public static final int new_bt_title=0x7f05020a;
|
||||
/**
|
||||
*/
|
||||
public static final int new_btmove_title=0x7f05020f;
|
||||
public static final int new_btmove_title=0x7f05020d;
|
||||
/**
|
||||
*/
|
||||
public static final int new_dict_avail=0x7f05024d;
|
||||
public static final int new_dict_avail=0x7f05024b;
|
||||
/**
|
||||
*/
|
||||
public static final int new_dict_avail_fmt=0x7f05024e;
|
||||
public static final int new_dict_avail_fmt=0x7f05024c;
|
||||
/**
|
||||
*/
|
||||
public static final int new_move_body=0x7f050210;
|
||||
public static final int new_move_body=0x7f05020e;
|
||||
/**
|
||||
*/
|
||||
public static final int new_name_body_fmt=0x7f05021f;
|
||||
public static final int new_name_body_fmt=0x7f05021d;
|
||||
/** hint (text shown when field is empty) for room name field
|
||||
*/
|
||||
public static final int new_room_hint=0x7f0500ca;
|
||||
/**
|
||||
*/
|
||||
public static final int new_sms_title=0x7f05021e;
|
||||
public static final int new_xlations_fmt=0x7f05029f;
|
||||
public static final int new_sms_title=0x7f05021c;
|
||||
public static final int new_xlations_fmt=0x7f05029d;
|
||||
/**
|
||||
###########################################################
|
||||
# :Dialogs:
|
||||
|
@ -1746,8 +1747,8 @@ public final class R {
|
|||
public static final int newgame_networked_header=0x7f05017b;
|
||||
/**
|
||||
*/
|
||||
public static final int newgame_sms_header=0x7f05021a;
|
||||
public static final int newgroup_label=0x7f050263;
|
||||
public static final int newgame_sms_header=0x7f050218;
|
||||
public static final int newgroup_label=0x7f050261;
|
||||
public static final int nfc_or_email=0x7f050182;
|
||||
public static final int nfc_or_sms_or_email=0x7f050183;
|
||||
/** Title of dialog for renaming game (triggered by selecting
|
||||
|
@ -1795,9 +1796,9 @@ public final class R {
|
|||
you get this error message
|
||||
*/
|
||||
public static final int no_games_to_refresh=0x7f05009f;
|
||||
public static final int no_hide_titlebar=0x7f050284;
|
||||
public static final int no_market=0x7f050289;
|
||||
public static final int no_move_onegroup=0x7f050270;
|
||||
public static final int no_hide_titlebar=0x7f050282;
|
||||
public static final int no_market=0x7f050287;
|
||||
public static final int no_move_onegroup=0x7f05026e;
|
||||
/** displayed when you long-tap a scoreboard entry and there's no
|
||||
most recent score to show
|
||||
*/
|
||||
|
@ -1820,7 +1821,7 @@ public final class R {
|
|||
arrow appears. This explains it.
|
||||
*/
|
||||
public static final int not_again_arrow=0x7f0501d7;
|
||||
public static final int not_again_backclears=0x7f05027a;
|
||||
public static final int not_again_backclears=0x7f050278;
|
||||
/**
|
||||
*/
|
||||
public static final int not_again_browse=0x7f0501f8;
|
||||
|
@ -1848,7 +1849,7 @@ public final class R {
|
|||
for games with more than two devices, which are rare.
|
||||
*/
|
||||
public static final int not_again_conndmid=0x7f0501d5;
|
||||
public static final int not_again_dicts=0x7f0502bd;
|
||||
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.
|
||||
|
@ -1858,7 +1859,7 @@ public final class R {
|
|||
Board screen
|
||||
*/
|
||||
public static final int not_again_flip=0x7f0501cd;
|
||||
public static final int not_again_fmt_expl=0x7f0502af;
|
||||
public static final int not_again_fmt_expl=0x7f0502ad;
|
||||
/** Shown when you tap the next hint button on the toolbar of the
|
||||
main Board screen
|
||||
*/
|
||||
|
@ -1882,9 +1883,9 @@ public final class R {
|
|||
/** Shown when you first pick the list_item_new_from menuitem
|
||||
*/
|
||||
public static final int not_again_newfrom=0x7f0501d9;
|
||||
public static final int not_again_newselect=0x7f050279;
|
||||
public static final int not_again_sms_ready=0x7f050286;
|
||||
public static final int not_again_studycopy=0x7f050297;
|
||||
public static final int not_again_newselect=0x7f050277;
|
||||
public static final int not_again_sms_ready=0x7f050284;
|
||||
public static final int not_again_studycopy=0x7f050295;
|
||||
/** The following strings (all whose names start with
|
||||
"not_again") appear in the New user info dialog.
|
||||
|
||||
|
@ -1919,7 +1920,7 @@ public final class R {
|
|||
the main Board screen
|
||||
*/
|
||||
public static final int not_again_zoom=0x7f0501ce;
|
||||
public static final int note_none=0x7f0502b9;
|
||||
public static final int note_none=0x7f0502b7;
|
||||
/** 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.)
|
||||
|
@ -1949,8 +1950,8 @@ public final class R {
|
|||
games as well.
|
||||
*/
|
||||
public static final int password_label=0x7f0500ea;
|
||||
public static final int paste_done_fmt=0x7f050291;
|
||||
public static final int pct_suffix=0x7f050287;
|
||||
public static final int paste_done_fmt=0x7f05028f;
|
||||
public static final int pct_suffix=0x7f050285;
|
||||
/** 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.)
|
||||
|
@ -1966,7 +1967,7 @@ public final class R {
|
|||
public static final int peek_other_summary=0x7f050167;
|
||||
/**
|
||||
*/
|
||||
public static final int phone_label=0x7f050228;
|
||||
public static final int phone_label=0x7f050226;
|
||||
/** Don't warn, but simply force to skip turn (give 0 points)
|
||||
when user attempts to play word not in the wordlist.
|
||||
*/
|
||||
|
@ -2104,8 +2105,8 @@ public final class R {
|
|||
public static final int prefs_names_summary=0x7f050130;
|
||||
/** Used when prev player's name can't be looked up
|
||||
*/
|
||||
public static final int prev_player=0x7f0502c6;
|
||||
public static final int progress_title=0x7f0502b7;
|
||||
public static final int prev_player=0x7f0502c4;
|
||||
public static final int progress_title=0x7f0502b5;
|
||||
/**
|
||||
*/
|
||||
public static final int prompt_max_len=0x7f0501fe;
|
||||
|
@ -2150,7 +2151,7 @@ public final class R {
|
|||
problems with the current game.
|
||||
*/
|
||||
public static final int relay_alert=0x7f0500fa;
|
||||
public static final int relay_alert_title=0x7f050278;
|
||||
public static final int relay_alert_title=0x7f050276;
|
||||
/** ############################################################
|
||||
# :Screens:
|
||||
# RelayGameActivity screen
|
||||
|
@ -2176,19 +2177,19 @@ public final class R {
|
|||
public static final int relay_port=0x7f050084;
|
||||
/** Shown in toast when relaunching after switching dicts
|
||||
*/
|
||||
public static final int reload_new_dict_fmt=0x7f050257;
|
||||
public static final int remote_digesting=0x7f0502b1;
|
||||
public static final int remote_empty=0x7f0502b0;
|
||||
public static final int reload_new_dict_fmt=0x7f050255;
|
||||
public static final int remote_digesting=0x7f0502af;
|
||||
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.)
|
||||
*/
|
||||
public static final int remote_label=0x7f0500e5;
|
||||
public static final int remote_no_net=0x7f0502b2;
|
||||
public static final int remote_no_net=0x7f0502b0;
|
||||
/**
|
||||
*/
|
||||
public static final int remote_undone=0x7f05022b;
|
||||
public static final int rename_group_label=0x7f05026d;
|
||||
public static final int remote_undone=0x7f050229;
|
||||
public static final int rename_group_label=0x7f05026b;
|
||||
/** text within rename dialog (triggered by selecting
|
||||
list_item_rename)
|
||||
*/
|
||||
|
@ -2225,13 +2226,9 @@ public final class R {
|
|||
/** title for popup of public rooms found on server
|
||||
*/
|
||||
public static final int room_public_prompt=0x7f0500cc;
|
||||
public static final int scan_progress_fmt=0x7f050207;
|
||||
/**
|
||||
*/
|
||||
public static final int scan_progress_title=0x7f050206;
|
||||
public static final int sel_games_fmt=0x7f05027b;
|
||||
public static final int sel_groups_fmt=0x7f05027c;
|
||||
public static final int sel_items_fmt=0x7f05029b;
|
||||
public static final int sel_games_fmt=0x7f050279;
|
||||
public static final int sel_groups_fmt=0x7f05027a;
|
||||
public static final int sel_items_fmt=0x7f050299;
|
||||
/**
|
||||
############################################################
|
||||
# :Dialogs:
|
||||
|
@ -2254,8 +2251,8 @@ public final class R {
|
|||
/** clarification of above
|
||||
*/
|
||||
public static final int show_arrow_summary=0x7f05014b;
|
||||
public static final int show_remote=0x7f0502b5;
|
||||
public static final int show_wordlist_browser=0x7f050277;
|
||||
public static final int show_remote=0x7f0502b3;
|
||||
public static final int show_wordlist_browser=0x7f050275;
|
||||
/** 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)
|
||||
|
@ -2264,27 +2261,27 @@ public final class R {
|
|||
/** explanation of the above
|
||||
*/
|
||||
public static final int skip_confirm_turn_summary=0x7f050161;
|
||||
public static final int slmenu_clear_sel=0x7f05028f;
|
||||
public static final int slmenu_copy_sel=0x7f05028e;
|
||||
public static final int slmenu_deselect_all=0x7f05029a;
|
||||
public static final int slmenu_select_all=0x7f050299;
|
||||
public static final int slmenu_clear_sel=0x7f05028d;
|
||||
public static final int slmenu_copy_sel=0x7f05028c;
|
||||
public static final int slmenu_deselect_all=0x7f050298;
|
||||
public static final int slmenu_select_all=0x7f050297;
|
||||
/**
|
||||
*/
|
||||
public static final int sms_disabled=0x7f05021c;
|
||||
public static final int sms_disabled=0x7f05021a;
|
||||
/**
|
||||
*/
|
||||
public static final int sms_networked_desc=0x7f05021b;
|
||||
public static final int sms_networked_desc=0x7f050219;
|
||||
/** The invitation process begins with this query. The choice is
|
||||
between html and plaintext formatting but I also provide some
|
||||
explanation/guidance.
|
||||
*/
|
||||
public static final int sms_or_email=0x7f050181;
|
||||
public static final int sms_ready_text=0x7f050285;
|
||||
public static final int sms_ready_text=0x7f050283;
|
||||
/**
|
||||
*/
|
||||
public static final int smsname_label=0x7f050216;
|
||||
public static final int square_tiles=0x7f050274;
|
||||
public static final int square_tiles_summary=0x7f050275;
|
||||
public static final int smsname_label=0x7f050214;
|
||||
public static final int square_tiles=0x7f050272;
|
||||
public static final int square_tiles_summary=0x7f050273;
|
||||
/** Used in formatting moves and history
|
||||
*/
|
||||
public static final int str_bonus_all=0x7f050123;
|
||||
|
@ -2362,7 +2359,7 @@ public final class R {
|
|||
public static final int str_remote_moved_fmt=0x7f050118;
|
||||
/** Used in formatting final scores display
|
||||
*/
|
||||
public static final int str_resigned=0x7f050251;
|
||||
public static final int str_resigned=0x7f05024f;
|
||||
/**
|
||||
############################################################
|
||||
# Board info/error dialog messages
|
||||
|
@ -2405,7 +2402,7 @@ public final class R {
|
|||
public static final int str_two_tiles_first_move=0x7f05019d;
|
||||
/** Used in formatting final scores display
|
||||
*/
|
||||
public static final int str_winner=0x7f050252;
|
||||
public static final int str_winner=0x7f050250;
|
||||
/** Used in formatting game history (not move summaries since
|
||||
information about the current rack is hidden then)
|
||||
*/
|
||||
|
@ -2452,10 +2449,10 @@ public final class R {
|
|||
/** Used in formatting exchange move summaries
|
||||
*/
|
||||
public static final int strss_traded_for_fmt=0x7f05011e;
|
||||
public static final int study_langpick=0x7f050294;
|
||||
public static final int study_no_lang_fmt=0x7f050295;
|
||||
public static final int study_no_lists=0x7f050296;
|
||||
public static final int studylist_title_fmt=0x7f050293;
|
||||
public static final int study_langpick=0x7f050292;
|
||||
public static final int study_no_lang_fmt=0x7f050293;
|
||||
public static final int study_no_lists=0x7f050294;
|
||||
public static final int studylist_title_fmt=0x7f050291;
|
||||
/** 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.
|
||||
|
@ -2463,10 +2460,10 @@ public final class R {
|
|||
public static final int subst_dict_title=0x7f0501af;
|
||||
/**
|
||||
*/
|
||||
public static final int summary_conn=0x7f05020b;
|
||||
public static final int summary_conn=0x7f050209;
|
||||
/**
|
||||
*/
|
||||
public static final int summary_conn_sms_fmt=0x7f050229;
|
||||
public static final int summary_conn_sms_fmt=0x7f050227;
|
||||
/** 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
|
||||
|
@ -2478,7 +2475,7 @@ public final class R {
|
|||
public static final int summary_field=0x7f050143;
|
||||
/**
|
||||
*/
|
||||
public static final int summary_gameover=0x7f05020a;
|
||||
public static final int summary_gameover=0x7f050208;
|
||||
/** 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
|
||||
|
@ -2505,19 +2502,19 @@ public final class R {
|
|||
/** explanation of the above
|
||||
*/
|
||||
public static final int summary_sort_tiles=0x7f050163;
|
||||
public static final int summary_studyon=0x7f05028c;
|
||||
public static final int summary_thumbsize=0x7f05027d;
|
||||
public static final int summary_studyon=0x7f05028a;
|
||||
public static final int summary_thumbsize=0x7f05027b;
|
||||
/**
|
||||
*/
|
||||
public static final int summary_wait_guest=0x7f050209;
|
||||
public static final int summary_wait_guest=0x7f050207;
|
||||
/**
|
||||
*/
|
||||
public static final int summary_wait_host=0x7f050208;
|
||||
public static final int summary_wait_host=0x7f050206;
|
||||
/** Used to indicate that a preference is not enabled, i.e. not
|
||||
part of the game and that the user should ignore it.
|
||||
*/
|
||||
public static final int tell_unused=0x7f050135;
|
||||
public static final int thumb_off=0x7f05027e;
|
||||
public static final int thumb_off=0x7f05027c;
|
||||
/** color of the tiles' background
|
||||
*/
|
||||
public static final int tile_back=0x7f050155;
|
||||
|
@ -2585,12 +2582,12 @@ public final class R {
|
|||
i.e. after ever move.
|
||||
*/
|
||||
public static final int title_sort_tiles=0x7f050162;
|
||||
public static final int title_studyon=0x7f05028b;
|
||||
public static final int title_studyon=0x7f050289;
|
||||
/** title of dialog allowing user to pick tiles "face up". (This
|
||||
feature is not yet supported on Android.)
|
||||
*/
|
||||
public static final int title_tile_picker=0x7f0501bd;
|
||||
public static final int update_dicts_fmt=0x7f0502b6;
|
||||
public static final int update_dicts_fmt=0x7f0502b4;
|
||||
/** text of checkbox controlling whether there's a game timer
|
||||
*/
|
||||
public static final int use_timer=0x7f0500d2;
|
||||
|
@ -2600,18 +2597,18 @@ public final class R {
|
|||
public static final int vs_join=0x7f050122;
|
||||
/**
|
||||
*/
|
||||
public static final int warn_nomobile_fmt=0x7f050223;
|
||||
public static final int warn_nomobile_fmt=0x7f050221;
|
||||
/**
|
||||
*/
|
||||
public static final int warn_sms_disabled=0x7f05024a;
|
||||
public static final int warn_sms_disabled=0x7f050248;
|
||||
/**
|
||||
*/
|
||||
public static final int warn_unlimited=0x7f05022a;
|
||||
public static final int warn_unlimited=0x7f050228;
|
||||
/**
|
||||
*/
|
||||
public static final int word_search_hint=0x7f0501f0;
|
||||
public static final int xlations_enabled_summary=0x7f0502a1;
|
||||
public static final int xlations_enabled_title=0x7f0502a0;
|
||||
public static final int xlations_enabled_summary=0x7f05029f;
|
||||
public static final int xlations_enabled_title=0x7f05029e;
|
||||
public static final int xlations_locale=0x7f05008a;
|
||||
/** Empty in English, this should contain the name of the
|
||||
translator/creator of the strings.xml file for this
|
||||
|
|
|
@ -26,7 +26,7 @@
|
|||
android:layout_height="wrap_content"
|
||||
>
|
||||
<Button android:id="@+id/button_rescan"
|
||||
android:text="@string/bt_pick_rescan_button"
|
||||
android:text="@string/bt_pick_addall_button"
|
||||
style="@style/evenly_spaced_horizontal"
|
||||
/>
|
||||
<!-- <Button android:id="@+id/button_reconfigure" -->
|
||||
|
|
|
@ -1361,7 +1361,7 @@
|
|||
many players are expected and only connects devices where the
|
||||
numbers match. -->
|
||||
<string name="str_reg_unexpected_user">Refused attempt to register
|
||||
unexpected user[s]</string>
|
||||
unexpected user[s].</string>
|
||||
|
||||
<!-- Shown when a remote device tries to join a game and wants to
|
||||
play in a different language. As with the above, this should
|
||||
|
@ -1834,15 +1834,11 @@
|
|||
|
||||
<string name="newgame_enable_bt">Turn Bluetooth on</string>
|
||||
|
||||
<!-- -->
|
||||
<string name="bt_pick_rescan_button">Rescan</string>
|
||||
<!-- In the Bluetooth invite device dialog -->
|
||||
<string name="bt_pick_addall_button">Add all Paired</string>
|
||||
<!-- -->
|
||||
<string name="bt_pick_clear_button">Remove checked</string>
|
||||
|
||||
<!-- -->
|
||||
<string name="scan_progress_title">Scanning...</string>
|
||||
<string name="scan_progress_fmt">Scanning for Crosswords on %1$d
|
||||
paired devices</string>
|
||||
<!-- -->
|
||||
<string name="summary_wait_host">Waiting for connection[s]</string>
|
||||
<!-- -->
|
||||
|
@ -1866,9 +1862,9 @@
|
|||
<!-- -->
|
||||
<string name="new_move_body">One or more moves has arrived</string>
|
||||
<!-- -->
|
||||
<string name="invite_bt_desc_fmt">Please select the %1$d device[s] you
|
||||
want to include in this game. Use the Rescan button if you
|
||||
don\'t see a device you expect.</string>
|
||||
<string name="invite_bt_desc_fmt">Please select the %1$d device[s]
|
||||
you want to include in this game. Use the \"Add all Paired\"
|
||||
button if you don\'t see a device you expect.</string>
|
||||
<!-- -->
|
||||
<string name="bt_resend_fmt">Bluetooth send to %1$s failed; retry %3$d in
|
||||
%2$d seconds.</string>
|
||||
|
@ -2278,6 +2274,9 @@
|
|||
|
||||
<string name="bt_no_devs">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 need to open it on the other device as
|
||||
well.)</string>
|
||||
one or more?\n\n(You may also need to open it on the device you
|
||||
want to pair with.)</string>
|
||||
<string name="app_not_found_fmt">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.</string>
|
||||
</resources>
|
||||
|
|
|
@ -1165,7 +1165,7 @@
|
|||
many players are expected and only connects devices where the
|
||||
numbers match. -->
|
||||
<string name="str_reg_unexpected_user">Desufer tpmetta ot retsiger
|
||||
detcepxenu ]s[resu</string>
|
||||
detcepxenu ]s[resu.</string>
|
||||
<!-- 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. -->
|
||||
|
@ -1572,15 +1572,11 @@
|
|||
noisrev: \"%1$s\"; dna ledom/ekam fo ruoy enohp ro
|
||||
telbat.)</string>
|
||||
<string name="newgame_enable_bt">Nrut Htooteulb no</string>
|
||||
<!-- -->
|
||||
<string name="bt_pick_rescan_button">Nacser</string>
|
||||
<!-- In the Bluetooth invite device dialog -->
|
||||
<string name="bt_pick_addall_button">Dda lla Deriap</string>
|
||||
<!-- -->
|
||||
<string name="bt_pick_clear_button">Evomer dekcehc</string>
|
||||
<!-- -->
|
||||
<string name="scan_progress_title">Gninnacs...</string>
|
||||
<string name="scan_progress_fmt">Gninnacs rof Sdrowssorc no %1$d
|
||||
deriap secived</string>
|
||||
<!-- -->
|
||||
<string name="summary_wait_host">Gnitiaw rof ]s[noitcennoc</string>
|
||||
<!-- -->
|
||||
<string name="summary_wait_guest">Detcennocnu</string>
|
||||
|
@ -1602,9 +1598,9 @@
|
|||
<!-- -->
|
||||
<string name="new_move_body">Eno ro erom sevom sah devirra</string>
|
||||
<!-- -->
|
||||
<string name="invite_bt_desc_fmt">Esaelp tceles eht %1$d ]s[ecived uoy
|
||||
tnaw ot edulcni ni siht emag. Esu eht Nacser nottub fi uoy
|
||||
nod\'t ees a ecived uoy tcepxe.</string>
|
||||
<string name="invite_bt_desc_fmt">Esaelp tceles eht %1$d ]s[ecived
|
||||
uoy tnaw ot edulcni ni siht emag. Esu eht \"Dda lla Deriap\"
|
||||
nottub fi uoy nod\'t ees a ecived uoy tcepxe.</string>
|
||||
<!-- -->
|
||||
<string name="bt_resend_fmt">Htooteulb dnes ot %1$s deliaf; yrter %3$d ni
|
||||
%2$d sdnoces.</string>
|
||||
|
@ -1945,6 +1941,9 @@
|
|||
<string name="bt_err_count_fmt">%1$d htooteulb srorre os raf</string>
|
||||
<string name="bt_no_devs">Uoy yltnerruc evah on deriap Htooteulb
|
||||
secived. Dluow uoy ekil ot nepo eht Diordna Sgnittes Lenap ot dda
|
||||
eno ro ?erom\n\nuOy( yam deen ot nepo ti no eht rehto ecived sa
|
||||
llew.)</string>
|
||||
eno ro ?erom\n\nuOy( yam osla deen ot nepo ti no eht ecived uoy
|
||||
tnaw ot riap htiw.)</string>
|
||||
<string name="app_not_found_fmt">Elbanu ot tcennoc ot Sdrowssorc
|
||||
no eht ecived %1$s. Esaelp kcehc taht eht ecived si nihtiw egnar
|
||||
dna taht Sdrowssorc si dellatsni no ti.</string>
|
||||
</resources>
|
||||
|
|
|
@ -1165,7 +1165,7 @@
|
|||
many players are expected and only connects devices where the
|
||||
numbers match. -->
|
||||
<string name="str_reg_unexpected_user">REFUSED ATTEMPT TO REGISTER
|
||||
UNEXPECTED USER[S]</string>
|
||||
UNEXPECTED USER[S].</string>
|
||||
<!-- 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. -->
|
||||
|
@ -1572,15 +1572,11 @@
|
|||
VERSION: \"%1$s\"; AND MAKE/MODEL OF YOUR PHONE OR
|
||||
TABLET.)</string>
|
||||
<string name="newgame_enable_bt">TURN BLUETOOTH ON</string>
|
||||
<!-- -->
|
||||
<string name="bt_pick_rescan_button">RESCAN</string>
|
||||
<!-- In the Bluetooth invite device dialog -->
|
||||
<string name="bt_pick_addall_button">ADD ALL PAIRED</string>
|
||||
<!-- -->
|
||||
<string name="bt_pick_clear_button">REMOVE CHECKED</string>
|
||||
<!-- -->
|
||||
<string name="scan_progress_title">SCANNING...</string>
|
||||
<string name="scan_progress_fmt">SCANNING FOR CROSSWORDS ON %1$d
|
||||
PAIRED DEVICES</string>
|
||||
<!-- -->
|
||||
<string name="summary_wait_host">WAITING FOR CONNECTION[S]</string>
|
||||
<!-- -->
|
||||
<string name="summary_wait_guest">UNCONNECTED</string>
|
||||
|
@ -1602,9 +1598,9 @@
|
|||
<!-- -->
|
||||
<string name="new_move_body">ONE OR MORE MOVES HAS ARRIVED</string>
|
||||
<!-- -->
|
||||
<string name="invite_bt_desc_fmt">PLEASE SELECT THE %1$d DEVICE[S] YOU
|
||||
WANT TO INCLUDE IN THIS GAME. USE THE RESCAN BUTTON IF YOU
|
||||
DON\'T SEE A DEVICE YOU EXPECT.</string>
|
||||
<string name="invite_bt_desc_fmt">PLEASE SELECT THE %1$d DEVICE[S]
|
||||
YOU WANT TO INCLUDE IN THIS GAME. USE THE \"ADD ALL PAIRED\"
|
||||
BUTTON IF YOU DON\'T SEE A DEVICE YOU EXPECT.</string>
|
||||
<!-- -->
|
||||
<string name="bt_resend_fmt">BLUETOOTH SEND TO %1$s FAILED; RETRY %3$d IN
|
||||
%2$d SECONDS.</string>
|
||||
|
@ -1945,6 +1941,9 @@
|
|||
<string name="bt_err_count_fmt">%1$d BLUETOOTH ERRORS SO FAR</string>
|
||||
<string name="bt_no_devs">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 NEED TO OPEN IT ON THE OTHER DEVICE AS
|
||||
WELL.)</string>
|
||||
ONE OR MORE?\n\n(YOU MAY ALSO NEED TO OPEN IT ON THE DEVICE YOU
|
||||
WANT TO PAIR WITH.)</string>
|
||||
<string name="app_not_found_fmt">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.</string>
|
||||
</resources>
|
||||
|
|
|
@ -39,7 +39,9 @@ import android.widget.LinearLayout;
|
|||
import android.widget.ListView;
|
||||
import android.widget.TextView;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.HashSet;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
|
||||
import junit.framework.Assert;
|
||||
|
@ -88,7 +90,6 @@ public class BTInviteDelegate extends InviteDelegate {
|
|||
post( new Runnable() {
|
||||
public void run() {
|
||||
synchronized( BTInviteDelegate.this ) {
|
||||
stopProgress();
|
||||
|
||||
String[] btDevAddrs = null;
|
||||
String[] btDevNames = null;
|
||||
|
@ -102,9 +103,6 @@ public class BTInviteDelegate extends InviteDelegate {
|
|||
}
|
||||
}
|
||||
|
||||
if ( null == btDevNames && m_firstScan ) {
|
||||
BTService.scan( m_activity );
|
||||
}
|
||||
m_setChecked = null != btDevNames
|
||||
&& m_nMissing == btDevNames.length;
|
||||
m_adapter = new BTDevsAdapter( btDevAddrs, btDevNames );
|
||||
|
@ -125,8 +123,6 @@ public class BTInviteDelegate extends InviteDelegate {
|
|||
{
|
||||
int count = BTService.getPairedCount( m_activity );
|
||||
if ( 0 < count ) {
|
||||
String msg = getString( R.string.scan_progress_fmt, count );
|
||||
startProgress( R.string.scan_progress_title, msg );
|
||||
BTService.scan( m_activity );
|
||||
} else {
|
||||
showConfirmThen( R.string.bt_no_devs, R.string.button_go_settings,
|
||||
|
@ -148,8 +144,8 @@ public class BTInviteDelegate extends InviteDelegate {
|
|||
for ( int ii = 0; ii < count; ++ii ) {
|
||||
CheckBox box = (CheckBox)list.getChildAt( ii );
|
||||
if ( box.isChecked() ) {
|
||||
String btAddr = m_adapter.getBTAddr( ii );
|
||||
String btName = m_adapter.getBTName( ii );
|
||||
String btAddr = m_adapter.getBTAddr( box );
|
||||
String btName = m_adapter.getBTName( box );
|
||||
Assert.assertTrue( box.getText().toString().equals( btName ) );
|
||||
result[index++] = btAddr;
|
||||
}
|
||||
|
@ -167,9 +163,11 @@ public class BTInviteDelegate extends InviteDelegate {
|
|||
private class BTDevsAdapter extends XWListAdapter {
|
||||
private String[] m_devAddrs;
|
||||
private String[] m_devNames;
|
||||
private Map<CheckBox, String> m_boxAddrs;
|
||||
public BTDevsAdapter( String[] btAddrs, String[] btNames )
|
||||
{
|
||||
super( null == btAddrs? 0 : btAddrs.length );
|
||||
m_boxAddrs = new HashMap<CheckBox, String>();
|
||||
m_devAddrs = btAddrs;
|
||||
m_devNames = btNames;
|
||||
}
|
||||
|
@ -179,6 +177,7 @@ public class BTInviteDelegate extends InviteDelegate {
|
|||
ViewGroup parent ) {
|
||||
CheckBox box = (CheckBox)inflate( R.layout.btinviter_item );
|
||||
box.setText( m_devNames[position] );
|
||||
m_boxAddrs.put( box, m_devAddrs[position] );
|
||||
|
||||
CompoundButton.OnCheckedChangeListener listener =
|
||||
new CompoundButton.OnCheckedChangeListener() {
|
||||
|
@ -203,8 +202,8 @@ public class BTInviteDelegate extends InviteDelegate {
|
|||
return box;
|
||||
}
|
||||
|
||||
public String getBTAddr( int indx ) { return m_devAddrs[indx]; }
|
||||
public String getBTName( int indx ) { return m_devNames[indx]; }
|
||||
public String getBTAddr( CheckBox box ) { return m_boxAddrs.get(box); }
|
||||
public String getBTName( CheckBox box ) { return box.getText().toString(); }
|
||||
}
|
||||
|
||||
// DlgDelegate.DlgClickNotify interface
|
||||
|
|
|
@ -275,8 +275,8 @@ public class BTService extends XWService {
|
|||
? BluetoothAdapter.getDefaultAdapter() : null;
|
||||
if ( null != adapter && adapter.isEnabled() ) {
|
||||
m_adapter = adapter;
|
||||
DbgUtils.logf( "BTService.onCreate(); bt name = %s",
|
||||
adapter.getName() );
|
||||
DbgUtils.logf( "BTService.onCreate(); bt name = %s; bt addr = %s",
|
||||
adapter.getName(), adapter.getAddress() );
|
||||
initAddrs();
|
||||
listLocalBTGames( false );
|
||||
startListener();
|
||||
|
@ -658,7 +658,7 @@ public class BTService extends XWService {
|
|||
}
|
||||
break;
|
||||
case SCAN:
|
||||
sendPings( null );
|
||||
addAllToNames();
|
||||
sendNames();
|
||||
saveAddrs();
|
||||
break;
|
||||
|
@ -776,18 +776,14 @@ public class BTService extends XWService {
|
|||
}
|
||||
socket.close();
|
||||
|
||||
if ( BTCmd.BAD_PROTO == reply ) {
|
||||
if ( null == reply ) {
|
||||
sendResult( MultiEvent.APP_NOT_FOUND, dev.getName() );
|
||||
} else if ( BTCmd.BAD_PROTO == reply ) {
|
||||
sendBadProto( socket );
|
||||
} else {
|
||||
MultiEvent evt = null;
|
||||
switch( reply ) {
|
||||
case INVITE_ACCPT:
|
||||
evt = MultiEvent.NEWGAME_SUCCESS;
|
||||
break;
|
||||
default:
|
||||
evt = MultiEvent.NEWGAME_FAILURE;
|
||||
}
|
||||
sendResult( evt, elem.m_gameID );
|
||||
} else if ( BTCmd.INVITE_ACCPT == reply ) {
|
||||
sendResult( MultiEvent.NEWGAME_SUCCESS, elem.m_gameID );
|
||||
} else {
|
||||
sendResult( MultiEvent.NEWGAME_FAILURE, elem.m_gameID );
|
||||
}
|
||||
}
|
||||
} catch ( IOException ioe ) {
|
||||
|
@ -929,6 +925,16 @@ public class BTService extends XWService {
|
|||
|
||||
} // class BTSenderThread
|
||||
|
||||
private void addAllToNames()
|
||||
{
|
||||
Set<BluetoothDevice> pairedDevs = m_adapter.getBondedDevices();
|
||||
synchronized( m_addrs ) {
|
||||
for ( BluetoothDevice dev : pairedDevs ) {
|
||||
m_addrs.add( dev.getAddress() );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void sendNames()
|
||||
{
|
||||
String[] btAddrs = getAddrs();
|
||||
|
|
|
@ -131,9 +131,7 @@ public class BoardDelegate extends DelegateBase
|
|||
private String m_pwdName;
|
||||
private String m_getDict;
|
||||
|
||||
// Join these two!!!
|
||||
private int m_nMissingPlayers = -1;
|
||||
private int m_missing;
|
||||
private int m_nMissing = -1;
|
||||
private boolean m_haveInvited = false;
|
||||
private boolean m_overNotShown;
|
||||
|
||||
|
@ -485,10 +483,10 @@ public class BoardDelegate extends DelegateBase
|
|||
case DLG_INVITE:
|
||||
AlertDialog ad = (AlertDialog)dialog;
|
||||
String message =
|
||||
getString( R.string.invite_msg_fmt, m_missing );
|
||||
getString( R.string.invite_msg_fmt, m_nMissing );
|
||||
|
||||
String ps = null;
|
||||
if ( m_missing > 1 ) {
|
||||
if ( m_nMissing > 1 ) {
|
||||
ps = getString( R.string.invite_multiple );
|
||||
} else {
|
||||
boolean[] avail = NFCUtils.nfcAvail( m_activity );
|
||||
|
@ -727,7 +725,7 @@ public class BoardDelegate extends DelegateBase
|
|||
m_gsi.canUndo );
|
||||
}
|
||||
|
||||
Utils.setItemVisible( menu, R.id.board_menu_invite, 0 < m_missing );
|
||||
Utils.setItemVisible( menu, R.id.board_menu_invite, 0 < m_nMissing );
|
||||
|
||||
Utils.setItemVisible( menu, R.id.board_menu_trade_cancel, inTrade );
|
||||
Utils.setItemVisible( menu, R.id.board_menu_trade_commit,
|
||||
|
@ -845,7 +843,7 @@ public class BoardDelegate extends DelegateBase
|
|||
showConfirmThen( R.string.confirm_undo_last, Action.UNDO_LAST_ACTION );
|
||||
break;
|
||||
case R.id.board_menu_invite:
|
||||
showDialog( DlgID.DLG_INVITE );
|
||||
inviteForMissing();
|
||||
break;
|
||||
// small devices only
|
||||
case R.id.board_menu_dict:
|
||||
|
@ -933,11 +931,11 @@ public class BoardDelegate extends DelegateBase
|
|||
doSyncMenuitem();
|
||||
break;
|
||||
case BT_PICK_ACTION:
|
||||
BTInviteDelegate.launchForResult( m_activity, m_nMissingPlayers,
|
||||
BTInviteDelegate.launchForResult( m_activity, m_nMissing,
|
||||
BT_INVITE_RESULT );
|
||||
break;
|
||||
case SMS_PICK_ACTION:
|
||||
SMSInviteDelegate.launchForResult( m_activity, m_nMissingPlayers,
|
||||
SMSInviteDelegate.launchForResult( m_activity, m_nMissing,
|
||||
SMS_INVITE_RESULT );
|
||||
break;
|
||||
case SMS_CONFIG_ACTION:
|
||||
|
@ -1161,13 +1159,12 @@ public class BoardDelegate extends DelegateBase
|
|||
//////////////////////////////////////////////////
|
||||
// NFCUtils.NFCActor
|
||||
//////////////////////////////////////////////////
|
||||
|
||||
public String makeNFCMessage()
|
||||
{
|
||||
String data = null;
|
||||
switch ( m_connType ) {
|
||||
case COMMS_CONN_RELAY:
|
||||
if ( 0 < m_missing ) { // Isn't there a better test??
|
||||
if ( 0 < m_nMissing ) { // Isn't there a better test??
|
||||
String room = m_summary.roomName;
|
||||
String inviteID = String.format( "%X", m_gi.gameID );
|
||||
Assert.assertNotNull( room );
|
||||
|
@ -1177,7 +1174,7 @@ public class BoardDelegate extends DelegateBase
|
|||
}
|
||||
break;
|
||||
case COMMS_CONN_BT:
|
||||
if ( 0 < m_nMissingPlayers ) {
|
||||
if ( 0 < m_nMissing ) {
|
||||
data = BTLaunchInfo.makeLaunchJSON( m_gi.gameID, m_gi.dictLang,
|
||||
m_gi.dictName, m_gi.nPlayers );
|
||||
removeDialog( DlgID.CONFIRM_THEN );
|
||||
|
@ -1311,6 +1308,7 @@ public class BoardDelegate extends DelegateBase
|
|||
int naMsg = 0;
|
||||
int naKey = 0;
|
||||
String toastStr = null;
|
||||
m_nMissing = nMissing;
|
||||
if ( allHere ) {
|
||||
// All players have now joined the game. The device that
|
||||
// created the room will assign tiles. Then it will be
|
||||
|
@ -1328,7 +1326,6 @@ public class BoardDelegate extends DelegateBase
|
|||
if ( !m_haveInvited ) {
|
||||
m_haveInvited = true;
|
||||
m_room = room;
|
||||
m_missing = nMissing;
|
||||
showDialog( DlgID.DLG_INVITE );
|
||||
invalidateOptionsMenuIf();
|
||||
} else {
|
||||
|
@ -1354,7 +1351,6 @@ public class BoardDelegate extends DelegateBase
|
|||
}
|
||||
}
|
||||
|
||||
m_missing = nMissing;
|
||||
invalidateOptionsMenuIf();
|
||||
} // handleConndMessage
|
||||
|
||||
|
@ -1526,6 +1522,7 @@ public class BoardDelegate extends DelegateBase
|
|||
public void turnChanged( int newTurn )
|
||||
{
|
||||
if ( 0 <= newTurn ) {
|
||||
m_nMissing = 0;
|
||||
post( new Runnable() {
|
||||
public void run() {
|
||||
showNotAgainDlgThen( R.string.not_again_turnchanged,
|
||||
|
@ -1642,12 +1639,14 @@ public class BoardDelegate extends DelegateBase
|
|||
// missing or not.
|
||||
@Override
|
||||
public void informMissing( boolean isServer, CommsConnType connType,
|
||||
final int nMissingPlayers )
|
||||
final int nMissing )
|
||||
{
|
||||
m_connType = connType;
|
||||
Assert.assertTrue( isServer || 0 == nMissing );
|
||||
m_nMissing = nMissing; // will be 0 unless isServer is true
|
||||
|
||||
Action action = null;
|
||||
if ( 0 < nMissingPlayers && isServer && !m_haveInvited ) {
|
||||
if ( 0 < nMissing && isServer && !m_haveInvited ) {
|
||||
switch( connType ) {
|
||||
case COMMS_CONN_BT:
|
||||
action = Action.BT_PICK_ACTION;
|
||||
|
@ -1658,27 +1657,7 @@ public class BoardDelegate extends DelegateBase
|
|||
}
|
||||
}
|
||||
if ( null != action ) {
|
||||
m_haveInvited = true;
|
||||
final Action faction = action;
|
||||
post( new Runnable() {
|
||||
public void run() {
|
||||
DbgUtils.showf( m_activity,
|
||||
getString( R.string.players_miss_fmt,
|
||||
nMissingPlayers ) );
|
||||
m_nMissingPlayers = nMissingPlayers;
|
||||
String msg = getString( R.string.invite_msg_fmt,
|
||||
nMissingPlayers );
|
||||
|
||||
if ( Action.BT_PICK_ACTION == faction ) {
|
||||
boolean[] avail = NFCUtils.nfcAvail( m_activity );
|
||||
if ( avail[1] ) {
|
||||
msg += "\n\n" + getString( R.string.invite_if_nfc );
|
||||
}
|
||||
}
|
||||
|
||||
showConfirmThen( msg, R.string.newgame_invite, faction );
|
||||
}
|
||||
} );
|
||||
nonRelayInvite( action );
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1786,6 +1765,43 @@ public class BoardDelegate extends DelegateBase
|
|||
}
|
||||
} // class BoardUtilCtxt
|
||||
|
||||
private void inviteForMissing() {
|
||||
switch( m_connType ) {
|
||||
case COMMS_CONN_BT:
|
||||
nonRelayInvite( Action.BT_PICK_ACTION );
|
||||
break;
|
||||
case COMMS_CONN_SMS:
|
||||
nonRelayInvite( Action.SMS_PICK_ACTION );
|
||||
break;
|
||||
case COMMS_CONN_RELAY:
|
||||
showDialog( DlgID.DLG_INVITE );
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
private void nonRelayInvite( final Action action )
|
||||
{
|
||||
m_haveInvited = true;
|
||||
post( new Runnable() {
|
||||
public void run() {
|
||||
DbgUtils.showf( m_activity,
|
||||
getString( R.string.players_miss_fmt,
|
||||
m_nMissing ) );
|
||||
String msg = getString( R.string.invite_msg_fmt,
|
||||
m_nMissing );
|
||||
|
||||
if ( Action.BT_PICK_ACTION == action ) {
|
||||
boolean[] avail = NFCUtils.nfcAvail( m_activity );
|
||||
if ( avail[1] ) {
|
||||
msg += "\n\n" + getString( R.string.invite_if_nfc );
|
||||
}
|
||||
}
|
||||
|
||||
showConfirmThen( msg, R.string.newgame_invite, action );
|
||||
}
|
||||
} );
|
||||
}
|
||||
|
||||
private void loadGame()
|
||||
{
|
||||
if ( 0 == m_jniGamePtr ) {
|
||||
|
|
|
@ -37,6 +37,7 @@ import android.widget.TextView;
|
|||
|
||||
import org.eehouse.android.xw4.DlgDelegate.Action;
|
||||
import org.eehouse.android.xw4.loc.LocUtils;
|
||||
import org.eehouse.android.xw4.MultiService.MultiEvent;
|
||||
|
||||
import junit.framework.Assert;
|
||||
|
||||
|
@ -445,7 +446,7 @@ public class DelegateBase implements DlgDelegate.DlgClickNotify,
|
|||
//////////////////////////////////////////////////
|
||||
// MultiService.MultiEventListener interface
|
||||
//////////////////////////////////////////////////
|
||||
public void eventOccurred( MultiService.MultiEvent event, final Object ... args )
|
||||
public void eventOccurred( MultiEvent event, final Object ... args )
|
||||
{
|
||||
switch( event ) {
|
||||
case BT_ERR_COUNT:
|
||||
|
@ -457,7 +458,10 @@ public class DelegateBase implements DlgDelegate.DlgClickNotify,
|
|||
DbgUtils.logf( "Bluetooth error count: %d", count );
|
||||
break;
|
||||
case BAD_PROTO:
|
||||
final String msg = getString( R.string.bt_bad_proto_fmt, (String)args[0] );
|
||||
case APP_NOT_FOUND:
|
||||
final String msg = MultiEvent.BAD_PROTO == event
|
||||
? getString( R.string.bt_bad_proto_fmt, (String)args[0] )
|
||||
: getString( R.string.app_not_found_fmt, (String)args[0] );
|
||||
runOnUiThread( new Runnable() {
|
||||
public void run() {
|
||||
showOKOnlyDialog( msg );
|
||||
|
|
|
@ -49,6 +49,7 @@ public class MultiService {
|
|||
// these do not currently pass between devices so they can change.
|
||||
public enum MultiEvent { _INVALID,
|
||||
BAD_PROTO,
|
||||
APP_NOT_FOUND,
|
||||
BT_ENABLED,
|
||||
BT_DISABLED,
|
||||
SCAN_DONE,
|
||||
|
|
Loading…
Add table
Reference in a new issue