diff options
-rw-r--r-- | gui/pages.cpp | 23 | ||||
-rwxr-xr-x | gui/theme/common/languages/en.xml | 1 | ||||
-rw-r--r-- | gui/theme/landscape_hdpi/ui.xml | 1 | ||||
-rw-r--r-- | gui/theme/landscape_mdpi/ui.xml | 1 | ||||
-rw-r--r-- | gui/theme/portrait_hdpi/ui.xml | 1 | ||||
-rw-r--r-- | gui/theme/portrait_mdpi/ui.xml | 1 | ||||
-rw-r--r-- | gui/theme/watch_mdpi/ui.xml | 1 |
7 files changed, 27 insertions, 2 deletions
diff --git a/gui/pages.cpp b/gui/pages.cpp index bd7c79959..250fb4c4d 100644 --- a/gui/pages.cpp +++ b/gui/pages.cpp @@ -49,6 +49,8 @@ extern "C" { #include "objects.hpp" #include "blanktimer.hpp" +#define TW_THEME_VERSION 1 + extern int gGuiRunning; // From ../twrp.cpp @@ -735,11 +737,28 @@ int PageSet::Load(ZipArchive* package, char* xmlFile, char* languageFile) set_scale_values(1, 1); // Reset any previous scaling values // Now, let's parse the XML - LOGINFO("Checking resolution...\n"); child = parent->first_node("details"); if (child) { + int theme_ver = 0; + xml_node<>* themeversion = child->first_node("themeversion"); + if (themeversion && themeversion->value()) { + theme_ver = atoi(themeversion->value()); + } else { + LOGINFO("No themeversion in theme.\n"); + } + if (theme_ver != TW_THEME_VERSION) { + LOGINFO("theme version from xml: %i, expected %i\n", theme_ver, TW_THEME_VERSION); + if (package) { + gui_err("theme_ver_err=Custom theme version does not match TWRP version. Using stock theme."); + mDoc.clear(); + return -1; + } else { + gui_print_color("warning", "Stock theme version does not match TWRP version.\n"); + } + } xml_node<>* resolution = child->first_node("resolution"); if (resolution) { + LOGINFO("Checking resolution...\n"); xml_attribute<>* width_attr = resolution->first_attribute("width"); xml_attribute<>* height_attr = resolution->first_attribute("height"); xml_attribute<>* noscale_attr = resolution->first_attribute("noscaling"); @@ -1558,7 +1577,7 @@ int PageManager::ChangeOverlay(std::string name) return mCurrentSet->SetOverlay(NULL); else { - Page* page = mBaseSet ? mBaseSet->FindPage(name) : NULL; + Page* page = mCurrentSet ? mCurrentSet->FindPage(name) : NULL; return mCurrentSet->SetOverlay(page); } } diff --git a/gui/theme/common/languages/en.xml b/gui/theme/common/languages/en.xml index c77d3a2e1..47c7e76cc 100755 --- a/gui/theme/common/languages/en.xml +++ b/gui/theme/common/languages/en.xml @@ -667,5 +667,6 @@ <string name="no_real_sdcard">This device does not have a real SD Card! Aborting!</string> <string name="cancel_sideload">Cancelling ADB sideload...</string> <string name="change_fs_err">Error changing file system.</string> + <string name="theme_ver_err">Custom theme version does not match TWRP version. Using stock theme.</string> </resources> </language> diff --git a/gui/theme/landscape_hdpi/ui.xml b/gui/theme/landscape_hdpi/ui.xml index c3bb96fd4..73ccdf147 100644 --- a/gui/theme/landscape_hdpi/ui.xml +++ b/gui/theme/landscape_hdpi/ui.xml @@ -6,6 +6,7 @@ <title>Backup Naowz</title> <description>Default basic theme</description> <preview>preview.jpg</preview> + <themeversion>1</themeversion> </details> <include> diff --git a/gui/theme/landscape_mdpi/ui.xml b/gui/theme/landscape_mdpi/ui.xml index ae4068394..293742ede 100644 --- a/gui/theme/landscape_mdpi/ui.xml +++ b/gui/theme/landscape_mdpi/ui.xml @@ -6,6 +6,7 @@ <title>Backup Naowz</title> <description>Default basic theme</description> <preview>preview.jpg</preview> + <themeversion>1</themeversion> </details> <include> diff --git a/gui/theme/portrait_hdpi/ui.xml b/gui/theme/portrait_hdpi/ui.xml index cb92b9fac..917e93bb5 100644 --- a/gui/theme/portrait_hdpi/ui.xml +++ b/gui/theme/portrait_hdpi/ui.xml @@ -6,6 +6,7 @@ <title>Backup Naowz</title> <description>Default basic theme</description> <preview>preview.jpg</preview> + <themeversion>1</themeversion> </details> <include> diff --git a/gui/theme/portrait_mdpi/ui.xml b/gui/theme/portrait_mdpi/ui.xml index 450860eef..19f199e88 100644 --- a/gui/theme/portrait_mdpi/ui.xml +++ b/gui/theme/portrait_mdpi/ui.xml @@ -6,6 +6,7 @@ <title>Backup Naowz</title> <description>Default basic theme</description> <preview>preview.jpg</preview> + <themeversion>1</themeversion> </details> <include> diff --git a/gui/theme/watch_mdpi/ui.xml b/gui/theme/watch_mdpi/ui.xml index 4e4cc1fcb..163a82b1c 100644 --- a/gui/theme/watch_mdpi/ui.xml +++ b/gui/theme/watch_mdpi/ui.xml @@ -7,6 +7,7 @@ <title>Backup Naowz</title> <description>Default basic theme</description> <preview>preview.jpg</preview> + <themeversion>1</themeversion> </details> <include> |