TizenRefApp-6542 Modify sorting of items in application-list and in grid on "Do not... 32/75832/2
authorOleksander Kostenko <o.kostenko@samsung.com>
Tue, 21 Jun 2016 16:00:22 +0000 (19:00 +0300)
committerAndrey Klimenko <and.klimenko@samsung.com>
Tue, 21 Jun 2016 16:37:57 +0000 (09:37 -0700)
Change-Id: I1f735a80ef8ccb585e904af65bc11e1e28977cc6
Signed-off-by: Oleksander Kostenko <o.kostenko@samsung.com>
inc/notification-setting-info.h
src/do-not-disturb-efl.c
src/excepted-apps-efl.c
src/notification-setting-info.c

index 0ea0b4542a4a4d3a703da8e495c5cd270fe90405..eaad7eae0e1aa2672d03361e22e00936c596e620 100755 (executable)
@@ -27,6 +27,8 @@ typedef struct _setting_info_t {
     Eina_List *not_excepted_list;
     Eina_List *excepted_list;
     Eina_List *all_apps_list;
+    Eina_List *first_allowed_list;
+    Eina_List *first_excepted_list;
 } setting_info_s;
 
 bool get_do_not_disturb();
@@ -38,6 +40,8 @@ bool set_excepted_apps(char *pkg_name, bool state);
 bool get_allow_all();
 void set_allow_all(bool state);
 Eina_List *get_all_apps_list();
+Eina_List *get_first_allowed_apps_list();
+Eina_List *get_first_excepted_apps_list();
 Eina_List *get_excepted_apps_list();
 Eina_List *get_not_excepted_apps_list();
 
@@ -46,6 +50,7 @@ void create_do_not_disturb_application_list();
 
 void remove_all_apps_list();
 void remove_excepted_apps_list();
+void remove_arranged_list();
 
 
 #endif /* __NOTIFICATION_SETTING_INFO_H__ */
index ea4040e501cba01d6412cb45bc2c318e0dde7e56..165caa837353a97c69552027b44935f1c4af079e 100644 (file)
@@ -40,7 +40,8 @@ void do_not_disturb_append_item_in_list(Evas_Object* genlist)
 //    TODO: append when API will be implemented, will be move to final release
 //    append_gl_start_option(genlist, "multiline", "set-schedule-multiline");
 //    append_gl_start_option(genlist, "multiline", "allowed-calls");
-    append_gl_full_item(genlist, do_not_disturb_allowed_apps_cont_cb, get_excepted_apps_list());
+    Eina_List *allowed_list = eina_list_merge(get_first_excepted_apps_list(), get_excepted_apps_list());
+    append_gl_full_item(genlist, do_not_disturb_allowed_apps_cont_cb, allowed_list);
 }
 
 Evas_Object *do_not_disturb_allowed_apps_cont_cb(Evas_Object* parent, void *data)
