From 43d8b0077072ff4ef5ffa07be5dcbf7a73fe499f Mon Sep 17 00:00:00 2001 From: Dees_Troy Date: Mon, 17 Sep 2012 16:00:01 -0400 Subject: Update backup and restore code, adb sideload Fixed a problem with using make_ext4fs by making its lib a dynamic lib. Added ADB sideload zip install feature - no way to cancel it yet. Improve backup and restore code. --- gui/action.cpp | 43 ++++++++++++++++++++++++++++++++++++----- gui/devices/800x1280/res/ui.xml | 15 ++++++++++++++ 2 files changed, 53 insertions(+), 5 deletions(-) (limited to 'gui') diff --git a/gui/action.cpp b/gui/action.cpp index b050febd0..3d6c9ebaa 100644 --- a/gui/action.cpp +++ b/gui/action.cpp @@ -21,6 +21,9 @@ #include "../partitions.hpp" #include "../twrp-functions.hpp" +#include "../ui.h" +#include "../adb_install.h" + extern "C" { #include "../common.h" #include "../roots.h" @@ -31,6 +34,8 @@ extern "C" { #include "../variables.h" #include "../twinstall.h" +#include "../minadbd/adb.h" + int TWinstall_zip(const char* path, int* wipe_cache); void wipe_dalvik_cache(void); int check_backup_name(int show_error); @@ -55,6 +60,8 @@ int gui_start(); #include "rapidxml.hpp" #include "objects.hpp" +extern RecoveryUI* ui; + void curtainClose(void); GUIAction::GUIAction(xml_node<>* node) @@ -733,6 +740,7 @@ int GUIAction::doAction(Action action, int isThreaded /* = 0 */) if (function == "nandroid") { operation_start("Nandroid"); + int ret = 0; if (simulate) { DataManager::SetValue("tw_partition", "Simulation"); @@ -741,21 +749,27 @@ 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 == "(" || check_backup_name(1)) - PartitionManager.Run_Backup(Backup_Name); - else + if (Backup_Name == "(Current Date)" || Backup_Name == "0" || Backup_Name == "(" || check_backup_name(1) == 0) + ret = PartitionManager.Run_Backup(); + else { + operation_end(1, simulate); return -1; + } DataManager::SetValue(TW_BACKUP_NAME, "(Current Date)"); } else if (arg == "restore") { string Restore_Name; DataManager::GetValue("tw_restore", Restore_Name); - PartitionManager.Run_Restore(Restore_Name); + ret = PartitionManager.Run_Restore(Restore_Name); } else { operation_end(1, simulate); return -1; } } - operation_end(0, simulate); + if (ret == false) + ret = 1; // 1 for failure + else + ret = 0; // 0 for success + operation_end(ret, simulate); return 0; } if (function == "fixpermissions") @@ -1048,6 +1062,25 @@ LOGE("TODO: Implement ORS support\n"); operation_end(op_status, simulate); return 0; } + if (function == "adbsideload") + { + int ret = 0; + + operation_start("Sideload"); + if (simulate) { + simulate_progress_bar(); + } else { + int wipe_cache = 0; + ui_print("Starting ADB sideload feature...\n"); + __system("touch /tmp/update.zip"); + ret = apply_from_adb(ui, &wipe_cache, "/tmp/last_install"); + LOGI("Result was: %i\n", ret); + if (ret != 0) + ret = 1; + } + operation_end(ret, simulate); + return 0; + } } else { diff --git a/gui/devices/800x1280/res/ui.xml b/gui/devices/800x1280/res/ui.xml index 94468d8c0..decfcad55 100755 --- a/gui/devices/800x1280/res/ui.xml +++ b/gui/devices/800x1280/res/ui.xml @@ -2540,6 +2540,21 @@ terminalfolder + + + + ADB Sideload + + + tw_action=adbsideload + tw_action_text1=ADB Sideload + tw_action_text2=Usage: adb sideload filename.zip + tw_complete_text1=ADB Sideload Complete + tw_slider_text=Swipe to Wipe + action_page + + + -- cgit v1.2.3