Add to read a custum feature key.
[platform/framework/native/appfw.git] / src / system / FSys_SystemInfoImpl.cpp
index 5f9708f..8cc29b0 100644 (file)
@@ -446,7 +446,7 @@ _SystemInfoImpl::GetSysInfo(const String& key, String& value)
        {
                r = GetFromRegistry(tizenKey, value);
 
-               if(r != E_SUCCESS)
+               if(r != E_SUCCESS || value == L"ERROR")
                {
                        ArrayList requestMessage;
                        ArrayList responseMessage;
@@ -502,8 +502,11 @@ _SystemInfoImpl::GetSysInfo(const String& key, String& value)
                        SysTryReturn(NID_SYS, r == E_SUCCESS, E_SYSTEM, r, "[%s] StringUtil::StringToUtf8N It is failed", GetErrorMessage(r));
 
                        int ret = system_info_get_platform_string(systemKey.get(), &pStringValue);
-                       SysTryReturnResult(NID_SYS, ret == SYSTEM_INFO_ERROR_NONE, E_OBJ_NOT_FOUND, "It is failed to get system information %ls from configration file.", tizenKey.GetPointer());
-
+                       if (ret != SYSTEM_INFO_ERROR_NONE)
+                       {
+                               ret = system_info_get_custom_string(systemKey.get(), &pStringValue);
+                               SysTryReturnResult(NID_SYS, ret == SYSTEM_INFO_ERROR_NONE, E_OBJ_NOT_FOUND, "It is failed to get system information %ls from configration file.", tizenKey.GetPointer());
+                       }
                        r = StringUtil::Utf8ToString(pStringValue, value);
                        free(pStringValue);
                        r = E_SUCCESS;
@@ -569,7 +572,12 @@ _SystemInfoImpl::GetSysInfo(const String& key, int& value)
                        SysTryReturn(NID_SYS, r == E_SUCCESS, E_SYSTEM, r, "[%s] StringUtil::StringToUtf8N It is failed", GetErrorMessage(r));
 
                        ret = system_info_get_platform_int(systemKey.get(), &value);
-                       SysTryReturnResult(NID_SYS, ret == SYSTEM_INFO_ERROR_NONE, E_OBJ_NOT_FOUND, "It is failed to get system information %ls from configration file.", tizenKey.GetPointer());
+                       if (ret != SYSTEM_INFO_ERROR_NONE)
+                       {
+                               ret = system_info_get_custom_int(systemKey.get(), &value);
+                               SysTryReturnResult(NID_SYS, ret == SYSTEM_INFO_ERROR_NONE, E_OBJ_NOT_FOUND,
+                                       "It is failed to get system information %ls from configration file.", tizenKey.GetPointer());
+                       }
                        r = E_SUCCESS;
                }
        }
@@ -631,13 +639,17 @@ _SystemInfoImpl::GetSysInfo(const String& key, bool& value)
                int ret = system_info_get_platform_bool(systemKey.get(), &supported);
                if(ret != SYSTEM_INFO_ERROR_NONE)
                {
-                       String screenKey(L"http://tizen.org/feature/screen.size");
-                       String requiredKey;
-                       tizenKey.SubString(0, screenKey.GetLength(), requiredKey);
-
-                       if(requiredKey == screenKey)
+                       ret = system_info_get_custom_bool(systemKey.get(), &supported);
+                       if (ret != SYSTEM_INFO_ERROR_NONE)
                        {
-                               value = false;
+                               String screenKey(L"http://tizen.org/feature/screen.size");
+                               String requiredKey;
+                               tizenKey.SubString(0, screenKey.GetLength(), requiredKey);
+
+                               if(requiredKey == screenKey)
+                               {
+                                       value = false;
+                               }
                        }
                }