//
-// Open Service Platform
// Copyright (c) 2012 Samsung Electronics Co., Ltd.
//
// Licensed under the Apache License, Version 2.0 (the License);
#include <FIoDatabase.h>
#include <FIoDbEnumerator.h>
#include <FIoDbStatement.h>
+#include <FIoFile.h>
#include <FBaseSysLog.h>
+#include <FBaseUtilStringTokenizer.h>
#include <FSecPrivilegeInfo.h>
#include <FBase_StringConverter.h>
-#include <FBaseUtilStringTokenizer.h>
+#include <FSec_PrivilegeManager.h>
+#include "FApp_PackageManagerProxy.h"
#include "FAppPkg_PackageManagerImpl.h"
#include "FAppPkg_PackageInfoImpl.h"
#include "FAppPkg_PackageAppInfoImpl.h"
PackageType
_PackageInfoImpl::GetType(void) const
{
- return __packageType;
+ SysTryReturn(NID_APP, __id.IsEmpty() == false, PACKAGE_TYPE_TPK, E_SYSTEM, "[E_SYSTEM] id.IsEmpty() is empty.");
+
+ result r = E_SUCCESS;
+ PackageType type = PACKAGE_TYPE_TPK;
+
+ _PackageManagerProxy packageManagerProxy;
+ r = packageManagerProxy.Construct();
+ SysTryReturn(NID_APP, r == E_SUCCESS, PACKAGE_TYPE_TPK, E_SYSTEM, "packageManagerProxy.Construct() failed.");
+
+ type = packageManagerProxy.GetType(__id);
+ SysTryReturn(NID_APP, r == E_SUCCESS, PACKAGE_TYPE_TPK, r, "packageManagerProxy.GetType(%ls) failed.", __id.GetPointer());
+
+ return type;
}
result
if (__fromDatabase)
{
- SysTryReturn(NID_APP, __packageInfoHandle, 0, E_SYSTEM, "[E_SYSTEM] __packageInfoHandle is null.");
+ SysTryReturn(NID_APP, __id.IsEmpty() == false, 0, E_SYSTEM, "id is IsEmpty.");
- int result = PMINFO_R_OK;
+ std::unique_ptr<char[]> pPackage(_StringConverter::CopyToCharArrayN(__id));
+ SysTryReturn(NID_APP, pPackage, 0, E_OUT_OF_MEMORY, "pPackage is null.");
- result = pkgmgrinfo_pkginfo_get_total_size(__packageInfoHandle, &size);
- if (result == PMINFO_R_OK)
- {
- SysLog(NID_APP, "pkgmgrinfo_pkginfo_get_total_size(): size = [%d]", size);
- }
- else
- {
- SysLog(NID_APP, "pkgmgrinfo_pkginfo_get_total_size() is failed. result = [%d]", result);
- }
+ void* pClient = pkgmgr_client_new(PC_REQUEST);
+ SysTryReturn(NID_APP, pClient, 0, E_SYSTEM, "pkgmgr_client_new() failed.");
+
+ SysLog(NID_APP, "pkgmgr_client_request_service(PM_REQUEST_GET_SIZE, %s)", pPackage.get());
+ size = pkgmgr_client_request_service(PM_REQUEST_GET_SIZE, 0, pClient, null, pPackage.get(), null, null, null);
+
+ pkgmgr_client_free(pClient);
}
else
{
SysLog(NID_APP, "GetSize() is not available.");
}
+ SysLog(NID_APP, "size = [%d]", size);
+
return (long long) size;
}
if (__fromDatabase)
{
- SysTryReturn(NID_APP, __packageInfoHandle, 0, E_SYSTEM, "[E_SYSTEM] __packageInfoHandle is null.");
+ SysTryReturn(NID_APP, __id.IsEmpty() == false, 0, E_SYSTEM, "id is IsEmpty.");
- int result = PMINFO_R_OK;
+ std::unique_ptr<char[]> pPackage(_StringConverter::CopyToCharArrayN(__id));
+ SysTryReturn(NID_APP, pPackage, 0, E_OUT_OF_MEMORY, "pPackage is null.");
- result = pkgmgrinfo_pkginfo_get_data_size(__packageInfoHandle, &dataSize);
- if (result == PMINFO_R_OK)
- {
- SysLog(NID_APP, "pkgmgrinfo_pkginfo_get_data_size(): dataSize = [%d]", dataSize);
- }
- else
- {
- SysLog(NID_APP, "pkgmgrinfo_pkginfo_get_data_size() is failed. result = [%d]", result);
- }
+ void* pClient = pkgmgr_client_new(PC_REQUEST);
+ SysTryReturn(NID_APP, pClient, 0, E_SYSTEM, "pkgmgr_client_new() failed.");
+
+ SysLog(NID_APP, "pkgmgr_client_request_service(PM_REQUEST_GET_SIZE, %s)", pPackage.get());
+ dataSize = pkgmgr_client_request_service(PM_REQUEST_GET_SIZE, 1, pClient, null, pPackage.get(), null, null, null);
+
+ pkgmgr_client_free(pClient);
}
else
{
SysLog(NID_APP, "GetDataSize() is not available.");
}
+ SysLog(NID_APP, "dataSize = [%d]", dataSize);
+
return (long long) dataSize;
}
String appDisplayName = pPackageAppInfo->GetAppDisplayName();
bool menuIconVisible = pPackageAppInfo->IsMenuIconVisible();
bool mainApp = pPackageAppInfo->IsMainApp();
- String tempIconPath = pPackageAppInfoImpl->GetAppTempIconPath();
+
+ int size = 0;
+ char* pIcon = pPackageAppInfoImpl->GetAppMenuIconBufferN(size);
+ if (pIcon)
+ {
+ pImpl->SetAppMenuIconBuffer(pIcon, size);
+ delete pIcon;
+ }
pImpl->SetAppId(appId);
pImpl->SetAppName(appName);
pImpl->SetAppDisplayName(appDisplayName);
pImpl->SetMenuIconVisible(menuIconVisible);
pImpl->SetMainApp(mainApp);
- pImpl->SetAppTempIconPath(tempIconPath);
return pInfo.release();
}
return true;
}
-ArrayList*
+IList*
_PackageInfoImpl::GetPrivilegeListN(void) const
{
- SysTryReturn(NID_APP, __pPrivilegeList, null, E_SYSTEM, "__pPrivilegeList must not be null.");
-
result r = E_SUCCESS;
std::unique_ptr< ArrayList > pPrivilegeList(new (std::nothrow) ArrayList);
SysTryReturn(NID_APP, pPrivilegeList, null, E_OUT_OF_MEMORY, "pPrivilegeList must not be null.");
pPrivilegeList->Construct();
- for (int i = 0; i < __pPrivilegeList->GetCount(); i++)
+ if (__fromDatabase)
+ {
+ SysTryReturn(NID_APP, __id.IsEmpty() == false, null, E_SYSTEM, "__id is empty.");
+
+ std::unique_ptr< IList > pList(_PrivilegeManager::GetPrivilegeListN(__id));
+ if (pList == null)
+ {
+ SysLog(NID_APP, "_PrivilegeManager::GetPrivilegeListN() is null.");
+ return null;
+ }
+
+ for (int i = 0; i < pList->GetCount(); i++)
+ {
+ String* pPrivilege = dynamic_cast < String* >(pList->GetAt(i));
+ if (pPrivilege)
+ {
+ std::unique_ptr< PrivilegeInfo > pPrivilegeInfo(new (std::nothrow) PrivilegeInfo);
+ SysTryReturn(NID_APP, pPrivilegeInfo, null, E_OUT_OF_MEMORY, "pPrivilegeInfo must not be null.");
+
+ r = pPrivilegeInfo->Construct(*pPrivilege);
+ SysTryReturn(NID_APP, !IsFailed(r), null, E_SYSTEM, "pPrivilegeInfo->Construct() failed.");
+
+ r = pPrivilegeList->Add(*pPrivilegeInfo.release());
+ SysTryReturn(NID_APP, !IsFailed(r), null, E_SYSTEM, "pPrivilegeList->Add() failed.");
+ }
+ }
+ }
+ else
{
- String* pPrivilege = dynamic_cast < String* >(__pPrivilegeList->GetAt(i));
- if (pPrivilege)
+ if (__pPrivilegeList)
{
- std::unique_ptr< PrivilegeInfo > pPrivilegeInfo(new (std::nothrow) PrivilegeInfo);
- SysTryReturn(NID_APP, pPrivilegeInfo, null, E_OUT_OF_MEMORY, "pPrivilegeInfo must not be null.");
+ for (int i = 0; i < __pPrivilegeList->GetCount(); i++)
+ {
+ String* pPrivilege = dynamic_cast < String* >(__pPrivilegeList->GetAt(i));
+ if (pPrivilege)
+ {
+ std::unique_ptr< PrivilegeInfo > pPrivilegeInfo(new (std::nothrow) PrivilegeInfo);
+ SysTryReturn(NID_APP, pPrivilegeInfo, null, E_OUT_OF_MEMORY, "pPrivilegeInfo must not be null.");
- r = pPrivilegeInfo->Construct(*pPrivilege);
- SysTryReturn(NID_APP, !IsFailed(r), null, E_SYSTEM, "pPrivilegeInfo->Construct() failed.");
+ r = pPrivilegeInfo->Construct(*pPrivilege);
+ SysTryReturn(NID_APP, !IsFailed(r), null, E_SYSTEM, "pPrivilegeInfo->Construct() failed.");
- r = pPrivilegeList->Add(*pPrivilegeInfo.release());
- SysTryReturn(NID_APP, !IsFailed(r), null, E_SYSTEM, "pPrivilegeList->Add() failed.");
+ r = pPrivilegeList->Add(*pPrivilegeInfo.release());
+ SysTryReturn(NID_APP, !IsFailed(r), null, E_SYSTEM, "pPrivilegeList->Add() failed.");
+ }
+ }
}
- }
+ }
if (pPrivilegeList->GetCount() <= 0)
{
int installedTime = 0;
pkgmgrinfo_installed_storage storage = PMINFO_INTERNAL_STORAGE;
bool removable = true;
+ bool movable = true;
bool preloaded = true;
+ bool updated = true;
std::unique_ptr<char[]> pPackageId(_StringConverter::CopyToCharArrayN(packageId));
SysTryReturnResult(NID_APP, pPackageId, E_OUT_OF_MEMORY, "pPackageId is null");
SysLog(NID_APP, "pkgmgrinfo_pkginfo_is_removable() is failed. result = [%d]", result);
}
- result = pkgmgrinfo_pkginfo_is_preload(__packageInfoHandle, &preloaded);
+ result = pkgmgrinfo_pkginfo_is_movable(__packageInfoHandle, &movable);
+ if (result == PMINFO_R_OK)
+ {
+ __movable = movable;
+ }
+ else
+ {
+ SysLog(NID_APP, "pkgmgrinfo_pkginfo_is_movable() is failed. result = [%d]", result);
+ }
+
+ result = pkgmgrinfo_pkginfo_is_update(__packageInfoHandle, &updated);
if (result == PMINFO_R_OK)
{
- if (preloaded == false)
+ if (updated == true)
{
__downloaded = true;
}
+ else
+ {
+ result = pkgmgrinfo_pkginfo_is_preload(__packageInfoHandle, &preloaded);
+ if (result == PMINFO_R_OK)
+ {
+ if (preloaded == true)
+ {
+ __downloaded = false;
+ }
+ else
+ {
+ __downloaded = true;
+ }
+ }
+ else
+ {
+ SysLog(NID_APP, "pkgmgrinfo_pkginfo_is_preload() is failed. result = [%d]", result);
+ }
+ }
}
else
{
- SysLog(NID_APP, "pkgmgrinfo_pkginfo_is_preload() is failed. result = [%d]", result);
+ SysLog(NID_APP, "pkgmgrinfo_pkginfo_is_update() is failed. result = [%d]", result);
}
result = pkgmgrinfo_pkginfo_get_description(__packageInfoHandle, &pDescription);
SysLog(NID_APP, "pkgmgrinfo_pkginfo_get_root_path() is failed. result = [%d]", result);
}
- SysLog(NID_APP, "package(%ls), version(%ls), type(%ls), displayName(%ls), uninstallable(%d), downloaded(%d), "
- "externalStorage(%d), mainApp(%ls), storeClient(%ls), appRootPath(%ls)",
- __id.GetPointer(), __version.GetPointer(), __type.GetPointer(), __displayName.GetPointer(), __uninstallable, __downloaded,
- __externalStorage, __mainAppId.GetPointer(), __storeClientId.GetPointer(), __appRootPath.GetPointer());
+ SysLog(NID_APP, "package(%ls), version(%ls), type(%ls), displayName(%ls), uninstallable(%d), downloaded(%d), updated(%d), preloaded(%d)"
+ "movable(%d), externalStorage(%d), mainApp(%ls), storeClient(%ls), appRootPath(%ls)",
+ __id.GetPointer(), __version.GetPointer(), __type.GetPointer(), __displayName.GetPointer(), __uninstallable, __downloaded, updated, preloaded,
+ __movable, __externalStorage, __mainAppId.GetPointer(), __storeClientId.GetPointer(), __appRootPath.GetPointer());
return r;
}