diff --git a/radio/src/storage/conversions/conversions.cpp b/radio/src/storage/conversions/conversions.cpp index eb638950e..15949cbb2 100644 --- a/radio/src/storage/conversions/conversions.cpp +++ b/radio/src/storage/conversions/conversions.cpp @@ -33,12 +33,15 @@ static void drawProgressScreen(const char* filename, int progress, int total) { #if defined(COLORLCD) - OpenTxTheme* l_theme = static_cast(theme); + lcdInitDirectDrawing(); - lcd->reset(); + OpenTxTheme* l_theme = static_cast(theme); l_theme->drawBackground(lcd); - lcd->drawText(LCD_W/2, LCD_H/2 - 30, STR_CONVERTING, FONT(XL) | CENTERED | COLOR_THEME_WARNING); - lcd->drawText(LCD_W/2, LCD_H/2, filename, FONT(STD) | CENTERED | COLOR_THEME_SECONDARY1); + + lcd->drawText(LCD_W / 2, LCD_H / 2 - 30, STR_CONVERTING, + FONT(XL) | CENTERED | COLOR_THEME_WARNING); + lcd->drawText(LCD_W / 2, LCD_H / 2, filename, + FONT(STD) | CENTERED | COLOR_THEME_SECONDARY1); l_theme->drawProgressBar(lcd, LCD_W / 4, @@ -46,9 +49,13 @@ static void drawProgressScreen(const char* filename, int progress, int total) LCD_W / 2, 20, progress, total); + lcdRefresh(); + + // invalidate screen to enable quick return + // to normal display routine + lv_obj_invalidate(lv_scr_act()); WDG_RESET(); - lcdRefresh(); #else // TODO: BW progress screen #endif