X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=src%2Fsystem%2FFSys_SettingInfoImpl.cpp;h=4dd00313a43aeb8218c10b0cb65cb21312c58525;hb=fb718301c0247e55776ebf661b9b6217f1f84cbe;hp=1f660978cc3307f14eebc856e7648866ffdec032;hpb=ce380ff0d6dfbf0b1420e0b045f6077f2e124573;p=platform%2Fframework%2Fnative%2Fappfw.git diff --git a/src/system/FSys_SettingInfoImpl.cpp b/src/system/FSys_SettingInfoImpl.cpp index 1f66097..4dd0031 100644 --- a/src/system/FSys_SettingInfoImpl.cpp +++ b/src/system/FSys_SettingInfoImpl.cpp @@ -1,5 +1,4 @@ // -// Open Service Platform // Copyright (c) 2012 Samsung Electronics Co., Ltd. // // Licensed under the Apache License, Version 2.0 (the License); @@ -19,24 +18,32 @@ * @file FSys_SettingInfoImpl.cpp * @brief This is the implementation file for _SysSettingInfoImpl class. */ +#include +#include #include #include +#include +#include +#include +#include +#include #include #include + #include "FSys_SettingClient.h" +using namespace std; + using namespace Tizen::App; using namespace Tizen::Base; using namespace Tizen::Base::Collection; using namespace Tizen::Io; +using namespace Tizen::Base::Utility; namespace Tizen { namespace System { -//IDs for IPC -static const int _SYSTEM_RESPONSE_DATA = 2; - //Reserved key static const wchar_t* _SETTING_SCREEN_WALLPAPER = L"http://tizen.org/setting/screen.wallpaper"; static const wchar_t* _SETTING_SYSTEM_SOUND_VOLUME = L"SystemSoundVolume"; @@ -49,6 +56,25 @@ static const wchar_t* _SETTING_SOUND_RINGTONE_VOLUME = L"http://tizen.org/settin static const wchar_t* _SETTING_NOTIFICATION_SOUND_VOLUME = L"NotificationSoundVolume"; static const wchar_t* _SETTING_SOUND_NOTIFICATION_VOLUME = L"http://tizen.org/setting/sound.notification.volume"; +//Font +static const wchar_t* _FONT_SIZE = L"http://tizen.org/setting/font.size"; +static const wchar_t* _FONTSIZE = L"FontSize"; +static const wchar_t* _FONT_TYPE = L"http://tizen.org/setting/font.type"; +static const wchar_t* _FONTTYPE = L"FontType"; + +static const wchar_t* _FONT_SIZE_GIANT = L"giant"; +static const wchar_t* _FONT_SIZE_HUGE = L"huge"; +static const wchar_t* _FONT_SIZE_LARGE = L"large"; +static const wchar_t* _FONT_SIZE_MEDIUM = L"medium"; +static const wchar_t* _FONT_SIZE_SMALL = L"small"; + +static const int _FONT_SIZE_GIANT_VCONF = 4; +static const int _FONT_SIZE_HUGE_VCONF = 3; +static const int _FONT_SIZE_LARGE_VCONF = 2; +static const int _FONT_SIZE_MEDIUM_VCONF = 1; +static const int _FONT_SIZE_SMALL_VCONF = 0; + + static _SettingClient* pSettingClient = null; void @@ -62,9 +88,50 @@ _SettingInfoImpl::InitSettingClient(void) result _SettingInfoImpl::GetValue(const Tizen::Base::String& key, Tizen::Base::String& value) { - InitSettingClient(); - SysTryReturnResult(NID_SYS, pSettingClient != null, E_SYSTEM, "It is failed to intialize setting manager"); - return pSettingClient->GetValue(key, value); + result r = E_SUCCESS; + + if (key == _FONT_SIZE || key == _FONT_TYPE || key == _FONTSIZE || key == _FONTTYPE) + { + String tizenKey(key); + if(tizenKey == _FONTSIZE) + { + tizenKey = _FONT_SIZE; + } + else if(tizenKey == _FONTTYPE) + { + tizenKey = _FONT_TYPE; + } + + r = GetValueForFont(tizenKey, value); + + if(key == _FONTSIZE) + { + if(_AppInfo::GetApiVersion() == _API_VERSION_2_0 && _AppInfo::IsOspCompat()) + { + if(value == _FONT_SIZE_GIANT || value == _FONT_SIZE_HUGE) + { + value = _FONT_SIZE_LARGE; //OSP not support giant or huge size of font. + } + } + } + } + else + { + InitSettingClient(); + SysTryReturnResult(NID_SYS, pSettingClient != null, E_SYSTEM, "It is failed to intialize setting manager"); + r = pSettingClient->GetValue(key, value); + + if(key == L"Wallpaper") + { + if(_AppInfo::GetApiVersion() == _API_VERSION_2_0 && _AppInfo::IsOspCompat()) + { + String physicalFilePath = value; + r = Tizen::Io::_FileImpl::ConvertPhysicalToVirtualPath(physicalFilePath, value); + SysTryReturn(NID_SYS, r == E_SUCCESS, r, r, "[%s] It is failed to converting virtual path", GetErrorMessage(r)); + } + } + } + return r; } result @@ -111,8 +178,19 @@ result _SettingInfoImpl::SetWallpaper(const Tizen::Base::String& filePath) { InitSettingClient(); + result r = E_SUCCESS; + SysTryReturnResult(NID_SYS, pSettingClient != null, E_SYSTEM, "It is failed to intialize setting manager"); - result r = pSettingClient->SetValue(_SETTING_SCREEN_WALLPAPER, filePath); + + String physicalFilePath = filePath; + + if(Tizen::App::_AppInfo::GetApiVersion() == _API_VERSION_2_0 && Tizen::App::_AppInfo::IsOspCompat()) + { + r = Tizen::Io::_FileImpl::ConvertVirtualToPhysicalPath(filePath, physicalFilePath); + SysTryReturn(NID_SYS, r == E_SUCCESS, r, r, "[%s] It is failed to converting physical path", GetErrorMessage(r)); + } + + r = pSettingClient->SetValue(_SETTING_SCREEN_WALLPAPER, physicalFilePath); if(r == E_INVALID_ARG) r = E_FILE_NOT_FOUND; @@ -128,6 +206,7 @@ result _SettingInfoImpl::GetValueForPrivilegedKey(const String& key, bool& value) { InitSettingClient(); + SysTryReturnResult(NID_SYS, pSettingClient != null, E_SYSTEM, "It is failed to intialize setting manager"); return pSettingClient->GetValueForPrivilegedKey(key, value); } @@ -152,9 +231,28 @@ _SettingInfoImpl::SetValue(const String& key, int value) result _SettingInfoImpl::SetValue(const String& key, String value) { - InitSettingClient(); - SysTryReturnResult(NID_SYS, pSettingClient != null, E_SYSTEM, "It is failed to intialize setting manager"); - return pSettingClient->SetValue(key, value); + result r = E_SUCCESS; + if (key == _FONT_SIZE || key == _FONT_TYPE) + { + r = SetValueForFont(key, value); + } + else + { + InitSettingClient(); + SysTryReturnResult(NID_SYS, pSettingClient != null, E_SYSTEM, "It is failed to intialize setting manager"); + + if(key == _SETTING_SCREEN_WALLPAPER) + { + if(_AppInfo::GetApiVersion() == _API_VERSION_2_0 && _AppInfo::IsOspCompat()) + { + String virtualFilePath = value; + r = Tizen::Io::_FileImpl::ConvertVirtualToPhysicalPath(virtualFilePath, value); + SysTryReturn(NID_SYS, r == E_SUCCESS, r, r, "[%s] It is failed to converting physical path", GetErrorMessage(r)); + } + } + return pSettingClient->SetValue(key, value); + } + return r; } result @@ -191,9 +289,10 @@ _SettingInfoImpl::ResetToFactoryDefault(void) result _SettingInfoImpl::SetRingtone(const Tizen::Base::String& filePath) { + result r = E_SUCCESS; InitSettingClient(); SysTryReturnResult(NID_SYS, pSettingClient != null, E_SYSTEM, "It is failed to intialize setting manager"); - result r = pSettingClient->SetValue(_SETTING_SOUND_RINGTONE, filePath); + r = pSettingClient->SetValue(_SETTING_SOUND_RINGTONE, filePath); if(r == E_INVALID_ARG) r = E_FILE_NOT_FOUND; @@ -211,9 +310,6 @@ _SettingInfoImpl::SetVolume(const Tizen::Base::String& soundCategory, int level) result r = E_SUCCESS; String key; - InitSettingClient(); - SysTryReturnResult(NID_SYS, pSettingClient != null, E_SYSTEM, "It is failed to intialize setting manager"); - if (soundCategory == _SETTING_SYSTEM_SOUND_VOLUME) { key = _SETTING_SOUND_SYSTEM_VOLUME; @@ -235,6 +331,8 @@ _SettingInfoImpl::SetVolume(const Tizen::Base::String& soundCategory, int level) key = soundCategory; } + InitSettingClient(); + SysTryReturnResult(NID_SYS, pSettingClient != null, E_SYSTEM, "It is failed to intialize setting manager"); r = pSettingClient->SetValue(key, level); if (r == E_OBJ_NOT_FOUND) @@ -293,6 +391,14 @@ _SettingInfoImpl::SetSettingEventListener(ISettingEventListener* pListener) } result +_SettingInfoImpl::SetValueAsync(const Tizen::Base::String& key, bool value, ISettingInfoSetValueAsyncResultListener* listener) +{ + InitSettingClient(); + SysTryReturnResult(NID_SYS, pSettingClient != null, E_SYSTEM, "It is failed to intialize setting manager"); + return pSettingClient->SetValueAsync(key, value, listener); +} + +result _SettingInfoImpl::SetValueAsyncForPrivilegedKey(const Tizen::Base::String& key, bool value, ISettingInfoSetValueAsyncResultListener* listener) { InitSettingClient(); @@ -312,4 +418,112 @@ _SettingInfoImpl::GetInstance(const SettingInfo& settinginfo) return settinginfo.__pSettingInfoImpl; } +result +_SettingInfoImpl::GetValueForFont(const Tizen::Base::String& key, Tizen::Base::String& value) +{ + result r = E_OBJ_NOT_FOUND; + + if (key == _FONT_SIZE) + { + int fontSize = 0; + int res = 0; + res = system_settings_get_value_int(SYSTEM_SETTINGS_KEY_FONT_SIZE, &fontSize); + + SysTryReturnResult(NID_SYS, res == SYSTEM_SETTINGS_ERROR_NONE, E_SYSTEM, "It is failed to get font size."); + + r = E_SUCCESS; + switch (fontSize) + { + case _FONT_SIZE_GIANT_VCONF: + value.Append(_FONT_SIZE_GIANT); + break; + case _FONT_SIZE_HUGE_VCONF: + value.Append(_FONT_SIZE_HUGE); + break; + case _FONT_SIZE_LARGE_VCONF: + value.Append(_FONT_SIZE_LARGE); + break; + case _FONT_SIZE_MEDIUM_VCONF: + value.Append(_FONT_SIZE_MEDIUM); + break; + case _FONT_SIZE_SMALL_VCONF: + value.Append(_FONT_SIZE_SMALL); + break; + default: + r = E_SYSTEM; + break; + } + + } + else if (key == _FONT_TYPE) + { + r = E_SUCCESS; + char* pFontType = null; + int res = 0; + res = system_settings_get_value_string(SYSTEM_SETTINGS_KEY_FONT_TYPE, &pFontType); + SysTryReturnResult(NID_SYS, res == SYSTEM_SETTINGS_ERROR_NONE, E_SYSTEM, "Failed to get font type"); + r = StringUtil::Utf8ToString(pFontType, value); + SysTryReturn(NID_SYS, r == E_SUCCESS, E_SYSTEM, r, "[%s] StringUtil::Utf8ToString failed", GetErrorMessage(r)); + free(pFontType); + } + return r; +} + + +result +_SettingInfoImpl::SetValueForFont(const Tizen::Base::String& key, Tizen::Base::String value) +{ + result r = E_OBJ_NOT_FOUND; + + if(key == _FONT_SIZE) + { + int fontSize = 0; + int res = 0; + String lowerValue = value; + lowerValue.ToLowerCase(); + r = E_SUCCESS; + + if (lowerValue == _FONT_SIZE_GIANT) + { + fontSize = _FONT_SIZE_GIANT_VCONF; + } + else if (lowerValue == _FONT_SIZE_HUGE) + { + fontSize = _FONT_SIZE_HUGE_VCONF; + } + else if (lowerValue == _FONT_SIZE_LARGE) + { + fontSize = _FONT_SIZE_LARGE_VCONF; + } + else if (lowerValue == _FONT_SIZE_MEDIUM) + { + fontSize = _FONT_SIZE_MEDIUM_VCONF; + } + else if (lowerValue == _FONT_SIZE_SMALL) + { + fontSize = _FONT_SIZE_SMALL_VCONF; + } + else + { + return E_INVALID_ARG; + } + res = system_settings_set_value_int(SYSTEM_SETTINGS_KEY_FONT_SIZE, fontSize); + SysTryReturnResult(NID_SYS, res == SYSTEM_SETTINGS_ERROR_NONE, E_SYSTEM, "It is failed to set font size."); + } + else if(key == _FONT_TYPE) + { + int res = 0; + r = E_SUCCESS; + + unique_ptr pFontType(_StringConverter::CopyToCharArrayN(value)); + SysTryReturnResult(NID_SYS, pFontType.get() != null, E_SYSTEM, "It is failed to convert String to string."); + SysLog(NID_SYS, "Requested font type is %s.", pFontType.get()); + res = system_settings_set_value_string(SYSTEM_SETTINGS_KEY_FONT_TYPE, pFontType.get()); + SysTryReturnResult(NID_SYS, res != SYSTEM_SETTINGS_ERROR_INVALID_PARAMETER, E_INVALID_ARG, "It is not valid font type."); + SysTryReturnResult(NID_SYS, res == SYSTEM_SETTINGS_ERROR_NONE, E_SYSTEM, "It is failed to set font type."); + } + return r; +} + + } } // Tizen::System