atmodem: Register for notifications after CMGL
authorDenis Kenzior <denkenz@gmail.com>
Thu, 10 Jun 2010 23:43:30 +0000 (18:43 -0500)
committerDenis Kenzior <denkenz@gmail.com>
Thu, 10 Jun 2010 23:43:30 +0000 (18:43 -0500)
drivers/atmodem/sms.c

index 22129cf..9f54cb2 100644 (file)
@@ -487,8 +487,21 @@ static void at_cmgl_done(struct ofono_sms *sms)
 {
        struct sms_data *data = ofono_sms_get_data(sms);
 
-       if (data->incoming == MT_STORE && data->store == ME_STORE)
+       if (data->incoming == MT_STORE && data->store == ME_STORE) {
                at_cmgl_set_cpms(sms, SM_STORE);
+               return;
+       }
+
+       g_at_chat_register(data->chat, "+CMTI:", at_cmti_notify, FALSE,
+                               sms, NULL);
+       g_at_chat_register(data->chat, "+CMT:", at_cmt_notify, TRUE,
+                               sms, NULL);
+       g_at_chat_register(data->chat, "+CDS:", at_cds_notify, TRUE,
+                               sms, NULL);
+
+       /* We treat CMGR just like a notification */
+       g_at_chat_register(data->chat, "+CMGR:", at_cmgr_notify, TRUE,
+                               sms, NULL);
 }
 
 static void at_cmgl_notify(GAtResult *result, gpointer user_data)
@@ -605,17 +618,6 @@ static void at_sms_initialized(struct ofono_sms *sms)
 {
        struct sms_data *data = ofono_sms_get_data(sms);
 
-       g_at_chat_register(data->chat, "+CMTI:", at_cmti_notify, FALSE,
-                               sms, NULL);
-       g_at_chat_register(data->chat, "+CMT:", at_cmt_notify, TRUE,
-                               sms, NULL);
-       g_at_chat_register(data->chat, "+CDS:", at_cds_notify, TRUE,
-                               sms, NULL);
-
-       /* We treat CMGR just like a notification */
-       g_at_chat_register(data->chat, "+CMGR:", at_cmgr_notify, TRUE,
-                               sms, NULL);
-
        /* Inspect and free the incoming SMS storage */
        if (data->incoming == MT_STORE)
                at_cmgl_set_cpms(sms, ME_STORE);