static const wchar_t* _SETTING_COMMAND_ADD_EVENT = L"osp.setting.command.add.event";
static const wchar_t* _SETTING_COMMAND_REMOVE_EVENT = L"osp.setting.command.remove.event";
+ static const wchar_t* _SETTING_COMMAND_ADD_EVENT_INTERNAL = L"osp.setting.command.add.event.internal";
+ static const wchar_t* _SETTING_COMMAND_REMOVE_EVENT_INTERNAL = L"osp.setting.command.remove.event.internal";
+ static const wchar_t* _SETTING_SERVICE_TYPE_EVENT_INTERNAL = L"osp.setting.service.type.event.internal";
+
static const wchar_t* _SETTING_COMMAND_SUPPORTED = L"osp.setting.command.supported";
static const wchar_t* _SETTING_RESULT_SUCCESS = L"osp.system.result.success";
__settingProviderList.Construct(0, 0, hashProvider, stringComparer);
__eventListenerList.Construct();
+ __eventListenerListForInternal.Construct();
__eventProtect.Create();
r = E_OBJ_NOT_FOUND;
}
}
+ else if(*command == _SETTING_COMMAND_ADD_EVENT_INTERNAL)
+ {
+ SysLog(NID_SYS, "Setting Event subscription is required. (Internal)");
+
+ if(__eventListenerListForInternal.Contains(processId) == false)
+ {
+ __eventProtect.Acquire();
+ r = __eventListenerListForInternal.Add(new (std::nothrow) Integer(pid));
+ __eventProtect.Release();
+ }
+ else
+ {
+ SysLogException(NID_SYS, E_OBJ_ALREADY_EXIST, "Required Application[%ls] is already registered.", appId.GetPointer());
+ r = E_OBJ_ALREADY_EXIST;
+ }
+ }
+ else if(*command == _SETTING_COMMAND_REMOVE_EVENT_INTERNAL)
+ {
+ SysLog(NID_SYS, "Setting Event un-subscription is required. (Internal)");
+ if(__eventListenerListForInternal.Contains(processId) == true)
+ {
+ __eventProtect.Acquire();
+ r = __eventListenerListForInternal.Remove(processId, true);
+ __eventProtect.Release();
+ }
+ else
+ {
+ SysLogException(NID_SYS, E_OBJ_NOT_FOUND, "Required Application[%ls] is not registered.", appId.GetPointer());
+ r = E_OBJ_NOT_FOUND;
+ }
+ }
else if(*command == _SETTING_COMMAND_FACTORY_RESET)
{
SysLog(NID_SYS, "Warning !!!, Factory reset is required.");
}
result
+_SettingService::SendEventForInternal(String key)
+{
+ result r = E_SUCCESS;
+ unique_ptr<IEnumerator> pEnum(__eventListenerListForInternal.GetEnumeratorN());
+
+ SysTryReturnResult(NID_SYS, pEnum != null, E_SYSTEM, "There is no listener(s).");
+
+ SysTryReturnResult(NID_SYS, __pCommunicationDispatcher != null, E_SYSTEM, "Communication Dispatcher is not ready.");
+
+ __eventProtect.Acquire();
+ while(pEnum->MoveNext() == E_SUCCESS)
+ {
+ Integer* pProcessId = (Integer*)pEnum->GetCurrent();
+ SysTryReturnResult(NID_SYS, pProcessId != null, E_SYSTEM, "There is no listener id.");
+
+ String serviceId(_SETTING_SERVICE_ID);
+ String eventId(_SETTING_SERVICE_TYPE_EVENT);
+
+ ArrayList data;
+ data.Construct();
+ data.Add(serviceId);
+ data.Add(eventId);
+ data.Add(key);
+ r = __pCommunicationDispatcher->SendData(pProcessId->value, data);
+ if(r != E_SUCCESS)
+ {
+ SysLog(NID_SYS, "Required Key[%ls] is failed to delivered to application[%d]. [%s]", key.GetPointer(), pProcessId->value, GetErrorMessage(r));
+ }
+ else
+ {
+ SysLog(NID_SYS, "Required Key[%ls] is delivered to application[%d] successfully.", key.GetPointer(), pProcessId->value);
+ }
+ }
+ __eventProtect.Release();
+ return E_SUCCESS;
+}
+
+result
_SettingService::SendResponse(int pid, String responseId, String key, String value)
{
SysTryReturnResult(NID_SYS, __pCommunicationDispatcher != null, E_SYSTEM, "Communication Dispatcher is not ready.");
__eventProtect.Acquire();
Integer processId(pid);
r = __eventListenerList.Remove(processId, true);
+ r = __eventListenerListForInternal.Remove(processId, true);
__eventProtect.Release();
SysLog(NID_SYS, "Application[%ls, %d] is terminated. And remove event listener [%s]", appId.GetPointer(), pid, GetErrorMessage(r));
}
SysTryReturnResult(NID_SYS, HasKey(key) == true, E_UNSUPPORTED_OPERATION, "Current device does not support screen reader.");
r = E_SUCCESS;
int current_value = 0;
- errorCode = vconf_get_int(VCONFKEY_SETAPPL_ACCESSIBILITY_TTS, ¤t_value);
+ errorCode = vconf_get_bool(VCONFKEY_SETAPPL_ACCESSIBILITY_TTS, ¤t_value);
SysTryReturnResult(NID_SYS, errorCode == 0, E_SYSTEM, "It is failed to get VCONFKEY_SETAPPL_ACCESSIBILITY_TTS key.");
-
- value = (current_value == 1);
+ if(current_value == 0)
+ {
+ value = false;
+ }
+ else
+ {
+ value = true;
+ }
}
return r;
}
SysTryReturnResult(NID_SYS, HasKey(key) == true, E_UNSUPPORTED_OPERATION, "Current device does not support screen reader.");
r = E_SUCCESS;
- int tts_value = (int)value;
-
- errorCode = vconf_set_int(VCONFKEY_SETAPPL_ACCESSIBILITY_TTS, tts_value);
+ int current_value = (int)value;
+ errorCode = vconf_set_bool(VCONFKEY_SETAPPL_ACCESSIBILITY_TTS, current_value);
SysTryReturnResult(NID_SYS, errorCode == 0, E_SYSTEM, "It is failed to get VCONFKEY_SETAPPL_ACCESSIBILITY_TTS key.");
}
return r;