From 11c347692ab858e8aa324c53d08891e1d8aa2704 Mon Sep 17 00:00:00 2001 From: Bertrand Songis Date: Fri, 22 Feb 2019 14:50:41 +0100 Subject: [PATCH] Remove duplicated code --- radio/src/gui/128x64/model_setup.cpp | 27 ++++++---- radio/src/gui/128x64/radio_hardware.cpp | 72 +------------------------ 2 files changed, 19 insertions(+), 80 deletions(-) diff --git a/radio/src/gui/128x64/model_setup.cpp b/radio/src/gui/128x64/model_setup.cpp index 3dea17fa7..10ec980f9 100644 --- a/radio/src/gui/128x64/model_setup.cpp +++ b/radio/src/gui/128x64/model_setup.cpp @@ -291,6 +291,8 @@ void onBindMenu(const char * result) void runPopupRegister(event_t event) { + uint8_t backupVerticalPosition = menuVerticalPosition; + uint8_t backupHorizontalPosition = menuHorizontalPosition; uint8_t backupVerticalOffset = menuVerticalOffset; int8_t backupEditMode = s_editMode; @@ -346,12 +348,24 @@ void runPopupRegister(event_t event) reusableBuffer.moduleSetup.pxx2.registerPopupEditMode = s_editMode; } - menuVerticalPosition = ITEM_MODEL_INTERNAL_MODULE_PXX2_RANGE_REGISTER + HEADER_LINE; - menuHorizontalPosition = 0; + menuVerticalPosition = backupVerticalPosition; + menuHorizontalPosition = backupHorizontalPosition; menuVerticalOffset = backupVerticalOffset; s_editMode = backupEditMode; } +void startRegisterDialog(uint8_t module) +{ + reusableBuffer.moduleSetup.pxx2.registerStep = REGISTER_START; + memcpy(reusableBuffer.moduleSetup.pxx2.registrationID, g_model.modelRegistrationID, PXX2_LEN_REGISTRATION_ID); + reusableBuffer.moduleSetup.pxx2.registerPopupVerticalPosition = 0; + reusableBuffer.moduleSetup.pxx2.registerPopupHorizontalPosition = 0; + reusableBuffer.moduleSetup.pxx2.registerPopupEditMode = 0; + moduleSettings[module].mode = MODULE_MODE_REGISTER; + s_editMode = 0; + POPUP_INPUT("", runPopupRegister); +} + inline bool isDefaultModelRegistrationID() { return memcmp(g_model.modelRegistrationID, g_eeGeneral.ownerRegistrationID, PXX2_LEN_REGISTRATION_ID) == 0; @@ -1175,14 +1189,7 @@ void menuModelSetup(event_t event) if (attr) { if (moduleSettings[moduleIdx].mode == MODULE_MODE_NORMAL && s_editMode > 0) { if (menuHorizontalPosition == 0 && event == EVT_KEY_FIRST(KEY_ENTER)) { - reusableBuffer.moduleSetup.pxx2.registerStep = REGISTER_START; - memcpy(reusableBuffer.moduleSetup.pxx2.registrationID, g_model.modelRegistrationID, PXX2_LEN_REGISTRATION_ID); - reusableBuffer.moduleSetup.pxx2.registerPopupVerticalPosition = 0; - reusableBuffer.moduleSetup.pxx2.registerPopupHorizontalPosition = 0; - reusableBuffer.moduleSetup.pxx2.registerPopupEditMode = 0; - moduleSettings[moduleIdx].mode = MODULE_MODE_REGISTER; - s_editMode = 0; - POPUP_INPUT("", runPopupRegister); + startRegisterDialog(moduleIdx); } else if (menuHorizontalPosition == 1) { moduleSettings[moduleIdx].mode = MODULE_MODE_RANGECHECK; diff --git a/radio/src/gui/128x64/radio_hardware.cpp b/radio/src/gui/128x64/radio_hardware.cpp index 563515c30..bd6e6a2e1 100644 --- a/radio/src/gui/128x64/radio_hardware.cpp +++ b/radio/src/gui/128x64/radio_hardware.cpp @@ -158,68 +158,7 @@ enum MenuRadioHardwareItems { #define HW_SETTINGS_COLUMN1 30 #define HW_SETTINGS_COLUMN2 (30 + 5*FW) -void runHWPopupRegister(event_t event) -{ - uint8_t backupVerticalOffset = menuVerticalOffset; - int8_t backupEditMode = s_editMode; - - menuVerticalPosition = reusableBuffer.moduleSetup.pxx2.registerPopupVerticalPosition; - menuHorizontalPosition = reusableBuffer.moduleSetup.pxx2.registerPopupHorizontalPosition; - s_editMode = reusableBuffer.moduleSetup.pxx2.registerPopupEditMode; - - switch (event) { - case EVT_KEY_BREAK(KEY_ENTER): - if (menuVerticalPosition != 2) { - break; - } - else if (menuHorizontalPosition == 0) { - // [Enter] pressed - reusableBuffer.moduleSetup.pxx2.registerStep = REGISTER_RX_NAME_SELECTED; - backupEditMode = EDIT_MODIFY_FIELD; // so that the [Register] button blinks and the REGISTER process can continue - } - // no break - - case EVT_KEY_LONG(KEY_EXIT): - s_editMode = 0; - // no break; - - case EVT_KEY_BREAK(KEY_EXIT): - if (s_editMode <= 0) { - warningText = NULL; - } - break; - } - - if (warningText) { - const uint8_t dialogRows[] = { 0, 0, 1}; - check(event, 0, nullptr, 0, dialogRows, 2, 2); - - drawMessageBox(); - - lcdDrawText(WARNING_LINE_X, WARNING_LINE_Y - 3, STR_REG_ID); - editName(WARNING_LINE_X + 8*FW, WARNING_LINE_Y - 3, g_model.modelRegistrationID, PXX2_LEN_REGISTRATION_ID, event, menuVerticalPosition == 0); - - if (reusableBuffer.moduleSetup.pxx2.registerStep < REGISTER_RX_NAME_RECEIVED) { - lcdDrawText(WARNING_LINE_X, WARNING_LINE_Y - 2 + FH, "Waiting for receiver ..."); - } - else { - lcdDrawText(WARNING_LINE_X, WARNING_LINE_Y - 2 + FH, STR_RX_NAME); - editName(WARNING_LINE_X + 8*FW, WARNING_LINE_Y - 2 + FH, reusableBuffer.moduleSetup.pxx2.registerRxName, PXX2_LEN_RX_NAME, event, menuVerticalPosition == 1); - } - - lcdDrawText(WARNING_LINE_X, WARNING_LINE_Y+2*FH + 2, TR_ENTER, menuVerticalPosition == 2 && menuHorizontalPosition == 0 ? INVERS : 0); - lcdDrawText(WARNING_LINE_X + 8*FW, WARNING_LINE_Y+2*FH + 2, TR_EXIT, menuVerticalPosition == 2 && menuHorizontalPosition == 1 ? INVERS : 0); - - reusableBuffer.moduleSetup.pxx2.registerPopupVerticalPosition = menuVerticalPosition; - reusableBuffer.moduleSetup.pxx2.registerPopupHorizontalPosition = menuHorizontalPosition; - reusableBuffer.moduleSetup.pxx2.registerPopupEditMode = s_editMode; - } - - menuVerticalPosition = ITEM_RADIO_OWNER_ID + HEADER_LINE; - menuHorizontalPosition = 1; - menuVerticalOffset = backupVerticalOffset; - s_editMode = backupEditMode; -} +void startRegisterDialog(uint8_t module); void menuRadioHardware(event_t event) { @@ -382,14 +321,7 @@ void menuRadioHardware(event_t event) if (attr) { if (moduleSettings[INTERNAL_MODULE].mode == MODULE_MODE_NORMAL && s_editMode > 0) { if (event == EVT_KEY_FIRST(KEY_ENTER)) { - moduleSettings[INTERNAL_MODULE].mode = MODULE_MODE_REGISTER; - reusableBuffer.moduleSetup.pxx2.registerStep = REGISTER_START; - memcpy(reusableBuffer.moduleSetup.pxx2.registrationID, g_model.modelRegistrationID, PXX2_LEN_REGISTRATION_ID); - reusableBuffer.moduleSetup.pxx2.registerPopupVerticalPosition = 0; - reusableBuffer.moduleSetup.pxx2.registerPopupHorizontalPosition = 0; - reusableBuffer.moduleSetup.pxx2.registerPopupEditMode = 0; - s_editMode = 0; - POPUP_INPUT("", runHWPopupRegister); + startRegisterDialog(INTERNAL_MODULE); } else if (menuHorizontalPosition == 0) { moduleSettings[INTERNAL_MODULE].mode = MODULE_MODE_RANGECHECK;