# HG changeset patch # User Goffi # Date 1581534178 -3600 # Node ID b0af45a9205588a1a006b8591c4f02c42916d33e # Parent ab1e97b7e8a53237074a719c07b63b1e95b222e3 android: do not restore previously selected widget if an intent contains a widget to create. diff -r ab1e97b7e8a5 -r b0af45a92055 cagou/core/platform_/android.py --- a/cagou/core/platform_/android.py Wed Feb 12 20:02:58 2020 +0100 +++ b/cagou/core/platform_/android.py Wed Feb 12 20:02:58 2020 +0100 @@ -90,6 +90,7 @@ activity.bind(on_new_intent=self.on_new_intent) self.cache.append((self.on_new_intent, mActivity.getIntent())) self.last_selected_wid = None + self.restore_selected_wid = True host.addListener('profilePlugged', self.onProfilePlugged) host.addListener('selected', self.onSelectedWidget) local_dir = Path(host.getConfig('', 'local_dir')).resolve() @@ -174,7 +175,7 @@ def privateDataGetCb(self, data_s, profile): data = data_format.deserialise(data_s, type_check=None) - if data is not None: + if data is not None and self.restore_selected_wid: log.debug(f"restoring previous widget {data}") try: name = data['name'] @@ -368,6 +369,11 @@ except KeyError as e: log.warning(f"incomplete action {action}: {e}") else: + # we don't want stored selected widget to be displayed after this + # one + log.debug("cancelling restoration of previous widget") + self.restore_selected_wid = False + # and now we open the widget linked to the intent current_profile = next(iter(G.host.profiles)) Clock.schedule_once( lambda *args: G.host.doAction(