#include <FAppPkg_PackageInfoImpl.h>
#include <FAppPkg_PackageParser.h>
#include <FBase_StringConverter.h>
+#include <FSys_SettingInfoImpl.h>
using namespace Tizen::App;
using namespace Tizen::Base;
bool
_PackageParser::OnDisplayNamesEndElement(void)
{
- // fall-back
+ if ((FindElement("Accounts") == true) || (FindElement("AppWidgets") == true))
+ {
+ AppLog("Skip display name.");
+ return true;
+ }
+ else
+ {
+ AppLog("It's display name for UiApp, ServiceApp");
+ }
+
+ _PackageAppInfoImpl* pPackageAppInfoImpl = _PackageAppInfoImpl::GetInstance(__pAppInfo);
+ SysTryReturn(NID_APP, pPackageAppInfoImpl, false, E_SYSTEM, "pPackageAppInfoImpl is null.");
+
+ HashMap* pNameList = pPackageAppInfoImpl->GetNameList();
+ SysTryReturn(NID_APP, pNameList, false, E_SYSTEM, "pNameList is null.");
+
+ String locale;
+ result r = _SettingInfoImpl::GetValue(L"http://tizen.org/setting/locale.language", locale);
+ SysTryReturn(NID_APP, !IsFailed(r), false, E_SYSTEM, "GetValue(http://tizen.org/setting/locale.language) failed.");
+
+ locale.Replace(L"_", L"-");
+ SysLog(NID_APP, "system locale = [%ls]", locale.GetPointer());
+
+ if (pNameList->ContainsKey(locale) == true)
+ {
+ String* pValue = static_cast< String* > (pNameList->GetValue(locale));
+ SysTryReturn(NID_APP, pValue, false, E_SYSTEM, "pValue is null.");
+
+ pPackageAppInfoImpl->SetAppDisplayName(*pValue);
+ if (__isDefaultName == true)
+ {
+ __pPackageInfoImpl->SetDisplayName(*pValue);
+ }
+ SysLog(NID_APP, "Exact - DisplayName = [%ls][%ls]", locale.GetPointer(), pValue->GetPointer());
+ }
+ else
+ {
+ std::unique_ptr< IList > pKeys(pNameList->GetKeysN());
+ SysTryReturn(NID_APP, pKeys, false, E_SYSTEM, "pKeys is null.");
+
+ for (int i = 0; i < pKeys->GetCount(); i++)
+ {
+ String* pKey = dynamic_cast < String* >(pKeys->GetAt(i));
+ if (pKey)
+ {
+ String language;
+ r = pKey->SubString(0, 3, language);
+ SysTryReturn(NID_APP, !IsFailed(r), false, E_SYSTEM, "SubString(%ls) failed.", pKey->GetPointer());
+
+ AppLog("language = [%ls]", language.GetPointer());
+
+ if (locale.Contains(language) == true)
+ {
+ String* pValue = static_cast< String* > (pNameList->GetValue(*pKey));
+ SysTryReturn(NID_APP, pValue, false, E_SYSTEM, "pValue is null.");
+
+ pPackageAppInfoImpl->SetAppDisplayName(*pValue);
+ if (__isDefaultName == true)
+ {
+ __pPackageInfoImpl->SetDisplayName(*pValue);
+ }
+ SysLog(NID_APP, "Fallback - DisplayName = [%ls][%ls]", language.GetPointer(), pValue->GetPointer());
+
+ break;
+ }
+ }
+ }
+ }
return true;
}
pAttrValue = pAttr->Find("Locale");
SysTryReturn(NID_APP, pAttrValue, true, E_SYSTEM, "pAttrValue is null");
- if (strcasecmp(pAttrValue, "eng-GB") == 0 || strcasecmp(pAttrValue, "eng-US") == 0)
+ if (strcasecmp(pAttrValue, "eng-GB") == 0)
{
pPackageAppInfoImpl->SetAppDisplayName(pCharacters);