Skip to content

Implement recursive theme expansion and custom theme loading

Guido Gunther requested to merge guido.gunther/feedbackd:merge-themes into main

So far one would have to overwrite the whole theme. That was true for user themes and device specific themes. One can now just change the relevant theme entries and specify a parent-theme that will then get loaded. In order to keep device specific themes intact when chaining up to the default theme the device specific them is interleaved to keep the current behavior. This will allow us to:

  • make feedbackd-device-themes significantly smaller (since we can just grab most of the entries from the default theme)
  • implement configuration bits in phosh-mobile-settings since we can just honor the users current theme and put a __custom them before that

This e.g overrides the message-missed-instant led feedback:

{
  "name" : "custom",
  "parent-name": "default",
  "profiles" : [
    {
      "name" : "silent",
      "feedbacks" : [
        {
          "event-name" : "message-missed-instant",
          "type"       : "Led",
          "color"      : "blue",
          "frequency"  : 5000
        }
      ]
    }
  ]
}

For more examples see the tests/test-fbd-theme-expander.c and the associated json files.

We also greatly reduce untested logic in fbd-feedback-manager by now tested code in the fbd-theme-expander. Other bits moved to gmobile

Closes: #38 (closed)

Edited by Guido Gunther

Merge request reports