diff --git a/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowMenuCommonItem/MenuGeneral.c b/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowMenuCommonItem/MenuGeneral.c index 6ce0b775d..47832a976 100644 --- a/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowMenuCommonItem/MenuGeneral.c +++ b/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowMenuCommonItem/MenuGeneral.c @@ -86,12 +86,14 @@ TMDEF_PAGE_TEXT_ICON(GENERAL) TMDEF_END_PAGES() TMDEF_EMNU(gGeneralMenu, GENERAL, General_MenuCallback) +extern void set_menu_changed(int value); // -------------------------------------------------------------------------- // Menu Callback // -------------------------------------------------------------------------- int General_MenuCallback(UINT32 uiMessage, UINT32 uiParam) { UIMenuStoreInfo *puiPara = sf_ui_para_get(); + set_menu_changed(1); // printf(" ====================================================== \n"); printf("\033[33m[General_MenuCallback]uiMessage:%d uiParam:%d\033[0m\n", uiMessage, uiParam); diff --git a/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowMenuCommonItem/MenuMore.c b/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowMenuCommonItem/MenuMore.c index 5cdd9ac7d..31a180840 100644 --- a/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowMenuCommonItem/MenuMore.c +++ b/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowMenuCommonItem/MenuMore.c @@ -40,6 +40,7 @@ TMDEF_PAGE_TEXT_ICON(MORE) TMDEF_END_PAGES() TMDEF_EMNU(gMoreMenu, MORE, More_MenuCallback) +extern void set_menu_changed(int value); // -------------------------------------------------------------------------- // Menu Callback // -------------------------------------------------------------------------- @@ -58,12 +59,14 @@ int More_MenuCallback(UINT32 uiMessage, UINT32 uiParam) case IDM_BATTERY_TYPE: { puiPara->BatteryType = uwOption; + set_menu_changed(1); printf("\033[33m[Send_MenuCallback]BatteryType:%d\033[0m\n", puiPara->BatteryType); break; } case IDM_SD_LOOP: { puiPara->SdLoopSwitch = uwOption; + set_menu_changed(1); printf("\033[33m[Send_MenuCallback]SdLoopSwitch:%d\033[0m\n", puiPara->SdLoopSwitch); break; } diff --git a/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowMenuCommonItem/MenuQR.c b/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowMenuCommonItem/MenuQR.c index b315bdfa4..04ca71ab8 100644 --- a/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowMenuCommonItem/MenuQR.c +++ b/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowMenuCommonItem/MenuQR.c @@ -67,7 +67,7 @@ TMDEF_PAGE_TEXT_ICON(QR) TMDEF_PAGE_TEXT_ICON(QR) TMDEF_END_PAGES() TMDEF_EMNU(gQrMenu, QR, Qr_MenuCallback) - +extern void set_menu_changed(int value); // -------------------------------------------------------------------------- // Menu Callback // -------------------------------------------------------------------------- @@ -97,6 +97,7 @@ int Qr_MenuCallback(UINT32 uiMessage, UINT32 uiParam) { puiPara->PwdSwitch = uwOption; memset(puiPara->PwdStr, '0' ,sizeof(puiPara->PwdStr)); + set_menu_changed(1); } printf("password switch %d\n", puiPara->PwdSwitch); break; @@ -107,6 +108,7 @@ int Qr_MenuCallback(UINT32 uiMessage, UINT32 uiParam) if(tmpSelected != puiPara->CamNameSwitch) { puiPara->CamNameSwitch = tmpSelected; + set_menu_changed(1); memset(puiPara ->CamNameStr,'\0', sizeof(puiPara ->CamNameStr)); sprintf(puiPara ->CamNameStr, "%s", "REVE"); } @@ -1051,6 +1053,7 @@ void Option_Password_Key(lv_obj_t* obj, uint32_t key) update_Password_msg(obj); break; case LV_KEY_ENTER: + set_menu_changed(1); lv_plugin_scr_close(obj, gen_nvtmsg_data(NVTRET_ENTER_MENU, 0)); hidde_Password_page(); break; @@ -1267,6 +1270,7 @@ void Option_CAMERA_INFO_Key_Long_Press(lv_obj_t* obj, uint32_t key) { case LV_USER_KEY_NEXT: puiPara->QLogSwitch = puiPara->QLogSwitch ? 0 : 1; + set_menu_changed(1); CameraInfoQlogisHidden = 0; update_Camera_Info_msg(obj); break; @@ -1276,6 +1280,7 @@ void Option_CAMERA_INFO_Key_Long_Press(lv_obj_t* obj, uint32_t key) { puiPara->QLogSwitch = 0; } + set_menu_changed(1); CameraInfoDebugisHidden = 0; update_Camera_Info_msg(obj); break; @@ -1536,6 +1541,7 @@ void Option_Camera_Name_Key(lv_obj_t* obj, uint32_t key) update_Camera_Name_msg(obj); break; case LV_KEY_ENTER: + set_menu_changed(1); lv_plugin_scr_close(obj, gen_nvtmsg_data(NVTRET_ENTER_MENU, 0)); hidde_Camera_Name_page(); break; diff --git a/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowMenuCommonItem/MenuSend.c b/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowMenuCommonItem/MenuSend.c index 553ec3484..e2701afeb 100644 --- a/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowMenuCommonItem/MenuSend.c +++ b/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowMenuCommonItem/MenuSend.c @@ -45,6 +45,7 @@ TMDEF_END_PAGES() TMDEF_EMNU(gSendMenu, SEND, Send_MenuCallback) +extern void set_menu_changed(int value); static lv_style_t gStyleLabel0; // -------------------------------------------------------------------------- @@ -53,6 +54,7 @@ static lv_style_t gStyleLabel0; int Send_MenuCallback(UINT32 uiMessage, UINT32 uiParam) { UIMenuStoreInfo *puiPara = sf_ui_para_get(); + set_menu_changed(1); // printf(" ====================================================== \n"); printf("\033[33m[Send_MenuCallback]uiMessage:%d uiParam:%d\033[0m\n", uiMessage, uiParam); UINT16 uwItemId; diff --git a/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowMenuCommonItem/UIFlowMenuCommonItemEventCallback.c b/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowMenuCommonItem/UIFlowMenuCommonItemEventCallback.c index dc43f942a..cc0844d22 100755 --- a/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowMenuCommonItem/UIFlowMenuCommonItemEventCallback.c +++ b/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowMenuCommonItem/UIFlowMenuCommonItemEventCallback.c @@ -29,7 +29,10 @@ BOOL PrevSel_Img = false; #define MENU_LUCK -1 #define MENU_UNLUCK 0 #define MENU_CLOSED 1 +#define MENU_HAS_CHANGED 1 +#define MENU_HAS_NOT_CHANGED 0 static int gMenuLuck = MENU_CLOSED; +static int gMenuChanged = MENU_HAS_NOT_CHANGED; int is_menu_screen_luck(void) { return gMenuLuck; @@ -38,6 +41,10 @@ lv_obj_t *menu_opened_get(void) { return menu_item; } +void set_menu_changed(int value) +{ + gMenuChanged = value; +} static BOOL sf_is_4g_module_usb_update_file_exist(UINT8 *updateFname) { DIR *dirp = NULL; @@ -469,6 +476,7 @@ static void LV_MenuItem_OnSelected(lv_obj_t* obj) SelOption = SysGetFlag(pItem->SysFlag) == SWITCH_OFF ? SWITCH_ON : SWITCH_OFF; //static int flag = 0; SysSetFlag(pItem->SysFlag, SelOption); + set_menu_changed(MENU_HAS_CHANGED); pCurMenu = TM_GetTabMenu(pMenu->SelPage); TM_MENU_CALLBACK(pCurMenu, TMM_CONFIRM_OPTION, MAKE_LONG(pItem->ItemId, SelOption)); // TM_MENU_CALLBACK(MenuList[pMenu->SelPage], TMM_CONFIRM_OPTION, MAKE_LONG(pItem->ItemId, SelOption)); @@ -1040,7 +1048,12 @@ static void UIFlowMenuCommonItem_ScrClose(lv_obj_t* obj) { DBG_DUMP("%s\r\n", __func__); sf_set_keep_alive_time(DEFAULT_GO_TO_WORK_MODE_TIME_S); - Save_MenuInfo(); + if (MENU_HAS_CHANGED == gMenuChanged) + { + printf(" gui save menu info.\n"); + gMenuChanged = MENU_HAS_NOT_CHANGED; + Save_MenuInfo(); + } LV_MenuItem_OnClose(obj); gMenuLuck = MENU_CLOSED; #if HUNTING_CAMERA_MCU == ENABLE diff --git a/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowPhoto/UIFlowPhotoEventCallback.c b/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowPhoto/UIFlowPhotoEventCallback.c index a3ea7cbae..fbda6e0b8 100755 --- a/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowPhoto/UIFlowPhotoEventCallback.c +++ b/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowPhoto/UIFlowPhotoEventCallback.c @@ -688,9 +688,21 @@ int get_storage_type(void) } static void update_storage_sd_card(void) { + const int storageType = get_storage_type(); + if (MMC_DEV_NO == storageType) + { + printf("storage update:no device.\n"); + return; + } // if (System_GetState(SYS_STATE_FS) == FS_INIT_OK) { - // UINT32 cardStatus = System_GetState(SYS_STATE_CARD); + const UINT32 cardStatus = System_GetState(SYS_STATE_CARD); + if (MMC_DEV_SD == storageType && cardStatus == CARD_REMOVED) + { + set_warning_label_text(label_6_scr_uiflowphoto); + lv_label_set_text(label_6_scr_uiflowphoto, "No SD Card"); + return; + } // if (cardStatus != CARD_REMOVED) { if (g_SysStrg_Chg) @@ -705,7 +717,7 @@ static void update_storage_sd_card(void) } else if (UIStorageCheck(STORAGE_CHECK_ERROR, NULL) == TRUE) { if(UIStorageCheck_DCIMWritable() == FALSE){ - lv_label_set_text(label_6_scr_uiflowphoto, "No SD Card"); + // lv_label_set_text(label_6_scr_uiflowphoto, "No SD Card"); } } else if (UIStorageCheck(STORAGE_CHECK_FULL, NULL) == TRUE) { @@ -714,9 +726,9 @@ static void update_storage_sd_card(void) } else { - set_normal_label_text(label_6_scr_uiflowphoto); UIStorageCheck(STORAGE_CHECK_FULL, &g_uiFreePicNum); lv_label_set_text(label_6_scr_uiflowphoto, Get_FreePicNumString(g_uiFreePicNum)); + set_normal_label_text(label_6_scr_uiflowphoto); } } // else