diff --git a/services/updater_ui.cpp b/services/updater_ui.cpp index f2ba83daa198ca0869b6df6d13e3cb7287a4028a..a86ecf61b97d9156b914d27ed7844bbafec41011 100644 --- a/services/updater_ui.cpp +++ b/services/updater_ui.cpp @@ -119,6 +119,35 @@ DEFINE_ASYN_CALLBACK(OnLabelSDCardNoDelayEvt) Utils::UpdaterDoReboot(""); } +DEFINE_ASYN_CALLBACK(OnLabelSDUpdateResEvt) +{ + LOG(INFO) << "On Label SDCard To Reserve Userdata"; + if (!GetFacade().SetMode(UPDATERMODE_SDCARD)) { + return; + } + Utils::UsSleep(CALLBACK_DELAY); + UpdaterParams upParams; + upParams.updateMode = SDCARD_UPDATE; + Utils::SetMessageToMisc("boot-updater", 0, "sdcard_intral_update"); // set retain userdata + if (!Utils::CheckUpdateMode(Updater::SDCARD_INTRAL_MODE)) { + LOG(ERROE) << "sdcard_intral_update write to misc failed"; + GetFacade().ShowFailedPage(); + return; + } + LOG(INFO) << "sdcard_intral_update write to misc success"; + if (auto res = UpdaterFromSdcard(upParams); res != UPDATE_SUCCESS) { + Utils::RemoveUpdateInfoFromMisc("sdcard_update"); + GetFacade().ShowLogRes(res == UPDATE_CORRUPT ? TR(LOGRES_VERIFY_FAILED) : TR(LOGRES_UPDATE_FAILED)); + GetFacade().ShowFailedPage(); + return; + } + GetFacade().ShowLogRes(TR(LABEL_UPD_OK_DONE)); + GetFacade().ShowSuccessPage(); + Utils::UsSleep(SUCCESS_DELAY); + PostUpdater(true); + Utils::UpdaterDoReboot(""); +} + DEFINE_SYNC_CALLBACK(OnLabelCancelEvt) { LOG(INFO) << "On Label Cancel";