Merge "packaging: spec cleanup" into tizen
[apps/core/preloaded/settings.git] / setting-display / src / setting-display.c
old mode 100644 (file)
new mode 100755 (executable)
index e98b1c8..720364b
@@ -1,53 +1,79 @@
 /*
-  * Copyright 2012  Samsung Electronics Co., Ltd
-  *
-  * Licensed under the Flora License, Version 1.0 (the "License");
-  * you may not use this file except in compliance with the License.
-  * You may obtain a copy of the License at
-  *
-  *     http://www.tizenopensource.org/license
-  *
-  * Unless required by applicable law or agreed to in writing, software
-  * distributed under the License is distributed on an "AS IS" BASIS,
-  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  * See the License for the specific language governing permissions and
-  * limitations under the License.
-  */
-
-
+ * setting
+ * Copyright (c) 2012 Samsung Electronics Co., Ltd.
+ *
+ * Licensed under the Flora License, Version 1.1 (the License);
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://floralicense.org/license/
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an AS IS BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/**
+ *@defgroup setting-display
+ *UG creation code for setting-display
+ *
+ *  - Screen Mode
+ *  - Backlight time
+ *  - Smart Screen
+ *  - Battery percentage
+ */
 
 #include <setting-display.h>
 #include <Ecore_X.h>
-#include <devman.h>
 
-#define SETTING_BRIGHTNESS_LEVEL_FOR_EMUL 24
+#define SETTING_BRIGHTNESS_DEFAULT_LEVEL 60
 
 #ifndef UG_MODULE_API
 #define UG_MODULE_API __attribute__ ((visibility("default")))
 #endif
 
-setting_view *__get_display_view_to_load(bundle *data)
+setting_view *__get_display_view_to_load(service_h service)
 {
        SETTING_TRACE_BEGIN;
-       setting_retvm_if(NULL == data, NULL, "NULL == data");
-       const char *viewtype = bundle_get_val(data, "viewtype");
+
+       char *viewtype = NULL;
+
+       service_get_extra_data(service, "viewtype", &viewtype);
+       if(!viewtype)
+               return NULL;
+
        SETTING_TRACE("viewtype:%s", viewtype);
 
        if (!safeStrCmp(viewtype, "brightness")) {
+               setting_view_node_table_register(&setting_view_display_brightness,
+                                                NULL);
                return &setting_view_display_brightness;
        } else if (!safeStrCmp(viewtype, "wallpaper")) {
+               setting_view_node_table_register(&setting_view_display_wallpaper, NULL);
                return &setting_view_display_wallpaper;
        } else {
+               setting_view_node_table_register(&setting_view_display_main, NULL);
+               setting_view_node_table_register(&setting_view_display_screen_mode,
+                                                &setting_view_display_main);
+               setting_view_node_table_register(&setting_view_display_brightness,
+                                                &setting_view_display_main);
                return &setting_view_display_main;
        }
 
 }
 
