Example #1
0
	def _login_by_user(self):
		"""
		@note This must be run outside of the UI lock
		"""
		loggedIn, (username, password) = False, self._credentials
		tmpServiceId = self.GV_BACKEND
		while not loggedIn:
			with gtk_toolbox.gtk_lock():
				credentials = self._credentialsDialog.request_credentials(
					defaultCredentials = self._credentials
				)
				banner = hildonize.show_busy_banner_start(self._window, "Logging In...")
			try:
				username, password = credentials
				loggedIn = self._phoneBackends[tmpServiceId].login(username, password)
			finally:
				with gtk_toolbox.gtk_lock():
					hildonize.show_busy_banner_end(banner)

		if loggedIn:
			serviceId = tmpServiceId
			self._credentials = username, password
			_moduleLogger.info("Logged into %r through user request" % self._phoneBackends[serviceId])
		else:
			# Hint to the user that they are not logged in
			serviceId = self.NULL_BACKEND
			self._notebook.set_current_page(self.ACCOUNT_TAB)

		return loggedIn, serviceId
Example #2
0
	def _idle_setup(self):
		"""
		If something can be done after the UI loads, push it here so it's not blocking the UI
		"""
		# Barebones UI handlers
		try:
			from backends import null_backend
			import null_views

			self._phoneBackends = {self.NULL_BACKEND: null_backend.NullDialer()}
			with gtk_toolbox.gtk_lock():
				self._dialpads = {self.NULL_BACKEND: null_views.Dialpad(self._widgetTree)}
				self._accountViews = {self.NULL_BACKEND: null_views.AccountInfo(self._widgetTree)}
				self._historyViews = {self.NULL_BACKEND: null_views.CallHistoryView(self._widgetTree)}
				self._messagesViews = {self.NULL_BACKEND: null_views.MessagesView(self._widgetTree)}
				self._contactsViews = {self.NULL_BACKEND: null_views.ContactsView(self._widgetTree)}

				self._dialpads[self._selectedBackendId].enable()
				self._accountViews[self._selectedBackendId].enable()
				self._historyViews[self._selectedBackendId].enable()
				self._messagesViews[self._selectedBackendId].enable()
				self._contactsViews[self._selectedBackendId].enable()
		except Exception, e:
			with gtk_toolbox.gtk_lock():
				self._errorDisplay.push_exception()
Example #3
0
	def _attempt_login(self, force = False):
		"""
		@note This must be run outside of the UI lock
		"""
		try:
			assert self._initDone, "Attempting login before app is fully loaded"

			serviceId = self.NULL_BACKEND
			loggedIn = False
			if not force and self._defaultBackendId != self.NULL_BACKEND:
				with gtk_toolbox.gtk_lock():
					banner = hildonize.show_busy_banner_start(self._window, "Logging In...")
				try:
					self.refresh_session()
					serviceId = self._defaultBackendId
					loggedIn = True
				except Exception, e:
					_moduleLogger.exception('Session refresh failed with the following message "%s"' % str(e))
				finally:
					with gtk_toolbox.gtk_lock():
						hildonize.show_busy_banner_end(banner)
Example #4
0
			else:
				self._ledHandler = None

			try:
				import conic
			except (ImportError, OSError):
				conic = None
			self._connection = None
			if conic is not None:
				self._connection = conic.Connection()
				self._connection.connect("connection-event", self._on_connection_change, constants.__app_magic__)
				self._connection.request_connection(conic.CONNECT_FLAG_NONE)
			else:
				_moduleLogger.warning("No connection support")
		except Exception, e:
			with gtk_toolbox.gtk_lock():
				self._errorDisplay.push_exception()

		# Setup costly backends
		try:
			from backends import gv_backend
			from backends import file_backend
			import gv_views
			from backends import merge_backend

			with gtk_toolbox.gtk_lock():
				self._smsEntryWindow = gv_views.SmsEntryWindow(self._widgetTree, self._window, self._app)
			try:
				os.makedirs(constants._data_path_)
			except OSError, e:
				if e.errno != 17: