#define DEFAULT_APP_ORDER "org.tizen.watch-setting empty empty empty"
#define APPS_PKG "org.tizen.appptray-widget-app"
-#define APP_WIDGET_CONTENT_KEY "org.tizen.apptray-widget-content"
+#define APP_WIDGET_CONTENT_KEY "org.tizen.apptray-widget"
typedef struct appdata {
Evas_Object *edit_win;
{
snprintf(content, sizeof(content)-1, "%s %s %s %s", g_info->appid_list[0], g_info->appid_list[1], g_info->appid_list[2], g_info->appid_list[3]);
- int ret = preference_set_string(APP_WIDGET_CONTENT_KEY, content);
+ int ret = preference_set_string(widget_id, content);
_D("content: %s updated to preference file: ret:%d",content,ret);
}
char *_get_date(void)
{
-
+ _ENTER;
struct tm st;
time_t tt = time(NULL);
localtime_r(&tt, &st);
static void _init_theme(void)
{
+ _ENTER;
theme = elm_theme_new();
}
static void _fini_theme(void)
{
+ _ENTER;
elm_theme_free(theme);
theme = NULL;
if (font_theme) {
static Eina_Bool _key_release_cb(void *data, int type, void *event)
{
+ _ENTER;
Evas_Event_Key_Up *ev = event;
retv_if(NULL == ev, ECORE_CALLBACK_PASS_ON);
}
static void _terminate_add_to_shortcut(void){
- _D("");
+ _ENTER;
appdata_s *info = _get_info();
int i = 0;
bundle_add_str(b, "test", "delete");
updateContent();
- //ret = widget_service_trigger_update(APP-WIDGET-PKGID, widget_id, b, 1);
- ret = widget_service_trigger_update(APP_WIDGET_PKGID, NULL, b, 1);
+// ret = widget_service_trigger_update(APP_WIDGET_PKGID, widget_id, b, 1);
+ //ret = widget_service_trigger_update(APP_WIDGET_PKGID, NULL, b, 1);
if(WIDGET_ERROR_NONE != ret){
_E("app-widget widget trigger failed %d", ret);
}
snprintf(content, sizeof(content)-1, "%s %s %s %s", g_info->appid_list[0], g_info->appid_list[1], g_info->appid_list[2], g_info->appid_list[3]);
bundle_add_str(b, "test", content);
_D("content : %s", content);
- //ret = widget_service_trigger_update(APP_WIDGET_PKGID, widget_id, b, 1);
+
updateContent();
- ret = widget_service_trigger_update(APP_WIDGET_PKGID, NULL, b, 1);
+// ret = widget_service_trigger_update(APP_WIDGET_PKGID, widget_id, b, 1);
+ //ret = widget_service_trigger_update(APP_WIDGET_PKGID, NULL, b, 1);
if(WIDGET_ERROR_NONE != ret){
_E("app widget widget trigger failed %d", ret);
static void _create_edit_win(appdata_s *info, const char *name, const char *title)
{
+ _ENTER;
info->edit_win = elm_win_add(NULL, name, ELM_WIN_BASIC);
ret_if(!info->edit_win);
evas_object_color_set(info->edit_win, 0, 0, 0, 0);
static void _create_select_win(appdata_s *info, const char *name, const char *title)
{
+ _ENTER;
info->select_win = elm_win_add(NULL, name, ELM_WIN_BASIC);
ret_if(!info->select_win);
}
static Eina_Bool _longpress_timer_cb(void *data){
+ _ENTER;
Evas_Object *item = NULL;
char index[10] = {0};
snprintf(index, sizeof(index)-1, "index%d", pressed_index);
}
static void _render_post_cb(void *data, Evas *e , void *event_info){
+ _ENTER;
_D("render finished");
Evas_Object *slot = (Evas_Object *)data;
}
static void _mouse_clicked_cb(void *data, Evas_Object *o, const char *emission, const char *source){
+ _ENTER;
_D("icon clicked");
static void _mouse_down_cb(void *data, Evas_Object *o, const char *emission, const char *source){
_D("icon mouse down");
+ _ENTER;
Evas_Object *icon = elm_object_part_content_get((Evas_Object *)data, "icon");
evas_object_color_set(icon, 255, 255, 255, 127);
}
static void _mouse_up_cb(void *data, Evas_Object *o, const char *emission, const char *source){
_D("icon mouse up");
+ _ENTER;
Evas_Object *icon = elm_object_part_content_get((Evas_Object *)data, "icon");
evas_object_color_set(icon, 255, 255, 255, 255);
}
static void _plus_mouse_clicked_cb(void *data, Evas_Object *o, const char *emission, const char *source){
_D("plus clicked");
+ _ENTER;
if(launch_flag == EINA_FALSE){
launch_flag = EINA_TRUE;
return;
}
static void _del_mouse_down_cb(void *data, Evas_Object *o, const char *emission, const char *source){
+ _ENTER;
_D("del mouse down");
elm_object_signal_emit((Evas_Object *)data, "pressed", "slot");
}
static void _del_mouse_up_cb(void *data, Evas_Object *o, const char *emission, const char *source){
+ _ENTER;
_D("del mouse up");
elm_object_signal_emit((Evas_Object *)data, "released", "slot");
}
static void _del_mouse_clicked_cb(void *data, Evas_Object *o, const char *emission, const char *source){
+ _ENTER;
_D("del mouse clicked");
char index[10] = {0};
}
static void _transit_del_cb(void *data, Elm_Transit *transit){
+ _ENTER;
_D("transit end");
char index[10] = {0};
snprintf(index, sizeof(index)-1, "index%d", pressed_index);
}
static void _anim_switch_item(Evas_Object *item, int src, int dst){
+ _ENTER;
if(transit_go == EINA_TRUE) return;
transit_go = EINA_TRUE;
Elm_Transit *transit = elm_transit_add();
static void _move_cb(void *data, Evas *e, Evas_Object *obj, void *event_info)
{
+ _ENTER;
Evas_Event_Mouse_Move *ev = event_info;
int cur_x, cur_y;
char *tmp = NULL;
icon = evas_object_image_add(evas_object_evas_get(page));
evas_object_repeat_events_set(icon, EINA_TRUE);
+ _D("icon:%s ,name:%s",item_info->icon,item_info->name);
evas_object_image_file_set(icon, item_info->icon, NULL);
evas_object_image_filled_set(icon, EINA_TRUE);
evas_object_show(icon);
}
void app_shortcut_show_name(Evas_Object *page){
-
+ _ENTER;
appdata_s *info = _get_info();
item_info_s *item_info = NULL;
item_info = evas_object_data_get(page, "p_i_n");
}
void app_shortcut_hide_name(){
-
+ _ENTER;
appdata_s *info = _get_info();
if(hide_flag == EINA_FALSE){
_D("hide app name");
}
#ifdef TIZEN_SDK
Evas_Object *_set_app_slot(const char *appid, int pos){
+ _ENTER;
package_info_h appinfo_h = NULL;
_D("%s", appid);
char *icon_path_tmp = NULL;
} else {
icon_path_tmp = strdup(DEFAULT_ICON);
}
-
+
if(PMINFO_R_OK != pkgmgrinfo_appinfo_get_label(appinfo_h, &label)){
_E("get label failed");
}
#endif
static void _create_edit_layout(appdata_s *info){
+ _ENTER;
int ret = 0;
Evas_Object *layout = NULL;
layout = elm_layout_add(info->edit_win);
static void _create_layout(appdata_s *info){
+ _ENTER;
Evas_Object *layout = NULL;
int ret = 0;
Eina_List *item_info_list = NULL;
info->scroller = scroller;
elm_object_part_content_set(layout, "scroller", scroller);
-
+
evas_object_show(scroller);
_D("scroller create done");
/* get apps list */
void apps_item_info_destroy(item_info_s *item_info)
{
+ _ENTER;
ret_if(!item_info);
if (item_info->pkgid) free(item_info->pkgid);
item_info_s *apps_apps_info_create(const char *appid)
{
-
+ _ENTER;
item_info_s *item_info = NULL;
#ifdef TIZEN_SDK
package_info_h appinfo_h = NULL;
goto_if(NULL == item_info->pkgid, ERROR);
}
#endif
-
+
item_info->appid = strdup(appid);
goto_if(NULL == item_info->appid, ERROR);
item_info_s *apps_recent_info_create(const char *appid)
{
-
+ _ENTER;
item_info_s *item_info = NULL;
#ifdef TIZEN_SDK
package_info_h appinfo_h = NULL;
goto_if(PACKAGE_MANAGER_ERROR_NONE != package_info_get_label(appinfo_h, &name), ERROR);
goto_if(PACKAGE_MANAGER_ERROR_NONE != package_info_get_icon(appinfo_h, &icon), ERROR);
goto_if(PACKAGE_MANAGER_ERROR_NONE != package_info_get_label(appinfo_h, &type), ERROR);
+ item_info->pkgid = strdup(appid);
#else
goto_if(0 > pkgmgrinfo_appinfo_get_appinfo(appid, &appinfo_h), ERROR);
goto_if(PMINFO_R_OK != pkgmgrinfo_appinfo_get_label(appinfo_h, &name), ERROR);
goto_if(NULL == item_info->pkgid, ERROR);
}
#endif
- item_info->pkgid = strdup(appid);
+
item_info->appid = strdup(appid);
goto_if(NULL == item_info->appid, ERROR);
ERROR:
apps_item_info_destroy(item_info);
-
+
#ifdef TIZEN_SDK
if (appinfo_h) package_info_destroy(appinfo_h);
#else
item_info_s *apps_item_info_create(const char *appid)
{
+ _ENTER;
item_info_s *item_info = NULL;
pkgmgrinfo_appinfo_h appinfo_h = NULL;
pkgmgrinfo_pkginfo_h pkghandle = NULL;
goto_if(PMINFO_R_OK != pkgmgrinfo_appinfo_get_label(appinfo_h, &name), ERROR);
goto_if(PMINFO_R_OK != pkgmgrinfo_appinfo_get_icon(appinfo_h, &icon), ERROR);
+ _D("name:%s, icon:%s",name,icon);
do {
break_if(PMINFO_R_OK != pkgmgrinfo_appinfo_get_pkgid(appinfo_h, &pkgid));
if (!enabled) goto ERROR;
goto_if(PMINFO_R_OK != pkgmgrinfo_pkginfo_get_type(pkghandle, &type), ERROR);
-
+
if (pkgid) {
item_info->pkgid = strdup(pkgid);
goto_if(NULL == item_info->pkgid, ERROR);
}
}
-
+
if (icon) {
if (strlen(icon) > 0) {
item_info->icon = strdup(icon);
item_info->icon = strdup(DEFAULT_ICON);
goto_if(NULL == item_info->icon, ERROR);
}
-
+
item_info->removable = removable;
static int _apps_sort_cb(const void *d1, const void *d2)
{
+ _ENTER;
item_info_s *tmp1 = (item_info_s *) d1;
item_info_s *tmp2 = (item_info_s *) d2;
_E("Error in package_manager_filter_foreach_package_info ret:%d",ret);
goto ERROR;
}
-
+
*list = eina_list_sort(*list, eina_list_count(*list), _apps_sort_cb);
ERROR:
#else
static int _apps_all_cb(pkgmgrinfo_appinfo_h handle, void *user_data)
{
+ _ENTER;
Eina_List **list = user_data;
char *appid = NULL;
item_info_s *item_info = NULL;
retv_if(NULL == user_data, 0);
pkgmgrinfo_appinfo_get_appid(handle, &appid);
+ _D("appid:%s",appid);
retv_if(NULL == appid, 0);
item_info = apps_item_info_create(appid);
static Eina_List *_read_all_apps(Eina_List **list)
{
+ _ENTER;
pkgmgrinfo_appinfo_filter_h handle = NULL;
retv_if(PMINFO_R_OK != pkgmgrinfo_appinfo_filter_create(&handle), NULL);
static void
app_pause(void *data)
{
+ _ENTER;
_D("check");
}
static void
app_terminate(void *data)
{
+ _ENTER;
_D("check");
_fini_theme();
feedback_deinitialize();
static void
app_resume(void *data)
{
+ _ENTER;
_D("check");
}
static void app_control(app_control_h service, void *data)
{
+ _ENTER;
_D("test");
char *content = NULL;
//content = strdup(DEFAULT_APP_ORDER);
//todo: content
//read from preference key, if not exist then load default app order string else, load the existing app order string
+ char *instance_id = NULL;
+ ret = app_control_get_extra_data(service, "instance_id", &instance_id);
+ if(!ret)
+ {
+ _E("widget id is null check");
+ }
+ //todo: change this when whome is able to fetch widget instance id.
+ //widget_id = strdup(instance_id);
+ widget_id = strdup(APP_WIDGET_CONTENT_KEY);
bool prefkey_exist = false;
- ret = preference_is_existing(APP_WIDGET_CONTENT_KEY, &prefkey_exist);
+ ret = preference_is_existing(widget_id, &prefkey_exist);
if(ret !=PREFERENCE_ERROR_NONE)
{
_E("preference_is_existing api failed ret:%d ",ret);
if(prefkey_exist)
{
_D("preference key is already exist");
- ret = preference_get_string(APP_WIDGET_CONTENT_KEY, &content);
+ ret = preference_get_string(widget_id, &content);
if(ret != PREFERENCE_ERROR_NONE)
{
_E("preference_get_string api failed, so load default app order ret:%d",ret);
else
{
_E("preference_key is not exist. check why key is not present. key should present always");
- ret = preference_set_string(APP_WIDGET_CONTENT_KEY, DEFAULT_APP_ORDER);
+ ret = preference_set_string(widget_id, DEFAULT_APP_ORDER);
if(ret != PREFERENCE_ERROR_NONE)
{
_E("preference_set_string api failed ret:%d",ret);
bundle_add_str(b, "test", tmp);
_D("content : %s", tmp);
- //ret = widget_service_trigger_update(APP_WIDGET_PKGID, widget_id, b, 1);
- ret = widget_service_trigger_update(APP_WIDGET_PKGID, NULL, b, 1);
+
+// ret = widget_service_trigger_update(APP_WIDGET_PKGID, widget_id, b, 1);
+ //ret = widget_service_trigger_update(APP_WIDGET_PKGID, NULL, b, 1);
if(WIDGET_ERROR_NONE != ret){
_E("app-widget trigger failed %x", ret);
}
_set_app_slot(strtok_r(NULL, " ",&save), i);
}
}
+ updateContent();
}
free(content);
static void
ui_app_lang_changed(app_event_info_h event_info, void *user_data)
{
+ _ENTER;
/*APP_EVENT_LANGUAGE_CHANGED*/
char *locale = NULL;
system_settings_get_value_string(SYSTEM_SETTINGS_KEY_LOCALE_LANGUAGE, &locale);
static void
ui_app_orient_changed(app_event_info_h event_info, void *user_data)
{
+ _ENTER;
/*APP_EVENT_DEVICE_ORIENTATION_CHANGED*/
return;
}
static void
ui_app_region_changed(app_event_info_h event_info, void *user_data)
{
+ _ENTER;
/*APP_EVENT_REGION_FORMAT_CHANGED*/
}
static void
ui_app_low_battery(app_event_info_h event_info, void *user_data)
{
+ _ENTER;
/*APP_EVENT_LOW_BATTERY*/
}
static void
ui_app_low_memory(app_event_info_h event_info, void *user_data)
{
+ _ENTER;
/*APP_EVENT_LOW_MEMORY*/
}
static bool app_create(void *data)
{
+ _ENTER;
_D("check");
appdata_s *info = data;
_create_select_win(info, "__SELECT_LIST__", "_SELECT_LIST__");
_init_theme();
feedback_initialize();
-
+
_create_edit_layout(info);
evas_object_show(info->edit_win);
-
+
g_info->release_handler = ecore_event_handler_add(ECORE_EVENT_KEY_UP, _key_release_cb, NULL);
return true;
int main(int argc, char *argv[])
{
+ _ENTER;
_D("check");
appdata_s ad = {0,};
int ret = 0;
HAPI void home_custom_index_bring_in_page(Evas_Object *index, Evas_Object *page)
{
+ _ENTER;
Elm_Object_Item *idx_it = NULL;
const Eina_List *l = NULL;
hc_index_info_s *index_info = NULL;
HAPI Evas_Object *home_custom_index_create(Evas_Object *parent, Evas_Object *scroller)
{
+ _ENTER;
Evas_Object *index = NULL;
hc_index_info_s *index_info = NULL;
HAPI void home_custom_index_destroy(Evas_Object *index)
{
+ _ENTER;
hc_index_info_s *index_info = NULL;
page_index_s *page_index = NULL;
#define MAX_INDEX_NUMBER 20
static void _update_index(Evas_Object *scroller, Evas_Object *index, const Eina_List *list)
{
+ _ENTER;
Evas_Object *page = NULL;
const Eina_List *l = NULL;
style_base = (MAX_INDEX_NUMBER/2) - (total_inserted / 2) - 1;
}
_D("style even:%d,style base:%d",style_even,style_base);
-
+
EINA_LIST_FOREACH(list, l, page) {
if (index_number < total_inserted) {
if (!cur_inserted) {
}
cur_inserted++;
-
+
#ifdef RUN_ON_DEVICE
Elm_Object_Item *idx_it = elm_index_item_append(index, NULL, NULL, (void *) index_number);
elm_object_item_style_set(idx_it, _index_style_get(style_base + index_number, style_even));
HAPI void home_custom_index_update(Evas_Object *index, Evas_Object *scroller, hc_index_bring_in_e after)
{
+ _ENTER;
Evas_Object *page_current = NULL;
Eina_List *page_list = NULL;
static Eina_Bool _index_hide_timer_cb(void *data)
{
+ _ENTER;
Evas_Object *index = (Evas_Object*)data;
retv_if(!index, ECORE_CALLBACK_CANCEL);
HAPI void home_custom_index_show(Evas_Object *index, Eina_Bool bAutoHide)
{
+ _ENTER;
Ecore_Timer *timer = NULL;
ret_if(!index);
static void _scroller_mouse_down_cb(void *data, Evas *e, Evas_Object *obj, void *event_info)
{
+ _ENTER;
Evas_Event_Mouse_Down *ei = event_info;
ret_if(!ei);
static void _scroller_mouse_up_cb(void *data, Evas *e, Evas_Object *obj, void *event_info)
{
+ _ENTER;
Evas_Event_Mouse_Up *ei = event_info;
ret_if(!ei);
static void _default_anim_start_cb(void *data, Evas_Object *scroller, void *event_info)
{
+ _ENTER;
_D("start the scroller animation");
evas_object_data_set(scroller, PRIVATE_DATA_KEY_IS_SCROLLING, (void *)1);
void *(*_anim_start_cb)(void *, Evas_Object *, void *);
_anim_start_cb = evas_object_data_get(scroller, PRIVATE_DATA_KEY_SCROLLER_ANIM_START_FN);
if(_anim_start_cb) _anim_start_cb(data, scroller, event_info);
-
+
Evas_Object *page = home_custom_scroller_get_current_page(scroller);
ret_if(!page);
}
static void _default_anim_stop_cb(void *data, Evas_Object *scroller, void *event_info)
{
+ _ENTER;
_D("stop the scroller animation");
void *(*_anim_stop_cb)(void *, Evas_Object *, void *);
static void _default_drag_start_cb(void *data, Evas_Object *scroller, void *event_info)
{
+ _ENTER;
ret_if(!scroller);
_D("start to drag the scroller animation");
static void _default_drag_stop_cb(void *data, Evas_Object *scroller, void *event_info)
{
+ _ENTER;
ret_if(!scroller);
_D("stop to drag the scroller animation");
static void _default_scroll_cb(void *data, Evas_Object *scroller, void *event_info)
{
+ _ENTER;
ret_if(!scroller);
evas_object_data_set(scroller, PRIVATE_DATA_KEY_IS_SCROLLING, (void *)1);
static void _init_rotary(Evas_Object *scroller)
{
+ _ENTER;
_D("Initialize the rotary event");
// eext_rotary_event_callback_set(scroller, _rotary_cb, NULL);
}
static void _destroy_rotary(Evas_Object *scroller)
{
+ _ENTER;
_D("Finish the rotary event");
// eext_rotary_event_callback_set(scroller, NULL, NULL);
}
void _drag_stop_cb(void *, Evas_Object *, void *),
void _scroll_cb(void *, Evas_Object *, void *))
{
+ _ENTER;
ret_if(!scroller);
evas_object_data_set(scroller, PRIVATE_DATA_KEY_SCROLLER_ANIM_START_FN, _anim_start_cb);
void home_custom_scroller_deregister_cb(Evas_Object *scroller)
{
+ _ENTER;
ret_if(!scroller);
evas_object_data_del(scroller, PRIVATE_DATA_KEY_SCROLLER_ANIM_START_FN);
void home_custom_scroller_del(Evas_Object *scroller)
{
+ _ENTER;
Evas_Object *page = NULL;
Eina_List *box_list = NULL;
scroller_info_s *scroller_info = NULL;
void home_custom_scroller_pause(Evas_Object *scroller)
{
+ _ENTER;
_D("");
}
void home_custom_scroller_resume(Evas_Object *scroller)
{
+ _ENTER;
eext_rotary_object_event_activated_set(scroller, EINA_TRUE);
Evas_Object *index = (Evas_Object*)evas_object_data_get(scroller, PRIVATE_DATA_KEY_INDEX);
static void _page_mouse_up_cb(void *data, Evas *e, Evas_Object *obj, void *event_info)
{
+ _ENTER;
Evas_Event_Mouse_Up *ei = event_info;
ret_if(!ei);
void home_custom_scroller_page_prepend(Evas_Object *scroller, Evas_Object *page)
{
+ _ENTER;
scroller_info_s *scroller_info = NULL;
ret_if(!scroller);
void home_custom_scroller_page_remove(Evas_Object *scroller, Evas_Object *page)
{
+ _ENTER;
scroller_info_s *scroller_info = NULL;
ret_if(!scroller);
int home_custom_scroller_get_page_count(Evas_Object *scroller)
{
+ _ENTER;
int count = 0;
Eina_List *page_list = NULL;
scroller_info_s *scroller_info = NULL;
void home_custom_scroller_list_append(Evas_Object *scroller, Eina_List *page_list)
{
+ _ENTER;
scroller_info_s *scroller_info = NULL;
Eina_List *l = NULL;
Eina_List *n = NULL;
void home_custom_scroller_list_remove(Evas_Object *scroller, Eina_List *page_list)
{
+ _ENTER;
scroller_info_s *scroller_info = NULL;
Eina_List *l = NULL;
Eina_List *n = NULL;
Eina_List *home_custom_scroller_get_page_list(Evas_Object *scroller)
{
+ _ENTER;
scroller_info_s *scroller_info = NULL;
Eina_List *page_list = NULL;
void home_custom_scroller_freeze(Evas_Object *scroller, Eina_Bool status)
{
+ _ENTER;
scroller_info_s *scroller_info = NULL;
ret_if(!scroller);
Eina_Bool home_custom_scroller_is_freeze(Evas_Object *scroller)
{
+ _ENTER;
scroller_info_s *scroller_info = NULL;
retv_if(!scroller, EINA_FALSE);
void home_custom_scroller_page_freeze(Evas_Object *scroller, Evas_Object *page, Eina_Bool status)
{
+ _ENTER;
}
Eina_Bool home_custom_scroller_is_page_freeze(Evas_Object *scroller, Evas_Object *page)
{
+ _ENTER;
return EINA_FALSE;
}
static Eina_Bool _bring_in_timer_cb(void *data)
{
+ _ENTER;
int i = 0;
Evas_Object *scroller = data;
void home_custom_scroller_bring_in(Evas_Object *scroller, int page_no)
{
+ _ENTER;
Ecore_Timer *timer = NULL;
ret_if(!scroller);
void home_custom_scroller_bring_in_page(Evas_Object *scroller, Evas_Object *page)
{
+ _ENTER;
Evas_Object *tmp = NULL;
Eina_List *page_list = NULL;
Ecore_Timer *timer = NULL;
void home_custom_scroller_bring_in_direction(Evas_Object *scroller, Home_Custom_Sc_Direction direction)
{
+ _ENTER;
int hPageNo = 0;
int vPageNo = 0;
int nPageCount = 0;
Eina_Bool home_custom_scroller_is_scrolling(Evas_Object *scroller)
{
+ _ENTER;
retv_if(!scroller, EINA_FALSE);
return evas_object_data_get(scroller, PRIVATE_DATA_KEY_IS_SCROLLING) ? EINA_TRUE:EINA_FALSE;
void home_custom_scroller_region_show(Evas_Object *scroller, int hPageNo, int vPageNo)
{
+ _ENTER;
elm_scroller_page_show(scroller, hPageNo, vPageNo);
evas_object_data_del(scroller, PRIVATE_DATA_KEY_IS_SCROLLING);
Evas_Object *home_custom_scroller_get_first_page(Evas_Object *scroller)
{
+ _ENTER;
Eina_List *page_list = NULL;
scroller_info_s *scroller_info = NULL;
Evas_Object *page = NULL;
Evas_Object *home_custom_scroller_get_last_page(Evas_Object *scroller)
{
+ _ENTER;
int count = 0;
Eina_List *page_list = NULL;
scroller_info_s *scroller_info = NULL;
int home_custom_scroller_get_current_page_no(Evas_Object *scroller)
{
+ _ENTER;
int hPageNo = 0;
int vPageNo = 0;
Eina_Bool home_custom_scroller_is_edge(Evas_Object *page)
{
+ _ENTER;
retv_if(!page, EINA_FALSE);
return evas_object_data_get(page, PRIVATE_DATA_KEY_EDGE_RECT) ? EINA_TRUE:EINA_FALSE;
/* scroller index */
Evas_Object *home_custom_scroller_index_add(Evas_Object *parent, Evas_Object *scroller)
{
+ _ENTER;
retv_if(!parent, NULL);
retv_if(!scroller, NULL);
void home_custom_scroller_index_update(Evas_Object *scroller)
{
+ _ENTER;
ret_if(!scroller);
Evas_Object *index = evas_object_data_get(scroller, PRIVATE_DATA_KEY_INDEX);
#define APPS_WIDGET "org.tizen.apptray-widget"
#define VCONFKEY_WMS_HOST_STATUS_VENDOR "db/wms/host_status/vendor"
#define APP_TYPE_WGT "wgt"
-#define APP_WIDGET_CONTENT_KEY "org.tizen.apptray-widget-content"
+#define APP_WIDGET_CONTENT_KEY "org.tizen.apptray-widget"
#define DEFAULT_APP_ORDER "org.tizen.watch-setting empty empty empty"
//samsung_log_manager_h log_manager_h = NULL;
struct info {
- widget_context_h id;
+ //widget_context_h id;
+ char* id;
char *content;
int size_type;
int w;
char *icon;
char *label;
char *pkgid;
- widget_context_h dbox_id;
+// widget_context_h dbox_id;
+ char* dbox_id;
int open_app;
int index;
Evas_Object *obj;
static void _get_resource(const char *file_in, char *file_path_out, int file_path_max)
{
+ _ENTER;
char *res_path = app_get_resource_path();
if (res_path) {
snprintf(file_path_out, file_path_max, "%s%s", res_path, file_in);
}
-static inline struct info *find_item(widget_context_h id)
+static inline struct info *find_item(char* id)
{
+ _ENTER;
struct info *item=NULL;
-/*
+
Eina_List *l;
EINA_LIST_FOREACH(s_list, l, item) {
- //if (!strcmp(item->id, id)) {
- if (item->id == id) {
+ _D("item->id:%s,id:%s",item->id,id);
+ if (!strncmp(item->id, id,sizeof(id))) {
return item;
}
}
- */
- widget_app_context_get_tag(id, (void**) &item);
+ //widget_app_context_get_tag(id, (void**) &item);
return item;
}
bool _is_arabic(const char *lang){
+ _ENTER;
char lang_tmp[10] = { 0, };
char ar[3] = { 0, };
int i = 0;
static void _init_theme(void)
{
+ _ENTER;
theme = elm_theme_new();
}
static void _fini_theme(void)
{
+ _ENTER;
elm_theme_free(theme);
theme = NULL;
-
+
}
#define LOCALE_LEN 32
char *util_get_count_str_from_icu(int count)
{
+ _ENTER;
char *p = NULL;
char *locale_tmp = NULL;
char *ret_str = NULL;
}
PUBLIC int widget_initialize(const char *pkgname)
{
+ _ENTER;
_D("dbox initialized");
/**
* @TODO
PUBLIC int widget_finalize(void)
{
+ _ENTER;
_D("dbox finalized");
/**
* @TODO
// NOTE: This function is going to be invoked for release all resources
-static int widget_destroy(widget_context_h id, widget_app_destroy_type_e reason, bundle *content, void *user_data)
+static int widget_destroy(char* id, widget_app_destroy_type_e reason, bundle *content, void *user_data)
//PUBLIC int widget_destroy(const char *id)
{
+ _ENTER;
struct info *item;
_D("[%s:%d]\n", __func__, __LINE__);
- //item = find_item(id);
- widget_app_context_get_tag(id, (void**) &item);
+ item = find_item(id);
+ //widget_app_context_get_tag(id, (void**) &item);
if (!item) {
/*!
* \NOTE
free(item->content);
free(item->id);
free(item);
+// preference_unset_changed_cb(id);
preference_unset_changed_cb(APP_WIDGET_CONTENT_KEY);
return WIDGET_ERROR_NONE;
}
-PUBLIC int widget_need_to_update(const widget_context_h id)
+PUBLIC int widget_need_to_update(const char* id)
{
+ _ENTER;
struct info *item;
_D("[%s]\n", id);
- //item = find_item(id);
- widget_app_context_get_tag(id, (void**) &item);
+ item = find_item(id);
+ //widget_app_context_get_tag(id, (void**) &item);
if (!item) {
/* Hmm, there is no matched instance. */
_E("id is invalid");
static void _glow_effect_done(void *data, Evas_Object *o, const char *emission, const char *source)
{
- _D("");
+ _ENTER;
elm_object_signal_emit((Evas_Object *)data, "complete_effect", "widget");
}
void app_shortcut_remove_package(const char *package){
+ _ENTER;
_D("remove %s", package);
Eina_List *l;
struct info *item;
#define MAX_BADGE_COUNT 999
void item_badge_show(struct object_info *item, int count)
{
+ _ENTER;
char *str = NULL;
char badge_signal[16];
void item_badge_hide(struct object_info *item)
{
+ _ENTER;
ret_if(!item);
elm_object_signal_emit(item->obj, "badge,off", "slot");
static void _badge_change_cb(unsigned int action, const char *appid, unsigned int count, void *data)
{
+ _ENTER;
unsigned int is_display = 0;
badge_error_e err = BADGE_ERROR_NONE;
int i = 0;
void item_badge_register_changed_cb(void)
{
+ _ENTER;
badge_error_e err;
err = badge_register_changed_cb(_badge_change_cb, NULL);
void item_badge_unregister_changed_cb(void)
{
+ _ENTER;
badge_error_e err;
err = badge_unregister_changed_cb(_badge_change_cb);
static void _slot_l_mouse_clicked_cb(void *data, Evas_Object *o, const char *emission, const char *source){
_D("icon clicked");
+ _ENTER;
}
static void _slot_r_mouse_clicked_cb(void *data, Evas_Object *o, const char *emission, const char *source){
_D("icon clicked");
-
+ _ENTER;
}
static void _slot_mouse_clicked_cb(void *data, Evas_Object *o, const char *emission, const char *source){
_D("icon clicked");
-
+ _ENTER;
struct object_info *info = NULL;
info = data;
char *_get_date(void)
{
+ _ENTER;
struct tm st;
time_t tt = time(NULL);
localtime_r(&tt, &st);
static void _slot_mouse_down_cb(void *data, Evas_Object *o, const char *emission, const char *source){
_D("icon mouse down");
+ _ENTER;
evas_object_color_set((Evas_Object *)data, 255, 255, 255, 127);
}
static void _slot_mouse_up_cb(void *data, Evas_Object *o, const char *emission, const char *source){
_D("icon mouse up");
+ _ENTER;
evas_object_color_set((Evas_Object *)data, 255, 255, 255, 255);
}
}
-PUBLIC int widget_update_content(const widget_context_h id)
+PUBLIC int widget_update_content(const char* id)
{
_ENTER;
struct info *item;
- //item = find_item(id);
- widget_app_context_get_tag(id, (void**) &item);
+ item = find_item(id);
+ //widget_app_context_get_tag(id, (void**) &item);
int i = 0;
char *tmp = NULL;
char *first = NULL;
}
-PUBLIC int widget_set_content_info(const widget_context_h id, bundle *b)
+PUBLIC int widget_set_content_info(const char* id, bundle *b)
{
_ENTER;
+ _D("ID:%s",id);
struct info *item;
int ret = 0;
char uri[256] = {0};
_E("[%s]\n", id);
- //item = find_item(id);
- widget_app_context_get_tag(id, (void**) &item);
+ item = find_item(id);
+ //widget_app_context_get_tag(id, (void**) &item);
if (!item) {
_E("id is invalid");
return WIDGET_ERROR_NOT_EXIST;
return WIDGET_ERROR_NONE;
}
-PUBLIC int widget_clicked(const widget_context_h id, const char *event, double timestamp, double x, double y)
+PUBLIC int widget_clicked(const char* id, const char *event, double timestamp, double x, double y)
{
_ENTER;
+ _D("ID:%s",id);
_D("dbox clicked");
struct info *item;
-// item = find_item(id);
- widget_app_context_get_tag(id, (void**) &item);
+ item = find_item(id);
+ //widget_app_context_get_tag(id, (void**) &item);
if (!item) {
_E("id is invalid");
return WIDGET_ERROR_NOT_EXIST;
return info;
}
-static Evas_Object *_create_win(widget_context_h context, int w, int h)
+static Evas_Object *_create_win(char* id, int w, int h)
{
+ _ENTER;
+ _D("ID:%s",id);
Evas_Object *win = NULL;
int ret;
- if (context == NULL) {
+ if (id == NULL) {
dlog_print(DLOG_ERROR, LOG_TAG, "failed to get context.");
return NULL;
}
- ret = widget_app_get_elm_win(context, &win);
+ ret = widget_app_get_elm_win(id, &win);
if (ret != WIDGET_ERROR_NONE) {
dlog_print(DLOG_ERROR, LOG_TAG, "failed to get window. err = %d", ret);
return NULL;
return win;
}
-static int widget_resize(widget_context_h id, int w, int h, void *user_data)
+static int widget_resize(char* id, int w, int h, void *user_data)
{
+ _ENTER;
+ _D("ID:%s",id);
struct info *item;
int ret;
Evas_Object *layout = NULL;
char *tmp = NULL;
//preference_remove_all();
-// item = find_item((char*)id);
- widget_app_context_get_tag(id,(void**)&item);
+ item = find_item((char*)id);
+ //widget_app_context_get_tag(id,(void**)&item);
if (!item) {
_E("id is invalid");
return WIDGET_ERROR_NOT_EXIST;
//todo: item->content
//read from preference key, if not exist then load default app order string else, load the existing app order string
bool prefkey_exist = false;
+// ret = preference_is_existing(id, &prefkey_exist);
ret = preference_is_existing(APP_WIDGET_CONTENT_KEY, &prefkey_exist);
+
if(ret !=PREFERENCE_ERROR_NONE)
{
_E("preference_is_existing api failed ret:%d ",ret);
if(prefkey_exist)
{
_D("preference key is already exist");
+// ret = preference_get_string(id, &item->content);
ret = preference_get_string(APP_WIDGET_CONTENT_KEY, &item->content);
+
if(ret != PREFERENCE_ERROR_NONE)
{
_E("preference_get_string api failed, so load default app order ret:%d",ret);
else
{
_E("preference_key is not exist. might be first boot so load default app order and store in preference key");
+// ret = preference_set_string(id, DEFAULT_APP_ORDER);
ret = preference_set_string(APP_WIDGET_CONTENT_KEY, DEFAULT_APP_ORDER);
+
if(ret != PREFERENCE_ERROR_NONE)
{
_E("preference_set_string api failed ret:%d",ret);
{
_ENTER;
// int ret = 0;
- widget_context_h *id= user_data;
+// widget_context_h *id= user_data;
+ char *id= *((char**)user_data);
+ _D("id:%s, key:%s",id,key);
struct info *item;
//preference_remove_all();
if(!id)
_E("id is null");
return;
}
-// item = find_item(*id);
- widget_app_context_get_tag(*id, (void**) &item);
+ item = find_item(id);
+// widget_app_context_get_tag(id, (void**) &item);
if (!item) {
_E("id is invalid");
_E("item is not found");
return;
}
_D("before content: %s",item->content);
- preference_get_string(key, &item->content);
+// preference_get_string(id, &item->content);
+ preference_get_string(APP_WIDGET_CONTENT_KEY, &item->content);
+
_D("after content: %s",item->content);
+ widget_update_content(id);
+
_EXIT;
}
// NOTE: This function is going to be invoked for initializing all resources
-static int widget_create(widget_context_h id, bundle *content, int w, int h, void *user_data)
+static int widget_create(char* id, bundle *content, int w, int h, void *user_data)
{
- _D("WIDGET is created\n");
+ _ENTER;
+ _D("WIDGET is created with id:%s\n",id);
struct info *info;
info = malloc(sizeof(*info));
return WIDGET_ERROR_OUT_OF_MEMORY;
}
- info->id = id;
-// if (!info->id) {
-// free(info);
-// return WIDGET_ERROR_OUT_OF_MEMORY;
-// }
+// info->id = id;
+ info->id = strdup(id);
+ _D("ID:%s",id);
+ if (!info->id) {
+ free(info);
+ return WIDGET_ERROR_OUT_OF_MEMORY;
+ }
//info->content = strdup(content);
// bundle_get_str(b,"test",&info->content);
* You create the default output image from here now.
* So you HAVE TO return WIDGET_OUTPUT_UPDATED
*/
- preference_set_changed_cb(APP_WIDGET_CONTENT_KEY,preference_changed_cb_impl,&id);
- widget_app_context_set_tag(id, info);
- //widget_resize(id,w, h, user_data);
+ //preference_set_changed_cb(id,preference_changed_cb_impl,id);
+ preference_set_changed_cb(APP_WIDGET_CONTENT_KEY,preference_changed_cb_impl,&info->id);
+ //widget_app_context_set_tag(id, info);
+ widget_resize(id,w, h, user_data);
return WIDGET_ERROR_NONE;
}
PUBLIC int widget_need_to_create(const char *cluster, const char *category)
{
+ _ENTER;
/**
* @NOTE
* You don't need implement this, if don't know what this is.
return 0;
}
-PUBLIC int widget_change_group(const widget_context_h id, const char *cluster, const char *category)
+PUBLIC int widget_change_group(const char* id, const char *cluster, const char *category)
{
+ _ENTER;
struct info *item;
- //item = find_item(id);
- widget_app_context_get_tag(id, (void**) &item);
+ item = find_item(id);
+ //widget_app_context_get_tag(id, (void**) &item);
if (!item) {
_E("id is invalid");
return WIDGET_ERROR_NOT_EXIST;
return WIDGET_ERROR_NONE;
}
-PUBLIC int widget_need_to_destroy(const widget_context_h id)
+PUBLIC int widget_need_to_destroy(const char* id)
{
+ _ENTER;
/**
* @NOTE
* You don't need implement this, if don't know what this is.
return 0;
}
-PUBLIC char *widget_pinup(const widget_context_h id, int pinup)
+PUBLIC char *widget_pinup(const char* id, int pinup)
{
+ _ENTER;
struct info *item;
-// item = find_item(id);
- widget_app_context_get_tag(id, (void**) &item);
+ item = find_item(id);
+// widget_app_context_get_tag(id, (void**) &item);
if (!item) {
_E("id is invalid");
return NULL;
return strdup(item->content);
}
-PUBLIC int widget_is_pinned_up(const widget_context_h id)
+PUBLIC int widget_is_pinned_up(const char* id)
{
+ _ENTER;
+ _D("ID:%s",id);
struct info *item;
-// item = find_item(id);
- widget_app_context_get_tag(id, (void**) &item);
+ item = find_item(id);
+ //widget_app_context_get_tag(id, (void**) &item);
if (!item) {
return WIDGET_ERROR_NOT_EXIST;
}
void _set_app_label(struct object_info *obj)
{
-
+ _ENTER;
}
}
static int
-widget_pause(widget_context_h id, void *user_data)
+widget_pause(char* id, void *user_data)
{
_ENTER;
+ _D("ID:%s",id);
/* Take necessary actions when widget instance becomes invisible. */
return WIDGET_ERROR_NONE;
}
static int
-widget_resume(widget_context_h id, void *user_data)
+widget_resume(char* id, void *user_data)
{
/* Take necessary actions when widget instance becomes visible. */
_ENTER;
+ _D("ID:%s",id);
return WIDGET_ERROR_NONE;
}
static int
-widget_update(widget_context_h id, bundle *content,
+widget_update(char* id, bundle *content,
int force, void *user_data)
{
_ENTER;
+ _D("ID:%s",id);
/* Take necessary actions when widget instance should be updated. */
return WIDGET_ERROR_NONE;
}
static widget_class_h
widget_app_create(void *user_data)
{
+ _ENTER;
/* Hook to take necessary actions before main event loop starts.
Initialize UI resources.
Make a class for widget instance.
static void
widget_app_terminate(void *user_data)
{
+
/* Release all resources. */
_ENTER;
+
}
int
main(int argc, char *argv[])
{
+ _ENTER;
widget_app_lifecycle_callback_s ops = {0,};
int ret;