Ticket #1245: AddSMSClickCallHistory.patch

File AddSMSClickCallHistory.patch, 2.3 KB (added by erin_yueh@…, 11 years ago)

add SMS clicked in Call History

  • src/dialer/moko-history.c

     
    2020 */ 
    2121 
    2222#include <gtk/gtk.h> 
    23  
     23#include <dbus/dbus-glib.h> 
     24#include <dbus/dbus-glib-bindings.h> 
    2425#include <libjana-gtk/jana-gtk.h> 
    2526 
    2627#include <string.h> 
     
    4243#define HISTORY_CALL_INCOMING_ICON "moko-history-call-in" 
    4344#define HISTORY_CALL_OUTGOING_ICON "moko-history-call-out" 
    4445#define HISTORY_CALL_MISSED_ICON   "moko-history-call-missed" 
    45   
     46 
     47#define SMS_NAMESPACE "org.openmoko.OpenmokoMessages2" 
     48#define SMS_OBJECT "/org/openmoko/OpenmokoMessages2" 
     49 
    4650enum 
    4751{ 
    4852  CALL_INCOMING = 0, 
     
    136140static void 
    137141on_sms_clicked (GtkWidget *button, MokoHistory *history) 
    138142{ 
     143  DBusGConnection *conn; 
     144  DBusGProxy *proxy; 
     145  GError *err = NULL; 
     146  MokoHistoryPrivate *priv; 
     147  GtkTreeSelection *selection; 
     148  GtkTreeView *treeview; 
     149  GtkTreeIter iter; 
     150  GtkTreeModel *model; 
     151  gchar *number; 
     152   
    139153  g_debug ("sms clicked"); 
     154 
     155  g_return_if_fail (MOKO_IS_HISTORY (history)); 
     156  priv = history->priv; 
     157 
     158  treeview = GTK_TREE_VIEW (priv->treeview); 
     159  selection = gtk_tree_view_get_selection (treeview); 
     160  model = gtk_tree_view_get_model (treeview); 
     161 
     162  if (!gtk_tree_selection_get_selected (selection, &model, &iter)) 
     163    return; 
     164 
     165  gtk_tree_model_get (model, &iter, NUMBER_COLUMN, &number, -1); 
     166 
     167  g_debug ("send SMS to number: %s", number); 
     168 
     169  conn = dbus_g_bus_get (DBUS_BUS_SESSION, &err); 
     170  if (conn == NULL) 
     171  { 
     172    g_warning ("Failed to make DBus connection: %s", err->message); 
     173    g_error_free (err); 
     174    return; 
     175  } 
     176 
     177  proxy = dbus_g_proxy_new_for_name (conn, 
     178                                     SMS_NAMESPACE, 
     179                                     SMS_OBJECT, 
     180                                     SMS_NAMESPACE); 
     181  if (proxy == NULL) 
     182  { 
     183    g_warning ("Unable to get openmoko-messages2 object"); 
     184    return; 
     185  } 
     186 
     187  err = NULL; 
     188  dbus_g_proxy_call (proxy, "SendMessage", &err, 
     189                     G_TYPE_STRING, NULL, G_TYPE_STRING, number, 
     190                     G_TYPE_STRING, NULL, 
     191                     G_TYPE_INVALID, G_TYPE_INVALID); 
     192 
     193  if (err) 
     194  { 
     195    g_warning (err->message); 
     196    g_error_free (err); 
     197  } 
     198   
    140199} 
    141200 
    142201static void