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
This commit is contained in:
+9
-11
@@ -325,7 +325,7 @@ void GUIAction::simulate_progress_bar(void)
|
||||
}
|
||||
}
|
||||
|
||||
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 @@ int GUIAction::flash_zip(std::string filename, std::string pageName, int* wipe_c
|
||||
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 @@ void GUIAction::reinject_after_flash()
|
||||
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;
|
||||
}
|
||||
|
||||
|
||||
+1
-1
@@ -285,7 +285,7 @@ protected:
|
||||
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);
|
||||
|
||||
Reference in New Issue
Block a user