diff options
author | TreeHugger Robot <treehugger-gerrit@google.com> | 2017-07-27 02:07:35 +0000 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2017-07-27 02:07:35 +0000 |
commit | 332808df52e76df74337d6efb9c2835b5e714bb5 (patch) | |
tree | 45d02c8c444b14a11d2cda6a9704758ee72ade4e | |
parent | dbe6451648a736c7d1c6affd6fe00798cd16e64f (diff) | |
parent | c538c153917be7544ed5ec11ec393f35511c4ced (diff) | |
download | android_system_bt-332808df52e76df74337d6efb9c2835b5e714bb5.tar.gz android_system_bt-332808df52e76df74337d6efb9c2835b5e714bb5.tar.bz2 android_system_bt-332808df52e76df74337d6efb9c2835b5e714bb5.zip |
Merge "Remove unwanted space characters from dialing number" into oc-dr1-dev
-rw-r--r-- | bta/ag/bta_ag_cmd.cc | 29 |
1 files changed, 25 insertions, 4 deletions
diff --git a/bta/ag/bta_ag_cmd.cc b/bta/ag/bta_ag_cmd.cc index 779f005ff..952e3cb67 100644 --- a/bta/ag/bta_ag_cmd.cc +++ b/bta/ag/bta_ag_cmd.cc @@ -613,6 +613,19 @@ void bta_ag_at_hsp_cback(tBTA_AG_SCB* p_scb, uint16_t command_id, (*bta_ag_cb.p_cback)(command_id, (tBTA_AG*)&val); } +static void remove_spaces(char* str) { + char* dest_str = str; + + while (*str) { + if (*str == ' ') { + str++; + } else { + *dest_str++ = *str++; + } + } + *dest_str = '\0'; +} + /******************************************************************************* * * Function bta_ag_find_empty_hf_ind) @@ -874,12 +887,16 @@ void bta_ag_at_hfp_cback(tBTA_AG_SCB* p_scb, uint16_t cmd, uint8_t arg_type, ** Let application decide whether to send OK or ERROR*/ /* if mem dial cmd, make sure string contains only digits */ - if (p_arg[0] == '>') { - if (!utl_isintstr(p_arg + 1)) { + if (val.str[0] == '>') { + /* Some car kits may add some unwanted space characters in the + ** input string. This workaround will trim the unwanted chars. */ + remove_spaces(val.str + 1); + + if (!utl_isintstr(val.str + 1)) { event = 0; bta_ag_send_error(p_scb, BTA_AG_ERR_INV_CHAR_IN_DSTR); } - } else if (p_arg[0] == 'V') /* ATDV : Dial VoIP Call */ + } else if (val.str[0] == 'V') /* ATDV : Dial VoIP Call */ { /* We do not check string. Code will be added later if needed. */ if (!((p_scb->peer_features & BTA_AG_PEER_FEAT_VOIP) && @@ -891,7 +908,11 @@ void bta_ag_at_hfp_cback(tBTA_AG_SCB* p_scb, uint16_t cmd, uint8_t arg_type, /* If dial cmd, make sure string contains only dial digits ** Dial digits are 0-9, A-C, *, #, + */ else { - if (!utl_isdialstr(p_arg)) { + /* Some car kits may add some unwanted space characters in the + ** input string. This workaround will trim the unwanted chars. */ + remove_spaces(val.str); + + if (!utl_isdialstr(val.str)) { event = 0; bta_ag_send_error(p_scb, BTA_AG_ERR_INV_CHAR_IN_DSTR); } |