From ef5f472d672e4c2f4a25bea64e8b5c907ea7036a Mon Sep 17 00:00:00 2001
From: Paul Fertser <fercerpav@gmail.com>
Date: Mon, 2 Feb 2009 17:15:51 +0300
Subject: [PATCH] Preliminary support for message delivery reports

Not working yet, i lack enough Python knowledge...
---
 src/zhone |   14 +++++++++++++-
 1 files changed, 13 insertions(+), 1 deletions(-)

diff --git a/src/zhone b/src/zhone
index 2f94020..598f500 100755
--- a/src/zhone
+++ b/src/zhone
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/python
 # -*- coding: utf-8 -*-
 """
 Zen Phone - A Phone UI
@@ -223,6 +223,10 @@ class pyphone_phone(edje_group):
         logger.info( "USSD Message: %s" % message )
         self.main.groups["alert"].activate( "<title>Operator Message</title>%s" % message, [("OK")] )
 
+    def onIncomingMessageReceipt( self, number, message ):
+        logger.info( "Message receipt: %s %s" % number, message )
+        self.main.groups["alert"].activate( "<title>%s</title>%s" % number, message, [("OK")] )
+
 _("active")
 _("incoming")
 _("held")
@@ -2347,6 +2351,7 @@ class GUI(object):
         dbus_object.onReadyStatus.append( self.groups["contacts"].onReadyStatus )
         dbus_object.onReadyStatus.append( self.groups["sms"].onReadyStatus )
         dbus_object.onIncomingMessage.append( self.groups["sms"].onIncomingMessage )
+        dbus_object.onIncomingMessageReceipt.append( self.groups["phone"].onIncomingMessageReceipt )
         dbus_object.onIncomingUssd.append( self.groups["phone"].onIncomingUssd )
         dbus_object.onIdleStateChanged.append( self.lock_on_idle )
         dbus_object.onNetworkStatus.append( self.groups["phone"].onNetworkStatus )
@@ -2503,6 +2508,7 @@ class DBusObject( object ):
         self.onReadyStatus = []
         self.onNetworkStatus = []
         self.onIncomingMessage = []
+        self.onIncomingMessageReceipt = []
         self.onIncomingUssd = []
         self.onIdleStateChanged = []
         self.onInputEvent = []
@@ -2614,11 +2620,13 @@ class DBusObject( object ):
             self.gsm_network_iface = Interface(self.gsm_device_obj, 'org.freesmartphone.GSM.Network')
             self.gsm_call_iface = Interface(self.gsm_device_obj, 'org.freesmartphone.GSM.Call')
             self.gsm_test_iface = Interface(self.gsm_device_obj, 'org.freesmartphone.GSM.Test')
+            self.gsm_sms_iface = Interface(self.gsm_device_obj, 'org.freesmartphone.GSM.SMS')
             self.gsm_sim_iface.connect_to_signal( "IncomingStoredMessage", self.cbIncomingMessage )
             self.gsm_sim_iface.connect_to_signal( "ReadyStatus", self.cbReadyStatus )
             self.gsm_call_iface.connect_to_signal( "CallStatus", self.cbCallStatus )
             self.gsm_network_iface.connect_to_signal( "Status", self.cbNetworkStatus )
             self.gsm_network_iface.connect_to_signal( "IncomingUssd", self.cbIncomingUssd )
+            self.gsm_sms_iface.connect_to_signal( "IncomingMessageReceipt", self.cbIncomingMessageReceipt )
         if self.gsm_device_obj is None:
             failcount += 1
         else:
@@ -2717,6 +2725,10 @@ class DBusObject( object ):
         for cb in self.onIncomingMessage:
             cb( index=index )
 
+    def cbIncomingMessageReceipt( self, number, message ):
+        for cb in self.onIncomingMessageReceipt:
+            cb( number=number, message=message )
+
     def cbIdleStateChanged( self, state ):
         logger.info( "IDLE STATE = %s" % state )
         for cb in self.onIdleStateChanged:
-- 
1.5.6.5


