summaryrefslogtreecommitdiffstats
path: root/gui/action.cpp
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--gui/action.cpp73
1 files changed, 34 insertions, 39 deletions
diff --git a/gui/action.cpp b/gui/action.cpp
index a1f7dd3dc..b050febd0 100644
--- a/gui/action.cpp
+++ b/gui/action.cpp
@@ -19,6 +19,7 @@
#include <string>
#include <sstream>
#include "../partitions.hpp"
+#include "../twrp-functions.hpp"
extern "C" {
#include "../common.h"
@@ -31,7 +32,6 @@ extern "C" {
#include "../twinstall.h"
int TWinstall_zip(const char* path, int* wipe_cache);
-void fix_perms();
void wipe_dalvik_cache(void);
int check_backup_name(int show_error);
void wipe_battery_stats(void);
@@ -667,62 +667,57 @@ int GUIAction::doAction(Action action, int isThreaded /* = 0 */)
operation_start("Format");
DataManager::SetValue("tw_partition", arg);
- int ret_val = 0;
+ int ret_val = false;
if (simulate) {
simulate_progress_bar();
} else {
if (arg == "data")
- PartitionManager.Factory_Reset();
+ ret_val = PartitionManager.Factory_Reset();
else if (arg == "battery")
- wipe_battery_stats();
+ ret_val = PartitionManager.Wipe_Battery_Stats();
else if (arg == "rotate")
- wipe_rotate_data();
+ ret_val = PartitionManager.Wipe_Rotate_Data();
else if (arg == "dalvik")
- wipe_dalvik_cache();
+ ret_val = PartitionManager.Wipe_Dalvik_Cache();
else if (arg == "DATAMEDIA") {
- LOGE("TODO: Implement formatting of datamedia device!\n");
- ret_val = 1; //format_data_media();
- int has_datamedia, dual_storage;
-
- DataManager::GetValue(TW_HAS_DATA_MEDIA, has_datamedia);
- DataManager::GetValue(TW_HAS_DUAL_STORAGE, dual_storage);
- if (has_datamedia && !dual_storage) {
- system("umount /sdcard");
- system("mount /data/media /sdcard");
- }
+ ret_val = PartitionManager.Format_Data();
} else if (arg == "INTERNAL") {
int has_datamedia, dual_storage;
DataManager::GetValue(TW_HAS_DATA_MEDIA, has_datamedia);
if (has_datamedia) {
- PartitionManager.Mount_By_Path("/data", 1);
- __system("rm -rf /data/media");
- __system("cd /data && mkdir media && chmod 775 media");
- DataManager::GetValue(TW_HAS_DUAL_STORAGE, dual_storage);
- if (!dual_storage) {
- system("umount /sdcard");
- system("mount /data/media /sdcard");
- }
+ ret_val = PartitionManager.Wipe_Media_From_Data();
} else {
- ret_val = 0;
- LOGE("Wipe not implemented yet!\n");
+ ret_val = PartitionManager.Wipe_By_Path(DataManager::GetSettingsStoragePath());
}
} else if (arg == "EXTERNAL") {
- ret_val = 0;
- LOGE("Wipe not implemented yet!\n");
+ string External_Path;
+
+ DataManager::GetValue(TW_EXTERNAL_PATH, External_Path);
+ ret_val = PartitionManager.Wipe_By_Path(External_Path);
} else
- PartitionManager.Wipe_By_Path(arg);
+ ret_val = PartitionManager.Wipe_By_Path(arg);
- if (arg == "/sdcard") {
- PartitionManager.Mount_By_Path("/sdcard", 1);
- mkdir("/sdcard/TWRP", 0777);
- DataManager::Flush();
+ if (arg == DataManager::GetSettingsStoragePath()) {
+ // If we wiped the settings storage path, recreate the TWRP folder and dump the settings
+ string Storage_Path = DataManager::GetSettingsStoragePath();
+
+ if (PartitionManager.Mount_By_Path(Storage_Path, true)) {
+ LOGI("Making TWRP folder and saving settings.\n");
+ Storage_Path += "/TWRP";
+ mkdir(Storage_Path.c_str(), 0777);
+ DataManager::Flush();
+ } else {
+ LOGE("Unable to recreate TWRP folder and save settings.\n");
+ }
}
}
PartitionManager.Update_System_Details();
- if (ret_val != 0)
- ret_val = 1;
+ if (ret_val)
+ ret_val = 0; // 0 is success
+ else
+ ret_val = 1; // 1 is failure
operation_end(ret_val, simulate);
return 0;
}
@@ -770,7 +765,7 @@ int GUIAction::doAction(Action action, int isThreaded /* = 0 */)
if (simulate) {
simulate_progress_bar();
} else
- fix_perms();
+ PartitionManager.Fix_Permissions();
LOGI("fix permissions DONE!\n");
operation_end(0, simulate);
@@ -870,7 +865,7 @@ int GUIAction::doAction(Action action, int isThreaded /* = 0 */)
if (simulate) {
simulate_progress_bar();
} else
- install_htc_dumlock();
+ TWFunc::install_htc_dumlock();
operation_end(0, simulate);
return 0;
@@ -881,7 +876,7 @@ int GUIAction::doAction(Action action, int isThreaded /* = 0 */)
if (simulate) {
simulate_progress_bar();
} else
- htc_dumlock_restore_original_boot();
+ TWFunc::htc_dumlock_restore_original_boot();
operation_end(0, simulate);
return 0;
@@ -892,7 +887,7 @@ int GUIAction::doAction(Action action, int isThreaded /* = 0 */)
if (simulate) {
simulate_progress_bar();
} else
- htc_dumlock_reflash_recovery_to_boot();
+ TWFunc::htc_dumlock_reflash_recovery_to_boot();
operation_end(0, simulate);
return 0;