mirror of
https://github.com/Next-Flip/Momentum-Firmware.git
synced 2026-05-12 11:18:35 -07:00
fix 5 plugins ui update
This commit is contained in:
100
applications/external/text_viewer/text_viewer.c
vendored
100
applications/external/text_viewer/text_viewer.c
vendored
@@ -223,56 +223,58 @@ int32_t text_viewer_app(void* p) {
|
||||
text_viewer_read_file(text_viewer);
|
||||
|
||||
InputEvent input;
|
||||
while(furi_message_queue_get(text_viewer->input_queue, &input, FuriWaitForever) ==
|
||||
FuriStatusOk) {
|
||||
if(input.key == InputKeyBack) {
|
||||
break;
|
||||
} else if(input.key == InputKeyUp) {
|
||||
furi_check(
|
||||
furi_mutex_acquire(text_viewer->mutex, FuriWaitForever) == FuriStatusOk);
|
||||
if(text_viewer->model->file_offset > 0) {
|
||||
text_viewer->model->file_offset -= TEXT_VIEWER_BYTES_PER_LINE;
|
||||
if(!text_viewer_read_file(text_viewer)) break;
|
||||
while(1) {
|
||||
if(furi_message_queue_get(text_viewer->input_queue, &input, 100) == FuriStatusOk) {
|
||||
if(input.key == InputKeyBack) {
|
||||
break;
|
||||
} else if(input.key == InputKeyUp) {
|
||||
furi_check(
|
||||
furi_mutex_acquire(text_viewer->mutex, FuriWaitForever) == FuriStatusOk);
|
||||
if(text_viewer->model->file_offset > 0) {
|
||||
text_viewer->model->file_offset -= TEXT_VIEWER_BYTES_PER_LINE;
|
||||
if(!text_viewer_read_file(text_viewer)) break;
|
||||
}
|
||||
furi_mutex_release(text_viewer->mutex);
|
||||
} else if(input.key == InputKeyDown) {
|
||||
furi_check(
|
||||
furi_mutex_acquire(text_viewer->mutex, FuriWaitForever) == FuriStatusOk);
|
||||
uint32_t last_byte_on_screen =
|
||||
text_viewer->model->file_offset + text_viewer->model->file_read_bytes;
|
||||
|
||||
if(text_viewer->model->file_size > last_byte_on_screen) {
|
||||
text_viewer->model->file_offset += TEXT_VIEWER_BYTES_PER_LINE;
|
||||
if(!text_viewer_read_file(text_viewer)) break;
|
||||
}
|
||||
furi_mutex_release(text_viewer->mutex);
|
||||
} else if(input.key == InputKeyLeft) {
|
||||
furi_check(
|
||||
furi_mutex_acquire(text_viewer->mutex, FuriWaitForever) == FuriStatusOk);
|
||||
text_viewer->model->mode = !text_viewer->model->mode;
|
||||
furi_mutex_release(text_viewer->mutex);
|
||||
} else if(input.key == InputKeyRight) {
|
||||
FuriString* buffer;
|
||||
buffer = furi_string_alloc();
|
||||
furi_string_printf(
|
||||
buffer,
|
||||
"File path: %s\nFile size: %lu (0x%lX)",
|
||||
furi_string_get_cstr(file_path),
|
||||
text_viewer->model->file_size,
|
||||
text_viewer->model->file_size);
|
||||
|
||||
DialogsApp* dialogs = furi_record_open(RECORD_DIALOGS);
|
||||
DialogMessage* message = dialog_message_alloc();
|
||||
dialog_message_set_header(
|
||||
message, "Text Viewer v1.1", 16, 2, AlignLeft, AlignTop);
|
||||
dialog_message_set_icon(message, &I_text_10px, 3, 2);
|
||||
dialog_message_set_text(
|
||||
message, furi_string_get_cstr(buffer), 3, 16, AlignLeft, AlignTop);
|
||||
dialog_message_set_buttons(message, NULL, NULL, "Back");
|
||||
dialog_message_show(dialogs, message);
|
||||
|
||||
furi_string_free(buffer);
|
||||
dialog_message_free(message);
|
||||
furi_record_close(RECORD_DIALOGS);
|
||||
}
|
||||
furi_mutex_release(text_viewer->mutex);
|
||||
} else if(input.key == InputKeyDown) {
|
||||
furi_check(
|
||||
furi_mutex_acquire(text_viewer->mutex, FuriWaitForever) == FuriStatusOk);
|
||||
uint32_t last_byte_on_screen =
|
||||
text_viewer->model->file_offset + text_viewer->model->file_read_bytes;
|
||||
|
||||
if(text_viewer->model->file_size > last_byte_on_screen) {
|
||||
text_viewer->model->file_offset += TEXT_VIEWER_BYTES_PER_LINE;
|
||||
if(!text_viewer_read_file(text_viewer)) break;
|
||||
}
|
||||
furi_mutex_release(text_viewer->mutex);
|
||||
} else if(input.key == InputKeyLeft) {
|
||||
furi_check(
|
||||
furi_mutex_acquire(text_viewer->mutex, FuriWaitForever) == FuriStatusOk);
|
||||
text_viewer->model->mode = !text_viewer->model->mode;
|
||||
furi_mutex_release(text_viewer->mutex);
|
||||
} else if(input.key == InputKeyRight) {
|
||||
FuriString* buffer;
|
||||
buffer = furi_string_alloc();
|
||||
furi_string_printf(
|
||||
buffer,
|
||||
"File path: %s\nFile size: %lu (0x%lX)",
|
||||
furi_string_get_cstr(file_path),
|
||||
text_viewer->model->file_size,
|
||||
text_viewer->model->file_size);
|
||||
|
||||
DialogsApp* dialogs = furi_record_open(RECORD_DIALOGS);
|
||||
DialogMessage* message = dialog_message_alloc();
|
||||
dialog_message_set_header(message, "Text Viewer v1.1", 16, 2, AlignLeft, AlignTop);
|
||||
dialog_message_set_icon(message, &I_text_10px, 3, 2);
|
||||
dialog_message_set_text(
|
||||
message, furi_string_get_cstr(buffer), 3, 16, AlignLeft, AlignTop);
|
||||
dialog_message_set_buttons(message, NULL, NULL, "Back");
|
||||
dialog_message_show(dialogs, message);
|
||||
|
||||
furi_string_free(buffer);
|
||||
dialog_message_free(message);
|
||||
furi_record_close(RECORD_DIALOGS);
|
||||
}
|
||||
view_port_update(text_viewer->view_port);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user