Przeglądaj źródła

Use FuriString for dynamic labels

TollyH 2 lat temu
rodzic
commit
474f37ce55

+ 9 - 7
scenes/mfc_editor_scene_block_select.c

@@ -25,19 +25,21 @@ void mfc_editor_scene_block_select_on_enter(void* context) {
 
 
     Submenu* submenu = instance->submenu;
     Submenu* submenu = instance->submenu;
 
 
-    char header[sizeof("Sector ") + 2];
-    snprintf(header, sizeof(header), "Sector %hhu", instance->current_sector);
-    submenu_set_header(submenu, header);
-
     uint8_t first_block = mf_classic_get_first_block_num_of_sector(instance->current_sector);
     uint8_t first_block = mf_classic_get_first_block_num_of_sector(instance->current_sector);
     uint8_t block_num = mf_classic_get_blocks_num_in_sector(instance->current_sector);
     uint8_t block_num = mf_classic_get_blocks_num_in_sector(instance->current_sector);
+
+    FuriString* label = furi_string_alloc();
     for(uint8_t i = 0; i < block_num; i++) {
     for(uint8_t i = 0; i < block_num; i++) {
         uint8_t block_index = first_block + i;
         uint8_t block_index = first_block + i;
-        char label[sizeof("Block ") + 3];
-        snprintf(label, sizeof(label), "Block %hhu", block_index);
+        furi_string_printf(label, "Block %hhu", block_index);
         submenu_add_item(
         submenu_add_item(
-            submenu, label, block_index, mfc_editor_scene_block_select_submenu_callback, instance);
+            submenu,
+            furi_string_get_cstr(label),
+            block_index,
+            mfc_editor_scene_block_select_submenu_callback,
+            instance);
     }
     }
+    furi_string_free(label);
 
 
     if(instance->current_sector == 0) {
     if(instance->current_sector == 0) {
         submenu_add_item(
         submenu_add_item(

+ 9 - 4
scenes/mfc_editor_scene_sector_select.c

@@ -9,15 +9,20 @@ void mfc_editor_scene_sector_select_on_enter(void* context) {
     MfcEditorApp* instance = context;
     MfcEditorApp* instance = context;
 
 
     Submenu* submenu = instance->submenu;
     Submenu* submenu = instance->submenu;
-    submenu_set_header(submenu, "Select sector");
 
 
     uint8_t sectors_num = mf_classic_get_total_sectors_num(instance->mf_classic_data->type);
     uint8_t sectors_num = mf_classic_get_total_sectors_num(instance->mf_classic_data->type);
+
+    FuriString* label = furi_string_alloc();
     for(uint8_t i = 0; i < sectors_num; i++) {
     for(uint8_t i = 0; i < sectors_num; i++) {
-        char label[sizeof("Sector ") + 2];
-        snprintf(label, sizeof(label), "Sector %hhu", i);
+        furi_string_printf(label, "Sector %hhu", i);
         submenu_add_item(
         submenu_add_item(
-            submenu, label, i, mfc_editor_scene_sector_select_submenu_callback, instance);
+            submenu,
+            furi_string_get_cstr(label),
+            i,
+            mfc_editor_scene_sector_select_submenu_callback,
+            instance);
     }
     }
+    furi_string_free(label);
 
 
     submenu_set_selected_item(
     submenu_set_selected_item(
         submenu,
         submenu,