From f0357cb7ae520f0685ee5cae6220b31a19203b6c Mon Sep 17 00:00:00 2001 From: "jk7744.park" Date: Sat, 24 Oct 2015 15:39:42 +0900 Subject: [PATCH] tizen 2.4 release --- CMakeLists.txt | 4 +- LICENSE | 2 +- data/edje/all_apps_portrait.edc | 4 +- data/edje/button_edit.edc | 4 +- data/edje/group_4x4_portrait.edc | 4 +- data/edje/index.edc | 4 +- data/edje/item_4x4.edc | 7 +- data/edje/layout_portrait.edc | 4 +- data/icons/org.tizen.menu-screen.png | Bin data/org.tizen.menu-screen.xml.in | 0 include/all_apps/db.h | 2 +- include/all_apps/layout.h | 2 +- include/all_apps/list.h | 2 +- include/all_apps/shortcut.h | 2 +- include/conf.h | 2 +- include/db.h | 2 +- include/index.h | 2 +- include/item.h | 2 +- include/item_badge.h | 2 +- include/item_event.h | 2 +- include/key.h | 6 +- include/layout.h | 2 +- include/list.h | 4 +- include/mapbuf.h | 2 +- include/menu_screen.h | 2 +- include/mouse.h | 2 +- include/page.h | 2 +- include/page_scroller.h | 2 +- include/pkgmgr.h | 2 +- include/popup.h | 2 +- include/util.h | 2 +- org.tizen.menu-screen.efl | 17 +- packaging/org.tizen.menu-screen.spec | 25 ++- src/all_apps/db.c | 2 +- src/all_apps/layout.c | 9 +- src/all_apps/list.c | 55 +++---- src/all_apps/shortcut.c | 4 +- src/db.c | 2 +- src/index.c | 6 +- src/item.c | 93 ++++------- src/item_badge.c | 15 +- src/item_event.c | 2 +- src/key.c | 42 +++-- src/layout.c | 13 +- src/list.c | 61 ++++---- src/mapbuf.c | 2 +- src/menu_screen.c | 225 +++++++++------------------ src/mouse.c | 2 +- src/page.c | 7 +- src/page_scroller.c | 47 +----- src/pkgmgr.c | 2 +- src/popup.c | 5 +- src/util.c | 2 +- 53 files changed, 273 insertions(+), 446 deletions(-) mode change 100755 => 100644 CMakeLists.txt mode change 100755 => 100644 LICENSE mode change 100755 => 100644 data/icons/org.tizen.menu-screen.png mode change 100755 => 100644 data/org.tizen.menu-screen.xml.in mode change 100755 => 100644 org.tizen.menu-screen.efl mode change 100755 => 100644 packaging/org.tizen.menu-screen.spec diff --git a/CMakeLists.txt b/CMakeLists.txt old mode 100755 new mode 100644 index bf11187..eed6b55 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -32,6 +32,9 @@ pkg_check_modules(MENU_PKGS REQUIRED bundle capi-appfw-application capi-system-info + capi-appfw-preference + capi-system-system-settings + capi-system-info dlog ecore ecore-evas @@ -48,7 +51,6 @@ pkg_check_modules(MENU_PKGS REQUIRED pkgmgr-info shortcut syspopup-caller - utilX ) IF(USE_ARM) diff --git a/LICENSE b/LICENSE old mode 100755 new mode 100644 index 3d4a47d..54b213e --- a/LICENSE +++ b/LICENSE @@ -1,4 +1,4 @@ -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 diff --git a/data/edje/all_apps_portrait.edc b/data/edje/all_apps_portrait.edc index 4b2c759..e2406cb 100644 --- a/data/edje/all_apps_portrait.edc +++ b/data/edje/all_apps_portrait.edc @@ -1,7 +1,7 @@ /* * 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 * Junkyu Han @@ -25,7 +25,7 @@ #define _BASE_HEIGHT 1280 collections { - base_scale: 1.8; + base_scale: 2.4; group { name: "all_apps"; parts { diff --git a/data/edje/button_edit.edc b/data/edje/button_edit.edc index fefa59f..d979d78 100644 --- a/data/edje/button_edit.edc +++ b/data/edje/button_edit.edc @@ -1,7 +1,7 @@ /* * 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 * Junkyu Han @@ -41,7 +41,7 @@ images { collections { - base_scale: 1.8; + base_scale: 2.4; group { name: "button_edit"; parts { diff --git a/data/edje/group_4x4_portrait.edc b/data/edje/group_4x4_portrait.edc index ff7a34a..00af231 100644 --- a/data/edje/group_4x4_portrait.edc +++ b/data/edje/group_4x4_portrait.edc @@ -1,7 +1,7 @@ /* * 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 * Junkyu Han @@ -122,7 +122,7 @@ #define ITEM_15_Y ITEM_12_Y collections { - base_scale: 1.8; + base_scale: 2.4; group { name: "menu_bg"; parts { diff --git a/data/edje/index.edc b/data/edje/index.edc index 713e382..27af80a 100644 --- a/data/edje/index.edc +++ b/data/edje/index.edc @@ -1,7 +1,7 @@ /* * 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 * Junkyu Han @@ -26,7 +26,7 @@ #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"; diff --git a/data/edje/item_4x4.edc b/data/edje/item_4x4.edc index 541e59c..f3b0ecb 100644 --- a/data/edje/item_4x4.edc +++ b/data/edje/item_4x4.edc @@ -1,7 +1,7 @@ /* * 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 * Junkyu Han @@ -43,7 +43,7 @@ images { collections { - base_scale: 1.8; + base_scale: 2.4; group { name: "icon"; @@ -57,7 +57,6 @@ collections { state: "default" 0.0; rel1 { relative: 0.0 0.0; } rel2 { relative: 1.0 1.0; } - fixed: 1 1; visible: 0; } } @@ -71,7 +70,6 @@ collections { 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; } } @@ -169,7 +167,6 @@ collections { image { normal: "../images/RM06_App tray_Btn_Uninstall.png"; } - //min: 54 54; fixed: 1 1; visible: 0; } diff --git a/data/edje/layout_portrait.edc b/data/edje/layout_portrait.edc index dc95b87..799cbd9 100644 --- a/data/edje/layout_portrait.edc +++ b/data/edje/layout_portrait.edc @@ -1,7 +1,7 @@ /* * 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 * Junkyu Han @@ -47,7 +47,7 @@ styles { collections { - base_scale: 1.8; + base_scale: 2.4; group { name: "layout"; parts { diff --git a/data/icons/org.tizen.menu-screen.png b/data/icons/org.tizen.menu-screen.png old mode 100755 new mode 100644 diff --git a/data/org.tizen.menu-screen.xml.in b/data/org.tizen.menu-screen.xml.in old mode 100755 new mode 100644 diff --git a/include/all_apps/db.h b/include/all_apps/db.h index 08997d5..23745e8 100644 --- a/include/all_apps/db.h +++ b/include/all_apps/db.h @@ -1,7 +1,7 @@ /* * 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 * Junkyu Han diff --git a/include/all_apps/layout.h b/include/all_apps/layout.h index f3d6151..9f0087d 100644 --- a/include/all_apps/layout.h +++ b/include/all_apps/layout.h @@ -1,7 +1,7 @@ /* * 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 * Junkyu Han diff --git a/include/all_apps/list.h b/include/all_apps/list.h index 126aed8..6f25303 100644 --- a/include/all_apps/list.h +++ b/include/all_apps/list.h @@ -1,7 +1,7 @@ /* * 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 * Junkyu Han diff --git a/include/all_apps/shortcut.h b/include/all_apps/shortcut.h index 2421671..7c6d5f6 100644 --- a/include/all_apps/shortcut.h +++ b/include/all_apps/shortcut.h @@ -1,7 +1,7 @@ /* * 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 * Junkyu Han diff --git a/include/conf.h b/include/conf.h index 47cb96c..bfe45a3 100644 --- a/include/conf.h +++ b/include/conf.h @@ -1,7 +1,7 @@ /* * 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 * Junkyu Han diff --git a/include/db.h b/include/db.h index 5ec5bd9..98f3636 100644 --- a/include/db.h +++ b/include/db.h @@ -1,7 +1,7 @@ /* * 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 * Junkyu Han diff --git a/include/index.h b/include/index.h index 27ef1c0..68a1447 100644 --- a/include/index.h +++ b/include/index.h @@ -1,7 +1,7 @@ /* * 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 * Junkyu Han diff --git a/include/item.h b/include/item.h index a42d3c8..1059439 100644 --- a/include/item.h +++ b/include/item.h @@ -1,7 +1,7 @@ /* * 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 * Junkyu Han diff --git a/include/item_badge.h b/include/item_badge.h index 659b323..b510761 100644 --- a/include/item_badge.h +++ b/include/item_badge.h @@ -1,7 +1,7 @@ /* * 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 * Junkyu Han diff --git a/include/item_event.h b/include/item_event.h index d140130..605dc33 100644 --- a/include/item_event.h +++ b/include/item_event.h @@ -1,7 +1,7 @@ /* * 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 * Junkyu Han diff --git a/include/key.h b/include/key.h index b3bb91c..3c5f04d 100644 --- a/include/key.h +++ b/include/key.h @@ -1,7 +1,7 @@ /* * 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 * Junkyu Han @@ -25,6 +25,10 @@ #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); diff --git a/include/layout.h b/include/layout.h index 4edc6b0..44d76b4 100644 --- a/include/layout.h +++ b/include/layout.h @@ -1,7 +1,7 @@ /* * 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 * Junkyu Han diff --git a/include/list.h b/include/list.h index 9c6c1b9..b8a0af9 100644 --- a/include/list.h +++ b/include/list.h @@ -1,7 +1,7 @@ /* * 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 * Junkyu Han @@ -38,7 +38,7 @@ typedef struct char *desktop; bool nodisplay; bool enabled; - bool x_slp_removable; + bool removable; bool x_slp_taskmanage; pid_t pid; Evas_Object *image; diff --git a/include/mapbuf.h b/include/mapbuf.h index db20904..ae607df 100644 --- a/include/mapbuf.h +++ b/include/mapbuf.h @@ -1,7 +1,7 @@ /* * 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 * Junkyu Han diff --git a/include/menu_screen.h b/include/menu_screen.h index 06d8fc3..b133821 100644 --- a/include/menu_screen.h +++ b/include/menu_screen.h @@ -1,7 +1,7 @@ /* * 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 * Junkyu Han diff --git a/include/mouse.h b/include/mouse.h index 85d0a29..b46d295 100644 --- a/include/mouse.h +++ b/include/mouse.h @@ -1,7 +1,7 @@ /* * 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 * Junkyu Han diff --git a/include/page.h b/include/page.h index 4c4ad3a..ef81e3e 100644 --- a/include/page.h +++ b/include/page.h @@ -1,7 +1,7 @@ /* * 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 * Junkyu Han diff --git a/include/page_scroller.h b/include/page_scroller.h index da9e4f2..b700d99 100644 --- a/include/page_scroller.h +++ b/include/page_scroller.h @@ -1,7 +1,7 @@ /* * 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 * Junkyu Han diff --git a/include/pkgmgr.h b/include/pkgmgr.h index bd2aa06..9342991 100644 --- a/include/pkgmgr.h +++ b/include/pkgmgr.h @@ -1,7 +1,7 @@ /* * 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 * Junkyu Han diff --git a/include/popup.h b/include/popup.h index d871b91..85502a6 100644 --- a/include/popup.h +++ b/include/popup.h @@ -1,7 +1,7 @@ /* * 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 * Junkyu Han diff --git a/include/util.h b/include/util.h index 4ddc2b7..0dd6326 100644 --- a/include/util.h +++ b/include/util.h @@ -1,7 +1,7 @@ /* * 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 * Junkyu Han diff --git a/org.tizen.menu-screen.efl b/org.tizen.menu-screen.efl old mode 100755 new mode 100644 index ee4a59f..f51ba58 --- a/org.tizen.menu-screen.efl +++ b/org.tizen.menu-screen.efl @@ -1,6 +1,5 @@ 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--- ------ @@ -61,8 +60,6 @@ org.tizen.menu-screen stest-service -w---- ------ 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---- ------ @@ -71,28 +68,24 @@ org.tizen.menu-screen data-provider-master::notification.client -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 ------ diff --git a/packaging/org.tizen.menu-screen.spec b/packaging/org.tizen.menu-screen.spec old mode 100755 new mode 100644 index cde2b6f..4fbc75e --- a/packaging/org.tizen.menu-screen.spec +++ b/packaging/org.tizen.menu-screen.spec @@ -14,6 +14,14 @@ %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 @@ -44,11 +52,12 @@ BuildRequires: pkgconfig(pkgmgr) 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) @@ -106,18 +115,8 @@ mkdir -p %{buildroot}%{_datadir} 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 @@ -170,5 +169,5 @@ fi %{_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 diff --git a/src/all_apps/db.c b/src/all_apps/db.c index eb5485d..104d13c 100644 --- a/src/all_apps/db.c +++ b/src/all_apps/db.c @@ -1,7 +1,7 @@ /* * 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 * Junkyu Han diff --git a/src/all_apps/layout.c b/src/all_apps/layout.c index 3842193..8b5d769 100644 --- a/src/all_apps/layout.c +++ b/src/all_apps/layout.c @@ -1,7 +1,7 @@ /* * 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 * Junkyu Han @@ -333,9 +333,8 @@ HAPI Evas_Object *all_apps_layout_create(Evas_Object *controlbar, int rotate) 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); @@ -355,7 +354,7 @@ HAPI Evas_Object *all_apps_layout_create(Evas_Object *controlbar, int rotate) 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) { diff --git a/src/all_apps/list.c b/src/all_apps/list.c index 2144455..06c2cb4 100644 --- a/src/all_apps/list.c +++ b/src/all_apps/list.c @@ -1,7 +1,7 @@ /* * 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 * Junkyu Han @@ -62,33 +62,34 @@ ERROR: -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; @@ -96,14 +97,14 @@ static ail_cb_ret_e _all_apps_cb(ail_appinfo_h ai, void *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); @@ -113,19 +114,19 @@ static ail_cb_ret_e _all_apps_cb(ail_appinfo_h ai, void *data) 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; } @@ -194,25 +195,20 @@ HAPI app_list *all_apps_list_create(void) { 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."); @@ -231,9 +227,9 @@ HAPI app_list *all_apps_list_create(void) for(i = (MAX_PAGE_NO * PAGE_MAX_APP); ipackage); - _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); } @@ -243,6 +239,11 @@ HAPI app_list *all_apps_list_create(void) _D("Cannot sort apps."); } + return list; + +ERROR: + if (handle) pkgmgrinfo_appinfo_filter_destroy(handle); + return list; } diff --git a/src/all_apps/shortcut.c b/src/all_apps/shortcut.c index 0554491..999eb85 100644 --- a/src/all_apps/shortcut.c +++ b/src/all_apps/shortcut.c @@ -1,7 +1,7 @@ /* * 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 * Junkyu Han @@ -50,7 +50,7 @@ HAPI Evas_Object *all_apps_shortcut_add( 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)) { diff --git a/src/db.c b/src/db.c index 9efce2d..19473dd 100644 --- a/src/db.c +++ b/src/db.c @@ -1,7 +1,7 @@ /* * 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 * Junkyu Han diff --git a/src/index.c b/src/index.c index 82a71d0..4c30289 100644 --- a/src/index.c +++ b/src/index.c @@ -1,7 +1,7 @@ /* * 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 * Junkyu Han @@ -64,7 +64,7 @@ HAPI Evas_Object *index_create(Evas_Object *tab, unsigned int count, unsigned in 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); @@ -127,7 +127,7 @@ HAPI Evas_Object *index_update(Evas_Object *layout, Evas_Object *index, unsigned _D("Current index %d, Current count: %d", idx,count); index_destroy(index); - return index_create(layout, count, idx); + return index_create(layout, count,idx); } diff --git a/src/item.c b/src/item.c index e914489..84a140d 100644 --- a/src/item.c +++ b/src/item.c @@ -1,7 +1,7 @@ /* * 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 * Junkyu Han @@ -24,10 +24,11 @@ #include #include #include -#include #include #include #include +#include +#include #include "menu_screen.h" #include "item_badge.h" @@ -339,7 +340,7 @@ HAPI void item_show_badge(Evas_Object *obj, int value) 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); } @@ -576,6 +577,16 @@ HAPI void item_update(Evas_Object *item, app_info_t *ai) 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"); @@ -590,7 +601,6 @@ HAPI void item_update(Evas_Object *item, app_info_t *ai) 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); } } @@ -615,7 +625,7 @@ HAPI void item_update(Evas_Object *item, app_info_t *ai) 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); @@ -716,7 +726,6 @@ HAPI Evas_Object *item_create(Evas_Object *scroller, app_info_t* ai) 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"); @@ -928,75 +937,39 @@ HAPI void item_launch(Evas_Object *obj) 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); } diff --git a/src/item_badge.c b/src/item_badge.c index aa52032..0a6e190 100644 --- a/src/item_badge.c +++ b/src/item_badge.c @@ -1,7 +1,7 @@ /* * 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 * Junkyu Han @@ -67,7 +67,6 @@ static Eina_Bool _idler_cb(void *data) } 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); @@ -81,14 +80,15 @@ static Eina_Bool _idler_cb(void *data) 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; } @@ -148,13 +148,14 @@ static void _badge_change_cb(unsigned int action, const char *pkgname, unsigned 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); } diff --git a/src/item_event.c b/src/item_event.c index 01aa4f1..1210e25 100644 --- a/src/item_event.c +++ b/src/item_event.c @@ -1,7 +1,7 @@ /* * 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 * Junkyu Han diff --git a/src/key.c b/src/key.c index 682deb4..8866405 100644 --- a/src/key.c +++ b/src/key.c @@ -1,7 +1,7 @@ /* * 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 * Junkyu Han @@ -22,7 +22,6 @@ #include #include -#include #include #include "conf.h" @@ -32,6 +31,7 @@ #include "popup.h" #include "util.h" #include "all_apps/layout.h" +#include "key.h" @@ -57,7 +57,6 @@ static struct { #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; @@ -85,7 +84,7 @@ static Eina_Bool _key_release_cb(void *data, int type, void *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; @@ -111,10 +110,7 @@ static Eina_Bool _key_release_cb(void *data, int type, void *event) /* 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); } @@ -198,18 +194,18 @@ HAPI void key_unregister(void) +#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; } @@ -218,16 +214,14 @@ HAPI void key_grab_home(void) 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; } diff --git a/src/layout.c b/src/layout.c index 6eef4b3..94c55a3 100644 --- a/src/layout.c +++ b/src/layout.c @@ -1,7 +1,7 @@ /* * 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 * Junkyu Han @@ -22,7 +22,6 @@ #include #include -#include #include #include "menu_screen.h" @@ -55,16 +54,14 @@ HAPI Evas_Object *layout_create(Evas_Object *conformant, const char *file, const 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); diff --git a/src/list.c b/src/list.c index 3532887..32659c4 100644 --- a/src/list.c +++ b/src/list.c @@ -1,7 +1,7 @@ /* * 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 * Junkyu Han @@ -24,6 +24,7 @@ #include #include #include +#include #include "list.h" #include "util.h" @@ -102,49 +103,41 @@ HAPI menu_screen_error_e list_get_item(app_list *list, app_list_item **item) /* 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; } diff --git a/src/mapbuf.c b/src/mapbuf.c index a9fb5bb..f6561a5 100644 --- a/src/mapbuf.c +++ b/src/mapbuf.c @@ -1,7 +1,7 @@ /* * 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 * Junkyu Han diff --git a/src/menu_screen.c b/src/menu_screen.c index ee36cc3..2d90eaf 100755 --- a/src/menu_screen.c +++ b/src/menu_screen.c @@ -1,7 +1,7 @@ /* * 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 * Junkyu Han @@ -29,6 +29,9 @@ #include #include #include +#include +#include +#include #include "conf.h" #include "item.h" @@ -185,7 +188,7 @@ HAPI int menu_screen_get_booting_state(void) 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) { @@ -207,6 +210,7 @@ static bool _is_emulator_on(void) } + static menu_screen_error_e _create_canvas(char *name, char *title) { Ecore_X_Atom ATOM_WM_WINDOW_ROLE; @@ -234,6 +238,7 @@ static menu_screen_error_e _create_canvas(char *name, char *title) 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"); @@ -277,34 +282,16 @@ static int _dead_cb(int pid, void *data) -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(); @@ -319,42 +306,28 @@ static void _create_bg(void) 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); @@ -377,7 +350,8 @@ static void _destroy_bg() -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(); @@ -411,14 +385,15 @@ static Evas_Object *_create_conformant(Evas_Object *win) 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; @@ -433,75 +408,16 @@ static void _destroy_conformant(Evas_Object *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(); @@ -519,12 +435,8 @@ static bool _create_cb(void *data) } 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(); @@ -545,12 +457,8 @@ static void _terminate_cb(void *data) // 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); @@ -623,7 +531,7 @@ static void _app_control_cb(app_control_h service, void *data) -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; @@ -658,29 +566,29 @@ static void _language_changed_cb(void *data) } 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); @@ -689,41 +597,56 @@ static void _language_changed_cb(void *data) -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 diff --git a/src/mouse.c b/src/mouse.c index 1dec1db..0348f3a 100644 --- a/src/mouse.c +++ b/src/mouse.c @@ -1,7 +1,7 @@ /* * 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 * Junkyu Han diff --git a/src/page.c b/src/page.c index edb31e1..1791481 100644 --- a/src/page.c +++ b/src/page.c @@ -1,7 +1,7 @@ /* * 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 * Junkyu Han @@ -158,7 +158,6 @@ HAPI Evas_Object *page_create(Evas_Object *scroller, int idx, int rotate) _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); @@ -338,7 +337,7 @@ HAPI menu_screen_error_e page_unpack_item(Evas_Object *page, Evas_Object *item) } 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); @@ -381,7 +380,7 @@ HAPI Evas_Object *page_unpack_item_at(Evas_Object *page, int idx) 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) { diff --git a/src/page_scroller.c b/src/page_scroller.c index 178fd8e..f7c1413 100644 --- a/src/page_scroller.c +++ b/src/page_scroller.c @@ -1,7 +1,7 @@ /* * 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 * Junkyu Han @@ -501,44 +501,6 @@ HAPI Evas_Object *page_scroller_push_item_by_order(Evas_Object *scroller, app_in -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; @@ -722,10 +684,6 @@ HAPI Evas_Object *page_scroller_create(Evas_Object *tab, Evas_Object *index, pag 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"); @@ -807,9 +765,6 @@ HAPI void page_scroller_destroy(Evas_Object *scroller) evas_object_del(scroller); - if (vconf_ignore_key_changed("memory/menuscreen/mapbuf", _mapbuf_cb) < 0) { - _E("Failed to remove vconf %s", "memory/menuscreen/mapbuf"); - } } diff --git a/src/pkgmgr.c b/src/pkgmgr.c index 8ffe7ed..aaafe49 100644 --- a/src/pkgmgr.c +++ b/src/pkgmgr.c @@ -1,7 +1,7 @@ /* * 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 * Junkyu Han diff --git a/src/popup.c b/src/popup.c index 8e3c3dc..6a3b3c2 100644 --- a/src/popup.c +++ b/src/popup.c @@ -1,7 +1,7 @@ /* * 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 * Junkyu Han @@ -142,7 +142,6 @@ static void _uninstall_yes_cb(void *data, Evas_Object *obj, void *event_info) 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")); @@ -197,8 +196,6 @@ HAPI Evas_Object *popup_create_uninstall(Evas_Object *parent, Evas_Object *item) Evas_Object *btn2; char warning[BUFSZE]; - retv_if(!item, NULL); - popup_destroy_all(); popup = elm_popup_add(parent); diff --git a/src/util.c b/src/util.c index 2f518bc..4326c4f 100644 --- a/src/util.c +++ b/src/util.c @@ -1,7 +1,7 @@ /* * 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 * Junkyu Han -- 2.34.1