INCLUDE_DIRECTORIES (
${SLP_INCLUDE_DIRS}
${CMAKE_SOURCE_DIR}/inc
+ ${CMAKE_SOURCE_DIR}/src/app
${CMAKE_SOURCE_DIR}/src/base/inc
${CMAKE_SOURCE_DIR}/src/io/inc
${CMAKE_SOURCE_DIR}/src/system/inc
const Tizen::Base::String& GetAppNotificationIconPath(void) const;
result SetAppNotificationIconPath(const Tizen::Base::String& notificationIconPath);
+ const Tizen::Base::String& GetAppTempIconPath(void) const;
+ result SetAppTempIconPath(const Tizen::Base::String& tempIconPath);
+
Tizen::Graphics::Bitmap* GetAppMenuIconN(void) const;
Tizen::Base::Collection::HashMap* GetAppMetadataListN(void) const;
Tizen::Base::String __appIconPath;
Tizen::Base::String __appSettingIconPath;
Tizen::Base::String __appNotificationIconPath;
+ Tizen::Base::String __appTempIconPath;
bool __launchingIconVisible;
bool __mainApp;
_PackageInfoImpl* __pPackageInfoImpl;
PackageAppInfo* __pAppInfo;
+ Tizen::Base::String __packagePath;
+
char* __pDefaultIconType;
bool __isDefaultName;
}; // _PackageParser
#include <FIoDatabase.h>
#include <FIoDbEnumerator.h>
#include <FIoDbStatement.h>
+#include <FIoFile.h>
#include <FBase_StringConverter.h>
#include "FAppPkg_PackageManagerImpl.h"
+#include "FApp_AppResourceImpl.h"
#include "FApp_TemplateUtil.h"
using namespace Tizen::Base;
return E_SUCCESS;
}
+const String&
+_PackageAppInfoImpl::GetAppTempIconPath(void) const
+{
+ return __appTempIconPath;
+}
+
+result
+_PackageAppInfoImpl::SetAppTempIconPath(const String& tempIconPath)
+{
+ __appTempIconPath = tempIconPath;
+ return E_SUCCESS;
+}
+
Bitmap*
_PackageAppInfoImpl::GetAppMenuIconN(void) const
{
- SysTryReturn(NID_APP, __appIconPath.IsEmpty() == false, null, E_FILE_NOT_FOUND, "appIconPath() is empty.");
+ Bitmap* pBitmap = null;
+ String iconPath;
- return null;
+ if (__fromDatabase)
+ {
+ SysTryReturn(NID_APP, __appIconPath.IsEmpty() == false, null, E_FILE_NOT_FOUND, "appIconPath() is empty.");
+
+ iconPath = __appIconPath;
+ }
+ else
+ {
+ SysTryReturn(NID_APP, __appTempIconPath.IsEmpty() == false, null, E_FILE_NOT_FOUND, "__appTempIconPath() is empty.");
+
+ iconPath = __appTempIconPath;
+ }
+
+ SysLog(NID_APP, "iconPath = [%ls]", iconPath.GetPointer());
+
+ pBitmap = _AppResourceImpl::GetNonScalingBitmapN(iconPath);
+
+ return pBitmap;
}
HashMap*
{
pkgmgrinfo_appinfo_destroy_appinfo(__pAppInfoHandle);
}
+
+ if (File::IsFileExist(__appTempIconPath) == true)
+ {
+ File::Remove(__appTempIconPath);
+ }
}
const String&
continue;
}
+ _PackageAppInfoImpl* pPackageAppInfoImpl = _PackageAppInfoImpl::GetInstance(pPackageAppInfo);
+ SysTryReturn(NID_APP, pPackageAppInfoImpl, null, E_SYSTEM, "pPackageAppInfoImpl is null.");
+
PackageAppInfo* pInfo = new (std::nothrow) PackageAppInfo;
SysTryReturn(NID_APP, pInfo, null, E_OUT_OF_MEMORY, "[E_OUT_OF_MEMORY] Insufficient memory");
- _PackageAppInfoImpl* pPackageAppInfoImpl = _PackageAppInfoImpl::GetInstance(pInfo);
- SysTryReturn(NID_APP, pPackageAppInfoImpl, null, E_SYSTEM, "pPackageAppInfoImpl is null.");
+ _PackageAppInfoImpl* pImpl = _PackageAppInfoImpl::GetInstance(pInfo);
+ SysTryReturn(NID_APP, pImpl, null, E_SYSTEM, "pImpl is null.");
String appName = pPackageAppInfo->GetAppName();
String appDisplayName = pPackageAppInfo->GetAppDisplayName();
bool menuIconVisible = pPackageAppInfo->IsMenuIconVisible();
bool mainApp = pPackageAppInfo->IsMainApp();
-
- pPackageAppInfoImpl->SetAppId(appId);
- pPackageAppInfoImpl->SetAppName(appName);
- pPackageAppInfoImpl->SetAppDisplayName(appDisplayName);
- pPackageAppInfoImpl->SetMenuIconVisible(menuIconVisible);
- pPackageAppInfoImpl->SetMainApp(mainApp);
+ String tempIconPath = pPackageAppInfoImpl->GetAppTempIconPath();
+
+ pImpl->SetAppId(appId);
+ pImpl->SetAppName(appName);
+ pImpl->SetAppDisplayName(appDisplayName);
+ pImpl->SetMenuIconVisible(menuIconVisible);
+ pImpl->SetMainApp(mainApp);
+ pImpl->SetAppTempIconPath(tempIconPath);
return pInfo;
}
_package_manager_pkg_detail_info_t* pPkgInfo = (_package_manager_pkg_detail_info_t*) pPkgmgrInfo;
_PackageInfoImpl* pPackageInfoImpl = _PackageInfoImpl::GetInstance(pPackageInfo.get());
- SysLog(NID_APP, "id(%s), version(%s), label(%s), description(%s), author(%s)", pPkgInfo->pkgid, pPkgInfo->version, pPkgInfo->label, pPkgInfo->pkg_description, pPkgInfo->author);
+ SysLog(NID_APP, "id(%s), version(%s), label(%s), description(%s), author(%s), icon_size(%d), pkgname(%s)", pPkgInfo->pkgid, pPkgInfo->version, pPkgInfo->label,
+ pPkgInfo->pkg_description, pPkgInfo->author, pPkgInfo->icon_size, pPkgInfo->pkg_name);
pPackageInfoImpl->SetType(PACKAGE_TYPE_WGT);
pPackageInfoImpl->SetId(pPkgInfo->pkgid);
pPackageAppInfoImpl->SetAppName(pPkgInfo->label);
pPackageAppInfoImpl->SetAppDisplayName(pPkgInfo->label);
pPackageAppInfoImpl->SetMainApp(true);
- // icon - pPkgInfo->icon_buf
+ if ((pPkgInfo->icon_buf) && (pPkgInfo->icon_size > 0))
+ {
+ String iconPath("/tmp/icon.png");
+ File file;
+ file.Construct(iconPath, "w+");
+ file.Write(pPkgInfo->icon_buf, pPkgInfo->icon_size);
+
+ pPackageAppInfoImpl->SetAppTempIconPath(iconPath);
+ }
pPackageInfoImpl->AddPackageAppInfo(*pPackageAppInfo.release());
bool
_PackageParser::Parse(const String& packagepath)
{
+ __packagePath = packagepath;
+
bool res = true;
FileUnzipper unzipper;
SysTryReturn(NID_APP, pSection, true, E_SYSTEM, "pSection is null");
String iconRelPath;
+ String tempIconPath;
if (strcasecmp(__pDefaultIconType, "Xhigh") == 0)
{
- iconRelPath.Format(1024, L"screen-density-xhigh/%s", pCharacters);
+ iconRelPath.Format(1024, L"shared/res/screen-density-xhigh/%s", pCharacters);
}
else if (strcasecmp(__pDefaultIconType, "High") == 0)
{
- iconRelPath.Format(1024, L"screen-density-high/%s", pCharacters);
+ iconRelPath.Format(1024, L"shared/res/screen-density-high/%s", pCharacters);
}
else
{
if (strcasecmp(pSection, "MainMenu") == 0)
{
- pPackageAppInfoImpl->SetAppMenuIconPath(iconRelPath);
- }
- else if (strcasecmp(pSection, "Setting") == 0)
- {
- pPackageAppInfoImpl->SetAppSettingIconPath(iconRelPath);
- }
- else if (strcasecmp(pSection, "Notification") == 0)
- {
- pPackageAppInfoImpl->SetAppNotificationIconPath(iconRelPath);
+ FileUnzipper unzipper;
+ String tmp(L"/tmp/");
+
+ result r = unzipper.Construct(__packagePath);
+ SysTryReturn(NID_APP, !IsFailed(r), false, E_SYSTEM, "unzipper.Construct() failed.");
+
+ r = unzipper.UnzipTo(tmp, iconRelPath);
+ if (!IsFailed(r))
+ {
+ tempIconPath = tmp + iconRelPath;
+ pPackageAppInfoImpl->SetAppTempIconPath(tempIconPath);
+ }
+ else
+ {
+ SysLog(NID_APP, "UnzipTo() is failed.");
+ }
}
- SysLog(NID_APP, "Section = [%s], Icon = [%ls]", pSection, iconRelPath.GetPointer());
+ SysLog(NID_APP, "Section = [%s], Icon = [%ls], TempIcon = [%ls]", pSection, iconRelPath.GetPointer(), tempIconPath.GetPointer());
return true;
}