diff options
Diffstat (limited to 'fw/fe310')
-rw-r--r-- | fw/fe310/eos/net/cell.c | 14 | ||||
-rw-r--r-- | fw/fe310/phone/sms.c | 22 |
2 files changed, 24 insertions, 12 deletions
diff --git a/fw/fe310/eos/net/cell.c b/fw/fe310/eos/net/cell.c index b0eb475..b560f52 100644 --- a/fw/fe310/eos/net/cell.c +++ b/fw/fe310/eos/net/cell.c @@ -213,9 +213,17 @@ int eos_cell_sms_send(char *num, char *text, unsigned char *buffer, int sync) { async = !sync; } buffer[0] = EOS_CELL_MTYPE_SMS | EOS_CELL_MTYPE_SMS_MSG; - buffer[1] = (*num == '+' ? EOS_CELL_SMS_ADDRTYPE_INTL : EOS_CELL_SMS_ADDRTYPE_OTHER); - buffer[2] = num_len; - len = 3; + buffer[1] = 0; + buffer[2] = 0; + if (*num == '+') { + buffer[3] = EOS_CELL_SMS_ADDRTYPE_INTL; + num++; + num_len--; + } else { + buffer[3] = EOS_CELL_SMS_ADDRTYPE_OTHER; + } + buffer[4] = num_len; + len = 5; strcpy(buffer + len, num); len += num_len; strcpy(buffer + len, text); diff --git a/fw/fe310/phone/sms.c b/fw/fe310/phone/sms.c index d2819c9..2594464 100644 --- a/fw/fe310/phone/sms.c +++ b/fw/fe310/phone/sms.c @@ -33,7 +33,8 @@ static void handle_cell_sms(unsigned char type, unsigned char *buffer, uint16_t APP_LOG(APP_LOG_ERR, "SMS PARSE ERR:%d\n", rv); break; } - APP_LOG(APP_LOG_DEBUG, "SMS From:%s\n%s\n", num, text); + APP_LOG(APP_LOG_DEBUG, "SMS From:%s\n", num); + APP_LOG(APP_LOG_DEBUG, "%s\n", text); break; } } @@ -58,21 +59,24 @@ void sms_init(void) { int sms_app(EVEWindow *window, EVEViewStack *stack) { EVEFormSpec spec[] = { { - .label.title = "Text:", + .label.title = "To:", .widget.type = EVE_WIDGET_TYPE_STR, - .widget.tspec.str.str_size = EOS_CELL_MAX_SMS_TEXT + 1, + .widget.tspec.str.str_size = EOS_CELL_MAX_DIAL_STR + 1, }, APP_SPACERW(APP_SCREEN_W, 50), { - .label.title = "Phone:", + .label.title = "Text:", + .label.g.w = APP_SCREEN_W, - .widget.type = EVE_WIDGET_TYPE_STR, - .widget.tspec.str.str_size = EOS_CELL_MAX_DIAL_STR + 1, + .widget.type = EVE_WIDGET_TYPE_TEXT, + .widget.g.w = APP_SCREEN_W, + .widget.tspec.text.text_size = EOS_CELL_MAX_SMS_TEXT + 1, + .widget.tspec.text.line_size = 5, }, }; - EVEPage *page = eve_form_create(window, stack, spec, APP_SPEC_SIZE(spec), NULL, sms_close); + EVEPage *page = eve_form_create(window, stack, spec, APP_SPEC_SIZE(spec), sms_uievt, sms_close); if (page == NULL) { APP_LOG(APP_LOG_ERR, "OUT OF MEMORY\n"); return EVE_ERR_NOMEM; @@ -87,8 +91,8 @@ int sms_uievt(EVEPage *page, uint16_t evt, void *param) { switch (evt) { case EVE_UIEVT_WIDGET_FOCUS_OUT: { if (param == eve_page_widget(page, 1)) { - EVEStrWidget *num = param; - EVEStrWidget *text = (EVEStrWidget *)eve_page_widget(page, 0); + EVEStrWidget *num = (EVEStrWidget *)eve_page_widget(page, 0); + EVEStrWidget *text = param; send(num->str, text->str); } |