summaryrefslogtreecommitdiffstats
path: root/data.cpp
diff options
context:
space:
mode:
authorEthan Yonker <dees_troy@teamw.in>2016-03-14 20:54:37 +0100
committerDees Troy <dees_troy@teamw.in>2016-03-31 16:43:53 +0200
commitfe91611cb1c484429f2fdc958732337a5fc38fa8 (patch)
treee91133c9a9dff6f1dbba46c5110cd203dc0ddc55 /data.cpp
parentlanguages: fix and improve german translation (diff)
downloadandroid_bootable_recovery-fe91611cb1c484429f2fdc958732337a5fc38fa8.tar
android_bootable_recovery-fe91611cb1c484429f2fdc958732337a5fc38fa8.tar.gz
android_bootable_recovery-fe91611cb1c484429f2fdc958732337a5fc38fa8.tar.bz2
android_bootable_recovery-fe91611cb1c484429f2fdc958732337a5fc38fa8.tar.lz
android_bootable_recovery-fe91611cb1c484429f2fdc958732337a5fc38fa8.tar.xz
android_bootable_recovery-fe91611cb1c484429f2fdc958732337a5fc38fa8.tar.zst
android_bootable_recovery-fe91611cb1c484429f2fdc958732337a5fc38fa8.zip
Diffstat (limited to 'data.cpp')
-rw-r--r--data.cpp462
1 files changed, 178 insertions, 284 deletions
diff --git a/data.cpp b/data.cpp
index fbdf6d266..1ea7b8431 100644
--- a/data.cpp
+++ b/data.cpp
@@ -1,5 +1,5 @@
/*
- Copyright 2012 bigbiff/Dees_Troy TeamWin
+ Copyright 2012 to 2016 bigbiff/Dees_Troy TeamWin
This file is part of TWRP/TeamWin Recovery Project.
TWRP is free software: you can redistribute it and/or modify
@@ -16,29 +16,12 @@
along with TWRP. If not, see <http://www.gnu.org/licenses/>.
*/
-#include <linux/input.h>
#include <pthread.h>
-#include <stdarg.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <fcntl.h>
-#include <sys/stat.h>
-#include <sys/time.h>
-#include <sys/mman.h>
-#include <sys/types.h>
-#include <sys/ioctl.h>
#include <time.h>
-#include <unistd.h>
-#include <stdlib.h>
-#include <ctype.h>
-
#include <string>
-#include <utility>
-#include <map>
-#include <fstream>
#include <sstream>
-#include <pthread.h>
+#include <cctype>
+#include <cutils/properties.h>
#include "variables.h"
#include "data.hpp"
@@ -49,8 +32,8 @@
#endif
#include "find_file.hpp"
#include "set_metadata.h"
-#include <cutils/properties.h>
#include "gui/gui.hpp"
+#include "infomanager.hpp"
#define DEVID_MAX 64
#define HWID_MAX 32
@@ -63,14 +46,15 @@ extern "C"
}
#include "minuitwrp/minui.h"
-#define FILE_VERSION 0x00010010
+#define FILE_VERSION 0x00010010 // Do not set to 0
using namespace std;
-map<string, DataManager::TStrIntPair> DataManager::mValues;
-map<string, string> DataManager::mConstValues;
string DataManager::mBackingFile;
int DataManager::mInitialized = 0;
+InfoManager DataManager::mPersist; // Data that that is not constant and will be saved to the settings file
+InfoManager DataManager::mData; // Data that is not constant and will not be saved to settings file
+InfoManager DataManager::mConst; // Data that is constant and will not be saved to settings file
extern bool datamedia;
@@ -154,7 +138,7 @@ void DataManager::get_device_id(void) {
snprintf(device_id, DEVID_MAX, "%s_%s", model_id, hardware_id);
sanitize_device_id(device_id);
- mConstValues.insert(make_pair("device_id", device_id));
+ mConst.SetValue("device_id", device_id);
LOGINFO("=> using device id: '%s'\n", device_id);
return;
}
@@ -173,7 +157,7 @@ void DataManager::get_device_id(void) {
token += CMDLINE_SERIALNO_LEN;
snprintf(device_id, DEVID_MAX, "%s", token);
sanitize_device_id(device_id); // also removes newlines
- mConstValues.insert(make_pair("device_id", device_id));
+ mConst.SetValue("device_id", device_id);
return;
}
token = strtok(NULL, " ");
@@ -195,7 +179,7 @@ void DataManager::get_device_id(void) {
snprintf(device_id, DEVID_MAX, "%s", token);
sanitize_device_id(device_id); // also removes newlines
LOGINFO("=> serial from cpuinfo: '%s'\n", device_id);
- mConstValues.insert(make_pair("device_id", device_id));
+ mConst.SetValue("device_id", device_id);
fclose(fp);
return;
}
@@ -221,28 +205,29 @@ void DataManager::get_device_id(void) {
LOGINFO("\nusing hardware id for device id: '%s'\n", hardware_id);
snprintf(device_id, DEVID_MAX, "%s", hardware_id);
sanitize_device_id(device_id);
- mConstValues.insert(make_pair("device_id", device_id));
+ mConst.SetValue("device_id", device_id);
return;
}
strcpy(device_id, "serialno");
LOGINFO("=> device id not found, using '%s'\n", device_id);
- mConstValues.insert(make_pair("device_id", device_id));
+ mConst.SetValue("device_id", device_id);
return;
}
int DataManager::ResetDefaults()
{
pthread_mutex_lock(&m_valuesLock);
- mValues.clear();
+ mPersist.Clear();
+ mData.Clear();
+ mConst.Clear();
pthread_mutex_unlock(&m_valuesLock);
- mConstValues.clear();
SetDefaultValues();
return 0;
}
-int DataManager::LoadValues(const string filename)
+int DataManager::LoadValues(const string& filename)
{
string str, dev_id;
@@ -252,61 +237,18 @@ int DataManager::LoadValues(const string filename)
GetValue("device_id", dev_id);
// Save off the backing file for set operations
mBackingFile = filename;
+ mPersist.SetFile(filename);
+ mPersist.SetFileVersion(FILE_VERSION);
// Read in the file, if possible
- FILE* in = fopen(filename.c_str(), "rb");
- if (!in) {
- LOGINFO("Settings file '%s' not found.\n", filename.c_str());
- return 0;
- } else {
- LOGINFO("Loading settings from '%s'.\n", filename.c_str());
- }
-
- int file_version;
- if (fread(&file_version, 1, sizeof(int), in) != sizeof(int)) goto error;
- if (file_version != FILE_VERSION) goto error;
-
- while (!feof(in))
- {
- string Name;
- string Value;
- unsigned short length;
- char array[513];
-
- if (fread(&length, 1, sizeof(unsigned short), in) != sizeof(unsigned short)) goto error;
- if (length >= 512) goto error;
- if (fread(array, 1, length, in) != length) goto error;
- array[length+1] = '\0';
- Name = array;
-
- if (fread(&length, 1, sizeof(unsigned short), in) != sizeof(unsigned short)) goto error;
- if (length >= 512) goto error;
- if (fread(array, 1, length, in) != length) goto error;
- array[length+1] = '\0';
- Value = array;
-
- map<string, TStrIntPair>::iterator pos;
-
- pthread_mutex_lock(&m_valuesLock);
-
- pos = mValues.find(Name);
- if (pos != mValues.end())
- {
- pos->second.first = Value;
- pos->second.second = 1;
- }
- else
- mValues.insert(TNameValuePair(Name, TStrIntPair(Value, 1)));
-
- pthread_mutex_unlock(&m_valuesLock);
+ pthread_mutex_lock(&m_valuesLock);
+ mPersist.LoadValues();
#ifndef TW_NO_SCREEN_TIMEOUT
- if (Name == "tw_screen_timeout_secs")
- blankTimer.setTime(atoi(Value.c_str()));
+ blankTimer.setTime(mPersist.GetIntValue("tw_screen_timeout_secs"));
#endif
- }
-error:
- fclose(in);
+
+ pthread_mutex_unlock(&m_valuesLock);
string current = GetCurrentStoragePath();
TWPartition* Part = PartitionManager.Find_Partition_By_Path(current);
if(!Part)
@@ -334,41 +276,22 @@ int DataManager::SaveValues()
string mount_path = GetSettingsStoragePath();
PartitionManager.Mount_By_Path(mount_path.c_str(), 1);
- FILE* out = fopen(mBackingFile.c_str(), "wb");
- if (!out)
- return -1;
-
- int file_version = FILE_VERSION;
- fwrite(&file_version, 1, sizeof(int), out);
-
+ mPersist.SetFile(mBackingFile);
+ mPersist.SetFileVersion(FILE_VERSION);
pthread_mutex_lock(&m_valuesLock);
-
- map<string, TStrIntPair>::iterator iter;
- for (iter = mValues.begin(); iter != mValues.end(); ++iter)
- {
- // Save only the persisted data
- if (iter->second.second != 0)
- {
- unsigned short length = (unsigned short) iter->first.length() + 1;
- fwrite(&length, 1, sizeof(unsigned short), out);
- fwrite(iter->first.c_str(), 1, length, out);
- length = (unsigned short) iter->second.first.length() + 1;
- fwrite(&length, 1, sizeof(unsigned short), out);
- fwrite(iter->second.first.c_str(), 1, length, out);
- }
- }
-
+ mPersist.SaveValues();
pthread_mutex_unlock(&m_valuesLock);
- fclose(out);
tw_set_default_metadata(mBackingFile.c_str());
+ LOGINFO("Saved settings file values\n");
#endif // ifdef TW_OEM_BUILD
return 0;
}
-int DataManager::GetValue(const string varName, string& value)
+int DataManager::GetValue(const string& varName, string& value)
{
string localStr = varName;
+ int ret = 0;
if (!mInitialized)
SetDefaultValues();
@@ -392,28 +315,22 @@ int DataManager::GetValue(const string varName, string& value)
return 0;
}
- map<string, string>::iterator constPos;
- constPos = mConstValues.find(localStr);
- if (constPos != mConstValues.end())
- {
- value = constPos->second;
- return 0;
- }
-
pthread_mutex_lock(&m_valuesLock);
- map<string, TStrIntPair>::iterator pos;
- pos = mValues.find(localStr);
- if (pos == mValues.end()){
- pthread_mutex_unlock(&m_valuesLock);
- return -1;
- }
+ ret = mConst.GetValue(localStr, value);
+ if (ret == 0)
+ goto exit;
+
+ ret = mPersist.GetValue(localStr, value);
+ if (ret == 0)
+ goto exit;
- value = pos->second.first;
+ ret = mData.GetValue(localStr, value);
+exit:
pthread_mutex_unlock(&m_valuesLock);
- return 0;
+ return ret;
}
-int DataManager::GetValue(const string varName, int& value)
+int DataManager::GetValue(const string& varName, int& value)
{
string data;
@@ -424,7 +341,7 @@ int DataManager::GetValue(const string varName, int& value)
return 0;
}
-int DataManager::GetValue(const string varName, float& value)
+int DataManager::GetValue(const string& varName, float& value)
{
string data;
@@ -435,7 +352,7 @@ int DataManager::GetValue(const string varName, float& value)
return 0;
}
-unsigned long long DataManager::GetValue(const string varName, unsigned long long& value)
+unsigned long long DataManager::GetValue(const string& varName, unsigned long long& value)
{
string data;
@@ -447,7 +364,7 @@ unsigned long long DataManager::GetValue(const string varName, unsigned long lon
}
// This function will return an empty string if the value doesn't exist
-string DataManager::GetStrValue(const string varName)
+string DataManager::GetStrValue(const string& varName)
{
string retVal;
@@ -456,7 +373,7 @@ string DataManager::GetStrValue(const string varName)
}
// This function will return 0 if the value doesn't exist
-int DataManager::GetIntValue(const string varName)
+int DataManager::GetIntValue(const string& varName)
{
string retVal;
@@ -464,7 +381,7 @@ int DataManager::GetIntValue(const string varName)
return atoi(retVal.c_str());
}
-int DataManager::SetValue(const string varName, string value, int persist /* = 0 */)
+int DataManager::SetValue(const string& varName, const string& value, const int persist /* = 0 */)
{
if (!mInitialized)
SetDefaultValues();
@@ -481,22 +398,24 @@ int DataManager::SetValue(const string varName, string value, int persist /* = 0
if (varName.empty() || (varName[0] >= '0' && varName[0] <= '9'))
return -1;
- map<string, string>::iterator constChk;
- constChk = mConstValues.find(varName);
- if (constChk != mConstValues.end())
- return -1;
-
+ string test;
pthread_mutex_lock(&m_valuesLock);
+ int constChk = mConst.GetValue(varName, test);
+ if (constChk == 0) {
+ pthread_mutex_unlock(&m_valuesLock);
+ return -1;
+ }
- map<string, TStrIntPair>::iterator pos;
- pos = mValues.find(varName);
- if (pos == mValues.end())
- pos = (mValues.insert(TNameValuePair(varName, TStrIntPair(value, persist)))).first;
- else
- pos->second.first = value;
-
- if (pos->second.second != 0)
- SaveValues();
+ if (persist) {
+ mPersist.SetValue(varName, value);
+ } else {
+ int persistChk = mPersist.GetValue(varName, test);
+ if (persistChk == 0) {
+ mPersist.SetValue(varName, value);
+ } else {
+ mData.SetValue(varName, value);
+ }
+ }
pthread_mutex_unlock(&m_valuesLock);
@@ -512,42 +431,32 @@ int DataManager::SetValue(const string varName, string value, int persist /* = 0
return 0;
}
-int DataManager::SetValue(const string varName, int value, int persist /* = 0 */)
+int DataManager::SetValue(const string& varName, const int value, const int persist /* = 0 */)
{
ostringstream valStr;
valStr << value;
- if (varName == "tw_use_external_storage") {
- string str;
-
- if (GetIntValue(TW_HAS_INTERNAL) == 1)
- str = GetStrValue(TW_INTERNAL_PATH);
- else
- str = GetStrValue(TW_EXTERNAL_PATH);
-
- SetValue("tw_storage_path", str);
- }
return SetValue(varName, valStr.str(), persist);
}
-int DataManager::SetValue(const string varName, float value, int persist /* = 0 */)
+int DataManager::SetValue(const string& varName, const float value, const int persist /* = 0 */)
{
ostringstream valStr;
valStr << value;
return SetValue(varName, valStr.str(), persist);;
}
-int DataManager::SetValue(const string varName, unsigned long long value, int persist /* = 0 */)
+int DataManager::SetValue(const string& varName, const unsigned long long& value, const int persist /* = 0 */)
{
ostringstream valStr;
valStr << value;
return SetValue(varName, valStr.str(), persist);
}
-int DataManager::SetProgress(float Fraction) {
+int DataManager::SetProgress(const float Fraction) {
return SetValue("ui_progress", (float) (Fraction * 100.0));
}
-int DataManager::ShowProgress(float Portion, float Seconds)
+int DataManager::ShowProgress(const float Portion, const float Seconds)
{
float Starting_Portion;
GetValue("ui_progress_portion", Starting_Portion);
@@ -558,16 +467,6 @@ int DataManager::ShowProgress(float Portion, float Seconds)
return 0;
}
-void DataManager::DumpValues()
-{
- map<string, TStrIntPair>::iterator iter;
- gui_print("Data Manager dump - Values with leading X are persisted.\n");
- pthread_mutex_lock(&m_valuesLock);
- for (iter = mValues.begin(); iter != mValues.end(); ++iter)
- gui_print("%c %s=%s\n", iter->second.second ? 'X' : ' ', iter->first.c_str(), iter->second.first.c_str());
- pthread_mutex_unlock(&m_valuesLock);
-}
-
void DataManager::update_tz_environment_variables(void)
{
setenv("TZ", GetStrValue(TW_TIME_ZONE_VAR).c_str(), 1);
@@ -618,25 +517,27 @@ void DataManager::SetDefaultValues()
{
string str, path;
+ mConst.SetConst();
+
get_device_id();
pthread_mutex_lock(&m_valuesLock);
mInitialized = 1;
- mConstValues.insert(make_pair("true", "1"));
- mConstValues.insert(make_pair("false", "0"));
+ mConst.SetValue("true", "1");
+ mConst.SetValue("false", "0");
- mConstValues.insert(make_pair(TW_VERSION_VAR, TW_VERSION_STR));
- mValues.insert(make_pair("tw_button_vibrate", make_pair("80", 1)));
- mValues.insert(make_pair("tw_keyboard_vibrate", make_pair("40", 1)));
- mValues.insert(make_pair("tw_action_vibrate", make_pair("160", 1)));
+ mConst.SetValue(TW_VERSION_VAR, TW_VERSION_STR);
+ mPersist.SetValue("tw_button_vibrate", "80");
+ mPersist.SetValue("tw_keyboard_vibrate", "40");
+ mPersist.SetValue("tw_action_vibrate", "160");
TWPartition *store = PartitionManager.Get_Default_Storage_Partition();
if(store)
- mValues.insert(make_pair("tw_storage_path", make_pair(store->Storage_Path.c_str(), 1)));
+ mPersist.SetValue("tw_storage_path", store->Storage_Path);
else
- mValues.insert(make_pair("tw_storage_path", make_pair("/", 1)));
+ mPersist.SetValue("tw_storage_path", "/");
#ifdef TW_FORCE_CPUINFO_FOR_DEVICE_ID
printf("TW_FORCE_CPUINFO_FOR_DEVICE_ID := true\n");
@@ -644,60 +545,58 @@ void DataManager::SetDefaultValues()
#ifdef BOARD_HAS_NO_REAL_SDCARD
printf("BOARD_HAS_NO_REAL_SDCARD := true\n");
- mConstValues.insert(make_pair(TW_ALLOW_PARTITION_SDCARD, "0"));
+ mConst.SetValue(TW_ALLOW_PARTITION_SDCARD, "0");
#else
- mConstValues.insert(make_pair(TW_ALLOW_PARTITION_SDCARD, "1"));
+ mConst.SetValue(TW_ALLOW_PARTITION_SDCARD, "1");
#endif
#ifdef TW_INCLUDE_DUMLOCK
printf("TW_INCLUDE_DUMLOCK := true\n");
- mConstValues.insert(make_pair(TW_SHOW_DUMLOCK, "1"));
+ mConst.SetValue(TW_SHOW_DUMLOCK, "1");
#else
- mConstValues.insert(make_pair(TW_SHOW_DUMLOCK, "0"));
+ mConst.SetValue(TW_SHOW_DUMLOCK, "0");
#endif
str = GetCurrentStoragePath();
- SetValue(TW_ZIP_LOCATION_VAR, str.c_str(), 1);
+ mPersist.SetValue(TW_ZIP_LOCATION_VAR, str);
str += "/TWRP/BACKUPS/";
string dev_id;
- GetValue("device_id", dev_id);
+ mConst.GetValue("device_id", dev_id);
str += dev_id;
- SetValue(TW_BACKUPS_FOLDER_VAR, str, 0);
+ mData.SetValue(TW_BACKUPS_FOLDER_VAR, str);
- mConstValues.insert(make_pair(TW_REBOOT_SYSTEM, "1"));
+ mConst.SetValue(TW_REBOOT_SYSTEM, "1");
#ifdef TW_NO_REBOOT_RECOVERY
printf("TW_NO_REBOOT_RECOVERY := true\n");
- mConstValues.insert(make_pair(TW_REBOOT_RECOVERY, "0"));
+ mConst.SetValue(TW_REBOOT_RECOVERY, "0");
#else
- mConstValues.insert(make_pair(TW_REBOOT_RECOVERY, "1"));
+ mConst.SetValue(TW_REBOOT_RECOVERY, "1");
#endif
- mConstValues.insert(make_pair(TW_REBOOT_POWEROFF, "1"));
+ mConst.SetValue(TW_REBOOT_POWEROFF, "1");
#ifdef TW_NO_REBOOT_BOOTLOADER
printf("TW_NO_REBOOT_BOOTLOADER := true\n");
- mConstValues.insert(make_pair(TW_REBOOT_BOOTLOADER, "0"));
+ mConst.SetValue(TW_REBOOT_BOOTLOADER, "0");
#else
- mConstValues.insert(make_pair(TW_REBOOT_BOOTLOADER, "1"));
+ mConst.SetValue(TW_REBOOT_BOOTLOADER, "1");
#endif
#ifdef RECOVERY_SDCARD_ON_DATA
printf("RECOVERY_SDCARD_ON_DATA := true\n");
- mConstValues.insert(make_pair(TW_HAS_DATA_MEDIA, "1"));
- mConstValues.insert(make_pair("tw_has_internal", "1"));
+ mConst.SetValue(TW_HAS_DATA_MEDIA, "1");
datamedia = true;
#else
- mValues.insert(make_pair(TW_HAS_DATA_MEDIA, make_pair("0", 0)));
- mValues.insert(make_pair("tw_has_internal", make_pair("0", 0)));
+ mData.SetValue(TW_HAS_DATA_MEDIA, "0");
#endif
#ifdef TW_NO_BATT_PERCENT
printf("TW_NO_BATT_PERCENT := true\n");
- mConstValues.insert(make_pair(TW_NO_BATTERY_PERCENT, "1"));
+ mConst.SetValue(TW_NO_BATTERY_PERCENT, "1");
#else
- mConstValues.insert(make_pair(TW_NO_BATTERY_PERCENT, "0"));
+ mConst.SetValue(TW_NO_BATTERY_PERCENT, "0");
#endif
#ifdef TW_NO_CPU_TEMP
printf("TW_NO_CPU_TEMP := true\n");
- mConstValues.insert(make_pair("tw_no_cpu_temp", "1"));
+ mConst.SetValue("tw_no_cpu_temp", "1");
#else
string cpu_temp_file;
#ifdef TW_CUSTOM_CPU_TEMP_PATH
@@ -706,31 +605,31 @@ void DataManager::SetDefaultValues()
cpu_temp_file = "/sys/class/thermal/thermal_zone0/temp";
#endif
if (TWFunc::Path_Exists(cpu_temp_file)) {
- mConstValues.insert(make_pair("tw_no_cpu_temp", "0"));
+ mConst.SetValue("tw_no_cpu_temp", "0");
} else {
LOGINFO("CPU temperature file '%s' not found, disabling CPU temp.\n", cpu_temp_file.c_str());
- mConstValues.insert(make_pair("tw_no_cpu_temp", "1"));
+ mConst.SetValue("tw_no_cpu_temp", "1");
}
#endif
#ifdef TW_CUSTOM_POWER_BUTTON
printf("TW_POWER_BUTTON := %s\n", EXPAND(TW_CUSTOM_POWER_BUTTON));
- mConstValues.insert(make_pair(TW_POWER_BUTTON, EXPAND(TW_CUSTOM_POWER_BUTTON)));
+ mConst.SetValue(TW_POWER_BUTTON, EXPAND(TW_CUSTOM_POWER_BUTTON));
#else
- mConstValues.insert(make_pair(TW_POWER_BUTTON, "0"));
+ mConst.SetValue(TW_POWER_BUTTON, "0");
#endif
#ifdef TW_ALWAYS_RMRF
printf("TW_ALWAYS_RMRF := true\n");
- mConstValues.insert(make_pair(TW_RM_RF_VAR, "1"));
+ mConst.SetValue(TW_RM_RF_VAR, "1");
#endif
#ifdef TW_NEVER_UNMOUNT_SYSTEM
printf("TW_NEVER_UNMOUNT_SYSTEM := true\n");
- mConstValues.insert(make_pair(TW_DONT_UNMOUNT_SYSTEM, "1"));
+ mConst.SetValue(TW_DONT_UNMOUNT_SYSTEM, "1");
#else
- mConstValues.insert(make_pair(TW_DONT_UNMOUNT_SYSTEM, "0"));
+ mConst.SetValue(TW_DONT_UNMOUNT_SYSTEM, "0");
#endif
#ifdef TW_NO_USB_STORAGE
printf("TW_NO_USB_STORAGE := true\n");
- mConstValues.insert(make_pair(TW_HAS_USB_STORAGE, "0"));
+ mConst.SetValue(TW_HAS_USB_STORAGE, "0");
#else
char lun_file[255];
string Lun_File_str = CUSTOM_LUN_FILE;
@@ -741,86 +640,83 @@ void DataManager::SetDefaultValues()
}
if (!TWFunc::Path_Exists(Lun_File_str)) {
LOGINFO("Lun file '%s' does not exist, USB storage mode disabled\n", Lun_File_str.c_str());
- mConstValues.insert(make_pair(TW_HAS_USB_STORAGE, "0"));
+ mConst.SetValue(TW_HAS_USB_STORAGE, "0");
} else {
LOGINFO("Lun file '%s'\n", Lun_File_str.c_str());
- mValues.insert(make_pair(TW_HAS_USB_STORAGE, make_pair("1", 0)));
+ mData.SetValue(TW_HAS_USB_STORAGE, "1");
}
#endif
#ifdef TW_INCLUDE_INJECTTWRP
printf("TW_INCLUDE_INJECTTWRP := true\n");
- mConstValues.insert(make_pair(TW_HAS_INJECTTWRP, "1"));
- mValues.insert(make_pair(TW_INJECT_AFTER_ZIP, make_pair("1", 1)));
+ mConst.SetValue(TW_HAS_INJECTTWRP, "1");
+ mPersist(TW_INJECT_AFTER_ZIP, "1");
#else
- mConstValues.insert(make_pair(TW_HAS_INJECTTWRP, "0"));
- mValues.insert(make_pair(TW_INJECT_AFTER_ZIP, make_pair("0", 1)));
+ mConst.SetValue(TW_HAS_INJECTTWRP, "0");
#endif
#ifdef TW_HAS_DOWNLOAD_MODE
printf("TW_HAS_DOWNLOAD_MODE := true\n");
- mConstValues.insert(make_pair(TW_DOWNLOAD_MODE, "1"));
+ mConst.SetValue(TW_DOWNLOAD_MODE, "1");
#endif
#ifdef TW_INCLUDE_CRYPTO
- mConstValues.insert(make_pair(TW_HAS_CRYPTO, "1"));
+ mConst.SetValue(TW_HAS_CRYPTO, "1");
printf("TW_INCLUDE_CRYPTO := true\n");
#endif
#ifdef TW_SDEXT_NO_EXT4
printf("TW_SDEXT_NO_EXT4 := true\n");
- mConstValues.insert(make_pair(TW_SDEXT_DISABLE_EXT4, "1"));
+ mConst.SetValue(TW_SDEXT_DISABLE_EXT4, "1");
#else
- mConstValues.insert(make_pair(TW_SDEXT_DISABLE_EXT4, "0"));
+ mConst.SetValue(TW_SDEXT_DISABLE_EXT4, "0");
#endif
#ifdef TW_HAS_NO_BOOT_PARTITION
- mValues.insert(make_pair("tw_backup_list", make_pair("/system;/data;", 1)));
+ mPersist.SetValue("tw_backup_list", "/system;/data;");
#else
- mValues.insert(make_pair("tw_backup_list", make_pair("/system;/data;/boot;", 1)));
+ mPersist.SetValue("tw_backup_list", "/system;/data;/boot;");
#endif
- mConstValues.insert(make_pair(TW_MIN_SYSTEM_VAR, TW_MIN_SYSTEM_SIZE));
- mValues.insert(make_pair(TW_BACKUP_NAME, make_pair("(Auto Generate)", 0)));
-
- mValues.insert(make_pair(TW_REBOOT_AFTER_FLASH_VAR, make_pair("0", 1)));
- mValues.insert(make_pair(TW_SIGNED_ZIP_VERIFY_VAR, make_pair("0", 1)));
- mValues.insert(make_pair(TW_FORCE_MD5_CHECK_VAR, make_pair("0", 1)));
- mValues.insert(make_pair(TW_COLOR_THEME_VAR, make_pair("0", 1)));
- mValues.insert(make_pair(TW_USE_COMPRESSION_VAR, make_pair("0", 1)));
- mValues.insert(make_pair(TW_SHOW_SPAM_VAR, make_pair("0", 1)));
- mValues.insert(make_pair(TW_TIME_ZONE_VAR, make_pair("CST6CDT,M3.2.0,M11.1.0", 1)));
- mValues.insert(make_pair(TW_SORT_FILES_BY_DATE_VAR, make_pair("0", 1)));
- mValues.insert(make_pair(TW_GUI_SORT_ORDER, make_pair("1", 1)));
- mValues.insert(make_pair(TW_RM_RF_VAR, make_pair("0", 1)));
- mValues.insert(make_pair(TW_SKIP_MD5_CHECK_VAR, make_pair("0", 1)));
- mValues.insert(make_pair(TW_SKIP_MD5_GENERATE_VAR, make_pair("0", 1)));
- mValues.insert(make_pair(TW_SDEXT_SIZE, make_pair("0", 1)));
- mValues.insert(make_pair(TW_SWAP_SIZE, make_pair("0", 1)));
- mValues.insert(make_pair(TW_SDPART_FILE_SYSTEM, make_pair("ext3", 1)));
- mValues.insert(make_pair(TW_TIME_ZONE_GUISEL, make_pair("CST6;CDT,M3.2.0,M11.1.0", 1)));
- mValues.insert(make_pair(TW_TIME_ZONE_GUIOFFSET, make_pair("0", 1)));
- mValues.insert(make_pair(TW_TIME_ZONE_GUIDST, make_pair("1", 1)));
- mValues.insert(make_pair(TW_ACTION_BUSY, make_pair("0", 0)));
- mValues.insert(make_pair("tw_wipe_cache", make_pair("0", 0)));
- mValues.insert(make_pair("tw_wipe_dalvik", make_pair("0", 0)));
- mValues.insert(make_pair(TW_ZIP_INDEX, make_pair("0", 0)));
- mValues.insert(make_pair(TW_ZIP_QUEUE_COUNT, make_pair("0", 0)));
- mValues.insert(make_pair(TW_FILENAME, make_pair("/sdcard", 0)));
- mValues.insert(make_pair(TW_SIMULATE_ACTIONS, make_pair("0", 1)));
- mValues.insert(make_pair(TW_SIMULATE_FAIL, make_pair("0", 1)));
- mValues.insert(make_pair(TW_IS_ENCRYPTED, make_pair("0", 0)));
- mValues.insert(make_pair(TW_IS_DECRYPTED, make_pair("0", 0)));
- mValues.insert(make_pair(TW_CRYPTO_PASSWORD, make_pair("0", 0)));
- mValues.insert(make_pair(TW_DATA_BLK_DEVICE, make_pair("0", 0)));
- mValues.insert(make_pair("tw_terminal_state", make_pair("0", 0)));
- mValues.insert(make_pair("tw_background_thread_running", make_pair("0", 0)));
- mValues.insert(make_pair(TW_RESTORE_FILE_DATE, make_pair("0", 0)));
- mValues.insert(make_pair("tw_military_time", make_pair("0", 1)));
+ mConst.SetValue(TW_MIN_SYSTEM_VAR, TW_MIN_SYSTEM_SIZE);
+ mData.SetValue(TW_BACKUP_NAME, "(Auto Generate)");
+
+ mPersist.SetValue(TW_REBOOT_AFTER_FLASH_VAR, "0");
+ mPersist.SetValue(TW_SIGNED_ZIP_VERIFY_VAR, "0");
+ mPersist.SetValue(TW_FORCE_MD5_CHECK_VAR, "0");
+ mPersist.SetValue(TW_USE_COMPRESSION_VAR, "0");
+ mPersist.SetValue(TW_TIME_ZONE_VAR, "CST6CDT,M3.2.0,M11.1.0");
+ mPersist.SetValue(TW_GUI_SORT_ORDER, "1");
+ mPersist.SetValue(TW_RM_RF_VAR, "0");
+ mPersist.SetValue(TW_SKIP_MD5_CHECK_VAR, "0");
+ mPersist.SetValue(TW_SKIP_MD5_GENERATE_VAR, "0");
+ mPersist.SetValue(TW_SDEXT_SIZE, "0");
+ mPersist.SetValue(TW_SWAP_SIZE, "0");
+ mPersist.SetValue(TW_SDPART_FILE_SYSTEM, "ext3");
+ mPersist.SetValue(TW_TIME_ZONE_GUISEL, "CST6;CDT,M3.2.0,M11.1.0");
+ mPersist.SetValue(TW_TIME_ZONE_GUIOFFSET, "0");
+ mPersist.SetValue(TW_TIME_ZONE_GUIDST, "1");
+ mData.SetValue(TW_ACTION_BUSY, "0");
+ mData.SetValue("tw_wipe_cache", "0");
+ mData.SetValue("tw_wipe_dalvik", "0");
+ mData.SetValue(TW_ZIP_INDEX, "0");
+ mData.SetValue(TW_ZIP_QUEUE_COUNT, "0");
+ mData.SetValue(TW_FILENAME, "/sdcard");
+ mData.SetValue(TW_SIMULATE_ACTIONS, "0");
+ mData.SetValue(TW_SIMULATE_FAIL, "0");
+ mData.SetValue(TW_IS_ENCRYPTED, "0");
+ mData.SetValue(TW_IS_DECRYPTED, "0");
+ mData.SetValue(TW_CRYPTO_PASSWORD, "0");
+ mData.SetValue("tw_terminal_state", "0");
+ mData.SetValue("tw_background_thread_running", "0");
+ mData.SetValue(TW_RESTORE_FILE_DATE, "0");
+ mPersist.SetValue("tw_military_time", "0");
#ifdef TW_NO_SCREEN_TIMEOUT
- mValues.insert(make_pair("tw_screen_timeout_secs", make_pair("0", 1)));
- mValues.insert(make_pair("tw_no_screen_timeout", make_pair("1", 1)));
+ mConst.SetValue("tw_screen_timeout_secs", "0");
+ mConst.SetValue("tw_no_screen_timeout", "1");
#else
- mValues.insert(make_pair("tw_screen_timeout_secs", make_pair("60", 1)));
- mValues.insert(make_pair("tw_no_screen_timeout", make_pair("0", 1)));
+ mPersist.SetValue("tw_screen_timeout_secs", "60");
+ mPersist.SetValue("tw_no_screen_timeout", "0");
#endif
- mValues.insert(make_pair("tw_gui_done", make_pair("0", 0)));
- mValues.insert(make_pair("tw_encrypt_backup", make_pair("0", 0)));
+ mData.SetValue("tw_gui_done", "0");
+ mData.SetValue("tw_encrypt_backup", "0");
+
+ // Brightness handling
string findbright;
#ifdef TW_BRIGHTNESS_PATH
findbright = EXPAND(TW_BRIGHTNESS_PATH);
@@ -837,11 +733,11 @@ void DataManager::SetDefaultValues()
}
if (findbright.empty()) {
LOGINFO("Unable to locate brightness file\n");
- mConstValues.insert(make_pair("tw_has_brightnesss_file", "0"));
+ mConst.SetValue("tw_has_brightnesss_file", "0");
} else {
LOGINFO("Found brightness file at '%s'\n", findbright.c_str());
- mConstValues.insert(make_pair("tw_has_brightnesss_file", "1"));
- mConstValues.insert(make_pair("tw_brightness_file", findbright));
+ mConst.SetValue("tw_has_brightnesss_file", "1");
+ mConst.SetValue("tw_brightness_file", findbright);
string maxBrightness;
#ifdef TW_MAX_BRIGHTNESS
ostringstream maxVal;
@@ -867,14 +763,14 @@ void DataManager::SetDefaultValues()
maxBrightness = maxVal.str();
}
#endif
- mConstValues.insert(make_pair("tw_brightness_max", maxBrightness));
- mValues.insert(make_pair("tw_brightness", make_pair(maxBrightness, 1)));
- mValues.insert(make_pair("tw_brightness_pct", make_pair("100", 1)));
+ mConst.SetValue("tw_brightness_max", maxBrightness);
+ mPersist.SetValue("tw_brightness", maxBrightness);
+ mPersist.SetValue("tw_brightness_pct", "100");
#ifdef TW_SECONDARY_BRIGHTNESS_PATH
string secondfindbright = EXPAND(TW_SECONDARY_BRIGHTNESS_PATH);
if (secondfindbright != "" && TWFunc::Path_Exists(secondfindbright)) {
LOGINFO("Will use a second brightness file at '%s'\n", secondfindbright.c_str());
- mConstValues.insert(make_pair("tw_secondary_brightness_file", secondfindbright));
+ mConst.SetValue("tw_secondary_brightness_file", secondfindbright);
} else {
LOGINFO("Specified secondary brightness file '%s' not found.\n", secondfindbright.c_str());
}
@@ -886,46 +782,44 @@ void DataManager::SetDefaultValues()
int defPctInt = ( ( (double)defValInt / maxValInt ) * 100 );
ostringstream defPct;
defPct << defPctInt;
- mValues.erase("tw_brightness_pct");
- mValues.insert(make_pair("tw_brightness_pct", make_pair(defPct.str(), 1)));
+ mPersist.SetValue("tw_brightness_pct", defPct.str());
ostringstream defVal;
defVal << TW_DEFAULT_BRIGHTNESS;
- mValues.erase("tw_brightness");
- mValues.insert(make_pair("tw_brightness", make_pair(defVal.str(), 1)));
+ mPersist.SetValue("tw_brightness", defVal.str());
TWFunc::Set_Brightness(defVal.str());
#else
TWFunc::Set_Brightness(maxBrightness);
#endif
}
- mValues.insert(make_pair(TW_MILITARY_TIME, make_pair("0", 1)));
+
#ifndef TW_EXCLUDE_ENCRYPTED_BACKUPS
- mValues.insert(make_pair("tw_include_encrypted_backup", make_pair("1", 0)));
+ mConst.SetValue("tw_include_encrypted_backup", "1");
#else
LOGINFO("TW_EXCLUDE_ENCRYPTED_BACKUPS := true\n");
- mValues.insert(make_pair("tw_include_encrypted_backup", make_pair("0", 0)));
+ mConst.SetValue("tw_include_encrypted_backup", "0");
#endif
#ifdef TW_HAS_MTP
- mConstValues.insert(make_pair("tw_has_mtp", "1"));
- mValues.insert(make_pair("tw_mtp_enabled", make_pair("1", 1)));
- mValues.insert(make_pair("tw_mtp_debug", make_pair("0", 1)));
+ mConst.SetValue("tw_has_mtp", "1");
+ mPersist.SetValue("tw_mtp_enabled", "1");
+ mPersist.SetValue("tw_mtp_debug", "0");
#else
LOGINFO("TW_EXCLUDE_MTP := true\n");
- mConstValues.insert(make_pair("tw_has_mtp", "0"));
- mConstValues.insert(make_pair("tw_mtp_enabled", "0"));
+ mConst.SetValue("tw_has_mtp", "0");
+ mConst.SetValue("tw_mtp_enabled", "0");
#endif
- 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)));
- mValues.insert(make_pair("tw_language", make_pair(EXPAND(TW_DEFAULT_LANGUAGE), 1)));
+ mPersist.SetValue("tw_mount_system_ro", "2");
+ mPersist.SetValue("tw_never_show_system_ro_page", "0");
+ mPersist.SetValue("tw_language", EXPAND(TW_DEFAULT_LANGUAGE));
LOGINFO("LANG: %s\n", EXPAND(TW_DEFAULT_LANGUAGE));
- mValues.insert(make_pair("tw_has_adopted_storage", make_pair("0", 0)));
+ mData.SetValue("tw_has_adopted_storage", "0");
pthread_mutex_unlock(&m_valuesLock);
}
// Magic Values
-int DataManager::GetMagicValue(const string varName, string& value)
+int DataManager::GetMagicValue(const string& varName, string& value)
{
// Handle special dynamic cases
if (varName == "tw_time")
@@ -1123,7 +1017,7 @@ string DataManager::GetSettingsStoragePath(void)
return GetStrValue("tw_settings_path");
}
-void DataManager::Vibrate(const string varName)
+void DataManager::Vibrate(const string& varName)
{
int vib_value = 0;
GetValue(varName, vib_value);