X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=src%2Fapp%2Fpackage%2FFAppPkg_PackageInfoImpl.cpp;h=47508780eae68c77e02d50779e76bead20b07b2a;hb=ebe0bf4f38caa9236e2e1a580772942a7184daad;hp=4151206f5d93d894f710f97eaffa73207106c0e5;hpb=00c7c24021531edad470446e184ad5d857ef4272;p=platform%2Fframework%2Fnative%2Fappfw.git diff --git a/src/app/package/FAppPkg_PackageInfoImpl.cpp b/src/app/package/FAppPkg_PackageInfoImpl.cpp index 4151206..4750878 100755 --- a/src/app/package/FAppPkg_PackageInfoImpl.cpp +++ b/src/app/package/FAppPkg_PackageInfoImpl.cpp @@ -322,10 +322,10 @@ _PackageInfoImpl::GetPackageAppInfoListN(void) PackageAppInfo* pPackageAppInfo = dynamic_cast (__pPackageAppInfoList->GetAt(i)); if (pPackageAppInfo) { - PackageAppInfo* pInfo = new (std::nothrow) PackageAppInfo; + std::unique_ptr< 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); + _PackageAppInfoImpl* pPackageAppInfoImpl = _PackageAppInfoImpl::GetInstance(pInfo.get()); SysTryReturn(NID_APP, pPackageAppInfoImpl, null, E_SYSTEM, "pPackageAppInfoImpl is null."); AppId appId = pPackageAppInfo->GetAppId(); @@ -340,7 +340,7 @@ _PackageInfoImpl::GetPackageAppInfoListN(void) pPackageAppInfoImpl->SetMenuIconVisible(menuIconVisible); pPackageAppInfoImpl->SetMainApp(mainApp); - r = pList->Add(*pInfo); + r = pList->Add(*pInfo.release()); } } } @@ -382,8 +382,6 @@ _PackageInfoImpl::GetPackageAppInfoN(const AppId& appId) const { SysTryReturn(NID_APP, __pPackageAppInfoList, null, E_SYSTEM, "__pPackageAppInfoList must not be null."); - result r = E_SUCCESS; - for (int i = 0; i < __pPackageAppInfoList->GetCount(); i++) { PackageAppInfo* pPackageAppInfo = dynamic_cast < PackageAppInfo* >(__pPackageAppInfoList->GetAt(i)); @@ -394,24 +392,29 @@ _PackageInfoImpl::GetPackageAppInfoN(const AppId& appId) const continue; } - PackageAppInfo* pInfo = new (std::nothrow) PackageAppInfo; + _PackageAppInfoImpl* pPackageAppInfoImpl = _PackageAppInfoImpl::GetInstance(pPackageAppInfo); + SysTryReturn(NID_APP, pPackageAppInfoImpl, null, E_SYSTEM, "pPackageAppInfoImpl is null."); + + std::unique_ptr< 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.get()); + 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(); + String tempIconPath = pPackageAppInfoImpl->GetAppTempIconPath(); - pPackageAppInfoImpl->SetAppId(appId); - pPackageAppInfoImpl->SetAppName(appName); - pPackageAppInfoImpl->SetAppDisplayName(appDisplayName); - pPackageAppInfoImpl->SetMenuIconVisible(menuIconVisible); - pPackageAppInfoImpl->SetMainApp(mainApp); + pImpl->SetAppId(appId); + pImpl->SetAppName(appName); + pImpl->SetAppDisplayName(appDisplayName); + pImpl->SetMenuIconVisible(menuIconVisible); + pImpl->SetMainApp(mainApp); + pImpl->SetAppTempIconPath(tempIconPath); - return pInfo; + return pInfo.release(); } } } @@ -979,16 +982,11 @@ _PackageInfoImpl::Construct(const PackageId& packageId) char* pUrl = null; char* pMainAppId = null; char* pStoreClientId = null; + char* pRootPath = null; int installedTime = 0; pkgmgrinfo_installed_storage storage = PMINFO_INTERNAL_STORAGE; bool removable = true; - // temp - Database db; - DbStatement* pStmt = null; - DbEnumerator* pEnum = null; - String query; - std::unique_ptr pPackageId(_StringConverter::CopyToCharArrayN(packageId)); SysTryReturnResult(NID_APP, pPackageId, E_OUT_OF_MEMORY, "pPackageId is null"); @@ -1168,41 +1166,18 @@ _PackageInfoImpl::Construct(const PackageId& packageId) SysLog(NID_APP, "pkgmgrinfo_pkginfo_get_storeclientid() is failed. result = [%d]", result); } - // temp - query.Format(1024, L"SELECT PkgInfo.*, AppInfo.APP_MAINMENU_ICON FROM AppInfo, PkgInfo WHERE AppInfo.ID = PkgInfo.UNIQUE_ID and AppInfo.APP_DEFAULT = 'True' and PkgInfo.PKG_ID = '%ls'", packageId.GetPointer()); - - r = db.Construct(PACKAGE_DATABASE_FILE_NAME, "r"); - SysTryCatch(NID_APP, r == E_SUCCESS, , r, "[%s] An error occurs while opening a database.", GetErrorMessage(r)); - - pStmt = _PackageManagerImpl::CreateStatementN(db, query); - SysTryCatch(NID_APP, pStmt != null, GetLastResult(), GetLastResult(), "[%s] An error occurs while creating a database statement.", GetErrorMessage(GetLastResult())); - - pEnum = _PackageManagerImpl::ExecuteStatementN(db, pStmt); - if (pEnum != null) + result = pkgmgrinfo_pkginfo_get_root_path(__packageInfoHandle, &pRootPath); + if (result == PMINFO_R_OK) { - if (pEnum->MoveNext() == E_SUCCESS) - { - String rootPath; - int storageType = 0; - - if (pEnum->GetColumnType(16) != DB_COLUMNTYPE_NULL) - { - pEnum->GetStringAt(16, rootPath); - } - if (pEnum->GetColumnType(17) != DB_COLUMNTYPE_NULL) - { - pEnum->GetIntAt(17, storageType); - } - - SetAppRootPath(rootPath); - SetAppStorageType(storageType); - } - - delete pEnum; + SysLog(NID_APP, "pkgmgrinfo_pkginfo_get_root_path(): rootPath = [%s]", pRootPath); + String rootPath(pRootPath); + __appRootPath = rootPath; + } + else + { + SysLog(NID_APP, "pkgmgrinfo_pkginfo_get_root_path() is failed. result = [%d]", result); } -CATCH: - delete pStmt; return r; }