# HG changeset patch # User Goffi # Date 1579982906 -3600 # Node ID 02492db1ce393ab5a58fbf3cedb37d8410303578 # Parent 385fdd684f8749056b6f9764ef9c84789faeee5a 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). diff -r 385fdd684f87 -r 02492db1ce39 sat/plugins/plugin_xep_0329.py --- a/sat/plugins/plugin_xep_0329.py Sat Jan 25 21:08:25 2020 +0100 +++ b/sat/plugins/plugin_xep_0329.py Sat Jan 25 21:08:26 2020 +0100 @@ -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) diff -r 385fdd684f87 -r 02492db1ce39 sat_frontends/quick_frontend/quick_app.py --- a/sat_frontends/quick_frontend/quick_app.py Sat Jan 25 21:08:25 2020 +0100 +++ b/sat_frontends/quick_frontend/quick_app.py Sat Jan 25 21:08:26 2020 +0100 @@ -349,13 +349,7 @@ 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 @@ 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"""