From 718f0621e0b40b8f15476b07dcabed3eec2d456e Mon Sep 17 00:00:00 2001 From: Duyoung Jang Date: Mon, 9 Sep 2013 19:52:28 +0900 Subject: [PATCH] Apply fallback for icon Change-Id: I70a1a2186ceb8315286e1463ed930a8f6b0d3fbe Signed-off-by: Duyoung Jang --- src/app/package/FAppPkg_PackageManagerImpl.cpp | 1 + src/app/package/FAppPkg_PackageParser.cpp | 30 ++++++++++++++++++++++++-- 2 files changed, 29 insertions(+), 2 deletions(-) diff --git a/src/app/package/FAppPkg_PackageManagerImpl.cpp b/src/app/package/FAppPkg_PackageManagerImpl.cpp index 7517cfb..df7abb1 100755 --- a/src/app/package/FAppPkg_PackageManagerImpl.cpp +++ b/src/app/package/FAppPkg_PackageManagerImpl.cpp @@ -864,6 +864,7 @@ _PackageManagerImpl::GetPackageInfoFromFileN(const String& filePath) const SysTryReturn(NID_APP, false, null, E_UNSUPPORTED_FORMAT, "invalid extension! - packagePath = [%s], extension = [%s]", pPackagePath.get(), pExtension.get()); } + SetLastResult(E_SUCCESS); return pPackageInfo.release(); } diff --git a/src/app/package/FAppPkg_PackageParser.cpp b/src/app/package/FAppPkg_PackageParser.cpp index 0fa1300..038c61e 100755 --- a/src/app/package/FAppPkg_PackageParser.cpp +++ b/src/app/package/FAppPkg_PackageParser.cpp @@ -841,6 +841,32 @@ _PackageParser::OnIconValue(const char* pCharacters) result r = unzipper.Construct(__packagePath); SysTryReturn(NID_APP, !IsFailed(r), false, E_SYSTEM, "unzipper.Construct() failed."); + ZipEntry entry; + r = unzipper.GetEntry(iconRelPath, entry); + if (IsFailed(r)) + { + AppLog("fallback, old path = [%ls]", iconRelPath.GetPointer()); + + String densityXhigh("screen-density-xhigh/"); + String densityHigh("screen-density-high/"); + + if (iconRelPath.Contains(densityXhigh) == true) + { + iconRelPath.Replace(densityXhigh, densityHigh); + } + else if (iconRelPath.Contains(densityHigh) == true) + { + iconRelPath.Replace(densityHigh, densityXhigh); + } + else + { + AppLog("invalid icon [%ls]", iconRelPath.GetPointer()); + return false; + } + + AppLog("fallback, new path = [%ls]", iconRelPath.GetPointer()); + } + r = unzipper.UnzipTo(tmp, iconRelPath); if (!IsFailed(r)) { @@ -868,12 +894,12 @@ _PackageParser::OnIconValue(const char* pCharacters) } else { - SysLog(NID_APP, "file.Construct() failed.", tempIconPath.GetPointer()); + SysLog(NID_APP, "file.Construct(%ls) failed.", tempIconPath.GetPointer()); } } else { - SysLog(NID_APP, "UnzipTo() is failed."); + SysLog(NID_APP, "UnzipTo(%ls) is failed.", iconRelPath.GetPointer()); } } -- 2.7.4