Modify IsAppInstalled() API
authorDuyoung Jang <duyoung.jang@samsung.com>
Mon, 23 Sep 2013 05:24:05 +0000 (14:24 +0900)
committerDuyoung Jang <duyoung.jang@samsung.com>
Mon, 23 Sep 2013 05:24:05 +0000 (14:24 +0900)
Change-Id: Iecb190ef0aaa2be278c4178f75d90db9db4a7918
Signed-off-by: Duyoung Jang <duyoung.jang@samsung.com>
src/app/package/FAppPkg_PackageManagerImpl.cpp

index 59064c0..ce53d24 100755 (executable)
@@ -128,32 +128,24 @@ _PackageManagerImpl::GetPackageIdByAppId(const AppId& appId)
 {
        SysTryReturn(NID_APP, appId.IsEmpty() == false, L"", E_INVALID_ARG, "appId is empty");
 
-       String packageId;
-
-       if (appId.StartsWith(L".", 10) == true)
-       {
-               appId.SubString(0, 10, packageId);
-       }
-       else
-       {
-               int result = 0;
-               char* pPackageId = null;
-               pkgmgrinfo_appinfo_h pAppInfoHandle = null;
+       PackageId packageId;
+       int result = 0;
+       char* pPackageId = null;
+       pkgmgrinfo_appinfo_h pAppInfoHandle = null;
 
-               std::unique_ptr<char[]> pAppId(_StringConverter::CopyToCharArrayN(appId));
-               SysTryReturn(NID_APP, pAppId, L"", E_OUT_OF_MEMORY, "pAppId is null");
+       std::unique_ptr<char[]> pAppId(_StringConverter::CopyToCharArrayN(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], app=[%s]", result, pAppId.get());
+       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], app=[%s]", result, pAppId.get());
 
-               result = pkgmgrinfo_appinfo_get_pkgname(pAppInfoHandle, &pPackageId);
+       result = pkgmgrinfo_appinfo_get_pkgname(pAppInfoHandle, &pPackageId);
 
-               packageId.Append(pPackageId);
+       packageId.Append(pPackageId);
 
-               if(pAppInfoHandle)
-               {
-                       pkgmgrinfo_appinfo_destroy_appinfo(pAppInfoHandle);
-               }
+       if(pAppInfoHandle)
+       {
+               pkgmgrinfo_appinfo_destroy_appinfo(pAppInfoHandle);
        }
 
        SysLog(NID_APP, "app = [%ls], package = [%ls]", appId.GetPointer(), packageId.GetPointer());
@@ -1784,25 +1776,28 @@ CATCH:
 bool
 _PackageManagerImpl::IsAppInstalled(const AppId& appId)
 {
-       if (appId == _AppInfo::GetPackageId())
-       {
-               return true;
-       }
+       SysTryReturn(NID_APP, appId.IsEmpty() == false, false, E_INVALID_ARG, "appId is empty.");
 
        int result = 0;
-       pkgmgrinfo_pkginfo_h pPackageInfoHandle = null;
+       pkgmgrinfo_appinfo_h pAppInfoHandle = null;
 
-       std::unique_ptr<char[]> pPackageId(_StringConverter::CopyToCharArrayN(appId));
-       SysTryReturn(NID_APP, pPackageId, false, E_OUT_OF_MEMORY, "pPackageId is null");
+       std::unique_ptr<char[]> pAppId(_StringConverter::CopyToCharArrayN(appId));
+       SysTryReturn(NID_APP, pAppId, false, E_OUT_OF_MEMORY, "pAppId 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], package=[%s]", result, pPackageId.get());
+       result = pkgmgrinfo_appinfo_get_appinfo(pAppId.get(), &pAppInfoHandle);
+       if (result != 0)
+       {
+               SysLog(NID_APP, "pkgmgrinfo_appinfo_get_appinfo() failed. result=[%d], app=[%s]", result, pAppId.get());
+               return false;
+       }
 
-       if(pPackageInfoHandle)
+       if(pAppInfoHandle)
        {
-               pkgmgrinfo_pkginfo_destroy_pkginfo(pPackageInfoHandle);
+               pkgmgrinfo_appinfo_destroy_appinfo(pAppInfoHandle);
        }
 
+       SysLog(NID_APP, "app = [%ls] is installed.", appId.GetPointer());
+
        return true;
 }