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
This commit is contained in:
Dees_Troy
2013-03-30 08:56:39 -05:00
parent 3b51163329
commit a13d74fc95
79 changed files with 9597 additions and 9380 deletions
+59 -109
View File
@@ -226,7 +226,12 @@ int DataManager::LoadValues(const string filename)
// Read in the file, if possible
FILE* in = fopen(filename.c_str(), "rb");
if (!in) return 0;
if (!in) {
LOGI("Settings file '%s' not found.\n", filename.c_str());
return 0;
} else {
LOGI("Loading settings from '%s'.\n", filename.c_str());
}
int file_version;
if (fread(&file_version, 1, sizeof(int), in) != sizeof(int)) goto error;
@@ -259,24 +264,19 @@ int DataManager::LoadValues(const string filename)
}
else
mValues.insert(TNameValuePair(Name, TStrIntPair(Value, 1)));
if (Name == "tw_screen_timeout_secs")
blankTimer.setTime(atoi(Value.c_str()));
}
fclose(in);
str = GetCurrentStoragePath();
str += "/TWRP/BACKUPS/";
str += dev_id;
SetValue(TW_BACKUPS_FOLDER_VAR, str, 0);
return 0;
error:
// File version mismatch. Use defaults.
fclose(in);
str = GetCurrentStoragePath();
str += "/TWRP/BACKUPS/";
str += dev_id;
SetValue(TW_BACKUPS_FOLDER_VAR, str, 0);
return -1;
string current = GetCurrentStoragePath();
string settings = GetSettingsStoragePath();
if (current != settings && !PartitionManager.Mount_By_Path(current, false)) {
SetValue("tw_storage_path", settings);
} else {
SetBackupFolder();
}
return 0;
}
int DataManager::Flush()
@@ -433,10 +433,10 @@ int DataManager::SetValue(const string varName, string value, int persist /* = 0
SaveValues();
if (varName == "tw_screen_timeout_secs") {
blankTimer.setTime(atoi(value.c_str()));
} else if (varName == "tw_storage_path") {
SetBackupFolder();
}
else {
gui_notifyVarChange(varName.c_str(), value.c_str());
}
gui_notifyVarChange(varName.c_str(), value.c_str());
return 0;
}
@@ -458,13 +458,8 @@ int DataManager::SetValue(const string varName, int value, int persist /* = 0 */
else
str = GetStrValue(TW_EXTERNAL_PATH);
string dev_id;
GetValue("device_id", dev_id);
str += "/TWRP/BACKUPS/";
str += dev_id;
SetValue(TW_BACKUPS_FOLDER_VAR, str);
SetValue("tw_storage_path", str);
SetBackupFolder();
}
return SetValue(varName, valStr.str(), persist);;
}
@@ -501,13 +496,38 @@ void DataManager::update_tz_environment_variables(void) {
void DataManager::SetBackupFolder()
{
string str = GetCurrentStoragePath();
TWPartition* partition = PartitionManager.Find_Partition_By_Path(str);
str += "/TWRP/BACKUPS/";
string dev_id;
GetValue("device_id", dev_id);
str += dev_id;
LOGI("Backup folder set to '%s'\n", str.c_str());
SetValue(TW_BACKUPS_FOLDER_VAR, str, 0);
if (partition != NULL) {
SetValue("tw_storage_display_name", partition->Storage_Name);
char free_space[255];
sprintf(free_space, "%llu", partition->Free / 1024 / 1024);
SetValue("tw_storage_free_size", free_space);
string zip_path, zip_root, storage_path;
GetValue(TW_ZIP_LOCATION_VAR, zip_path);
if (partition->Has_Data_Media)
storage_path = partition->Symlink_Mount_Point;
else
storage_path = partition->Storage_Path;
if (zip_path.size() < storage_path.size()) {
SetValue(TW_ZIP_LOCATION_VAR, storage_path);
} else {
zip_root= zip_path;
zip_root.resize(storage_path.size() + 1);
if (zip_root != storage_path)
SetValue(TW_ZIP_LOCATION_VAR, storage_path);
}
} else {
if (PartitionManager.Fstab_Processed() != 0)
LOGE("Storage partition '%s' not found\n", str.c_str());
}
}
void DataManager::SetDefaultValues()
@@ -522,6 +542,7 @@ void DataManager::SetDefaultValues()
mConstValues.insert(make_pair("false", "0"));
mConstValues.insert(make_pair(TW_VERSION_VAR, TW_VERSION_STR));
mValues.insert(make_pair("tw_storage_path", make_pair("/", 1)));
#ifdef TW_FORCE_CPUINFO_FOR_DEVICE_ID
printf("TW_FORCE_CPUINFO_FOR_DEVICE_ID := true\n");
@@ -788,7 +809,12 @@ void DataManager::SetDefaultValues()
mConstValues.insert(make_pair(TW_SDEXT_DISABLE_EXT4, "0"));
#endif
mConstValues.insert(make_pair(TW_MIN_SYSTEM_VAR, TW_MIN_SYSTEM_SIZE));
#ifdef TW_HAS_NO_BOOT_PARTITION
mValues.insert(make_pair("tw_backup_list", make_pair("/system;/data;", 0)));
#else
mValues.insert(make_pair("tw_backup_list", make_pair("/system;/data;/boot;", 0)));
#endif
mConstValues.insert(make_pair(TW_MIN_SYSTEM_VAR, TW_MIN_SYSTEM_SIZE));
mValues.insert(make_pair(TW_BACKUP_NAME, make_pair("(Current Date)", 0)));
mValues.insert(make_pair(TW_BACKUP_SYSTEM_VAR, make_pair("1", 1)));
mValues.insert(make_pair(TW_BACKUP_DATA_VAR, make_pair("1", 1)));
@@ -882,7 +908,7 @@ void DataManager::SetDefaultValues()
mConstValues.insert(make_pair("tw_has_brightnesss_file", "0"));
}
#endif
mValues.insert(make_pair(TW_MILITARY_TIME, make_pair("0", 0)));
mValues.insert(make_pair(TW_MILITARY_TIME, make_pair("0", 1)));
}
// Magic Values
@@ -1018,7 +1044,7 @@ void DataManager::ReadSettingsFile(void)
{
usleep(500000);
if (!PartitionManager.Mount_Settings_Storage(false))
LOGE("Unable to mount %s when trying to read settings file.\n", DataManager_GetSettingsStorageMount());
LOGE("Unable to mount %s when trying to read settings file.\n", settings_file);
}
mkdir(mkdir_path, 0777);
@@ -1063,86 +1089,22 @@ void DataManager::ReadSettingsFile(void)
string DataManager::GetCurrentStoragePath(void)
{
if (GetIntValue(TW_HAS_DUAL_STORAGE) == 1) {
if (GetIntValue(TW_USE_EXTERNAL_STORAGE) == 0)
return GetStrValue(TW_INTERNAL_PATH);
else
return GetStrValue(TW_EXTERNAL_PATH);
} else if (GetIntValue(TW_HAS_INTERNAL) == 1)
return GetStrValue(TW_INTERNAL_PATH);
else
return GetStrValue(TW_EXTERNAL_PATH);
return GetStrValue("tw_storage_path");
}
string& DataManager::CGetCurrentStoragePath()
{
if (GetIntValue(TW_HAS_DUAL_STORAGE) == 1) {
if (GetIntValue(TW_USE_EXTERNAL_STORAGE) == 0)
return GetValueRef(TW_INTERNAL_PATH);
else
return GetValueRef(TW_EXTERNAL_PATH);
} else if (GetIntValue(TW_HAS_INTERNAL) == 1)
return GetValueRef(TW_INTERNAL_PATH);
else
return GetValueRef(TW_EXTERNAL_PATH);
}
string DataManager::GetCurrentStorageMount(void)
{
if (GetIntValue(TW_HAS_DUAL_STORAGE) == 1) {
if (GetIntValue(TW_USE_EXTERNAL_STORAGE) == 0)
return GetStrValue(TW_INTERNAL_MOUNT);
else
return GetStrValue(TW_EXTERNAL_MOUNT);
} else if (GetIntValue(TW_HAS_INTERNAL) == 1)
return GetStrValue(TW_INTERNAL_MOUNT);
else
return GetStrValue(TW_EXTERNAL_MOUNT);
}
string& DataManager::CGetCurrentStorageMount()
{
if (GetIntValue(TW_HAS_DUAL_STORAGE) == 1) {
if (GetIntValue(TW_USE_EXTERNAL_STORAGE) == 0)
return GetValueRef(TW_INTERNAL_MOUNT);
else
return GetValueRef(TW_EXTERNAL_MOUNT);
} else if (GetIntValue(TW_HAS_INTERNAL) == 1)
return GetValueRef(TW_INTERNAL_MOUNT);
else
return GetValueRef(TW_EXTERNAL_MOUNT);
return GetValueRef("tw_storage_path");
}
string DataManager::GetSettingsStoragePath(void)
{
if (GetIntValue(TW_HAS_INTERNAL) == 1)
return GetStrValue(TW_INTERNAL_PATH);
else
return GetStrValue(TW_EXTERNAL_PATH);
return GetStrValue("tw_settings_path");
}
string& DataManager::CGetSettingsStoragePath()
{
if (GetIntValue(TW_HAS_INTERNAL) == 1)
return GetValueRef(TW_INTERNAL_PATH);
else
return GetValueRef(TW_EXTERNAL_PATH);
}
string DataManager::GetSettingsStorageMount(void)
{
if (GetIntValue(TW_HAS_INTERNAL) == 1)
return GetStrValue(TW_INTERNAL_MOUNT);
else
return GetStrValue(TW_EXTERNAL_MOUNT);
}
string& DataManager::CGetSettingsStorageMount()
{
if (GetIntValue(TW_HAS_INTERNAL) == 1)
return GetValueRef(TW_INTERNAL_MOUNT);
else
return GetValueRef(TW_EXTERNAL_MOUNT);
return GetValueRef("tw_settings_path");
}
extern "C" int DataManager_ResetDefaults()
@@ -1194,18 +1156,6 @@ extern "C" const char* DataManager_GetSettingsStoragePath(void)
return str.c_str();
}
extern "C" const char* DataManager_GetCurrentStorageMount(void)
{
string& str = DataManager::CGetCurrentStorageMount();
return str.c_str();
}
extern "C" const char* DataManager_GetSettingsStorageMount(void)
{
string& str = DataManager::CGetSettingsStorageMount();
return str.c_str();
}
extern "C" int DataManager_GetIntValue(const char* varName)
{
return DataManager::GetIntValue(varName);