Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 0d47eb56 authored by Ethan Yonker's avatar Ethan Yonker Committed by Dees Troy
Browse files

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
parent 96af84a4
Loading
Loading
Loading
Loading
+9 −11
Original line number Diff line number Diff line
@@ -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
Original line number Diff line number Diff line
@@ -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);