convert file_bps to be unsigned long long

Change-Id: Ib5d9ca8f9a2a4e27d9798665b312376a7d9c571c
diff --git a/data.cpp b/data.cpp
index 9e9120c..6566bcd 100644
--- a/data.cpp
+++ b/data.cpp
@@ -358,6 +358,17 @@
     return 0;
 }
 
+unsigned long long DataManager::GetValue(const string varName, unsigned long long& value)
+{
+    string data;
+
+    if (GetValue(varName,data) != 0)
+        return -1;
+
+    value = strtoull(data.c_str(), NULL, 10);
+    return 0;
+}
+
 // This is a dangerous function. It will create the value if it doesn't exist so it has a valid c_str
 string& DataManager::GetValueRef(const string varName)
 {
@@ -458,6 +469,13 @@
     return SetValue(varName, valStr.str(), persist);;
 }
 
+int DataManager::SetValue(const string varName, unsigned long long value, int persist /* = 0 */)
+{
+	ostringstream valStr;
+    valStr << value;
+    return SetValue(varName, valStr.str(), persist);;
+}
+
 void DataManager::DumpValues()
 {
     map<string, TStrIntPair>::iterator iter;
diff --git a/data.hpp b/data.hpp
index 42c7220..55966a1 100644
--- a/data.hpp
+++ b/data.hpp
@@ -33,6 +33,7 @@
     // Core get routines
     static int GetValue(const string varName, string& value);
     static int GetValue(const string varName, int& value);
+    static unsigned long long GetValue(const string varName, unsigned long long& value);
 
     // This is a dangerous function. It will create the value if it doesn't exist so it has a valid c_str
     static string& GetValueRef(const string varName);
@@ -45,6 +46,7 @@
     static int SetValue(const string varName, string value, int persist = 0);
     static int SetValue(const string varName, int value, int persist = 0);
     static int SetValue(const string varName, float value, int persist = 0);
+    static int SetValue(const string varName, unsigned long long value, int persist = 0);
 
     static void DumpValues();
 	static void update_tz_environment_variables();
@@ -52,7 +54,7 @@
 	static void SetDefaultValues();
 	static void Output_Version(void); // Outputs the version to a file in the TWRP folder
 	static void ReadSettingsFile(void);
-	
+
 	static string GetCurrentStoragePath(void);
 	static string& CGetCurrentStoragePath();
 	static string GetCurrentStorageMount(void);
@@ -64,8 +66,10 @@
 
 protected:
     typedef pair<string, int> TStrIntPair;
+    typedef pair<string, unsigned long long> TStrULLPair;
     typedef pair<string, TStrIntPair> TNameValuePair;
     static map<string, TStrIntPair> mValues;
+    static map<string, TStrULLPair> mULLValues;
     static string mBackingFile;
     static int mInitialized;
 
diff --git a/partitionmanager.cpp b/partitionmanager.cpp
index 19efd42..bcabb1c 100644
--- a/partitionmanager.cpp
+++ b/partitionmanager.cpp
@@ -521,7 +521,8 @@
 
 bool TWPartitionManager::Backup_Partition(TWPartition* Part, string Backup_Folder, bool generate_md5, unsigned long long* img_bytes_remaining, unsigned long long* file_bytes_remaining, unsigned long *img_time, unsigned long *file_time, unsigned long long *img_bytes, unsigned long long *file_bytes) {
 	time_t start, stop;
-	int img_bps, file_bps;
+	int img_bps;
+	unsigned long long file_bps;
 	unsigned long total_time, remain_time, section_time;
 	int use_compression, backup_time;
 	float pos;
@@ -644,8 +645,9 @@
 		backup_sys = Find_Partition_By_Path("/system");
 		if (backup_sys != NULL) {
 			partition_count++;
-			if (backup_sys->Backup_Method == 1)
+			if (backup_sys->Backup_Method == 1) {
 				file_bytes += backup_sys->Backup_Size;
+			}
 			else
 				img_bytes += backup_sys->Backup_Size;
 		} else {
@@ -852,9 +854,9 @@
 	if (file_time == 0)
 		file_time = 1;
 	int img_bps = (int)img_bytes / (int)img_time;
-	int file_bps = (int)file_bytes / (int)file_time;
+	unsigned long long file_bps = file_bytes / (int)file_time;
 
-	ui_print("Average backup rate for file systems: %lu MB/sec\n", (file_bps / (1024 * 1024)));
+	ui_print("Average backup rate for file systems: %llu MB/sec\n", (file_bps / (1024 * 1024)));
 	ui_print("Average backup rate for imaged drives: %lu MB/sec\n", (img_bps / (1024 * 1024)));
 
 	time(&total_stop);
@@ -862,7 +864,8 @@
 	unsigned long long actual_backup_size = TWFunc::Get_Folder_Size(Full_Backup_Path, true);
     actual_backup_size /= (1024LLU * 1024LLU);
 
-	int prev_img_bps, prev_file_bps, use_compression;
+	int prev_img_bps, use_compression;
+	unsigned long long prev_file_bps;
 	DataManager::GetValue(TW_BACKUP_AVG_IMG_RATE, prev_img_bps);
 	img_bps += (prev_img_bps * 4);
     img_bps /= 5;