/*************************OTA升级状态*************************/
void ThunderBirdModel::UpdateOtaStatus(int status)
{
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "ThunderBirdModel::UpdateOtaStatus: %d", status);
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "ThunderBirdModel::UpdateOtaStatus: %d", status);
m_otaStatus = status;
+ // 更新状态检查
+ if(status == 1)//强制OTA升级
+ {
+ ThunderBirdMainView::GetInstance()->ChangeView(MAXVIEW, THUNDERBIRD_OTAVIEW, ThunderBirdOtaView::THUNDERBIRD_OTAVIEW_UPDATE_NOW);
+ }
+ else if(status == 0)//可选OTA升级
+ {
+ ThunderBirdMainView::GetInstance()->ChangeView(MAXVIEW, THUNDERBIRD_OTAVIEW, ThunderBirdOtaView::THUNDERBIRD_OTAVIEW_NORMAL);
+ }
}
/*************************获取OTA升级状态*************************/
int ThunderBirdModel::GetOtaStatus()
//存储kv
(void)UtilsSetValue("bind_status", "1");
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "ThunderBirdModel::CheckBindingStatus: 已绑定");
+ bind_status = true;
return BindingStatus::BOUND;
}
else if(uapi_ln_is_device_bound() == 2)//认证失败
{
// 网络连接成功,调用HTTP服务获取设备Token
// 获取一下OTA 是否有最新版本
- ota_update_boot();
+ int ota = ota_update_boot();
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "ota_update_boot:%d",ota);
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Network connected, calling HTTP service");
#if JUHEPINGTAI
uapi_init_all_websocket_servers();
#include "NativeAbility.h"
#include "TransitionType.h"
+#include "thunderbird/include/ThunderBirdModel.h"
+
extern "C" errcode_t uapi_pm_add_sleep_veto(pm_id_t veto_id);
extern "C" errcode_t uapi_pm_remove_sleep_veto(pm_id_t veto_id);
const int BYTE_OFFSET = 8;
static uint32_t g_interval = 5;
+/* -------------------------------------------------------------------------- */
+// 消息处理程序的函数指针类型
+typedef void (*MsgHandlerFunc)(Request *);
+// 定义一个结构来保存消息处理程序
+typedef struct
+{
+ int msgId;
+ MsgHandlerFunc handler;
+} MsgHandlerEntry;
+
+// 消息处理程序的函数原型
+static void HandleJumpOtaView(Request *request);
+
+
+// 消息处理程序项数组(每个消息类型对应一个处理函数,函数名以 Handle 开头)
+MsgHandlerEntry msgHandlers[] = {
+ {HANDLE_JUMP_OTA_VIEW, HandleJumpOtaView},
+};
+/* -------------------------------------------------------------------------- */
void ScreenTurnOn(int32_t timeout)
{
if (OHOS::HealthModel::GetInstance()->GetBriScrStatus() == 1) {
void ServiceMsgProcess(Request *request)
{
- switch (request->msgId) {
- case JS_INSTALL_SUCESS_TO_UI:
- case JS_UNINSTALL_SUCESS_TO_UI:
- WEARABLE_LOGI(WEARABLE_LOG_MODULE_UI_SERVICE, "bms msg_id = %d bundleName = %s",
- request->msgId, ((BundleData *)request->data)->bundleName);
- GraphicService::GetInstance()->PostGraphicEvent(
- std::bind(&OHOS::ApplistModel::ApplistUpdate, &OHOS::ApplistModel::GetInstance()));
- break;
- case BT_CONNECTED_TO_UI:
- GraphicService::GetInstance()->PostGraphicEvent(
- std::bind(&OHOS::SettingModel::UpdateBlueToothConnectStatus, &OHOS::SettingModel::GetInstance(), true));
- break;
- case BT_DISCONNECTED_TO_UI:
- GraphicService::GetInstance()->PostGraphicEvent(
- std::bind(&OHOS::SettingModel::UpdateBlueToothConnectStatus, &OHOS::SettingModel::GetInstance(), false));
- break;
- case UI_ADD_SLEEP_VETO:
- uapi_pm_add_sleep_veto(PM_ID_SCREEN);
- break;
- case UI_RM_SLEEP_VETO:
- uapi_pm_remove_sleep_veto(PM_ID_SCREEN);
- break;
- case CONNECT_NEW_PHONE:
- ConnectNewPhone();
- break;
- case UI_UPDATE_LANGUAGE:
- OHOS::UILanguage::UpdateLanguage();
- break;
- case UI_OTA_UPDATE:
- power_display_svr_get_api()->turn_on_screen();
- OHOS::NativeAbility::GetInstance().ChangeSlice(VIEW_SET_OTA,
- OHOS::TransitionType::TRANSITION_INVALID, OHOS::gSliceDefaultPriority, true);
- break;
- }
+ /* -------------------------------------------------------------------------- */
+ WEARABLE_LOGI(WEARABLE_LOG_MODULE_UI_SERVICE, "UiServiceMsgId = %d", request->msgId);
+ for (int i = 0; i < MAX_NUM_HANDLER; ++i)
+ {
+ if (msgHandlers[i].msgId == request->msgId)
+ {
+ msgHandlers[i].handler(request);
+ break;
+ }
+ }
+ /* -------------------------------------------------------------------------- */
}
BOOL ServiceMessageHandle(Service *service, Request *request)
comApi->Release((IUnknown *)comApi);
}
+/* -------------------------------------------------------------------------- */
+void HandleJumpOtaView(Request *request)
+{
+ WEARABLE_LOGI(WEARABLE_LOG_MODULE_UI_SERVICE, "HandleJumpOtaView msg_id = %d",request->msgId);
+ // OHOS::ThunderBirdModel::GetInstance()->UpdateOtaStatus(status);
+ int status = *(int *)request->data;
+ GraphicService::GetInstance()->PostGraphicEvent(
+ std::bind(&OHOS::ThunderBirdModel::UpdateOtaStatus,OHOS::ThunderBirdModel::GetInstance(), status));
+}
+/* -------------------------------------------------------------------------- */
#ifdef __cplusplus
}
#endif