Skip to content

AppletManager doesn't know what to do when a D-Bus call fails #7

@jtgans

Description

@jtgans

Right now the AppletManager is pretty rough, and has no idea what to do and simply dumps an exception when one of the following happens:

  • An applet on D-Bus dies off
  • An applet on D-Bus throws an exception in its D-Bus method handler

At the moment, this is okay-ish since we're still pre-alpha code, but obviously it's not ideal. We need some way of tracking the applet peers on D-Bus. Maybe something like this:

  1. Applets register D-Bus objects using the interface com.theonelab.g13.Applet under the path /com/theonelab/g13/Applet/AppletName
  2. AppletManager uses the list of objects under /com/theonelab/g13/Applet/... as it's literal dictionary of applets available every single time it needs to do something with one. IOW, it polls D-Bus for applets and does a loose mapping between applet object name and its internal list of "registered applets".

This would reduce some of the sources of the above two problems, but ultimately, I think we need lots of exception handling written around D-Bus proxies. Maybe a new class that wraps dbus.proxy.ObjectProxy to handle these things more gracefully?

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't workinghelp wantedExtra attention is neededrelease blockerThis blocks our next release

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions