X-Git-Url: http://git.maemo.org/git/?p=theonering;a=blobdiff_plain;f=src%2Fgvoice%2Faddressbook.py;h=f5fa02e45f6a011f74aa127a68b8cbfac9f9830c;hp=915e45295de0626ce55fae4889e267b339f5f692;hb=1c892d1b9bf14b28eb54ce3590ed2ee29d5e3d25;hpb=1e4f892cdff67a5dc693e9eb70ed1d6ca4af60ea diff --git a/src/gvoice/addressbook.py b/src/gvoice/addressbook.py index 915e452..f5fa02e 100644 --- a/src/gvoice/addressbook.py +++ b/src/gvoice/addressbook.py @@ -4,7 +4,7 @@ import logging import util.coroutines as coroutines -import util.misc as util_misc +import util.misc as misc_utils _moduleLogger = logging.getLogger("gvoice.addressbook") @@ -47,13 +47,22 @@ class Addressbook(object): return self._numbers.iterkeys() def get_contact_name(self, strippedNumber): + """ + @throws KeyError if contact not in list (so client can choose what to display) + """ return self._numbers[strippedNumber][0] def get_phone_type(self, strippedNumber): - return self._numbers[strippedNumber][1] + try: + return self._numbers[strippedNumber][1] + except KeyError: + return "unknown" def is_blocked(self, strippedNumber): - return self._numbers[strippedNumber][1]["response"] == self._RESPONSE_BLOCKED + try: + return self._numbers[strippedNumber][2]["response"] == self._RESPONSE_BLOCKED + except KeyError: + return False def _populate_contacts(self): if self._numbers: @@ -63,13 +72,12 @@ class Addressbook(object): contactName = contactDetails["name"] contactNumbers = ( ( + misc_utils.normalize_number(numberDetails["phoneNumber"]), numberDetails.get("phoneType", "Mobile"), - util_misc.normalize_number(numberDetails["phoneNumber"]), - contactDetails, ) for numberDetails in contactDetails["numbers"] ) self._numbers.update( - (number, (contactName, phoneType)) - for (phoneType, number) in contactNumbers + (number, (contactName, phoneType, contactDetails)) + for (number, phoneType) in contactNumbers )