//
-// Open Service Platform
// Copyright (c) 2012 Samsung Electronics Co., Ltd.
//
// Licensed under the Apache License, Version 2.0 (the License);
*/
#include <libxml/parserInternals.h>
+#include <system_info.h>
#include <FAppPkgPackageAppInfo.h>
#include <FBaseSysLog.h>
#include <FAppPkg_PackageInfoImpl.h>
#include <FAppPkg_PackageParser.h>
#include <FBase_StringConverter.h>
-#include <FSys_SystemInfoImpl.h>
using namespace Tizen::Base;
using namespace Tizen::Base::Collection;
,__pAppInfo(null)
,__pDefaultIconType(null)
,__isDefaultName(false)
+,__isEflTpk(false)
{
}
bool
_PackageParser::OnIconsStartElement(void)
{
- result r = E_SUCCESS;
+ int res = 0;
int width = 0;
String defaultIconType;
- r = _SystemInfoImpl::GetSysInfo(L"ScreenWidth", width);
- if (IsFailed(r))
+ res = system_info_get_value_int(SYSTEM_INFO_KEY_SCREEN_WIDTH, &width);
+ if (res != SYSTEM_INFO_ERROR_NONE)
{
+ SysLog(NID_APP, "system_info_get_value_int(SYSTEM_INFO_KEY_SCREEN_WIDTH) failed. res = [%d]", res);
defaultIconType = L"Xhigh";
}
else
SysLog(NID_APP, "Id = [%s]", pCharacters);
__pPackageInfoImpl->SetId(pCharacters);
+ RegularExpression regularExpression;
+ String pattern(L"([a-zA-Z0-9]{10})");
+ result r = regularExpression.Construct(pattern);
+ SysTryReturn(NID_APP, !IsFailed(r), false, E_SYSTEM, "regularExpression.Construct() failed.");
+
+ PackageId packageId = pCharacters;
+ if (regularExpression.Match(packageId, true) == true)
+ {
+ SysLog(NID_APP, "[%ls] is tizen native application.", packageId.GetPointer());
+ }
+ else
+ {
+ SysLog(NID_APP, "[%ls] is not tizen native application.", packageId.GetPointer());
+ __isEflTpk = true;
+ }
+
return true;
}
r = unzipper.UnzipTo(tmp, iconRelPath);
if (!IsFailed(r))
{
+ result r = E_SUCCESS;
+ File file;
tempIconPath = tmp + iconRelPath;
- pPackageAppInfoImpl->SetAppTempIconPath(tempIconPath);
+
+ r = file.Construct(tempIconPath, "r");
+ if (r == E_SUCCESS)
+ {
+ FileAttributes attr;
+ file.GetAttributes(tempIconPath, attr);
+ int size = (int)attr.GetFileSize();
+
+ char* pBuffer = new (std::nothrow) char[size];
+ SysTryReturn(NID_APP, pBuffer, false, E_OUT_OF_MEMORY, "pBuffer is null.");
+
+ memset(pBuffer, 0, size);
+ file.Read((void*)pBuffer, size);
+
+ pPackageAppInfoImpl->SetAppMenuIconBuffer(pBuffer, size);
+
+ Directory::Remove(tmp, true);
+ delete pBuffer;
+ }
+ else
+ {
+ SysLog(NID_APP, "file.Construct() failed.", tempIconPath.GetPointer());
+ }
}
else
{
pPackageAppInfoImpl->SetAppName(pName);
AppId appId = __pPackageInfoImpl->GetId() + L"." + pName;
- pPackageAppInfoImpl->SetAppId(appId);
+ if (__isEflTpk == false)
+ {
+ pPackageAppInfoImpl->SetAppId(appId);
+ }
+ else
+ {
+ pPackageAppInfoImpl->SetAppId(__pPackageInfoImpl->GetId());
+ }
char* pMain = pAttr->Find("Main");
if (pMain)
if (strcasecmp(pMain, "True") == 0)
{
__isDefaultName = true;
- __pPackageInfoImpl->SetMainAppId(appId);
+ if (__isEflTpk == false)
+ {
+ __pPackageInfoImpl->SetMainAppId(appId);
+ }
+ else
+ {
+ __pPackageInfoImpl->SetMainAppId(__pPackageInfoImpl->GetId());
+ }
pPackageAppInfoImpl->SetMainApp(true);
}
}