homescreen_efl: Validate wallpaper file existence fix part2 10/65310/2 tizen_app accepted/tizen/common/20160408.190358 accepted/tizen/ivi/20160411.005503 accepted/tizen/mobile/20160411.005531 submit/tizen/20160408.130752 submit/tizen_app/20160411.164342 submit/tizen_app/20160412.073003
authorKamil Lipiszko <k.lipiszko@samsung.com>
Fri, 8 Apr 2016 09:16:37 +0000 (11:16 +0200)
committerKamil Lipiszko <k.lipiszko@samsung.com>
Fri, 8 Apr 2016 09:21:44 +0000 (11:21 +0200)
Change-Id: I00fe48c1ecdc4c6211ce15b2903e9d096277b526

src/homescreen-efl.c
src/livebox_all_pages.c

index 99e4e83..834a96e 100644 (file)
@@ -1095,7 +1095,8 @@ static void __homescreen_efl_home_bg_changed_cb(system_settings_key_e key, void
        }
 
        ret = system_settings_get_value_string(SYSTEM_SETTINGS_KEY_WALLPAPER_HOME_SCREEN, &buf);
-       if (!buf || ret != SYSTEM_SETTINGS_ERROR_NONE) {
+       if (!buf || ret != SYSTEM_SETTINGS_ERROR_NONE || !ecore_file_exists(buf)
+                       || !ecore_file_can_read(buf)) {
                LOGE("[FAILED][failed to get bg path]");
                return;
        }
@@ -1132,6 +1133,8 @@ static void __homescreen_efl_apply_home_bg_effect(bool is_on)
        const int size = COUNT_OF(kernel);
        const int half = size / 2;
 
+       int ret = -1;
+
        if (!s_info.bg) {
                LOGE("[FAILED][bg=NULL]");
                return;
@@ -1140,8 +1143,10 @@ static void __homescreen_efl_apply_home_bg_effect(bool is_on)
        /*if is_on == false, then restore original image data*/
        if (!is_on) {
                /*restore original data and return;*/
-               system_settings_get_value_string(SYSTEM_SETTINGS_KEY_WALLPAPER_HOME_SCREEN, &buf);
-               if (!buf) {
+               ret = system_settings_get_value_string(SYSTEM_SETTINGS_KEY_WALLPAPER_HOME_SCREEN, &buf);
+               if (!buf || ret != SYSTEM_SETTINGS_ERROR_NONE || !ecore_file_exists(buf)
+                               || !ecore_file_can_read(buf)) {
+
                        LOGE("[FAILED][failed to get bg path]");
                        return;
                }
index 68468bb..c8c8f86 100644 (file)
@@ -439,7 +439,9 @@ static void __livebox_all_pages_add_page_clicked_cb(void *data, Evas_Object *obj
 static Evas_Object *__livebox_all_pages_create_bg(Evas_Object *parent)
 {
        LOGI("");
+
        Evas_Object *bg = NULL;
+       const char *bg_path = util_get_res_file_path(IMAGE_DIR"/default_bg.png");
        char *buf = NULL;
        int ret = -1;
 
@@ -456,13 +458,15 @@ static Evas_Object *__livebox_all_pages_create_bg(Evas_Object *parent)
 
        ret = system_settings_get_value_string(SYSTEM_SETTINGS_KEY_WALLPAPER_HOME_SCREEN, &buf);
 
-       if (ret != SYSTEM_SETTINGS_ERROR_NONE || !buf) {
-               LOGE("[FAILED][failed to get bg path]");
-               evas_object_del(bg);
-               return NULL;
-       }
+       if (!buf || ret != SYSTEM_SETTINGS_ERROR_NONE || !ecore_file_exists(buf)
+                       || !ecore_file_can_read(buf)) {
+               LOGE("[FAILED][failed to get bg path, use default]");
+
+               ret = elm_bg_file_set(bg, bg_path, NULL);
+       } else
+               ret = elm_bg_file_set(bg, buf, NULL);
 
-       if (!elm_bg_file_set(bg, buf, NULL)) {
+       if (!ret) {
                LOGE("[FAILED][failed to set bg]");
                evas_object_del(bg);
                free(buf);