Make system read only show no matter what on first TWRP boot

Initial value for tw_mount_system_ro is now 2. If the value of
tw_mount_system_ro is 2 during boot, then we will show the system
read only prompt and ignore the value from the lifetime writes
check.

Note: Changed the value of FILE_VERSION which will trigger the
data manager to throw out previous settings and start with default
values so that existing TWRP users will get the prompt at least
once.

Change-Id: I447767b64617f855156a19a5dc15c4ece6dff7b8
diff --git a/data.cpp b/data.cpp
index 6e39bc3..d7b02f1 100644
--- a/data.cpp
+++ b/data.cpp
@@ -65,7 +65,7 @@
 	void gui_notifyVarChange(const char *name, const char* value);
 }
 
-#define FILE_VERSION 0x00010001
+#define FILE_VERSION 0x00010010
 
 using namespace std;
 
@@ -881,7 +881,7 @@
 	mConstValues.insert(make_pair("tw_has_mtp", "0"));
 	mConstValues.insert(make_pair("tw_mtp_enabled", "0"));
 #endif
-	mValues.insert(make_pair("tw_mount_system_ro", make_pair("1", 1)));
+	mValues.insert(make_pair("tw_mount_system_ro", make_pair("2", 1)));
 	mValues.insert(make_pair("tw_never_show_system_ro_page", make_pair("0", 1)));
 
 	pthread_mutex_unlock(&m_valuesLock);
diff --git a/gui/devices/landscape/res/landscape.xml b/gui/devices/landscape/res/landscape.xml
index b416691..c75be3c 100644
--- a/gui/devices/landscape/res/landscape.xml
+++ b/gui/devices/landscape/res/landscape.xml
@@ -3664,7 +3664,7 @@
 
 			<object type="text">
 				<placement x="%center_x%" y="%row1_text_y%" placement="5" />
-				<text>TWRP has detected an unmodified system partition.</text>
+				<text>Keep System Read Only?</text>
 			</object>
 
 			<object type="text">
diff --git a/gui/devices/portrait/res/portrait.xml b/gui/devices/portrait/res/portrait.xml
index cf113ef..969044c 100644
--- a/gui/devices/portrait/res/portrait.xml
+++ b/gui/devices/portrait/res/portrait.xml
@@ -3675,7 +3675,7 @@
 
 			<object type="text">
 				<placement x="%center_x%" y="%row1_header_y%" placement="5" />
-				<text>TWRP has detected an unmodified system partition.</text>
+				<text>Keep System Read Only?</text>
 			</object>
 
 			<object type="text">
diff --git a/gui/devices/watch/res/watch.xml b/gui/devices/watch/res/watch.xml
index 7fae5f3..28198fb 100644
--- a/gui/devices/watch/res/watch.xml
+++ b/gui/devices/watch/res/watch.xml
@@ -3664,7 +3664,7 @@
 
 			<object type="text">
 				<placement x="%center_x%" y="%row1_header_y%" placement="5" />
-				<text>TWRP has detected an unmodified system partition.</text>
+				<text>Keep System Read Only?</text>
 			</object>
 
 			<object type="text">
diff --git a/twrp.cpp b/twrp.cpp
index e34c9b3..091de19 100644
--- a/twrp.cpp
+++ b/twrp.cpp
@@ -335,18 +335,17 @@
 	// Check if system has never been changed
 	TWPartition* sys = PartitionManager.Find_Partition_By_Path("/system");
 	if (sys) {
-		if (DataManager::GetIntValue("tw_mount_system_ro") != 0) {
-			if (sys->Check_Lifetime_Writes() == 0) {
-				if (DataManager::GetIntValue("tw_never_show_system_ro_page") == 0) {
-					DataManager::SetValue("tw_back", "main");
-					if (gui_startPage("system_readonly", 1, 1) != 0) {
-						LOGERR("Failed to start system_readonly GUI page.\n");
-					}
+		if ((DataManager::GetIntValue("tw_mount_system_ro") == 0 && sys->Check_Lifetime_Writes() == 0) || DataManager::GetIntValue("tw_mount_system_ro") == 2) {
+			if (DataManager::GetIntValue("tw_never_show_system_ro_page") == 0) {
+				DataManager::SetValue("tw_back", "main");
+				if (gui_startPage("system_readonly", 1, 1) != 0) {
+					LOGERR("Failed to start system_readonly GUI page.\n");
 				}
-			} else {
-				DataManager::SetValue("tw_mount_system_ro", 0);
+			} else if (DataManager::GetIntValue("tw_mount_system_ro") == 0) {
 				sys->Change_Mount_Read_Only(false);
 			}
+		} else if (DataManager::GetIntValue("tw_mount_system_ro") == 1) {
+			// Do nothing, user selected to leave system read only
 		} else {
 			sys->Change_Mount_Read_Only(false);
 		}