diff --git a/applications/services/rgb_backlight/rgb_backlight.c b/applications/services/rgb_backlight/rgb_backlight.c index 053654ec2..9dc60a5ec 100644 --- a/applications/services/rgb_backlight/rgb_backlight.c +++ b/applications/services/rgb_backlight/rgb_backlight.c @@ -154,7 +154,9 @@ void rainbow_timer_start(RGBBacklightApp* app) { // stop furi timer for rainbow void rainbow_timer_stop(RGBBacklightApp* app) { - furi_timer_stop(app->rainbow_timer); + if (furi_timer_is_running (app->rainbow_timer)){ + furi_timer_stop(app->rainbow_timer); + } } // if rgb_backlight_installed then apply rainbow colors to backlight and start/restart/stop rainbow_timer diff --git a/applications/settings/notification_settings/notification_settings_app.c b/applications/settings/notification_settings/notification_settings_app.c index dd2206dc2..2408d4e05 100644 --- a/applications/settings/notification_settings/notification_settings_app.c +++ b/applications/settings/notification_settings/notification_settings_app.c @@ -355,7 +355,6 @@ static void rgb_backlight_rainbow_changed(VariableItem* item) { variable_item_set_current_value_text(item, rgb_backlight_rainbow_mode_text[index]); app->notification->rgb_srv->settings->rainbow_mode = rgb_backlight_rainbow_mode_value[index]; - rainbow_timer_starter(app->notification->rgb_srv); rgb_backlight_settings_save(app->notification->rgb_srv->settings); // restore saved rgb backlight settings if we switch_off rainbow mode @@ -367,6 +366,9 @@ static void rgb_backlight_rainbow_changed(VariableItem* item) { rgb_backlight_set_led_static_color( 0, app->notification->rgb_srv->settings->led_0_color_index); rgb_backlight_update(app->notification->rgb_srv->settings->brightness); + rainbow_timer_stop (app->notification->rgb_srv); + } else { + rainbow_timer_starter(app->notification->rgb_srv); } }