@@ -59,6 +60,7 @@ Evas_Object *do_not_disturb_allowed_apps_cont_cb(Evas_Object* parent, void *data
 
     retv_if(!data, full_layout);
     Eina_List *allowed_apps_list = (Eina_List *)data;
+
     Evas_Object *table = elm_table_add(full_layout);
     elm_table_padding_set(table, 0, APP_LAYOUT_PAD);
     int count = eina_list_count(allowed_apps_list);
index d9d71b289ebd53e6c8d5dd6e669c6ca604b672a3..7f12de160025d360b8b03ca5b2db8f29857bd035 100755 (executable)
@@ -39,6 +39,7 @@ static Evas_Object* _create_edit_exception_apps_list(ug_data *ugd)
     evas_object_smart_callback_add(genlist, "longpressed", gl_longpressed_cb, NULL);
     evas_object_smart_callback_add(genlist, "contracted", gl_contracted_cb, NULL);
 
+    append_gl_item_list(genlist, get_first_allowed_apps_list(), ITEM_STYLE_DEFAULT);
     append_gl_item_list(genlist, get_excepted_apps_list(), ITEM_STYLE_DEFAULT);
     append_gl_item_list(genlist, get_not_excepted_apps_list(), ITEM_STYLE_DEFAULT);
 
@@ -58,20 +59,33 @@ static void _done_button_cb(void *data, Evas_Object *obj, void *event_info)
     EVAS_OBJECT_DELIF(u_data->cancel_button);
     EVAS_OBJECT_DELIF(u_data->list_sub);
 
-    if (u_data->list_main) {
+    if(u_data->list_main)
+    {
+        list = get_first_allowed_apps_list();
+        while(list)
+        {
+            item_info_s *item = (item_info_s*) eina_list_data_get(list);
+            set_excepted_apps(item->appid, item->do_not_disturb_except);
+            list = eina_list_next(list);
+        }
+
         list = get_excepted_apps_list();
-        while (list) {
-            item_info_s *item = (item_info_s*)eina_list_data_get(list);
-            if (item->do_not_disturb_except == false) {
+        while(list)
+        {
+            item_info_s *item = (item_info_s*) eina_list_data_get(list);
+            if(item->do_not_disturb_except == false)
+            {
                 set_excepted_apps(item->appid, item->do_not_disturb_except);
             }
             list = eina_list_next(list);
         }
 
         list = get_not_excepted_apps_list();
-        while (list) {
-            item_info_s *item = (item_info_s*)eina_list_data_get(list);
-            if (item->do_not_disturb_except) {
+        while(list)
+        {
+            item_info_s *item = (item_info_s*) eina_list_data_get(list);
+            if(item->do_not_disturb_except)
+            {
                 set_excepted_apps(item->appid, item->do_not_disturb_except);
             }
             list = eina_list_next(list);
@@ -80,7 +94,6 @@ static void _done_button_cb(void *data, Evas_Object *obj, void *event_info)
         create_do_not_disturb_application_list();
         elm_genlist_clear(u_data->list_main);
         do_not_disturb_append_item_in_list(u_data->list_main);
-
     }
 }
 
index de03d6389cefa8e6a78a246b4b7f63d99afdbdc8..be8741f48c33099a08f5049f779b488ef714b625 100755 (executable)
 #include <notification.h>
 #include <notification_setting.h>
 #include <notification_setting_internal.h>
+#include "common-efl.h"
 
 setting_info_s *setting_info = NULL;
 
 #define VOICE_CALL_PACKAGE "org.tizen.call-ui"
+#define CALENDAR_PACKAGE "org.tizen.calendar"
+#define MESSAGES_PACKAGE "org.tizen.message"
+// TODO: we have no clock on device, when it will be add, we will need to change package id
+#define CLOCK_PACKAGE "org.tizen.clock"
 
 void create_app_notification_list()
 {
@@ -52,6 +57,7 @@ void create_app_notification_list()
             notification_setting_get_package_name(temp, &package_name);
             item_info->appid = package_name;
 
+
             notification_setting_get_allow_to_notify(temp, &allow_to_notify);
             item_info->allow_to_notify = allow_to_notify;
 
@@ -63,7 +69,10 @@ void create_app_notification_list()
 
             item_info->index = i;
 
-            if (item_info->name && strcmp(package_name, VOICE_CALL_PACKAGE) != 0) {
+            if (item_info->name && strcmp(package_name, VOICE_CALL_PACKAGE)
+                                && strcmp(package_name, CALENDAR_PACKAGE)
+                                && strcmp(package_name, CLOCK_PACKAGE))
+            {
                 setting_info->all_apps_list = eina_list_append(setting_info->all_apps_list, item_info);
             } else {
                 FREEIF(package_name);
@@ -112,13 +121,31 @@ void create_do_not_disturb_application_list()
             item_info->do_not_disturb_except = do_not_disturb_except;
 
             item_info->icon = get_app_icon(package_name);
-            item_info->name = get_app_name(package_name);
+
+            if(!strcmp(package_name, CALENDAR_PACKAGE))
+                item_info->name = strdup(APP_STRING("IDS_COM_BODY_CALENDAR_EVENTS"));
+            else if(!strcmp(package_name, CLOCK_PACKAGE))
+                item_info->name = strdup(APP_STRING("IDS_ST_BODY_ALARMS"));
+            else
+                item_info->name = get_app_name(package_name);
 
             item_info->index = i;
 
             if(item_info->name)
             {
-                if(allow_to_notify)
+                if((allow_to_notify && !strcmp(package_name, MESSAGES_PACKAGE)) || !strcmp(package_name, CLOCK_PACKAGE)
+                                                                                || !strcmp(package_name, CALENDAR_PACKAGE) )
+                {
+                    setting_info->first_allowed_list = eina_list_append(setting_info->first_allowed_list, item_info);
+                    if(do_not_disturb_except)
+                    {
+                        setting_info->first_excepted_list = eina_list_append(setting_info->first_excepted_list, item_info);
+                    }
+                }
+
+                if(allow_to_notify && strcmp(package_name, MESSAGES_PACKAGE)
+                                   && strcmp(package_name, CALENDAR_PACKAGE)
+                                   && strcmp(package_name, CLOCK_PACKAGE))
                 {
                     if(do_not_disturb_except)
                     {
@@ -138,6 +165,8 @@ void create_do_not_disturb_application_list()
         }
     }
 
+    setting_info->first_excepted_list = eina_list_sort(setting_info->first_excepted_list, eina_list_count(setting_info->first_excepted_list), apps_sort_cb);
+    setting_info->first_allowed_list = eina_list_sort(setting_info->first_allowed_list, eina_list_count(setting_info->first_allowed_list), apps_sort_cb);
     setting_info->excepted_list = eina_list_sort(setting_info->excepted_list, eina_list_count(setting_info->excepted_list), apps_sort_cb);
     setting_info->not_excepted_list = eina_list_sort(setting_info->not_excepted_list, eina_list_count(setting_info->not_excepted_list), apps_sort_cb);
 
@@ -156,6 +185,18 @@ Eina_List *get_all_apps_list()
     return setting_info->all_apps_list;
 }
 
+Eina_List *get_first_allowed_apps_list()
+{
+    NOTISET_TRACE_BEGIN;
+    return setting_info->first_allowed_list;
+}
+
+Eina_List *get_first_excepted_apps_list()
+{
+    NOTISET_TRACE_BEGIN;
+    return setting_info->first_excepted_list;
+}
+
 bool get_allow_all()
 {
     item_info_s *item = NULL;
@@ -328,7 +369,7 @@ static void _remove_apps_list(Eina_List* input_list) {
 
     if(input_list) {
         EINA_LIST_FREE(input_list, item_info) {
-            //NOTISET_DBG("remove %s", item_info->name);
+//            NOTISET_DBG("remove %s", item_info->name);
             FREEIF(item_info->appid);
             FREEIF(item_info->name);
             FREEIF(item_info->icon);
@@ -344,11 +385,12 @@ void remove_all_apps_list() {
         _remove_apps_list(setting_info->all_apps_list);
     }
 }
-void remove_excepted_apps_list(){
+void remove_excepted_apps_list()
+{
     NOTISET_TRACE_BEGIN;
-    if(setting_info) {
-        _remove_apps_list(setting_info->excepted_list);
+    if(setting_info)
+    {
+        _remove_apps_list(setting_info->first_allowed_list);
         _remove_apps_list(setting_info->not_excepted_list);
     }
-
 }