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
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()
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)
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: