diff --git a/test/test-stk-menu b/test/test-stk-menu index 94d2d6b4..b396452d 100755 --- a/test/test-stk-menu +++ b/test/test-stk-menu @@ -13,6 +13,9 @@ class GoBack(dbus.DBusException): class EndSession(dbus.DBusException): _dbus_error_name = "org.ofono.Error.EndSession" +class Busy(dbus.DBusException): + _dbus_error_name = "org.ofono.Error.Busy" + class StkAgent(dbus.service.Object): exit_on_release = True @@ -30,9 +33,10 @@ class StkAgent(dbus.service.Object): in_signature="sya(sy)n", out_signature="y") def RequestSelection(self, title, icon, items, default): print "Title: (%s)" % (title) + print "Icon: (%d)" % (icon) index = 0; for item in items: - print "%d. %s" % (index, item[0]) + print "%d. %s (icon: %d)" % (index, item[0], item[1]) index += 1 print "\nDefault: %d" % (default) @@ -48,14 +52,27 @@ class StkAgent(dbus.service.Object): @dbus.service.method("org.ofono.SimToolkitAgent", in_signature="syb", out_signature="") def DisplayText(self, title, icon, urgent): - print "DisplayText (%s, %s)" % (title, urgent) + print "DisplayText (%s)" % (title) + print "Icon: (%d)" % (icon) + print "Urgent: (%d)" % (urgent) + key = raw_input("Press return to clear ('t' terminates, " + "'b' goest back, 'n' busy):") + + if key == 'b': + raise GoBack("User wishes to go back") + elif key == 't': + raise EndSession("User wishes to terminate session") + elif key == 'n': + raise Busy("User wishes to simulate busy screen") @dbus.service.method("org.ofono.SimToolkitAgent", in_signature="sysyyb", out_signature="s") def RequestInput(self, title, icon, default, min_chars, max_chars, hide_typing): print "Title: (%s)" % (title) + print "Icon: (%d)" % (icon) print "Default: (%s)" % (default) + print "Hide typing: (%s)" % (hide_typing) print "Enter characters, min: %d, max: %d:" % (min_chars, max_chars) userin = raw_input(""); @@ -67,7 +84,9 @@ class StkAgent(dbus.service.Object): def RequestDigits(self, title, icon, default, min_chars, max_chars, hide_typing): print "Title: (%s)" % (title) + print "Icon: (%d)" % (icon) print "Default: (%s)" % (default) + print "Hide typing: (%s)" % (hide_typing) print "Enter digits, min: %d, max: %d:" % (min_chars, max_chars) userin = raw_input("'t' terminates, 'b' goes back:"); @@ -83,6 +102,7 @@ class StkAgent(dbus.service.Object): in_signature="sy", out_signature="s") def RequestKey(self, title, icon): print "Title: (%s)" % (title) + print "Icon: (%d)" % (icon) key = raw_input("Enter Key (t, b):") if key == 'b': @@ -96,6 +116,7 @@ class StkAgent(dbus.service.Object): in_signature="sy", out_signature="s") def RequestDigit(self, title, icon): print "Title: (%s)" % (title) + print "Icon: (%d)" % (icon) key = raw_input("Enter Digit (t, b):") if key == 'b': @@ -109,6 +130,7 @@ class StkAgent(dbus.service.Object): in_signature="sy", out_signature="b") def RequestConfirmation(self, title, icon): print "Title: (%s)" % (title) + print "Icon: (%d)" % (icon) key = raw_input("Enter Confirmation (t, b, y, n):") if key == 'b': @@ -124,6 +146,7 @@ class StkAgent(dbus.service.Object): in_signature="sy", out_signature="b") def ConfirmCallSetup(self, info, icon): print "Information: (%s)" % (info) + print "Icon: (%d)" % (icon) key = raw_input("Enter Confirmation (t, y, n):") if key == 't': @@ -141,14 +164,30 @@ class StkAgent(dbus.service.Object): @dbus.service.method("org.ofono.SimToolkitAgent", in_signature="ssy", out_signature="") def PlayTone(self, tone, text, icon): - print "playtone is %s" % (tone) + print "PlayTone: %s" % (tone) + print "Text: %s" % (text) + print "Icon: %d" % (icon) - @dbus.service.method("org.ofono.SimToolkitAgent", - in_signature="ssy", out_signature="") - def LoopTone(self, tone, text, icon): - print "the loop tone is %s" % (tone) + @dbus.service.method("org.ofono.SimToolkitAgent", + in_signature="ssy", out_signature="") + def LoopTone(self, tone, text, icon): + print "LoopTone: %s" % (tone) + print "Text: %s" % (text) + print "Icon: %d" % (icon) + key = raw_input("Press return to end before timeout (t):") + + if key == 't': + raise EndSession("User wishes to terminate session"); + +def property_changed(name, value): + print "SimToolKit property: %s changed to '%s'" % (name, value) if __name__ == '__main__': + if len(sys.argv) == 2: + mode = sys.argv[1] + else: + mode = 'menu' + dbus.mainloop.glib.DBusGMainLoop(set_as_default=True) bus = dbus.SystemBus() @@ -164,26 +203,38 @@ if __name__ == '__main__': stk = dbus.Interface(bus.get_object('org.ofono', path), 'org.ofono.SimToolkit') + stk.connect_to_signal("PropertyChanged", property_changed) + properties = stk.GetProperties() - if "MainMenuTitle" in properties: - print "Main Menu:" - print "%s" % (properties["MainMenuTitle"]) - print "\n" + if mode == 'menu': + if "MainMenuTitle" in properties: + print "Main Menu:" + print "%s" % (properties["MainMenuTitle"]) + print "\n" - if "MainMenu" in properties: - print "Items:" - index = 0 - for item in properties["MainMenu"]: - print "%d. %s" % (index, item[0]) - index += 1 + if "MainMenu" in properties: + print "Items:" + index = 0 + for item in properties["MainMenu"]: + print "%d. %s" % (index, item[0]) + index += 1 - path = "/test/agent" - agent = StkAgent(bus, path) + path = "/test/agent" + agent = StkAgent(bus, path) - select = int(raw_input("Enter Selection: ")) - stk.SelectItem(select, path) - print "Agent registered for session" + select = int(raw_input("Enter Selection: ")) + stk.SelectItem(select, path) + elif mode == 'agent': + path = "/test/agent" + agent = StkAgent(bus, path) + + stk.RegisterAgent(path) + + print "Agent registered for session - Wait SIM ToolKit command..." + else: + print "%s [menu|agent]" % (sys.argv[0]) + exit(0) mainloop = gobject.MainLoop() mainloop.run()