import base64
import ConfigParser
import itertools
-import shutils
+import shutil
import logging
import gtk
button.connect("clicked", self._on_clearcookies_clicked)
menu.append(button)
- button= gtk.Button("Import Contacts")
+ button = gtk.Button("Import Contacts")
button.connect("clicked", self._on_contact_import)
menu.append(button)
- button= gtk.Button("Refresh")
+ button = gtk.Button("Refresh")
button.connect("clicked", self._on_menu_refresh)
menu.append(button)
return loggedIn, serviceId
- def _select_action(self, action, number, message):
+ def _select_action(self, action, numbers, message):
self.refresh_session()
if action == "dial":
+ assert len(numbers) == 1
+ number = numbers[0]
self._on_dial_clicked(number)
elif action == "sms":
- self._on_sms_clicked(number, message)
+ self._on_sms_clicked(numbers, message)
else:
assert False, "Unknown action: %s" % action
self._errorDisplay.push_exception()
return False
- def _on_sms_clicked(self, number, message):
+ def _on_sms_clicked(self, numbers, message):
try:
- assert number, "No number specified"
+ assert numbers, "No number specified"
assert message, "Empty message"
try:
loggedIn = self._phoneBackends[self._selectedBackendId].is_authed()
dialed = False
try:
- self._phoneBackends[self._selectedBackendId].send_sms(number, message)
- hildonize.show_information_banner(self._window, "Sending to %s" % number)
- _moduleLogger.info("Sending SMS to %s" % number)
+ self._phoneBackends[self._selectedBackendId].send_sms(numbers, message)
+ hildonize.show_information_banner(self._window, "Sending to %s" % ", ".join(numbers))
+ _moduleLogger.info("Sending SMS to %r" % numbers)
dialed = True
except Exception, e:
self._errorDisplay.push_exception()
importFileChooser.hide()
if userResponse == gtk.RESPONSE_OK:
filename = importFileChooser.get_filename()
- shutils.copy2(filename, self._fsContactsPath)
+ shutil.copy2(filename, self._fsContactsPath)
except Exception, e:
self._errorDisplay.push_exception()
# Process the users response
if userResponse == gtk.RESPONSE_OK and 0 <= self._numberIndex:
phoneNumber = self._contactDetails[self._numberIndex][0]
- phoneNumber = make_ugly(phoneNumber)
+ phoneNumbers = [make_ugly(phoneNumber)]
else:
- phoneNumber = ""
- if not phoneNumber:
+ phoneNumbers = []
+ if not phoneNumbers:
self._action = self.ACTION_CANCEL
if self._action == self.ACTION_SEND_SMS:
entryBuffer = self._smsEntry.get_buffer()
enteredMessage = entryBuffer.get_text(entryBuffer.get_start_iter(), entryBuffer.get_end_iter())
enteredMessage = enteredMessage.strip()
if not enteredMessage:
- phoneNumber = ""
+ phoneNumbers = []
self._action = self.ACTION_CANCEL
else:
enteredMessage = ""
self._messagesView.remove_column(messageColumn)
self._messagesView.set_model(None)
- return self._action, phoneNumber, enteredMessage
+ return self._action, phoneNumbers, enteredMessage
finally:
self._smsEntry.get_buffer().disconnect(entryConnectId)
self._phoneButton.disconnect(phoneConnectId)
self._backTapHandler.disable()
self._zeroOrPlusTapHandler.disable()
- def number_selected(self, action, number, message):
+ def number_selected(self, action, numbers, message):
"""
@note Actual dial function is patched in later
"""
def _on_sms_clicked(self, widget):
try:
phoneNumber = self.get_number()
- action, phoneNumber, message = self._smsDialog.run([("Dialer", phoneNumber)], (), self._window)
+ action, phoneNumbers, message = self._smsDialog.run([("Dialer", phoneNumber)], (), self._window)
if action == SmsEntryDialog.ACTION_CANCEL:
return
- self.number_selected(action, phoneNumber, message)
+ self.number_selected(action, phoneNumbers, message)
except Exception, e:
self._errorDisplay.push_exception()
def _on_dial_clicked(self, widget):
try:
action = SmsEntryDialog.ACTION_DIAL
- phoneNumber = self.get_number()
+ phoneNumbers = [self.get_number()]
message = ""
- self.number_selected(action, phoneNumber, message)
+ self.number_selected(action, phoneNumbers, message)
except Exception, e:
self._errorDisplay.push_exception()
self._nameColumn.set_sizing(gtk.TREE_VIEW_COLUMN_FIXED)
self._window = gtk_toolbox.find_parent_window(self._historyview)
- self._phoneTypeSelector = SmsEntryDialog(widgetTree)
+ self._smsDialog = SmsEntryDialog(widgetTree)
self._historyFilterSelector = widgetTree.get_widget("historyFilterSelector")
self._historyFilterSelector.connect("clicked", self._on_history_filter_clicked)
self._historyview.remove_column(self._numberColumn)
self._historyview.set_model(None)
- def number_selected(self, action, number, message):
+ def number_selected(self, action, numbers, message):
"""
@note Actual dial function is patched in later
"""
contactPhoneNumbers = [("Phone", number)]
defaultIndex = -1
- action, phoneNumber, message = self._phoneTypeSelector.run(
+ action, phoneNumbers, message = self._smsDialog.run(
contactPhoneNumbers,
messages = (description, ),
parent = self._window,
)
if action == SmsEntryDialog.ACTION_CANCEL:
return
- assert phoneNumber, "A lack of phone number exists"
+ assert phoneNumbers, "A lack of phone number exists"
- self.number_selected(action, phoneNumber, message)
+ self.number_selected(action, phoneNumbers, message)
self._historyviewselection.unselect_all()
except Exception, e:
self._errorDisplay.push_exception()
self._messageColumn.set_sizing(gtk.TREE_VIEW_COLUMN_FIXED)
self._window = gtk_toolbox.find_parent_window(self._messageview)
- self._phoneTypeSelector = SmsEntryDialog(widgetTree)
+ self._smsDialog = SmsEntryDialog(widgetTree)
self._messageTypeButton = widgetTree.get_widget("messageTypeButton")
self._onMessageTypeClickedId = 0
self._messageview.remove_column(self._messageColumn)
self._messageview.set_model(None)
- def number_selected(self, action, number, message):
+ def number_selected(self, action, numbers, message):
"""
@note Actual dial function is patched in later
"""
contactPhoneNumbers = [("Phone", number)]
defaultIndex = -1
- action, phoneNumber, message = self._phoneTypeSelector.run(
+ action, phoneNumbers, message = self._smsDialog.run(
contactPhoneNumbers,
messages = description,
parent = self._window,
)
if action == SmsEntryDialog.ACTION_CANCEL:
return
- assert phoneNumber, "A lock of phone number exists"
+ assert phoneNumbers, "A lock of phone number exists"
- self.number_selected(action, phoneNumber, message)
+ self.number_selected(action, phoneNumbers, message)
self._messageviewselection.unselect_all()
except Exception, e:
self._errorDisplay.push_exception()
self._onContactsviewRowActivatedId = 0
self._onAddressbookButtonChangedId = 0
self._window = gtk_toolbox.find_parent_window(self._contactsview)
- self._phoneTypeSelector = SmsEntryDialog(widgetTree)
+ self._smsDialog = SmsEntryDialog(widgetTree)
self._updateSink = gtk_toolbox.threaded_stage(
gtk_toolbox.comap(
self._contactsview.set_model(None)
self._contactsview.remove_column(self._contactColumn)
- def number_selected(self, action, number, message):
+ def number_selected(self, action, numbers, message):
"""
@note Actual dial function is patched in later
"""
if len(contactPhoneNumbers) == 0:
return
- action, phoneNumber, message = self._phoneTypeSelector.run(
+ action, phoneNumbers, message = self._smsDialog.run(
contactPhoneNumbers,
messages = (contactName, ),
parent = self._window,
)
if action == SmsEntryDialog.ACTION_CANCEL:
return
- assert phoneNumber, "A lack of phone number exists"
+ assert phoneNumbers, "A lack of phone number exists"
- self.number_selected(action, phoneNumber, message)
+ self.number_selected(action, phoneNumbers, message)
self._contactsviewselection.unselect_all()
except Exception, e:
self._errorDisplay.push_exception()