X-Git-Url: http://git.maemo.org/git/?p=theonering;a=blobdiff_plain;f=src%2Fgvoice%2Fsession.py;h=5a825f0d1337aeb486fa25af7eef4eadeb86ac4a;hp=8151c051a96a1599c21b4614931dae95cd394235;hb=82d3b4a7ae787eaaf1ac5ff07bc60aa25c84d50a;hpb=af0dd050a9a91b59d12b9d7267f5127db989c550 diff --git a/src/gvoice/session.py b/src/gvoice/session.py index 8151c05..5a825f0 100644 --- a/src/gvoice/session.py +++ b/src/gvoice/session.py @@ -159,19 +159,46 @@ class Session(object): def _login(self, username, password, on_success, on_error): self._username = username self._password = password - try: - isLoggedIn = yield ( - self._backend.login, - (self._username, self._password), - {}, - ) - except Exception, e: - on_error(e) - return + + isLoggedIn = False + + if not isLoggedIn and self._backend.is_quick_login_possible(): + try: + isLoggedIn = yield ( + self._backend.is_authed, + (), + {}, + ) + except Exception, e: + on_error(e) + return + if isLoggedIn: + _moduleLogger.info("Logged in through cookies") + + if not isLoggedIn: + try: + isLoggedIn = yield ( + self._backend.login, + (self._username, self._password), + {}, + ) + except Exception, e: + on_error(e) + return + if isLoggedIn: + _moduleLogger.info("Logged in through credentials") self._masterStateMachine.start() on_success(isLoggedIn) + def shutdown(self): + self._asyncPool.stop() + self._masterStateMachine.stop() + self._backend.shutdown() + + self._username = None + self._password = None + def logout(self): self._asyncPool.stop() self._masterStateMachine.stop()