Merge branch 'important-vs-app-level' into 'main'

feedback-manager: Let app level cap important level

Closes #93

See merge request agx/feedbackd!188
This commit is contained in:
Guido Günther
2025-08-24 09:31:20 +00:00
4 changed files with 10 additions and 9 deletions
+1 -1
View File
@@ -39,7 +39,7 @@
'sm.puri.OSK0']</default> 'sm.puri.OSK0']</default>
<summary>List of apps that can override the feedback level</summary> <summary>List of apps that can override the feedback level</summary>
<description> <description>
Apps listed here can override the configured feedack level by Apps listed here can override the configured global feedback level by
setting the 'important' hint on the submitted event. setting the 'important' hint on the submitted event.
</description> </description>
</key> </key>
+2 -2
View File
@@ -51,8 +51,8 @@ These gsettings are used by ``feedbackd``:
- `profile`: The current overall feedback profile. Valid values are - `profile`: The current overall feedback profile. Valid values are
`full`, `quiet` and `silent`. `full`, `quiet` and `silent`.
- `allow-important`: List of apps that can override the feedback level - `allow-important`: List of apps that can override the global feedback
(useful for e.g. allowing the alarm clock to also emit sound when level (useful for e.g. allowing the alarm clock to also emit sound when
device is in silent mode). device is in silent mode).
- `prefer-flash`: Prefer camera flash over status LED - `prefer-flash`: Prefer camera flash over status LED
- `theme`: The feedback theme to use. This can be used to override - `theme`: The feedback theme to use. This can be used to override
+2 -2
View File
@@ -687,7 +687,7 @@ lfb_event_end_feedback_async (LfbEvent *self,
* @self: The event * @self: The event
* @timeout: The timeout * @timeout: The timeout
* *
* Tells the feedback server to end feedack after #timeout seconds. * Tells the feedback server to end feedback after #timeout seconds.
* The value -1 indicates to not set a timeout and let feedbacks stop * The value -1 indicates to not set a timeout and let feedbacks stop
* on their own while 0 indicates to loop all feedbacks endlessly. * on their own while 0 indicates to loop all feedbacks endlessly.
* They must be stopped via [method@LfbEvent.end_feedback] in this case. * They must be stopped via [method@LfbEvent.end_feedback] in this case.
@@ -817,7 +817,7 @@ lfb_event_get_feedback_profile (LfbEvent *self)
* *
* Tells the feedback server that the sender deems this to be an * Tells the feedback server that the sender deems this to be an
* important event. A feedback server might allow the sender to * important event. A feedback server might allow the sender to
* override the current feedback level when this is set. * override the current global feedback level when this is set.
*/ */
void void
lfb_event_set_important (LfbEvent *self, gboolean important) lfb_event_set_important (LfbEvent *self, gboolean important)
+5 -4
View File
@@ -371,7 +371,7 @@ parse_hints (GVariant *hints,
/** /**
* add_event_feedbacks: * add_event_feedbacks:
* *
* Add the suitable feedacks to the event. * Add the suitable feedbacks to the event.
* *
* Returns: `TRUE` if at least on feedback was added. * Returns: `TRUE` if at least on feedback was added.
*/ */
@@ -758,10 +758,11 @@ fbd_feedback_manager_get_effective_level (FbdFeedbackManager *self,
app_level = app_get_feedback_level (app_id); app_level = app_get_feedback_level (app_id);
can_important = app_is_important (self, app_id); can_important = app_is_important (self, app_id);
if (important && can_important) if (important && can_important) {
level = want_level; level = MIN (want_level, app_level);
else } else {
level = get_max_level (self->level, app_level, want_level); level = get_max_level (self->level, app_level, want_level);
}
return level; return level;
} }