{VIEW_CONNECT_PHONE, &NativeLauncher::InitConnectPhoneSlice},
{VIEW_INDOORWALK, &NativeLauncher::InitIndoorWalkSlice},
{VIEW_SHUTDOWN_OR_REBOOT, &NativeLauncher::InitRebootSlice},
- {VIEW_WEATHER, &NativeLauncher::InitWeatherSlice}, // 天气
- {VIEW_SYSTEM, &NativeLauncher::InitSystemSlice}, // 系统实例化地址
- {VIEW_SOUND_VIBRATION, &NativeLauncher::InitSoundAndVibrationSlice}, // 声音与震动实例化地址
- {VIEW_SYSTEM_VOLUME, &NativeLauncher::InitSystemVolumeSlice}, // 系统音量
- {VIEW_CLASSIC_BLUETOOTH, &NativeLauncher::InitClassicBluetoothSlice}, // 经典蓝牙slice
- {VIEW_DISPLAY_BRIGHTNESS, &NativeLauncher::InitDisplayBrightnessSlice}, // 显示与亮度的实例化地址
+ {VIEW_WEATHER, &NativeLauncher::InitWeatherSlice}, // 天气
+ {VIEW_SYSTEM, &NativeLauncher::InitSystemSlice}, // 系统实例化地址
+ {VIEW_SOUND_VIBRATION, &NativeLauncher::InitSoundAndVibrationSlice}, // 声音与震动实例化地址
+ {VIEW_SYSTEM_VOLUME, &NativeLauncher::InitSystemVolumeSlice}, // 系统音量
+ {VIEW_CLASSIC_BLUETOOTH, &NativeLauncher::InitClassicBluetoothSlice}, // 经典蓝牙slice
+ {VIEW_DISPLAY_BRIGHTNESS, &NativeLauncher::InitDisplayBrightnessSlice}, // 显示与亮度的实例化地址
{VIEW_SECONDARY_FUNCTION, &NativeLauncher::InitSecondaryFunction},
{VIEW_FAST_TRAINING, &NativeLauncher::InitFastTrainingSlice},
{VIEW_FAST_TRAINING_ATTENTION, &NativeLauncher::InitFastTrainingAttentionSlice},
{VIEW_FLASHLIGHT, &NativeLauncher::InitFlashlightSlice},
{VIEW_BRIGHTNESSLEVEL, &NativeLauncher::InitBrightnessLevelSlice},
-
{VIEW_MESSAGE, &NativeLauncher::InitMessageSlice},
{VIEW_ROTATE, &NativeLauncher::InitRotateSlice},
// {VIEW_DIALUPDATE, &NativeLauncher::InitDialUpdateSlice},
{VIEW_SAVEELE, &NativeLauncher::InitSaveEleSlice},
{VIEW_SAVEBAT, &NativeLauncher::InitSaveBatSlice},
/* ----------------------------------- 训练 ----------------------------------- */
- {VIEW_TRAINING, &NativeLauncher::InitTraingSlice}, // 训练
- {VIEW_TRAININGNOMAL, &NativeLauncher::InitTraingNomalSlice}, // 正常训练初始界面
- {VIEW_TRAININGSET, &NativeLauncher::InitTraingSetSlice}, // 训练目标设置界面
- {VIEW_TRAININGENDDATA, &NativeLauncher::InitTraingEnddataSlice}, // 训练结束详细数据
- {VIEW_TRAININGWIN, &NativeLauncher::InitTraingWinSlice}, // 训练目标达成
- {VIEW_TRAINING_RECORD, &NativeLauncher::InitTraingRecordSlice}, // 训练目标达成
+ {VIEW_TRAINING, &NativeLauncher::InitTraingSlice}, // 训练
+ {VIEW_TRAININGNOMAL, &NativeLauncher::InitTraingNomalSlice}, // 正常训练初始界面
+ {VIEW_TRAININGSET, &NativeLauncher::InitTraingSetSlice}, // 训练目标设置界面
+ {VIEW_TRAININGCRAD, &NativeLauncher::InitTraingCardSlice}, // 训练卡片
+ {VIEW_TRAININGENDDATA, &NativeLauncher::InitTraingEnddataSlice}, // 训练结束详细数据
+ {VIEW_TRAININGWIN, &NativeLauncher::InitTraingWinSlice}, // 训练目标达成
+ {VIEW_TRAINING_RECORD, &NativeLauncher::InitTraingRecordSlice}, // 训练目标达成
{VIEW_TRAININGMORE, &NativeLauncher::InitTraingMoreSlice}, // 更多训练
{VIEW_TRAININGLIMIT, &NativeLauncher::InitTraingLimitSlice}, // 极限训练
VocassistModel::GetInstance()->Init();
HeartModel::GetInstance()->Init();
BluetoothModel::GetInstance()->Init();
- TraingModel::GetInstance()->Init();//训练消息订阅
+ TraingModel::GetInstance()->Init(); // 训练消息订阅
// 初始化默认首页
ScreenModels::GetInstance()->PreLoadAppimages();
NativeAbility::GetInstance().SetDefaultSliceId(VIEW_MAIN);
{
Duration,
Calories,
- Distance
+ Distance,
+ STEP,
+ UNKNOW,
};
struct SportData
{
void OnStop() override;
static TraingSetPresenter *GetInstance();
+
+ const char *GetButtonIdFromCard(int cardID);
+ int GetTagFromCard(int cardID);
+ ExerciseTag GetExerciseTagFromCard(int cardID);
private:
// 因为继承了OnClickListener,所以有OnClick属性,至于参数,原函数也这样直接继承;
namespace OHOS
{
-#define BUTTONCALULIOK "buttoncaluli"
+#define BUTTONCALULIOK "buttonCaluli"
class TraingSetPresenter;
class TrainingSetCaluliView : public View<TraingSetPresenter>
UIScrollView *SetCaluliViewInit();
void InitUIPicker(UIPicker *&picker, int x, int y, int width, int height, const char *viewId);
+ UIPicker *GetCaluliPicker();
private:
UIView::OnDragListener *draglistener{nullptr};
UILabelExt *labeltitle_ = nullptr;
- UILabelButtonExt*buttonok_ = nullptr;
- UIPicker *calPicker_ = nullptr;
+ UILabelButtonExt *buttonok_ = nullptr;
+ UIPicker *Picker_ = nullptr;
UIScrollView *SetCaluliScrollView;
};
-/***
+/***
* @Date: 2024-04-18 11:59:51
* @LastEditors: Caisking 3449750381@qq.com
- * @LastEditTime: 2024-04-18 15:09:42
+ * @LastEditTime: 2024-04-18 16:04:47
* @FilePath: /XTS_FD230/FD230/code/sdk/application/wearable/fd230app/nativeui/traing/include/TrainingSetMileView.h
*/
/***
namespace OHOS
{
-#define BUTTONMileOK "buttonMile"
+#define BUTTONMILEOK "buttonMile"
class TraingSetPresenter;
class TrainingSetMileView : public View<TraingSetPresenter>
UIScrollView *SetMileViewInit();
void InitUIPicker(UIPicker *&picker, int x, int y, int width, int height, const char *viewId);
+ UIPicker *GetMilePicker();
private:
UIView::OnDragListener *draglistener{nullptr};
UILabelExt *labeltitle_ = nullptr;
- UILabelButtonExt*buttonok_ = nullptr;
- UIPicker *calPicker_ = nullptr;
+ UILabelButtonExt *buttonok_ = nullptr;
+ UIPicker *Picker_ = nullptr;
UIScrollView *SetMileScrollView;
};
-/***
+/***
* @Date: 2024-04-18 11:59:25
* @LastEditors: Caisking 3449750381@qq.com
* @LastEditTime: 2024-04-18 15:34:22
namespace OHOS
{
-#define BUTTONStepOK "buttonStep"
+#define BUTTONSTEPOK "buttonStep"
class TraingSetPresenter;
class TrainingSetStepView : public View<TraingSetPresenter>
UIScrollView *SetStepViewInit();
void InitUIPicker(UIPicker *&picker, int x, int y, int width, int height, const char *viewId);
+ UIPicker *GetSetpPicker();
private:
UIView::OnDragListener *draglistener{nullptr};
UILabelExt *labeltitle_ = nullptr;
- UILabelButtonExt*buttonok_ = nullptr;
- UIPicker *calPicker_ = nullptr;
+ UILabelButtonExt *buttonok_ = nullptr;
+ UIPicker *Picker_ = nullptr;
UIScrollView *SetStepScrollView;
};
namespace OHOS
{
-#define BUTTONTIMEOK "buttontime"
+#define BUTTONTIMEOK "buttonTime"
class TraingSetPresenter;
class TrainingSetTimeView : public View<TraingSetPresenter>
UIScrollView *SetTimeViewInit();
void InitUIPicker(UIPicker *&picker, int x, int y, int width, int height, const char *viewId);
-
+ UIPicker *GetTimePicker();
private:
UIView::OnDragListener *draglistener{nullptr};
UILabelExt *labeltitle_ = nullptr;
UILabelButtonExt*buttonok_ = nullptr;
- UIPicker *calPicker_ = nullptr;
+ UIPicker *Picker_ = nullptr;
UIScrollView *SetTimeScrollView;
};
UNUSED(view);\r
return true;\r
}\r
-#if 0\r
- bool TraingNomalPresenter::OnDragEnd(UIView &view, const DragEvent &event)\r
- {\r
- if (event.GetDragDirection() == DragEvent::DIRECTION_LEFT_TO_RIGHT)\r
- {\r
- //NativeAbility::GetInstance().Back(); // 返回函数\r
-\r
- uint16_t preSlice = NativeAbility::GetInstance().GetPreSliceId();\r
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Id:[%d]", preSlice);\r
- if (preSlice == VIEW_MAIN)\r
- {\r
- NativeAbility::GetInstance().ChangeSlice(VIEW_MAIN);\r
- // MainViewSample::GetInstance()->SetPage(CardId::TRAINING);\r
- return true;\r
- }\r
- if (preSlice == VIEW_TRAININGSET)\r
- {\r
- // 回到训练列表\r
- NativeAbility::GetInstance().ChangeSlice(VIEW_TRAININGMORE);\r
- }\r
- else\r
- {\r
- NativeAbility::GetInstance().ChangeSlice(preSlice);\r
- }\r
- }\r
- UNUSED(view);\r
- return true;\r
- }\r
-#endif\r
\r
bool TraingNomalPresenter::OnClick(UIView &view, const ClickEvent &event)\r
{\r
#include <chrono>\r
#include <thread>\r
#include "traing/include/TraingSetPresenter.h"\r
+#include "traing/training_card/include/TraingCardPresenter.h"\r
// #include "TraingSetView.h"\r
\r
namespace OHOS\r
\r
bool TraingSetPresenter::OnClick(UIView &view, const ClickEvent &event)\r
{\r
- // 根据控件id查找是哪个控件触发了点击回调\r
- if (strcmp(view.GetViewId(), BUTTONTIME) == 0)\r
+ int CardID = TraingSetView::GetInstance()->GetCurrentViewId();\r
+ switch (CardID)\r
{\r
- TraingSetView::GetInstance()->ChangeView(SET_VIEW, SET_DURATION);\r
+ case SET_VIEW:\r
+ if (strcmp(view.GetViewId(), BUTTONTIME) == 0)\r
+ {\r
+ TraingSetView::GetInstance()->ChangeView(SET_VIEW, SET_DURATION);\r
+ }\r
+ else if (strcmp(view.GetViewId(), BUTTONCALULI) == 0)\r
+ {\r
+ TraingSetView::GetInstance()->ChangeView(SET_VIEW, SET_CALORIES);\r
+ }\r
+ else if (strcmp(view.GetViewId(), BUTTONDISTANCE) == 0)\r
+ {\r
+ TraingSetView::GetInstance()->ChangeView(SET_VIEW, SET_DISTANCE);\r
+ }\r
+ else if (strcmp(view.GetViewId(), BUTTONSTEPS) == 0)\r
+ {\r
+ TraingSetView::GetInstance()->ChangeView(SET_VIEW, SET_STEPS);\r
+ }\r
+ break;\r
+ case SET_DURATION:\r
+ case SET_CALORIES:\r
+ case SET_DISTANCE:\r
+ case SET_STEPS:\r
+ if (strcmp(view.GetViewId(), GetButtonIdFromCard(CardID)) == 0)\r
+ {\r
+ int tag = GetTagFromCard(CardID);\r
+ TraingModel::GetInstance()->SetSportTag(GetExerciseTagFromCard(CardID), tag);\r
+ NativeAbility::GetInstance().EnterSlice(VIEW_TRAININGCRAD);\r
+ ExerciseClass type = TraingModel::GetInstance()->GetSportType();\r
+ TraingCardPresenter::GetInstance()->OpenSensor(type);\r
+ }\r
+ break;\r
+ default:\r
+ break;\r
}\r
- if (strcmp(view.GetViewId(), BUTTONCALULI) == 0)\r
+ return true;\r
+ }\r
+\r
+ /**\r
+ * @brief 获取按键ID\r
+ */\r
+ const char *TraingSetPresenter::GetButtonIdFromCard(int cardID)\r
+ {\r
+ PRINT("GetButtonIdFromCard:%d\r\n", cardID);\r
+ switch (cardID)\r
{\r
- TraingSetView::GetInstance()->ChangeView(SET_VIEW, SET_CALORIES);\r
+ case SET_DURATION:\r
+ return BUTTONTIMEOK;\r
+ case SET_CALORIES:\r
+ return BUTTONCALULIOK;\r
+ case SET_DISTANCE:\r
+ return BUTTONMILEOK;\r
+ case SET_STEPS:\r
+ return BUTTONSTEPOK;\r
+ default:\r
+ return "";\r
}\r
- if (strcmp(view.GetViewId(), BUTTONDISTANCE) == 0)\r
+ }\r
+\r
+ /**\r
+ * @brief 获取设置目标类型\r
+ */\r
+ ExerciseTag TraingSetPresenter::GetExerciseTagFromCard(int cardID)\r
+ {\r
+ PRINT("GetExerciseTagFromCard:%d\r\n", cardID);\r
+ switch (cardID)\r
{\r
- TraingSetView::GetInstance()->ChangeView(SET_VIEW, SET_DISTANCE);\r
+ case SET_DURATION:\r
+ return ExerciseTag::Duration;\r
+ case SET_CALORIES:\r
+ return ExerciseTag::Calories;\r
+ case SET_DISTANCE:\r
+ return ExerciseTag::Distance;\r
+ case SET_STEPS:\r
+ return ExerciseTag::STEP;\r
+ default:\r
+ return ExerciseTag::UNKNOW;\r
}\r
- if (strcmp(view.GetViewId(), BUTTONSTEPS) == 0)\r
+ }\r
+\r
+ /**\r
+ * @brief 获取设置目标\r
+ */\r
+ int TraingSetPresenter::GetTagFromCard(int cardID)\r
+ {\r
+ PRINT("GetTagFromCard:%d\r\n", cardID);\r
+ switch (cardID)\r
{\r
- TraingSetView::GetInstance()->ChangeView(SET_VIEW, SET_STEPS);\r
+ case SET_DURATION:\r
+ return TrainingSetTimeView::GetInstance()->GetTimePicker()->GetSelected();\r
+ case SET_CALORIES:\r
+ return TrainingSetCaluliView::GetInstance()->GetCaluliPicker()->GetSelected();\r
+ case SET_DISTANCE:\r
+ return TrainingSetMileView::GetInstance()->GetMilePicker()->GetSelected();\r
+ case SET_STEPS:\r
+ return TrainingSetStepView::GetInstance()->GetSetpPicker()->GetSelected();\r
+ default:\r
+ return 0;\r
}\r
- return true;\r
}\r
+\r
}\r
imagicon4 = nullptr;\r
}\r
\r
+ if (setcalories != nullptr)\r
+ {\r
+ delete setcalories;\r
+ setcalories = nullptr;\r
+ }\r
+ if (settime != nullptr)\r
+ {\r
+ delete settime;\r
+ settime = nullptr;\r
+ }\r
+ if (setmile != nullptr)\r
+ {\r
+ delete setmile;\r
+ setmile = nullptr;\r
+ }\r
+ if (setstep != nullptr)\r
+ {\r
+ delete setstep;\r
+ setstep = nullptr;\r
+ }\r
+\r
// 删除容器\r
if (SetTagScrollView[SET_VIEW] != nullptr)\r
{\r
/***
* @Date: 2024-04-18 10:57:22
* @LastEditors: Caisking 3449750381@qq.com
- * @LastEditTime: 2024-04-18 14:28:29
+ * @LastEditTime: 2024-04-18 16:35:33
+ * @FilePath: /XTS_FD230/FD230/code/sdk/application/wearable/fd230app/nativeui/traing/src/TrainingSetCaluliView.cpp
+ */
+/***
+ * @Date: 2024-04-18 10:57:22
+ * @LastEditors: Caisking 3449750381@qq.com
+ * @LastEditTime: 2024-04-18 16:07:43
* @FilePath: /XTS_FD230/FD230/code/sdk/application/wearable/fd230app/nativeui/traing/src/TrainingSetCaluliView.cpp
*/
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "TrainingSetCaluliView::TrainingSetCaluliView");
labeltitle_ = nullptr;
buttonok_ = nullptr;
- calPicker_ = nullptr;
+ Picker_ = nullptr;
SetCaluliScrollView = nullptr;
g_pTraingSetCaluliView = this;
}
}
// 删除滚动选择器
- if (calPicker_ != nullptr)
+ if (Picker_ != nullptr)
{
- SetCaluliScrollView->Remove(calPicker_);
- delete calPicker_;
- calPicker_ = nullptr;
+ SetCaluliScrollView->Remove(Picker_);
+ delete Picker_;
+ Picker_ = nullptr;
}
// 删除容器
SetCaluliScrollView->Add(labeltitle_);
// 初始化UIPicker
- InitUIPicker(calPicker_, 43, 106, 380, 240, "uiPicker");
- SetCaluliScrollView->Add(calPicker_);
+ InitUIPicker(Picker_, 43, 106, 380, 240, "uiPicker");
+ SetCaluliScrollView->Add(Picker_);
// 初始化Button
TraingModel::GetInstance()->InitButtonExt(buttonok_, 0, 366, 466, 100, BUTTONCALULIOK, STR_OK, 30);
// Set additional property
return SetCaluliScrollView;
}
+ UIPicker *TrainingSetCaluliView ::GetCaluliPicker()
+ {
+ return Picker_;
+ }
}
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "TrainingSetMileView::TrainingSetMileView");
labeltitle_ = nullptr;
buttonok_ = nullptr;
- calPicker_ = nullptr;
+ Picker_ = nullptr;
SetMileScrollView = nullptr;
g_pTraingSetMileView = this;
}
}
// 删除滚动选择器
- if (calPicker_ != nullptr)
+ if (Picker_ != nullptr)
{
- SetMileScrollView->Remove(calPicker_);
- delete calPicker_;
- calPicker_ = nullptr;
+ SetMileScrollView->Remove(Picker_);
+ delete Picker_;
+ Picker_ = nullptr;
}
// 删除容器
SetMileScrollView->Add(labeltitle_);
// 初始化UIPicker
- InitUIPicker(calPicker_, 43, 106, 380, 240, "uiPicker");
- SetMileScrollView->Add(calPicker_);
+ InitUIPicker(Picker_, 43, 106, 380, 240, "uiPicker");
+ SetMileScrollView->Add(Picker_);
// 初始化Button
- TraingModel::GetInstance()->InitButtonExt(buttonok_, 0, 366, 466, 100, BUTTONMileOK, STR_OK, 30);
+ TraingModel::GetInstance()->InitButtonExt(buttonok_, 0, 366, 466, 100, BUTTONMILEOK, STR_OK, 30);
// Set additional property
buttonok_->SetImageSrc(BUTTONOK_IMAGE, BUTTONOK_IMAGE);
buttonok_->SetOnClickListener(static_cast<UIView::OnClickListener *>(TraingSetPresenter::GetInstance()));
return SetMileScrollView;
}
+ UIPicker *TrainingSetMileView ::GetMilePicker()
+ {
+ return Picker_;
+ }
}
-/***
+/***
* @Date: 2024-04-18 10:57:22
* @LastEditors: Caisking 3449750381@qq.com
* @LastEditTime: 2024-04-18 15:50:37
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "TrainingSetStepView::TrainingSetStepView");
labeltitle_ = nullptr;
buttonok_ = nullptr;
- calPicker_ = nullptr;
+ Picker_ = nullptr;
SetStepScrollView = nullptr;
g_pTraingSetStepView = this;
}
}
// 删除滚动选择器
- if (calPicker_ != nullptr)
+ if (Picker_ != nullptr)
{
- SetStepScrollView->Remove(calPicker_);
- delete calPicker_;
- calPicker_ = nullptr;
+ SetStepScrollView->Remove(Picker_);
+ delete Picker_;
+ Picker_ = nullptr;
}
// 删除容器
SetStepScrollView->Add(labeltitle_);
// 初始化UIPicker
- InitUIPicker(calPicker_, 43, 106, 380, 240, "uiPicker");
- SetStepScrollView->Add(calPicker_);
+ InitUIPicker(Picker_, 43, 106, 380, 240, "uiPicker");
+ SetStepScrollView->Add(Picker_);
// 初始化Button
- TraingModel::GetInstance()->InitButtonExt(buttonok_, 0, 366, 466, 100, BUTTONStepOK, STR_OK, 30);
+ TraingModel::GetInstance()->InitButtonExt(buttonok_, 0, 366, 466, 100, BUTTONSTEPOK, STR_OK, 30);
// Set additional property
buttonok_->SetImageSrc(BUTTONOK_IMAGE, BUTTONOK_IMAGE);
buttonok_->SetOnClickListener(static_cast<UIView::OnClickListener *>(TraingSetPresenter::GetInstance()));
return SetStepScrollView;
}
+ UIPicker *TrainingSetStepView ::GetSetpPicker()
+ {
+ return Picker_;
+ }
}
-/***
+/***
* @Date: 2024-04-18 10:57:22
* @LastEditors: Caisking 3449750381@qq.com
* @LastEditTime: 2024-04-18 14:24:30
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "TrainingSetTimeView::TrainingSetTimeView");
labeltitle_ = nullptr;
buttonok_ = nullptr;
- calPicker_ = nullptr;
+ Picker_ = nullptr;
SetTimeScrollView = nullptr;
g_pTraingSetTimeView = this;
}
}
// 删除滚动选择器
- if (calPicker_ != nullptr)
+ if (Picker_ != nullptr)
{
- SetTimeScrollView->Remove(calPicker_);
- delete calPicker_;
- calPicker_ = nullptr;
+ SetTimeScrollView->Remove(Picker_);
+ delete Picker_;
+ Picker_ = nullptr;
}
// 删除容器
SetTimeScrollView->Add(labeltitle_);
// 初始化UIPicker
- InitUIPicker(calPicker_, 43, 106, 380, 240, "uiPicker");
- SetTimeScrollView->Add(calPicker_);
+ InitUIPicker(Picker_, 43, 106, 380, 240, "uiPicker");
+ SetTimeScrollView->Add(Picker_);
// 初始化Button
TraingModel::GetInstance()->InitButtonExt(buttonok_, 0, 366, 466, 100, BUTTONTIMEOK, STR_OK, 30);
// Set additional property
return SetTimeScrollView;
}
+ UIPicker *TrainingSetTimeView ::GetTimePicker()
+ {
+ return Picker_;
+ }
}
return true;\r
}\r
\r
+#if 0\r
bool TraingCardPresenter::send_sport_cmd(uint32 cmd)\r
{\r
if (cmd > MAXSPORTID || cmd < 0)\r
OHOS::TraingCardPresenter::GetInstance()->OpenSensor(exerciseType);\r
return true;\r
}\r
+#endif\r
}\r
\r
TraingCardView::TraingCardView()\r
{\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "TraingCardView::TraingCardView");\r
g_pTraingCardView = this;\r
- // 开启计时器\r
- InitTimer();\r
- // 设置运动状态为开始\r
- TraingModel::GetInstance()->SetSportState(ExerciseState::Start);\r
+ InitTimer(); // 开启计时器\r
+ TraingModel::GetInstance()->SetSportState(ExerciseState::Start); // 设置运动状态为开始\r
TraingModel::GetInstance()->SetTimestamp();\r
}\r
\r
{\r
DeInit();\r
g_pTraingCardView = nullptr;\r
- // 关闭计时器\r
- DisableTimer();\r
- // 设置运动状态为结束\r
- TraingModel::GetInstance()->SetSportState(ExerciseState::End);\r
+ DisableTimer(); // 关闭计时器\r
+ TraingModel::GetInstance()->SetSportState(ExerciseState::End); // 设置运动状态为结束\r
TraingModel::GetInstance()->SetTimestamp();\r
}\r
\r