summaryrefslogtreecommitdiffstats
path: root/gui/action.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'gui/action.cpp')
-rw-r--r--gui/action.cpp43
1 files changed, 38 insertions, 5 deletions
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
{