Improve GUI handling of zip flashing
- change the page sooner so that users cannot activate the slider
twice
- improve GUI messaging if a zip requests a cache wipe
- move update of the file count to the end so it is less visible
to the user (e.g. during a cache wipe the counter should not
read 0)
Change-Id: I5d478f07effe61ca37f3521a77c9e9243a9cb692
diff --git a/gui/action.cpp b/gui/action.cpp
index 96f6209..9534399 100644
--- a/gui/action.cpp
+++ b/gui/action.cpp
@@ -325,7 +325,7 @@
}
}
-int GUIAction::flash_zip(std::string filename, std::string pageName, int* wipe_cache)
+int GUIAction::flash_zip(std::string filename, int* wipe_cache)
{
int ret_val = 0;
@@ -337,15 +337,9 @@
return -1;
}
- // We're going to jump to this page first, like a loading page
- gui_changePage(pageName);
-
if (!PartitionManager.Mount_By_Path(filename, true))
return -1;
- // TODO: why again?
- gui_changePage(pageName);
-
if (simulate) {
simulate_progress_bar();
} else {
@@ -944,29 +938,33 @@
int GUIAction::flash(std::string arg)
{
int i, ret_val = 0, wipe_cache = 0;
+ // We're going to jump to this page first, like a loading page
+ gui_changePage(arg);
for (i=0; i<zip_queue_index; i++) {
operation_start("Flashing");
DataManager::SetValue("tw_filename", zip_queue[i]);
DataManager::SetValue(TW_ZIP_INDEX, (i + 1));
TWFunc::SetPerformanceMode(true);
- ret_val = flash_zip(zip_queue[i], arg, &wipe_cache);
+ ret_val = flash_zip(zip_queue[i], &wipe_cache);
TWFunc::SetPerformanceMode(false);
if (ret_val != 0) {
gui_print("Error flashing zip '%s'\n", zip_queue[i].c_str());
- i = 10; // Error flashing zip - exit queue
ret_val = 1;
+ break;
}
}
zip_queue_index = 0;
- DataManager::SetValue(TW_ZIP_QUEUE_COUNT, zip_queue_index);
- if (wipe_cache)
+ if (wipe_cache) {
+ gui_print("One or more zip requested a cache wipe\nWiping cache now.\n");
PartitionManager.Wipe_By_Path("/cache");
+ }
reinject_after_flash();
PartitionManager.Update_System_Details();
operation_end(ret_val);
+ DataManager::SetValue(TW_ZIP_QUEUE_COUNT, zip_queue_index);
return 0;
}
diff --git a/gui/objects.hpp b/gui/objects.hpp
index bb3edb3..a89f486 100644
--- a/gui/objects.hpp
+++ b/gui/objects.hpp
@@ -285,7 +285,7 @@
int doAction(Action action);
bool needsToRunInSeparateThread(const Action& action);
void simulate_progress_bar(void);
- int flash_zip(std::string filename, std::string pageName, int* wipe_cache);
+ int flash_zip(std::string filename, int* wipe_cache);
void reinject_after_flash();
void operation_start(const string operation_name);
void operation_end(const int operation_status);