X-Git-Url: http://git.maemo.org/git/?p=theonering;a=blobdiff_plain;f=src%2Fhandle.py;h=cfbceccfd11aea1fe9ae07c1e0d921cf6677ffec;hp=bcce9d58c38780b6fa9fb4edc1358ca3f61b0c81;hb=548c58651ec7849619b9d823fdeee169be6c87b5;hpb=662a95ad50d99c99e78b7e5207834c14ac91ec2c diff --git a/src/handle.py b/src/handle.py index bcce9d5..cfbcecc 100644 --- a/src/handle.py +++ b/src/handle.py @@ -3,17 +3,20 @@ import weakref import telepathy +import tp +import util.misc as misc_utils -_moduleLogger = logging.getLogger("handle") +_moduleLogger = logging.getLogger(__name__) -class TheOneRingHandle(telepathy.server.Handle): + +class TheOneRingHandle(tp.Handle): """ Instances are memoized """ def __init__(self, connection, id, handleType, name): - telepathy.server.Handle.__init__(self, id, handleType, name) + tp.Handle.__init__(self, id, handleType, name) self._conn = weakref.proxy(connection) def __repr__(self): @@ -21,9 +24,9 @@ class TheOneRingHandle(telepathy.server.Handle): type(self).__name__, self.id, self.name ) - id = property(telepathy.server.Handle.get_id) - type = property(telepathy.server.Handle.get_type) - name = property(telepathy.server.Handle.get_name) + id = property(tp.Handle.get_id) + type = property(tp.Handle.get_type) + name = property(tp.Handle.get_name) class ConnectionHandle(TheOneRingHandle): @@ -38,20 +41,16 @@ class ConnectionHandle(TheOneRingHandle): class ContactHandle(TheOneRingHandle): - def __init__(self, connection, id, contactId): + def __init__(self, connection, id, phoneNumber): + self._phoneNumber = misc_utils.normalize_number(phoneNumber) + handleType = telepathy.HANDLE_TYPE_CONTACT - handleName = contactId + handleName = self._phoneNumber TheOneRingHandle.__init__(self, connection, id, handleType, handleName) - self._id = contactId - - @property - def contactID(self): - return self._id - @property - def contactDetails(self): - return self._conn.addressbook.get_contact_details(self._id) + def phoneNumber(self): + return self._phoneNumber class ListHandle(TheOneRingHandle): @@ -73,22 +72,23 @@ def create_handle_factory(): cache = weakref.WeakValueDictionary() - def create_handle(connection, type, *args): + def _create_handle(connection, type, *args): Handle = _HANDLE_TYPE_MAPPING[type] key = Handle, connection.username, args try: handle = cache[key] isNewHandle = False except KeyError: + # The misnamed get_handle_id requests a new handle id handle = Handle(connection, connection.get_handle_id(), *args) cache[key] = handle isNewHandle = True connection._handles[handle.get_type(), handle.get_id()] = handle handleStatus = "Is New!" if isNewHandle else "From Cache" - _moduleLogger.info("Created Handle: %r (%s)" % (handle, handleStatus)) + _moduleLogger.debug("Created Handle: %r (%s)" % (handle, handleStatus)) return handle - return create_handle + return _create_handle create_handle = create_handle_factory()