Add partition list GUI element
Add partition list GUI element and update backup, restore, mount,
storage selection, and wipe sections of GUI and partition manager
code to reflect the new GUI element. Update ORS engine to handle
new backup and restore setup.
Fix a bug with decrypt.
Add 1080x1920 layout.
Change-Id: Iaa2f44cb707167e66f935452f076ba00e68a2aa4
diff --git a/partitions.hpp b/partitions.hpp
index 47436b0..704ba68 100644
--- a/partitions.hpp
+++ b/partitions.hpp
@@ -30,6 +30,12 @@
using namespace std;
+struct PartitionList {
+ std::string Display_Name;
+ std::string Mount_Point;
+ unsigned int selected;
+};
+
// Partition class
class TWPartition
{
@@ -67,6 +73,7 @@
string Actual_Block_Device; // Actual block device (one of primary, alternate, or decrypted)
string MTD_Name; // Name of the partition for MTD devices
+
protected:
bool Process_Fstab_Line(string Line, bool Display_Error); // Processes a fstab line
void Find_Actual_Block_Device(); // Determines the correct block device and stores it in Actual_Block_Device
@@ -74,6 +81,7 @@
protected:
bool Can_Be_Mounted; // Indicates that the partition can be mounted
bool Can_Be_Wiped; // Indicates that the partition can be wiped
+ bool Can_Be_Backed_Up; // Indicates that the partition will show up in the backup list
bool Wipe_During_Factory_Reset; // Indicates that this partition is wiped during a factory reset
bool Wipe_Available_in_GUI; // Inidcates that the wipe can be user initiated in the GUI system
bool Is_SubPartition; // Indicates that this partition is a sub-partition of another partition (e.g. datadata is a sub-partition of data)
@@ -98,11 +106,14 @@
bool Is_Decrypted; // This partition has successfully been decrypted
string Display_Name; // Display name for the GUI
string Backup_Name; // Backup name -- used for backup filenames
+ string Backup_Display_Name; // Name displayed in the partition list for backup selection
+ string Storage_Name; // Name displayed in the partition list for storage selection
string Backup_FileName; // Actual backup filename
Backup_Method_enum Backup_Method; // Method used for backup
bool Has_Data_Media; // Indicates presence of /data/media, may affect wiping and backup methods
bool Has_Android_Secure; // Indicates the presence of .android_secure on this partition
bool Is_Storage; // Indicates if this partition is used for storage for backup, restore, and installing zips
+ bool Is_Settings_Storage; // Indicates that this storage partition is the location of the .twrps settings file and the location that is used for custom themes
string Storage_Path; // Indicates the path to the storage -- root indicates mount point, media/ indicates e.g. /data/media
string Fstab_File_System; // File system from the recovery.fstab
int Format_Block_Size; // Block size for formatting
@@ -143,6 +154,8 @@
void Mount_Storage_Retry(void); // Tries multiple times with a half second delay to mount a device in case storage is slow to mount
friend class TWPartitionManager;
+friend class DataManager;
+friend class GUIPartitionList;
};
class TWPartitionManager
@@ -193,6 +206,9 @@
virtual int Partition_SDCard(void); // Repartitions the sdcard
virtual int Fix_Permissions();
+ virtual void Get_Partition_List(string ListType, std::vector<PartitionList> *Partition_List);
+ virtual int Fstab_Processed(); // Indicates if the fstab has been processed or not
+
private:
bool Make_MD5(bool generate_md5, string Backup_Folder, string Backup_Filename); // Generates an MD5 after a backup is made
bool 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);