Mercurial > libervia-backend
comparison sat_frontends/quick_frontend/quick_app.py @ 3118:02492db1ce39
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).
author | Goffi <goffi@goffi.org> |
---|---|
date | Sat, 25 Jan 2020 21:08:26 +0100 |
parents | b067736d5099 |
children | b9486a7f9b4f |
comparison
equal
deleted
inserted
replaced
3117:385fdd684f87 | 3118:02492db1ce39 |
---|---|
347 | 347 |
348 def _encryptionPluginsGetEb(self, failure_): | 348 def _encryptionPluginsGetEb(self, failure_): |
349 log.warning(_("Can't retrieve encryption plugins: {msg}").format(msg=failure_)) | 349 log.warning(_("Can't retrieve encryption plugins: {msg}").format(msg=failure_)) |
350 | 350 |
351 def onBridgeConnected(self): | 351 def onBridgeConnected(self): |
352 self.bridge.namespacesGet( | 352 self.bridge.getReady(self.onBackendReady) |
353 callback=self._namespacesGetCb, errback=self._namespacesGetEb) | |
354 # we cache available encryption plugins, as we'll use them on earch | |
355 # new chat widget | |
356 self.bridge.encryptionPluginsGet( | |
357 callback=self._encryptionPluginsGetCb, | |
358 errback=self._encryptionPluginsGetEb) | |
359 | 353 |
360 def _bridgeCb(self): | 354 def _bridgeCb(self): |
361 self.registerSignal("connected") | 355 self.registerSignal("connected") |
362 self.registerSignal("disconnected") | 356 self.registerSignal("disconnected") |
363 self.registerSignal("actionNew") | 357 self.registerSignal("actionNew") |
397 elif isinstance(failure, exceptions.BridgeInitError): | 391 elif isinstance(failure, exceptions.BridgeInitError): |
398 print((_("Can't init bridge"))) | 392 print((_("Can't init bridge"))) |
399 sys.exit(1) | 393 sys.exit(1) |
400 else: | 394 else: |
401 print((_("Error while initialising bridge: {}".format(failure)))) | 395 print((_("Error while initialising bridge: {}".format(failure)))) |
396 | |
397 def onBackendReady(self): | |
398 log.info("backend is ready") | |
399 self.bridge.namespacesGet( | |
400 callback=self._namespacesGetCb, errback=self._namespacesGetEb) | |
401 # we cache available encryption plugins, as we'll use them on each | |
402 # new chat widget | |
403 self.bridge.encryptionPluginsGet( | |
404 callback=self._encryptionPluginsGetCb, | |
405 errback=self._encryptionPluginsGetEb) | |
406 | |
402 | 407 |
403 @property | 408 @property |
404 def current_profile(self): | 409 def current_profile(self): |
405 """Profile that a user would expect to use""" | 410 """Profile that a user would expect to use""" |
406 try: | 411 try: |