Changeset 3689


Ignore:
Timestamp:
12/19/07 13:29:45 (5 years ago)
Author:
chris
Message:
  • configure.ac: Add AC_GNU_SOURCE for basename(), add libnotify
  • src/phone-kit/Makefile.am: Add libnotify
  • src/phone-kit/dialer-main.c: (main): Initialise libnotify
  • src/phone-kit/moko-dialer.c: (moko_dialer_init): Use moko_notify_get_default()
  • src/phone-kit/moko-notify.c: (moko_notify_start), (moko_notify_stop), (moko_notify_init), (moko_notify_get_default):
  • src/phone-kit/moko-notify.h: Add moko_notify_get_default() to share MokoNotify? with other objects
  • src/phone-kit/moko-sms.c: (update_notification), (note_added_cb), (note_modified_cb), (note_removed_cb), (sms_store_opened_cb), (moko_sms_init): Add notifications with libnotify
Location:
trunk/src/target/OM-2007.2/applications/openmoko-dialer2
Files:
8 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/target/OM-2007.2/applications/openmoko-dialer2/ChangeLog

    r3561 r3689  
     12007-12-19  Chris Lord  <chris@openedhand.com> 
     2 
     3        * configure.ac: 
     4        Add AC_GNU_SOURCE for basename(), add libnotify 
     5 
     6        * src/phone-kit/Makefile.am: 
     7        Add libnotify 
     8 
     9        * src/phone-kit/dialer-main.c: (main): 
     10        Initialise libnotify 
     11 
     12        * src/phone-kit/moko-dialer.c: (moko_dialer_init): 
     13        Use moko_notify_get_default() 
     14 
     15        * src/phone-kit/moko-notify.c: (moko_notify_start), 
     16        (moko_notify_stop), (moko_notify_init), (moko_notify_get_default): 
     17        * src/phone-kit/moko-notify.h: 
     18        Add moko_notify_get_default() to share MokoNotify with other objects 
     19 
     20        * src/phone-kit/moko-sms.c: (update_notification), (note_added_cb), 
     21        (note_modified_cb), (note_removed_cb), (sms_store_opened_cb), 
     22        (moko_sms_init): 
     23        Add notifications with libnotify 
     24 
    1252007-12-04  Thomas Wood  <thomas@openedhand.com> 
    226 
  • trunk/src/target/OM-2007.2/applications/openmoko-dialer2/configure.ac

    r3481 r3689  
    1010AC_STDC_HEADERS 
    1111AC_PROG_LIBTOOL 
     12AC_GNU_SOURCE 
    1213 
    1314# base deps 
     
    2223 
    2324PKG_CHECK_MODULES(JANA, libjana libjana-ecal) 
     25PKG_CHECK_MODULES(NOTIFY, libnotify) 
    2426 
    2527old_cflags=$CFLAGS 
  • trunk/src/target/OM-2007.2/applications/openmoko-dialer2/src/phone-kit/Makefile.am

    r3553 r3689  
    11AM_CPPFLAGS = -DDATADIR=\"$(datadir)\" -DPKGDATADIR=\"$(pkgdatadir)\" 
    2 AM_CFLAGS = -Wall @DIALER_CFLAGS@ @JANA_CFLAGS@ 
     2AM_CFLAGS = -Wall @DIALER_CFLAGS@ @JANA_CFLAGS@ @NOTIFY_CFLAGS@ 
    33 
    44INCLUDES = -I$(top_srcdir)/src/common 
     
    1818        moko-mcc-dc.h 
    1919 
    20 phone_kit_LDADD = @DIALER_LIBS@ @JANA_LIBS@ $(top_srcdir)/src/common/libdialer-common.a 
     20phone_kit_LDADD = @DIALER_LIBS@ @JANA_LIBS@ @NOTIFY_LIBS@ $(top_srcdir)/src/common/libdialer-common.a 
    2121 
    2222 
  • trunk/src/target/OM-2007.2/applications/openmoko-dialer2/src/phone-kit/dialer-main.c

    r3553 r3689  
    1414 */ 
    1515 
     16#ifdef HAVE_CONFIG_H 
     17#  include <config.h> 
     18#endif 
     19 
    1620#include <stdio.h> 
    1721#include <stdlib.h> 
     22#include <string.h> 
    1823#include <gtk/gtk.h> 
    1924#include <dbus/dbus-glib.h> 
    2025#include <dbus/dbus-glib-bindings.h> 
    2126#include <glib-object.h> 
     27#include <libnotify/notify.h> 
    2228 
    2329#include "moko-network.h" 
     
    6571  GError *error = NULL; 
    6672  guint32 ret; 
     73  char *prog; 
    6774 
    6875  /* initialise type system */ 
     
    111118  /* Initialize Threading & GTK+ */ 
    112119  gtk_init (&argc, &argv); 
     120   
     121  /* Initialise libnotify */ 
     122  notify_init (basename (argv[0])); 
    113123 
    114124  /* Create the PhoneKit objects */ 
  • trunk/src/target/OM-2007.2/applications/openmoko-dialer2/src/phone-kit/moko-dialer.c

    r3553 r3689  
    812812 
    813813  /* Load the notification object */ 
    814   priv->notify = moko_notify_new (); 
     814  priv->notify = moko_notify_get_default (); 
    815815 
    816816 
  • trunk/src/target/OM-2007.2/applications/openmoko-dialer2/src/phone-kit/moko-notify.c

    r3310 r3689  
    4343struct _MokoNotifyPrivate 
    4444{ 
    45   gboolean    started; 
     45  int    started; 
    4646 
    4747  /* Sound stuff */ 
     
    255255  priv = notify->priv; 
    256256 
    257   if (priv->started) 
    258     return; 
    259   priv->started = TRUE; 
     257  priv->started ++; 
     258  if (priv->started != 1) 
     259    return; 
    260260 
    261261  moko_notify_check_brightness (); 
     
    275275  if (!priv->started) 
    276276    return; 
    277   priv->started = FALSE; 
    278  
    279   moko_notify_stop_vibrate (); 
    280   moko_notify_stop_ringtone (notify); 
     277  priv->started --; 
     278 
     279  if (!priv->started) { 
     280    moko_notify_stop_vibrate (); 
     281    moko_notify_stop_ringtone (notify); 
     282  } 
    281283} 
    282284 
     
    314316  priv = notify->priv = MOKO_NOTIFY_GET_PRIVATE (notify); 
    315317 
    316   priv->started = FALSE; 
     318  priv->started = 0; 
    317319  priv->pac = NULL; 
    318320 
     
    345347} 
    346348 
     349MokoNotify* 
     350moko_notify_get_default (void) 
     351{ 
     352  static MokoNotify *notify = NULL; 
     353   
     354  if (!notify) notify = moko_notify_new (); 
     355   
     356  return notify; 
     357} 
     358 
  • trunk/src/target/OM-2007.2/applications/openmoko-dialer2/src/phone-kit/moko-notify.h

    r3310 r3689  
    6767moko_notify_new (void); 
    6868 
     69MokoNotify* 
     70moko_notify_get_default (void); 
     71 
    6972void 
    7073moko_notify_start (MokoNotify *notify); 
  • trunk/src/target/OM-2007.2/applications/openmoko-dialer2/src/phone-kit/moko-sms.c

    r3553 r3689  
    2727#include <libjana-ecal/jana-ecal.h> 
    2828 
     29#include <libnotify/notification.h> 
     30 
     31#include <libmokoui2/moko-stock.h> 
     32 
    2933#include "moko-sms.h" 
    3034#include "moko-network.h" 
     
    6468  gboolean           sms_store_open; 
    6569  JanaNote           *last_msg; 
     70   
     71  GList              *unread_uids; 
     72  NotifyNotification *notification; 
    6673}; 
    6774 
     
    401408 
    402409static void 
     410update_notification (MokoSms *sms, gboolean show) 
     411{ 
     412  gchar *body; 
     413  MokoSmsPrivate *priv = sms->priv; 
     414   
     415  if (!priv->unread_uids) { 
     416    notify_notification_close (priv->notification, NULL); 
     417    return; 
     418  } 
     419   
     420  body = g_strdup_printf ("%d unread message(s)", 
     421                          g_list_length (priv->unread_uids)); 
     422  g_object_set (G_OBJECT (priv->notification), "body", body, NULL); 
     423  g_free (body); 
     424   
     425  /* Show notification */ 
     426  if (show) notify_notification_show (priv->notification, NULL); 
     427} 
     428 
     429static void 
     430note_added_cb (JanaStoreView *store_view, GList *components, MokoSms *sms) 
     431{ 
     432  MokoSmsPrivate *priv = sms->priv; 
     433  gboolean update = FALSE; 
     434   
     435  for (; components; components = components->next) { 
     436    JanaComponent *comp = JANA_COMPONENT (components->data); 
     437     
     438    if (!comp) continue; 
     439     
     440    if (!jana_utils_component_has_category (comp, "Read")) { 
     441      gchar *uid = jana_component_get_uid (comp); 
     442      priv->unread_uids = g_list_prepend (priv->unread_uids, uid); 
     443      update = TRUE; 
     444    } 
     445  } 
     446   
     447  /* TODO: Put this in an idle? */ 
     448  if (update) update_notification (sms, TRUE); 
     449} 
     450 
     451static void 
     452note_modified_cb (JanaStoreView *store_view, GList *components, MokoSms *sms) 
     453{ 
     454  MokoSmsPrivate *priv = sms->priv; 
     455  gboolean update = FALSE; 
     456   
     457  for (; components; components = components->next) { 
     458    gchar *uid; 
     459    GList *found; 
     460    JanaComponent *comp = JANA_COMPONENT (components->data); 
     461     
     462    if (!comp) continue; 
     463     
     464    uid = jana_component_get_uid (comp); 
     465    if ((found = g_list_find_custom ( 
     466         priv->unread_uids, uid, (GCompareFunc)strcmp))) { 
     467      g_free (uid); 
     468      if (jana_utils_component_has_category (comp, "Read")) { 
     469        g_free (found->data); 
     470        priv->unread_uids = g_list_delete_link (priv->unread_uids, found); 
     471        update = TRUE; 
     472      } 
     473    } else if (!jana_utils_component_has_category (comp, "Read")) { 
     474      priv->unread_uids = g_list_prepend (priv->unread_uids, uid); 
     475      update = TRUE; 
     476    } else { 
     477      g_free (uid); 
     478    } 
     479  } 
     480   
     481  if (update) update_notification (sms, FALSE); 
     482} 
     483 
     484static void 
     485note_removed_cb (JanaStoreView *store_view, GList *uids, MokoSms *sms) 
     486{ 
     487  MokoSmsPrivate *priv = sms->priv; 
     488  gboolean update = FALSE; 
     489   
     490  for (; uids; uids = uids->next) { 
     491    GList *found = g_list_find_custom (priv->unread_uids, uids->data, 
     492                                       (GCompareFunc)strcmp); 
     493    if (found) { 
     494      g_free (found->data); 
     495      priv->unread_uids = g_list_delete_link (priv->unread_uids, found); 
     496      update = TRUE; 
     497    } 
     498  } 
     499   
     500  if (update) update_notification (sms, FALSE); 
     501} 
     502 
     503static void 
    403504start_handling_sms (MokoSms *sms) 
    404505{ 
     
    422523sms_store_opened_cb (JanaStore *store, MokoSms *self) 
    423524{ 
     525  JanaStoreView *view; 
    424526  MokoSmsPrivate *priv = self->priv; 
    425527  priv->sms_store_open = TRUE; 
     528 
     529  /* Hook onto added/modified/removed signals for SMS notification */ 
     530  view = jana_store_get_view (store); 
     531  g_signal_connect (view, "added", G_CALLBACK (note_added_cb), self); 
     532  g_signal_connect (view, "modified", G_CALLBACK (note_modified_cb), self); 
     533  g_signal_connect (view, "removed", G_CALLBACK (note_removed_cb), self); 
     534  jana_store_view_start (view); 
    426535 
    427536  if (!priv->handling_sms) start_handling_sms (self); 
     
    436545 
    437546  priv = sms->priv = MOKO_SMS_GET_PRIVATE (sms); 
     547  priv->notification = notify_notification_new ("New SMS message", 
     548                                                "", 
     549                                                MOKO_STOCK_SMS_NEW, 
     550                                                NULL); 
    438551 
    439552  /* Get the SMS note store */ 
Note: See TracChangeset for help on using the changeset viewer.