3 * Copyright (c) 2012 Samsung Electronics Co., Ltd.
5 * Licensed under the Apache License, Version 2.0 (the License);
6 * you may not use this file except in compliance with the License.
7 * You may obtain a copy of the License at
9 * http://www.apache.org/licenses/LICENSE-2.0
11 * Unless required by applicable law or agreed to in writing, software
12 * distributed under the License is distributed on an "AS IS" BASIS,
13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 * See the License for the specific language governing permissions and
15 * limitations under the License.
22 #include <vconf-keys.h>
25 #include <sync_agent.h>
26 #include <plugin/plugin_slp_sysnoti_alarm.h>
29 #include "framework/platform-event-handler/dm_platform_event_handler.h"
30 #include "framework/platform-event-handler/dm_platform_event_handler_internal.h"
31 #include "framework/task/oma_dm_task_register.h"
32 #include "framework/task/oma_dm_task_request.h"
33 #include "common/dm_common.h"
34 #include "common/util/util.h"
35 #include "mo-handler/dm_mo_common.h"
36 #include "mo-handler/dm_mo_handler.h"
37 #include "dm-engine/bootstrap/factory_bootstrap.h"
38 #include "dm-engine/fumo/fumo_account.h"
39 #include "dm-engine/lawmo/lawmo_account.h"
40 #include "dm-engine/cp/dm_cp_security.h"
41 #include "ipc_common.h"
43 #ifndef OMADM_AGENT_LOG
45 #define LOG_TAG "DM_COMMON"
50 static DM_ERROR _create_engine_status_db();
52 char *get_new_uri(char *old_object_uri)
56 char *new_object_uri = NULL;
57 retvm_if(old_object_uri == NULL, NULL, "old_object_uri is NULL!!");
58 _DEBUG_INFO(" old_object_uri = %s ", old_object_uri);
59 new_object_uri = g_strdup_printf("%s", old_object_uri);
62 return new_object_uri;
65 static DM_ERROR _create_engine_status_db()
71 ret = Alloc_DB_Handler_Mgr();
72 _DEBUG_TRACE(" Alloc DB Handler Mgr : %d\n", ret);
75 _DEBUG_TRACE(" Done Open DB : %d\n", ret);
77 ret = DB_Create_Table();
78 _DEBUG_TRACE(" Done Create_Table : %d\n", ret);
91 ret = _create_engine_status_db();
92 _DEBUG_INFO(" Done Create_engine_status_db : %d\n", ret);
94 ret = task_register();
99 ret = register_scheduler();
101 _DEBUG_INFO("fail register alarm : %d ", ret);
103 _DEBUG_INFO("success register alarm : %d ", ret);
106 ret = register_network();
108 _DEBUG_INFO("fail register network : %d ", ret);
110 _DEBUG_INFO("success register network : %d ", ret);
113 ret = register_wap_push();
115 _DEBUG_INFO("fail register wap push : %d ", ret);
117 _DEBUG_INFO("success register wap push : %d ", ret);
120 ret = register_fumo_ip_push();
122 _DEBUG_INFO("fail register fumo ip push : %d ", ret);
124 _DEBUG_INFO("success register fumo ip push : %d ", ret);
127 * will integrate notification UI */
128 /*ret = register_fota_account();
131 _DEBUG_INFO("fail register fota account : %d ", ret);
133 _DEBUG_INFO("success register fota account : %d ", ret);
137 ret = register_lawmo_samsung_account();
139 _DEBUG_INFO("fail register fmm server : %d ", ret);
141 _DEBUG_INFO("success register fmm server : %d ", ret);
144 ret = register_telephony();
146 _DEBUG_INFO("fail register telephony : %d ", ret);
148 _DEBUG_INFO("success register telephony : %d ", ret);
151 init_default_fumo_config();
157 _DEBUG_INFO(" end error : %d \n", ret);
165 DM_ERROR ret = DM_OK;
175 DM_ERROR ret = DM_OK;
176 _DEBUG_INFO("--------------------------------------------------------------------------------------------");
177 /* ddf mo db reset */
182 /* engine status db reset */
183 //ret = DB_Delete_Table();
184 ret = DB_Reset_Table();
189 sync_agent_empty_agent_default_table(SYNC_AGENT_DA_TABLE_NAME_CONFIG);
190 //sync_agent_empty_all_agent_table()
192 /*fumo, lawmo data in alarm db */
193 _DEBUG_INFO("--------------------------------------------------------------------------------------------");
200 _DEBUG_INFO(" end error : %d \n", ret);
204 DM_ERROR auto_operate_service_engine()
208 DM_ERROR ret = DM_OK;
209 engine_status *status = NULL;
211 if (IsExist_Engine_id(FUMO_SERVICE_ENGINE) != 0) {
212 printf("engine id VALUE : %d ", FUMO_SERVICE_ENGINE);
213 _DEBUG_INFO("engine id VALUE : %d ", FUMO_SERVICE_ENGINE);
215 ret = Get_Engine_Status(FUMO_SERVICE_ENGINE, &status);
216 if (ret != DM_OK || status == NULL)
219 if (status->engine_status == 0) {
220 ret = Delete_Engine_Status(FUMO_SERVICE_ENGINE);
224 ret = fumo_serviceEngine_task_request();
225 _DEBUG_INFO("fumo server engine task request : %d", ret);
227 if (status != NULL) {
228 Free_Memory_Engine_Status(&status, 1);
232 if (IsExist_Engine_id(LAWMO_SERVICE_ENGINE) != 0) {
233 printf("engine id VALUE : %d ", LAWMO_SERVICE_ENGINE);
234 _DEBUG_INFO("engine id VALUE : %d ", LAWMO_SERVICE_ENGINE);
236 ret = Get_Engine_Status(LAWMO_SERVICE_ENGINE, &status);
237 if (ret != DM_OK || status == NULL)
240 if (status->engine_status == 0) {
241 ret = Delete_Engine_Status(LAWMO_SERVICE_ENGINE);
245 ret = lawmo_serviceEngine_task_request();
248 Free_Memory_Engine_Status(&status, 1);
256 Free_Memory_Engine_Status(&status, 1);
262 int register_wap_push()
269 for (i = 0; i < MAX_TRY; ++i) {
270 sync_agent_pm_return_e err_wappush = sync_agnet_register_user_callback(6, NULL, 2, dm_wap_push_incomming_callback, dm_wap_push_operation_callback);
272 if (err_wappush != SYNC_AGENT_PM_SUCCESS) {
273 _DEBUG_INFO("failed set_WAP-PUSH_Callback()");
277 _DEBUG_INFO("WAP-PUSH SUCCESS");
286 int register_fumo_ip_push()
293 for (i = 0; i < MAX_TRY; ++i) {
294 sync_agent_pm_return_e err_ippush = sync_agnet_register_user_callback(2, NULL, 1, dm_ip_push_callback);
295 if (err_ippush != SYNC_AGENT_PM_SUCCESS) {
296 // if (err_ippush == PMCI_CONNECTION_FAIL) {
297 // _DEBUG_INFO("failed set_IP-PUSH_Callback() : connection failed !!");
299 // } else if (err_ippush == PMCI_REGISTRATION_FAIL) {
300 // _DEBUG_INFO("failed set_IP-PUSH_Callback() : registration failed !!");
302 _DEBUG_INFO("failed set_IP-PUSH_Callback()");
308 _DEBUG_INFO("IP-PUSH SUCCESS");
318 int register_lawmo_samsung_account()
325 for (i = 0; i < MAX_TRY; ++i) {
326 sync_agent_pm_return_e err_samsung_account = sync_agnet_register_user_callback(4, NULL, 2, register_lawmo_account, deregister_lawmo_account);
327 if (err_samsung_account != SYNC_AGENT_PM_SUCCESS) {
328 // if (err_samsung_account == PMCI_CONNECTION_FAIL) {
329 // _DEBUG_INFO("failed set_SAMSUNG_ACCOUNT_Callback() : connection failed !!");
331 // } else if (err_samsung_account == PMCI_REGISTRATION_FAIL) {
332 // _DEBUG_INFO("failed set_SAMSUNG_ACCOUNT_Callback() : registration failed !!");
334 _DEBUG_INFO("failed set_SAMSUNG_ACCOUNT_Callback()");
340 _DEBUG_INFO("SAMSUNG_ACCOUNT SUCCESS");
350 int register_telephony()
357 for (i = 0; i < MAX_TRY; ++i) {
358 sync_agent_pm_return_e err_telephony = sync_agnet_register_user_callback(5, NULL, 2, dm_telephony_incomming_callback, dm_telephony_end_callback);
359 if (err_telephony != SYNC_AGENT_PM_SUCCESS) {
360 _DEBUG_INFO("failed set_TELEPHONY_Callback()");
365 _DEBUG_INFO("TELEPHONY_SUCCESS");
375 int register_network()
382 for (i = 0; i < MAX_TRY; ++i) {
383 sync_agent_pm_return_e err_network = sync_agnet_register_user_callback(3, NULL, 2, network_on_callback, network_off_callback, network_change_callback);
384 if (err_network != SYNC_AGENT_PM_SUCCESS) {
385 _DEBUG_INFO("failed set_network_Callback()");
389 _DEBUG_INFO("NETWORK_SUCCESS");
399 int register_scheduler()
406 for (i = 0; i < MAX_TRY; ++i) {
407 sync_agent_pm_return_e err_alarm = sync_agnet_register_user_callback(1, NULL, 1, alarm_callback);
408 if (err_alarm != SYNC_AGENT_PM_SUCCESS) {
409 _DEBUG_INFO("Fail PMCI_Init_Specific_Type\n");
413 _DEBUG_INFO("Success PMCI_Init_Specific_Type\n");
423 void network_cancel_callback(void *user_data)
427 int *net_session_id = (int *)(user_data);
428 sync_agent_na_result_e error;
429 error = sync_agent_cancel_msg(1, (*net_session_id));
430 _DEBUG_INFO("naci cancel msg status : %d\n", error);
435 void network_connection_delay()
439 int network_status = 0;
440 int interval = 1; //(seconds)
443 char file_name[256] = { 0, };
446 FILE *send_fp = NULL;
447 _DEBUG_INFO("start");
450 network_status = sync_agent_check_network_status(interval, retry_cnt);
452 net_status = g_strdup_printf("%d", network_status);
453 snprintf(file_name, 256, "%s", "/opt/data/network_connect_status.txt");
454 send_fp = fopen(file_name, "w");
455 if (send_fp != NULL) {
456 snd_size = fwrite(net_status, strlen(net_status), 1, send_fp);
459 _DEBUG_INFO("fopen - network_connect_status - fail");
462 if (network_status != 1) {
463 _DEBUG_INFO("------------------------------------------NETOWKR CONNECT FAIL------------------------------------------");
469 DM_ERROR set_account_registration_alarm(char *alarm_str, CONFIG_TYPE alarm_type)
473 DM_ERROR ret = DM_OK;
474 sync_agent_da_return_e result = SYNC_AGENT_DA_SUCCESS;
479 result = sync_agent_get_config_list(alarm_type, &list);
480 if (result != SYNC_AGENT_DA_SUCCESS) {
482 return COMMON_ERR_FW_CONFIG;
485 count = g_list_length(list);
487 _DEBUG_INFO("alarm count: %d\n", count);
488 if (count > 0 && list != NULL) {
492 ret = add_alarm_item(INTERVAL_1DAY, alarm_str, alarm_type);
505 void delete_account_registration_alarm(char *alarm_str, CONFIG_TYPE alarm_type)
509 delete_alarm_item(alarm_str, alarm_type);
514 DM_ERROR add_alarm_item(Reminder_Interval interval, char *alarm_type, CONFIG_TYPE conf_type)
518 DM_ERROR ret = DM_OK;
519 /*int week[] = {DAY_SUN, DAY_MON, DAY_TUE, DAY_WED, DAY_THU, DAY_FRI, DAY_SAT}; */
522 struct tm *struct_time;
524 struct_time = localtime(¤t_time);
526 pmci_alarm_s *alarm_info = (pmci_alarm_s *) calloc(1, sizeof(pmci_alarm_s));
527 if (alarm_info == NULL) {
528 _DEBUG_INFO("alloc fail");
530 return COMMON_ERR_ALLOC;
533 alarm_info->start_alarm_time = g_strdup_printf("%02d-%02d-%02dT%02d:%02d:%02dZ", struct_time->tm_year + 1900, struct_time->tm_mon + 1, struct_time->tm_mday, struct_time->tm_hour, struct_time->tm_min, struct_time->tm_sec);
536 alarm_info->is_disposable = 0;
539 //alarm_info->is_disposable = 1;
546 alarm_info->repeat_type = REPEAT ;
547 //alarm_info->repeat_value = ((1*60)*60);
548 alarm_info->repeat_value = ((1*60)*1);
555 alarm_info->repeat_type = REPEAT;
556 alarm_info->repeat_value = ((1 * 60) * 60);
557 //alarm_info->repeat_value = ((1*60)*1);
560 case INTERVAL_3HOURS:
563 alarm_info->repeat_type = REPEAT;
564 alarm_info->repeat_value = ((3 * 60) * 60);
567 case INTERVAL_6HOURS:
570 alarm_info->repeat_type = REPEAT;
571 alarm_info->repeat_value = ((6 * 60) * 60);
575 case INTERVAL_12HOURS:
578 alarm_info->repeat_type = REPEAT;
579 alarm_info->repeat_value = ((12 * 60) * 60);
586 alarm_info->repeat_type = REPEAT;
587 alarm_info->repeat_value = ((24 * 60) * 60);
594 alarm_info->repeat_type = REPEAT_WEEKLY ;
595 alarm_info->repeat_value = week[struct_time->tm_wday];
599 case INTERVAL_1MONTH:
601 alarm_info->repeat_type = REPEAT_MONTHLY;
602 alarm_info->repeat_value = 0;
604 case INTERVAL_CANCEL:
611 _DEBUG_INFO("######### Alarm Info #####################\n");
612 _DEBUG_INFO("time = %s\n", alarm_info->start_alarm_time);
613 _DEBUG_INFO("repeat_mode = %d, repeat_value = %d\n", alarm_info->repeat_type, alarm_info->repeat_value);
614 _DEBUG_INFO("is_disposable = %d\n", alarm_info->is_disposable);
616 /* if(conf_type == FUMO_INTERVAL_TYPE)
617 delete_alarm_item(FUMO_INTERVAL, FUMO_INTERVAL_TYPE);*/
621 sync_agent_pm_return_e err = SYNC_AGENT_PM_SUCCESS;
623 /*add alarm service */
624 err = sync_agent_add_service_data(1, alarm_info, &alarm_id);
625 if (err != SYNC_AGENT_PM_SUCCESS) {
626 _DEBUG_INFO("Fail PMCI_Add_Item_To_Specific_Type\n");
627 ret = DM_ERR_FUMO_INTERNAL_SCHEDULER_ERROR;
629 /*add framework config db */
630 alarm_ret = set_alarm_config_int(conf_type, alarm_type, alarm_id, alarm_type);
631 if (alarm_ret == 0) {
632 ret = DM_ERR_FUMO_INTERNAL_SCHEDULER_ERROR;
636 if (alarm_info != NULL) {
637 str_free(&(alarm_info->start_alarm_time));
647 if (alarm_info != NULL) {
648 str_free(&(alarm_info->start_alarm_time));
654 _DEBUG_INFO("end error : %d ", ret);
658 void delete_alarm_item(char *alarm_type, CONFIG_TYPE conf_type)
665 sync_agent_da_return_e result = SYNC_AGENT_DA_SUCCESS;
666 sync_agent_pm_return_e pm_result = SYNC_AGENT_PM_SUCCESS;
668 sync_agent_da_config_s *config = NULL;
672 result = sync_agent_get_config_list(conf_type, &list);
673 count = g_list_length(list);
675 _DEBUG_INFO("alarm count: %d\n", count);
676 if (count > 0 && list != 0) {
677 config = (sync_agent_da_config_s *) g_list_nth_data(list, 0);
678 _DEBUG_INFO("------------------------------------------alarm id : %s----------------------------------------------\n", config->value);
679 ret = chartoint(config->value, &before_alarm_id);
681 pm_result = sync_agent_remove_service_data(1, before_alarm_id);
682 _DEBUG_INFO("delete alarm %d", result);
684 if (pm_result == SYNC_AGENT_PM_SUCCESS) {
685 result = sync_agent_delete_config(conf_type, alarm_type);
686 _DEBUG_INFO("delete alarm config %d", result);
689 _DEBUG_INFO("fail get alarm id");
693 sync_agent_free_config_list(list);
698 SERVICE_SERVER_TYPE get_service_engine_type(const char *server_id)
702 retvm_if(server_id == NULL, NO_ENGINE_TYPE, "server_id is NULL!!");
704 _DEBUG_INFO("get- service engine type by server id : %s", server_id);
706 return get_engine_type_by_serverid(server_id);
709 DM_ERROR get_server_info(Event_Contents * pEvent_data, char **server_id, char **session_id, int *session_type)
713 DM_ERROR ret = DM_OK;
715 retvm_if((pEvent_data) == NULL, COMMON_ERR_INTERNAL_NOT_DEFINED, "pEvent_data is NULL!!");
716 retvm_if((pEvent_data->server_id) == NULL, COMMON_ERR_INTERNAL_NOT_DEFINED, "server_id is NULL!!");
718 (*server_id) = strdup(pEvent_data->server_id);
719 _DEBUG_INFO(" server id : %s\n", *server_id);
721 if (pEvent_data->session_id != NULL) {
722 (*session_id) = strdup(pEvent_data->session_id);
723 _DEBUG_INFO(" session_id : %s\n", *session_id);
726 (*session_type) = pEvent_data->type;
727 _DEBUG_INFO("session type : %d\n", *session_type);
733 void get_service_engine_id(ENGINE_ID * service_engine_id, char *ui_mode)
740 if (!strcmp(ui_mode, OMADM_FUMO_UI_TYPE) || !strcmp(ui_mode, OMADM_FUMO_NOTI_UI_TYPE)) {
741 *service_engine_id = FUMO_SERVICE_ENGINE;
742 _DEBUG_INFO("fumo service");
744 _DEBUG_INFO("other service");
750 DM_ERROR fumo_service_start(Event_Contents * pEvent_data)
754 DM_ERROR ret = DM_OK;
756 retvm_if((pEvent_data) == NULL, COMMON_ERR_INTERNAL_NOT_DEFINED, "pEvent_data is NULL!!");
758 switch (pEvent_data->noti_type) {
759 case NOTI_TYPE_NOT_SPECIFIED:
760 _DEBUG_INFO("NOTI_TYPE_NOT_SPECIFIED");
761 //temp version for gcf test
762 pEvent_data->ui_mode = strdup(OMADM_FUMO_BACKGROUND_UI_TYPE);
763 pEvent_data->noti_type = NOTI_TYPE_BACKGRUOUND;
764 ret = dm_fumo_common_task_request(pEvent_data);
765 _DEBUG_INFO("NOTI NOTI_TYPE_BACKGRUOUND : %d", ret);
770 case NOTI_TYPE_BACKGRUOUND:
771 pEvent_data->ui_mode = strdup(OMADM_FUMO_BACKGROUND_UI_TYPE);
772 ret = dm_fumo_common_task_request(pEvent_data);
773 _DEBUG_INFO("NOTI NOTI_TYPE_BACKGRUOUND : %d", ret);
778 case NOTI_TYPE_INFOMATIVE:
779 pEvent_data->ui_mode = strdup(OMADM_FUMO_BACKGROUND_UI_TYPE);
780 ret = dm_fumo_common_task_request(pEvent_data);
781 _DEBUG_INFO("NOTI NOTI_TYPE_INFOMATIVE : %d", ret);
786 case NOTI_TYPE_USERINTERACTION:
787 pEvent_data->ui_mode = strdup(OMADM_FUMO_NOTI_UI_TYPE);
788 ret = dm_fumo_ui_task_request(pEvent_data);
789 _DEBUG_INFO("NOTI NOTI_TYPE_USERINTERACTION : %d ", ret);
801 event_data_free((void *)pEvent_data);
807 DM_ERROR get_fumo_ui_mode(char **ui_mode)
811 DM_ERROR ret = DM_OK;
813 engine_status *status = NULL;
814 ret = Get_Engine_Status(FUMO_SERVICE_ENGINE, &status);
820 if (status != NULL) {
822 if (status->ui_mode != NULL) {
823 (*ui_mode) = strdup(status->ui_mode);
825 _DEBUG_INFO("==================Fumo ui : %s==================\n", *ui_mode);
827 _DEBUG_INFO("ui mode null");
830 Free_Memory_Engine_Status(&status, 1);
833 _DEBUG_INFO("status is null");
842 int check_existed_fumo_reminder_interval()
847 sync_agent_da_return_e result = SYNC_AGENT_DA_SUCCESS;
848 result = sync_agent_is_exist_config(FUMO_INTERVAL_TYPE, FUMO_INTERVAL, &exist);
849 _DEBUG_INFO("agent is exist result : %d", result);
855 int init_default_fumo_config()
860 return set_config_int(FUMO_WIFI_ONLY_TYPE, FUMO_WIFI_ONLY_CONFIG, 0, FUMO, 1);
863 int set_config_int(CONFIG_TYPE config_type, char *key, int value, char *accessName, int isFirst)
867 sync_agent_da_return_e result;
868 sync_agent_da_config_s config;
871 config.access_name = accessName;
872 config.config_id = config_type;
874 config.value = g_strdup_printf("%d", value);
877 result = sync_agent_is_exist_config(config_type, key, &exist);
878 if (result != SYNC_AGENT_DA_SUCCESS) {
879 _DEBUG_INFO("exist config fail : %d", result);
882 if (exist == 0 && isFirst == 1) {
883 _DEBUG_INFO("default add config : %s\n", key);
884 result = sync_agent_add_config(&config);
885 if (result != SYNC_AGENT_DA_SUCCESS) {
886 _DEBUG_INFO("fail add : %d", result);
889 _DEBUG_INFO("Success add config : %s, : %d\n", key, value);
892 result = sync_agent_update_config(&config);
894 if (result != SYNC_AGENT_DA_SUCCESS) {
895 _DEBUG_INFO("fail update : %d", result);
898 _DEBUG_INFO("Success update config : %s, : %d\n", key, value);
903 str_free(&(config.value));
909 int get_config_int(CONFIG_TYPE config_id, char *key)
913 sync_agent_da_return_e result = SYNC_AGENT_DA_SUCCESS;
914 sync_agent_da_config_s *config = NULL;
918 result = sync_agent_create_config(&config);
919 if (result != SYNC_AGENT_DA_SUCCESS) {
924 result = sync_agent_get_config(config_id, key, &config);
925 _DEBUG_INFO("---------------------------result : %d-------------------------\n", result);
927 _DEBUG_INFO("Success get config value");
929 ret = chartoint(config->value, &value);
930 _DEBUG_INFO("result : %d , key : %s value : %d\n", result, key, value);
933 _DEBUG_INFO("fail get config value");
937 _DEBUG_INFO("success get config value");
941 _DEBUG_INFO("fail get config value");
946 sync_agent_free_config(config);
951 int set_alarm_config_int(CONFIG_TYPE config_type, char *key, int value, char *accessName)
956 sync_agent_da_return_e result;
957 sync_agent_da_config_s config;
960 config.access_name = accessName;
961 config.config_id = config_type;
963 config.value = g_strdup_printf("%d", value);
966 result = sync_agent_is_exist_config(config_type, key, &exist);
967 if (result != SYNC_AGENT_DA_SUCCESS)
971 _DEBUG_INFO("default add config : %s\n", key);
972 result = sync_agent_add_config(&config);
974 if (result != SYNC_AGENT_DA_SUCCESS)
977 result = sync_agent_update_config(&config);
978 _DEBUG_INFO("update alarm config db ");
982 str_free(&(config.value));
983 _DEBUG_INFO("end : %d", ret);
988 int get_wifi_only_config()
993 return get_config_int(FUMO_WIFI_ONLY_TYPE, FUMO_WIFI_ONLY_CONFIG);
996 int set_wifi_only_config(int value)
1001 return set_config_int(FUMO_WIFI_ONLY_TYPE, FUMO_WIFI_ONLY_CONFIG, value, FUMO, 0);
1004 DM_ERROR get_battery_state(char **battery_level)
1008 DM_ERROR ret = DM_OK;
1009 sync_agent_dev_return_e err = SYNC_AGENT_DEV_RETURN_SUCCESS;
1011 err = sync_agent_get_devinfo(2, "Battery", battery_level);
1012 if (err != SYNC_AGENT_DEV_RETURN_SUCCESS) {
1015 if ((*battery_level) == NULL) {
1019 _DEBUG_INFO("\n========battery ======== %s\n", *battery_level);
1024 return DM_GET_BATTERY_ERROR;
1027 DM_ERROR get_telephony_state(int *now_calling)
1031 DM_ERROR ret = DM_OK;
1034 * vconf( framework )
1037 if (vconf_get_int(VCONFKEY_CALL_STATE, &tel_value) != 0)
1040 switch (tel_value) {
1041 case VCONFKEY_CALL_VOICE_CONNECTING:
1042 case VCONFKEY_CALL_VOICE_ACTIVE:
1043 case VCONFKEY_CALL_VIDEO_CONNECTING:
1044 case VCONFKEY_CALL_VIDEO_ACTIVE:
1047 case VCONFKEY_CALL_OFF:
1058 return DM_TELEPHONY_ERROR;
1062 void network_state_callback()
1067 NETWORK_NONE, initial network type
1068 NETWORK_3G_ON, network UMTS on
1069 NETWORK_3G_OFF, network UMTS off
1070 NETWORK_WIFI_ON, network WIFI on
1071 NETWORK_WIFI_ON_NOT_CONNECTED, network WIFI on but not connected
1072 NETWORK_WIFI_OFF, network WIFI off
1073 NETWORK_WIFI_3G_ON, network UMTS and WIFI on
1078 /*sync_agent_na_result_e err;
1080 err = NACI_Get_Network_Type(&net_type);
1081 if(err != SYNC_AGENT_NA_SUCCESS)
1093 * deregister vconf callback
1110 DM_ERROR existed_sd_card_memory(int *existed_sd)
1114 DM_ERROR ret = DM_OK;
1116 * vconf( framework )
1117 * //only one sd card
1122 err = get_mmc_state(&mmc_value);
1127 if (mmc_value == 1) {
1130 /*for make empty folder */
1131 char *downlaod_folder = NULL;
1132 char *save_folder = NULL;
1133 ret = get_fota_download_dir(MEMORY_SD_CARD, &downlaod_folder);
1137 ret = get_fota_save_dir(MEMORY_SD_CARD, &save_folder);
1142 str_free(&downlaod_folder);
1143 str_free(&save_folder);
1154 return DM_SD_CARD_ERROR;
1157 void get_roaming_state(int *roaming_state)
1161 int roaming_config = 0;
1163 if (vconf_get_int(VCONFKEY_TELEPHONY_SVC_ROAM, roaming_state) != 0) {
1164 *roaming_state = -1;
1165 _DEBUG_INFO("end , roaming state : %d", *roaming_state);
1167 if (*roaming_state == 0) {
1168 /*not roaming svc area */
1169 _DEBUG_INFO("end , roaming state : %d", *roaming_state);
1173 /*roaming svc area */
1174 if (vconf_get_bool(VCONFKEY_SETAPPL_STATE_DATA_ROAMING_BOOL, &roaming_config) != 0) {
1175 *roaming_state = -1;
1176 _DEBUG_INFO("end , roaming state : %d", *roaming_state);
1178 if (roaming_config == 1) {
1180 * do service roaming service
1183 _DEBUG_INFO("end , roaming state : %d", *roaming_state);
1186 /*don not service at roaming svc */
1187 *roaming_state = -1;
1188 _DEBUG_INFO("end , roaming state : %d", *roaming_state);
1196 void get_call_sate(int *call_state)
1203 if (vconf_get_int(VCONFKEY_TELEPHONY_CALL_STATE, call_state) != 0) {
1205 _DEBUG_INFO("end, call state : %d", *call_state);
1209 if (*call_state == 0) {
1210 _DEBUG_INFO("end, call state : %d", *call_state);
1215 _DEBUG_INFO("end, call state : %d", *call_state);
1222 int get_mmc_state(int *mmc_state)
1226 if (vconf_get_int(VCONFKEY_SYSMAN_MMC_STATUS, mmc_state) != 0)
1233 _DEBUG_INFO("end error");
1237 DM_ERROR compare_memory_space(char *memory_type, long double file_size)
1242 long double sizeFree;
1243 long double sizeTotal;
1245 retvm_if((memory_type) == NULL, COMMON_ERR_IS_NULL, "memory_type is NULL!!");
1247 err = sync_agent_get_fs_mem_size(memory_type, &sizeFree, &sizeTotal);
1250 return DM_MEMORY_ERROR;
1253 _DEBUG_INFO("memory free size : %f, total size : %f ", sizeFree, sizeTotal);
1254 if (file_size > sizeFree) {
1256 return DM_OVER_MEMORY_ERROR;
1264 DM_ERROR get_fota_download_dir(MEMORY_TYPE type, char **download_folder)
1268 sync_agent_dev_return_e dci_down_ret = SYNC_AGENT_DEV_RETURN_SUCCESS;
1271 case MEMORY_INTERNAL:
1272 _DEBUG_INFO("internal memory");
1273 dci_down_ret = sync_agent_get_devinfo(2, "FOTADownDir", download_folder);
1275 case MEMORY_SD_CARD:
1276 _DEBUG_INFO("sd card memory");
1277 dci_down_ret = sync_agent_get_devinfo(2, "FOTA_SD_DownDir", download_folder);
1280 _DEBUG_INFO("ERROR NOT USE MEMORY");
1284 if (dci_down_ret == SYNC_AGENT_DEV_RETURN_SUCCESS) {
1285 _DEBUG_INFO(" download : %s", *download_folder);
1290 _DEBUG_INFO("end error : %d ", DM_MEMORY_ERROR);
1292 return DM_MEMORY_ERROR;
1295 DM_ERROR get_fota_save_dir(MEMORY_TYPE type, char **save_folder)
1299 sync_agent_dev_return_e dci_down_ret = SYNC_AGENT_DEV_RETURN_SUCCESS;
1302 case MEMORY_INTERNAL:
1303 dci_down_ret = sync_agent_get_devinfo(2, "FOTASaveDir", save_folder);
1305 case MEMORY_SD_CARD:
1306 dci_down_ret = sync_agent_get_devinfo(2, "FOTA_SD_SaveDir", save_folder);
1309 _DEBUG_INFO("ERROR NOT USE MEMORY");
1313 if (dci_down_ret == SYNC_AGENT_DEV_RETURN_SUCCESS) {
1314 _DEBUG_INFO(" save_folder : %s", *save_folder);
1319 _DEBUG_INFO("end error : %d ", DM_MEMORY_ERROR);
1321 return DM_MEMORY_ERROR;
1324 void delete_fumo_contents(MEMORY_TYPE memory_type)
1328 _DEBUG_INFO("----------------------------------------------------------firmware update fail delete files-----------------------------------------------------------");
1329 char *download_folder = NULL;
1330 char *save_folder = NULL;
1332 //FOTASaveDir //FOTADownDir
1333 //dci_save_ret = sync_agent_get_devinfo(2 , "FOTADownDir" , &download_folder);
1334 get_fota_download_dir(memory_type, &download_folder);
1335 sync_agent_empty_directory_contents(download_folder);
1336 //dci_save_ret = sync_agent_get_devinfo(2 , "FOTASaveDir" , &save_folder);
1337 get_fota_save_dir(memory_type, &save_folder);
1339 sync_agent_empty_directory_contents(save_folder);
1340 _DEBUG_INFO("delete save folder ");
1342 str_free(&save_folder);
1343 str_free(&download_folder);
1349 void first_server_bootstrap(char *server_id)
1353 DM_ERROR ret = DM_OK;
1355 if (server_id == NULL) {
1356 _DEBUG_INFO("server id null");
1360 Event_Contents *ev_data = (Event_Contents *) calloc(1, sizeof(Event_Contents) + 1);
1361 if (ev_data == NULL) {
1362 _DEBUG_INFO("alloc fail");
1366 ev_data->server_id = strdup(server_id);
1367 ev_data->session_id = NULL;
1368 ev_data->type = SERVER_BOOTSTRAP_EVENT;
1369 ev_data->ui_mode = NULL;
1371 _DEBUG_INFO("event type server bootstrap : %d", ev_data->type);
1372 _DEBUG_INFO("session id : %s", ev_data->session_id);
1373 _DEBUG_INFO("server id : %s", ev_data->server_id);
1376 SERVICE_SERVER_TYPE engine_type;
1377 engine_type = get_service_engine_type(ev_data->server_id);
1379 switch (engine_type) {
1380 case SAMSUNG_FUMO_TYPE:
1383 //when using telephony
1384 //DM_ERROR get_telephony_state(int *now_calling);
1385 _DEBUG_INFO("engine type : %d", engine_type);
1386 ev_data->noti_type = NOTI_TYPE_BACKGRUOUND;
1387 ev_data->ui_mode = strdup(OMADM_FUMO_BACKGROUND_UI_TYPE);
1389 _DEBUG_INFO("noti type : %d", ev_data->noti_type);
1390 _DEBUG_INFO("ui mode : %s", ev_data->ui_mode);
1392 ret = dm_fumo_common_task_request(ev_data);
1393 _DEBUG_INFO("dm fumo conmmon task : %d ", ret);
1399 case SAMSUNG_FMM_TYPE:
1401 _DEBUG_INFO("engine type : %d", engine_type);
1402 ret = dm_lawmo_common_task_request(ev_data);
1403 _DEBUG_INFO("dm lawmo conmmon task : %d ", ret);
1409 _DEBUG_INFO("dm non engine ", ret);
1417 event_data_free((void *)ev_data);
1421 int get_default_noti_type(char *ui_mode, NotI_Type noti_type)
1425 retvm_if((ui_mode) == NULL, COMMON_ERR_IS_NULL, "ui_mode is NULL!!");
1427 if (strcmp(OMADM_FUMO_UI_TYPE, ui_mode) == 0) {
1429 return NOTI_UNKNOWN; //none type
1430 } else if (strcmp(OMADM_FUMO_NOTI_UI_TYPE, ui_mode) == 0) {
1431 switch (noti_type) {
1432 case NOTI_TYPE_NOT_SPECIFIED:
1433 case NOTI_TYPE_BACKGRUOUND:
1434 case NOTI_TYPE_USERINTERACTION:
1436 return NOTI_DOWNLOAD; //none type
1438 case NOTI_TYPE_INFOMATIVE:
1440 return NOTI_DOWNLOAD; //connect to server
1443 return NOTI_UNKNOWN; //none type
1446 } else if (strcmp(OMADM_FUMO_BACKGROUND_UI_TYPE, ui_mode) == 0) {
1448 return NOTI_UNKNOWN; //none type
1452 return NOTI_UNKNOWN;
1455 int wifi_only_config(char *config)
1459 retvm_if((config) == NULL, COMMON_ERR_IS_NULL, "config is NULL!!");
1461 if (config != NULL) {
1462 if (strcmp(config, "1") == 0) {
1463 _DEBUG_INFO("wifi on config");
1466 } else if (strcmp(config, "0") == 0) {
1467 _DEBUG_INFO("wifi off config");
1471 _DEBUG_INFO("wifi config error");
1474 _DEBUG_INFO("wifi config error");