7 import dbus.mainloop.glib
10 _moduleLogger = logging.getLogger(__name__)
13 class SetSecondaryVCardFields(object):
15 ACCOUNT_MGR_NAME = "org.freedesktop.Telepathy.AccountManager"
16 ACCOUNT_MGR_PATH = "/org/freedesktop/Telepathy/AccountManager"
17 ACCOUNT_MGR_IFACE_QUERY = "com.nokia.AccountManager.Interface.Query"
18 ACCOUNT_IFACE_COMPAT = "com.nokia.Account.Interface.Compat"
19 ACCOUNT_IFACE_COMPAT_PROFILE = "com.nokia.Account.Interface.Compat.Profile"
20 DBUS_PROPERTIES = 'org.freedesktop.DBus.Properties'
22 def __init__(self, profileName):
23 self._bus = dbus.SessionBus()
24 self._profileName = profileName
27 self._accountManager = self._bus.get_object(
28 self.ACCOUNT_MGR_NAME,
29 self.ACCOUNT_MGR_PATH,
31 self._accountManagerQuery = dbus.Interface(
33 dbus_interface=self.ACCOUNT_MGR_IFACE_QUERY,
36 self._accountManagerQuery.FindAccounts(
38 self.ACCOUNT_IFACE_COMPAT_PROFILE: self._profileName,
40 reply_handler = self._on_found_accounts_reply,
41 error_handler = self._on_error,
44 def _on_found_accounts_reply(self, accountObjectPaths):
45 for accountObjectPath in accountObjectPaths:
46 print accountObjectPath
47 account = self._bus.get_object(
48 self.ACCOUNT_MGR_NAME,
51 accountProperties = dbus.Interface(
55 accountProperties.Set(
56 self.ACCOUNT_IFACE_COMPAT,
57 "SecondaryVCardFields",
59 reply_handler = self._on_field_set,
60 error_handler = self._on_error,
63 def _on_field_set(self):
64 _moduleLogger.info("Field set")
66 def _on_error(self, error):
67 _moduleLogger.error("%r" % (error, ))
70 if __name__ == "__main__":
71 logging.basicConfig(level=logging.DEBUG)
72 l = dbus.mainloop.glib.DBusGMainLoop(set_as_default=True)
73 manager = SetSecondaryVCardFields("theonering")
75 gobject.threads_init()
76 gobject.idle_add(manager.start)
78 mainloop = gobject.MainLoop(is_running=True)