#!/usr/bin/python
import dbus
import dbus.glib
import gobject
import time
import os
import sys

def dbg(s):
    print("%s %s" % (time.strftime("%H:%M:%S"), s))

class UI:
    def __init__(self, loop):
        self.loop = loop

        bus = dbus.SystemBus()
        self.gsm_device_obj = bus.get_object("org.freesmartphone.ogsmd", "/org/freesmartphone/GSM/Device")
        self.gsm_sim_iface = dbus.Interface(self.gsm_device_obj, 'org.freesmartphone.GSM.SIM')
        self.gsm_sms_iface = dbus.Interface(self.gsm_device_obj, 'org.freesmartphone.GSM.SMS')
        self.gsm_sim_iface.StoreMessage(sys.argv[1],
                                        sys.argv[2],
                                        {"status-report-request": True},
                                        reply_handler = self.cbStoreReply,
                                        error_handler = lambda e: (dbg("cbStoreError %s" % e), self.loop.quit()))

    def cbStoreReply(self, result):
        dbg("cbStoreReply %d" % result)
        self.gsm_sim_iface.SendStoredMessage(result,
                                             reply_handler = self.cbSendReply,
                                             error_handler = lambda e: (dbg("cbSendError %s" % e), self.loop.quit()))
    def cbSendReply(self, reference, timestamp):
        dbg("cbSendReply %d %s" % (reference, timestamp))
        self.loop.quit()

if __name__ == "__main__":
    loop = gobject.MainLoop()
    UI(loop)
    loop.run()

