factor confirm-unlimited-SMS stuff out into utility dialog so I can

turn on SMS from outside preferences -- which is a much better
experience than sending somebody into the prefs labyrinth
This commit is contained in:
Eric House 2015-02-11 07:51:19 -08:00
parent 615ec72ea7
commit 2142c752bf
13 changed files with 274 additions and 213 deletions

View file

@ -353,8 +353,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=0x7f05028e;
public static final int add_to_study_fmt=0x7f050286;
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=0x7f050079;
@ -368,7 +368,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=0x7f0502ca;
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
@ -435,7 +435,7 @@ public final class R {
*/
public static final int board_menu_game_resend=0x7f050114;
public static final int board_menu_game_resign=0x7f050113;
public static final int board_menu_invite=0x7f05027f;
public static final int board_menu_invite=0x7f050281;
/**
*/
public static final int board_menu_pass=0x7f0501ec;
@ -500,14 +500,14 @@ public final class R {
/**
*/
public static final int bt_bad_proto_fmt=0x7f05020e;
public static final int bt_err_count_fmt=0x7f0502c8;
public static final int bt_err_count_fmt=0x7f0502ca;
/**
*/
public static final int bt_fail_fmt=0x7f050213;
/** Title of device picker during invitation to a game via Bluetooth
*/
public static final int bt_invite_title=0x7f050215;
public static final int bt_no_devs=0x7f0502c9;
public static final int bt_no_devs=0x7f0502cb;
/** <string name="newgame_enable_bt">Turn Bluetooth on</string>
In the Bluetooth invite device dialog
*/
@ -528,7 +528,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=0x7f05025c;
public static final int button_decline=0x7f05025e;
/**
*/
public static final int button_default_both=0x7f0500bf;
@ -554,7 +554,7 @@ public final class R {
reset a game.
*/
public static final int button_discard=0x7f0501b9;
public static final int button_discard_changes=0x7f0502e1;
public static final int button_discard_changes=0x7f0502e3;
/**
*/
public static final int button_done=0x7f0501e9;
@ -564,14 +564,16 @@ 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_edit=0x7f0502e0;
public static final int button_go_settings=0x7f050281;
public static final int button_edit=0x7f0502e2;
public static final int button_enable_sms=0x7f05024a;
public static final int button_go_settings=0x7f050283;
/**
*/
public static final int button_invite=0x7f050214;
/** text of button to juggle (randomly rearrange order of) players
*/
public static final int button_juggle_players=0x7f0500ca;
public static final int button_later=0x7f05024b;
/** New strings that need to be documented and found a home
above.
*/
@ -618,12 +620,12 @@ public final class R {
in many places.
*/
public static final int button_ok=0x7f0501b4;
public static final int button_reconnect=0x7f050271;
public static final int button_reconnect=0x7f050273;
/** 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=0x7f050270;
public static final int button_rematch=0x7f050272;
/** 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).
@ -680,8 +682,8 @@ public final class R {
*/
public static final int button_trade_commit=0x7f0500f0;
public static final int button_yes=0x7f0501b6;
public static final int cannot_delete_default_group_fmt=0x7f05026e;
public static final int change_group=0x7f050274;
public static final int cannot_delete_default_group_fmt=0x7f050270;
public static final int change_group=0x7f050276;
/** text of button in About Crosswords dialog summoning above
dialog
*/
@ -727,7 +729,7 @@ public final class R {
substituted for %1$s.
*/
public static final int chat_title_fmt=0x7f050193;
public static final int checkupdates_none_found=0x7f05024b;
public static final int checkupdates_none_found=0x7f05024d;
/** 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
@ -735,7 +737,7 @@ public final class R {
on the board.
*/
public static final int clr_crosshairs=0x7f05015c;
public static final int config_no_connvia=0x7f0502df;
public static final int config_no_connvia=0x7f0502e1;
/**
*/
public static final int confirm_clear=0x7f050226;
@ -788,7 +790,7 @@ public final class R {
/**
*/
public static final int confirm_sms_willpay=0x7f050248;
public static final int confirm_studylist_clear_fmt=0x7f05028c;
public static final int confirm_studylist_clear_fmt=0x7f05028e;
/** text of dialog shown when the menu item board_menu_undo_last
is chosen.
*/
@ -822,7 +824,7 @@ public final class R {
public static final int connect_one_hour=0x7f050179;
public static final int connect_six_hours=0x7f05017a;
public static final int connect_thirty_mins=0x7f050178;
public static final int connection_via_label=0x7f0502d7;
public static final int connection_via_label=0x7f0502d9;
/**
*/
public static final int connstat_lastother_succ_fmt=0x7f05023b;
@ -862,11 +864,11 @@ public final class R {
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=0x7f05027e;
public static final int cur_menu_marker_fmt=0x7f050280;
/**
*/
public static final int cur_tiles_fmt=0x7f0501f4;
public static final int data_gsm_only=0x7f05029e;
public static final int data_gsm_only=0x7f0502a0;
public static final int debug_features=0x7f050080;
public static final int debug_features_summary=0x7f050081;
/** dictionary used by default for human players when creating
@ -878,9 +880,9 @@ public final class R {
public static final int default_host=0x7f05006d;
/** label within default wordlists in app preferences
*/
public static final int default_language=0x7f0502cb;
public static final int default_loc=0x7f05025f;
public static final int default_loc_summary=0x7f050260;
public static final int default_language=0x7f0502cd;
public static final int default_loc=0x7f050261;
public static final int default_loc_summary=0x7f050262;
/** Welcome dialog text
*/
public static final int default_name_message=0x7f0501db;
@ -908,7 +910,7 @@ public final class R {
*/
public static final int default_robodict=0x7f05013f;
public static final int default_update_url=0x7f050077;
public static final int delete_dicts=0x7f0502b0;
public static final int delete_dicts=0x7f0502b2;
/**
*/
public static final int dft_name_fmt=0x7f05021b;
@ -928,14 +930,14 @@ public final class R {
*/
public static final int dict_browse_title_fmt=0x7f0501f6;
public static final int dict_host=0x7f05007d;
public static final int dict_info_fmt=0x7f0502b4;
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=0x7f0500ec;
public static final int dict_on_server=0x7f0502b6;
public static final int dict_on_server=0x7f0502b8;
/** string name="invite_mime">text/plain</string
*/
public static final int dict_url=0x7f050075;
@ -969,13 +971,13 @@ public final class R {
wordlists can be found.
*/
public static final int download_dicts=0x7f0500b5;
public static final int download_done=0x7f05025d;
public static final int download_failed=0x7f05025e;
public static final int download_path_title=0x7f050261;
public static final int download_done=0x7f05025f;
public static final int download_failed=0x7f050260;
public static final int download_path_title=0x7f050263;
public static final int downloading_dict_fmt=0x7f0501a7;
/** <string name="summary_thumb_enabled">Display snapshots of games</string>
*/
public static final int dropped_dupe=0x7f05027d;
public static final int dropped_dupe=0x7f05027f;
/** 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.
@ -1003,21 +1005,21 @@ public final class R {
/** Shows in SMS Invite dialog when no phone numbers have been saved previously
*/
public static final int empty_sms_inviter=0x7f050224;
public static final int enable_bt_first=0x7f0502dc;
public static final int enable_bt_first=0x7f0502de;
public static final int enable_dupes_summary=0x7f05008e;
public static final int enable_dupes_title=0x7f05008c;
public static final int enable_nfc=0x7f050280;
public static final int enable_nfc=0x7f050282;
/**
*/
public static final int enable_sms=0x7f050241;
public static final int enable_sms_first=0x7f0502dd;
public static final int enable_sms_first=0x7f0502df;
/**
*/
public static final int enable_sms_summary=0x7f050242;
public static final int enable_sms_toself_summary=0x7f050091;
public static final int enable_sms_toself_title=0x7f050090;
public static final int entering_trade=0x7f0500f2;
public static final int err_dup_invite_fmt=0x7f0502d4;
public static final int err_dup_invite_fmt=0x7f0502d6;
public static final int expl_update_url=0x7f050076;
/** 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
@ -1037,8 +1039,8 @@ public final class R {
/** Explanatory text appears in the dialog
*/
public static final int force_expl=0x7f0500e7;
public static final int force_tablet_summary=0x7f0502bb;
public static final int force_tablet_title=0x7f0502ba;
public static final int force_tablet_summary=0x7f0502bd;
public static final int force_tablet_title=0x7f0502bc;
/**
############################################################
# :Dialogs:
@ -1086,7 +1088,7 @@ public final class R {
game to make changes
*/
public static final int game_locked=0x7f0500c6;
public static final int game_name_group_title=0x7f05026d;
public static final int game_name_group_title=0x7f05026f;
/**
*/
public static final int game_rename_title=0x7f0500b0;
@ -1117,7 +1119,7 @@ public final class R {
public static final int gamel_menu_checkmoves=0x7f0500a3;
/**
*/
public static final int gamel_menu_checkupdates=0x7f05024a;
public static final int gamel_menu_checkupdates=0x7f05024c;
/**
############################################################
# :Menus:
@ -1132,19 +1134,19 @@ public final class R {
public static final int gamel_menu_dicts=0x7f0500a1;
public static final int gamel_menu_loaddb=0x7f05008b;
public static final int gamel_menu_storedb=0x7f05008a;
public static final int gamel_menu_study=0x7f050289;
public static final int gamel_menu_study=0x7f05028b;
/**
*/
public static final int get_sms_number=0x7f050225;
public static final int getinfo=0x7f0502af;
public static final int getinfo=0x7f0502b1;
public static final int git_rev=0x7f050093;
public static final int git_rev_title=0x7f050086;
public static final int green=0x7f050162;
public static final int group_cur_games=0x7f050268;
public static final int group_name_fmt=0x7f05026f;
public static final int group_new_games=0x7f050269;
public static final int groups_confirm_del_fmt=0x7f05026a;
public static final int groups_confirm_del_games_fmt=0x7f05026b;
public static final int group_cur_games=0x7f05026a;
public static final int group_name_fmt=0x7f050271;
public static final int group_new_games=0x7f05026b;
public static final int groups_confirm_del_fmt=0x7f05026c;
public static final int groups_confirm_del_games_fmt=0x7f05026d;
/** Used as the default name for remote players displayed within
the Game configure screen
*/
@ -1207,12 +1209,12 @@ public final class R {
public static final int info_title=0x7f0501bc;
/**
*/
public static final int inform_dict_diffdict_fmt=0x7f050254;
public static final int inform_dict_diffdict_fmt=0x7f050256;
/**
*/
public static final int inform_dict_diffversion_fmt=0x7f050252;
public static final int inform_dict_download=0x7f050255;
public static final int inform_dict_title=0x7f050253;
public static final int inform_dict_diffversion_fmt=0x7f050254;
public static final int inform_dict_download=0x7f050257;
public static final int inform_dict_title=0x7f050255;
/** Will new games, on default, randomly rearrange the start
order of players.
*/
@ -1249,9 +1251,9 @@ public final class R {
*/
public static final int invite_chooser_fmt=0x7f05018f;
public static final int invite_chooser_sms=0x7f050191;
public static final int invite_dict_missing_body_fmt=0x7f05025a;
public static final int invite_dict_missing_body_noname_fmt=0x7f05025b;
public static final int invite_dict_missing_title=0x7f050259;
public static final int invite_dict_missing_body_fmt=0x7f05025c;
public static final int invite_dict_missing_body_noname_fmt=0x7f05025d;
public static final int invite_dict_missing_title=0x7f05025b;
public static final int invite_host=0x7f05006f;
/** This is the body of the html version of the invitation. A URL
is created with parameters describing the game and
@ -1274,8 +1276,8 @@ public final class R {
The number of players missing is substituted for "%1$d".
*/
public static final int invite_msg_fmt=0x7f0500f8;
public static final int invite_multi_summary=0x7f0502d6;
public static final int invite_multi_title=0x7f0502d5;
public static final int invite_multi_summary=0x7f0502d8;
public static final int invite_multi_title=0x7f0502d7;
/** 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
@ -1291,7 +1293,7 @@ public final class R {
/**
*/
public static final int invite_sms_desc_fmt=0x7f050221;
public static final int invite_stays=0x7f0502da;
public static final int invite_stays=0x7f0502dc;
/** <string name="sms_or_email">Send invitation using SMS (texting) or
via email?</string>
<string name="nfc_or_email">Send invitation using NFC (Android
@ -1448,15 +1450,15 @@ public final class R {
different wordlists.)
*/
public static final int lang_label=0x7f0500cb;
public static final int lang_name_english=0x7f0502a5;
public static final int lang_name_fmt=0x7f0502b7;
public static final int lang_unknown=0x7f0502b8;
public static final int lang_name_english=0x7f0502a7;
public static final int lang_name_fmt=0x7f0502b9;
public static final int lang_unknown=0x7f0502ba;
public static final int langdict_label=0x7f0500cc;
public static final int list_group_default=0x7f050265;
public static final int list_group_delete=0x7f050263;
public static final int list_group_movedown=0x7f050267;
public static final int list_group_moveup=0x7f050266;
public static final int list_group_rename=0x7f050264;
public static final int list_group_default=0x7f050267;
public static final int list_group_delete=0x7f050265;
public static final int list_group_movedown=0x7f050269;
public static final int list_group_moveup=0x7f050268;
public static final int list_group_rename=0x7f050266;
/** ############## menu items ##############
pulls up dialog to configure the selected game
*/
@ -1485,13 +1487,13 @@ public final class R {
except for any configuration.
*/
public static final int list_item_reset=0x7f0500ac;
public static final int lmi_move_fmt=0x7f0502c4;
public static final int lmi_move_fmt=0x7f0502c6;
/** formatting for last move summary in notifications
*/
public static final int lmi_pass_fmt=0x7f0502c3;
public static final int lmi_phony_fmt=0x7f0502c6;
public static final int lmi_tiles_fmt=0x7f0502c7;
public static final int lmi_trade_fmt=0x7f0502c5;
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.
@ -1509,32 +1511,32 @@ public final class R {
/**
*/
public static final int loc_external=0x7f0500c2;
public static final int loc_filters_all=0x7f0502a1;
public static final int loc_filters_menu=0x7f0502a3;
public static final int loc_filters_modified=0x7f0502a4;
public static final int loc_filters_prompt=0x7f05029f;
public static final int loc_filters_screen=0x7f0502a2;
public static final int loc_fmts_mismatch=0x7f0502aa;
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=0x7f0500c1;
public static final int loc_item_check=0x7f0502a7;
public static final int loc_item_check=0x7f0502a9;
/** for loc item edit menu
*/
public static final int loc_item_clear=0x7f0502a6;
public static final int loc_item_copy_bless=0x7f0502a9;
public static final int loc_item_copy_eng=0x7f0502a8;
public static final int loc_lang_blessed=0x7f050299;
public static final int loc_lang_local=0x7f05029a;
public static final int loc_menu_xlate=0x7f050298;
public static final int loc_search_prompt=0x7f0502a0;
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_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=0x7f05007e;
public static final int logging_on_summary=0x7f05007f;
public static final int lookup_title=0x7f050294;
public static final int lookup_title=0x7f050296;
/**
*/
public static final int manual_owner_name=0x7f050222;
@ -1559,7 +1561,7 @@ public final class R {
/** text of menu that brings up the Settings (preferences) dialog
*/
public static final int menu_prefs=0x7f0500a2;
public static final int menu_rateme=0x7f050284;
public static final int menu_rateme=0x7f050286;
/**
*/
public static final int menu_toggle_values=0x7f050233;
@ -1575,11 +1577,11 @@ public final class R {
/** body of notification shown when invitation requires a
wordslist that's not installed
*/
public static final int missing_dict_detail=0x7f050258;
public static final int missing_dict_detail=0x7f05025a;
/** Title of notification shown when invitation requires a
wordslist that's not installed
*/
public static final int missing_dict_title=0x7f050257;
public static final int missing_dict_title=0x7f050259;
/** 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
@ -1647,22 +1649,22 @@ public final class R {
/** Text of progress indicator shown while check is being conducted
*/
public static final int msgs_progress=0x7f0500a4;
public static final int nag_body_fmt=0x7f0502c0;
public static final int nag_days_fmt=0x7f0502bf;
public static final int nag_hours_fmt=0x7f0502be;
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=0x7f05008f;
/** 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=0x7f0502bd;
public static final int nag_minutes_fmt=0x7f0502bf;
/** Nagging: title of notification reminder message
*/
public static final int nag_title=0x7f0502bc;
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=0x7f0502c1;
public static final int nag_warn_last_fmt=0x7f0502c3;
public static final int name_dict_fmt=0x7f050089;
public static final int nbs_port=0x7f050078;
/** text of checkbox. If this checkbox is checked, games created
@ -1682,10 +1684,10 @@ public final class R {
public static final int network_behavior_summary=0x7f050173;
/**
*/
public static final int new_app_avail=0x7f05024f;
public static final int new_app_avail=0x7f050251;
/**
*/
public static final int new_app_avail_fmt=0x7f05024e;
public static final int new_app_avail_fmt=0x7f050250;
/**
*/
public static final int new_bt_body_fmt=0x7f05020d;
@ -1697,14 +1699,14 @@ public final class R {
public static final int new_btmove_title=0x7f05020f;
/**
*/
public static final int new_dict_avail=0x7f05024c;
public static final int new_dict_avail=0x7f05024e;
/**
*/
public static final int new_dict_avail_fmt=0x7f05024d;
public static final int new_game=0x7f0502cd;
public static final int new_game_message=0x7f0502cf;
public static final int new_game_message_net=0x7f0502d0;
public static final int new_game_networked=0x7f0502ce;
public static final int new_dict_avail_fmt=0x7f05024f;
public static final int new_game=0x7f0502cf;
public static final int new_game_message=0x7f0502d1;
public static final int new_game_message_net=0x7f0502d2;
public static final int new_game_networked=0x7f0502d0;
/**
*/
public static final int new_move_body=0x7f050210;
@ -1717,7 +1719,7 @@ public final class R {
/**
*/
public static final int new_sms_title=0x7f05021e;
public static final int new_xlations_fmt=0x7f05029b;
public static final int new_xlations_fmt=0x7f05029d;
/**
###########################################################
# :Dialogs:
@ -1782,8 +1784,8 @@ public final class R {
/**
*/
public static final int newgame_sms_header=0x7f05021c;
public static final int newgroup_label=0x7f050262;
public static final int nfc_just_tap=0x7f0502db;
public static final int newgroup_label=0x7f050264;
public static final int nfc_just_tap=0x7f0502dd;
public static final int nfc_to_self=0x7f050092;
/** Title of dialog for renaming game (triggered by selecting
list_item_rename)
@ -1830,7 +1832,7 @@ public final class R {
you get this error message
*/
public static final int no_games_to_refresh=0x7f0500a5;
public static final int no_market=0x7f050285;
public static final int no_market=0x7f050287;
/** displayed when you long-tap a scoreboard entry and there's no
most recent score to show
*/
@ -1853,7 +1855,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=0x7f050278;
public static final int not_again_backclears=0x7f05027a;
/**
*/
public static final int not_again_browse=0x7f0501f9;
@ -1881,7 +1883,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=0x7f0502b9;
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.
@ -1891,8 +1893,8 @@ public final class R {
Board screen
*/
public static final int not_again_flip=0x7f0501cd;
public static final int not_again_fmt_expl=0x7f0502ab;
public static final int not_again_hidenewgamebuttons=0x7f0502d9;
public static final int not_again_fmt_expl=0x7f0502ad;
public static final int not_again_hidenewgamebuttons=0x7f0502db;
/** Shown when you tap the next hint button on the toolbar of the
main Board screen
*/
@ -1916,8 +1918,8 @@ 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=0x7f050277;
public static final int not_again_studycopy=0x7f050293;
public static final int not_again_newselect=0x7f050279;
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.
@ -1952,7 +1954,7 @@ public final class R {
the main Board screen
*/
public static final int not_again_zoom=0x7f0501ce;
public static final int note_none=0x7f0502b5;
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.)
@ -1973,8 +1975,8 @@ public final class R {
device
*/
public static final int notify_vibrate=0x7f05017d;
public static final int nplayers_fmt=0x7f0502d3;
public static final int nplayers_prompt=0x7f0502d2;
public static final int nplayers_fmt=0x7f0502d5;
public static final int nplayers_prompt=0x7f0502d4;
/** 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
@ -1984,13 +1986,13 @@ public final class R {
games as well.
*/
public static final int password_label=0x7f0500ef;
public static final int paste_done_fmt=0x7f05028d;
public static final int paste_done_fmt=0x7f05028f;
/** <string name="not_again_sms_ready">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.</string>
*/
public static final int pct_suffix=0x7f050283;
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.)
@ -2147,8 +2149,8 @@ public final class R {
public static final int prefs_names_summary=0x7f050135;
/** Used when prev player's name can't be looked up
*/
public static final int prev_player=0x7f0502c2;
public static final int progress_title=0x7f0502b3;
public static final int prev_player=0x7f0502c4;
public static final int progress_title=0x7f0502b5;
/**
*/
public static final int prompt_max_len=0x7f0501ff;
@ -2193,24 +2195,24 @@ public final class R {
problems with the current game.
*/
public static final int relay_alert=0x7f0500ff;
public static final int relay_alert_title=0x7f050276;
public static final int relay_alert_title=0x7f050278;
public static final int relay_host=0x7f05007b;
public static final int relay_port=0x7f050087;
/** Shown in toast when relaunching after switching dicts
*/
public static final int reload_new_dict_fmt=0x7f050256;
public static final int remote_digesting=0x7f0502ad;
public static final int remote_empty=0x7f0502ac;
public static final int reload_new_dict_fmt=0x7f050258;
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=0x7f0500ea;
public static final int remote_no_net=0x7f0502ae;
public static final int remote_no_net=0x7f0502b0;
/**
*/
public static final int remote_undone=0x7f05022b;
public static final int rename_group_label=0x7f05026c;
public static final int rename_group_label=0x7f05026e;
/** text within rename dialog (triggered by selecting
list_item_rename)
*/
@ -2247,9 +2249,9 @@ public final class R {
/** title for popup of public rooms found on server
*/
public static final int room_public_prompt=0x7f0500d1;
public static final int sel_games_fmt=0x7f050279;
public static final int sel_groups_fmt=0x7f05027a;
public static final int sel_items_fmt=0x7f050297;
public static final int sel_games_fmt=0x7f05027b;
public static final int sel_groups_fmt=0x7f05027c;
public static final int sel_items_fmt=0x7f050299;
/**
############################################################
# :Dialogs:
@ -2261,7 +2263,7 @@ public final class R {
possible answers are the three button text strings below.
*/
public static final int set_default_message_fmt=0x7f0500bc;
public static final int set_pref=0x7f0502d8;
public static final int set_pref=0x7f0502da;
/** text of separator marking out other-setting area of the dialog
*/
public static final int settings_label=0x7f0500d4;
@ -2273,8 +2275,8 @@ public final class R {
/** clarification of above
*/
public static final int show_arrow_summary=0x7f050153;
public static final int show_remote=0x7f0502b1;
public static final int show_wordlist_browser=0x7f050275;
public static final int show_remote=0x7f0502b3;
public static final int show_wordlist_browser=0x7f050277;
/** 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)
@ -2283,19 +2285,19 @@ public final class R {
/** explanation of the above
*/
public static final int skip_confirm_turn_summary=0x7f050169;
public static final int slmenu_clear_sel=0x7f05028b;
public static final int slmenu_copy_sel=0x7f05028a;
public static final int slmenu_deselect_all=0x7f050296;
public static final int slmenu_select_all=0x7f050295;
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;
/** Title of phone number picker during invitation to a game via SMS
*/
public static final int sms_invite_title=0x7f050216;
public static final int sms_ready_text=0x7f050282;
public static final int sms_ready_text=0x7f050284;
/**
*/
public static final int smsname_label=0x7f050218;
public static final int square_tiles=0x7f050272;
public static final int square_tiles_summary=0x7f050273;
public static final int square_tiles=0x7f050274;
public static final int square_tiles_summary=0x7f050275;
/** Used in formatting moves and history
*/
public static final int str_bonus_all=0x7f050128;
@ -2373,7 +2375,7 @@ public final class R {
public static final int str_remote_moved_fmt=0x7f05011d;
/** Used in formatting final scores display
*/
public static final int str_resigned=0x7f050250;
public static final int str_resigned=0x7f050252;
/**
############################################################
# Board info/error dialog messages
@ -2416,7 +2418,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=0x7f050251;
public static final int str_winner=0x7f050253;
/** Used in formatting game history (not move summaries since
information about the current rack is hidden then)
*/
@ -2463,10 +2465,10 @@ public final class R {
/** Used in formatting exchange move summaries
*/
public static final int strss_traded_for_fmt=0x7f050123;
public static final int study_langpick=0x7f050290;
public static final int study_no_lang_fmt=0x7f050291;
public static final int study_no_lists=0x7f050292;
public static final int studylist_title_fmt=0x7f05028f;
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.
@ -2516,8 +2518,8 @@ public final class R {
/** explanation of the above
*/
public static final int summary_sort_tiles=0x7f05016b;
public static final int summary_studyon=0x7f050288;
public static final int summary_thumbsize=0x7f05027b;
public static final int summary_studyon=0x7f05028a;
public static final int summary_thumbsize=0x7f05027d;
/**
*/
public static final int summary_wait_guest=0x7f050209;
@ -2528,7 +2530,7 @@ public final class R {
part of the game and that the user should ignore it.
*/
public static final int tell_unused=0x7f05013b;
public static final int thumb_off=0x7f05027c;
public static final int thumb_off=0x7f05027e;
/** color of the tiles' background
*/
public static final int tile_back=0x7f05015d;
@ -2547,7 +2549,7 @@ public final class R {
/** Title of preference in which you select which addressing
modes network games will use to communicate
*/
public static final int title_addrs_pref=0x7f0502cc;
public static final int title_addrs_pref=0x7f0502ce;
/**
############################################################
# :Screens:
@ -2597,13 +2599,13 @@ public final class R {
i.e. after ever move.
*/
public static final int title_sort_tiles=0x7f05016a;
public static final int title_studyon=0x7f050287;
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=0x7f0502b2;
public static final int use_defaults=0x7f0502d1;
public static final int update_dicts_fmt=0x7f0502b4;
public static final int use_defaults=0x7f0502d3;
/** text of checkbox controlling whether there's a game timer
*/
public static final int use_timer=0x7f0500d7;
@ -2611,7 +2613,7 @@ public final class R {
line in a game summary. The \u0020 is a space in xml.
*/
public static final int vs_join=0x7f050127;
public static final int warn_no_comms=0x7f0502de;
public static final int warn_no_comms=0x7f0502e0;
/**
*/
public static final int warn_nomobile_fmt=0x7f050223;
@ -2624,8 +2626,8 @@ public final class R {
/**
*/
public static final int word_search_hint=0x7f0501f1;
public static final int xlations_enabled_summary=0x7f05029d;
public static final int xlations_enabled_title=0x7f05029c;
public static final int xlations_enabled_summary=0x7f05029f;
public static final int xlations_enabled_title=0x7f05029e;
public static final int xlations_locale=0x7f05008d;
/** Empty in English, this should contain the name of the
translator/creator of the strings.xml file for this

View file

@ -1983,10 +1983,13 @@
<!-- -->
<string name="warn_sms_disabled">Play via SMS is currently
disabled, so no moves will be sent for this game.\n\nIf you want to
enable play via SMS, go to Settings->Network game settings.
disabled. No moves will be sent via SMS for this game.\n\nYou can
enable play via SMS now, or later.
</string>
<string name="button_enable_sms">Enable SMS</string>
<string name="button_later">Later</string>
<!-- -->
<string name="gamel_menu_checkupdates">Check for updates</string>
<string name="checkupdates_none_found">Everything is up-to-date.</string>

View file

@ -1707,9 +1707,11 @@
<string name="confirm_sms_willpay">Sey: I\'ll yap lla reirrac segrahc</string>
<!-- -->
<string name="warn_sms_disabled">Yalp aiv SMS si yltnerruc
,delbasid os on sevom lliw eb tnes rof siht emag.\n\nFi uoy tnaw ot
elbane yalp aiv ,SMs og ot Krowten&gt;-sGnittes emag sgnittes.
delbasid. On sevom lliw eb tnes aiv SMS rof siht emag.\n\nUoy nac
elbane yalp aiv SMS ,won ro retal.
</string>
<string name="button_enable_sms">Elbane SMS</string>
<string name="button_later">Retal</string>
<!-- -->
<string name="gamel_menu_checkupdates">Kcehc rof setadpu</string>
<string name="checkupdates_none_found">Gnihtyreve si etad-ot-pu.</string>

View file

@ -1707,9 +1707,11 @@
<string name="confirm_sms_willpay">YES: I\'LL PAY ALL CARRIER CHARGES</string>
<!-- -->
<string name="warn_sms_disabled">PLAY VIA SMS IS CURRENTLY
DISABLED, SO NO MOVES WILL BE SENT FOR THIS GAME.\n\nIF YOU WANT TO
ENABLE PLAY VIA SMS, GO TO SETTINGS-&gt;NETWORK GAME SETTINGS.
DISABLED. NO MOVES WILL BE SENT VIA SMS FOR THIS GAME.\n\nYOU CAN
ENABLE PLAY VIA SMS NOW, OR LATER.
</string>
<string name="button_enable_sms">ENABLE SMS</string>
<string name="button_later">LATER</string>
<!-- -->
<string name="gamel_menu_checkupdates">CHECK FOR UPDATES</string>
<string name="checkupdates_none_found">EVERYTHING IS UP-TO-DATE.</string>

View file

@ -88,11 +88,8 @@ public class ConnViaViewLayout extends LinearLayout {
public void onCheckedChanged( CompoundButton buttonView,
boolean isChecked ) {
if ( isChecked ) {
if ( enabledElseWarn( typf ) ) {
m_curSet.add( typf );
} else {
buttonView.setChecked( false );
}
enabledElseWarn( typf );
m_curSet.add( typf );
} else {
m_curSet.remove( typf );
if ( null != m_emptyWarner && 0 == m_curSet.size()) {
@ -104,23 +101,21 @@ public class ConnViaViewLayout extends LinearLayout {
}
}
private boolean enabledElseWarn( CommsConnType typ )
private void enabledElseWarn( CommsConnType typ )
{
boolean result = true;
boolean enabled = true;
Context context = getContext();
switch( typ ) {
case COMMS_CONN_SMS:
result = XWPrefs.getSMSEnabled( context );
enabled = XWPrefs.getSMSEnabled( context );
break;
case COMMS_CONN_BT:
result = BTService.BTEnabled();
enabled = BTService.BTEnabled();
}
if ( !result && null != m_disabledWarner ) {
if ( !enabled && null != m_disabledWarner ) {
m_disabledWarner.warnDisabled( typ );
}
return result;
}
private static CommsConnTypeSet getSupported( Context context )

View file

@ -472,6 +472,11 @@ public class DelegateBase implements DlgClickNotify,
m_dlgDelegate.showDictGoneFinish();
}
protected void showSMSEnableDialog( Action action )
{
m_dlgDelegate.showSMSEnableDialog( action );
}
//////////////////////////////////////////////////
// MultiService.MultiEventListener interface
//////////////////////////////////////////////////

View file

@ -32,6 +32,7 @@ import android.os.Bundle;
import android.os.Handler;
import android.view.View;
import android.widget.Button;
import android.widget.Spinner;
import android.widget.TextView;
import android.widget.Toast;
import java.util.ArrayList;
@ -104,6 +105,9 @@ public class DlgDelegate {
SL_CLEAR_ACTION,
SL_COPY_ACTION,
// clasify me
ENABLE_SMS_ASK,
ENABLE_SMS_DO,
__LAST
}
@ -215,6 +219,9 @@ public class DlgDelegate {
case DLG_DICTGONE:
dialog = createDictGoneDialog();
break;
case DIALOG_ENABLESMS:
dialog = createEnableSMSDialog( state, dlgID );
break;
}
return dialog;
}
@ -256,6 +263,16 @@ public class DlgDelegate {
showDialog( DlgID.DIALOG_ABOUT );
}
// 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 )
{
DlgState state = new DlgState( DlgID.DIALOG_ENABLESMS, action );
addState( state );
showDialog( DlgID.DIALOG_ENABLESMS );
}
public void showNotAgainDlgThen( String msg, int prefsKey,
final Action action, ActionPair more,
final Object[] params )
@ -649,6 +666,32 @@ public class DlgDelegate {
return dialog;
}
private Dialog createEnableSMSDialog( final DlgState state, DlgID dlgID )
{
final View layout = LocUtils.inflate( m_activity, R.layout.confirm_sms );
DialogInterface.OnClickListener lstnr =
new DialogInterface.OnClickListener() {
public void onClick( DialogInterface dlg, int item ) {
Spinner reasons = (Spinner)
layout.findViewById( R.id.confirm_sms_reasons );
boolean enabled = 0 < reasons.getSelectedItemPosition();
Object[] params = { new Boolean(enabled), };
m_clickCallback.dlgButtonClicked( state.m_action,
AlertDialog.BUTTON_POSITIVE,
params );
}
};
Dialog dialog = LocUtils.makeAlertBuilder( m_activity )
.setTitle( R.string.confirm_sms_title )
.setView( layout )
.setPositiveButton( R.string.button_ok, lstnr )
.create();
Utils.setRemoveOnDismiss( m_activity, dialog, dlgID );
return dialog;
}
private OnClickListener mkCallbackClickListener( final DlgState state,
final NotAgainView naView )
{

View file

@ -29,6 +29,7 @@ public enum DlgID {
, DIALOG_ABOUT
, DIALOG_NOTAGAIN
, DIALOG_OKONLY
, DIALOG_ENABLESMS
, DICT_OR_DECLINE
, DLG_CONNSTAT
, DLG_DELETED
@ -46,7 +47,7 @@ public enum DlgID {
, NEW_GROUP
, NO_NAME_FOUND
, PLAYER_EDIT
, CONFIRM_SMS
, ENABLE_SMS
, QUERY_ENDGAME
, RENAME_GAME
, RENAME_GROUP

View file

@ -334,8 +334,9 @@ public class GameConfigDelegate extends DelegateBase
switch( typ ) {
case COMMS_CONN_SMS:
showConfirmThen( R.string.warn_sms_disabled,
R.string.button_go_settings,
Action.SMS_CONFIG_ACTION );
R.string.button_enable_sms,
R.string.button_later,
Action.ENABLE_SMS_ASK );
break;
case COMMS_CONN_BT:
showOKOnlyDialog( R.string.enable_bt_first );
@ -651,6 +652,15 @@ public class GameConfigDelegate extends DelegateBase
}
finish();
break;
case ENABLE_SMS_ASK:
showSMSEnableDialog( Action.ENABLE_SMS_DO );
break;
case ENABLE_SMS_DO:
boolean enabled = (Boolean)params[0];
if ( enabled ) {
XWPrefs.setSMSEnabled( m_activity, true );
}
break;
default:
callSuper = true;
}

View file

@ -27,6 +27,7 @@ import android.os.Bundle;
import android.preference.PreferenceActivity;
import org.eehouse.android.xw4.loc.LocUtils;
import org.eehouse.android.xw4.DlgDelegate.Action;
public class PrefsActivity extends PreferenceActivity implements Delegator {
@ -92,6 +93,11 @@ public class PrefsActivity extends PreferenceActivity implements Delegator {
m_dlgt.showOKOnlyDialog( msgID );
}
protected void showSMSEnableDialog( Action action )
{
m_dlgt.showSMSEnableDialog( action );
}
//////////////////////////////////////////////////////////////////////
// Delegator interface
//////////////////////////////////////////////////////////////////////

View file

@ -20,6 +20,7 @@
package org.eehouse.android.xw4;
import android.app.AlertDialog;
import android.app.Dialog;
import android.content.DialogInterface;
import android.content.Intent;
@ -35,6 +36,7 @@ import android.view.View;
import android.widget.Button;
import java.io.File;
import org.eehouse.android.xw4.DlgDelegate.Action;
import org.eehouse.android.xw4.loc.LocUtils;
public class PrefsDelegate extends DelegateBase
@ -106,9 +108,6 @@ public class PrefsDelegate extends DelegateBase
}
};
break;
case CONFIRM_SMS:
dialog = SMSCheckBoxPreference.onCreateDialog( m_activity, id );
break;
}
if ( null == dialog && null != lstnr ) {
@ -205,6 +204,21 @@ public class PrefsDelegate extends DelegateBase
}
}
@Override
public void dlgButtonClicked( Action action, int button, Object[] params )
{
if ( AlertDialog.BUTTON_POSITIVE == button
&& action == Action.ENABLE_SMS_DO ) {
boolean enabled = (Boolean)params[0];
if ( enabled ) {
XWPrefs.setSMSEnabled( m_activity, true );
SMSCheckBoxPreference.setChecked();
}
} else {
super.dlgButtonClicked( action, button, params );
}
}
private void relaunch()
{
PreferenceManager.setDefaultValues( m_activity, R.xml.xwprefs,

View file

@ -21,16 +21,12 @@
package org.eehouse.android.xw4;
import android.app.Activity;
import android.app.AlertDialog;
import android.app.Dialog;
import android.content.Context;
import android.content.DialogInterface;
import android.preference.CheckBoxPreference;
import android.util.AttributeSet;
import android.view.View;
import android.widget.Spinner;
import org.eehouse.android.xw4.loc.LocUtils;
import org.eehouse.android.xw4.DlgDelegate.Action;
public class SMSCheckBoxPreference extends CheckBoxPreference {
@ -60,9 +56,16 @@ public class SMSCheckBoxPreference extends CheckBoxPreference {
{
if ( checked && m_attached && m_context instanceof PrefsActivity ) {
PrefsActivity activity = (PrefsActivity)m_context;
activity.showDialog( DlgID.CONFIRM_SMS.ordinal() );
activity.showSMSEnableDialog( Action.ENABLE_SMS_DO );
} else {
super_setChecked( checked );
super.setChecked( checked );
}
}
protected static void setChecked()
{
if ( null != s_this ) {
s_this.super_setChecked( true );
}
}
@ -71,34 +74,4 @@ public class SMSCheckBoxPreference extends CheckBoxPreference {
{
super.setChecked( checked );
}
public static Dialog onCreateDialog( final Activity activity, final int id )
{
final View layout = LocUtils.inflate( activity, R.layout.confirm_sms );
DialogInterface.OnClickListener lstnr =
new DialogInterface.OnClickListener() {
public void onClick( DialogInterface dlg, int item ) {
Spinner reasons = (Spinner)
layout.findViewById( R.id.confirm_sms_reasons );
if ( 0 < reasons.getSelectedItemPosition() ) {
s_this.super_setChecked( true );
}
}
};
AlertDialog.Builder ab = LocUtils.makeAlertBuilder( activity )
.setTitle( R.string.confirm_sms_title )
.setView( layout )
.setNegativeButton( R.string.button_ok, lstnr );
Dialog dialog = ab.create();
dialog.setOnDismissListener( new DialogInterface.OnDismissListener() {
public void onDismiss( DialogInterface di ) {
activity.removeDialog( id );
}
} );
return dialog;
}
}

View file

@ -43,6 +43,11 @@ public class XWPrefs {
return getPrefsBoolean( context, R.string.key_enable_sms, false );
}
public static void setSMSEnabled( Context context, boolean enabled )
{
setPrefsBoolean( context, R.string.key_enable_sms, enabled );
}
public static boolean getDebugEnabled( Context context )
{
return getPrefsBoolean( context, R.string.key_enable_debug, false );