summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTreeHugger Robot <treehugger-gerrit@google.com>2017-07-27 02:07:35 +0000
committerAndroid (Google) Code Review <android-gerrit@google.com>2017-07-27 02:07:35 +0000
commit332808df52e76df74337d6efb9c2835b5e714bb5 (patch)
tree45d02c8c444b14a11d2cda6a9704758ee72ade4e
parentdbe6451648a736c7d1c6affd6fe00798cd16e64f (diff)
parentc538c153917be7544ed5ec11ec393f35511c4ced (diff)
downloadandroid_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.cc29
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);
}