Retain and display previous selection for image flashing

Change-Id: Ib9963d8d393cf4428e43a3d6552d98ae67c1d7bf
diff --git a/gui/objects.hpp b/gui/objects.hpp
index c286567..5eae919 100644
--- a/gui/objects.hpp
+++ b/gui/objects.hpp
@@ -728,7 +728,7 @@
 
 protected:
 	void MatchList();
-	void SetStoragePosition();
+	void SetPosition();
 
 protected:
 	std::vector<PartitionList> mList;
diff --git a/gui/partitionlist.cpp b/gui/partitionlist.cpp
index e9c1652..97f6e4e 100644
--- a/gui/partitionlist.cpp
+++ b/gui/partitionlist.cpp
@@ -130,7 +130,7 @@
 		SetVisibleListLocation(0);
 		updateList = false;
 		mUpdate = 1;
-		if (ListType == "backup")
+		if (ListType == "backup" || ListType == "flashimg")
 			MatchList();
 	}
 
@@ -154,7 +154,7 @@
 	{
 		if (ListType == "storage") {
 			currentValue = value;
-			SetStoragePosition();
+			SetPosition();
 		} else if (ListType == "backup") {
 			MatchList();
 		} else if (ListType == "restore") {
@@ -172,9 +172,9 @@
 {
 	GUIScrollList::SetPageFocus(inFocus);
 	if (inFocus) {
-		if (ListType == "storage") {
+		if (ListType == "storage" || ListType == "flashimg") {
 			DataManager::GetValue(mVariable, currentValue);
-			SetStoragePosition();
+			SetPosition();
 		}
 		updateList = true;
 		mUpdate = 1;
@@ -199,16 +199,16 @@
 	}
 }
 
-void GUIPartitionList::SetStoragePosition() {
+void GUIPartitionList::SetPosition() {
 	int listSize = mList.size();
 
+	SetVisibleListLocation(0);
 	for (int i = 0; i < listSize; i++) {
 		if (mList.at(i).Mount_Point == currentValue) {
 			mList.at(i).selected = 1;
 			SetVisibleListLocation(i);
 		} else {
 			mList.at(i).selected = 0;
-			SetVisibleListLocation(0);
 		}
 	}
 }