Track errors when issueing phone calls

This commit is contained in:
Pierre Pronchery 2014-02-23 14:07:56 +01:00
parent 69e4644b7f
commit 719698a14e
2 changed files with 38 additions and 27 deletions

View File

@ -739,21 +739,23 @@ void phone_code_clear(Phone * phone)
/* contacts */
/* phone_contacts_call_selected */
void phone_contacts_call_selected(Phone * phone)
int phone_contacts_call_selected(Phone * phone)
{
int ret;
GtkTreeSelection * treesel;
GtkTreeIter iter;
gchar * number;
if((treesel = gtk_tree_view_get_selection(GTK_TREE_VIEW(
phone->co_view))) == NULL)
return;
return -1;
if(gtk_tree_selection_get_selected(treesel, NULL, &iter) != TRUE)
return;
return -1;
gtk_tree_model_get(GTK_TREE_MODEL(phone->co_store), &iter,
PHONE_CONTACT_COLUMN_NUMBER, &number, -1);
_phone_call_number(phone, number);
ret = _phone_call_number(phone, number);
g_free(number);
return ret;
}
@ -910,12 +912,16 @@ int phone_dialer_append(Phone * phone, char character)
/* phone_dialer_call */
void phone_dialer_call(Phone * phone, char const * number)
int phone_dialer_call(Phone * phone, char const * number)
{
/* FIXME check if it's either a name or number */
if(number == NULL)
{
if(phone->di_window == NULL)
return -1;
number = gtk_entry_get_text(GTK_ENTRY(phone->di_entry));
_phone_call_number(phone, number);
}
return _phone_call_number(phone, number);
}
@ -1202,24 +1208,26 @@ void phone_logs_append(Phone * phone, PhoneCallType type, char const * number)
/* phone_logs_call_selected */
void phone_logs_call_selected(Phone * phone)
int phone_logs_call_selected(Phone * phone)
/* XXX code duplication */
{
int ret;
GtkTreeSelection * treesel;
GtkTreeIter iter;
gchar * number = NULL;
if((treesel = gtk_tree_view_get_selection(GTK_TREE_VIEW(
phone->lo_view))) == NULL)
return;
return -1;
if(gtk_tree_selection_get_selected(treesel, NULL, &iter) != TRUE)
return;
return -1;
gtk_tree_model_get(GTK_TREE_MODEL(phone->lo_store), &iter,
PHONE_LOGS_COLUMN_NUMBER, &number, -1);
if(number == NULL)
return;
_phone_call_number(phone, number);
return -1;
ret = _phone_call_number(phone, number);
g_free(number);
return ret;
}
@ -1253,8 +1261,9 @@ void phone_logs_write_selected(Phone * phone)
/* messages */
/* phone_messages_call_selected */
void phone_messages_call_selected(Phone * phone)
int phone_messages_call_selected(Phone * phone)
{
int ret;
GtkWidget * view;
GtkTreeSelection * treesel;
GtkTreeIter iter;
@ -1262,16 +1271,17 @@ void phone_messages_call_selected(Phone * phone)
view = _phone_messages_get_view(phone);
if((treesel = gtk_tree_view_get_selection(GTK_TREE_VIEW(view))) == NULL)
return;
return -1;
if(gtk_tree_selection_get_selected(treesel, NULL, &iter) != TRUE)
return;
return -1;
_phone_messages_get_iter(phone, view, &iter);
gtk_tree_model_get(GTK_TREE_MODEL(phone->me_store), &iter,
PHONE_MESSAGE_COLUMN_NUMBER, &number, -1);
if(number == NULL)
return;
_phone_call_number(phone, number);
return -1;
ret = _phone_call_number(phone, number);
g_free(number);
return ret;
}
@ -1442,15 +1452,15 @@ void phone_messages_write(Phone * phone, char const * number, char const * text)
/* read */
/* phone_read_call */
void phone_read_call(Phone * phone)
int phone_read_call(Phone * phone)
{
char const * number;
if(phone->re_window == NULL)
return;
return -1;
if((number = gtk_label_get_text(GTK_LABEL(phone->re_number))) == NULL)
return;
_phone_call_number(phone, number);
return -1;
return _phone_call_number(phone, number);
}
@ -3439,8 +3449,9 @@ static int _phone_call_number(Phone * phone, char const * number)
{
if(number == NULL)
return -1;
modem_request_type(phone->modem, MODEM_REQUEST_CALL,
MODEM_CALL_TYPE_VOICE, number, 0);
if(modem_request_type(phone->modem, MODEM_REQUEST_CALL,
MODEM_CALL_TYPE_VOICE, number, 0) != 0)
return -1;
/* add a log entry */
phone_logs_append(phone, PHONE_CALL_TYPE_OUTGOING, number);
return 0;

View File

@ -55,7 +55,7 @@ void phone_code_clear(Phone * phone);
void phone_code_enter(Phone * phone);
/* contacts */
void phone_contacts_call_selected(Phone * phone);
int phone_contacts_call_selected(Phone * phone);
void phone_contacts_delete_selected(Phone * phone);
void phone_contacts_edit_selected(Phone * phone);
void phone_contacts_new(Phone * phone);
@ -66,7 +66,7 @@ void phone_contacts_write_selected(Phone * phone);
/* dialer */
int phone_dialer_append(Phone * phone, char character);
void phone_dialer_call(Phone * phone, char const * number);
int phone_dialer_call(Phone * phone, char const * number);
void phone_dialer_clear(Phone * phone);
void phone_dialer_hangup(Phone * phone);
@ -93,12 +93,12 @@ void phone_show_write(Phone * phone, gboolean show, ...);
/* logs */
void phone_logs_append(Phone * phone, PhoneCallType type, char const * number);
void phone_logs_call_selected(Phone * phone);
int phone_logs_call_selected(Phone * phone);
void phone_logs_clear(Phone * phone);
void phone_logs_write_selected(Phone * phone);
/* messages */
void phone_messages_call_selected(Phone * phone);
int phone_messages_call_selected(Phone * phone);
void phone_messages_delete_selected(Phone * phone);
void phone_messages_read_selected(Phone * phone);
void phone_messages_set(Phone * phone, unsigned int index, char const * number,
@ -113,7 +113,7 @@ int phone_unload(Phone * phone, char const * plugin);
void phone_unload_all(Phone * phone);
/* read */
void phone_read_call(Phone * phone);
int phone_read_call(Phone * phone);
void phone_read_delete(Phone * phone);
void phone_read_forward(Phone * phone);
void phone_read_reply(Phone * phone);