[FL-1108] iButton fix navigation (#404)

* file_select: process zero file counter
* file_select: process file select view for less than 4 files
* ibutton: change application navigation
* ibutton: add read new key submenu
* file_select: use standart MIN() function
* sd-filesystem: remove unused min() define
This commit is contained in:
gornekich
2021-04-09 11:27:51 +03:00
committed by GitHub
parent 8ce5af1be2
commit 2fe44e1b11
7 changed files with 46 additions and 32 deletions

View File

@@ -26,7 +26,7 @@ void iButtonSceneReadCRCError::on_enter(iButtonApp* app) {
dialog_ex_set_header(dialog_ex, "CRC ERROR", 64, 10, AlignCenter, AlignCenter);
dialog_ex_set_text(dialog_ex, app->get_text_store(), 64, 19, AlignCenter, AlignTop);
dialog_ex_set_left_button_text(dialog_ex, "Back");
dialog_ex_set_left_button_text(dialog_ex, "Retry");
dialog_ex_set_right_button_text(dialog_ex, "More");
dialog_ex_set_result_callback(dialog_ex, callback);
dialog_ex_set_context(dialog_ex, app);

View File

@@ -26,7 +26,7 @@ void iButtonSceneReadNotKeyError::on_enter(iButtonApp* app) {
dialog_ex_set_header(dialog_ex, "ERROR:", 64, 10, AlignCenter, AlignCenter);
dialog_ex_set_text(dialog_ex, app->get_text_store(), 64, 19, AlignCenter, AlignTop);
dialog_ex_set_left_button_text(dialog_ex, "Back");
dialog_ex_set_left_button_text(dialog_ex, "Retry");
dialog_ex_set_right_button_text(dialog_ex, "More");
dialog_ex_set_result_callback(dialog_ex, callback);
dialog_ex_set_context(dialog_ex, app);

View File

@@ -15,7 +15,7 @@ void iButtonSceneReadSuccess::on_enter(iButtonApp* app) {
switch(key->get_key_type()) {
case iButtonKeyType::KeyDallas:
app->set_text_store(
"%02X %02X %02X %02X\n%02X %02X %02X %02X\nDallas",
"Dallas\n%02X %02X %02X %02X\n%02X %02X %02X %02X",
key_data[0],
key_data[1],
key_data[2],
@@ -26,16 +26,16 @@ void iButtonSceneReadSuccess::on_enter(iButtonApp* app) {
key_data[7]);
break;
case iButtonKeyType::KeyCyfral:
app->set_text_store("%02X %02X\nCyfral", key_data[0], key_data[1]);
app->set_text_store("Cyfral\n%02X %02X", key_data[0], key_data[1]);
break;
case iButtonKeyType::KeyMetakom:
app->set_text_store(
"%02X %02X %02X %02X\nMetakom", key_data[0], key_data[1], key_data[2], key_data[3]);
"Metakom\n%02X %02X %02X %02X", key_data[0], key_data[1], key_data[2], key_data[3]);
break;
}
dialog_ex_set_text(dialog_ex, app->get_text_store(), 95, 30, AlignCenter, AlignCenter);
dialog_ex_set_left_button_text(dialog_ex, "Back");
dialog_ex_set_left_button_text(dialog_ex, "Retry");
dialog_ex_set_right_button_text(dialog_ex, "More");
dialog_ex_set_icon(dialog_ex, 0, 1, I_DolphinExcited_64x63);
dialog_ex_set_result_callback(dialog_ex, callback);

View File

@@ -8,6 +8,7 @@ typedef enum {
SubmenuIndexWrite,
SubmenuIndexEmulate,
SubmenuIndexNameAndSave,
SubmenuIndexReadNewKey,
} SubmenuIndex;
void iButtonSceneReadedKeyMenu::on_enter(iButtonApp* app) {
@@ -18,6 +19,7 @@ void iButtonSceneReadedKeyMenu::on_enter(iButtonApp* app) {
submenu_add_item(submenu, "Write", SubmenuIndexWrite, callback, app);
submenu_add_item(submenu, "Name and save", SubmenuIndexNameAndSave, callback, app);
submenu_add_item(submenu, "Emulate", SubmenuIndexEmulate, callback, app);
submenu_add_item(submenu, "Read new key", SubmenuIndexReadNewKey, callback, app);
view_manager->switch_to(iButtonAppViewManager::Type::iButtonAppViewSubmenu);
}
@@ -36,10 +38,13 @@ bool iButtonSceneReadedKeyMenu::on_event(iButtonApp* app, iButtonEvent* event) {
case SubmenuIndexNameAndSave:
app->switch_to_next_scene(iButtonApp::Scene::SceneSaveName);
break;
case SubmenuIndexReadNewKey:
app->search_and_switch_to_previous_scene({iButtonApp::Scene::SceneRead});
break;
}
consumed = true;
} else if(event->type == iButtonEvent::Type::EventTypeBack) {
app->search_and_switch_to_previous_scene({iButtonApp::Scene::SceneRead});
app->search_and_switch_to_previous_scene({iButtonApp::Scene::SceneStart});
consumed = true;
}

View File

@@ -48,7 +48,10 @@ bool iButtonSceneSaveName::on_event(iButtonApp* app, iButtonEvent* event) {
app->switch_to_next_scene(iButtonApp::Scene::SceneSaveSuccess);
} else {
app->get_sd_ex_api()->check_error(app->get_sd_ex_api()->context);
app->switch_to_next_scene(iButtonApp::Scene::SceneStart);
app->search_and_switch_to_previous_scene(
{iButtonApp::Scene::SceneReadedKeyMenu,
iButtonApp::Scene::SceneSavedKeyMenu,
iButtonApp::Scene::SceneAddType});
}
string_clear(key_file_name);
consumed = true;