[FL-1371] Lfrfid app: add manufacturers to "Add manually" scene (#577)
* Lfrfid app: add manufacturers to "Add manually" scene * Lfrfid app: fix submenu name size
This commit is contained in:
		@@ -17,6 +17,22 @@ const char* lfrfid_key_get_type_string(LfrfidKeyType type) {
 | 
				
			|||||||
    return "Unknown";
 | 
					    return "Unknown";
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					const char* lfrfid_key_get_manufacturer_string(LfrfidKeyType type) {
 | 
				
			||||||
 | 
					    switch(type) {
 | 
				
			||||||
 | 
					    case LfrfidKeyType::KeyEM4100:
 | 
				
			||||||
 | 
					        return "Em-Marine";
 | 
				
			||||||
 | 
					        break;
 | 
				
			||||||
 | 
					    case LfrfidKeyType::KeyH10301:
 | 
				
			||||||
 | 
					        return "HID";
 | 
				
			||||||
 | 
					        break;
 | 
				
			||||||
 | 
					    case LfrfidKeyType::KeyI40134:
 | 
				
			||||||
 | 
					        return "Indala";
 | 
				
			||||||
 | 
					        break;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    return "Unknown";
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
bool lfrfid_key_get_string_type(const char* string, LfrfidKeyType* type) {
 | 
					bool lfrfid_key_get_string_type(const char* string, LfrfidKeyType* type) {
 | 
				
			||||||
    bool result = true;
 | 
					    bool result = true;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -11,5 +11,6 @@ enum class LfrfidKeyType : uint8_t {
 | 
				
			|||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
const char* lfrfid_key_get_type_string(LfrfidKeyType type);
 | 
					const char* lfrfid_key_get_type_string(LfrfidKeyType type);
 | 
				
			||||||
 | 
					const char* lfrfid_key_get_manufacturer_string(LfrfidKeyType type);
 | 
				
			||||||
bool lfrfid_key_get_string_type(const char* string, LfrfidKeyType* type);
 | 
					bool lfrfid_key_get_string_type(const char* string, LfrfidKeyType* type);
 | 
				
			||||||
uint8_t lfrfid_key_get_type_data_count(LfrfidKeyType type);
 | 
					uint8_t lfrfid_key_get_type_data_count(LfrfidKeyType type);
 | 
				
			||||||
@@ -3,9 +3,13 @@
 | 
				
			|||||||
void LfRfidAppSceneSaveType::on_enter(LfRfidApp* app, bool need_restore) {
 | 
					void LfRfidAppSceneSaveType::on_enter(LfRfidApp* app, bool need_restore) {
 | 
				
			||||||
    auto submenu = app->view_controller.get<SubmenuVM>();
 | 
					    auto submenu = app->view_controller.get<SubmenuVM>();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    for(uint8_t i = 0; i <= static_cast<uint8_t>(LfrfidKeyType::KeyI40134); i++) {
 | 
					    for(uint8_t i = 0; i <= keys_count; i++) {
 | 
				
			||||||
        submenu->add_item(
 | 
					        string_init_printf(
 | 
				
			||||||
            lfrfid_key_get_type_string(static_cast<LfrfidKeyType>(i)), i, submenu_callback, app);
 | 
					            submenu_name[i],
 | 
				
			||||||
 | 
					            "%s %s",
 | 
				
			||||||
 | 
					            lfrfid_key_get_manufacturer_string(static_cast<LfrfidKeyType>(i)),
 | 
				
			||||||
 | 
					            lfrfid_key_get_type_string(static_cast<LfrfidKeyType>(i)));
 | 
				
			||||||
 | 
					        submenu->add_item(string_get_cstr(submenu_name[i]), i, submenu_callback, app);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    if(need_restore) {
 | 
					    if(need_restore) {
 | 
				
			||||||
@@ -33,6 +37,9 @@ bool LfRfidAppSceneSaveType::on_event(LfRfidApp* app, LfRfidApp::Event* event) {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
void LfRfidAppSceneSaveType::on_exit(LfRfidApp* app) {
 | 
					void LfRfidAppSceneSaveType::on_exit(LfRfidApp* app) {
 | 
				
			||||||
    app->view_controller.get<SubmenuVM>()->clean();
 | 
					    app->view_controller.get<SubmenuVM>()->clean();
 | 
				
			||||||
 | 
					    for(uint8_t i = 0; i <= keys_count; i++) {
 | 
				
			||||||
 | 
					        string_clear(submenu_name[i]);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
void LfRfidAppSceneSaveType::submenu_callback(void* context, uint32_t index) {
 | 
					void LfRfidAppSceneSaveType::submenu_callback(void* context, uint32_t index) {
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -10,4 +10,6 @@ public:
 | 
				
			|||||||
private:
 | 
					private:
 | 
				
			||||||
    static void submenu_callback(void* context, uint32_t index);
 | 
					    static void submenu_callback(void* context, uint32_t index);
 | 
				
			||||||
    uint32_t submenu_item_selected = 0;
 | 
					    uint32_t submenu_item_selected = 0;
 | 
				
			||||||
 | 
					    static const uint8_t keys_count = static_cast<uint8_t>(LfrfidKeyType::KeyI40134);
 | 
				
			||||||
 | 
					    string_t submenu_name[keys_count + 1];
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
		Reference in New Issue
	
	Block a user