quick frontend (app): call getReady once connected to bridge:

namespaces and encryption plugins are only retrieved once backend is ready, else they may
not yet be available (can happen notably when the backend is start at the same time as the
frontend, e.g. on Android).
This commit is contained in:
Goffi 2020-01-25 21:08:26 +01:00
commit 9dc875550c
2 changed files with 12 additions and 8 deletions

View file

@ -1,5 +1,4 @@
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
# SAT plugin for File Information Sharing (XEP-0329)
# Copyright (C) 2009-2019 Jérôme Poisson (goffi@goffi.org)

View file

@ -349,13 +349,7 @@ class QuickApp(object):
log.warning(_("Can't retrieve encryption plugins: {msg}").format(msg=failure_))
def onBridgeConnected(self):
self.bridge.namespacesGet(
callback=self._namespacesGetCb, errback=self._namespacesGetEb)
# we cache available encryption plugins, as we'll use them on earch
# new chat widget
self.bridge.encryptionPluginsGet(
callback=self._encryptionPluginsGetCb,
errback=self._encryptionPluginsGetEb)
self.bridge.getReady(self.onBackendReady)
def _bridgeCb(self):
self.registerSignal("connected")
@ -400,6 +394,17 @@ class QuickApp(object):
else:
print((_("Error while initialising bridge: {}".format(failure))))
def onBackendReady(self):
log.info("backend is ready")
self.bridge.namespacesGet(
callback=self._namespacesGetCb, errback=self._namespacesGetEb)
# we cache available encryption plugins, as we'll use them on each
# new chat widget
self.bridge.encryptionPluginsGet(
callback=self._encryptionPluginsGetCb,
errback=self._encryptionPluginsGetEb)
@property
def current_profile(self):
"""Profile that a user would expect to use"""