From e3c407f0a5e9623fa95db4c09b17a3a0ba77d26d Mon Sep 17 00:00:00 2001 From: Amritanshu Date: Thu, 24 Sep 2020 16:27:48 +0530 Subject: [PATCH] Resolve pending issues Change-Id: Ieb1a3d4c2ade4ea9e1497bad0839f84b878b0da7 Signed-off-by: Amritanshu --- inc/firmware-update-ui.h | 6 ++--- src/firmware-update-ui.c | 5 +++-- src/interaction.c | 47 ++++++++++++++++++++++------------------ 3 files changed, 31 insertions(+), 27 deletions(-) diff --git a/inc/firmware-update-ui.h b/inc/firmware-update-ui.h index c51784f..5979968 100755 --- a/inc/firmware-update-ui.h +++ b/inc/firmware-update-ui.h @@ -48,8 +48,6 @@ typedef enum FOTA_OPERATION_INSTALL, }fota_operation; -gchar *download_cmd; - #define RED "\033[0;31m" #define YELLOW "\033[0;33m" #define DCOLOR "\033[0;m" @@ -67,8 +65,8 @@ gchar *download_cmd; #define FOTA_MODE_REBOOT "fota-reboot" #define UPDATE_SUCCESS "00" -extern void fota_show_install_popup(Evas_Object* nf, char *title); -extern void fota_show_download_popup(Evas_Object* nf, char *title); +extern void fota_show_install_popup(Evas_Object* nf, char *title, char* cmd); +extern void fota_show_download_popup(Evas_Object* nf, char *title, char* cmd); extern void fota_show_result_popup(Evas_Object *nf,fota_operation e_oper, bool status, int error); #endif /* __FIRMWAREUPDATEUI_H__ */ diff --git a/src/firmware-update-ui.c b/src/firmware-update-ui.c index 8d7bbce..a9e73f5 100755 --- a/src/firmware-update-ui.c +++ b/src/firmware-update-ui.c @@ -78,6 +78,7 @@ app_control(app_control_h app_control, void *data) int ret = 0; char *value = NULL, *shared_path = NULL; appdata_s *ad = data; + gchar *download_cmd; notification_h notify = notification_load_by_tag(LOG_TAG); if(notify) { @@ -98,7 +99,7 @@ app_control(app_control_h app_control, void *data) if(shared_path) free(shared_path); LOGI("Download command in App-control %s", download_cmd); - fota_show_download_popup(ad->nf, UPDATE_TITLE); + fota_show_download_popup(ad->nf, UPDATE_TITLE, download_cmd); } else if (ret != APP_CONTROL_ERROR_KEY_NOT_FOUND) { LOGE("App-control %s Error : %d", FOTA_MODE_DOWNLOAD, ret); @@ -115,7 +116,7 @@ app_control(app_control_h app_control, void *data) if(shared_path) free(shared_path); LOGI("Download command in App-control %s", download_cmd); - fota_show_install_popup(ad->nf, UPDATE_TITLE); + fota_show_install_popup(ad->nf, UPDATE_TITLE, download_cmd); } else if (ret != APP_CONTROL_ERROR_KEY_NOT_FOUND) { LOGE("App-control %s Error : %d", FOTA_MODE_INSTALL, ret); diff --git a/src/interaction.c b/src/interaction.c index f2ca528..e638f7f 100755 --- a/src/interaction.c +++ b/src/interaction.c @@ -17,6 +17,8 @@ #include "firmware-update-ui.h" static char path[PATH_MAX]; +static char cmd_version[PATH_MAX]; +static char cmd_dwnload[PATH_MAX]; static void _popup_block_clicked_cb(void *data, Evas_Object *obj, void *event_info) @@ -65,10 +67,7 @@ static char* fota_get_update_image_version() bool flag_image = FALSE; char *image_path = NULL, *directory = NULL, *version = NULL, *token = NULL; - char *cmd = strdup(download_cmd); - if(!cmd) - return NULL; - + char *cmd = cmd_version; LOGI("cmd : %s", cmd); while ((token = strsep(&cmd, " "))) { @@ -78,10 +77,8 @@ static char* fota_get_update_image_version() } } LOGI("Update image path : %s", image_path); - if(!image_path) { - free(cmd); + if(!image_path) return NULL; - } snprintf(path, sizeof(path), "%s", image_path); @@ -93,15 +90,20 @@ static char* fota_get_update_image_version() directory = strdup(token); } LOGI("Image directory : %s", directory); - if(!directory || !flag_image) + if(!directory || !flag_image) { + free(image_path); return NULL; + } while ((token = strsep(&directory, "-"))) { version = strdup(token); } LOGI("Update image version : %s", version); - if(!version) + if(!version) { + free(image_path); + free(directory); return NULL; + } free(directory); free(image_path); @@ -195,7 +197,7 @@ _install_update_cb(void *data, Evas_Object *obj, void *event_info) evas_object_smart_callback_add(popup, "block,clicked", _popup_block_clicked_cb, NULL); evas_object_show(popup); - Evas_Object *prev_popup = elm_object_item_data_get(obj); + Evas_Object *prev_popup = evas_object_data_get(obj, "install-popup"); if (prev_popup) { evas_object_del(prev_popup); } @@ -253,19 +255,17 @@ _download_image_cb(void *data, Evas_Object *obj, void *event_info) { LOGI("Inside _download_image_cb"); Evas_Object *nf = data; - - Evas_Object *prev_popup = elm_object_item_data_get(obj); - - LOGI("System Command : %s", download_cmd); + Evas_Object *prev_popup = evas_object_data_get(obj, "download-popup"); /* Copy update-image from attached USB to shared location on device */ - int ret = system(download_cmd); + LOGI("Download Command = %s", cmd_dwnload); + int ret = system(cmd_dwnload); LOGI("System command return : %d", ret); if (ret == -1 || WEXITSTATUS(ret) != 0) { fota_show_result_popup(nf, FOTA_OPERATION_DOWNLOAD, FALSE, ret); } else { - fota_show_install_popup(nf, UPDATE_TITLE); + fota_show_install_popup(nf, UPDATE_TITLE, cmd_dwnload); } if (prev_popup) { evas_object_del(prev_popup); @@ -273,9 +273,12 @@ _download_image_cb(void *data, Evas_Object *obj, void *event_info) elm_popup_dismiss(nf); } -void fota_show_install_popup(Evas_Object *nf, char *title) +void fota_show_install_popup(Evas_Object *nf, char *title, char* cmd) { char buf[PATH_MAX] = {0}; + snprintf(cmd_version, PATH_MAX, "%s", cmd); + snprintf(cmd_dwnload, PATH_MAX, "%s", cmd); + char *version = fota_get_update_image_version(); if(!version) { @@ -308,15 +311,18 @@ void fota_show_install_popup(Evas_Object *nf, char *title) Evas_Object *btn2 = elm_button_add(popup); elm_object_text_set(btn2, "Install"); elm_object_part_content_set(popup, "button2", btn2); - elm_object_item_data_set(btn2, popup); + evas_object_data_set(btn2, "install-popup", popup); evas_object_smart_callback_add(btn2, "clicked", _install_update_cb, nf); evas_object_show(popup); } } -void fota_show_download_popup(Evas_Object *nf, char *title) +void fota_show_download_popup(Evas_Object *nf, char *title, char* cmd) { char buf[PATH_MAX] = {0}; + snprintf(cmd_version, PATH_MAX, "%s", cmd); + snprintf(cmd_dwnload, PATH_MAX, "%s", cmd); + char *version = fota_get_update_image_version(); if(!version) { @@ -352,8 +358,7 @@ void fota_show_download_popup(Evas_Object *nf, char *title) //elm_object_style_set(btn2, "popup"); elm_object_text_set(btn2, "Download"); elm_object_part_content_set(popup, "button2", btn2); - - elm_object_item_data_set(btn2, popup); + evas_object_data_set(btn2, "download-popup", popup); evas_object_smart_callback_add(btn2, "clicked", _download_image_cb, nf); evas_object_show(popup); -- 2.34.1