55 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			55 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| #include "../ibutton_i.h"
 | |
| #include <toolbox/path.h>
 | |
| 
 | |
| void ibutton_scene_delete_confirm_on_enter(void* context) {
 | |
|     iButton* ibutton = context;
 | |
|     iButtonKey* key = ibutton->key;
 | |
|     Widget* widget = ibutton->widget;
 | |
| 
 | |
|     FuriString* tmp = furi_string_alloc();
 | |
| 
 | |
|     widget_add_button_element(widget, GuiButtonTypeLeft, "Back", ibutton_widget_callback, context);
 | |
|     widget_add_button_element(
 | |
|         widget, GuiButtonTypeRight, "Delete", ibutton_widget_callback, context);
 | |
| 
 | |
|     furi_string_printf(tmp, "\e#Delete %s?\e#", ibutton->key_name);
 | |
|     widget_add_text_box_element(
 | |
|         widget, 0, 0, 128, 23, AlignCenter, AlignCenter, furi_string_get_cstr(tmp), false);
 | |
| 
 | |
|     furi_string_reset(tmp);
 | |
|     ibutton_protocols_render_brief_data(ibutton->protocols, key, tmp);
 | |
| 
 | |
|     widget_add_string_multiline_element(
 | |
|         widget, 128 / 2, 24, AlignCenter, AlignTop, FontSecondary, furi_string_get_cstr(tmp));
 | |
| 
 | |
|     view_dispatcher_switch_to_view(ibutton->view_dispatcher, iButtonViewWidget);
 | |
|     furi_string_free(tmp);
 | |
| }
 | |
| 
 | |
| bool ibutton_scene_delete_confirm_on_event(void* context, SceneManagerEvent event) {
 | |
|     iButton* ibutton = context;
 | |
|     SceneManager* scene_manager = ibutton->scene_manager;
 | |
|     bool consumed = false;
 | |
| 
 | |
|     if(event.type == SceneManagerEventTypeCustom) {
 | |
|         consumed = true;
 | |
|         if(event.event == GuiButtonTypeRight) {
 | |
|             if(ibutton_delete_key(ibutton)) {
 | |
|                 scene_manager_next_scene(scene_manager, iButtonSceneDeleteSuccess);
 | |
|             } else {
 | |
|                 dialog_message_show_storage_error(ibutton->dialogs, "Cannot delete\nkey file");
 | |
|                 scene_manager_previous_scene(scene_manager);
 | |
|             }
 | |
|         } else if(event.event == GuiButtonTypeLeft) {
 | |
|             scene_manager_previous_scene(scene_manager);
 | |
|         }
 | |
|     }
 | |
| 
 | |
|     return consumed;
 | |
| }
 | |
| 
 | |
| void ibutton_scene_delete_confirm_on_exit(void* context) {
 | |
|     iButton* ibutton = context;
 | |
|     widget_reset(ibutton->widget);
 | |
| }
 | 
