#include <device/callback.h>
#include <system_settings.h>
#include <runtime_info.h>
-//FIXME
-#if 0
-#include <tzsh_indicator_service.h>
-#endif
#include "common.h"
#include "box.h"
#define ERROR_MESSAGE_LEN 256
-#ifdef HOME_KEY_EMULATION
-/* Predefine string */
-#define PROP_HWKEY_EMULATION "_HWKEY_EMULATION"
-#define KEY_MSG_PREFIX_PRESS "P:"
-#define KEY_MSG_PREFIX_RELEASE "R:"
-#define KEY_MSG_PREFIX_PRESS_C "PC"
-#define KEY_MSG_PREFIX_RELEASE_C "RC"
-
-#ifndef KEY_HOME
-#define KEY_HOME "XF86Phone"
-#endif /* KEY_HOME */
-#endif /* HOME_KEY_EMULATION */
-
-//static E_DBus_Connection *edbus_conn=NULL;
-//static E_DBus_Signal_Handler *edbus_handler=NULL;
-static Eina_Bool home_button_pressed = EINA_FALSE;
-static Eina_Bool show_hide_pressed = EINA_FALSE;
Evas_Coord_Point indicator_press_coord = {0,0};
Ecore_Timer *clock_timer;
int is_transparent = 0;
int current_angle = 0;
int current_state = 0;
-#if 0
-static int bFirst_opacity = 1;
-#endif
static struct _s_info {
Ecore_Timer *listen_timer;
static void _indicator_lang_changed_cb(app_event_info_h event_info, void *data);
static void _indicator_region_changed_cb(app_event_info_h event_info, void *data);
static void _indicator_window_delete_cb(void *data, Evas_Object * obj, void *event);
-//static Eina_Bool _indicator_client_message_cb(void *data, int type, void *event);
-static void _indicator_mouse_down_cb(void *data, Evas * e, Evas_Object * obj, void *event);
-static void _indicator_mouse_move_cb(void *data, Evas * e, Evas_Object * obj, void *event);
-static void _indicator_mouse_up_cb(void *data, Evas * e, Evas_Object * obj, void *event);
static void _indicator_low_bat_cb(app_event_info_h event_info, void *data)
}
}
-#if 0
-static void _rotate_window(struct appdata *ad, int new_angle)
-{
- ret_if(!ad);
-
- _D("Indicator angle is %d degree", new_angle);
-
- current_angle = new_angle;
-
- switch (new_angle) {
- case 0:
- case 180:
- evas_object_resize(ad->win.win, ad->win.port_w, ad->win.h);
- break;
- case 90:
- case 270:
- evas_object_resize(ad->win.win, ad->win.land_w, ad->win.h);
- break;
- default:
- break;
- }
-}
-#endif
-
-#if 0
-static void _change_opacity(void *data, enum indicator_opacity_mode mode)
-{
- struct appdata *ad = NULL;
- const char *signal = NULL;
- retm_if(data == NULL, "Invalid parameter!");
-
- ad = data;
-
- if (bFirst_opacity==1) bFirst_opacity = 0;
-
- switch (mode) {
- case INDICATOR_OPACITY_OPAQUE:
- signal = "bg.opaque";
- ad->opacity_mode = mode;
- break;
- case INDICATOR_OPACITY_TRANSLUCENT:
- signal = "bg.translucent";
- ad->opacity_mode = mode;
- break;
- case INDICATOR_OPACITY_TRANSPARENT:
- signal = "bg.transparent";
- ad->opacity_mode = mode;
- break;
- default:
- _E("unknown mode : %d", mode);
- signal = "bg.opaque";
- ad->opacity_mode = INDICATOR_OPACITY_OPAQUE;
- break;
-
- }
- util_signal_emit_by_win(&(ad->win),signal, "indicator.prog");
-}
-#endif
-
-#if 0
-static void _indicator_quickpanel_changed(void *data, int is_open)
-{
- int val = 0;
-
- ret_if(!data);
-
- if (vconf_get_int(VCONFKEY_IDLE_LOCK_STATE, &val) < 0) return;
- if (val == VCONFKEY_IDLE_LOCK) return;
-}
-#endif
-
-#if 0
-static Eina_Bool _indicator_client_message_cb(void *data, int type, void *event)
-{
- Ecore_X_Event_Client_Message *ev = (Ecore_X_Event_Client_Message *) event;
- struct appdata *ad = NULL;
- ad = data;
-
- retv_if(data == NULL || event == NULL, ECORE_CALLBACK_RENEW);
- if (ev->message_type == ECORE_X_ATOM_E_ILLUME_QUICKPANEL_STATE) {
- if (ev->data.l[0] == ECORE_X_ATOM_E_ILLUME_QUICKPANEL_ON) {
- _indicator_quickpanel_changed(data, 1);
- } else if (ev->data.l[0] == ECORE_X_ATOM_E_ILLUME_QUICKPANEL_OFF) {
- _indicator_quickpanel_changed(data, 0);
- }
- }
-
- if (ev->message_type == ECORE_X_ATOM_E_ILLUME_ROTATE_WINDOW_ANGLE) {
- int new_angle = 0;
- if(ev->win != ad->active_indi_win) {
- return ECORE_CALLBACK_RENEW;
- }
- new_angle = ev->data.l[0];
- _rotate_window(ad, new_angle);
- }
- return EINA_TRUE;
-}
-#endif
-
-/* this function will be reused */
-#if 0
-static Eina_Bool _active_indicator_handle(void* data,int type)
-{
- int trans_mode = 0;
- int angle = 0;
-// Ecore_X_Illume_Indicator_Opacity_Mode illume_opacity = 0;
-
- retv_if(!data, EINA_FALSE);
-
- struct appdata *ad = (struct appdata *)data;
- switch (type) {
- /* Opacity */
- case 1:
- illume_opacity = ecore_x_e_illume_indicator_opacity_get(ad->active_indi_win);
-
- switch(illume_opacity) {
- case ECORE_X_ILLUME_INDICATOR_OPAQUE:
- trans_mode = INDICATOR_OPACITY_OPAQUE;
- break;
- case ECORE_X_ILLUME_INDICATOR_TRANSLUCENT:
- trans_mode = INDICATOR_OPACITY_TRANSLUCENT;
- break;
- case ECORE_X_ILLUME_INDICATOR_TRANSPARENT:
- trans_mode = INDICATOR_OPACITY_TRANSPARENT;
- break;
- default:
- trans_mode = INDICATOR_OPACITY_OPAQUE;
- break;
- }
-
- _change_opacity(ad, trans_mode);
- break;
- /* Rotate */
- case 2:
- util_win_prop_angle_get(ad->active_indi_win, &angle);
- _rotate_window(ad, angle);
- break;
- default :
- break;
- }
-
- return EINA_TRUE;
-}
-#endif
-
-/* this function will be reused */
-#if 0
-static Eina_Bool _property_changed_cb(void *data, int type, void *event)
-{
- struct appdata *ad = data;
- Ecore_X_Event_Window_Property *ev = event;
-
- retv_if(!ad, ECORE_CALLBACK_PASS_ON);
- retv_if(!ev, ECORE_CALLBACK_PASS_ON);
-
- if (ev->atom == ECORE_X_ATOM_E_ILLUME_ROTATE_WINDOW_ANGLE) {
- if (ev->win == ad->active_indi_win) {
- _active_indicator_handle(data, 2);
- }
- } else if (ev->atom == ECORE_X_ATOM_E_ILLUME_INDICATOR_OPACITY_MODE) {
- if (ev->win == ad->active_indi_win) {
- _active_indicator_handle(data, 1);
- }
- } else if (ev->atom == ad->atom_active) {
- int ret = 0;
-
- Ecore_X_Window active_win;
-
- ret = ecore_x_window_prop_window_get(ecore_x_window_root_first_get(), ad->atom_active, &(active_win), 1);
- if (ret <= -1) {
- _E("Count of fetched items : %d", ret);
- return ECORE_CALLBACK_PASS_ON;
- }
-
- if (active_win != ad->active_indi_win) {
- if (ad->active_indi_win != -1) {
- ecore_x_window_unsniff(ad->active_indi_win);
- _D("UNSNIFF API %x", ad->active_indi_win);
- }
- ad->active_indi_win = active_win;
-
- ecore_x_window_sniff(ad->active_indi_win);
- }
-
- _active_indicator_handle(data, 1);
- _active_indicator_handle(data, 2);
- }
-
- return ECORE_CALLBACK_PASS_ON;
-}
-#endif
-
-#if 0
-static void _mctrl_monitor_cb(minicontrol_action_e action, const char *name, unsigned int width, unsigned int height, minicontrol_priority_e priority, void *data)
-{
- ret_if(!data);
- ret_if(!name);
-
- modules_minictrl_control(action,name,data);
-}
-#endif
-
static void _indicator_ecore_evas_msg_parent_handle(Ecore_Evas *ee, int msg_domain, int msg_id, void *data, int size)
{
ret_if(!data);
#endif /* _SUPPORT_SCREEN_READER */
}
-#if 0
-static void on_changed_receive(void *data, DBusMessage *msg)
-{
- int r;
-
- r = dbus_message_is_signal(msg, INTERFACE_NAME, MEMBER_NAME);
- ret_if(!r);
-
- _D("LCD On handling");
-
- if (!icon_get_update_flag()) {
- icon_set_update_flag(1);
- box_noti_ani_handle(1);
- modules_wake_up(data);
- }
-}
-
-static void edbus_cleaner(void)
-{
- if (!edbus_conn) {
- _D("already unregistered");
- return;
- }
-
- if (edbus_handler) {
- e_dbus_signal_handler_del(edbus_conn, edbus_handler);
- edbus_handler = NULL;
- }
-
- if (edbus_conn) {
- e_dbus_connection_close(edbus_conn);
- edbus_conn = NULL;
- }
-
- e_dbus_shutdown();
-}
-
-static int edbus_listener(void* data)
-{
- if (edbus_conn != NULL) {
- _D("alreay exist");
- return -1;
- }
-
- e_dbus_init();
-
- edbus_conn = e_dbus_bus_get(DBUS_BUS_SYSTEM);
- if (!edbus_conn) {
- _E("e_dbus_bus_get error");
- return -1;
- }
-
- edbus_handler = e_dbus_signal_handler_add(edbus_conn, NULL, PATH_NAME, INTERFACE_NAME, MEMBER_NAME, on_changed_receive, data);
- if (!edbus_handler) {
- _E("e_dbus_signal_handler_add error");
- return -1;
- }
-
- return 0;
-}
-#endif
-
static void _register_event_handler_both(win_info *win, void *data)
{
Ecore_Evas *ee;
ee = ecore_evas_ecore_evas_get(evas_object_evas_get(win->win));
evas_object_smart_callback_add(win->win,"delete,request", _indicator_window_delete_cb, data);
- evas_object_event_callback_add(win->layout, EVAS_CALLBACK_MOUSE_DOWN, _indicator_mouse_down_cb, win);
- evas_object_event_callback_add(win->layout, EVAS_CALLBACK_MOUSE_MOVE, _indicator_mouse_move_cb, win);
- evas_object_event_callback_add(win->layout, EVAS_CALLBACK_MOUSE_UP,_indicator_mouse_up_cb, win);
ecore_evas_callback_msg_parent_handle_set(ee, _indicator_ecore_evas_msg_parent_handle);
ecore_evas_data_set(ee,"indicator_app_data",data);
}
-/* FIXME */
-#if 0
-static void _indicator_service_cb(void *data, tzsh_indicator_service_h service, int angle, int opacity)
-{
- _D("Indicator service callback");
-}
-#endif
static void register_event_handler(void *data)
{
struct appdata *ad = data;
-// Ecore_Event_Handler *hdl = NULL;
+
ret_if(!data);
ad->active_indi_win = -1;
- //ad->atom_active = ecore_x_atom_get("_NET_ACTIVE_WINDOW");
- //ecore_x_window_sniff(ecore_x_window_root_first_get());
_register_event_handler_both(&(ad->win),data);
- /* FIXME */
-#if 0
- if (ad->indicator_service) {
- tzsh_indicator_service_property_change_cb_set(ad->indicator_service, _indicator_service_cb, NULL);
- }
-#endif
-
-#if 0
- hdl = ecore_event_handler_add(ECORE_X_EVENT_CLIENT_MESSAGE, _indicator_client_message_cb, (void *)ad);
- ret_if(!hdl);
- ad->evt_handlers = eina_list_append(ad->evt_handlers, hdl);
-
- hdl = ecore_event_handler_add(ECORE_X_EVENT_WINDOW_PROPERTY, _property_changed_cb, data);
- ret_if(!hdl);
- ad->evt_handlers = eina_list_append(ad->evt_handlers, hdl);
-#endif
int err = device_add_callback(DEVICE_CALLBACK_DISPLAY_STATE, _indicator_notify_pm_state_cb, ad);
if (err != DEVICE_ERROR_NONE) {
_E("device_add_callback failed: %s", get_error_message(err));
_E("util_system_settings_set_changed_cb failed");
}
-// edbus_listener(data);
}
static void _unregister_event_handler_both(win_info *win)
ret_if(!win);
evas_object_smart_callback_del(win->win, "delete-request", _indicator_window_delete_cb);
- evas_object_event_callback_del(win->layout, EVAS_CALLBACK_MOUSE_DOWN, _indicator_mouse_down_cb);
- evas_object_event_callback_del(win->layout, EVAS_CALLBACK_MOUSE_MOVE, _indicator_mouse_move_cb);
- evas_object_event_callback_del(win->layout, EVAS_CALLBACK_MOUSE_UP, _indicator_mouse_up_cb);
}
static int unregister_event_handler(void *data)
if (hdl) ecore_event_handler_del(hdl);
}
-// edbus_cleaner();
return OK;
}
return;
}
-//FIXME
-#if 0
-static indicator_error_e _tzsh_set(struct appdata* ad)
-{
- tzsh_window tz_win;
-
- retv_if(!ad, INDICATOR_ERROR_INVALID_PARAMETER);
- retv_if(!ad->win.win, INDICATOR_ERROR_INVALID_PARAMETER);
-
- ad->tzsh = tzsh_create(TZSH_TOOLKIT_TYPE_EFL);
- retv_if(!ad->tzsh, INDICATOR_ERROR_FAIL);
-
- tz_win = elm_win_window_id_get(ad->win.win);
- if (!tz_win) {
- tzsh_destroy(ad->tzsh);
- _E("Failed to get Tizen window");
- /* FIXME */
- //return INDICATOR_ERROR_FAIL;
- return INDICATOR_ERROR_NONE;
- }
-
- ad->indicator_service = tzsh_indicator_service_create(ad->tzsh, tz_win);
- if (!ad->indicator_service) {
- tzsh_destroy(ad->tzsh);
- _E("Failed to create Tizen window indicator service");
- return INDICATOR_ERROR_FAIL;
- }
-
- return INDICATOR_ERROR_NONE;
-}
-
-static void _tzsh_unset(struct appdata *ad)
-{
- ret_if(!ad);
-
- if (ad->indicator_service) {
- tzsh_indicator_service_destroy(ad->indicator_service);
- ad->indicator_service = NULL;
- }
-
- if (ad->tzsh) {
- tzsh_destroy(ad->tzsh);
- ad->tzsh = NULL;
- }
-}
-#endif
static Eina_Bool _indicator_listen_timer_cb(void* data)
{
retv_if(!win, ECORE_CALLBACK_CANCEL);
- //win = (win_info*)data;
if (!elm_win_socket_listen(win->win , INDICATOR_SERVICE_NAME, 0, EINA_FALSE)) {
_E("failed to elm_win_socket_listen() %x", win->win);
_create_window(ad);
- //FIXME
-#if 0
- if (INDICATOR_ERROR_NONE != _tzsh_set(ad)) {
- _E("Failed to set tzsh");
- }
-#endif
-
/* FIXME */
ad->win.h = INDICATOR_HEIGHT_TM1;
ad->win.w = ad->win.port_w;
ad->win.win = NULL;
}
- //FIXME
-#if 0
- _tzsh_unset(ad);
-#endif
if (ad)
free(ad);
return INDICATOR_ERROR_NONE;
}
-static void __indicator_set_showhide_press(int value, int line)
-{
- show_hide_pressed = value;
-}
-
-static void _indicator_mouse_down_cb(void *data, Evas * e, Evas_Object * obj, void *event)
-{
- win_info *win = (win_info*)data;
- Evas_Event_Mouse_Down *ev = NULL;
-
- retm_if(data == NULL || event == NULL, "Invalid parameter!");
- ev = event;
-
- win->mouse_event.x = ev->canvas.x;
- win->mouse_event.y = ev->canvas.y;
-
- if (ev->button != 1) {
- return;
- }
-
-#ifdef HOME_KEY_EMULATION
- if (box_check_indicator_area(win, ev->canvas.x, ev->canvas.y)) {
- int lock_state = VCONFKEY_IDLE_UNLOCK;
- int ps_state = -1;
- int ret = -1;
-
- /* if (indicator_message_disp_check(win->type) == 1) {
- return;
- }*/
- ret = vconf_get_int(VCONFKEY_IDLE_LOCK_STATE,&lock_state);
-
- if (ret != 0 || lock_state == VCONFKEY_IDLE_LOCK) {
- return;
- }
- ret = vconf_get_int(VCONFKEY_SETAPPL_PSMODE,&ps_state);
-
- if (ret != 0 || ps_state == SETTING_PSMODE_EMERGENCY) {
- return;
- }
-
- if (box_check_home_icon_area(win, ev->canvas.x, ev->canvas.y)) {
-
- if (util_check_system_status() == FAIL) {
- _D("util_check_system_status failed");
- return;
- }
- home_button_pressed = EINA_TRUE;
- }
- indicator_press_coord.x = ev->canvas.x;
- indicator_press_coord.y = ev->canvas.y;
- }
-#endif
-}
-
-
-
-static void _indicator_mouse_move_cb(void *data, Evas * e, Evas_Object * obj, void *event)
-{
- Evas_Event_Mouse_Move *ev = NULL;
- win_info* win = (win_info*)data;
-
- retm_if(data == NULL || event == NULL, "Invalid parameter!");
-
- ev = event;
-
- if (home_button_pressed) {
- if (!box_check_home_icon_area(win,ev->cur.canvas.x,ev->cur.canvas.y)) {
- home_button_pressed = false;
- }
-
- }
- if (show_hide_pressed == 1) {
- if (!box_check_more_icon_area(win,ev->cur.canvas.x,ev->cur.canvas.y)) {
- __indicator_set_showhide_press(EINA_FALSE, __LINE__);
- }
- }
-}
-
-static void _indicator_mouse_up_cb(void *data, Evas * e, Evas_Object * obj, void *event)
-{
- Evas_Event_Mouse_Up *ev = NULL;
- win_info *win = (win_info *)data;
-
- retm_if(data == NULL || event == NULL, "Invalid parameter!");
-
- ev = event;
-
-#ifdef HOME_KEY_EMULATION
- if (box_check_indicator_area(win, ev->canvas.x, ev->canvas.y)) {
-
- if (box_check_home_icon_area(win, ev->canvas.x, ev->canvas.y)) {
- if (home_button_pressed == EINA_TRUE) {
- util_launch_search(win->data);
- feedback_play_type(FEEDBACK_TYPE_SOUND, FEEDBACK_PATTERN_TAP);
- }
-
- } else if (box_check_more_icon_area(win, ev->canvas.x, ev->canvas.y)) {
- if(show_hide_pressed == EINA_TRUE) {
- _D("pressed area");
- feedback_play_type(FEEDBACK_TYPE_SOUND, FEEDBACK_PATTERN_TAP);
- }
- }
- }
-
- home_button_pressed = EINA_FALSE;
- __indicator_set_showhide_press(EINA_FALSE, __LINE__);
-
-#else /* HOME_REMOVE_LONGPRESS */
- int mouse_up_prio = -1;
- int mouse_down_prio = -1;
- int lock_state, lock_ret;
-
- if (home_button_pressed == EINA_TRUE) {
- home_button_pressed = EINA_FALSE;
- }
-
- mouse_down_prio =
- box_get_priority_in_move_area(win,win->mouse_event.x,
- win->mouse_event.y);
- mouse_up_prio = box_get_priority_in_move_area(win,ev->canvas.x,
- ev->canvas.y);
-
- if (mouse_down_prio > -1 && mouse_up_prio > -1
- && mouse_down_prio == mouse_up_prio) {
- switch (mouse_down_prio) {
- case INDICATOR_PRIORITY_FIXED1:
- lock_ret = system_settings_get_value_int(SYSTEM_SETTINGS_KEY_LOCK_STATE,
- &lock_state);
-
- /* In Lock Screen, home button don't have to do */
- if (lock_ret == SYSTEM_SETTINGS_ERROR_NONE && lock_state == SYSTEM_SETTINGS_LOCK_STATE_LOCK)
- break;
-
- if (util_check_system_status() == FAIL)
- break;
- break;
- }
- }
-#endif /* HOME_KEY_EMULATION */
- win->mouse_event.x = 0;
- win->mouse_event.y = 0;
-}
-
-#if 0
-static void _app_terminate_cb(app_context_h app_context, app_context_status_e status, void *data)
-{
- retm_if(data == NULL, "Invalid parameter!");
- _D("_app_terminate_cb");
- char *app_id = NULL;
- app_context_get_app_id(app_context, &app_id);
- if (app_id == NULL) {
- _E("app_id is null!!");
- return;
- } else {
- _D("_app_terminate_cb %s",app_id);
- }
-
- if (status == APP_CONTEXT_STATUS_TERMINATED) {
- if (strcmp(MP_APP_ID,app_id) == 0) {
- _D("hide music icon");
- hide_mp_icon();
- } else if(strcmp(FMRADIO_APP_ID,app_id) == 0) {
- _D("hide fm radio icon");
- hide_fm_radio_icon();
- } else if(strcmp(VR_APP_ID,app_id) == 0) {
- _D("hide voice recorder icon");
- hide_voice_recorder_icon();
- }
- }
- if (app_id!=NULL) {
- free(app_id);
- app_id = NULL;
- }
-}
-
-static void register_app_terminate_cb(void* data)
-{
- retm_if(data == NULL, "Invalid parameter!");
- app_manager_set_app_context_status_cb(_app_terminate_cb, MP_APP_ID, data);
- app_manager_set_app_context_status_cb(_app_terminate_cb, FMRADIO_APP_ID, data);
- app_manager_set_app_context_status_cb(_app_terminate_cb, VR_APP_ID, data);
-}
-#endif
-
static void _signal_handler(int signum, siginfo_t *info, void *unused)
{
ui_app_exit();
indicator_service_tts_init(data);
#endif
_indicator_lock_status_cb(SYSTEM_SETTINGS_KEY_LOCK_STATE, data);
-#if 0
- register_app_terminate_cb(data);
-#endif
}
int main(int argc, char *argv[])
+++ /dev/null
-/*
- * Indicator
- *
- * Copyright (c) 2000 - 2015 Samsung Electronics Co., Ltd. All rights reserved.
- *
- * Licensed under the Apache License, Version 2.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.apache.org/licenses/LICENSE-2.0
- *
- * 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.
- *
- */
-
-
-#ifndef _INDICATOR_REMOVE_SEARCH
-#include <stdio.h>
-#include <stdlib.h>
-#include <app_preference.h>
-
-#include "common.h"
-#include "indicator.h"
-#include "main.h"
-#include "modules.h"
-#include "icon.h"
-#include "indicator_gui.h"
-#include "util.h"
-#include "log.h"
-
-#define ICON_PRIORITY INDICATOR_PRIORITY_FIXED10
-#define MODULE_NAME "search"
-
-static int register_search_module(void *data);
-static int unregister_search_module(void);
-#ifdef _SUPPORT_SCREEN_READER
-static int register_search_tts(void *data);
-#endif
-#define EXPORT_PUBLIC __attribute__ ((visibility("default")))
-
-icon_s search = {
- .type = INDICATOR_IMG_ICON,
- .name = MODULE_NAME,
- .priority = ICON_PRIORITY,
- .always_top = EINA_FALSE,
- .img_obj = {0, 0, DEFAULT_ICON_WIDTH, DEFAULT_ICON_HEIGHT},
- .obj_exist = EINA_FALSE,
- .area = INDICATOR_ICON_AREA_FIXED,
- .exist_in_view = EINA_FALSE,
- .init = register_search_module,
- .fini = unregister_search_module,
-#ifdef _SUPPORT_SCREEN_READER
- .register_tts = register_search_tts,
-#endif
-};
-
-static const char *icon_path[] = {
- "B03_search.png",
- "B03_search_press.png",
- NULL
-};
-
-
-static void set_app_state(void *data)
-{
- search.ad = data;
-}
-
-
-static void show_image_icon(int index)
-{
- search.img_obj.data = icon_path[index];
- icon_show(&search);
-}
-
-
-static void hide_image_icon(void)
-{
- icon_hide(&search);
-}
-
-
-EXPORT_PUBLIC void hide_search_icon(void)
-{
- hide_image_icon();
-}
-
-
-EXPORT_PUBLIC void show_search_icon(void)
-{
- show_image_icon(0);
-}
-
-
-static void _handle_search_icon(void *data)
-{
- int lock_status = -1;
- int bHide = 0;
- int ret = -1;
- struct appdata *ad = (struct appdata *)data;
-
- retm_if(data == NULL, "Invalid parameter!");
-
- ret = system_settings_get_value_int(SYSTEM_SETTINGS_KEY_LOCK_STATE, &lock_status);
- retm_if(ret != SYSTEM_SETTINGS_ERROR_NONE, "Cannot get LOCK_STATE status");
-
- _D("_indicator_lock_status_cb!!(%d)", lock_status);
-
- if (lock_status == SYSTEM_SETTINGS_LOCK_STATE_LOCK)
- bHide = 1;
- else
- bHide = 0;
-
- if (bHide == 0) {
- _D("_lock_status_cb : show search!");
- show_image_icon(0);
- util_signal_emit_by_win(&(ad->win), "indicator.lock.off", "indicator.prog");
- } else {
- _D("_lock_status_cb : hide search");
- util_signal_emit_by_win(&(ad->win), "indicator.lock.on", "indicator.prog");
- hide_image_icon();
- }
-}
-
-
-static void _lock_status_cb(system_settings_key_e key, void *data)
-{
- _D("lock state change");
- _handle_search_icon(data);
-}
-
-
-static int register_search_module(void *data)
-{
- int ret = FAIL;
-
- retv_if(!data, FAIL);
-
- set_app_state(data);
-
- ret = util_system_settings_set_changed_cb(SYSTEM_SETTINGS_KEY_LOCK_STATE, _lock_status_cb, data);
- retvm_if(ret != SYSTEM_SETTINGS_ERROR_NONE, FAIL, "Cannot set callback on lock state change");
-
- _handle_search_icon(data);
-
- return OK;
-}
-
-
-static int unregister_search_module(void)
-{
- util_system_settings_unset_changed_cb(SYSTEM_SETTINGS_KEY_LOCK_STATE, _lock_status_cb);
-
- return OK;
-}
-
-
-#ifdef _SUPPORT_SCREEN_READER
-static void _apptray_access_cb(void *data, Evas_Object *obj, Elm_Object_Item *item)
-{
- util_launch_search(data);
-}
-
-
-static char *_access_info_cb(void *data, Evas_Object *obj)
-{
- Evas_Object *item = data;
- char *tmp = NULL;
- char buf[256] = {0,};
- snprintf(buf, sizeof(buf), "%s, %s, %s", _("IDS_IDLE_SK_SMARTSEARCH_SEARCH"),
- _("IDS_COM_BODY_BUTTON_T_TTS"), _("IDS_IDLE_BODY_STATUS_BAR_ITEM"));
-
- return strdup(buf);
-}
-
-
-static int register_search_tts(void *data)
-{
- int r = 0;
- int ret = FAIL;
-
- retv_if(!data, FAIL);
-
- Evas_Object *to = NULL;
- Evas_Object *ao = NULL;
- struct appdata *ad = data;
-
- to = (Evas_Object *) edje_object_part_object_get(elm_layout_edje_get(ad->win.layout), "elm.swallow.fixed6.access");
- ao = util_access_object_register(to, ad->win.layout);
- util_access_object_info_cb_set(ao, ELM_ACCESS_INFO, _access_info_cb, data);
- util_access_object_activate_cb_set(ao, _apptray_access_cb, data);
-
- return OK;
-}
-#endif /* _SUPPORT_SCREEN_READER */
-#endif /* _INDICATOR_REMOVE_SEARCH */