Add package filter key(TPK)
[platform/framework/native/appfw.git] / src / app / package / FAppPkg_PackageManagerImpl.cpp
index 0fd3e8d..35efd1d 100755 (executable)
@@ -75,12 +75,12 @@ _PackageManagerEvent::FireImpl(IEventListener& listener, const IEventArg& arg)
                {
                        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);
                        }
                }
@@ -88,12 +88,12 @@ _PackageManagerEvent::FireImpl(IEventListener& listener, const IEventArg& arg)
                {
                        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);
                        }
                }
@@ -131,7 +131,7 @@ _PackageManagerImpl::GetPackageIdByAppId(const AppId& appId)
                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);
 
@@ -143,7 +143,7 @@ _PackageManagerImpl::GetPackageIdByAppId(const AppId& appId)
                }
        }
 
-       SysLog(NID_APP, "appId = [%ls], packageId = [%ls]", appId.GetPointer(), packageId.GetPointer());
+       SysLog(NID_APP, "app = [%ls], package = [%ls]", appId.GetPointer(), packageId.GetPointer());
 
        return packageId;
 }
@@ -272,7 +272,7 @@ _PackageManagerImpl::GetPackageInfoN(const PackageId& packageId) const
 
        _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;
 
@@ -294,7 +294,7 @@ _PackageManagerImpl::GetPackageAppInfoN(const AppId& appId) const
 
        _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;
 
@@ -341,7 +341,7 @@ _PackageManagerImpl::IsPackageInstalled(const PackageId& packageId) const
        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;
        }
 
@@ -350,7 +350,7 @@ _PackageManagerImpl::IsPackageInstalled(const PackageId& packageId) const
                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;
 }
