Changeset 1552

Show
Ignore:
Timestamp:
02/07/07 13:47:06
Author:
djcb
Message:

* update TnyMaemoDevice?

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/ChangeLog

    r1548 r1552  
     12007-02-06  Dirk-Jan C. Binnema <dirk-jan.binnema@nokia.com> 
     2 
     3        * update TnyMaemoDevice 
     4 
    152007-02-06  Philip Van Hoof  <pvanhoof@gnome.org> 
    26 
  • trunk/libtinymail-maemo/tny-maemo-device.c

    r1509 r1552  
    2121#include <glib.h> 
    2222#include <glib-object.h> 
    23 #include <glib/gi18n-lib.h> 
    2423#include <tny-maemo-device.h> 
    2524#include <coniciap.h> 
     
    3332        ConIcConnection *cnx; 
    3433        gboolean        is_online; 
     34        const gchar     *iap; 
    3535} TnyMaemoDevicePriv; 
    3636 
     
    4040 
    4141static void  
    42 tny_maemo_device_reset (TnyDevice *self) 
    43 
    44         //TnyMaemoDevicePriv *priv = TNY_MAEMO_DEVICE_GET_PRIVATE (self); 
    45         /* FIXME: hmm... what to do here? */ 
    46 
    47  
    48  
    49 static void 
    50 on_connection_event (ConIcConnection *self, ConIcConnectionEvent *event, gpointer user_data) 
     42tny_maemo_device_reset (TnyDevice *device) 
     43
     44        /* intentionally left blank */ 
     45
     46 
     47 
     48static void 
     49on_connection_event (ConIcConnection *cnx, ConIcConnectionEvent *event, gpointer user_data) 
    5150{ 
    5251        TnyMaemoDevice *device;  
    5352        TnyMaemoDevicePriv *priv; 
    54          
    55         g_return_if_fail (event); 
     53        gboolean is_online; 
     54 
     55        g_return_if_fail (CON_IC_IS_CONNECTION(cnx)); 
    5656        g_return_if_fail (user_data); 
    5757 
    5858        device = TNY_MAEMO_DEVICE(user_data); 
    5959        priv   = TNY_MAEMO_DEVICE_GET_PRIVATE (device); 
    60  
    6160         
    6261        switch (con_ic_connection_event_get_error(event)) { 
     
    7776 
    7877        switch (con_ic_connection_event_get_status(event)) { 
    79                  
    8078        case CON_IC_STATUS_CONNECTED: 
    81                 priv->is_online = TRUE; 
    82                 g_signal_emit (device, tny_device_signals [TNY_DEVICE_CONNECTION_CHANGED], 
    83                                0, TRUE); 
     79                is_online = TRUE; 
    8480                break; 
    8581        case CON_IC_STATUS_DISCONNECTED:                 
    86                 priv->is_online = FALSE; 
    87                 g_signal_emit (device, tny_device_signals [TNY_DEVICE_CONNECTION_CHANGED], 
    88                                0, FALSE); 
     82                is_online = FALSE; 
    8983                break; 
    9084        case CON_IC_STATUS_DISCONNECTING: 
    91                 priv->is_online = FALSE; 
     85                is_online = FALSE; 
    9286                break; 
    9387        default: 
    9488                g_return_if_reached (); /* should not happen */ 
    9589        } 
    96 
    97  
     90 
     91        if (is_online != priv->is_online) { /* was there a change? */ 
     92                priv->is_online = is_online; 
     93                g_signal_emit (device, tny_device_signals [TNY_DEVICE_CONNECTION_CHANGED], 
     94                               0, is_online); 
     95        } 
     96
    9897 
    9998 
     
    105104        g_return_if_fail (TNY_IS_DEVICE(self)); 
    106105        priv   = TNY_MAEMO_DEVICE_GET_PRIVATE (self); 
    107  
     106         
    108107        if (!priv->is_online)  
    109108                if (!con_ic_connection_connect (priv->cnx,CON_IC_CONNECT_FLAG_NONE)) 
     
    129128tny_maemo_device_is_online (TnyDevice *self) 
    130129{ 
    131         g_return_val_if_fail (TNY_IS_DEVICE(self), FALSE); 
    132          
    133         /* FIXME: get the info directly from iap? */ 
     130        g_return_val_if_fail (TNY_IS_DEVICE(self), FALSE);       
    134131        return TNY_MAEMO_DEVICE_GET_PRIVATE (self)->is_online; 
    135132} 
     133 
    136134 
    137135static void 
     
    168166        g_signal_connect (priv->cnx, "connection-event", 
    169167                          G_CALLBACK(on_connection_event), self); 
    170          
     168 
    171169        /* 
    172          * this will get us in connected state, but only if there is already a connection. 
     170         * this will get us in connected state only if there is already a connection. 
    173171         * thus, this will setup our state correctly when we receive the signals 
    174172         */ 
    175         if (!con_ic_connection_connect (priv->cnx,CON_IC_CONNECT_FLAG_AUTOMATICALLY_TRIGGERED)) 
    176                 g_warning ("could not send auto-connect dbus message"); 
    177          
     173        if (!con_ic_connection_connect (priv->cnx, 
     174                                        CON_IC_CONNECT_FLAG_AUTOMATICALLY_TRIGGERED)) 
     175                g_warning ("could not send connect dbus message"); 
     176 
    178177        return TNY_DEVICE (self); 
    179178} 
    180  
    181179 
    182180static void 
     
    186184        priv   = TNY_MAEMO_DEVICE_GET_PRIVATE (obj); 
    187185 
    188         con_ic_connection_disconnect (priv->cnx); 
    189         g_object_unref (priv->cnx); 
    190         priv->cnx = NULL; 
     186        if (priv->cnx) { 
     187                con_ic_connection_disconnect (priv->cnx); 
     188                g_object_unref (priv->cnx); 
     189                priv->cnx = NULL; 
     190        } 
    191191         
    192192        (*parent_class->finalize) (obj);