diff options
Diffstat (limited to 'gui/pages.cpp')
-rw-r--r-- | gui/pages.cpp | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/gui/pages.cpp b/gui/pages.cpp index bea39e902..b110e3820 100644 --- a/gui/pages.cpp +++ b/gui/pages.cpp @@ -39,8 +39,13 @@ extern "C" { #include "../twcommon.h" #include "../minuitwrp/minui.h" +#if (ANDROID_VERSION >= 5) #include "../minzip/SysUtil.h" #include "../minzip/Zip.h" +#else +#include "../minzipold/SysUtil.h" +#include "../minzipold/Zip.h" +#endif } #include "rapidxml.hpp" @@ -921,7 +926,9 @@ int PageManager::LoadPackage(std::string name, std::string package, std::string char* xmlFile = NULL; PageSet* pageSet = NULL; int ret; +#if (ANDROID_VERSION >= 5) MemMapping map; +#endif // Open the XML file LOGINFO("Loading package: %s (%s)\n", name.c_str(), package.c_str()); @@ -948,6 +955,7 @@ int PageManager::LoadPackage(std::string name, std::string package, std::string else { LOGINFO("Loading zip theme\n"); +#if (ANDROID_VERSION >= 5) if (!TWFunc::Path_Exists(package)) return -1; if (sysMapFile(package.c_str(), &map) != 0) { @@ -959,6 +967,12 @@ int PageManager::LoadPackage(std::string name, std::string package, std::string sysReleaseMap(&map); return -1; } +#else + if (mzOpenZipArchive(package.c_str(), &zip)) { + LOGERR("Failed to open theme zip.\n"); + return -1; + } +#endif pZip = &zip; const ZipEntry* ui_xml = mzFindZipEntry(&zip, "ui.xml"); if (ui_xml == NULL) @@ -1006,7 +1020,9 @@ int PageManager::LoadPackage(std::string name, std::string package, std::string if (pZip) { mzCloseZipArchive(pZip); +#if (ANDROID_VERSION >= 5) sysReleaseMap(&map); +#endif } return ret; @@ -1014,7 +1030,9 @@ error: LOGERR("An internal error has occurred.\n"); if (pZip) { mzCloseZipArchive(pZip); +#if (ANDROID_VERSION >= 5) sysReleaseMap(&map); +#endif } if (xmlFile) free(xmlFile); |