#include <service/graphic_service.h>
#include "ota/include/OtaView.h"
#include "ota/include/OtaUpdatingView.h"
+#include "system/include/MemoryManager.h"
namespace OHOS
{
#ifdef SUPPORT_BATTERY_SERVICE
Batteryvalue = battery_get_voltage(&voltage);
#endif
- return (Batteryvalue >= 20);
+ return (Batteryvalue >= 50);
}
bool OtaModel::IsMemorySufficient() const
{
- // 检查内存是否足够(至少100MB)
- // TODO: 实现实际的内存检查
- // int freeMemory = get_free_memory();
- const char* memoryInfo = get_system_memory_info();
- printf("memoryInfo: %s\r\n", memoryInfo);
- int freeMemory = 200; // 暂时返回200MB可用内存
- return (freeMemory >= 100);
+ int memoryValue = uapi_ln_get_ota_package_size();
+ return MemoryManager::GetInstance()->CheckPathMemory("/user/update/", memoryValue);
}
/**
return true;
}
- void OtaPresenter::StartOtaUpdate()
- {
- // WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "OtaPresenter::StartOtaUpdate");
-
- // // 检查网络状态
- // if (!OtaModel::GetInstance()->HasNetwork()) {
- // UpdateOtaStatus(OTA_VIEW_NETWORK_ERROR);
- // return;
- // }
-
- // // 检查电量
- // if (!OtaModel::GetInstance()->IsBatterySufficient()) {
- // UpdateOtaStatus(OTA_VIEW_LOW_BATTERY);
- // return;
- // }
-
- // // 检查内存
- // if (!OtaModel::GetInstance()->IsMemorySufficient()) {
- // UpdateOtaStatus(OTA_VIEW_MEMORY_ERROR);
- // return;
- // }
-
- // // 开始OTA更新
- // int result = OtaModel::GetInstance()->StartOtaUpdate();
- // if (result == 0) {
- // UpdateOtaStatus(OTA_VIEW_UPDATING);
- // } else {
- // UpdateOtaStatus(OTA_VIEW_UPDATE_FAILED);
- // }
- }
-
- // void OtaPresenter::StopOtaUpdate()
- // {
- // // WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "OtaPresenter::StopOtaUpdate");
-
- // // OtaModel::GetInstance()->StopOtaUpdate();
- // // UpdateOtaStatus(OTA_VIEW_UPDATE_FAILED);
- // }
-
- void OtaPresenter::UpdateOtaProgress(int progress)
- {
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "OtaPresenter::UpdateOtaProgress: %d", progress);
-
- // m_otaProgress = progress;
- // OtaModel::GetInstance()->SetOtaProgress(progress);
-
- // // 更新UI
- // OtaView *view = static_cast<OtaView*>(GetView());
- // if (view) {
- // view->SetRemindProgress(progress);
- // }
-
- // // 如果进度达到100%,更新状态为成功
- // if (progress >= 100) {
- // UpdateOtaStatus(OTA_VIEW_UPDATE_SUCCESS);
- // }
- }
-
- void OtaPresenter::UpdateOtaStatus(int status)
- {
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "OtaPresenter::UpdateOtaStatus: %d", status);
-
- // m_otaStatus = status;
- // OtaModel::GetInstance()->SetOtaStatus(status);
-
- // // 更新UI
- // OtaView *view = static_cast<OtaView*>(GetView());
- // if (view) {
- // view->Show(status);
- // }
-
- // HandleOtaStatusChange(status);
- }
-
- // int OtaPresenter::GetOtaStatus() const
- // {
- // return m_otaStatus;
- // }
-
- void OtaPresenter::StartOtaCountdown(uint32_t startVal)
- {
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "OtaPresenter::StartOtaCountdown: %u", startVal);
-
- m_otaCountdownActive = true;
- m_otaCountdownValue = startVal;
-
- OtaModel::GetInstance()->SetCountdownActive(true);
- OtaModel::GetInstance()->SetCountdownValue(startVal);
-
- // 显示倒计时界面
- // UpdateOtaStatus(OTA_VIEW_COUNTDOWN);
- }
-
- // void OtaPresenter::StopOtaCountdown()
- // {
- // WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "OtaPresenter::StopOtaCountdown");
-
- // m_otaCountdownActive = false;
- // m_otaCountdownValue = 0;
-
- // OtaModel::GetInstance()->SetCountdownActive(false);
- // OtaModel::GetInstance()->SetCountdownValue(0);
- // }
-
- void OtaPresenter::UpdateCountdown(int value)
- {
- // WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "OtaPresenter::UpdateCountdown: %d", value);
-
- // m_otaCountdownValue = value;
- // OtaModel::GetInstance()->SetCountdownValue(value);
-
- // // 更新UI
- // OtaView *view = static_cast<OtaView*>(GetView());
- // if (view) {
- // view->UpdateCountdown(value);
- // }
-
- // // 如果倒计时结束,开始更新
- // if (value <= 0) {
- // StopOtaCountdown();
- // StartOtaUpdate();
- // }
- }
-
- void OtaPresenter::HandleOtaStatusChange(int status)
- {
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "OtaPresenter::HandleOtaStatusChange: %d", status);
-
- }
-
void OtaPresenter::HandleKeyPress(uint16_t keyId, uint16_t keyState)
{
int16_t currentView = OtaView::GetInstance()->GetCurrentView();
//普通升级
int result = OtaModel::GetInstance()->StartOtaUpdate();
if(result == 0) {
- OtaView::GetInstance()->ChangeView(OtaView::OTA_VIEW_NORMAL, OtaView::OTA_VIEW_UPDATING);
+ OtaView::GetInstance()->ChangeView(OtaView::OTA_VIEW_NORMAL, OtaView::OTA_VIEW_COUNTDOWN);
}
else if(result == -1) {
OtaView::GetInstance()->ChangeView(OtaView::OTA_VIEW_NORMAL, OtaView::OTA_VIEW_NETWORK_ERROR);
}
else if (currentView == OtaView::OTA_VIEW_UPDATE_NOW) {
//强制升级
- //int result = OtaModel::GetInstance()->StartOtaUpdate();
- int result = 0;
+ int result = OtaModel::GetInstance()->StartOtaUpdate();
if(result == 0) {
OtaView::GetInstance()->ChangeView(OtaView::OTA_VIEW_UPDATE_NOW, OtaView::OTA_VIEW_COUNTDOWN);
}