@@ -371,12 +371,9 @@ _PackageManagerImpl::InstallPackage(const PackageId& packageId, const String& pa
        std::unique_ptr<char[]> pExtension(_StringConverter::CopyToCharArrayN(extension));
        SysTryReturnResult(NID_APP, pExtension, E_OUT_OF_MEMORY, "pExtension is null.");
 
-       std::unique_ptr<char[]> pPackageId(_StringConverter::CopyToCharArrayN(packageId));
-       SysTryReturnResult(NID_APP, pPackageId, E_OUT_OF_MEMORY, "pPackageId 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
        {
@@ -384,6 +381,18 @@ _PackageManagerImpl::InstallPackage(const PackageId& packageId, const String& pa
                return E_SYSTEM;
        }
 
+       // optionalData = 12345abcde:StoreClientId=XXXXX12345
+       PackageId StoreClientId = _AppInfo::GetPackageId();
+       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();
@@ -398,7 +407,7 @@ _PackageManagerImpl::InstallPackage(const PackageId& packageId, const String& pa
                SysTryReturnResult(NID_APP, __pRequestClient != null, E_SYSTEM, "pkgmgr_client_new(PC_REQUEST) failed");
        }
 
-       int res = pkgmgr_client_install(__pRequestClient, pExtension.get(), null, pPackagePath.get(), pPackageId.get(), 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)
        {
@@ -456,10 +465,10 @@ _PackageManagerImpl::UninstallPackage(const PackageId& packageId, IPackageUninst
        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)
        {
@@ -468,7 +477,7 @@ _PackageManagerImpl::UninstallPackage(const PackageId& packageId, IPackageUninst
        }
 
        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)
        {
@@ -523,13 +532,13 @@ _PackageManagerImpl::MoveToExternalStorage(const PackageId& packageId)
        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)
        {
@@ -590,13 +599,13 @@ _PackageManagerImpl::MoveToInternalStorage(const PackageId& packageId)
        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)
        {
@@ -645,7 +654,7 @@ _PackageManagerImpl::MoveToInternalStorage(const PackageId& packageId)
 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)
        {
@@ -682,7 +691,7 @@ _PackageManagerImpl::InstallationEventHandler(int reqId, const char* pType, cons
 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)
        {
@@ -863,6 +872,13 @@ _PackageManagerImpl::GetPackageInfoListN(const IMap& packageFilterMap) const
                        res = pkgmgrinfo_pkginfo_filter_add_bool(handle, PMINFO_PKGINFO_PROP_PACKAGE_APPSETTING, value);
                        SysTryCatch(NID_APP, res == PMINFO_R_OK, , E_SYSTEM, "pkgmgrinfo_pkginfo_filter_add_bool(APPSETTING, %d) is failed. [%d]", value, res);
                }
+               else if ((*pKey) == PACKAGE_FILTER_TPK)
+               {
+                       SysTryCatch(NID_APP, value == true, , E_SYSTEM, "Value(false) is invalid for PACKAGE_FILTER_TPK.");
+
+                       res = pkgmgrinfo_pkginfo_filter_add_string(handle, PMINFO_PKGINFO_PROP_PACKAGE_TYPE, "tpk");
+                       SysTryCatch(NID_APP, res == PMINFO_R_OK, , E_SYSTEM, "pkgmgrinfo_pkginfo_filter_add_string(TYPE, tpk) is failed. [%d]", res);
+               }
                else if ((*pKey) == PACKAGE_FILTER_EXTERNAL_STORAGE)
                {
                        String installedStorage;
@@ -1033,7 +1049,7 @@ _PackageManagerImpl::GetPackageAppInfoListN(const IMap& packageAppFilterMap) con
                        PackageAppInfo* pPackageAppInfo = dynamic_cast < PackageAppInfo* >(list.GetAt(i));
                        if (pPackageAppInfo)
                        {
-                               AppLog("PackageAppFilter - AppId [%ls]", pPackageAppInfo->GetAppId().GetPointer());
+                               AppLog("PackageAppFilter - App [%ls]", pPackageAppInfo->GetAppId().GetPointer());
 
                                std::unique_ptr< AppId > pAppId(new (std::nothrow) AppId(pPackageAppInfo->GetAppId()));
                                appIdList.Add(pAppId.release());
@@ -1049,7 +1065,7 @@ _PackageManagerImpl::GetPackageAppInfoListN(const IMap& packageAppFilterMap) con
 
                                if (appIdList.Contains(appId) == true)
                                {
-                                       AppLog("AppId [%ls] is matched.", appId.GetPointer());
+                                       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.");
@@ -1061,7 +1077,7 @@ _PackageManagerImpl::GetPackageAppInfoListN(const IMap& packageAppFilterMap) con
                                }
                                else
                                {
-                                       AppLog("AppId [%ls] is not matched.", pPackageAppInfo->GetAppId().GetPointer());
+                                       AppLog("App [%ls] is not matched.", pPackageAppInfo->GetAppId().GetPointer());
                                }
                        }
                }
@@ -1115,7 +1131,7 @@ _PackageManagerImpl::GetPackageAppInfoListN(const IMap& packageFilterMap, const
                                        PackageAppInfo* pPackageAppInfo = dynamic_cast < PackageAppInfo* >(pPackageAppInfoList->GetAt(j));
                                        if (pPackageAppInfo)
                                        {
-                                               AppLog("PackageFilter - AppId [%ls]", pPackageAppInfo->GetAppId().GetPointer());
+                                               AppLog("PackageFilter - App [%ls]", pPackageAppInfo->GetAppId().GetPointer());
 
                                                std::unique_ptr< AppId > pAppId(new (std::nothrow) AppId(pPackageAppInfo->GetAppId()));
                                                appIdList.Add(pAppId.release());
@@ -1141,11 +1157,11 @@ _PackageManagerImpl::GetPackageAppInfoListN(const IMap& packageFilterMap, const
                if (pPackageAppInfo)
                {
                        AppId appId = pPackageAppInfo->GetAppId();
-                       AppLog("AppFilter - AppId [%ls]", appId.GetPointer());
+                       AppLog("AppFilter - App [%ls]", appId.GetPointer());
 
                        if (appIdList.Contains(appId) == true)
                        {
-                               AppLog("AppId [%ls] is matched.", appId.GetPointer());
+                               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.");
@@ -1157,7 +1173,7 @@ _PackageManagerImpl::GetPackageAppInfoListN(const IMap& packageFilterMap, const
                        }
                        else
                        {
-                               AppLog("AppId [%ls] is not matched.", pPackageAppInfo->GetAppId().GetPointer());
+                               AppLog("App [%ls] is not matched.", pPackageAppInfo->GetAppId().GetPointer());
                        }
                }
        }
@@ -1211,7 +1227,7 @@ _PackageManagerImpl::PackageAppInfoHandler(const pkgmgrinfo_appinfo_h handle, vo
        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, "appId = [%s]", pAppId);
+       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.");
@@ -1239,7 +1255,7 @@ _PackageManagerImpl::PackageAppInfoMetadataHandler(const pkgmgrinfo_appinfo_h ha
        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, "appId = [%s]", pAppId);
+       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.");
@@ -1351,7 +1367,7 @@ _PackageManagerImpl::SendPackageEvent(PackageType type, const PackageId& package
                                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
                {
@@ -1654,7 +1670,7 @@ _PackageManagerImpl::IsAppInstalled(const AppId& appId)
        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)
        {