diff options
Diffstat (limited to '')
-rw-r--r-- | data.cpp | 2 | ||||
-rw-r--r-- | gui/action.cpp | 25 | ||||
-rw-r--r-- | gui/button.cpp | 23 | ||||
-rwxr-xr-x | gui/devices/1024x600/res/ui.xml | 21 | ||||
-rw-r--r-- | gui/devices/1024x768/res/ui.xml | 21 | ||||
-rw-r--r-- | gui/devices/1080x1920/res/ui.xml | 23 | ||||
-rw-r--r-- | gui/devices/1280x800/res/ui.xml | 21 | ||||
-rw-r--r-- | gui/devices/1920x1200/res/ui.xml | 21 | ||||
-rw-r--r-- | gui/devices/2560x1600/res/ui.xml | 23 | ||||
-rw-r--r-- | gui/devices/320x480/res/ui.xml | 23 | ||||
-rw-r--r-- | gui/devices/480x800/res/ui.xml | 23 | ||||
-rw-r--r-- | gui/devices/480x854/res/ui.xml | 23 | ||||
-rw-r--r-- | gui/devices/540x960/res/ui.xml | 23 | ||||
-rw-r--r-- | gui/devices/720x1280/res/ui.xml | 23 | ||||
-rwxr-xr-x | gui/devices/800x1280/res/ui.xml | 23 | ||||
-rwxr-xr-x | gui/devices/800x480/res/ui.xml | 21 | ||||
-rw-r--r-- | gui/objects.hpp | 1 | ||||
-rw-r--r-- | partitionmanager.cpp | 9 | ||||
-rw-r--r-- | twrp-functions.cpp | 48 | ||||
-rw-r--r-- | twrp-functions.hpp | 2 | ||||
-rw-r--r-- | twrp.cpp | 2 |
21 files changed, 294 insertions, 107 deletions
@@ -853,7 +853,7 @@ void DataManager::SetDefaultValues() mValues.insert(make_pair("tw_backup_list", make_pair("/system;/data;/boot;", 1))); #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_NAME, make_pair("(Auto Generate)", 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))); mValues.insert(make_pair(TW_BACKUP_BOOT_VAR, make_pair("1", 1))); diff --git a/gui/action.cpp b/gui/action.cpp index d67e697b0..78e862526 100644 --- a/gui/action.cpp +++ b/gui/action.cpp @@ -701,6 +701,27 @@ int GUIAction::doAction(Action action, int isThreaded /* = 0 */) return 0; } + if (function == "appenddatetobackupname") + { + operation_start("AppendDateToBackupName"); + string Backup_Name; + DataManager::GetValue(TW_BACKUP_NAME, Backup_Name); + Backup_Name += TWFunc::Get_Current_Date(); + if (Backup_Name.size() > MAX_BACKUP_NAME_LEN) + Backup_Name.resize(MAX_BACKUP_NAME_LEN); + DataManager::SetValue(TW_BACKUP_NAME, Backup_Name); + operation_end(0, simulate); + return 0; + } + + if (function == "generatebackupname") + { + operation_start("GenerateBackupName"); + TWFunc::Auto_Generate_Backup_Name(); + operation_end(0, simulate); + return 0; + } + if (isThreaded) { if (function == "fileexists") @@ -893,14 +914,14 @@ int GUIAction::doAction(Action action, int isThreaded /* = 0 */) if (arg == "backup") { string Backup_Name; DataManager::GetValue(TW_BACKUP_NAME, Backup_Name); - if (Backup_Name == "(Current Date)" || Backup_Name == "0" || Backup_Name == "(" || PartitionManager.Check_Backup_Name(true) == 0) { + if (Backup_Name == "(Auto Generate)" || Backup_Name == "(Current Date)" || Backup_Name == "0" || Backup_Name == "(" || PartitionManager.Check_Backup_Name(true) == 0) { ret = PartitionManager.Run_Backup(); } else { operation_end(1, simulate); return -1; } - DataManager::SetValue(TW_BACKUP_NAME, "(Current Date)"); + DataManager::SetValue(TW_BACKUP_NAME, "(Auto Generate)"); } else if (arg == "restore") { string Restore_Name; DataManager::GetValue("tw_restore", Restore_Name); diff --git a/gui/button.cpp b/gui/button.cpp index 9fc85a052..3f9c2df1f 100644 --- a/gui/button.cpp +++ b/gui/button.cpp @@ -110,10 +110,11 @@ GUIButton::GUIButton(xml_node<>* node) } int x, y, w, h; + TextPlacement = TOP_LEFT; if (mButtonImg) { mButtonImg->GetRenderPos(x, y, w, h); } else if (hasFill) { - LoadPlacement(node->first_node("placement"), &x, &y, &w, &h); + LoadPlacement(node->first_node("placement"), &x, &y, &w, &h, &TextPlacement); } SetRenderPos(x, y, w, h); return; @@ -150,14 +151,12 @@ int GUIButton::Render(void) mButtonLabel->GetCurrentBounds(w, h); if (w != mTextW) { mTextW = w; - // As a special case, we'll allow large text which automatically moves it to the right. - if (mTextW > mRenderW) - { + if (TextPlacement == CENTER_X_ONLY) { + mTextX = ((mRenderW - mRenderX) / 2); + } else if (mTextW > mRenderW) { // As a special case, we'll allow large text which automatically moves it to the right. mTextX = mRenderW + mRenderX + 5; mRenderW += mTextW + 5; - } - else - { + } else { mTextX = mRenderX + ((mRenderW - mTextW) / 2); } mButtonLabel->SetRenderPos(mTextX, mTextY); @@ -231,14 +230,12 @@ int GUIButton::SetRenderPos(int x, int y, int w, int h) if (mButtonLabel) mButtonLabel->GetCurrentBounds(mTextW, mTextH); if (mTextW) { - // As a special case, we'll allow large text which automatically moves it to the right. - if (mTextW > mRenderW) - { + if (TextPlacement == CENTER_X_ONLY) { + mTextX = ((mRenderW - mRenderX) / 2); + } else if (mTextW > mRenderW) { // As a special case, we'll allow large text which automatically moves it to the right. mTextX = mRenderW + mRenderX + 5; mRenderW += mTextW + 5; - } - else - { + } else { mTextX = mRenderX + ((mRenderW - mTextW) / 2); } } diff --git a/gui/devices/1024x600/res/ui.xml b/gui/devices/1024x600/res/ui.xml index 2b7d20e2e..bbcaae1f5 100755 --- a/gui/devices/1024x600/res/ui.xml +++ b/gui/devices/1024x600/res/ui.xml @@ -1733,8 +1733,8 @@ <page name="backupname1"> <object type="action"> - <condition var1="tw_backup_name" op="=" var2="(Current Date)" /> - <action function="set">tw_backup_name=</function> + <condition var1="tw_backup_name" op="=" var2="(Auto Generate)" /> + <action function="generatebackupname"></function> </object> <object type="action"> @@ -1776,12 +1776,21 @@ <object type="button"> <highlight color="%highlight_color%" /> - <placement x="%col_center_x%" y="%cancel_button_y%" /> + <placement x="%col2_x%" y="%cancel_button_y%" /> + <font resource="font" color="%button_text_color%" /> + <text>Append Date</text> + <image resource="main_button" /> + <action function="appenddatetobackupname"></action> + </object> + + <object type="button"> + <highlight color="%highlight_color%" /> + <placement x="%col3_x%" y="%cancel_button_y%" /> <font resource="font" color="%button_text_color%" /> <text>Cancel / Clear</text> <image resource="main_button" /> <actions> - <action function="set">tw_backup_name=(Current Date)</action> + <action function="set">tw_backup_name=(Auto Generate)</action> <action function="page">backup</action> </actions> </object> @@ -1791,7 +1800,7 @@ <object type="action"> <touch key="home" /> <actions> - <action function="set">tw_backup_name=(Current Date)</action> + <action function="set">tw_backup_name=(Auto Generate)</action> <action function="page">main</action> </actions> </object> @@ -1799,7 +1808,7 @@ <object type="action"> <touch key="back" /> <actions> - <action function="set">tw_backup_name=(Current Date)</action> + <action function="set">tw_backup_name=(Auto Generate)</action> <action function="page">backup</action> </actions> </object> diff --git a/gui/devices/1024x768/res/ui.xml b/gui/devices/1024x768/res/ui.xml index b625174a4..97b98c049 100644 --- a/gui/devices/1024x768/res/ui.xml +++ b/gui/devices/1024x768/res/ui.xml @@ -1733,8 +1733,8 @@ <page name="backupname1"> <object type="action"> - <condition var1="tw_backup_name" op="=" var2="(Current Date)" /> - <action function="set">tw_backup_name=</function> + <condition var1="tw_backup_name" op="=" var2="(Auto Generate)" /> + <action function="generatebackupname"></function> </object> <object type="action"> @@ -1776,12 +1776,21 @@ <object type="button"> <highlight color="%highlight_color%" /> - <placement x="%col_center_x%" y="%cancel_button_y%" /> + <placement x="%col2_x%" y="%cancel_button_y%" /> + <font resource="font" color="%button_text_color%" /> + <text>Append Date</text> + <image resource="main_button" /> + <action function="appenddatetobackupname"></action> + </object> + + <object type="button"> + <highlight color="%highlight_color%" /> + <placement x="%col3_x%" y="%cancel_button_y%" /> <font resource="font" color="%button_text_color%" /> <text>Cancel / Clear</text> <image resource="main_button" /> <actions> - <action function="set">tw_backup_name=(Current Date)</action> + <action function="set">tw_backup_name=(Auto Generate)</action> <action function="page">backup</action> </actions> </object> @@ -1791,7 +1800,7 @@ <object type="action"> <touch key="home" /> <actions> - <action function="set">tw_backup_name=(Current Date)</action> + <action function="set">tw_backup_name=(Auto Generate)</action> <action function="page">main</action> </actions> </object> @@ -1799,7 +1808,7 @@ <object type="action"> <touch key="back" /> <actions> - <action function="set">tw_backup_name=(Current Date)</action> + <action function="set">tw_backup_name=(Auto Generate)</action> <action function="page">backup</action> </actions> </object> diff --git a/gui/devices/1080x1920/res/ui.xml b/gui/devices/1080x1920/res/ui.xml index 25d3ed8ef..5ba884b13 100644 --- a/gui/devices/1080x1920/res/ui.xml +++ b/gui/devices/1080x1920/res/ui.xml @@ -1341,7 +1341,7 @@ <object type="button"> <highlight color="%highlight_color%" /> <fill color="%button_fill_color%" /> - <placement x="%col1_x%" y="%row1_header_y%" w="%button_fill_full_width%" h="%button_fill_quarter_height%" /> + <placement x="%col1_x%" y="%row1_header_y%" w="%button_fill_full_width%" h="%button_fill_quarter_height%" placement="5" /> <font resource="font" color="%button_text_color%" /> <text>Backup Name: %tw_backup_name%</text> <actions> @@ -1459,8 +1459,8 @@ <page name="backupname1"> <object type="action"> - <condition var1="tw_backup_name" op="=" var2="(Current Date)" /> - <action function="set">tw_backup_name=</function> + <condition var1="tw_backup_name" op="=" var2="(Auto Generate)" /> + <action function="generatebackupname"></function> </object> <object type="action"> @@ -1502,12 +1502,21 @@ <object type="button"> <highlight color="%highlight_color%" /> - <placement x="%col_center_x%" y="%row2_y%" /> + <placement x="%col1_x%" y="%row2_y%" /> + <font resource="font" color="%button_text_color%" /> + <text>Append Date</text> + <image resource="main_button" /> + <action function="appenddatetobackupname"></action> + </object> + + <object type="button"> + <highlight color="%highlight_color%" /> + <placement x="%col2_x%" y="%row2_y%" /> <font resource="font" color="%button_text_color%" /> <text>Cancel</text> <image resource="main_button" /> <actions> - <action function="set">tw_backup_name=(Current Date)</action> + <action function="set">tw_backup_name=(Auto Generate)</action> <action function="page">backup</action> </actions> </object> @@ -1517,7 +1526,7 @@ <object type="action"> <touch key="home" /> <actions> - <action function="set">tw_backup_name=(Current Date)</action> + <action function="set">tw_backup_name=(Auto Generate)</action> <action function="page">main</action> </actions> </object> @@ -1525,7 +1534,7 @@ <object type="action"> <touch key="back" /> <actions> - <action function="set">tw_backup_name=(Current Date)</action> + <action function="set">tw_backup_name=(Auto Generate)</action> <action function="page">backup</action> </actions> </object> diff --git a/gui/devices/1280x800/res/ui.xml b/gui/devices/1280x800/res/ui.xml index b86f99171..66861f2cb 100644 --- a/gui/devices/1280x800/res/ui.xml +++ b/gui/devices/1280x800/res/ui.xml @@ -1733,8 +1733,8 @@ <page name="backupname1"> <object type="action"> - <condition var1="tw_backup_name" op="=" var2="(Current Date)" /> - <action function="set">tw_backup_name=</function> + <condition var1="tw_backup_name" op="=" var2="(Auto Generate)" /> + <action function="generatebackupname"></function> </object> <object type="action"> @@ -1776,12 +1776,21 @@ <object type="button"> <highlight color="%highlight_color%" /> - <placement x="%col_center_x%" y="%cancel_button_y%" /> + <placement x="%col2_x%" y="%cancel_button_y%" /> + <font resource="font" color="%button_text_color%" /> + <text>Append Date</text> + <image resource="main_button" /> + <action function="appenddatetobackupname"></action> + </object> + + <object type="button"> + <highlight color="%highlight_color%" /> + <placement x="%col3_x%" y="%cancel_button_y%" /> <font resource="font" color="%button_text_color%" /> <text>Cancel / Clear</text> <image resource="main_button" /> <actions> - <action function="set">tw_backup_name=(Current Date)</action> + <action function="set">tw_backup_name=(Auto Generate)</action> <action function="page">backup</action> </actions> </object> @@ -1791,7 +1800,7 @@ <object type="action"> <touch key="home" /> <actions> - <action function="set">tw_backup_name=(Current Date)</action> + <action function="set">tw_backup_name=(Auto Generate)</action> <action function="page">main</action> </actions> </object> @@ -1799,7 +1808,7 @@ <object type="action"> <touch key="back" /> <actions> - <action function="set">tw_backup_name=(Current Date)</action> + <action function="set">tw_backup_name=(Auto Generate)</action> <action function="page">backup</action> </actions> </object> diff --git a/gui/devices/1920x1200/res/ui.xml b/gui/devices/1920x1200/res/ui.xml index 157005f1a..d1a7829ac 100644 --- a/gui/devices/1920x1200/res/ui.xml +++ b/gui/devices/1920x1200/res/ui.xml @@ -1733,8 +1733,8 @@ <page name="backupname1"> <object type="action"> - <condition var1="tw_backup_name" op="=" var2="(Current Date)" /> - <action function="set">tw_backup_name=</function> + <condition var1="tw_backup_name" op="=" var2="(Auto Generate)" /> + <action function="generatebackupname"></function> </object> <object type="action"> @@ -1776,12 +1776,21 @@ <object type="button"> <highlight color="%highlight_color%" /> - <placement x="%col_center_x%" y="%cancel_button_y%" /> + <placement x="%col2_x%" y="%cancel_button_y%" /> + <font resource="font" color="%button_text_color%" /> + <text>Append Date</text> + <image resource="main_button" /> + <action function="appenddatetobackupname"></action> + </object> + + <object type="button"> + <highlight color="%highlight_color%" /> + <placement x="%col3_x%" y="%cancel_button_y%" /> <font resource="font" color="%button_text_color%" /> <text>Cancel / Clear</text> <image resource="main_button" /> <actions> - <action function="set">tw_backup_name=(Current Date)</action> + <action function="set">tw_backup_name=(Auto Generate)</action> <action function="page">backup</action> </actions> </object> @@ -1791,7 +1800,7 @@ <object type="action"> <touch key="home" /> <actions> - <action function="set">tw_backup_name=(Current Date)</action> + <action function="set">tw_backup_name=(Auto Generate)</action> <action function="page">main</action> </actions> </object> @@ -1799,7 +1808,7 @@ <object type="action"> <touch key="back" /> <actions> - <action function="set">tw_backup_name=(Current Date)</action> + <action function="set">tw_backup_name=(Auto Generate)</action> <action function="page">backup</action> </actions> </object> diff --git a/gui/devices/2560x1600/res/ui.xml b/gui/devices/2560x1600/res/ui.xml index 3d6b65f5c..23b7c3e02 100644 --- a/gui/devices/2560x1600/res/ui.xml +++ b/gui/devices/2560x1600/res/ui.xml @@ -169,7 +169,7 @@ <variable name="filemanager_select_y" value="1360" /> <variable name="backup_name_text_y" value="440" /> <variable name="backup_name_button_y" value="950" /> - <variable name="col_right_x" value="1870" /> + <variable name="col_right_x" value="2510" /> <variable name="cancel_button_y" value="430" /> <variable name="terminal_console_y" value="0" /> <variable name="terminal_console_height" value="810" /> @@ -1733,8 +1733,8 @@ <page name="backupname1"> <object type="action"> - <condition var1="tw_backup_name" op="=" var2="(Current Date)" /> - <action function="set">tw_backup_name=</function> + <condition var1="tw_backup_name" op="=" var2="(Auto Generate)" /> + <action function="generatebackupname"></function> </object> <object type="action"> @@ -1776,12 +1776,21 @@ <object type="button"> <highlight color="%highlight_color%" /> - <placement x="%col_center_x%" y="%cancel_button_y%" /> + <placement x="%col2_x%" y="%cancel_button_y%" /> + <font resource="font" color="%button_text_color%" /> + <text>Append Date</text> + <image resource="main_button" /> + <action function="appenddatetobackupname"></action> + </object> + + <object type="button"> + <highlight color="%highlight_color%" /> + <placement x="%col3_x%" y="%cancel_button_y%" /> <font resource="font" color="%button_text_color%" /> <text>Cancel / Clear</text> <image resource="main_button" /> <actions> - <action function="set">tw_backup_name=(Current Date)</action> + <action function="set">tw_backup_name=(Auto Generate)</action> <action function="page">backup</action> </actions> </object> @@ -1791,7 +1800,7 @@ <object type="action"> <touch key="home" /> <actions> - <action function="set">tw_backup_name=(Current Date)</action> + <action function="set">tw_backup_name=(Auto Generate)</action> <action function="page">main</action> </actions> </object> @@ -1799,7 +1808,7 @@ <object type="action"> <touch key="back" /> <actions> - <action function="set">tw_backup_name=(Current Date)</action> + <action function="set">tw_backup_name=(Auto Generate)</action> <action function="page">backup</action> </actions> </object> diff --git a/gui/devices/320x480/res/ui.xml b/gui/devices/320x480/res/ui.xml index 0719a942c..893c90cfd 100644 --- a/gui/devices/320x480/res/ui.xml +++ b/gui/devices/320x480/res/ui.xml @@ -1328,7 +1328,7 @@ <object type="button"> <highlight color="%highlight_color%" /> <fill color="%button_fill_color%" /> - <placement x="%col1_x%" y="%row1_header_y%" w="%button_fill_full_width%" h="%button_fill_quarter_height%" /> + <placement x="%col1_x%" y="%row1_header_y%" w="%button_fill_full_width%" h="%button_fill_quarter_height%" placement="5" /> <font resource="font" color="%button_text_color%" /> <text>Backup Name: %tw_backup_name%</text> <actions> @@ -1446,8 +1446,8 @@ <page name="backupname1"> <object type="action"> - <condition var1="tw_backup_name" op="=" var2="(Current Date)" /> - <action function="set">tw_backup_name=</function> + <condition var1="tw_backup_name" op="=" var2="(Auto Generate)" /> + <action function="generatebackupname"></function> </object> <object type="action"> @@ -1489,12 +1489,21 @@ <object type="button"> <highlight color="%highlight_color%" /> - <placement x="%col_center_x%" y="%row2_y%" /> + <placement x="%col1_x%" y="%row2_y%" /> + <font resource="font" color="%button_text_color%" /> + <text>Append Date</text> + <image resource="main_button" /> + <action function="appenddatetobackupname"></action> + </object> + + <object type="button"> + <highlight color="%highlight_color%" /> + <placement x="%col2_x%" y="%row2_y%" /> <font resource="font" color="%button_text_color%" /> <text>Cancel</text> <image resource="main_button" /> <actions> - <action function="set">tw_backup_name=(Current Date)</action> + <action function="set">tw_backup_name=(Auto Generate)</action> <action function="page">backup</action> </actions> </object> @@ -1504,7 +1513,7 @@ <object type="action"> <touch key="home" /> <actions> - <action function="set">tw_backup_name=(Current Date)</action> + <action function="set">tw_backup_name=(Auto Generate)</action> <action function="page">main</action> </actions> </object> @@ -1512,7 +1521,7 @@ <object type="action"> <touch key="back" /> <actions> - <action function="set">tw_backup_name=(Current Date)</action> + <action function="set">tw_backup_name=(Auto Generate)</action> <action function="page">backup</action> </actions> </object> diff --git a/gui/devices/480x800/res/ui.xml b/gui/devices/480x800/res/ui.xml index b7b527bb9..690028106 100644 --- a/gui/devices/480x800/res/ui.xml +++ b/gui/devices/480x800/res/ui.xml @@ -1328,7 +1328,7 @@ <object type="button"> <highlight color="%highlight_color%" /> <fill color="%button_fill_color%" /> - <placement x="%col1_x%" y="%row1_header_y%" w="%button_fill_full_width%" h="%button_fill_quarter_height%" /> + <placement x="%col1_x%" y="%row1_header_y%" w="%button_fill_full_width%" h="%button_fill_quarter_height%" placement="5" /> <font resource="font" color="%button_text_color%" /> <text>Backup Name: %tw_backup_name%</text> <actions> @@ -1446,8 +1446,8 @@ <page name="backupname1"> <object type="action"> - <condition var1="tw_backup_name" op="=" var2="(Current Date)" /> - <action function="set">tw_backup_name=</function> + <condition var1="tw_backup_name" op="=" var2="(Auto Generate)" /> + <action function="generatebackupname"></function> </object> <object type="action"> @@ -1489,12 +1489,21 @@ <object type="button"> <highlight color="%highlight_color%" /> - <placement x="%col_center_x%" y="%row2_y%" /> + <placement x="%col1_x%" y="%row2_y%" /> + <font resource="font" color="%button_text_color%" /> + <text>Append Date</text> + <image resource="main_button" /> + <action function="appenddatetobackupname"></action> + </object> + + <object type="button"> + <highlight color="%highlight_color%" /> + <placement x="%col2_x%" y="%row2_y%" /> <font resource="font" color="%button_text_color%" /> <text>Cancel</text> <image resource="main_button" /> <actions> - <action function="set">tw_backup_name=(Current Date)</action> + <action function="set">tw_backup_name=(Auto Generate)</action> <action function="page">backup</action> </actions> </object> @@ -1504,7 +1513,7 @@ <object type="action"> <touch key="home" /> <actions> - <action function="set">tw_backup_name=(Current Date)</action> + <action function="set">tw_backup_name=(Auto Generate)</action> <action function="page">main</action> </actions> </object> @@ -1512,7 +1521,7 @@ <object type="action"> <touch key="back" /> <actions> - <action function="set">tw_backup_name=(Current Date)</action> + <action function="set">tw_backup_name=(Auto Generate)</action> <action function="page">backup</action> </actions> </object> diff --git a/gui/devices/480x854/res/ui.xml b/gui/devices/480x854/res/ui.xml index cb6577f20..09c507767 100644 --- a/gui/devices/480x854/res/ui.xml +++ b/gui/devices/480x854/res/ui.xml @@ -1327,7 +1327,7 @@ <object type="button"> <highlight color="%highlight_color%" /> <fill color="%button_fill_color%" /> - <placement x="%col1_x%" y="%row1_header_y%" w="%button_fill_full_width%" h="%button_fill_quarter_height%" /> + <placement x="%col1_x%" y="%row1_header_y%" w="%button_fill_full_width%" h="%button_fill_quarter_height%" placement="5" /> <font resource="font" color="%button_text_color%" /> <text>Backup Name: %tw_backup_name%</text> <actions> @@ -1445,8 +1445,8 @@ <page name="backupname1"> <object type="action"> - <condition var1="tw_backup_name" op="=" var2="(Current Date)" /> - <action function="set">tw_backup_name=</function> + <condition var1="tw_backup_name" op="=" var2="(Auto Generate)" /> + <action function="generatebackupname"></function> </object> <object type="action"> @@ -1488,12 +1488,21 @@ <object type="button"> <highlight color="%highlight_color%" /> - <placement x="%col_center_x%" y="%row2_y%" /> + <placement x="%col1_x%" y="%row2_y%" /> + <font resource="font" color="%button_text_color%" /> + <text>Append Date</text> + <image resource="main_button" /> + <action function="appenddatetobackupname"></action> + </object> + + <object type="button"> + <highlight color="%highlight_color%" /> + <placement x="%col2_x%" y="%row2_y%" /> <font resource="font" color="%button_text_color%" /> <text>Cancel</text> <image resource="main_button" /> <actions> - <action function="set">tw_backup_name=(Current Date)</action> + <action function="set">tw_backup_name=(Auto Generate)</action> <action function="page">backup</action> </actions> </object> @@ -1503,7 +1512,7 @@ <object type="action"> <touch key="home" /> <actions> - <action function="set">tw_backup_name=(Current Date)</action> + <action function="set">tw_backup_name=(Auto Generate)</action> <action function="page">main</action> </actions> </object> @@ -1511,7 +1520,7 @@ <object type="action"> <touch key="back" /> <actions> - <action function="set">tw_backup_name=(Current Date)</action> + <action function="set">tw_backup_name=(Auto Generate)</action> <action function="page">backup</action> </actions> </object> diff --git a/gui/devices/540x960/res/ui.xml b/gui/devices/540x960/res/ui.xml index 078f1ae51..f636e2e0e 100644 --- a/gui/devices/540x960/res/ui.xml +++ b/gui/devices/540x960/res/ui.xml @@ -1328,7 +1328,7 @@ <object type="button"> <highlight color="%highlight_color%" /> <fill color="%button_fill_color%" /> - <placement x="%col1_x%" y="%row1_header_y%" w="%button_fill_full_width%" h="%button_fill_quarter_height%" /> + <placement x="%col1_x%" y="%row1_header_y%" w="%button_fill_full_width%" h="%button_fill_quarter_height%" placement="5" /> <font resource="font" color="%button_text_color%" /> <text>Backup Name: %tw_backup_name%</text> <actions> @@ -1446,8 +1446,8 @@ <page name="backupname1"> <object type="action"> - <condition var1="tw_backup_name" op="=" var2="(Current Date)" /> - <action function="set">tw_backup_name=</function> + <condition var1="tw_backup_name" op="=" var2="(Auto Generate)" /> + <action function="generatebackupname"></function> </object> <object type="action"> @@ -1489,12 +1489,21 @@ <object type="button"> <highlight color="%highlight_color%" /> - <placement x="%col_center_x%" y="%row2_y%" /> + <placement x="%col1_x%" y="%row2_y%" /> + <font resource="font" color="%button_text_color%" /> + <text>Append Date</text> + <image resource="main_button" /> + <action function="appenddatetobackupname"></action> + </object> + + <object type="button"> + <highlight color="%highlight_color%" /> + <placement x="%col2_x%" y="%row2_y%" /> <font resource="font" color="%button_text_color%" /> <text>Cancel</text> <image resource="main_button" /> <actions> - <action function="set">tw_backup_name=(Current Date)</action> + <action function="set">tw_backup_name=(Auto Generate)</action> <action function="page">backup</action> </actions> </object> @@ -1504,7 +1513,7 @@ <object type="action"> <touch key="home" /> <actions> - <action function="set">tw_backup_name=(Current Date)</action> + <action function="set">tw_backup_name=(Auto Generate)</action> <action function="page">main</action> </actions> </object> @@ -1512,7 +1521,7 @@ <object type="action"> <touch key="back" /> <actions> - <action function="set">tw_backup_name=(Current Date)</action> + <action function="set">tw_backup_name=(Auto Generate)</action> <action function="page">backup</action> </actions> </object> diff --git a/gui/devices/720x1280/res/ui.xml b/gui/devices/720x1280/res/ui.xml index d2896cc94..316b20e78 100644 --- a/gui/devices/720x1280/res/ui.xml +++ b/gui/devices/720x1280/res/ui.xml @@ -1341,7 +1341,7 @@ <object type="button"> <highlight color="%highlight_color%" /> <fill color="%button_fill_color%" /> - <placement x="%col1_x%" y="%row1_header_y%" w="%button_fill_full_width%" h="%button_fill_quarter_height%" /> + <placement x="%col1_x%" y="%row1_header_y%" w="%button_fill_full_width%" h="%button_fill_quarter_height%" placement="5" /> <font resource="font" color="%button_text_color%" /> <text>Backup Name: %tw_backup_name%</text> <actions> @@ -1459,8 +1459,8 @@ <page name="backupname1"> <object type="action"> - <condition var1="tw_backup_name" op="=" var2="(Current Date)" /> - <action function="set">tw_backup_name=</function> + <condition var1="tw_backup_name" op="=" var2="(Auto Generate)" /> + <action function="generatebackupname"></function> </object> <object type="action"> @@ -1502,12 +1502,21 @@ <object type="button"> <highlight color="%highlight_color%" /> - <placement x="%col_center_x%" y="%row2_y%" /> + <placement x="%col1_x%" y="%row2_y%" /> + <font resource="font" color="%button_text_color%" /> + <text>Append Date</text> + <image resource="main_button" /> + <action function="appenddatetobackupname"></action> + </object> + + <object type="button"> + <highlight color="%highlight_color%" /> + <placement x="%col2_x%" y="%row2_y%" /> <font resource="font" color="%button_text_color%" /> <text>Cancel</text> <image resource="main_button" /> <actions> - <action function="set">tw_backup_name=(Current Date)</action> + <action function="set">tw_backup_name=(Auto Generate)</action> <action function="page">backup</action> </actions> </object> @@ -1517,7 +1526,7 @@ <object type="action"> <touch key="home" /> <actions> - <action function="set">tw_backup_name=(Current Date)</action> + <action function="set">tw_backup_name=(Auto Generate)</action> <action function="page">main</action> </actions> </object> @@ -1525,7 +1534,7 @@ <object type="action"> <touch key="back" /> <actions> - <action function="set">tw_backup_name=(Current Date)</action> + <action function="set">tw_backup_name=(Auto Generate)</action> <action function="page">backup</action> </actions> </object> diff --git a/gui/devices/800x1280/res/ui.xml b/gui/devices/800x1280/res/ui.xml index ba7dba321..b85084142 100755 --- a/gui/devices/800x1280/res/ui.xml +++ b/gui/devices/800x1280/res/ui.xml @@ -1329,7 +1329,7 @@ <object type="button"> <highlight color="%highlight_color%" /> <fill color="%button_fill_color%" /> - <placement x="%col1_x%" y="%row1_header_y%" w="%button_fill_full_width%" h="%button_fill_quarter_height%" /> + <placement x="%col1_x%" y="%row1_header_y%" w="%button_fill_full_width%" h="%button_fill_quarter_height%" placement="5" /> <font resource="font" color="%button_text_color%" /> <text>Backup Name: %tw_backup_name%</text> <actions> @@ -1447,8 +1447,8 @@ <page name="backupname1"> <object type="action"> - <condition var1="tw_backup_name" op="=" var2="(Current Date)" /> - <action function="set">tw_backup_name=</function> + <condition var1="tw_backup_name" op="=" var2="(Auto Generate)" /> + <action function="generatebackupname"></function> </object> <object type="action"> @@ -1490,12 +1490,21 @@ <object type="button"> <highlight color="%highlight_color%" /> - <placement x="%col_center_x%" y="%row2_y%" /> + <placement x="%col1_x%" y="%row2_y%" /> + <font resource="font" color="%button_text_color%" /> + <text>Append Date</text> + <image resource="main_button" /> + <action function="appenddatetobackupname"></action> + </object> + + <object type="button"> + <highlight color="%highlight_color%" /> + <placement x="%col2_x%" y="%row2_y%" /> <font resource="font" color="%button_text_color%" /> <text>Cancel</text> <image resource="main_button" /> <actions> - <action function="set">tw_backup_name=(Current Date)</action> + <action function="set">tw_backup_name=(Auto Generate)</action> <action function="page">backup</action> </actions> </object> @@ -1505,7 +1514,7 @@ <object type="action"> <touch key="home" /> <actions> - <action function="set">tw_backup_name=(Current Date)</action> + <action function="set">tw_backup_name=(Auto Generate)</action> <action function="page">main</action> </actions> </object> @@ -1513,7 +1522,7 @@ <object type="action"> <touch key="back" /> <actions> - <action function="set">tw_backup_name=(Current Date)</action> + <action function="set">tw_backup_name=(Auto Generate)</action> <action function="page">backup</action> </actions> </object> diff --git a/gui/devices/800x480/res/ui.xml b/gui/devices/800x480/res/ui.xml index ba262bcce..cbd3b7da0 100755 --- a/gui/devices/800x480/res/ui.xml +++ b/gui/devices/800x480/res/ui.xml @@ -1741,8 +1741,8 @@ <page name="backupname1"> <object type="action"> - <condition var1="tw_backup_name" op="=" var2="(Current Date)" /> - <action function="set">tw_backup_name=</function> + <condition var1="tw_backup_name" op="=" var2="(Auto Generate)" /> + <action function="generatebackupname"></function> </object> <object type="action"> @@ -1784,12 +1784,21 @@ <object type="button"> <highlight color="%highlight_color%" /> - <placement x="%col_center_x%" y="%cancel_button_y%" /> + <placement x="%col2_x%" y="%cancel_button_y%" /> + <font resource="font" color="%button_text_color%" /> + <text>Append Date</text> + <image resource="main_button" /> + <action function="appenddatetobackupname"></action> + </object> + + <object type="button"> + <highlight color="%highlight_color%" /> + <placement x="%col3_x%" y="%cancel_button_y%" /> <font resource="font" color="%button_text_color%" /> <text>Cancel / Clear</text> <image resource="main_button" /> <actions> - <action function="set">tw_backup_name=(Current Date)</action> + <action function="set">tw_backup_name=(Auto Generate)</action> <action function="page">backup</action> </actions> </object> @@ -1799,7 +1808,7 @@ <object type="action"> <touch key="home" /> <actions> - <action function="set">tw_backup_name=(Current Date)</action> + <action function="set">tw_backup_name=(Auto Generate)</action> <action function="page">main</action> </actions> </object> @@ -1807,7 +1816,7 @@ <object type="action"> <touch key="back" /> <actions> - <action function="set">tw_backup_name=(Current Date)</action> + <action function="set">tw_backup_name=(Auto Generate)</action> <action function="page">backup</action> </actions> </object> diff --git a/gui/objects.hpp b/gui/objects.hpp index d37b43e3b..1e272b276 100644 --- a/gui/objects.hpp +++ b/gui/objects.hpp @@ -380,6 +380,7 @@ protected: bool hasFill; COLOR mFillColor; COLOR mHighlightColor; + Placement TextPlacement; }; class GUICheckbox: public RenderObject, public ActionObject, public Conditional diff --git a/partitionmanager.cpp b/partitionmanager.cpp index 78fbfa489..4e72117dd 100644 --- a/partitionmanager.cpp +++ b/partitionmanager.cpp @@ -670,10 +670,11 @@ int TWPartitionManager::Run_Backup(void) { DataManager::GetValue(TW_BACKUPS_FOLDER_VAR, Backup_Folder); DataManager::GetValue(TW_BACKUP_NAME, Backup_Name); - if (Backup_Name == "(Current Date)" || Backup_Name == "0" || Backup_Name.empty()) { - char timestamp[255]; - sprintf(timestamp,"%04d-%02d-%02d--%02d-%02d-%02d",t->tm_year+1900,t->tm_mon+1,t->tm_mday,t->tm_hour,t->tm_min,t->tm_sec); - Backup_Name = timestamp; + if (Backup_Name == "(Current Date)") { + Backup_Name = TWFunc::Get_Current_Date(); + } else if (Backup_Name == "(Auto Generate)" || Backup_Name == "0" || Backup_Name.empty()) { + TWFunc::Auto_Generate_Backup_Name(); + DataManager::GetValue(TW_BACKUP_NAME, Backup_Name); } LOGINFO("Backup Name is: '%s'\n", Backup_Name.c_str()); Full_Backup_Path = Backup_Folder + "/" + Backup_Name + "/"; diff --git a/twrp-functions.cpp b/twrp-functions.cpp index 48a9552a5..23299726e 100644 --- a/twrp-functions.cpp +++ b/twrp-functions.cpp @@ -950,3 +950,51 @@ int TWFunc::Wait_For_Child(pid_t pid, int *status, string Child_Name) { } return 0; } + +string TWFunc::Get_Current_Date() { + string Current_Date; + time_t seconds = time(0); + struct tm *t = localtime(&seconds); + char timestamp[255]; + sprintf(timestamp,"%04d-%02d-%02d--%02d-%02d-%02d",t->tm_year+1900,t->tm_mon+1,t->tm_mday,t->tm_hour,t->tm_min,t->tm_sec); + Current_Date = timestamp; + return Current_Date; +} + +void TWFunc::Auto_Generate_Backup_Name() { + bool mount_state = PartitionManager.Is_Mounted_By_Path("/system"); + std::vector<string> buildprop; + if (!PartitionManager.Mount_By_Path("/system", true)) { + DataManager::SetValue(TW_BACKUP_NAME, Get_Current_Date()); + return; + } + if (TWFunc::read_file("/system/build.prop", buildprop) != 0) { + LOGINFO("Unable to open /system/build.prop for getting backup name.\n"); + DataManager::SetValue(TW_BACKUP_NAME, ""); + if (!mount_state) + PartitionManager.UnMount_By_Path("/system", false); + return; + } + int line_count = buildprop.size(); + int index; + size_t start_pos = 0, end_pos; + string propname, propvalue; + for (index = 0; index < line_count; index++) { + end_pos = buildprop.at(index).find("=", start_pos); + propname = buildprop.at(index).substr(start_pos, end_pos); + if (propname == "ro.build.display.id") { + propvalue = buildprop.at(index).substr(end_pos + 1, buildprop.at(index).size()); + string Backup_Name = Get_Current_Date(); + Backup_Name += " " + propvalue; + if (Backup_Name.size() > MAX_BACKUP_NAME_LEN) + Backup_Name.resize(MAX_BACKUP_NAME_LEN); + DataManager::SetValue(TW_BACKUP_NAME, Backup_Name); + break; + } + } + if (propvalue.empty()) { + LOGINFO("ro.build.display.id not found in build.prop\n"); + } + if (!mount_state) + PartitionManager.UnMount_By_Path("/system", false); +}
\ No newline at end of file diff --git a/twrp-functions.hpp b/twrp-functions.hpp index 4040d2ef0..b3019bd25 100644 --- a/twrp-functions.hpp +++ b/twrp-functions.hpp @@ -55,6 +55,8 @@ public: static int Try_Decrypting_File(string fn, string password); // -1 for some error, 0 for failed to decrypt, 1 for decrypted, 3 for decrypted and found gzip format static bool Try_Decrypting_Backup(string Restore_Path, string Password); // true for success, false for failed to decrypt static int Wait_For_Child(pid_t pid, int *status, string Child_Name); // Waits for pid to exit and checks exit status + static string Get_Current_Date(void); // Returns the current date in ccyy-m-dd--hh-nn-ss format + static void Auto_Generate_Backup_Name(); // Populates TW_BACKUP_NAME with a backup name based on current date and ro.build.display.id from /system/build.prop private: static void Copy_Log(string Source, string Destination); @@ -200,7 +200,7 @@ int main(int argc, char **argv) { bool Keep_Going = true; if (Perform_Backup) { - DataManager::SetValue(TW_BACKUP_NAME, "(Current Date)"); + DataManager::SetValue(TW_BACKUP_NAME, "(Auto Generate)"); if (!OpenRecoveryScript::Insert_ORS_Command("backup BSDCAE\n")) Keep_Going = false; } |