-Evas_Object *__get_display_layout_to_return(bundle *data, void *priv)
+Evas_Object *__get_display_layout_to_return(service_h service, void *priv)
 {
        SETTING_TRACE_BEGIN;
        SettingDisplayUG *displayUG = priv;
-       const char *viewtype = bundle_get_val(data, "viewtype");
+       char *viewtype = NULL;
+
+       service_get_extra_data(service, "viewtype", &viewtype);
+       if(!viewtype)
+               return NULL;
+
        SETTING_TRACE("viewtype:%s", viewtype);
 
        if (!safeStrCmp(viewtype, "wallpaper")) {
@@ -65,16 +91,15 @@ static void setting_display_ug_cb_resize(void *data, Evas *e,
        setting_view_update(ad->view_to_load, ad);
 }
 
-static void *setting_display_ug_on_create(struct ui_gadget *ug,
-                                         enum ug_mode mode, bundle *data,
+static void *setting_display_ug_on_create(ui_gadget_h ug,
+                                         enum ug_mode mode, service_h service,
                                          void *priv)
 {
-       setting_retvm_if((!ug || !priv), NULL, "!ug || !priv");
+       setting_retvm_if((!priv), NULL, "!priv");
 
        SettingDisplayUG *displayUG = priv;
        displayUG->ug = ug;
-       bindtextdomain(SETTING_PACKAGE, SETTING_LOCALEDIR);
-       textdomain(SETTING_PACKAGE);
+       setting_set_i18n(SETTING_PACKAGE, SETTING_LOCALEDIR);
 
        displayUG->win_main_layout = (Evas_Object *) ug_get_parent_layout(ug);
        displayUG->win_get = (Evas_Object *) ug_get_window();
@@ -88,29 +113,25 @@ static void *setting_display_ug_on_create(struct ui_gadget *ug,
 
        /* register view node table */
        setting_view_node_table_intialize();
-       setting_view_node_table_register(&setting_view_display_main, NULL);
-       setting_view_node_table_register(&setting_view_display_brightness,
-                                        &setting_view_display_main);
-       setting_view_node_table_register(&setting_view_display_wallpaper, NULL);
 
        setting_create_Gendial_itc("dialogue/2text.3",
                                   &(displayUG->itc_2text_2));
        setting_create_Gendial_itc("dialogue/1text.1icon",
                                   &(displayUG->itc_1text_1icon));
-       setting_create_Gendial_itc("dialogue/1icon", &(displayUG->itc_layout));
        setting_create_Gendial_itc("dialogue/2text.3/expandable",
                                   &(displayUG->itc_2text_3_parent));
        setting_create_Gendial_itc("dialogue/1text.1icon/expandable2",
                                   &(displayUG->itc_1icon_1text_sub));
-       displayUG->itc_seperator.item_style = "dialogue/separator/21/with_line";
+       setting_create_Gendial_itc("dialogue/1text", &(displayUG->itc_1text));
+
+       displayUG->itc_seperator.item_style = "dialogue/separator";
        displayUG->itc_seperator.func.text_get = NULL;
        displayUG->itc_seperator.func.content_get = NULL;
        displayUG->itc_seperator.func.state_get = NULL;
        displayUG->itc_seperator.func.del = NULL;
-       setting_create_Gendial_itc("dialogue/1text", &(displayUG->itc_1text));
 
        /*  creating a view. */
-       displayUG->view_to_load = __get_display_view_to_load(data);
+       displayUG->view_to_load = __get_display_view_to_load(service);
        setting_retvm_if(NULL == displayUG->view_to_load, NULL,
                         "NULL == displayUG->view_to_load");
        setting_view_node_set_cur_view(displayUG->view_to_load);
@@ -118,29 +139,29 @@ static void *setting_display_ug_on_create(struct ui_gadget *ug,
        evas_object_event_callback_add(displayUG->win_main_layout,
                                       EVAS_CALLBACK_RESIZE,
                                       setting_display_ug_cb_resize, displayUG);
-       return __get_display_layout_to_return(data, displayUG);
+       return __get_display_layout_to_return(service, displayUG);
 }
 
-static void setting_display_ug_on_start(struct ui_gadget *ug, bundle *data,
+static void setting_display_ug_on_start(ui_gadget_h ug, service_h service,
                                        void *priv)
 {
 }
 
-static void setting_display_ug_on_pause(struct ui_gadget *ug, bundle *data,
+static void setting_display_ug_on_pause(ui_gadget_h ug, service_h service,
                                        void *priv)
 {
 }
 
-static void setting_display_ug_on_resume(struct ui_gadget *ug, bundle *data,
+static void setting_display_ug_on_resume(ui_gadget_h ug, service_h service,
                                         void *priv)
 {
 }
 
-static void setting_display_ug_on_destroy(struct ui_gadget *ug, bundle *data,
+static void setting_display_ug_on_destroy(ui_gadget_h ug, service_h service,
                                          void *priv)
 {
        SETTING_TRACE_BEGIN;
-       setting_retm_if((!ug || !priv), "!ug || !priv");
+       setting_retm_if((!priv), "!priv");
        SettingDisplayUG *displayUG = priv;
 
        /* fix flash issue for gallery */
@@ -151,10 +172,14 @@ static void setting_display_ug_on_destroy(struct ui_gadget *ug, bundle *data,
        if (&setting_view_display_main == displayUG->view_to_load) {
                setting_view_destroy(&setting_view_display_brightness,
                                     displayUG);
+               setting_view_destroy(&setting_view_display_screen_mode, displayUG);
                setting_view_destroy(&setting_view_display_main, displayUG);
        } else if (&setting_view_display_wallpaper == displayUG->view_to_load) {
                setting_view_destroy(&setting_view_display_wallpaper,
                                     displayUG);
+       } else if (&setting_view_display_brightness == displayUG->view_to_load) {
+               setting_view_destroy(&setting_view_display_brightness,
+                                    displayUG);
        }
 
        if (NULL != ug_get_layout(displayUG->ug)) {
@@ -165,14 +190,14 @@ static void setting_display_ug_on_destroy(struct ui_gadget *ug, bundle *data,
        SETTING_TRACE_END;
 }
 
-static void setting_display_ug_on_message(struct ui_gadget *ug, bundle *msg,
-                                         bundle *data, void *priv)
+static void setting_display_ug_on_message(ui_gadget_h ug, service_h msg,
+                                         service_h service, void *priv)
 {
        SETTING_TRACE_BEGIN;
 }
 
-static void setting_display_ug_on_event(struct ui_gadget *ug,
-                                       enum ug_event event, bundle *data,
+static void setting_display_ug_on_event(ui_gadget_h ug,
+                                       enum ug_event event, service_h service,
                                        void *priv)
 {
        SETTING_TRACE_BEGIN;
@@ -198,14 +223,12 @@ static void setting_display_ug_on_event(struct ui_gadget *ug,
        }
 }
 
-static void setting_display_ug_on_key_event(struct ui_gadget *ug,
+static void setting_display_ug_on_key_event(ui_gadget_h ug,
                                            enum ug_key_event event,
-                                           bundle *data, void *priv)
+                                           service_h service, void *priv)
 {
        SETTING_TRACE_BEGIN;
        SettingDisplayUG *ad = (SettingDisplayUG *) priv;
-       if (!ug)
-               return;
 
        switch (event) {
        case UG_KEY_EVENT_END:
@@ -264,13 +287,13 @@ UG_MODULE_API void UG_MODULE_EXIT(struct ug_module_ops *ops)
  *
  ***************************************************/
 
-void setting_display_layout_ug_cb(struct ui_gadget *ug, enum ug_mode mode,
+void setting_display_layout_ug_cb(ui_gadget_h ug, enum ug_mode mode,
                                  void *priv)
 {
        SettingDisplayUG *ad = (SettingDisplayUG *) priv;
        Evas_Object *base;
 
-       if (!ug || !priv)
+       if (!priv)
                return;
        SETTING_TRACE_BEGIN;
 
@@ -282,7 +305,7 @@ void setting_display_layout_ug_cb(struct ui_gadget *ug, enum ug_mode mode,
        case UG_MODE_FULLVIEW:
                evas_object_size_hint_weight_set(base, EVAS_HINT_EXPAND,
                                                 EVAS_HINT_EXPAND);
-               elm_win_resize_object_add(ad->win_get, base);
+               //elm_win_resize_object_add(ad->win_get, base);
                evas_object_show(base);
                break;
        default:
@@ -298,11 +321,22 @@ static int setting_reset_display_brightness(void)
        SETTING_TRACE_BEGIN;
        int ret = 0;
 
-       ret += vconf_set_bool(VCONFKEY_SETAPPL_BRIGHTNESS_AUTOMATIC_BOOL, FALSE);
-       ret += vconf_set_int(VCONFKEY_SETAPPL_LCD_BRIGHTNESS, SETTING_BRIGHTNESS_LEVEL_FOR_EMUL);
+       ret += vconf_set_int(VCONFKEY_SETAPPL_BRIGHTNESS_AUTOMATIC_INT, SETTING_BRIGHTNESS_AUTOMATIC_OFF);
+
+       if(isEmulBin())
+       {
+               ret += vconf_set_int(VCONFKEY_SETAPPL_LCD_BRIGHTNESS, SETTING_BRIGHTNESS_DEFAULT_LEVEL);
+#if USE_DEVICE_SET_DISPLAY_BRT
+               ret += device_set_brightness_to_settings(BRIGHTNESS_DISPLAY, SETTING_BRIGHTNESS_DEFAULT_LEVEL);
+#endif
+       }
+       else
+       {
+               ret += vconf_set_int(VCONFKEY_SETAPPL_LCD_BRIGHTNESS, SETTING_BRIGHTNESS_DEFAULT_LEVEL);
 #if USE_DEVICE_SET_DISPLAY_BRT
-       ret += device_set_display_brt(DEV_MAIN_DISPLAY, SETTING_BRIGHTNESS_LEVEL_FOR_EMUL);
+               ret += device_set_brightness_to_settings(BRIGHTNESS_DISPLAY, SETTING_BRIGHTNESS_DEFAULT_LEVEL);
 #endif
+       }
        SETTING_TRACE_END;
        return ret;
 }
@@ -312,15 +346,14 @@ static int setting_reset_display_backlight(void)
 {
        SETTING_TRACE_BEGIN;
        int ret = 0;
-
-       if (isEmulBin()) {
-               ret += vconf_set_int(VCONFKEY_SYSMAN_LCD_TIMEOUT_NORMAL,
-                               SETTING_BACKLIGHT_TIME_10MIN);
-       }
-       else {
-               ret += vconf_set_int(VCONFKEY_SYSMAN_LCD_TIMEOUT_NORMAL,
-                               SETTING_BACKLIGHT_TIME_30SEC);
-       }
+#if SUPPORT_LCD_TIMEOUT_KEEPING
+       ret += vconf_set_int(VCONFKEY_LCD_TIMEOUT_NORMAL_BACKUP, 0);
+#else
+       if(isEmulBin())
+               ret += vconf_set_int(VCONFKEY_SETAPPL_LCD_TIMEOUT_NORMAL, 600);
+       else
+               ret += vconf_set_int(VCONFKEY_SETAPPL_LCD_TIMEOUT_NORMAL, 30);
+#endif
        SETTING_TRACE_END;
        return ret;
 }
@@ -341,7 +374,7 @@ static int setting_reset_display_lc_screen(void)
        SETTING_TRACE_BEGIN;
        int ret = 0;
        ret += vconf_set_str(VCONFKEY_IDLE_LOCK_BGSET, IMG_DEFAULT_HOME_SCREEN);
-       ret += setting_invoke_reset_function("/opt/ug/lib/libug-setting-lock.so", NULL, NULL);
+       ret += setting_invoke_reset_function("setting-lock", 0, NULL);
        return ret;
 }
 
@@ -372,36 +405,42 @@ static int setting_reset_display_main(void)
        SETTING_TRACE_BEGIN;
        int ret = 0;
        ret += setting_reset_display_backlight();
-       ret += setting_reset_display_brightness();
-       
-       ret += vconf_set_bool(VCONFKEY_SETAPPL_BATTERY_PERCENTAGE_BOOL, FALSE);//battery percent
-       ret += vconf_set_bool(VCONFKEY_LAUNCH_EFFECT, FALSE);//launch image
+       //ret += setting_reset_display_brightness();
 
+       ret += vconf_set_bool(VCONFKEY_SETAPPL_BATTERY_PERCENTAGE_BOOL, FALSE);//battery percent
        setting_reset_launch_effect();
 
+       ret += vconf_set_bool(VCONFKEY_SETAPPL_BOOL_AUTO_ADJUST_SCREEN_TONE, TRUE);
+
+       // screen mode
+       ret += vconf_set_str(VCONFKEY_SETAPPL_SCREENMODE_SELNAME, "Dynamic");
+       device_set_image_enhance_mode(0);       // 0 => Dynamic
        return ret;
 }
 
 
 
 /*****/
-UG_MODULE_API int setting_plugin_reset(bundle *data, void *priv)
+UG_MODULE_API int setting_plugin_reset(service_h service, void *priv)
 {
        SETTING_TRACE_BEGIN;
 
        int ret = 0;
-       const char *ug_type = bundle_get_val(data, "viewtype"); /*  usb */
+       char *ug_type = NULL;
+
+       service_get_extra_data(service, "viewtype", &ug_type);
        SETTING_TRACE("ug_type:%s", ug_type);
        if (0 == safeStrCmp(ug_type, "wallpaper")) {
-
+               /*ret += setting_reset_home_wallpaper();
+               ret += setting_reset_display_lc_screen();*/
 #if SUPPORT_RUN_SYSTEM_COMMAND
                ret += excuteCmd(SETTING_POSTINST_FILE, 1, "wallpaper");
-               ret += setting_invoke_reset_function("/opt/ug/lib/libug-setting-lock.so", NULL, NULL);
+               ret += setting_invoke_reset_function("setting-lock", service, NULL);
 #else
                ret += setting_reset_home_wallpaper();
                ret += setting_reset_display_lc_screen();
 #endif
-               
+
        } else if (0 == safeStrCmp(ug_type, "main")) {
 #if SUPPORT_RUN_SYSTEM_COMMAND
                ret += excuteCmd(SETTING_POSTINST_FILE, 1, "display");
@@ -409,6 +448,8 @@ UG_MODULE_API int setting_plugin_reset(bundle *data, void *priv)
 #else
                ret +=  setting_reset_display_main();
 #endif
+       } else if (0 == safeStrCmp(ug_type, "brightness")) {
+               ret += setting_reset_display_brightness();
        }
        return ret;
 }