* @file FSys_SettingInfoImpl.cpp
* @brief This is the implementation file for _SysSettingInfoImpl class.
*/
-
+#include <system/system_settings.h>
+#include <FBase.h>
#include <FBaseColArrayList.h>
#include <FBaseSysLog.h>
+#include <FBase_StringConverter.h>
#include <FBase_NativeError.h>
#include <FSys_SettingInfoImpl.h>
#include "FSys_SettingClient.h"
using namespace Tizen::Base;
using namespace Tizen::Base::Collection;
using namespace Tizen::Io;
+using namespace Tizen::Base::Utility;
namespace Tizen { namespace System
{
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* _FONT_TYPE = L"http://tizen.org/setting/font.type";
+
+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
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)
+ {
+ r = GetValueForFont(key, value);
+ }
+ else
+ {
+ InitSettingClient();
+ SysTryReturnResult(NID_SYS, pSettingClient != null, E_SYSTEM, "It is failed to intialize setting manager");
+ r = pSettingClient->GetValue(key, value);
+ }
+ return r;
}
result
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");
+ r = pSettingClient->SetValue(key, value);
+ }
+ return r;
}
result
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)
+ {
+ char* pFontType = null;
+ int res = 0;
+ r = E_SUCCESS;
+
+ pFontType = _StringConverter::CopyToCharArrayN(value);
+ SysTryReturnResult(NID_SYS, pFontType != null, E_SYSTEM, "It is failed to convert String to string.");
+ SysLog(NID_SYS, "Requested font type is %s.", pFontType);
+ res = system_settings_set_value_string(SYSTEM_SETTINGS_KEY_FONT_TYPE, pFontType);
+ delete [] pFontType;
+ SysTryReturnResult(NID_SYS, res == SYSTEM_SETTINGS_ERROR_NONE, E_SYSTEM, "It is failed to set font type.");
+ }
+ return r;
+}
+
+
} } // Tizen::System