}
void HeartCheckView::UpShowHeartText()
{
- uint16_t heart_ = HeartModel::GetInstance()->GetShowHeartdata();
- // WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "GetHeartData %d", heart_);
- std::string bloodoxygenStr = std::to_string(heart_);
- HeartText->SetText(bloodoxygenStr.c_str());
+ // 防止访问空的Text
+ if (HeartText != nullptr)
+ {
+ uint16_t heart_ = HeartModel::GetInstance()->GetShowHeartdata();
+ std::string bloodoxygenStr = std::to_string(heart_);
+ HeartText->SetText(bloodoxygenStr.c_str());
+ }
}
UIScrollView *HeartCheckView::HeartCheckViewInit()
{
if (keyID == static_cast<uint16_t>(ZliteKeyCode::ZLITE_KEY_POWER) && keyState == 0 && uapi_get_screen_state() == 0)
{
// 关闭心率检测
- HeartModel::GetInstance()->Heart_Control(HeartState::End,HeartCheck::INITIATIVE);
+ HeartModel::GetInstance()->Heart_Control(HeartState::End, HeartCheck::INITIATIVE);
+ // 复原标志位
+ startheart = true;
+ HeartModel::GetInstance()->Heart_Stop();
// 回退
NativeAbility::GetInstance().ChangeSlice(VIEW_APPLIST, TransitionType::TRANSITION_ZOOM);
}
HeartCheckView::GetInstance()->GetImageAnimator()->Stop();
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "GetCheckStatus false");
// 关闭心率检测
- HeartModel::GetInstance()->Heart_Control(HeartState::End,HeartCheck::INITIATIVE);
+ HeartModel::GetInstance()->Heart_Control(HeartState::End, HeartCheck::INITIATIVE);
startheart = true;
}
}
{
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "GetCheckStatus true");
// 开启心率检测 [UI优先级最高直接打断正在检测 重新检测]
- HeartModel::GetInstance()->Heart_Control(HeartState::End,HeartCheck::INITIATIVE);
- HeartModel::GetInstance()->Heart_Control(HeartState::Start,HeartCheck::INITIATIVE);
+ HeartModel::GetInstance()->Heart_Control(HeartState::End, HeartCheck::INITIATIVE);
+ HeartModel::GetInstance()->Heart_Control(HeartState::Start, HeartCheck::INITIATIVE);
startheart = false;
}
}
HeartView::~HeartView()
{
WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "HeartView::~HeartView");
+
HeartScrollView[HEARTVIEW]->RemoveAll();
UIView::OnDragListener *draglistener = HeartScrollView[HEARTVIEW]->GetOnDragListener();
if (draglistener != nullptr)
heartcheck = nullptr;
heartbandoff = nullptr;
heartresult = nullptr;
-
+
delete HeartScrollView[HEARTVIEW];
HeartScrollView[HEARTVIEW] = nullptr;
}
{
// 更新心率数据
uint8_t heart = HeartModel::GetInstance()->GetHeartdata();
+
+ // 防止访问空组件
+ if (percent == nullptr || timeLabel == nullptr)
+ return;
+
if (heart != 0) // 判断是否为默认数据
{
// 更新心率数据