Apply fallback for icon
authorDuyoung Jang <duyoung.jang@samsung.com>
Mon, 9 Sep 2013 10:52:28 +0000 (19:52 +0900)
committerDuyoung Jang <duyoung.jang@samsung.com>
Mon, 9 Sep 2013 10:52:28 +0000 (19:52 +0900)
Change-Id: I70a1a2186ceb8315286e1463ed930a8f6b0d3fbe
Signed-off-by: Duyoung Jang <duyoung.jang@samsung.com>
src/app/package/FAppPkg_PackageManagerImpl.cpp
src/app/package/FAppPkg_PackageParser.cpp

index 7517cfb..df7abb1 100755 (executable)
@@ -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();
 }
 
index 0fa1300..038c61e 100755 (executable)
@@ -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());
                }
        }