14
14
15
15
#include "tag_helper.h"
16
16
17
+ #include "settings.h"
18
+
17
19
typedef enum {
18
20
CHAMELEON_MENU_HOME ,
19
21
CHAMELEON_MENU_BACK ,
20
22
CHAMELEON_MENU_SLOT ,
21
23
CHAMELEON_MENU_CARD_NAME ,
22
24
CHAMELEON_MENU_SLOT_SELECT ,
25
+ CHAMELEON_MENU_DEFAULT_CARD ,
23
26
CHAMELEON_MENU_CARD_DATA ,
24
27
CHAMELEON_MENU_CARD_TYPE ,
25
28
CHAMELEON_MENU_CARD_ADVANCED ,
@@ -41,6 +44,18 @@ void chameleon_scene_menu_on_event(mui_list_view_event_t event, mui_list_view_t
41
44
mui_scene_dispatcher_next_scene (app -> p_scene_dispatcher , CHAMELEON_SCENE_MENU_CARD_SLOT );
42
45
break ;
43
46
47
+ case CHAMELEON_MENU_DEFAULT_CARD : {
48
+ settings_data_t * settings = settings_get_data ();
49
+ uint8_t slot = tag_emulation_get_slot ();
50
+ if (settings -> chameleon_default_slot_index == slot ) {
51
+ settings -> chameleon_default_slot_index = INVALID_SLOT_INDEX ;
52
+ } else {
53
+ settings -> chameleon_default_slot_index = slot ;
54
+ }
55
+
56
+ mui_list_view_item_set_sub_text (p_item , slot == settings -> chameleon_default_slot_index ? _T (ON_F ) : _T (OFF_F ));
57
+ } break ;
58
+
44
59
case CHAMELEON_MENU_SLOT_SELECT :
45
60
mui_scene_dispatcher_next_scene (app -> p_scene_dispatcher , CHAMELEON_SCENE_MENU_CARD_SLOT_SELECT );
46
61
break ;
@@ -65,32 +80,40 @@ void chameleon_scene_menu_on_event(mui_list_view_event_t event, mui_list_view_t
65
80
66
81
void chameleon_scene_menu_on_enter (void * user_data ) {
67
82
app_chameleon_t * app = user_data ;
68
-
69
83
char buff [64 ];
70
84
uint8_t slot = tag_emulation_get_slot ();
71
85
tag_specific_type_t tag_type = tag_helper_get_active_tag_type ();
72
86
const tag_specific_type_name_t * tag_name = tag_helper_get_tag_type_name (tag_type );
73
87
const nfc_tag_14a_coll_res_reference_t * coll_res = tag_helper_get_active_coll_res_ref ();
74
88
75
89
sprintf (buff , "[%02d]" , slot + 1 );
76
- mui_list_view_add_item_ext (app -> p_list_view , ICON_VIEW , _T (APP_CHAMELEON_CARD_SLOT ), buff , (void * )CHAMELEON_MENU_SLOT_SELECT );
90
+ mui_list_view_add_item_ext (app -> p_list_view , ICON_VIEW , _T (APP_CHAMELEON_CARD_SLOT ), buff ,
91
+ (void * )CHAMELEON_MENU_SLOT_SELECT );
77
92
strcpy (buff , "[" );
78
93
tag_helper_get_nickname (buff + 1 , sizeof (buff ) - 3 );
79
94
strcat (buff , "]" );
80
- mui_list_view_add_item_ext (app -> p_list_view , ICON_KEY , _T (APP_CHAMELEON_CARD_NICK ), buff , (void * )CHAMELEON_MENU_CARD_NAME );
95
+ mui_list_view_add_item_ext (app -> p_list_view , ICON_KEY , _T (APP_CHAMELEON_CARD_NICK ), buff ,
96
+ (void * )CHAMELEON_MENU_CARD_NAME );
81
97
82
98
strcpy (buff , "[" );
83
99
tag_helper_format_uid (buff + 1 , coll_res -> uid , * (coll_res -> size ));
84
100
strcat (buff , "]" );
85
101
mui_list_view_add_item_ext (app -> p_list_view , ICON_DATA , _T (APP_CHAMELEON_CARD_ID ), buff , (void * )-1 );
86
102
87
103
sprintf (buff , "[%s]" , tag_name -> long_name );
88
- mui_list_view_add_item_ext (app -> p_list_view , ICON_FAVORITE , _T (APP_CHAMELEON_CARD_TYPE ), buff , (void * )CHAMELEON_MENU_CARD_TYPE );
104
+ mui_list_view_add_item_ext (app -> p_list_view , ICON_FAVORITE , _T (APP_CHAMELEON_CARD_TYPE ), buff ,
105
+ (void * )CHAMELEON_MENU_CARD_TYPE );
106
+
107
+ settings_data_t * settings = settings_get_data ();
108
+ mui_list_view_add_item_ext (app -> p_list_view , ICON_SLOT , _T (APP_CHAMELEON_CARD_DEFAULT_CARD ),
109
+ settings -> chameleon_default_slot_index == slot ? _T (ON_F ) : _T (OFF_F ),
110
+ (void * )CHAMELEON_MENU_DEFAULT_CARD );
89
111
90
112
mui_list_view_add_item (app -> p_list_view , ICON_FILE , _T (APP_CHAMELEON_CARD_DATA ), (void * )CHAMELEON_MENU_CARD_DATA );
91
- mui_list_view_add_item (app -> p_list_view , ICON_PAGE , _T (APP_CHAMELEON_CARD_ADVANCED ), (void * )CHAMELEON_MENU_CARD_ADVANCED );
92
- mui_list_view_add_item (app -> p_list_view , ICON_SLOT , _T (APP_CHAMELEON_CARD_SLOT_SETTINGS ), (void * )CHAMELEON_MENU_SLOT );
93
- // mui_list_view_add_item(app->p_list_view, ICON_SETTINGS, "全局设置..", (void *)-1);
113
+ mui_list_view_add_item (app -> p_list_view , ICON_PAGE , _T (APP_CHAMELEON_CARD_ADVANCED ),
114
+ (void * )CHAMELEON_MENU_CARD_ADVANCED );
115
+ mui_list_view_add_item (app -> p_list_view , ICON_SLOT , _T (APP_CHAMELEON_CARD_SLOT_SETTINGS ),
116
+ (void * )CHAMELEON_MENU_SLOT );
94
117
95
118
mui_list_view_add_item (app -> p_list_view , ICON_BACK , _T (TAG_DETAILS ), (void * )CHAMELEON_MENU_BACK );
96
119
mui_list_view_add_item (app -> p_list_view , ICON_HOME , _T (MAIN_MENU ), (void * )CHAMELEON_MENU_HOME );
0 commit comments