1
mirror of https://github.com/DarkFlippers/unleashed-firmware.git synced 2025-12-12 04:34:43 +04:00

Text Box: fix displaying text with end text focus (#3658)

* text box: fix reset text offset state after initial text iteration
* debug: add tests for text box view debug app
* hal: flash: removed redundant #else

Co-authored-by: hedger <hedger@nanode.su>
This commit is contained in:
gornekich
2024-05-22 18:14:33 +01:00
committed by GitHub
parent e0797131ec
commit 11070c9e5e
3 changed files with 30 additions and 4 deletions

View File

@@ -18,6 +18,33 @@ static const TextBoxViewTestContent text_box_view_test_content_arr[] = {
.focus = TextBoxFocusStart, .focus = TextBoxFocusStart,
.text = "Hello, let's test text box. Press Right and Left to switch content", .text = "Hello, let's test text box. Press Right and Left to switch content",
}, },
{
.font = TextBoxFontText,
.focus = TextBoxFocusEnd,
.text = "First test to add dynamically lines with EndFocus set\nLine 0",
},
{
.font = TextBoxFontText,
.focus = TextBoxFocusEnd,
.text = "First test to add dynamically lines with EndFocus set\nLine 0\nLine 1",
},
{
.font = TextBoxFontText,
.focus = TextBoxFocusEnd,
.text = "First test to add dynamically lines with EndFocus set\nLine 0\nLine 1\nLine 2",
},
{
.font = TextBoxFontText,
.focus = TextBoxFocusEnd,
.text =
"First test to add dynamically lines with EndFocus set\nLine 0\nLine 1\nLine 2\nLine 3",
},
{
.font = TextBoxFontText,
.focus = TextBoxFocusEnd,
.text =
"First test to add dynamically lines with EndFocus set\nLine 0\nLine 1\nLine 2\nLine 3\nLine 4",
},
{ {
.font = TextBoxFontText, .font = TextBoxFontText,
.focus = TextBoxFocusStart, .focus = TextBoxFocusStart,
@@ -57,7 +84,8 @@ typedef struct {
} TextBoxViewTest; } TextBoxViewTest;
static void text_box_update_view(TextBoxViewTest* instance) { static void text_box_update_view(TextBoxViewTest* instance) {
text_box_reset(instance->text_box); // Intentional incorrect way to reset text box to verify that state resets if text changes
text_box_set_text(instance->text_box, "");
const TextBoxViewTestContent* content = const TextBoxViewTestContent* content =
&text_box_view_test_content_arr[instance->current_content_i]; &text_box_view_test_content_arr[instance->current_content_i];

View File

@@ -227,14 +227,13 @@ static void text_box_prepare_model(Canvas* canvas, TextBoxModel* model) {
text_box_seek_next_line(canvas, model); text_box_seek_next_line(canvas, model);
lines_num++; lines_num++;
} while(!text_box_end_of_text_reached(model)); } while(!text_box_end_of_text_reached(model));
model->text_offset = 0;
lines_num++; lines_num++;
if(model->focus == TextBoxFocusEnd) { if(model->focus == TextBoxFocusEnd) {
if(lines_num > model->lines_on_screen) { if(lines_num > model->lines_on_screen) {
model->text_offset = window_offset[(lines_num - 1) % model->lines_on_screen]; model->text_offset = window_offset[(lines_num - 1) % model->lines_on_screen];
} }
} else {
model->text_offset = 0;
} }
if(lines_num > model->lines_on_screen) { if(lines_num > model->lines_on_screen) {

View File

@@ -19,7 +19,6 @@
#ifdef FLASH_OP_DEBUG #ifdef FLASH_OP_DEBUG
#undef FURI_LOG_T #undef FURI_LOG_T
#define FURI_LOG_T(...) #define FURI_LOG_T(...)
#else
#endif #endif
#define FURI_HAL_CRITICAL_MSG "Critical flash operation fail" #define FURI_HAL_CRITICAL_MSG "Critical flash operation fail"