bundle
capi-appfw-application
capi-system-info
+ capi-appfw-preference
+ capi-system-system-settings
+ capi-system-info
dlog
ecore
ecore-evas
pkgmgr-info
shortcut
syspopup-caller
- utilX
)
IF(USE_ARM)
-Copyright (c) 2009-2014 Samsung Electronics Co., Ltd All Rights Reserved
+Copyright (c) 2000 - 2015 Samsung Electronics Co., Ltd. All rights reserved.
Apache License
Version 2.0, January 2004
/*
* MENU-SCREEN
*
- * Copyright (c) 2009-2014 Samsung Electronics Co., Ltd All Rights Reserved
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved
*
* Contact: Jin Yoon <jinny.yoon@samsung.com>
* Junkyu Han <junkyu.han@samsung.com>
#define _BASE_HEIGHT 1280
collections {
- base_scale: 1.8;
+ base_scale: 2.4;
group {
name: "all_apps";
parts {
/*
* MENU-SCREEN
*
- * Copyright (c) 2009-2014 Samsung Electronics Co., Ltd All Rights Reserved
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved
*
* Contact: Jin Yoon <jinny.yoon@samsung.com>
* Junkyu Han <junkyu.han@samsung.com>
collections {
- base_scale: 1.8;
+ base_scale: 2.4;
group {
name: "button_edit";
parts {
/*
* MENU-SCREEN
*
- * Copyright (c) 2009-2014 Samsung Electronics Co., Ltd All Rights Reserved
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved
*
* Contact: Jin Yoon <jinny.yoon@samsung.com>
* Junkyu Han <junkyu.han@samsung.com>
#define ITEM_15_Y ITEM_12_Y
collections {
- base_scale: 1.8;
+ base_scale: 2.4;
group {
name: "menu_bg";
parts {
/*
* MENU-SCREEN
*
- * Copyright (c) 2009-2014 Samsung Electronics Co., Ltd All Rights Reserved
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved
*
* Contact: Jin Yoon <jinny.yoon@samsung.com>
* Junkyu Han <junkyu.han@samsung.com>
#define INDEX_PAGECONTROL_FONT_SIZE_INC 18
collections {
- base_scale: 1.8;
+ base_scale: 2.4;
group {
name: "elm/index/base/vertical/menuscreen/index";
alias: "elm/index/base/horizontal/menuscreen/index";
/*
* MENU-SCREEN
*
- * Copyright (c) 2009-2014 Samsung Electronics Co., Ltd All Rights Reserved
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved
*
* Contact: Jin Yoon <jinny.yoon@samsung.com>
* Junkyu Han <junkyu.han@samsung.com>
collections {
- base_scale: 1.8;
+ base_scale: 2.4;
group {
name: "icon";
state: "default" 0.0;
rel1 { relative: 0.0 0.0; }
rel2 { relative: 1.0 1.0; }
- fixed: 1 1;
visible: 0;
}
}
rel1 { relative: 31/_ITEM_WIDTH 0.0; to: "bg"; }
rel2 { relative: 148/_ITEM_WIDTH 117/_ITEM_HEIGHT; to: "bg"; }
align: 0.5 0.5;
- //min: 117 117;
fixed: 1 1;
}
}
image {
normal: "../images/RM06_App tray_Btn_Uninstall.png";
}
- //min: 54 54;
fixed: 1 1;
visible: 0;
}
/*
* MENU-SCREEN
*
- * Copyright (c) 2009-2014 Samsung Electronics Co., Ltd All Rights Reserved
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved
*
* Contact: Jin Yoon <jinny.yoon@samsung.com>
* Junkyu Han <junkyu.han@samsung.com>
collections {
- base_scale: 1.8;
+ base_scale: 2.4;
group {
name: "layout";
parts {
/*
* MENU-SCREEN
*
- * Copyright (c) 2009-2014 Samsung Electronics Co., Ltd All Rights Reserved
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved
*
* Contact: Jin Yoon <jinny.yoon@samsung.com>
* Junkyu Han <junkyu.han@samsung.com>
/*
* MENU-SCREEN
*
- * Copyright (c) 2009-2014 Samsung Electronics Co., Ltd All Rights Reserved
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved
*
* Contact: Jin Yoon <jinny.yoon@samsung.com>
* Junkyu Han <junkyu.han@samsung.com>
/*
* MENU-SCREEN
*
- * Copyright (c) 2009-2014 Samsung Electronics Co., Ltd All Rights Reserved
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved
*
* Contact: Jin Yoon <jinny.yoon@samsung.com>
* Junkyu Han <junkyu.han@samsung.com>
/*
* MENU-SCREEN
*
- * Copyright (c) 2009-2014 Samsung Electronics Co., Ltd All Rights Reserved
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved
*
* Contact: Jin Yoon <jinny.yoon@samsung.com>
* Junkyu Han <junkyu.han@samsung.com>
/*
* MENU-SCREEN
*
- * Copyright (c) 2009-2014 Samsung Electronics Co., Ltd All Rights Reserved
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved
*
* Contact: Jin Yoon <jinny.yoon@samsung.com>
* Junkyu Han <junkyu.han@samsung.com>
/*
* MENU-SCREEN
*
- * Copyright (c) 2009-2014 Samsung Electronics Co., Ltd All Rights Reserved
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved
*
* Contact: Jin Yoon <jinny.yoon@samsung.com>
* Junkyu Han <junkyu.han@samsung.com>
/*
* MENU-SCREEN
*
- * Copyright (c) 2009-2014 Samsung Electronics Co., Ltd All Rights Reserved
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved
*
* Contact: Jin Yoon <jinny.yoon@samsung.com>
* Junkyu Han <junkyu.han@samsung.com>
/*
* MENU-SCREEN
*
- * Copyright (c) 2009-2014 Samsung Electronics Co., Ltd All Rights Reserved
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved
*
* Contact: Jin Yoon <jinny.yoon@samsung.com>
* Junkyu Han <junkyu.han@samsung.com>
/*
* MENU-SCREEN
*
- * Copyright (c) 2009-2014 Samsung Electronics Co., Ltd All Rights Reserved
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved
*
* Contact: Jin Yoon <jinny.yoon@samsung.com>
* Junkyu Han <junkyu.han@samsung.com>
/*
* MENU-SCREEN
*
- * Copyright (c) 2009-2014 Samsung Electronics Co., Ltd All Rights Reserved
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved
*
* Contact: Jin Yoon <jinny.yoon@samsung.com>
* Junkyu Han <junkyu.han@samsung.com>
/*
* MENU-SCREEN
*
- * Copyright (c) 2009-2014 Samsung Electronics Co., Ltd All Rights Reserved
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved
*
* Contact: Jin Yoon <jinny.yoon@samsung.com>
* Junkyu Han <junkyu.han@samsung.com>
#include "util.h"
+#define HOME_KEY_SELECT "XF86Home"
+#define KEY_BACK "XF86Back"
+#define KEY_ESC "Escape"
+
HAPI void key_register(void);
HAPI void key_unregister(void);
HAPI void key_grab_home(void);
/*
* MENU-SCREEN
*
- * Copyright (c) 2009-2014 Samsung Electronics Co., Ltd All Rights Reserved
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved
*
* Contact: Jin Yoon <jinny.yoon@samsung.com>
* Junkyu Han <junkyu.han@samsung.com>
/*
* MENU-SCREEN
*
- * Copyright (c) 2009-2014 Samsung Electronics Co., Ltd All Rights Reserved
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved
*
* Contact: Jin Yoon <jinny.yoon@samsung.com>
* Junkyu Han <junkyu.han@samsung.com>
char *desktop;
bool nodisplay;
bool enabled;
- bool x_slp_removable;
+ bool removable;
bool x_slp_taskmanage;
pid_t pid;
Evas_Object *image;
/*
* MENU-SCREEN
*
- * Copyright (c) 2009-2014 Samsung Electronics Co., Ltd All Rights Reserved
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved
*
* Contact: Jin Yoon <jinny.yoon@samsung.com>
* Junkyu Han <junkyu.han@samsung.com>
/*
* MENU-SCREEN
*
- * Copyright (c) 2009-2014 Samsung Electronics Co., Ltd All Rights Reserved
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved
*
* Contact: Jin Yoon <jinny.yoon@samsung.com>
* Junkyu Han <junkyu.han@samsung.com>
/*
* MENU-SCREEN
*
- * Copyright (c) 2009-2014 Samsung Electronics Co., Ltd All Rights Reserved
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved
*
* Contact: Jin Yoon <jinny.yoon@samsung.com>
* Junkyu Han <junkyu.han@samsung.com>
/*
* MENU-SCREEN
*
- * Copyright (c) 2009-2014 Samsung Electronics Co., Ltd All Rights Reserved
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved
*
* Contact: Jin Yoon <jinny.yoon@samsung.com>
* Junkyu Han <junkyu.han@samsung.com>
/*
* MENU-SCREEN
*
- * Copyright (c) 2009-2014 Samsung Electronics Co., Ltd All Rights Reserved
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved
*
* Contact: Jin Yoon <jinny.yoon@samsung.com>
* Junkyu Han <junkyu.han@samsung.com>
/*
* MENU-SCREEN
*
- * Copyright (c) 2009-2014 Samsung Electronics Co., Ltd All Rights Reserved
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved
*
* Contact: Jin Yoon <jinny.yoon@samsung.com>
* Junkyu Han <junkyu.han@samsung.com>
/*
* MENU-SCREEN
*
- * Copyright (c) 2009-2014 Samsung Electronics Co., Ltd All Rights Reserved
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved
*
* Contact: Jin Yoon <jinny.yoon@samsung.com>
* Junkyu Han <junkyu.han@samsung.com>
/*
* MENU-SCREEN
*
- * Copyright (c) 2009-2014 Samsung Electronics Co., Ltd All Rights Reserved
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved
*
* Contact: Jin Yoon <jinny.yoon@samsung.com>
* Junkyu Han <junkyu.han@samsung.com>
org.tizen.menu-screen app-svc rwx--- ------
org.tizen.menu-screen pkgmgr::db rw---l ------
-org.tizen.menu-screen ail::db rw---- ------
org.tizen.menu-screen system::use_internet r----- ------
org.tizen.menu-screen device::app_logging -w---- ------
org.tizen.menu-screen net-config r-x--- ------
org.tizen.menu-screen org.tizen.setting::default-resources r-x--- ------
org.tizen.menu-screen pkgmgr::svc r-x--- ------
org.tizen.menu-screen pkgmgr::info r----- ------
-org.tizen.menu-screen system::vconf_system rw---- ------
-org.tizen.menu-screen system::vconf_inhouse rw---- ------
org.tizen.menu-screen aul::launch --x--- ------
org.tizen.menu-screen data-provider-master::shortcut rw---- ------
org.tizen.menu-screen data-provider-master::shortcut.shortcut -w---- ------
org.tizen.menu-screen data-provider-master::badge rw---- ------
org.tizen.menu-screen data-provider-master::badge.client -w---- ------
org.tizen.menu-screen tts-server rwx--- ------
-org.tizen.menu-screen idlescreen::vconf rwx--- ------
org.tizen.app-tray org.tizen.menu-screen r-x--- ------
org.tizen.menu-screen factory-15 r-x--- ------
org.tizen.menu-screen telephony_framework::api_manager r----- ------
org.tizen.menu-screen telephony_framework::api_modem r-x--- ------
org.tizen.menu-screen telephony_framework::api_network r-x--- ------
org.tizen.menu-screen atd-server r----- ------
-org.tizen.menu-screen factory::vconf rw---- ------
org.tizen.menu-screen dfms-kernel r----- ------
org.tizen.menu-screen system::homedir rwxat- ------
-org.tizen.menu-screen system::vconf rwxat- ------
org.tizen.menu-screen system::media rwxat- ------
org.tizen.menu-screen system::share rwxat- ------
org.tizen.menu-screen pulseaudio rwxat- ------
e17 org.tizen.menu-screen -w---- ------
org.tizen.menu-screen sys-assert::core rwxat- ------
org.tizen.menu-screen privacy-manager::db r----l ------
-org.tizen.menu-screen system::vconf_setting rw---- ------
-org.tizen.menu-screen system::vconf_privacy rw---- ------
-org.tizen.menu-screen system::vconf_multimedia rw---- ------
-org.tizen.menu-screen system::vconf_network rw---- ------
-org.tizen.menu-screen system::vconf_misc rw---- ------
org.tizen.menu-screen ecore::lock rwxat- ------
org.tizen.menu-screen org.tizen.wallpaper-ui-service rwxat- ------
-org.tizen.menu-screen system::storage rwxat- ------
+org.tizen.menu-screen tizen::vconf::setting r----l ------
+org.tizen.menu-screen tizen::vconf::setting::admin r----l ------
+org.tizen.menu-screen device::sys_logging --x--- ------
+org.tizen.menu-screen tizen::vconf::public::admin r----l ------
+org.tizen.menu-screen notification r-x--l ------
%define _localedir %{_resdir}/locale
+%if "%{?tizen_profile_name}" == "wearable"
+ExcludeArch: %{arm} %ix86 x86_64
+%endif
+
+%if "%{?tizen_profile_name}" == "tv"
+ExcludeArch: %{arm} %ix86 x86_64
+%endif
+
Name: org.tizen.menu-screen
Summary: An utility library of the menu screen
Version: 1.2.5
BuildRequires: pkgconfig(pkgmgr-info)
BuildRequires: pkgconfig(shortcut)
BuildRequires: pkgconfig(syspopup-caller)
-BuildRequires: pkgconfig(utilX)
+BuildRequires: pkgconfig(capi-system-info)
+BuildRequires: pkgconfig(capi-appfw-preference)
+BuildRequires: pkgconfig(capi-system-system-settings)
BuildRequires: cmake
BuildRequires: edje-tools
BuildRequires: gettext-tools
-BuildRequires: hash-signer
# %ifarch %{arm}
# %define ARCH arm
# BuildRequires: pkgconfig(bincfg)
mkdir -p %{buildroot}/usr/share/license
%post
-/usr/bin/signing-client/hash-signer-client.sh -a -d -p platform %{_packagedir}
-VCONF_OPTION="-f -u 5000"
PRIVATE_OPTION="-s org.tizen.menu-screen"
-INHOUSE_OPTION="-s idlescreen::vconf"
-
-init_vconf()
-{
- vconftool set -t int memory/idle-screen/top 0 -i $VCONF_OPTION $INHOUSE_OPTION
- vconftool set -t string file/private/org.tizen.menu-screen/engine "gl" $VCONF_OPTION $PRIVATE_OPTION
-}
-init_vconf
if [ ! -d %{_datadir}/dbspace ]
then
%{_localedir}/*/*/*.mo
%{_usr_datadir}/icons/default/small/org.tizen.menu-screen.png
%{_usr_datadir}/packages/org.tizen.menu-screen.xml
-%{_packagedir}/*.xml
+#%{_packagedir}/*.xml
/etc/smack/accesses.d/%{_package_name}.efl
/*
* MENU-SCREEN
*
- * Copyright (c) 2009-2014 Samsung Electronics Co., Ltd All Rights Reserved
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved
*
* Contact: Jin Yoon <jinny.yoon@samsung.com>
* Junkyu Han <junkyu.han@samsung.com>
/*
* MENU-SCREEN
*
- * Copyright (c) 2009-2014 Samsung Electronics Co., Ltd All Rights Reserved
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved
*
* Contact: Jin Yoon <jinny.yoon@samsung.com>
* Junkyu Han <junkyu.han@samsung.com>
evas = menu_screen_get_evas();
bg = evas_object_rectangle_add(evas);
- evas_object_size_hint_min_set(bg, width, height);
- evas_object_size_hint_max_set(bg, width, height);
- evas_object_resize(bg, width, height);
+ evas_object_size_hint_min_set(bg, width, height-INDICATOR_PORT_HEIGHT);
+ evas_object_resize(bg, width, height-INDICATOR_PORT_HEIGHT);
elm_object_part_content_set(all_apps, "bg", bg);
evas_object_show(bg);
evas_object_data_set(all_apps, "is_edited", (void *) true);
evas_object_size_hint_min_set(all_apps, width, height);
evas_object_size_hint_max_set(all_apps, width, height);
- evas_object_resize(all_apps, width, height);
+ evas_object_resize(all_apps, width, height-52);
index = index_create(all_apps, 0, 0);
if (NULL == index) {
/*
* MENU-SCREEN
*
- * Copyright (c) 2009-2014 Samsung Electronics Co., Ltd All Rights Reserved
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved
*
* Contact: Jin Yoon <jinny.yoon@samsung.com>
* Junkyu Han <junkyu.han@samsung.com>
-static ail_cb_ret_e _all_apps_cb(ail_appinfo_h ai, void *data)
+static int _all_apps_cb(pkgmgrinfo_appinfo_h handle, void *data)
{
app_list *list = data;
app_list_item *item;
app_info_t *item_info;
int installed_time = 0;
- char *value;
+ char *appid = NULL;
- retv_if(ail_appinfo_get_str(ai, AIL_PROP_PACKAGE_STR, &value) == AIL_ERROR_FAIL, AIL_CB_RET_CANCEL);
- retv_if(NULL == (item = calloc(1, sizeof(struct _app_list_item))), AIL_CB_RET_CANCEL);
+ pkgmgrinfo_appinfo_get_appid(handle, &appid);
+ retv_if(NULL == appid, 0);
+ retv_if(NULL == (item = calloc(1, sizeof(struct _app_list_item))), 0);
- if (NULL == (item->package = strdup(value))) {
+ if (NULL == (item->package = strdup(appid))) {
free(item);
- return AIL_CB_RET_CANCEL;
+ return 0;
}
if (NULL == (item->data = calloc(1, sizeof(app_info_t)))) {
free(item->package);
free(item);
- return AIL_CB_RET_CANCEL;
+ return 0;
}
if (MENU_SCREEN_ERROR_OK != list_get_values(item->package, item->data)) {
free(item->data);
free(item->package);
free(item);
- return AIL_CB_RET_CANCEL;
+ return 0;
}
item_info = item->data;
free(item->data);
free(item->package);
free(item);
- return AIL_CB_RET_CANCEL;
+ return 0;
}
if (item_info->nodisplay || !item_info->enabled) {
free(item->data);
free(item->package);
free(item);
- return AIL_CB_RET_CONTINUE;
+ return 0;
}
installed_time = all_apps_list_find_installed_time(item->package);
free(item->data);
free(item->package);
free(item);
- return AIL_CB_RET_CANCEL;
+ return 0;
}
if (list_append_item(list, item) != MENU_SCREEN_ERROR_OK) {
free(item->data);
free(item->package);
free(item);
- return AIL_CB_RET_CANCEL;
+ return 0;
}
_D("[ALL Apps] package=%s", item->package);
- return AIL_CB_RET_CONTINUE;
+ return 1;
}
{
int count = 0;
app_list *list;
- ail_filter_h f;
+ pkgmgrinfo_appinfo_filter_h handle = NULL;
list = calloc(1, sizeof(app_list));
retv_if(NULL == list, NULL);
- if (ail_filter_new(&f) != AIL_ERROR_OK) {
+ if (PMINFO_R_OK != pkgmgrinfo_appinfo_filter_create(&handle))
+ {
free(list);
return NULL;
}
+ goto_if(PMINFO_R_OK != pkgmgrinfo_appinfo_filter_add_bool(handle, PMINFO_APPINFO_PROP_APP_NODISPLAY, 0), ERROR);
+ goto_if(PMINFO_R_OK != pkgmgrinfo_appinfo_filter_foreach_appinfo(handle, _all_apps_cb, list), ERROR);
- if (ail_filter_add_bool(f, AIL_PROP_NODISPLAY_BOOL, false) != AIL_ERROR_OK){
- _E("Failed to add filter");
- ail_filter_destroy(f);
- free(list);
- return NULL;
- }
-
- ail_filter_list_appinfo_foreach(f, _all_apps_cb, list);
- ail_filter_destroy(f);
+ pkgmgrinfo_appinfo_filter_destroy(handle);
if (MENU_SCREEN_ERROR_FAIL == list_count(list, &count)) {
_D("Cannot count apps.");
for(i = (MAX_PAGE_NO * PAGE_MAX_APP); i<count; i++) {
app_list_item *item = list_nth(list, (MAX_PAGE_NO * PAGE_MAX_APP));
if(!item)
- continue;
+ _E("Cannot remove an item(%s)", item->package);
- _D("%d: %s will be removed", i, item->package);
+ _D("%d: %s is removed", i, item->package);
retv_if(MENU_SCREEN_ERROR_FAIL == list_remove_item(list, item), NULL);
}
_D("Cannot sort apps.");
}
+ return list;
+
+ERROR:
+ if (handle) pkgmgrinfo_appinfo_filter_destroy(handle);
+
return list;
}
/*
* MENU-SCREEN
*
- * Copyright (c) 2009-2014 Samsung Electronics Co., Ltd All Rights Reserved
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved
*
* Contact: Jin Yoon <jinny.yoon@samsung.com>
* Junkyu Han <junkyu.han@samsung.com>
ai.icon = (char *) icon;
ai.nodisplay = 0;
ai.enabled = 1;
- ai.x_slp_removable = 1;
+ ai.removable = 1;
ai.x_slp_taskmanage = 0;
if (ADD_TO_HOME_IS_DYNAMICBOX(type)) {
/*
* MENU-SCREEN
*
- * Copyright (c) 2009-2014 Samsung Electronics Co., Ltd All Rights Reserved
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved
*
* Contact: Jin Yoon <jinny.yoon@samsung.com>
* Junkyu Han <junkyu.han@samsung.com>
/*
* MENU-SCREEN
*
- * Copyright (c) 2009-2014 Samsung Electronics Co., Ltd All Rights Reserved
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved
*
* Contact: Jin Yoon <jinny.yoon@samsung.com>
* Junkyu Han <junkyu.han@samsung.com>
Evas_Object *scroller;
register int i;
char number_pre[256] = { 0, };
- char *number = NULL;
+ char *number;
retv_if(NULL == tab, NULL);
index = elm_index_add(tab);
_D("Current index %d, Current count: %d", idx,count);
index_destroy(index);
- return index_create(layout, count, idx);
+ return index_create(layout, count,idx);
}
/*
* MENU-SCREEN
*
- * Copyright (c) 2009-2014 Samsung Electronics Co., Ltd All Rights Reserved
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved
*
* Contact: Jin Yoon <jinny.yoon@samsung.com>
* Junkyu Han <junkyu.han@samsung.com>
#include <stdio.h>
#include <string.h>
#include <Elementary.h>
-#include <ail.h>
#include <appsvc.h>
#include <app_control.h>
#include <aul.h>
+#include <bundle.h>
+#include <bundle_internal.h>
#include "menu_screen.h"
#include "item_badge.h"
ret_if(NULL == obj);
ret_if(value <= 0);
- snprintf(str, sizeof(str), "%d", value);
+ sprintf(str, "%d", value);
if (edje_object_part_text_set(_EDJ(obj), "badge,txt", str) == EINA_FALSE) {
_E("Failed to set text on the part, edje:%p, part:%s, text:%s", _EDJ(obj), "badge,txt", str);
}
ret_if(NULL == ai);
if (!ai->image) {
+ if (ai->icon && 0 == access(ai->icon, R_OK)) {
+ ;
+ } else {
+ _E("Failed to access to [%s]", ai->icon);
+ if (ai->icon) free(ai->icon);
+
+ ai->icon = strdup(DEFAULT_ICON);
+ if (!ai->icon) _E("Critical! strdup error");
+ }
+
if (ai->icon) {
FILE *fp;
fp = fopen(ai->icon, "rb");
evas_object_data_set(item, "icon_image_type", STR_ICON_IMAGE_TYPE_EDJE);
} else {
icon = _add_icon_image(item, ai->icon);
- ret_if(!icon);
evas_object_data_set(item, "icon_image_type", STR_ICON_IMAGE_TYPE_OBJECT);
}
}
item_set_desktop(item, ai->desktop, 0);
item_set_name(item, ai->name, 0);
item_set_icon(item, ai->icon, 0);
- evas_object_data_set(item, STR_ATTRIBUTE_REMOVABLE, (void*) ai->x_slp_removable);
+ evas_object_data_set(item, STR_ATTRIBUTE_REMOVABLE, (void*)ai->removable);
evas_object_data_set(item, "pid", (void *) ai->pid);
item_badge_register(item);
int item_height;
item_edje = evas_object_data_get(scroller, "item_edje");
- retv_if(!item_edje, NULL);
item = layout_load_edj(scroller, item_edje, ITEM_GROUP_NAME);
if (!item) {
_E("Failed to load an item object");
bool is_shortcut = (bool) evas_object_data_get(item, "is_shortcut");
bool shortcut_launch_package = (bool) evas_object_data_get(item, "shortcut_launch_package");
+ app_control_h service;
+ app_control_create(&service);
if (is_shortcut && !shortcut_launch_package) {
- b = bundle_create();
- ret_if(NULL == b);
-
- appsvc_set_operation(b, APPSVC_OPERATION_VIEW);
- appsvc_set_uri(b, evas_object_data_get(item, "content_info"));
-
- int ret = -1;
- ret = appsvc_run_service(b, 0, _run_cb, NULL);
- if (0 > ret) {
- _E("cannot run service. ret [%d]", ret);
+ _D("Is shortcut && !shortcut launch package");
+ app_control_set_operation(service, APP_CONTROL_OPERATION_VIEW);
+ app_control_set_uri(service, evas_object_data_get(item, "content_info"));
+ app_control_set_app_id(service, item_get_pkgid(item));
+
+ int ret = app_control_send_launch_request(service, NULL, NULL);
+ if (ret != APP_CONTROL_ERROR_NONE) {
+ _E("Cannot run service. ret [%d]", ret);
layout_disable_block(layout);
} else {
_D("Launch app's ret : [%d]", ret);
ecore_timer_add(LAYOUT_BLOCK_INTERVAL, _unblock_cb, NULL);
}
- bundle_free(b);
} else {
- int ret_aul = AUL_R_OK;
- if (evas_object_data_get(item, DATA_KEY_ITEM_LAUNCH_MAIN_OPERATION)) {
- b = bundle_create();
- ret_if(NULL == b);
-
- if (0 != bundle_add(b, BUNDLE_KEY_OPERATION, APP_CONTROL_OPERATION_MAIN)) {
- _E("Cannot add to a bundle");
- bundle_free(b);
- return;
- }
+ _D("This app is not shortcut");
+ app_control_set_operation(service, APP_CONTROL_OPERATION_MAIN);
+ app_control_set_app_id(service, item_get_pkgid(item));
- if (b) {
- ret_aul = aul_launch_app(package, b);
- if (AUL_R_EINVAL == ret_aul) {
- _E("cannot launch app");
- }
- bundle_free(b);
- }
+ int ret = app_control_send_launch_request(service, NULL, NULL);
+ if (ret != APP_CONTROL_ERROR_NONE) {
+ _E("Cannot launch app : [%s] [%d]", name, ret);
} else {
- ret_aul = aul_open_app(package);
- if (AUL_R_EINVAL == ret_aul) {
- char* sinform;
- int len;
-
- if (!name) {
- name = package;
- }
-
- // IDS_IDLE_POP_UNABLE_TO_LAUNCH_PS : "Unable to launch %s"
- len = strlen(D_("IDS_IDLE_POP_UNABLE_TO_LAUNCH_PS")) + strlen(name) + 1;
-
- sinform = calloc(len, sizeof(char));
- if (!sinform) {
- _E("cannot calloc for popup.");
- return;
- }
-
- snprintf(sinform, len, D_("IDS_IDLE_POP_UNABLE_TO_LAUNCH_PS"), name);
- popup_create_confirm(layout, sinform);
-
- free(sinform);
- layout_disable_block(layout);
- }
+ _D("Success to luanch : [%s] [%d]", name, ret);
}
- _D("Launch app's ret : [%d]", ret_aul);
-
_T(package);
ecore_timer_add(LAYOUT_BLOCK_INTERVAL, _unblock_cb, NULL);
}
+ app_control_destroy(service);
}
/*
* MENU-SCREEN
*
- * Copyright (c) 2009-2014 Samsung Electronics Co., Ltd All Rights Reserved
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved
*
* Contact: Jin Yoon <jinny.yoon@samsung.com>
* Junkyu Han <junkyu.han@samsung.com>
}
count = item_badge_count(package);
- _D("Register badge to Item, count: %d", count);
if (count) item_show_badge(item, count);
else item_hide_badge(item);
HAPI bool item_badge_is_registered(Evas_Object *item)
{
const char *pkgname;
- badge_error_e err;
+ unsigned int count = 0;
bool existing = false;
pkgname = item_get_package(item);
retv_if(NULL == pkgname, false);
- err = badge_is_existing(pkgname, &existing);
- if (BADGE_ERROR_NONE != err) _E("cannot know whether the badge for %s is or not.", pkgname);
+ count = badge_get_count(pkgname, &count);
+ if (count > 0)
+ existing = true;
return existing? true : false;
}
count = 0;
is_display = false;
} else {
- count = item_badge_count(pkgname);
+ err = badge_get_display(pkgname, &is_display);
+ if (BADGE_ERROR_NONE != err) _D("cannot get badge display");
+ if (0 == is_display) count = 0;
}
item = page_scroller_find_item_by_package(scroller, pkgname, NULL);
if (NULL == item) return;
- _D("Badge change cb, count: %d", count);
if (count) item_show_badge(item, count);
else item_hide_badge(item);
}
/*
* MENU-SCREEN
*
- * Copyright (c) 2009-2014 Samsung Electronics Co., Ltd All Rights Reserved
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved
*
* Contact: Jin Yoon <jinny.yoon@samsung.com>
* Junkyu Han <junkyu.han@samsung.com>
/*
* MENU-SCREEN
*
- * Copyright (c) 2009-2014 Samsung Electronics Co., Ltd All Rights Reserved
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved
*
* Contact: Jin Yoon <jinny.yoon@samsung.com>
* Junkyu Han <junkyu.han@samsung.com>
#include <stdlib.h>
#include <Elementary.h>
-#include <utilX.h>
#include <Ecore_X.h>
#include "conf.h"
#include "popup.h"
#include "util.h"
#include "all_apps/layout.h"
+#include "key.h"
#define KEY_RIGHT "Right"
#define KEY_UP "Up"
#define KEY_DOWN "Down"
-#define KEY_ESC "Escape"
static Eina_Bool _key_release_cb(void *data, int type, void *event)
{
Evas_Event_Key_Up *ev = event;
Evas_Object *scroller = evas_object_data_get(all_apps, "scroller");
break_if(NULL == scroller);
- if (!strcmp(ev->keyname, KEY_SELECT) || !strcmp(ev->keyname, KEY_BACK)) {
+ if (!strcmp(ev->keyname, HOME_KEY_SELECT) || !strcmp(ev->keyname, KEY_BACK)) {
if (popup_exist()) {
popup_destroy_all();
break;
/* If there are no items to be focused after pressing keys,
Menu-screen forces to focus the first item of the other page */
- int rest = 0;
- if (w) {
- rest = x % w;
- }
+ int rest = x % w;
if (rest) {
page_scroller_focus_into_vector(scroller, rest > w / 2 ? -1 : 1);
}
+#define KEY_HOME "XF86Home"
+#define KEY_BACK "XF86Back"
HAPI void key_grab_home(void)
{
- if (EINA_TRUE == key_info.home_grabbed) return;
-
- Ecore_X_Window win = elm_win_xwindow_get(menu_screen_get_win());
- Display* dpy = ecore_x_display_get();
+ int ret = 0;
- int ret = utilx_grab_key(dpy, win, KEY_SELECT, TOP_POSITION_GRAB);
- ret_if(0 != ret);
+ if (EINA_TRUE == key_info.home_grabbed) return;
- ret = utilx_grab_key(dpy, win, KEY_BACK, TOP_POSITION_GRAB);
- ret_if(0 != ret);
+ ret = elm_win_keygrab_set(menu_screen_get_win(), KEY_HOME, 0, 0, 0, ELM_WIN_KEYGRAB_TOPMOST);
+ ret_if(ret == 0);
+ ret = elm_win_keygrab_set(menu_screen_get_win(), KEY_BACK, 0, 0, 0, ELM_WIN_KEYGRAB_TOPMOST);
+ ret_if(ret == 0);
key_info.home_grabbed = EINA_TRUE;
}
HAPI void key_ungrab_home(void)
{
- if (key_info.home_grabbed == EINA_FALSE) return;
+ int ret = 0;
- Ecore_X_Window win = elm_win_xwindow_get(menu_screen_get_win());
- Display* dpy = ecore_x_display_get();
-
- int ret = utilx_ungrab_key(dpy, win, KEY_SELECT);
- ret_if(0 != ret);
+ if (key_info.home_grabbed == EINA_FALSE) return;
- ret = utilx_ungrab_key(dpy, win, KEY_BACK);
- ret_if(0 != ret);
+ ret = elm_win_keygrab_unset(menu_screen_get_win(), KEY_HOME, 0, 0);
+ ret_if(ret == 0);
+ ret = elm_win_keygrab_unset(menu_screen_get_win(), KEY_BACK, 0, 0);
+ ret_if(ret == 0);
key_info.home_grabbed = EINA_FALSE;
}
/*
* MENU-SCREEN
*
- * Copyright (c) 2009-2014 Samsung Electronics Co., Ltd All Rights Reserved
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved
*
* Contact: Jin Yoon <jinny.yoon@samsung.com>
* Junkyu Han <junkyu.han@samsung.com>
#include <Elementary.h>
#include <Ecore_X.h>
-#include <utilX.h>
#include <vconf.h>
#include "menu_screen.h"
height = menu_screen_get_root_height();
evas_object_size_hint_weight_set(layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
- evas_object_size_hint_min_set(layout, width, height);
- evas_object_size_hint_max_set(layout, width, height);
- evas_object_resize(layout, width, height);
+ evas_object_size_hint_min_set(layout, width, height-INDICATOR_PORT_HEIGHT);
+ evas_object_size_hint_max_set(layout, width, height-INDICATOR_PORT_HEIGHT);
+ evas_object_resize(layout, width, height-INDICATOR_PORT_HEIGHT);
evas_object_show(layout);
evas = evas_object_evas_get(layout);
bg = evas_object_rectangle_add(evas);
- evas_object_size_hint_min_set(bg, width, height);
- evas_object_size_hint_max_set(bg, width, height);
- evas_object_resize(bg, width, height);
+ evas_object_resize(bg, width, height-INDICATOR_PORT_HEIGHT);
elm_object_part_content_set(layout, "bg", bg);
evas_object_show(bg);
/*
* MENU-SCREEN
*
- * Copyright (c) 2009-2014 Samsung Electronics Co., Ltd All Rights Reserved
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved
*
* Contact: Jin Yoon <jinny.yoon@samsung.com>
* Junkyu Han <junkyu.han@samsung.com>
#include <stdlib.h>
#include <Elementary.h>
#include <ail.h>
+#include <pkgmgr-info.h>
#include "list.h"
#include "util.h"
/* FIXME : package -> appid */
HAPI menu_screen_error_e list_get_values(const char *package, app_info_t *ai)
{
- ail_appinfo_h appinfo_h;
+ pkgmgrinfo_appinfo_h appinfo_h = NULL;
+ pkgmgrinfo_pkginfo_h pkghandle = NULL;
char *pkgid;
- char *exec;
char *name;
char *icon;
- ail_error_e ret;
retv_if(NULL == package, MENU_SCREEN_ERROR_FAIL);
retv_if(NULL == ai, MENU_SCREEN_ERROR_FAIL);
retv_if(NULL == (ai->package = strdup(package)), MENU_SCREEN_ERROR_FAIL);
- ret = ail_get_appinfo(ai->package, &appinfo_h);
- if (AIL_ERROR_OK == ret) {
- do {
- /* FIXME : Please check this */
- break_if(ail_appinfo_get_str(appinfo_h, AIL_PROP_X_SLP_PKGID_STR, &pkgid) < 0);
- break_if(ail_appinfo_get_str(appinfo_h, AIL_PROP_EXEC_STR, &exec) < 0);
- break_if(ail_appinfo_get_str(appinfo_h, AIL_PROP_NAME_STR, &name) < 0);
- break_if(ail_appinfo_get_str(appinfo_h, AIL_PROP_ICON_STR, &icon) < 0);
- break_if(ail_appinfo_get_bool(appinfo_h, AIL_PROP_NODISPLAY_BOOL, &ai->nodisplay) < 0);
- break_if(ail_appinfo_get_bool(appinfo_h, AIL_PROP_X_SLP_ENABLED_BOOL, &ai->enabled) < 0);
- break_if(ail_appinfo_get_bool(appinfo_h, AIL_PROP_X_SLP_REMOVABLE_BOOL, &ai->x_slp_removable) < 0);
- break_if(ail_appinfo_get_bool(appinfo_h, AIL_PROP_X_SLP_TASKMANAGE_BOOL, &ai->x_slp_taskmanage) < 0);
-
- break_if(NULL == pkgid || NULL == (ai->pkgid = strdup(pkgid)));
- break_if(NULL == exec || NULL == (ai->exec = strdup(exec)));
- break_if(NULL == name || NULL == (ai->name = strdup(name)));
- break_if(NULL == icon || NULL == (ai->icon = strdup(icon)));
-
- ail_destroy_appinfo(appinfo_h);
-
- return MENU_SCREEN_ERROR_OK;
- } while(0);
-
- ail_destroy_appinfo(appinfo_h);
- list_free_values(ai);
- return MENU_SCREEN_ERROR_FAIL;
- } else if (AIL_ERROR_NO_DATA == ret) {
- return MENU_SCREEN_ERROR_OK;
- }
+ goto_if(0 > pkgmgrinfo_appinfo_get_appinfo(ai->package, &appinfo_h), ERROR);
+
+ goto_if(PMINFO_R_OK != pkgmgrinfo_appinfo_get_pkgid(appinfo_h, &pkgid), ERROR);
+ 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);
+ goto_if(PMINFO_R_OK != pkgmgrinfo_appinfo_is_enabled(appinfo_h, &ai->enabled), ERROR);
+
+ do {
+ goto_if(NULL == pkgid || NULL == (ai->pkgid = strdup(pkgid)), ERROR);
+ goto_if(NULL == name || NULL == (ai->name = strdup(name)), ERROR);
+ goto_if(NULL == icon || NULL == (ai->icon = strdup(icon)), ERROR);
+ goto_if(0 > pkgmgrinfo_pkginfo_get_pkginfo(pkgid, &pkghandle) || !pkghandle, ERROR);
+ } while (0);
- if (appinfo_h) ail_destroy_appinfo(appinfo_h);
+ goto_if(PMINFO_R_OK != pkgmgrinfo_pkginfo_is_removable(pkghandle, &ai->removable), ERROR);
+ goto_if(PMINFO_R_OK != pkgmgrinfo_appinfo_is_nodisplay(appinfo_h, &ai->nodisplay), ERROR);
+ if (ai->nodisplay) goto ERROR;
+
+ pkgmgrinfo_appinfo_destroy_appinfo(appinfo_h);
+
+ return MENU_SCREEN_ERROR_OK;
+ERROR:
+ if (appinfo_h) pkgmgrinfo_appinfo_destroy_appinfo(appinfo_h);
+ list_free_values(ai);
return MENU_SCREEN_ERROR_FAIL;
}
/*
* MENU-SCREEN
*
- * Copyright (c) 2009-2014 Samsung Electronics Co., Ltd All Rights Reserved
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved
*
* Contact: Jin Yoon <jinny.yoon@samsung.com>
* Junkyu Han <junkyu.han@samsung.com>
/*
* MENU-SCREEN
*
- * Copyright (c) 2009-2014 Samsung Electronics Co., Ltd All Rights Reserved
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved
*
* Contact: Jin Yoon <jinny.yoon@samsung.com>
* Junkyu Han <junkyu.han@samsung.com>
#include <stdbool.h>
#include <system_info.h>
#include <vconf.h>
+#include <app_preference.h>
+#include <system_settings.h>
+#include <pkgmgr-info.h>
#include "conf.h"
#include "item.h"
static bool _is_emulator_on(void)
{
int ret;
- char *model;
+ char *model = NULL;
ret = system_info_get_platform_string("tizen.org/system/model_name", &model);
if (SYSTEM_INFO_ERROR_NONE != ret) {
}
+
static menu_screen_error_e _create_canvas(char *name, char *title)
{
Ecore_X_Atom ATOM_WM_WINDOW_ROLE;
elm_win_title_set(menu_screen_info.win, title);
}
elm_win_borderless_set(menu_screen_info.win, EINA_TRUE);
+ elm_win_screen_size_get(menu_screen_info.win, NULL, NULL, &menu_screen_info.root_width, &menu_screen_info.root_height);
ecore_x_icccm_name_class_set(elm_win_xwindow_get(menu_screen_info.win), "MENU_SCREEN", "MENU_SCREEN");
ATOM_WM_WINDOW_ROLE = ecore_x_atom_get("WM_WINDOW_ROLE");
-static void _get_window_size(void)
-{
- Ecore_X_Window focus_win;
- Ecore_X_Window root_win;
-
- focus_win = ecore_x_window_focus_get();
- root_win = ecore_x_window_root_get(focus_win);
- ecore_x_window_size_get(root_win, &menu_screen_info.root_width, &menu_screen_info.root_height);
-
- _D("width:%d, height:%d", menu_screen_info.root_width, menu_screen_info.root_height);
-}
-
-
-
static void _create_bg(void)
{
- char *buf;
- Evas_Coord w;
- Evas_Coord h;
+ char *buf = NULL;
Evas_Object *bg;
- double f, wf, hf;
- static int trigger = 0;
- const char *key;
int width;
int height;
- buf = vconf_get_str(VCONFKEY_BGSET);
- ret_if(NULL == buf);
+ if (system_settings_get_value_string(SYSTEM_SETTINGS_KEY_WALLPAPER_HOME_SCREEN, &buf) < 0) {
+ _E("Failed to get a wallpaper: %d\n", SYSTEM_SETTINGS_KEY_WALLPAPER_HOME_SCREEN);
+ }
width = menu_screen_get_root_width();
height = menu_screen_get_root_height();
evas_object_color_set(rect, 0, 0, 0, 255);
evas_object_size_hint_min_set(rect, width, height);
evas_object_size_hint_max_set(rect, width, height);
- evas_object_resize(rect, width, height);
+ elm_win_resize_object_add(menu_screen_get_win(), rect);
evas_object_show(rect);
- bg = evas_object_image_add(menu_screen_get_evas());
+ bg = elm_image_add(menu_screen_get_win());
if (NULL == bg) {
free(buf);
return;
}
- evas_object_image_load_orientation_set(bg, EINA_TRUE);
evas_object_data_set(menu_screen_get_win(), "bg", bg);
}
- if (trigger == 0) {
- key = "/";
- trigger = 1;
- } else {
- key = NULL;
- trigger = 0;
- }
-
- evas_object_image_file_set(bg, buf, key);
- evas_object_image_size_get(bg, &w, &h);
- evas_object_image_filled_set(bg, 1);
-
- wf = (double) width / (double) w;
- hf = (double) height / (double) h;
-
- f = wf < hf ? hf : wf;
+ elm_image_aspect_fixed_set(bg, EINA_TRUE);
+ elm_image_fill_outside_set(bg, EINA_TRUE);
+ elm_image_preload_disabled_set(bg, EINA_FALSE);
- w = (int) ((double) f * (double) w);
- h = (int) ((double) f * (double) h);
+ evas_object_size_hint_min_set(bg, width, height);
+ evas_object_size_hint_max_set(bg, width, height);
+ if (!elm_image_file_set(bg, buf, NULL)) {
+ _E("Failed to set image file : %s", buf);
+ }
- evas_object_image_load_size_set(bg, w, h);
- evas_object_image_fill_set(bg, 0, 0, w, h);
- evas_object_move(bg, (width - w) / 2, (height - h) / 2);
- evas_object_resize(bg, w, h);
+ elm_win_resize_object_add(menu_screen_get_win(), bg);
evas_object_show(bg);
free(buf);
-static void _change_bg_cb(keynode_t *node, void *data)
+//static void _change_bg_cb(keynode_t *node, void *data)
+static void _change_bg_cb(system_settings_key_e key, void *data)
{
_D("Background image is changed.");
_create_bg();
conformant = elm_conformant_add(win);
retv_if(NULL == conformant, NULL);
- elm_win_indicator_opacity_set(win, ELM_WIN_INDICATOR_TRANSLUCENT);
evas_object_size_hint_weight_set(conformant, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
- elm_object_signal_emit(conformant, "elm,state,indicator,overlap", "elm");
+ elm_win_resize_object_add(win, conformant);
+
elm_win_indicator_mode_set(menu_screen_info.win, ELM_WIN_INDICATOR_SHOW);
+ elm_object_signal_emit(conformant, "elm,state,indicator,overlap", "elm");
+
evas_object_data_set(conformant, "win", win);
evas_object_show(conformant);
- elm_win_resize_object_add(win, conformant);
elm_win_conformant_set(win, EINA_TRUE);
return conformant;
}
-static char *_replace_str(char *str, const char *before, const char *after)
-{
- retv_if(NULL == str, NULL);
- retv_if(NULL == before, NULL);
- retv_if(NULL == after, NULL);
-
- size_t before_len = strlen(before);
- retv_if(before_len < 1, str);
-
- size_t after_len = strlen(after);
- size_t i, count = 0;
- if (after_len != before_len) {
- for (i = 0; str[i] != '\0';) {
- if (0 == memcmp(&str[i], before, before_len)) {
- count++;
- i += before_len;
- } else {
- i++;
- }
- }
- } else {
- i = strlen(str);
- }
-
- char *result;
- result = malloc(i + 1 + count * (after_len - before_len));
- retv_if(result == NULL, NULL);
-
- char *sr;
- sr = result;
- while (*str) {
- if (0 == memcmp(str, before, before_len)) {
- memcpy(sr, after, after_len);
- sr += after_len;
- str += before_len;
- } else {
- *sr++ = *str++;
- }
- }
- *sr = '\0';
-
- return result;
-}
-
-
-static void _tts_cb(keynode_t *node, void *data)
-{
- _D("change tts");
-
- int val = -1;
- if (0 == vconf_get_bool(VCONFKEY_SETAPPL_ACCESSIBILITY_TTS, &val) &&
- menu_screen_info.is_tts != val)
- {
- menu_screen_info.is_tts = val;
- }
-}
-
-
static bool _create_cb(void *data)
{
Evas_Object *conformant;
- _get_window_size();
_init_theme();
retv_if(MENU_SCREEN_ERROR_FAIL == _create_canvas(PACKAGE, PACKAGE), false);
- if (vconf_notify_key_changed(VCONFKEY_BGSET, _change_bg_cb, NULL) < 0) {
- _E("Failed to register a vconf cb for %s\n", VCONFKEY_BGSET);
+ if (system_settings_set_changed_cb(SYSTEM_SETTINGS_KEY_WALLPAPER_HOME_SCREEN, _change_bg_cb, NULL) < 0) {
+ _E("Failed to register a settings change cb for %d\n", SYSTEM_SETTINGS_KEY_WALLPAPER_HOME_SCREEN);
}
_create_bg();
}
evas_object_data_set(menu_screen_info.win, "layout", layout);
- if (vconf_notify_key_changed(VCONFKEY_SETAPPL_ACCESSIBILITY_TTS, _tts_cb, NULL) < 0) {
- _E("Failed to register the tts callback");
- }
- retv_if(vconf_get_bool(VCONFKEY_SETAPPL_ACCESSIBILITY_TTS, &menu_screen_info.is_tts) < 0, MENU_SCREEN_ERROR_FAIL);
-
elm_object_content_set(conformant, layout);
+
mouse_register();
aul_listen_app_dead_signal(_dead_cb, NULL);
key_register();
// FIXME : This will be enabled after rebuilding the routine for appid <-> pkgid.
pkgmgr_fini();
- if (vconf_ignore_key_changed(VCONFKEY_BGSET, _change_bg_cb) < 0) {
- _E("Failed to remove bgset [%s]\n", VCONFKEY_BGSET);
- }
-
- if (vconf_ignore_key_changed(VCONFKEY_SETAPPL_ACCESSIBILITY_TTS, _tts_cb) < 0) {
- _E("Failed to ignore the alpha callback");
+ if (system_settings_unset_changed_cb(SYSTEM_SETTINGS_KEY_WALLPAPER_HOME_SCREEN) < 0) {
+ _E("Failed to remove bgset [%s]\n", SYSTEM_SETTINGS_KEY_WALLPAPER_HOME_SCREEN);
}
evas_object_hide(menu_screen_info.win);
-static void _language_changed_cb(void *data)
+static void _language_changed_cb(app_event_info_h event_info, void *data)
{
register unsigned int i;
register unsigned int j;
}
for (j = 0; j < page_max_app; j ++) {
- ail_appinfo_h ai;
+ pkgmgrinfo_appinfo_h appinfo_h = NULL;
char *name;
item = page_get_item_at(page, j);
if (!item) continue;
- if (ail_get_appinfo(item_get_package(item), &ai) < 0) {
- ail_destroy_appinfo(ai);
+ if (pkgmgrinfo_appinfo_get_appinfo(item_get_package(item), &appinfo_h) < 0) {
+ pkgmgrinfo_appinfo_destroy_appinfo(appinfo_h);
continue;
}
- if (ail_appinfo_get_str(ai, AIL_PROP_NAME_STR, &name) < 0) {
- ail_destroy_appinfo(ai);
+ if (pkgmgrinfo_appinfo_get_label(appinfo_h, &name) < 0) {
+ pkgmgrinfo_appinfo_destroy_appinfo(appinfo_h);
continue;
}
if (!name) {
_D("Failed to get name for %s", item_get_package(item));
- ail_destroy_appinfo(ai);
+ pkgmgrinfo_appinfo_destroy_appinfo(appinfo_h);
continue;
}
item_set_name(item, name, 0);
- ail_destroy_appinfo(ai);
+ pkgmgrinfo_appinfo_destroy_appinfo(appinfo_h);
}
mapbuf_enable(page, 1);
-static void _init(app_event_callback_s *event_callback)
+static void _init(ui_app_lifecycle_callback_s *lifecycle_callback, app_event_handler_h *event_handlers)
{
- event_callback->create = _create_cb;
- event_callback->terminate = _terminate_cb;
- event_callback->pause = _pause_cb;
- event_callback->resume = _resume_cb;
- event_callback->app_control = _app_control_cb;
- event_callback->low_memory = NULL;
- event_callback->low_battery = NULL;
- event_callback->device_orientation = NULL;
- event_callback->language_changed = _language_changed_cb;
- event_callback->region_format_changed = NULL;
+ lifecycle_callback->create = _create_cb;
+ lifecycle_callback->terminate = _terminate_cb;
+ lifecycle_callback->pause = _pause_cb;
+ lifecycle_callback->resume = _resume_cb;
+ lifecycle_callback->app_control = _app_control_cb;
+
+ ui_app_add_event_handler(&event_handlers[APP_EVENT_LOW_BATTERY], APP_EVENT_LOW_BATTERY, NULL, NULL);
+ ui_app_add_event_handler(&event_handlers[APP_EVENT_LOW_MEMORY], APP_EVENT_LOW_MEMORY, NULL, NULL);
+ ui_app_add_event_handler(&event_handlers[APP_EVENT_DEVICE_ORIENTATION_CHANGED], APP_EVENT_DEVICE_ORIENTATION_CHANGED, NULL, NULL);
+ ui_app_add_event_handler(&event_handlers[APP_EVENT_LANGUAGE_CHANGED], APP_EVENT_LANGUAGE_CHANGED, _language_changed_cb, NULL);
+ ui_app_add_event_handler(&event_handlers[APP_EVENT_REGION_FORMAT_CHANGED], APP_EVENT_REGION_FORMAT_CHANGED, NULL, NULL);
+
}
-static void _fini(void)
+static void _fini(app_event_handler_h *event_handlers)
{
+ ui_app_remove_event_handler(event_handlers[APP_EVENT_LOW_BATTERY]);
+ ui_app_remove_event_handler(event_handlers[APP_EVENT_LOW_MEMORY]);
+ ui_app_remove_event_handler(event_handlers[APP_EVENT_DEVICE_ORIENTATION_CHANGED]);
+ ui_app_remove_event_handler(event_handlers[APP_EVENT_LANGUAGE_CHANGED]);
+ ui_app_remove_event_handler(event_handlers[APP_EVENT_REGION_FORMAT_CHANGED]);
+
}
+static void _init_reference_value(void)
+{
+ preference_set_string(MENU_SCREEN_ENGINE, "gl");
+}
+
+
int main(int argc, char *argv[])
{
- app_event_callback_s event_callback;
+ ui_app_lifecycle_callback_s lifecycle_callback = {0, };
+ app_event_handler_h event_handlers[5] = {NULL, };
- _init(&event_callback);
- app_efl_main(&argc, &argv, &event_callback, NULL);
- _fini();
+ _init_reference_value();
+
+ _init(&lifecycle_callback, event_handlers);
+ ui_app_main(argc, argv, &lifecycle_callback, NULL);
+ _fini(event_handlers);
return EXIT_SUCCESS;
}
-
-
// End of a file
/*
* MENU-SCREEN
*
- * Copyright (c) 2009-2014 Samsung Electronics Co., Ltd All Rights Reserved
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved
*
* Contact: Jin Yoon <jinny.yoon@samsung.com>
* Junkyu Han <junkyu.han@samsung.com>
/*
* MENU-SCREEN
*
- * Copyright (c) 2009-2014 Samsung Electronics Co., Ltd All Rights Reserved
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved
*
* Contact: Jin Yoon <jinny.yoon@samsung.com>
* Junkyu Han <junkyu.han@samsung.com>
_D("Create a new page[%d]", idx);
page_edje = evas_object_data_get(scroller, "page_edje");
- retv_if(!page_edje, NULL);
page = layout_load_edj(scroller, page_edje, PAGE_GROUP_NAME);
retv_if(!page, NULL);
}
retv_if(pending_idx == -1, MENU_SCREEN_ERROR_FAIL);
- snprintf(tmp, sizeof(tmp), "menu_swallow_%d", pending_idx);
+ sprintf(tmp, "menu_swallow_%d", pending_idx);
check_item = edje_object_part_swallow_get(_EDJ(page), tmp);
retv_if(check_item != item, MENU_SCREEN_ERROR_FAIL);
object = page_get_item_at(page, idx);
if (object) {
Evas_Object *check_object;
- snprintf(tmp, sizeof(tmp), "menu_swallow_%d", idx);
+ sprintf(tmp, "menu_swallow_%d", idx);
check_object = elm_object_part_content_unset(page, tmp);
if (check_object != object) {
/*
* MENU-SCREEN
*
- * Copyright (c) 2009-2014 Samsung Electronics Co., Ltd All Rights Reserved
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved
*
* Contact: Jin Yoon <jinny.yoon@samsung.com>
* Junkyu Han <junkyu.han@samsung.com>
-static void _mapbuf_cb(keynode_t *node, void *data)
-{
- int value;
- int nr_of_pages;
- register int i;
- Evas_Object *page;
-
- if (vconf_get_int("memory/menuscreen/mapbuf", &value) < 0) {
- _D("Failed to get mapbuf status");
- return;
- }
-
- nr_of_pages = page_scroller_count_page(data);
- if (value) {
- for (i = 0; i < nr_of_pages; i ++) {
- page = page_scroller_get_page_at(data, i);
- if (!page) continue;
-
- if (!mapbuf_is_enabled(page)) {
- _D("Enable mapbuf %d", i);
- mapbuf_enable(page, 1);
- }
- }
- } else {
- for (i = 0; i < nr_of_pages; i ++) {
- page = page_scroller_get_page_at(data, i);
- if (!page) continue;
-
- if (mapbuf_is_enabled(page)) {
- _D("Disable mapbuf %d", i);
- mapbuf_disable(page, 1);
- }
- }
- }
-}
-
-
-
static void _mouse_wheel_cb(void *data, Evas *e, Evas_Object *obj, void *event_info)
{
Evas_Event_Mouse_Wheel *ei = event_info;
evas_object_show(box);
evas_object_show(scroller);
- if (vconf_notify_key_changed("memory/menuscreen/mapbuf", _mapbuf_cb, scroller) < 0) {
- _E("Failed to register a vconf cb for %s", "memory/menuscreen/mapbuf");
- }
-
item_badge_register_changed_cb(scroller);
if (!_create_main_operation_list(scroller)) {
_E("Cannot create the main operation list");
evas_object_del(scroller);
- if (vconf_ignore_key_changed("memory/menuscreen/mapbuf", _mapbuf_cb) < 0) {
- _E("Failed to remove vconf %s", "memory/menuscreen/mapbuf");
- }
}
/*
* MENU-SCREEN
*
- * Copyright (c) 2009-2014 Samsung Electronics Co., Ltd All Rights Reserved
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved
*
* Contact: Jin Yoon <jinny.yoon@samsung.com>
* Junkyu Han <junkyu.han@samsung.com>
/*
* MENU-SCREEN
*
- * Copyright (c) 2009-2014 Samsung Electronics Co., Ltd All Rights Reserved
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved
*
* Contact: Jin Yoon <jinny.yoon@samsung.com>
* Junkyu Han <junkyu.han@samsung.com>
Evas_Object *item;
item = evas_object_data_del(popup, "item");
- ret_if(!item);
evas_object_del(evas_object_data_del(popup, "button1"));
evas_object_del(evas_object_data_del(popup, "button2"));
Evas_Object *btn2;
char warning[BUFSZE];
- retv_if(!item, NULL);
-
popup_destroy_all();
popup = elm_popup_add(parent);
/*
* MENU-SCREEN
*
- * Copyright (c) 2009-2014 Samsung Electronics Co., Ltd All Rights Reserved
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved
*
* Contact: Jin Yoon <jinny.yoon@samsung.com>
* Junkyu Han <junkyu.han@samsung.com>