#include <FIoDatabase.h>
#include <FIoDbEnumerator.h>
#include <FIoDbStatement.h>
+#include <FIoFile.h>
#include <FBaseSysLog.h>
#include <FBaseUtilStringTokenizer.h>
#include <FSecPrivilegeInfo.h>
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.");
+ SysTryReturn(NID_APP, __type.IsEmpty() == false, 0, E_SYSTEM, "type 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);
- }
+ std::unique_ptr<char[]> pType(_StringConverter::CopyToCharArrayN(__type));
+ SysTryReturn(NID_APP, pType, 0, E_OUT_OF_MEMORY, "pType is null.");
+
+ 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, %s)", pType.get(), pPackage.get());
+ size = pkgmgr_client_request_service(PM_REQUEST_GET_SIZE, 0, pClient, pType.get(), 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.");
+ SysTryReturn(NID_APP, __type.IsEmpty() == false, 0, E_SYSTEM, "type 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);
- }
+ std::unique_ptr<char[]> pType(_StringConverter::CopyToCharArrayN(__type));
+ SysTryReturn(NID_APP, pType, 0, E_OUT_OF_MEMORY, "pType is null.");
+
+ 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, %s)", pType.get(), pPackage.get());
+ dataSize = pkgmgr_client_request_service(PM_REQUEST_GET_SIZE, 1, pClient, pType.get(), 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();
}
}
else
{
- SysTryReturn(NID_APP, __pPrivilegeList, null, E_SYSTEM, "__pPrivilegeList must not be null.");
-
- for (int i = 0; i < __pPrivilegeList->GetCount(); i++)
+ if (__pPrivilegeList)
{
- String* pPrivilege = dynamic_cast < String* >(__pPrivilegeList->GetAt(i));
- if (pPrivilege)
+ for (int i = 0; i < __pPrivilegeList->GetCount(); i++)
{
- std::unique_ptr< PrivilegeInfo > pPrivilegeInfo(new (std::nothrow) PrivilegeInfo);
- SysTryReturn(NID_APP, pPrivilegeInfo, null, E_OUT_OF_MEMORY, "pPrivilegeInfo must not be null.");
+ 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)
return r;
}
+bool
+_PackageInfoImpl::IsPreloaded(void) const
+{
+ return __preloaded;
+}
+
+bool
+_PackageInfoImpl::IsUpdated(void) const
+{
+ return __updated;
+}
+
result
_PackageInfoImpl::AddPackageAppInfo(const PackageAppInfo& packageAppInfo)
{
, __uninstallable(true)
, __movable(false)
, __downloaded(false)
+ , __preloaded(false)
+ , __updated(false)
, __iconAvailable(false)
, __externalStorage(false)
, __fromDatabase(false)
int installedTime = 0;
pkgmgrinfo_installed_storage storage = PMINFO_INTERNAL_STORAGE;
bool removable = true;
- bool preloaded = true;
+ bool movable = true;
+ bool preloaded = false;
+ bool updated = false;
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_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_preload(__packageInfoHandle, &preloaded);
if (result == PMINFO_R_OK)
{
- if (preloaded == false)
- {
- __downloaded = true;
- }
+ __preloaded = preloaded;
}
else
{
SysLog(NID_APP, "pkgmgrinfo_pkginfo_is_preload() is failed. result = [%d]", result);
}
+ result = pkgmgrinfo_pkginfo_is_update(__packageInfoHandle, &updated);
+ if (result == PMINFO_R_OK)
+ {
+ __updated = updated;
+ }
+ else
+ {
+ SysLog(NID_APP, "pkgmgrinfo_pkginfo_is_update() is failed. result = [%d]", result);
+ }
+
+ if (updated == true)
+ {
+ __downloaded = true;
+ }
+ else
+ {
+ if (preloaded == true)
+ {
+ __downloaded = false;
+ }
+ else
+ {
+ __downloaded = true;
+ }
+ }
+
result = pkgmgrinfo_pkginfo_get_description(__packageInfoHandle, &pDescription);
if (result == PMINFO_R_OK)
{
result = pkgmgrinfo_pkginfo_get_installed_time(__packageInfoHandle, &installedTime);
if (result == PMINFO_R_OK)
{
- SysLog(NID_APP, "pkgmgrinfo_pkginfo_get_installed_time(): installedTime = [%d]", installedTime);
-
time_t dateTime = (time_t) installedTime;
struct tm* pGmTime = null;
DateTime tempTime;
tempTime.SetValue(pGmTime->tm_year + 1900, pGmTime->tm_mon + 1, pGmTime->tm_mday, pGmTime->tm_hour, pGmTime->tm_min, pGmTime->tm_sec);
__dateTime = tempTime;
- SysLog(NID_APP, "Time %d %d/%d, %d:%d:%d", tempTime.GetYear(), tempTime.GetMonth(), tempTime.GetDay(), tempTime.GetHour(), tempTime.GetMinute(), tempTime.GetSecond());
}
}
else
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;
}