Sort app list item
authorEunmi Son <eunmi.son@samsung.com>
Tue, 9 Apr 2013 11:31:31 +0000 (20:31 +0900)
committerEunmi Son <eunmi.son@samsung.com>
Tue, 9 Apr 2013 11:41:58 +0000 (20:41 +0900)
Change-Id: I5da60cfddd6312e7005ed67dd562fcce013d3b3c

CMakeLists.txt
packaging/ug-setting-manage-applications-efl.spec
ug/src/mgr-app-view-app-list.c

index 8ed9421..93145cf 100755 (executable)
@@ -1,13 +1,11 @@
 CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
 
-SET(TYPE ${TYPE})
-
 PROJECT(ug-setting-manage-applications-efl C)
 
 SET(PREFIX ${CMAKE_INSTALL_PREFIX})
 SET(PKGNAME "lib${PROJECT_NAME}")
-SET(LIBDIR "${PREFIX}/lib")
 SET(VERSION 0.1.0)
+SET(LIBDIR "${PREFIX}/lib")
 SET(RESDIR "${PREFIX}/res")
 SET(DATADIR "${RESDIR}/etc")
 SET(LOCALEDIR "${RESDIR}/locale")
@@ -17,9 +15,6 @@ SET(IMGDIR "${RESDIR}/images")
 
 ADD_DEFINITIONS("-DPREFIX=\"${PREFIX}\"")
 ADD_DEFINITIONS("-DPKGNAME=\"${PKGNAME}\"")
-ADD_DEFINITIONS("-DPACKAGE_NAME=\"${PKGNAME}\"")
-ADD_DEFINITIONS("-DEDJDIR=\"${EDJDIR}\"")
-ADD_DEFINITIONS("-DPREFIX=\"${PREFIX}\"")
 ADD_DEFINITIONS("-DRESDIR=\"${RESDIR}\"")
 ADD_DEFINITIONS("-DDATADIR=\"${DATADIR}\"")
 ADD_DEFINITIONS("-DLOCALEDIR=\"${LOCALEDIR}\"")
index bd152b8..e9e9d98 100644 (file)
@@ -3,7 +3,7 @@
 
 Name:          ug-setting-manage-applications-efl
 Summary:       Manage Application package
-Version:       0.0.68
+Version:       0.0.69
 Release:       0
 Group:         Applications/System
 License:       Flora Software License
@@ -41,7 +41,7 @@ CXXFLAGS+=" -fvisibility=hidden"; export CXXFLAGS
 FFLAGS+=" -fvisibility=hidden"; export FFLAGS
 LDFLAGS+=" -Wl,--hash-style=both -Wl,--rpath=%{_libdir} -Wl,--as-needed -Wl,-zdefs"; export LDFLAGS
 
-cmake .. -DCMAKE_INSTALL_PREFIX="%{_ugdir}" -DCMAKE_BUILD_TYPE="Release" -DPKGNAME="ug-setting-manage-applications-efl" -DTYPE=""
+cmake .. -DCMAKE_INSTALL_PREFIX="%{_ugdir}" -DCMAKE_BUILD_TYPE="Release" -DPKGNAME="ug-setting-manage-applications-efl"
 
 make
 
index 14377a9..838eb65 100755 (executable)
@@ -218,6 +218,35 @@ static Evas_Object *_gl_icon_get(void *data, Evas_Object *obj, const char *part)
        return icon;
 }
 
+static gint _app_list_qsort_cb(gconstpointer a, gconstpointer b)
+{
+       MGR_APP_BEGIN();
+
+       retv_if(NULL == a, 0);
+       retv_if(NULL == b, 0);
+
+       mgr_app_app_info_t *app_info1 = (mgr_app_app_info_t *)a;
+       mgr_app_app_info_t *app_info2 = (mgr_app_app_info_t *)b;
+       char *pkg_label1 = NULL;
+       char *pkg_label2 = NULL;
+       int len = 0;
+       int r = 0;
+
+       pkg_label1 = app_info1->pkg_label;
+       pkg_label2 = app_info2->pkg_label;
+       retv_if(NULL == pkg_label1, 0);
+       retv_if(NULL == pkg_label2, 0);
+
+       MGR_APP_DEBUG("pkg_label1: %s", pkg_label1);
+       MGR_APP_DEBUG("pkg_label2: %s", pkg_label2);
+       
+       len = (strlen(pkg_label1) >= strlen(pkg_label2)) ? strlen(pkg_label1) : strlen(pkg_label2);
+       r = strncasecmp(pkg_label1, pkg_label2, len);
+
+       MGR_APP_END();
+       return r;
+}
+
 static void _get_appinfo_from_pkgmgr(const pkgmgrinfo_pkginfo_h handler, mgr_app_app_info_t *app_info)
 {
        MGR_APP_BEGIN();
@@ -339,6 +368,10 @@ static void mgrapp_view_list_update_by_install(const char *pkg_type, const char
        _get_appinfo_from_pkgmgr(pkg_handle, app_info);
        
        item = elm_genlist_item_append(_genlist, itc, (void*)app_info, NULL, ELM_GENLIST_ITEM_NONE, _gl_sel, (void*)ugd);
+       if (item == NULL) {
+               MGR_APP_DEBUG_ERR("It failed to append new item in gentlist");
+       }
+
        _installed_cnt++;
 
 end:
@@ -550,6 +583,9 @@ static void _create_genlist_app_list(seg_type_t seg, void *data)
                }
                
                item = elm_genlist_item_append(genlist, itc, (void*)app_info, NULL, ELM_GENLIST_ITEM_NONE, _gl_sel, (void*)ugd);
+               if (item == NULL) {
+                       MGR_APP_DEBUG_ERR("It failed to append new item in gentlist");
+               }
        }
 
        /* footer border */
@@ -652,6 +688,9 @@ void mgrapp_view_list_create(void *data)
                MGR_APP_DEBUG_ERR("pkgmgr_get_pkg_list failed. %d", r);
        }
 
+       /* sorting by pkg_label */
+       _installed_list = g_list_sort(_installed_list, _app_list_qsort_cb);
+
        /* create toolbar */
        tabbar = elm_toolbar_add(ugd->navi_bar);
        ret_if(NULL == tabbar);