def add_contact(self, contact): name = from_u(contact.name) number = from_u(contact.number) if 'UCS2' in self.device.sim.charset: name = pack_ucs2_bytes(name) number = pack_ucs2_bytes(number) # common arguments for both operations (name and number) args = [name, number] if contact.index: # contact.index is set, user probably wants to overwrite an # existing contact args.append(contact.index) d = super(WCDMAWrapper, self).add_contact(*args) d.addCallback(lambda _: contact.index) return d # contact.index is not set, this means that we need to obtain the # first slot free on the phonebook and then add the contact def get_next_id_cb(index): args.append(index) d2 = super(WCDMAWrapper, self).add_contact(*args) # now we just fake add_contact's response and we return the index d2.addCallback(lambda _: index) return d2 d = self._get_next_contact_id() d.addCallback(get_next_id_cb) return d
def add_contact(self, contact): """ Adds ``contact`` to the SIM and returns the index where was stored """ ucs2 = 'UCS2' in self.device.sim.charset name = pack_ucs2_bytes(contact.name) if ucs2 else from_u(contact.name) # common arguments for both operations (name and number) args = [name, from_u(contact.number)] if contact.index: # contact.index is set, user probably wants to overwrite an # existing contact args.append(contact.index) d = super(WCDMAWrapper, self).add_contact(*args) d.addCallback(lambda _: contact.index) return d def get_next_id_cb(index): args.append(index) d2 = super(WCDMAWrapper, self).add_contact(*args) # now we just fake add_contact's response and we return the index d2.addCallback(lambda _: index) return d2 # contact.index is not set, this means that we need to obtain the # first free slot on the phonebook and then add the contact d = self._get_next_contact_id() d.addCallback(get_next_id_cb) return d
def add_contact(self, contact): """ Adds ``contact`` to the SIM and returns the index where was stored :rtype: int """ name = from_u(contact.name) # common arguments for both operations (name and number) args = [name, from_u(contact.number)] if contact.index: # contact.index is set, user probably wants to overwrite an # existing contact args.append(contact.index) d = self._add_contact(*args) d.addCallback(lambda _: contact.index) return d # contact.index is not set, this means that we need to obtain the # first slot free on the phonebook and then add the contact def get_next_id_cb(index): args.append(index) d2 = self._add_contact(*args) # now we just fake add_contact's response and we return the index d2.addCallback(lambda _: index) return d2 d = self._get_next_contact_id() d.addCallback(get_next_id_cb) return d
def get_smsc_cb(response): try: smsc = response[0].group('smsc') if not smsc.startswith('+'): if check_if_ucs2(smsc): smsc = from_u(unpack_ucs2_bytes(smsc)) return smsc except KeyError: raise E.NotFound()