Initial replace for nokia USSD implementation
[ussd-widget] / qussd / ussdd.py
diff --git a/qussd/ussdd.py b/qussd/ussdd.py
new file mode 100755 (executable)
index 0000000..d1108db
--- /dev/null
@@ -0,0 +1,50 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+import subprocess
+import dbus
+import dbus.service
+from dbus import glib
+from dbus.mainloop.glib import DBusGMainLoop
+import gobject
+
+skip = False;
+
+def ussd_released (message, str):
+       global skip
+       if not skip:
+               subprocess.Popen(["qussd", message])
+       skip = False
+       return True
+
+def ussd_request (message, str):
+       global skip
+       if not skip:
+               subprocess.Popen(["qussd", message, "lock"])
+       skip = False
+       return True
+
+class DBusListener(dbus.service.Object):
+       def __init__(self):
+               bus_name = dbus.service.BusName('su.kibergus.ussdd', bus=dbus.SystemBus())
+               dbus.service.Object.__init__(self, bus_name, '/su/kibergus/ussdd')
+
+       @dbus.service.method(dbus_interface='su.kibergus.ussdd')
+       def skip_next (self):
+               print "TEST"
+               global skip
+               skip = True
+               return True
+
+gobject.threads_init()
+glib.init_threads()
+
+bus = dbus.SystemBus()
+signal = bus.add_signal_receiver(ussd_released, path='/com/nokia/csd/ss',   dbus_interface='com.nokia.csd.SS.USSD', signal_name='Released')
+signal = bus.add_signal_receiver(ussd_request, path='/com/nokia/csd/ss',   dbus_interface='com.nokia.csd.SS.USSD', signal_name='Request')
+
+listener = DBusListener()
+
+loop = gobject.MainLoop()
+loop.run()
+