{
if (pArg->__install)
{
- SysLog(NID_APP, "Installation is Completed. [PackageId = %ls]", pArg->__packageId.GetPointer());
+ SysLog(NID_APP, "Installation is Completed. [Package = %ls]", pArg->__packageId.GetPointer());
pListener->OnPackageInstallationCompleted(pArg->__packageId, PACKAGE_INSTALLATION_RESULT_SUCCESS);
}
else
{
- SysLog(NID_APP, "Uninstallation is Completed. [PackageId = %ls]", pArg->__packageId.GetPointer());
+ SysLog(NID_APP, "Uninstallation is Completed. [Package = %ls]", pArg->__packageId.GetPointer());
pListener->OnPackageUninstallationCompleted(pArg->__packageId, true);
}
}
{
if (pArg->__install)
{
- SysLog(NID_APP, "Installation is Completed(Error). [PackageId = %ls]", pArg->__packageId.GetPointer());
+ SysLog(NID_APP, "Installation is Completed(Error). [Package = %ls]", pArg->__packageId.GetPointer());
pListener->OnPackageInstallationCompleted(pArg->__packageId, PACKAGE_INSTALLATION_RESULT_INVALID_PACKAGE);
}
else
{
- SysLog(NID_APP, "Uninstallation is Completed(Error). [PackageId = %ls]", pArg->__packageId.GetPointer());
+ SysLog(NID_APP, "Uninstallation is Completed(Error). [Package = %ls]", pArg->__packageId.GetPointer());
pListener->OnPackageUninstallationCompleted(pArg->__packageId, false);
}
}
SysTryReturn(NID_APP, pAppId, L"", E_OUT_OF_MEMORY, "pAppId is null");
result = pkgmgrinfo_appinfo_get_appinfo(pAppId.get(), &pAppInfoHandle);
- SysTryReturn(NID_APP, result == 0, L"", E_PKG_NOT_INSTALLED, "pkgmgrinfo_appinfo_get_appinfo() failed. result=[%d], appId=[%s]", result, pAppId.get());
+ SysTryReturn(NID_APP, result == 0, L"", E_PKG_NOT_INSTALLED, "pkgmgrinfo_appinfo_get_appinfo() failed. result=[%d], app=[%s]", result, pAppId.get());
result = pkgmgrinfo_appinfo_get_pkgname(pAppInfoHandle, &pPackageId);
}
}
- SysLog(NID_APP, "appId = [%ls], packageId = [%ls]", appId.GetPointer(), packageId.GetPointer());
+ SysLog(NID_APP, "app = [%ls], package = [%ls]", appId.GetPointer(), packageId.GetPointer());
return packageId;
}
_PackageInfoImpl* pPackageInfoImpl = _PackageInfoImpl::GetInstance(pPackageInfo);
r = pPackageInfoImpl->Construct(packageId);
- SysTryCatch(NID_APP, r == E_SUCCESS, , r, "[E_PKG_NOT_INSTALLED] packageId (%ls) is not found.", packageId.GetPointer());
+ SysTryCatch(NID_APP, r == E_SUCCESS, , r, "[E_PKG_NOT_INSTALLED] package (%ls) is not found.", packageId.GetPointer());
return pPackageInfo;
_PackageAppInfoImpl* pPackageAppInfoImpl = _PackageAppInfoImpl::GetInstance(pPackageAppInfo);
r = pPackageAppInfoImpl->Construct(appId);
- SysTryCatch(NID_APP, r == E_SUCCESS, , r, "[E_PKG_NOT_INSTALLED] appId (%ls) is not found.", appId.GetPointer());
+ SysTryCatch(NID_APP, r == E_SUCCESS, , r, "[E_PKG_NOT_INSTALLED] app (%ls) is not found.", appId.GetPointer());
return pPackageAppInfo;
result = pkgmgrinfo_pkginfo_get_pkginfo(pPackageId.get(), &pPackageInfoHandle);
if (result != 0)
{
- SysLog(NID_APP, "pkgmgrinfo_pkginfo_get_pkginfo() failed. result=[%d], packageId=[%s]", result, pPackageId.get());
+ SysLog(NID_APP, "pkgmgrinfo_pkginfo_get_pkginfo() failed. result=[%d], package=[%s]", result, pPackageId.get());
return false;
}
pkgmgrinfo_pkginfo_destroy_pkginfo(pPackageInfoHandle);
}
- SysLog(NID_APP, "packageId = [%ls] is installed.", packageId.GetPointer());
+ SysLog(NID_APP, "package = [%ls] is installed.", packageId.GetPointer());
return true;
}
SysTryReturnResult(NID_APP, extension.IsEmpty() == false, E_INVALID_ARG, "extension is empty.");
std::unique_ptr<char[]> pPackagePath(_StringConverter::CopyToCharArrayN(packagePath));
- SysTryReturnResult(NID_APP, pPackagePath, E_OUT_OF_MEMORY, "pPackagePath is null");
+ SysTryReturnResult(NID_APP, pPackagePath, E_OUT_OF_MEMORY, "pPackagePath is null.");
std::unique_ptr<char[]> pExtension(_StringConverter::CopyToCharArrayN(extension));
- SysTryReturnResult(NID_APP, pExtension, E_OUT_OF_MEMORY, "pExtension is null");
+ SysTryReturnResult(NID_APP, pExtension, E_OUT_OF_MEMORY, "pExtension is null.");
if ((strcasecmp(pExtension.get(), "tpk") == 0) || (strcasecmp(pExtension.get(), "wgt") == 0))
{
- SysLog(NID_APP, "packageId = [%ls], packagePath = [%s], extension = [%s]", packageId.GetPointer(), pPackagePath.get(), pExtension.get());
+ SysLog(NID_APP, "package = [%ls], packagePath = [%s], extension = [%s]", packageId.GetPointer(), pPackagePath.get(), pExtension.get());
}
else
{
return E_SYSTEM;
}
+ // optionalData = 12345abcde:StoreClientId=XXXXX12345.TizenStore
+ AppId StoreClientId = _AppInfo::GetApplicationId();
+ String optionalData;
+ optionalData.Append(packageId);
+ optionalData.Append(":StoreClientId=");
+ optionalData.Append(StoreClientId);
+
+ std::unique_ptr<char[]> pOptionalData(_StringConverter::CopyToCharArrayN(optionalData));
+ SysTryReturnResult(NID_APP, pOptionalData, E_OUT_OF_MEMORY, "pOptionalData is null.");
+
+ SysLog(NID_APP, "optionalData = [%s]", pOptionalData.get());
+
result r = E_SUCCESS;
_PackageManagerProxy packageManagerProxy;
r = packageManagerProxy.Construct();
SysTryReturnResult(NID_APP, __pRequestClient != null, E_SYSTEM, "pkgmgr_client_new(PC_REQUEST) failed");
}
- int res = pkgmgr_client_install(__pRequestClient, pExtension.get(), null, pPackagePath.get(), null, PM_QUIET, InstallationEventHandler, pListener);
+ int res = pkgmgr_client_install(__pRequestClient, pExtension.get(), null, pPackagePath.get(), pOptionalData.get(), PM_QUIET, InstallationEventHandler, pListener);
if (res < PKGMGR_R_OK)
{
SysTryReturnResult(NID_APP, pPackageId != null, E_OUT_OF_MEMORY, "pPackageId is null");
res = pkgmgrinfo_pkginfo_get_pkginfo(pPackageId.get(), &pPackageInfoHandle);
- SysTryReturnResult(NID_APP, res == 0, E_SYSTEM, "pkgmgrinfo_pkginfo_get_pkginfo() failed. result=[%d], packageId=[%s]", res, pPackageId.get());
+ SysTryReturnResult(NID_APP, res == 0, E_SYSTEM, "pkgmgrinfo_pkginfo_get_pkginfo() failed. result=[%d], package=[%s]", res, pPackageId.get());
res = pkgmgrinfo_pkginfo_get_type(pPackageInfoHandle, &pType);
- SysTryReturnResult(NID_APP, res == 0, E_SYSTEM, "pkgmgrinfo_pkginfo_get_type() failed. result=[%d], packageId=[%s]", res, pPackageId.get());
+ SysTryReturnResult(NID_APP, res == 0, E_SYSTEM, "pkgmgrinfo_pkginfo_get_type() failed. result=[%d], package=[%s]", res, pPackageId.get());
if (__pRequestClient == null)
{
}
res = pkgmgr_client_uninstall(__pRequestClient, pType, pPackageId.get(), PM_QUIET, UninstallationEventHandler, pListener);
- SysLog(NID_APP, "pkgmgr_client_uninstall - req_id=[%d], packageId=[%s], type=[%s]", res, pPackageId.get(), pType);
+ SysLog(NID_APP, "pkgmgr_client_uninstall - req_id=[%d], package=[%s], type=[%s]", res, pPackageId.get(), pType);
if(pPackageInfoHandle)
{
SysTryReturnResult(NID_APP, pPackageId != null, E_OUT_OF_MEMORY, "pPackageId is null");
res = pkgmgrinfo_pkginfo_get_pkginfo(pPackageId.get(), &packageInfoHandle);
- SysTryReturnResult(NID_APP, res == 0, E_SYSTEM, "pkgmgrinfo_pkginfo_get_pkginfo() failed. result=[%d], packageId=[%s]", res, pPackageId.get());
+ SysTryReturnResult(NID_APP, res == 0, E_SYSTEM, "pkgmgrinfo_pkginfo_get_pkginfo() failed. result=[%d], package=[%s]", res, pPackageId.get());
res = pkgmgrinfo_pkginfo_get_type(packageInfoHandle, &pType);
- SysTryReturnResult(NID_APP, res == 0, E_SYSTEM, "pkgmgrinfo_pkginfo_get_type() failed. result=[%d], packageId=[%s]", res, pPackageId.get());
+ SysTryReturnResult(NID_APP, res == 0, E_SYSTEM, "pkgmgrinfo_pkginfo_get_type() failed. result=[%d], package=[%s]", res, pPackageId.get());
res = pkgmgrinfo_pkginfo_get_installed_storage(packageInfoHandle, &storage);
- SysTryReturnResult(NID_APP, res == 0, E_SYSTEM, "pkgmgrinfo_pkginfo_get_installed_storage() failed. result=[%d], packageId=[%s]", res, pPackageId.get());
+ SysTryReturnResult(NID_APP, res == 0, E_SYSTEM, "pkgmgrinfo_pkginfo_get_installed_storage() failed. result=[%d], package=[%s]", res, pPackageId.get());
if (storage == PMINFO_EXTERNAL_STORAGE)
{
SysTryReturnResult(NID_APP, pPackageId != null, E_OUT_OF_MEMORY, "pPackageId is null");
res = pkgmgrinfo_pkginfo_get_pkginfo(pPackageId.get(), &packageInfoHandle);
- SysTryReturnResult(NID_APP, res == 0, E_SYSTEM, "pkgmgrinfo_pkginfo_get_pkginfo() failed. result=[%d], packageId=[%s]", res, pPackageId.get());
+ SysTryReturnResult(NID_APP, res == 0, E_SYSTEM, "pkgmgrinfo_pkginfo_get_pkginfo() failed. result=[%d], package=[%s]", res, pPackageId.get());
res = pkgmgrinfo_pkginfo_get_type(packageInfoHandle, &pType);
- SysTryReturnResult(NID_APP, res == 0, E_SYSTEM, "pkgmgrinfo_pkginfo_get_type() failed. result=[%d], packageId=[%s]", res, pPackageId.get());
+ SysTryReturnResult(NID_APP, res == 0, E_SYSTEM, "pkgmgrinfo_pkginfo_get_type() failed. result=[%d], package=[%s]", res, pPackageId.get());
res = pkgmgrinfo_pkginfo_get_installed_storage(packageInfoHandle, &storage);
- SysTryReturnResult(NID_APP, res == 0, E_SYSTEM, "pkgmgrinfo_pkginfo_get_installed_storage() failed. result=[%d], packageId=[%s]", res, pPackageId.get());
+ SysTryReturnResult(NID_APP, res == 0, E_SYSTEM, "pkgmgrinfo_pkginfo_get_installed_storage() failed. result=[%d], package=[%s]", res, pPackageId.get());
if (storage == PMINFO_INTERNAL_STORAGE)
{
int
_PackageManagerImpl::InstallationEventHandler(int reqId, const char* pType, const char* pPackageId, const char* pKey, const char* pVal, const void* pMsg, void* pData)
{
- SysLog(NID_APP, "reqId[%d], Type[%s], PackageId[%s], Key[%s], Val[%s]", reqId, pType, pPackageId, pKey, pVal);
+ SysLog(NID_APP, "reqId[%d], Type[%s], Package[%s], Key[%s], Val[%s]", reqId, pType, pPackageId, pKey, pVal);
if (pData)
{
int
_PackageManagerImpl::UninstallationEventHandler(int reqId, const char* pType, const char* pPackageId, const char* pKey, const char* pVal, const void* pMsg, void* pData)
{
- SysLog(NID_APP, "reqId[%d], Type[%s], PackageId[%s], Key[%s], Val[%s]", reqId, pType, pPackageId, pKey, pVal);
+ SysLog(NID_APP, "reqId[%d], Type[%s], Package[%s], Key[%s], Val[%s]", reqId, pType, pPackageId, pKey, pVal);
if (pData)
{
SysLog(NID_APP, "packagePath = [%s], extension = [%s]", pPackagePath.get(), pExtension.get());
bool res = true;
+ result r = E_SUCCESS;
if (strcasecmp(pExtension.get(), "tpk") == 0)
{
_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);
pPackageInfoImpl->SetDisplayName(pPkgInfo->label);
pPackageInfoImpl->SetDescription(pPkgInfo->pkg_description);
pPackageInfoImpl->SetAuthor(pPkgInfo->author);
+ pPackageInfoImpl->SetMainAppId(pPkgInfo->pkg_name);
if (pPkgInfo->privilege_list)
{
}
std::unique_ptr< PackageAppInfo > pPackageAppInfo(new (std::nothrow) PackageAppInfo);
- SysTryReturn(NID_APP, pPackageAppInfo, null, E_OUT_OF_MEMORY, "pPackageAppInfo instance must not be null.");
+ if (pPackageAppInfo)
+ {
+ _PackageAppInfoImpl* pPackageAppInfoImpl = _PackageAppInfoImpl::GetInstance(pPackageAppInfo.get());
- _PackageAppInfoImpl* pPackageAppInfoImpl = _PackageAppInfoImpl::GetInstance(pPackageAppInfo.get());
+ pPackageAppInfoImpl->SetAppId(pPkgInfo->pkg_name);
+ pPackageAppInfoImpl->SetAppName(pPkgInfo->label);
+ pPackageAppInfoImpl->SetAppDisplayName(pPkgInfo->label);
+ pPackageAppInfoImpl->SetMainApp(true);
+ if ((pPkgInfo->icon_buf) && (pPkgInfo->icon_size > 0))
+ {
+ String iconPath("/tmp/icon.png");
+ File file;
+ r = file.Construct(iconPath, "w+");
+ r = file.Write(pPkgInfo->icon_buf, pPkgInfo->icon_size);
- pPackageAppInfoImpl->SetAppId(pPkgInfo->pkg_name);
- pPackageAppInfoImpl->SetAppName(pPkgInfo->label);
- pPackageAppInfoImpl->SetAppDisplayName(pPkgInfo->label);
- pPackageAppInfoImpl->SetMainApp(true);
- // icon - pPkgInfo->icon_buf
+ pPackageAppInfoImpl->SetAppTempIconPath(iconPath);
+ }
- pPackageInfoImpl->AddPackageAppInfo(*pPackageAppInfo.release());
+ pPackageInfoImpl->AddPackageAppInfo(*pPackageAppInfo.release());
+ }
+ else
+ {
+ SysLog(NID_APP, "pPackageAppInfo instance must not be null.");
+ pkgmgr_client_free_pkginfo(pPkgmgrInfo);
+ return null;
+ }
pkgmgr_client_free_pkginfo(pPkgmgrInfo);
}
std::unique_ptr<IMapEnumerator> pEnum(packageFilterMap.GetMapEnumeratorN());
SysTryReturn(NID_APP, pEnum, null, E_INVALID_ARG, "GetMapEnumeratorN() is failed.");
- int res = 0;
- ArrayList* pList = null;
+ std::unique_ptr< ArrayList > pList(new (std::nothrow) ArrayList());
+ SysTryReturn(NID_APP, pList, null, E_OUT_OF_MEMORY, "pList is null.");
+
+ pList->Construct();
+
+ int res = PMINFO_R_OK;
pkgmgrinfo_pkginfo_filter_h handle = null;
res = pkgmgrinfo_pkginfo_filter_create(&handle);
}
}
- pList = new (std::nothrow) ArrayList();
- SysTryCatch(NID_APP, pList, , E_OUT_OF_MEMORY, "ArrayList creation failure.");
- pList->Construct();
-
- res = pkgmgrinfo_pkginfo_filter_foreach_pkginfo(handle, PackageInfoHandler, pList);
- if (res != 0)
- {
- SysLog(NID_APP, "pkgmgrinfo_pkginfo_filter_foreach_pkginfo() is failed. result = [%d]", res);
-
- pList->RemoveAll(true);
- pList = null;
- }
+ res = pkgmgrinfo_pkginfo_filter_foreach_pkginfo(handle, PackageInfoHandler, pList.get());
+ SysTryCatch(NID_APP, res == PMINFO_R_OK, , E_SYSTEM, "pkgmgrinfo_pkginfo_filter_foreach_pkginfo() failed. [%d]", res);
CATCH:
if (handle)
pkgmgrinfo_pkginfo_filter_destroy(handle);
}
- return pList;
+ if (pList->GetCount() <= 0)
+ {
+ AppLog("pList's count is 0.");
+ return null;
+ }
+
+ return pList.release();
}
IList*
{
SysTryReturn(NID_APP, packageAppFilterMap.GetCount() > 0, null, E_INVALID_ARG, "packageAppFilterMap.GetCount() is invalid.");
- std::unique_ptr<IMapEnumerator> pEnum(packageAppFilterMap.GetMapEnumeratorN());
+ std::unique_ptr< IMapEnumerator > pEnum(packageAppFilterMap.GetMapEnumeratorN());
SysTryReturn(NID_APP, pEnum, null, E_INVALID_ARG, "GetMapEnumeratorN() is failed.");
+ std::unique_ptr< ArrayList > pList(new (std::nothrow) ArrayList());
+ SysTryReturn(NID_APP, pList, null, E_OUT_OF_MEMORY, "pList is null.");
+
+ pList->Construct();
+
int res = 0;
- ArrayList* pList = null;
+ bool definedKey = false;
+ bool metadataKey = false;
+ ArrayList list;
+ ArrayList metadataList;
+ ArrayList appIdList;
pkgmgrinfo_appinfo_filter_h handle = null;
+ pkgmgrinfo_appinfo_metadata_filter_h metaHandle = null;
res = pkgmgrinfo_appinfo_filter_create(&handle);
- SysTryReturn(NID_APP, res == PMINFO_R_OK, null, E_SYSTEM, "pkgmgrinfo_appinfo_filter_create() is failed. [%d]", res);
+ SysTryCatch(NID_APP, res == PMINFO_R_OK, , E_SYSTEM, "pkgmgrinfo_appinfo_filter_create() is failed. [%d]", res);
+
+ res = pkgmgrinfo_appinfo_metadata_filter_create(&metaHandle);
+ SysTryCatch(NID_APP, res == PMINFO_R_OK, , E_SYSTEM, "pkgmgrinfo_appinfo_metadata_filter_create() is failed. [%d]", res);
while(pEnum->MoveNext() == E_SUCCESS)
{
- String* pKey = static_cast<String*>(pEnum->GetKey());
+ String* pKey = static_cast< String* >(pEnum->GetKey());
SysTryCatch(NID_APP, pKey, , E_INVALID_ARG, "GetKey() is failed.");
if ((*pKey) == PACKAGE_APP_FILTER_MENUICON_VISIBLE)
{
- Boolean* pVal = static_cast<Boolean*>(pEnum->GetValue());
+ definedKey = true;
+
+ Boolean* pVal = static_cast< Boolean* >(pEnum->GetValue());
SysTryCatch(NID_APP, pVal, , E_INVALID_ARG, "GetValue() is failed.");
bool nodisplay = !(pVal->ToBool());
res = pkgmgrinfo_appinfo_filter_add_bool(handle, PMINFO_APPINFO_PROP_APP_NODISPLAY, nodisplay);
SysTryCatch(NID_APP, res == PMINFO_R_OK, , E_SYSTEM, "pkgmgrinfo_pkginfo_filter_add_bool(NODISPLAY, %d) is failed. [%d]", nodisplay, res);
}
- else if ((*pKey) == PACKAGE_APP_FILTER_CATEGORY)
+ else if ((*pKey) == PACKAGE_APP_FILTER_CATEGORY_HOMEAPP || (*pKey) == PACKAGE_APP_FILTER_CATEGORY_LOCKAPP
+ || (*pKey) == PACKAGE_APP_FILTER_CATEGORY_MENUAPP)
{
- String* pVal = static_cast<String*>(pEnum->GetValue());
+ definedKey = true;
+
+ std::unique_ptr<char[]> pDefinedKey(_StringConverter::CopyToCharArrayN(*pKey));
+ SysTryCatch(NID_APP, pDefinedKey, , E_OUT_OF_MEMORY, "pDefinedKey is null.");
+
+ Boolean* pVal = static_cast< Boolean* >(pEnum->GetValue());
+ SysTryCatch(NID_APP, pVal, , E_INVALID_ARG, "GetValue() is failed.");
+
+ SysLog(NID_APP, "Key[%ls], Value[%d]", pKey->GetPointer(), pVal->ToBool());
+ SysTryCatch(NID_APP, pVal->ToBool() == true, , E_INVALID_ARG, "Value(false) is not allowed.");
+
+ res = pkgmgrinfo_appinfo_filter_add_string(handle, PMINFO_APPINFO_PROP_APP_CATEGORY, pDefinedKey.get());
+ SysTryCatch(NID_APP, res == PMINFO_R_OK, , E_SYSTEM, "pkgmgrinfo_appinfo_filter_add_string(CATEGORY, %s) is failed. [%d]", pDefinedKey.get(), res);
+ }
+ else
+ {
+ metadataKey = true;
+
+ String* pVal = static_cast< String* >(pEnum->GetValue());
SysTryCatch(NID_APP, pVal, , E_INVALID_ARG, "GetValue() is failed.");
SysLog(NID_APP, "Key[%ls], Value[%ls]", pKey->GetPointer(), pVal->GetPointer());
+ std::unique_ptr<char[]> pMetaKey(_StringConverter::CopyToCharArrayN(*pKey));
+ SysTryCatch(NID_APP, pMetaKey, , E_OUT_OF_MEMORY, "pMetaKey is null.");
+
std::unique_ptr<char[]> pValue(_StringConverter::CopyToCharArrayN(*pVal));
SysTryCatch(NID_APP, pValue, , E_OUT_OF_MEMORY, "pValue is null.");
- res = pkgmgrinfo_appinfo_filter_add_string(handle, PMINFO_APPINFO_PROP_APP_CATEGORY, pValue.get());
- SysTryCatch(NID_APP, res == PMINFO_R_OK, , E_SYSTEM, "pkgmgrinfo_appinfo_filter_add_string(CATEGORY, %s) is failed. [%d]", pValue.get(), res);
+ if ((*pVal) == L"*")
+ {
+ res = pkgmgrinfo_appinfo_metadata_filter_add(metaHandle, pMetaKey.get(), null);
+ SysTryCatch(NID_APP, res == PMINFO_R_OK, , E_SYSTEM, "pkgmgrinfo_appinfo_metadata_filter_add(%s, null) is failed. [%d]", pMetaKey.get(), res);
+ }
+ else
+ {
+ res = pkgmgrinfo_appinfo_metadata_filter_add(metaHandle, pMetaKey.get(), pValue.get());
+ SysTryCatch(NID_APP, res == PMINFO_R_OK, , E_SYSTEM, "pkgmgrinfo_appinfo_metadata_filter_add(%s, %s) is failed. [%d]", pMetaKey.get(), pValue.get(), res);
+ }
}
- else
+ }
+
+ if ((definedKey == true) && (metadataKey == false))
+ {
+ res = pkgmgrinfo_appinfo_filter_foreach_appinfo(handle, PackageAppInfoHandler, pList.get());
+ SysTryCatch(NID_APP, res == PMINFO_R_OK, , E_SYSTEM, "pkgmgrinfo_appinfo_filter_foreach_appinfo() failed. [%d]", res);
+ }
+ else if ((definedKey == false) && (metadataKey == true))
+ {
+ res = pkgmgrinfo_appinfo_metadata_filter_foreach(metaHandle, PackageAppInfoMetadataHandler, pList.get());
+ SysTryCatch(NID_APP, res == PMINFO_R_OK, , E_SYSTEM, "pkgmgrinfo_appinfo_metadata_filter_foreach() failed. [%d]", res);
+ }
+ else
+ {
+ list.Construct();
+
+ res = pkgmgrinfo_appinfo_filter_foreach_appinfo(handle, PackageAppInfoHandler, &list);
+ if (res != PMINFO_R_OK)
{
- SysTryCatch(NID_APP, false, , E_INVALID_ARG, "Invalid key(%ls)", pKey->GetPointer());
+ SysLog(NID_APP, "pkgmgrinfo_appinfo_filter_foreach_appinfo() is failed. result = [%d]", res);
+ goto CATCH;
}
- }
- pList = new (std::nothrow) ArrayList();
- SysTryCatch(NID_APP, pList, , E_OUT_OF_MEMORY, "ArrayList creation failure.");
- pList->Construct();
+ metadataList.Construct();
- res = pkgmgrinfo_appinfo_filter_foreach_appinfo(handle, PackageAppInfoHandler, pList);
- if (res != 0)
- {
- SysLog(NID_APP, "pkgmgrinfo_appinfo_filter_foreach_appinfo() is failed. result = [%d]", res);
+ res = pkgmgrinfo_appinfo_metadata_filter_foreach(metaHandle, PackageAppInfoMetadataHandler, &metadataList);
+ if (res != PMINFO_R_OK)
+ {
+ SysLog(NID_APP, "pkgmgrinfo_appinfo_metadata_filter_foreach() is failed. result = [%d]", res);
+ goto CATCH;
+ }
- pList->RemoveAll(true);
- pList = null;
+ for (int i = 0; i < list.GetCount(); i++)
+ {
+ PackageAppInfo* pPackageAppInfo = dynamic_cast < PackageAppInfo* >(list.GetAt(i));
+ if (pPackageAppInfo)
+ {
+ AppLog("PackageAppFilter - App [%ls]", pPackageAppInfo->GetAppId().GetPointer());
+
+ std::unique_ptr< AppId > pAppId(new (std::nothrow) AppId(pPackageAppInfo->GetAppId()));
+ appIdList.Add(pAppId.release());
+ }
+ }
+
+ for (int j = 0; j < metadataList.GetCount(); j++)
+ {
+ PackageAppInfo* pPackageAppInfo = dynamic_cast < PackageAppInfo* >(metadataList.GetAt(j));
+ if (pPackageAppInfo)
+ {
+ AppId appId = pPackageAppInfo->GetAppId();
+
+ if (appIdList.Contains(appId) == true)
+ {
+ AppLog("App [%ls] is matched.", appId.GetPointer());
+
+ std::unique_ptr< PackageAppInfo > pAppInfo(new (std::nothrow) PackageAppInfo);
+ SysTryCatch(NID_APP, pAppInfo, , E_OUT_OF_MEMORY, "pAppInfo is null.");
+
+ _PackageAppInfoImpl* pPackageAppInfoImpl = _PackageAppInfoImpl::GetInstance(pAppInfo.get());
+ pPackageAppInfoImpl->Construct(appId);
+
+ pList->Add(pAppInfo.release());
+ }
+ else
+ {
+ AppLog("App [%ls] is not matched.", pPackageAppInfo->GetAppId().GetPointer());
+ }
+ }
+ }
}
CATCH:
pkgmgrinfo_appinfo_filter_destroy(handle);
}
- return pList;
+ if (metaHandle)
+ {
+ pkgmgrinfo_appinfo_metadata_filter_destroy(metaHandle);
+ }
+
+ if (pList->GetCount() <= 0)
+ {
+ AppLog("pList's count is 0.");
+ return null;
+ }
+
+ return pList.release();
}
IList*
_PackageManagerImpl::GetPackageAppInfoListN(const IMap& packageFilterMap, const IMap& packageAppFilterMap) const
{
- SysTryReturn(NID_APP, packageFilterMap.GetCount() > 0, null, E_INVALID_ARG, "packageFilterMap.GetCount() is invalid.");
- SysTryReturn(NID_APP, packageAppFilterMap.GetCount() > 0, null, E_INVALID_ARG, "packageAppFilterMap.GetCount() is invalid.");
+ SysTryReturn(NID_APP, packageFilterMap.GetCount() > 0, null, E_INVALID_ARG, "packageFilterMap Count is invalid.");
+ SysTryReturn(NID_APP, packageAppFilterMap.GetCount() > 0, null, E_INVALID_ARG, "packageAppFilterMap Count is invalid.");
- return null;
+ ArrayList appIdList;
+
+ std::unique_ptr< IList > pPackageFilterList(GetPackageInfoListN(packageFilterMap));
+ if (pPackageFilterList == null)
+ {
+ SysLog(NID_APP, "GetPackageInfoListN(packageFilterMap) is null.");
+ return null;
+ }
+
+ for (int i = 0; i < pPackageFilterList->GetCount(); i++)
+ {
+ PackageInfo* pPackageInfo = dynamic_cast < PackageInfo* >(pPackageFilterList->GetAt(i));
+ if (pPackageInfo)
+ {
+ std::unique_ptr< IList > pPackageAppInfoList(pPackageInfo->GetPackageAppInfoListN());
+ if (pPackageAppInfoList)
+ {
+ for (int j = 0; j < pPackageAppInfoList->GetCount(); j++)
+ {
+ PackageAppInfo* pPackageAppInfo = dynamic_cast < PackageAppInfo* >(pPackageAppInfoList->GetAt(j));
+ if (pPackageAppInfo)
+ {
+ AppLog("PackageFilter - App [%ls]", pPackageAppInfo->GetAppId().GetPointer());
+
+ std::unique_ptr< AppId > pAppId(new (std::nothrow) AppId(pPackageAppInfo->GetAppId()));
+ appIdList.Add(pAppId.release());
+ }
+ }
+ }
+ }
+ }
+
+ std::unique_ptr< ArrayList > pList(new (std::nothrow) ArrayList);
+ SysTryReturn(NID_APP, pList, null, E_OUT_OF_MEMORY, "pList is null.");
+
+ std::unique_ptr< IList > pAppFilterList(GetPackageAppInfoListN(packageAppFilterMap));
+ if (pAppFilterList == null)
+ {
+ SysLog(NID_APP, "GetPackageAppInfoListN(packageAppFilterMap) is null.");
+ return null;
+ }
+
+ for (int k = 0; k < pAppFilterList->GetCount(); k++)
+ {
+ PackageAppInfo* pPackageAppInfo = dynamic_cast < PackageAppInfo* >(pAppFilterList->GetAt(k));
+ if (pPackageAppInfo)
+ {
+ AppId appId = pPackageAppInfo->GetAppId();
+ AppLog("AppFilter - App [%ls]", appId.GetPointer());
+
+ if (appIdList.Contains(appId) == true)
+ {
+ AppLog("App [%ls] is matched.", appId.GetPointer());
+
+ std::unique_ptr< PackageAppInfo > pPackageAppInfo(new (std::nothrow) PackageAppInfo);
+ SysTryReturn(NID_APP, pPackageAppInfo, null, E_OUT_OF_MEMORY, "PackageAppInfo is null.");
+
+ _PackageAppInfoImpl* pPackageAppInfoImpl = _PackageAppInfoImpl::GetInstance(pPackageAppInfo.get());
+ pPackageAppInfoImpl->Construct(appId);
+
+ pList->Add(pPackageAppInfo.release());
+ }
+ else
+ {
+ AppLog("App [%ls] is not matched.", pPackageAppInfo->GetAppId().GetPointer());
+ }
+ }
+ }
+
+ if (pList->GetCount() <= 0)
+ {
+ AppLog("pList's count is 0.");
+ return null;
+ }
+
+ return pList.release();
}
int
res = pkgmgrinfo_appinfo_get_appid(handle, &pAppId);
SysTryReturn(NID_APP, res == PMINFO_R_OK, 0, E_SYSTEM, "pkgmgrinfo_appinfo_get_appid is failed. [%d]", res);
+ SysLog(NID_APP, "app = [%s]", pAppId);
+
std::unique_ptr<PackageAppInfo> pPackageAppInfo(new (std::nothrow) PackageAppInfo);
SysTryReturn(NID_APP, pPackageAppInfo, 0, E_OUT_OF_MEMORY, "pPackageAppInfo instance must not be null.");
return 0;
}
+int
+_PackageManagerImpl::PackageAppInfoMetadataHandler(const pkgmgrinfo_appinfo_h handle, void* pUserData)
+{
+ SysTryReturn(NID_APP, handle, 0, E_SYSTEM, "handle must not be null.");
+ SysTryReturn(NID_APP, pUserData, 0, E_SYSTEM, "pUserData must not be null.");
+
+ result r = E_SUCCESS;
+ int res = PMINFO_R_OK;
+ char* pAppId = null;
+ ArrayList* pList = (ArrayList*)pUserData;
+
+ res = pkgmgrinfo_appinfo_get_appid(handle, &pAppId);
+ SysTryReturn(NID_APP, res == PMINFO_R_OK, 0, E_SYSTEM, "pkgmgrinfo_appinfo_get_appid is failed. [%d]", res);
+
+ SysLog(NID_APP, "app = [%s]", pAppId);
+
+ std::unique_ptr< PackageAppInfo > pPackageAppInfo(new (std::nothrow) PackageAppInfo);
+ SysTryReturn(NID_APP, pPackageAppInfo, 0, E_OUT_OF_MEMORY, "pPackageAppInfo instance must not be null.");
+
+ _PackageAppInfoImpl* pPackageAppInfoImpl = _PackageAppInfoImpl::GetInstance(pPackageAppInfo.get());
+ r = pPackageAppInfoImpl->Construct(pAppId);
+ SysTryReturn(NID_APP, r == E_SUCCESS, 0, E_SYSTEM, "Construct(%s) is failed.", pAppId);
+
+ pList->Add(*pPackageAppInfo.release());
+
+ return 0;
+}
+
_PackageManagerImpl*
_PackageManagerImpl::GetInstance(void)
{
SysLog(NID_APP, "pEvent->Fire(*pEventArg) failed. [%s]", GetErrorMessage(r));
}
- SysLog(NID_APP, "PackageId = [%ls], Key = [%ls], Value = [%ls], install = [%d]", pEventArg->__packageId.GetPointer(), pEventArg->__eventKey.GetPointer(), pEventArg->__eventValue.GetPointer(), pEventArg->__install);
+ SysLog(NID_APP, "Package = [%ls], Key = [%ls], Value = [%ls], install = [%d]", pEventArg->__packageId.GetPointer(), pEventArg->__eventKey.GetPointer(), pEventArg->__eventValue.GetPointer(), pEventArg->__install);
}
else
{
{
SysTryReturn(NID_APP, handle != null, 0, E_SYSTEM, "[E_SYSTEM] handle must not be null.");
+ result r = E_SUCCESS;
int result = 0;
char* pPackage = null;
ArrayList* pList = (ArrayList*)pUserData;
- PackageInfo *pPackageInfo = new (std::nothrow) PackageInfo;
- SysTryReturn(NID_APP, pPackageInfo != null, 0, E_OUT_OF_MEMORY, "[E_OUT_OF_MEMORY] pPackageInfo instance must not be null.");
+ std::unique_ptr< PackageInfo > pPackageInfo(new (std::nothrow) PackageInfo);
+ SysTryReturn(NID_APP, pPackageInfo, null, E_OUT_OF_MEMORY, "pPackageInfo instance must not be null.");
- _PackageInfoImpl* pPackageInfoImpl = _PackageInfoImpl::GetInstance(pPackageInfo);
+ _PackageInfoImpl* pPackageInfoImpl = _PackageInfoImpl::GetInstance(pPackageInfo.get());
result = pkgmgrinfo_pkginfo_get_pkgname(handle, &pPackage);
if (result == 0)
SysLog(NID_APP, "pkgmgrinfo_pkginfo_get_pkgname() is failed. result = [%d]", result);
}
- pPackageInfoImpl->Construct(pPackage);
- pList->Add(*pPackageInfo);
+ r = pPackageInfoImpl->Construct(pPackage);
+ SysTryReturn(NID_APP, r == E_SUCCESS, -1, E_SYSTEM, "pPackageInfoImpl->Construct() failed.");
+
+ r = pList->Add(*pPackageInfo.release());
+ SysTryReturn(NID_APP, r == E_SUCCESS, -1, E_SYSTEM, "pList->Add() failed.");
return result;
}
SysTryReturn(NID_APP, pPackageId, false, E_OUT_OF_MEMORY, "pPackageId is null");
result = pkgmgrinfo_pkginfo_get_pkginfo(pPackageId.get(), &pPackageInfoHandle);
- SysTryReturn(NID_APP, result == 0, false, E_APP_NOT_INSTALLED, "pkgmgrinfo_pkginfo_get_pkginfo() failed. result=[%d], packageId=[%s]", result, pPackageId.get());
+ SysTryReturn(NID_APP, result == 0, false, E_APP_NOT_INSTALLED, "pkgmgrinfo_pkginfo_get_pkginfo() failed. result=[%d], package=[%s]", result, pPackageId.get());
if(pPackageInfoHandle)
{