${CMAKE_CURRENT_SOURCE_DIR}/nativeui/traing/training_list_more/src/TraingMoreView.cpp
${CMAKE_CURRENT_SOURCE_DIR}/nativeui/traing/training_list_more/src/TraingMorePresenter.cpp
+ ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/traing/training_list_more/src/TraingMoreAdapter.cpp
+ ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/traing/training_list_more/src/TraingMoreItemView.cpp
+ ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/traing/training_list_more/src/TraingMoreModel.cpp
#saveele
${CMAKE_CURRENT_SOURCE_DIR}/nativeui/saveele/src/SaveEleModel.cpp
#include "ability_manager.h"
#include "securec.h"
#include "config/include/ConfigModel.h"
+#include "traing/include/TraingModel.h"
namespace OHOS
{
ApplistPresenter::ApplistPresenter()
STR_OTHER_STILL,Still\r
STR_OTHER_TILTING,Tilting\r
STR_OTHER_WHEELCHAIR,Wheelchair\r
+STR_EXERCISE_LIST,Exercise\r
+STR_BALL_LIST,Ball\r
+STR_WATER_LIST,Water\r
+STR_DANCING_LIST,Dance\r
+STR_EXTREME_LIST,Extreme\r
+STR_ICE_LIST,Ice\r
+STR_RECREATIONAL_LIST,Recreational\r
+STR_OTHER_LIST,Other\r
+STR_DANCING_TITLE,Dance Sport\r
+STR_BALL_LIST_TITLE,Ball Sport\r
+STR_OTHER_TITLE,Other Sport\r
+STR_EXERCISE_TITLE,Exercise Sport\r
+STR_TRAINING,Training
\ No newline at end of file
STR_OTHER_MEDITATION,冥想\r
STR_OTHER_STILL,静止\r
STR_OTHER_TILTING,倾斜\r
-STR_OTHER_WHEELCHAIR,坐轮椅移动
\ No newline at end of file
+STR_OTHER_WHEELCHAIR,坐轮椅移动\r
+STR_EXERCISE_LIST,健身类\r
+STR_BALL_LIST,球类\r
+STR_WATER_LIST,水上运动\r
+STR_DANCING_LIST,舞蹈类\r
+STR_EXTREME_LIST,极限运动\r
+STR_ICE_LIST,冰上运动\r
+STR_RECREATIONAL_LIST,休闲运动\r
+STR_OTHER_LIST,其他\r
+STR_DANCING_TITLE,舞蹈运动\r
+STR_BALL_LIST_TITLE,球类运动\r
+STR_OTHER_TITLE,其他运动\r
+STR_EXERCISE_TITLE,健身运动\r
+STR_TRAINING,训练
\ No newline at end of file
<lanstr id="STR_OTHER_STILL" value="Still"/>
<lanstr id="STR_OTHER_TILTING" value="Tilting"/>
<lanstr id="STR_OTHER_WHEELCHAIR" value="Wheelchair"/>
+ <lanstr id="STR_EXERCISE_LIST" value="Exercise"/>
+ <lanstr id="STR_BALL_LIST" value="Ball"/>
+ <lanstr id="STR_WATER_LIST" value="Water"/>
+ <lanstr id="STR_DANCING_LIST" value="Dance"/>
+ <lanstr id="STR_EXTREME_LIST" value="Extreme"/>
+ <lanstr id="STR_ICE_LIST" value="Ice"/>
+ <lanstr id="STR_RECREATIONAL_LIST" value="Recreational"/>
+ <lanstr id="STR_OTHER_LIST" value="Other"/>
+ <lanstr id="STR_DANCING_TITLE" value="Dance Sport"/>
+ <lanstr id="STR_BALL_LIST_TITLE" value="Ball Sport"/>
+ <lanstr id="STR_OTHER_TITLE" value="Other Sport"/>
+ <lanstr id="STR_EXERCISE_TITLE" value="Exercise Sport"/>
+ <lanstr id="STR_TRAINING" value="Training"/>
</language>
<lanstr id="STR_OTHER_STILL" value="静止"/>
<lanstr id="STR_OTHER_TILTING" value="倾斜"/>
<lanstr id="STR_OTHER_WHEELCHAIR" value="坐轮椅移动"/>
+ <lanstr id="STR_EXERCISE_LIST" value="健身类"/>
+ <lanstr id="STR_BALL_LIST" value="球类"/>
+ <lanstr id="STR_WATER_LIST" value="水上运动"/>
+ <lanstr id="STR_DANCING_LIST" value="舞蹈类"/>
+ <lanstr id="STR_EXTREME_LIST" value="极限运动"/>
+ <lanstr id="STR_ICE_LIST" value="冰上运动"/>
+ <lanstr id="STR_RECREATIONAL_LIST" value="休闲运动"/>
+ <lanstr id="STR_OTHER_LIST" value="其他"/>
+ <lanstr id="STR_DANCING_TITLE" value="舞蹈运动"/>
+ <lanstr id="STR_BALL_LIST_TITLE" value="球类运动"/>
+ <lanstr id="STR_OTHER_TITLE" value="其他运动"/>
+ <lanstr id="STR_EXERCISE_TITLE" value="健身运动"/>
+ <lanstr id="STR_TRAINING" value="训练"/>
</language>
-/*\r
-* Copyright (c) xxxxxxxx Technologies Co., Ltd. 2021-2021. All rights reserved.\r
-* Description: language\r
-* Author: Graphic develop team\r
-* Create: 2021-07-06\r
-*/\r
-\r
-#ifndef UI_RESOURCE_STRING_H\r
-#define UI_RESOURCE_STRING_H\r
-#include <cstdint>\r
-namespace OHOS {\r
-enum UIResourceTextId : uint16_t {\r
+/*
+* Copyright (c) xxxxxxxx Technologies Co., Ltd. 2021-2021. All rights reserved.
+* Description: language
+* Author: Graphic develop team
+* Create: 2021-07-06
+*/
+
+#ifndef UI_RESOURCE_STRING_H
+#define UI_RESOURCE_STRING_H
+#include <cstdint>
+namespace OHOS {
+enum UIResourceTextId : uint16_t {
STR_EXERCISE_GENERAL = 0,\r
STR_EXERCISE_FREETRAINING = 1,\r
STR_EXERCISE_RESISTANCETRAINING = 2,\r
STR_OTHER_STILL = 172,\r
STR_OTHER_TILTING = 173,\r
STR_OTHER_WHEELCHAIR = 174,\r
- STR_MAX_ID = 175,\r
+ STR_EXERCISE_LIST = 175,\r
+ STR_BALL_LIST = 176,\r
+ STR_WATER_LIST = 177,\r
+ STR_DANCING_LIST = 178,\r
+ STR_EXTREME_LIST = 179,\r
+ STR_ICE_LIST = 180,\r
+ STR_RECREATIONAL_LIST = 181,\r
+ STR_OTHER_LIST = 182,\r
+ STR_DANCING_TITLE = 183,\r
+ STR_BALL_LIST_TITLE = 184,\r
+ STR_OTHER_TITLE = 185,\r
+ STR_EXERCISE_TITLE = 186,\r
+ STR_TRAINING = 187,\r
+ STR_MAX_ID = 188,\r
}; // UIResourceTextId\r
-\r
-enum FontLanguageId : uint8_t {\r
+
+enum FontLanguageId : uint8_t {
LANGUAGE_ID_ZH,\r
LANGUAGE_ID_EN,\r
LANGUAGE_ID_MAX\r
void UpdatePower();
private:
- uint8_t power_ = 0;
+ uint8_t power_ = 101;
};
}
#endif
+/***
+ * @Author: Caisking 3449750381@qq.com
+ * @Date: 2024-02-21 10:06:53
+ * @LastEditors: Caisking 3449750381@qq.com
+ * @LastEditTime: 2024-03-30 09:25:17
+ * @FilePath: /sdk/application/wearable/fd230app/nativeui/main/src/dial/DialModelPower.cpp
+ * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE101
+ */
/*
* Copyright (c) CompanyNameMagicTag 2023. All rights reserved.
* Description: DialModelPower
{
(void)type;
#if 1
- if (power_ == 0)
+ if (power_ == 101)
{
UpdatePower();
return true;
-/***
- * @Author: Caisking 3449750381@qq.com
- * @Date: 2024-03-22 14:43:06
- * @LastEditors: Caisking 3449750381@qq.com
- * @LastEditTime: 2024-03-26 16:43:39
- * @FilePath: /sdk/application/wearable/fd230app/nativeui/traing/training_card/src/Training_CardPresenter.cpp
- * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
- */
#include "traing/training_card/include/Training_CardPresenter.h"
#include "traing/training_card/include/Training_CardView.h"
#include "AppViewIDs.h"
#include "components/ui_label_ext.h"
-#include"language/font/ui_resource_string.h"
+#include "language/font/ui_resource_string.h"
#include "NativeAbility.h"
#include "components/ui_label_ext.h"
-#include"language/font/ui_resource_string.h"
+#include "language/font/ui_resource_string.h"
#include "UiConfig.h"
#include "wearable_log.h"
+#include "traing/include/TraingModel.h"
+
namespace OHOS
{
{
NativeAbility::GetInstance().ChangeSlice(VIEW_TRAININGMORE);
}
+ // 标记进入界面是主界面
+ // TraingModel::GetInstance()->SetInterface(VIEW_MAIN);
+
return true;
}
} // namespace OHOS
\ No newline at end of file
-/***
+/***
* @Author: Caisking 3449750381@qq.com
* @Date: 2024-03-26 09:46:17
* @LastEditors: Caisking 3449750381@qq.com
{
UNUSED(event);
TraingAquaticItemView *itemView = static_cast<TraingAquaticItemView *>(&view);
+ // 传递训练项目
AppViewId viewId = itemView->GetTraingAquaticIndex();
UIResourceTextId sportid = itemView->GetTraingAquaticId();
TraingModel::GetInstance()->SetSportEvent(sportid);
/* -------------------------------------------------------------------------- */
// 初始化Lable
- TraingModel::GetInstance()->InitLabel(title, 173, 52, 200, 60, "label1", "冰上运动", DEFAULT_VECTOR_FONT_FILENAME, 30);
+ TraingModel::GetInstance()->InitLabelExt(title, 155, 52, 200, 60, "label1", STR_WATER_LIST, DEFAULT_VECTOR_FONT_FILENAME, 30);
scrollView->Add(title);
// UIList 的适配器
p_TraingAquaticListAdapter = new TraingAquaticAdapter();
-/***
- * @Author: Caisking 3449750381@qq.com
- * @Date: 2024-03-19 17:37:19
- * @LastEditors: Caisking 3449750381@qq.com
- * @LastEditTime: 2024-03-26 19:51:06
- * @FilePath: /sdk/application/wearable/fd230app/nativeui/traing/training_list_ball/src/TraingBallPresenter.cpp
- * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
- */
-/***
- * @Author: Caisking 3449750381@qq.com
- * @Date: 2024-03-19 17:37:19
- * @LastEditors: Caisking 3449750381@qq.com
- * @LastEditTime: 2024-03-26 14:23:32
- * @FilePath: /sdk/application/wearable/fd230app/nativeui/traing/src/TraingBallPresenter.cpp
- * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
- */
+
#include "AppViewIDs.h"
#include "components/ui_label_ext.h"
{
UNUSED(event);
TraingBallItemView *itemView = static_cast<TraingBallItemView *>(&view);
+ //传递训练项目
AppViewId viewId = itemView->GetTraingBallIndex();
UIResourceTextId sportid = itemView->GetTraingBallId();
TraingModel::GetInstance()->SetSportEvent(sportid);
/* -------------------------------------------------------------------------- */
// 初始化Lable
- TraingModel::GetInstance()->InitLabel(title, 173, 52, 200, 60, "label1", "球类运动", DEFAULT_VECTOR_FONT_FILENAME, 30);
+ TraingModel::GetInstance()->InitLabelExt(title, 155, 52, 200, 60, "label1", STR_BALL_LIST_TITLE, DEFAULT_VECTOR_FONT_FILENAME, 30);
scrollView->Add(title);
// UIList 的适配器
p_TraingBallListAdapter = new TraingBallAdapter();
-/***
- * @Author: Caisking 3449750381@qq.com
- * @Date: 2024-03-19 17:37:19
- * @LastEditors: Caisking 3449750381@qq.com
- * @LastEditTime: 2024-03-26 19:51:06
- * @FilePath: /sdk/application/wearable/fd230app/nativeui/traing/training_list_dance/src/TraingDancePresenter.cpp
- * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
- */
-/***
- * @Author: Caisking 3449750381@qq.com
- * @Date: 2024-03-19 17:37:19
- * @LastEditors: Caisking 3449750381@qq.com
- * @LastEditTime: 2024-03-26 14:23:32
- * @FilePath: /sdk/application/wearable/fd230app/nativeui/traing/src/TraingDancePresenter.cpp
- * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
- */
+
#include "AppViewIDs.h"
#include "components/ui_label_ext.h"
-#include"language/font/ui_resource_string.h"
+#include "language/font/ui_resource_string.h"
#include "NativeAbility.h"
#include <iostream>
#include "traing/training_list_dance/include/TraingDanceItemView.h"
#include "traing/training_list_dance/include/TraingDancePresenter.h"
#include "traing/training_list_dance/include/TraingDanceView.h"
-// #include "TraingDanceView.h"
+#include "traing/include/TraingModel.h"
namespace OHOS
{
bool TraingDancePresenter::OnClick(UIView &view, const ClickEvent &event)
{
UNUSED(event);
+ // 传递训练项目
TraingDanceItemView *itemView = static_cast<TraingDanceItemView *>(&view);
AppViewId viewId = itemView->GetTraingDanceIndex();
+ UIResourceTextId sportid = itemView->GetTraingDanceId();
+ TraingModel::GetInstance()->SetSportEvent(sportid);
WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "ApplistPresenter::OnClick viewid = %d\n", viewId);
if (viewId < VIEW_MAX_INTER_APP)
{
/* -------------------------------------------------------------------------- */
// 初始化Lable
- TraingModel::GetInstance()->InitLabel(title, 173, 52, 200, 60, "label1", "舞蹈运动", DEFAULT_VECTOR_FONT_FILENAME, 30);
+ TraingModel::GetInstance()->InitLabelExt(title, 155, 52, 200, 60, "label1",STR_DANCING_TITLE, DEFAULT_VECTOR_FONT_FILENAME, 30);
scrollView->Add(title);
// UIList 的适配器
p_TraingDanceListAdapter = new TraingDanceAdapter();
/* -------------------------------------------------------------------------- */
// 初始化Lable
- TraingModel::GetInstance()->InitLabel(title, 173, 52, 200, 60, "label1", "健身运动", DEFAULT_VECTOR_FONT_FILENAME, 30);
+ TraingModel::GetInstance()->InitLabelExt(title, 155, 52, 200, 60, "label1", STR_EXERCISE_TITLE, DEFAULT_VECTOR_FONT_FILENAME, 30);
scrollView->Add(title);
// UIList 的适配器
p_TraingFitnessListAdapter = new TraingFitnessAdapter();
+++ /dev/null
-
-
-#ifndef TraingFitness_ITEM_VIEW_H
-#define TraingFitness_ITEM_VIEW_H
-
-#include "components/ui_label.h"
-#include "components/ui_label_ext.h"
-#include "language/font/ui_resource_string.h"
-#include "components/ui_view_group.h"
-#include "components/ui_checkbox.h"
-#include "components/ui_image_view.h"
-#include "traing/training_list_fitness/include/TraingFitnessAdapter.h"
-#include "components/ui_label_button.h"
-#include "AppViewIDs.h"
-#include "ohos_types.h"
-
-namespace OHOS
-{
- class TraingFitnessItemView : public UIViewGroup
- {
- public:
- explicit TraingFitnessItemView();
- virtual ~TraingFitnessItemView();
- virtual void SetItemInfo(const TraingFitnessItem itemInfo);
- virtual void SetUpChild();
- AppViewId GetTraingFitnessIndex();
- UIResourceTextId GetTraingFitnessId();
- private:
- TraingFitnessItemView(const TraingFitnessItemView &);
- UIImageView sbackground; // 背景
- UIImageView sicon; // 箭头
- UILabelExt sLabel; // 标签
- TraingFitnessItem sItemInfo = {VIEW_INVALID, STR_EXERCISE_GENERAL};
- };
-
-}
-#endif
\ No newline at end of file
+/***
+ * @Author: Caisking 3449750381@qq.com
+ * @Date: 2024-03-27 11:09:52
+ * @LastEditors: Caisking 3449750381@qq.com
+ * @LastEditTime: 2024-03-30 11:26:25
+ * @FilePath: /sdk/application/wearable/fd230app/nativeui/traing/training_list_ice/include/TraingIceAdapter.h
+ * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
+ */
/***
* @Author: Caisking 3449750381@qq.com
* @Date: 2024-03-27 11:09:52
#include "components/ui_label_button.h"
#include "AppViewIDs.h"
#include "components/ui_label_ext.h"
-#include"language/font/ui_resource_string.h"
+#include "language/font/ui_resource_string.h"
#include "ohos_types.h"
namespace OHOS
private:
TraingIceItemView(const TraingIceItemView &);
UIImageView sbackground; // 背景
- UIImageView sicon; // 箭头
- UILabelExt sLabel; // 标签
+ UIImageView sicon; // 箭头
+ UILabelExt sLabel; // 标签
TraingIceItem sItemInfo = {VIEW_INVALID, STR_ICE_SPORTS};
};
-/***
- * @Author: Caisking 3449750381@qq.com
- * @Date: 2024-03-19 17:37:19
- * @LastEditors: Caisking 3449750381@qq.com
- * @LastEditTime: 2024-03-26 19:51:06
- * @FilePath: /sdk/application/wearable/fd230app/nativeui/traing/training_list_ice/src/TraingIcePresenter.cpp
- * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
- */
-/***
- * @Author: Caisking 3449750381@qq.com
- * @Date: 2024-03-19 17:37:19
- * @LastEditors: Caisking 3449750381@qq.com
- * @LastEditTime: 2024-03-26 14:23:32
- * @FilePath: /sdk/application/wearable/fd230app/nativeui/traing/src/TraingIcePresenter.cpp
- * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
- */
+
#include "AppViewIDs.h"
#include "components/ui_label_ext.h"
-#include"language/font/ui_resource_string.h"
+#include "language/font/ui_resource_string.h"
#include "NativeAbility.h"
#include <iostream>
#include "traing/training_list_ice/include/TraingIceItemView.h"
#include "traing/training_list_ice/include/TraingIcePresenter.h"
#include "traing/training_list_ice/include/TraingIceView.h"
-// #include "TraingIceView.h"
+#include "traing/include/TraingModel.h"
namespace OHOS
{
if (event.GetDragDirection() == DragEvent::DIRECTION_LEFT_TO_RIGHT)
{
NativeAbility::GetInstance().ChangeSlice(VIEW_TRAININGMORE);
-
}
UNUSED(view);
return true;
UNUSED(event);
TraingIceItemView *itemView = static_cast<TraingIceItemView *>(&view);
AppViewId viewId = itemView->GetTraingIceIndex();
+ UIResourceTextId sportid = itemView->GetTraingIceId();
+ TraingModel::GetInstance()->SetSportEvent(sportid);
WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "ApplistPresenter::OnClick viewid = %d\n", viewId);
if (viewId < VIEW_MAX_INTER_APP)
{
/* -------------------------------------------------------------------------- */
// 初始化Lable
- TraingModel::GetInstance()->InitLabel(title, 173, 52, 200, 60, "label1", "冰上运动", DEFAULT_VECTOR_FONT_FILENAME, 30);
+ TraingModel::GetInstance()->InitLabelExt(title, 155, 52, 200, 60, "label1", STR_ICE_LIST, DEFAULT_VECTOR_FONT_FILENAME, 30);
scrollView->Add(title);
// UIList 的适配器
p_TraingIceListAdapter = new TraingIceAdapter();
-/***\r
- * @Author: Caisking 3449750381@qq.com\r
- * @Date: 2024-03-19 17:37:19\r
- * @LastEditors: Caisking 3449750381@qq.com\r
- * @LastEditTime: 2024-03-26 19:51:06\r
- * @FilePath: /sdk/application/wearable/fd230app/nativeui/traing/training_list_limit/src/TraingLimitPresenter.cpp\r
- * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE\r
- */\r
-/***\r
- * @Author: Caisking 3449750381@qq.com\r
- * @Date: 2024-03-19 17:37:19\r
- * @LastEditors: Caisking 3449750381@qq.com\r
- * @LastEditTime: 2024-03-26 14:23:32\r
- * @FilePath: /sdk/application/wearable/fd230app/nativeui/traing/src/TraingLimitPresenter.cpp\r
- * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE\r
- */\r
\r
#include "AppViewIDs.h"\r
#include "components/ui_label_ext.h"\r
}\r
scrollView->SetPosition(0, 0, HORIZONTAL_RESOLUTION, VERTICAL_RESOLUTION);\r
// scrollView->SetStyle(STYLE_BACKGROUND_OPA, 0xff);\r
- scrollView->SetScrollBlankSize(52);\r
+ scrollView->SetScrollBlankSize(52);\r
// scrollView->SetReboundSize(100);\r
scrollView->SetTouchable(true);\r
scrollView->SetDraggable(true);\r
\r
/* -------------------------------------------------------------------------- */\r
// 初始化Lable\r
- TraingModel::GetInstance()->InitLabel(title, 173, 52, 200, 60, "label1", "极限运动", DEFAULT_VECTOR_FONT_FILENAME, 30);\r
+ TraingModel::GetInstance()->InitLabelExt(title, 155, 52, 200, 60, "label1", STR_EXTREME_LIST, DEFAULT_VECTOR_FONT_FILENAME, 30);\r
scrollView->Add(title);\r
// UIList 的适配器\r
p_TraingLimitListAdapter = new TraingLimitAdapter();\r
--- /dev/null
+
+#ifndef TraingMore_ADAPTER_H
+#define TraingMore_ADAPTER_H
+#include <list>
+#include <string>
+#include "components/ui_list.h"
+#include "components/abstract_adapter.h"
+#include "components/ui_label.h"
+#include "components/ui_label_ext.h"
+#include "components/ui_checkbox.h"
+#include "AppViewIDs.h"
+#include "components/ui_label_ext.h"
+#include "language/font/ui_resource_string.h"
+
+// 列表的适配器
+namespace OHOS
+{
+
+ typedef struct
+ {
+ AppViewId id;
+ UIResourceTextId labelid; // 标签
+ const char *logo;
+ } TraingMoreItem;
+
+ class TraingMoreAdapter : public AbstractAdapter
+ {
+ public:
+ explicit TraingMoreAdapter();
+ virtual ~TraingMoreAdapter();
+
+ void SetData(std::list<TraingMoreItem> &data);
+
+ virtual uint16_t GetCount(void) override;
+
+ virtual UIView *GetView(UIView *inView, int16_t index) override;
+
+ virtual void AddItem(const TraingMoreItem &item);
+
+ void SetItemClickListener(UIView::OnClickListener *itemclicklistener)
+ {
+ itemClickListener = itemclicklistener;
+ }
+
+ private:
+ std::list<TraingMoreItem> listData;
+ UIView::OnClickListener *itemClickListener{nullptr};
+ };
+}
+
+#endif
\ No newline at end of file
--- /dev/null
+/***
+ * @Author: Caisking 3449750381@qq.com
+ * @Date: 2024-03-27 11:12:32
+ * @LastEditors: Caisking 3449750381@qq.com
+ * @LastEditTime: 2024-03-30 11:05:58
+ * @FilePath: /sdk/application/wearable/fd230app/nativeui/traing/training_list_more/include/TraingMoreItemView.h
+ * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
+ */
+
+#ifndef TraingMore_ITEM_VIEW_H
+#define TraingMore_ITEM_VIEW_H
+
+#include "components/ui_label.h"
+#include "components/ui_label_ext.h"
+#include "components/ui_view_group.h"
+#include "components/ui_checkbox.h"
+#include "components/ui_image_view.h"
+#include "traing/training_list_more/include/TraingMoreAdapter.h"
+#include "components/ui_label_button.h"
+#include "AppViewIDs.h"
+#include "components/ui_label_ext.h"
+#include "language/font/ui_resource_string.h"
+#include "ohos_types.h"
+
+namespace OHOS
+{
+ class TraingMoreItemView : public UIViewGroup
+ {
+ public:
+ explicit TraingMoreItemView();
+ virtual ~TraingMoreItemView();
+ virtual void SetItemInfo(const TraingMoreItem itemInfo);
+ virtual void SetUpChild();
+ AppViewId GetTraingMoreIndex();
+ UIResourceTextId GetTraingMoreId();
+
+ private:
+ TraingMoreItemView(const TraingMoreItemView &);
+ UIImageView sbackground; // 背景
+ UIImageView sicon; // 箭头
+ UILabelExt sLabel; // 标签
+ UIImageView slogo; // 图标
+ TraingMoreItem sItemInfo = {VIEW_INVALID, STR_ICE_SPORTS,nullptr};
+ };
+
+}
+#endif
\ No newline at end of file
--- /dev/null
+
+#ifndef TraingMore_MODEL_H
+#define TraingMore_MODEL_H
+
+#include <cstdint>
+#include <map>
+#include "AppViewIDs.h"
+#include "components/ui_label_ext.h"
+#include "language/font/ui_resource_string.h"
+#include "components/ui_label_ext.h"
+#include "language/font/ui_resource_string.h"
+#include "UiConfig.h"
+#include "TraingMorePresenter.h"
+#include "traing/training_list_more/include/TraingMoreAdapter.h"
+
+namespace OHOS
+{
+ class TraingMoreModel
+ {
+ public:
+ static TraingMoreModel &GetInstance(void);
+ void InitTraingMoreListItem();
+ const TraingMoreItem *GetTraingMorelistItems() const;
+ uint8_t GetTraingMoreListNum() const;
+ // const std::map<TraingMoreIndex, AppViewId> &GetTraingMoreIdToViewId() const;
+
+ private:
+ TraingMoreModel();
+ TraingMoreModel(const TraingMoreModel &);
+ TraingMoreModel &operator=(const TraingMoreModel &);
+ virtual ~TraingMoreModel();
+ static const uint16_t TraingMoreListMaxNum = 8;
+ TraingMoreItem TraingMores[TraingMoreListMaxNum] = {VIEW_INVALID, STR_ICE_SPORTS, nullptr};
+ // std::map<int, AppViewId> TraingMoreIdToViewId;
+ bool btConnectStatus{false};
+ };
+}
+
+#endif
\ No newline at end of file
/***
* @Author: Caisking 3449750381@qq.com
- * @Date: 2024-03-19 17:37:18
+ * @Date: 2024-03-26 09:44:11
* @LastEditors: Caisking 3449750381@qq.com
- * @LastEditTime: 2024-03-26 18:26:47
+ * @LastEditTime: 2024-03-27 14:22:01
* @FilePath: /sdk/application/wearable/fd230app/nativeui/traing/training_list_more/include/TraingMorePresenter.h
* @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
*/
+
+
#ifndef _TraingMore_PRESENTER_H
#define _TraingMore_PRESENTER_H
namespace OHOS
{
class TraingMoreView;
-
+ class TraingMoreModel;
class TraingMorePresenter : public Presenter<TraingMoreView>,
public UIView::OnClickListener,
public UIView::OnDragListener
static TraingMorePresenter *GetInstance();
private:
- // 因为继承了OnClickListener,所以有OnClick属性,至于参数,原函数也这样直接继承;
+ // 因为继承了OnClickener,所以有OnClick属性,至于参数,原函数也这样直接继承;
bool OnClick(UIView &view, const ClickEvent &event) override;
bool OnDrag(UIView &view, const DragEvent &event) override;
- bool OnDragEnd(UIView& view, const DragEvent& event) override;
+ bool OnDragEnd(UIView &view, const DragEvent &event) override;
+
+ TraingMoreModel *p_TraingMoreModel{nullptr};
};
} // namespace OHOS
-#ifndef _TraingMore_VIEW_H
-#define _TraingMore_VIEW_H
+
+#ifndef TraingMore_VIEW_H
+#define TraingMore_VIEW_H
#include "BaseView.h"
#include "View.h"
-#include <ui_scroll_view.h>
#include "components/ui_view_group.h"
-#include "components/ui_label.h"
-#include "components/ui_label_ext.h"
-#include "components/ui_image_view.h"
-#include "components/ui_button.h"
-#include "components/ui_image_animator.h"
-#include "components/ui_label_button_ext.h"
-#include "components/ui_chart.h"
+#include "components/ui_scroll_view.h"
#include "components/ui_list.h"
-#include "components/icon_adapter.h"
-#include "wearable_log.h"
-#include "ohos_types.h"
-#include "components/ui_card_page.h"
-#include "traing/include/TraingModel.h"
-#include "traing/Training_UiConfig.h"
+#include "traing/training_list_more/include/TraingMoreAdapter.h"
+#include "traing/training_list_more/include/TraingMoreModel.h"
+#include "components/ui_label_button_ext.h"
+#include "components/ui_label_ext.h"
+#include"language/font/ui_resource_string.h"
-#include "TraingMorePresenter.h"
namespace OHOS
{
-#define BUTTON_FITNESS "button1" // 健身
-#define BUTTON_DANCE "button2" // 舞蹈
-#define BUTTON_REST "button3" // 休闲运动
-#define BUTTON_BALL "button4" // 球类
-#define BUTTON_SWIMMING "button5" // 水上运动
-#define BUTTON_ICE "button6" // 冰上运动
-#define BUTTON_LIMIT "button7" // 极限运动
-#define BUTTON_OTHER "button8" // 其他
-
class TraingMorePresenter;
- class TraingMoreView : public View<TraingMorePresenter>
+ class TraingMoreModel;
+ class TraingMoreView : public View<TraingMorePresenter>, public UIViewGroup
{
public:
void OnSetUpView() override;
void OnTearDownView() override;
void OnStop() override;
- void InitView();
- void DeInit();
-
- void InitList();
+
+ UIList *GetList();
+ void AddToTraingMoreList(const TraingMoreItem &item);
+
+ private:
+ void InitView(void);
+ void DeInitView(void);
void PreLoad(void);
private:
+ UIScrollView *scrollView = nullptr;
+ UILabelExt *title{nullptr};
+ TraingMoreAdapter *p_TraingMoreListAdapter{nullptr};
+ UIList *TraingMoreList = nullptr;
UIView::OnDragListener *draglistener{nullptr};
- TraingMoreView(TraingMoreView &&) = delete;
- TraingMoreView &operator=(TraingMoreView &&) = delete;
- UIViewGroup *container_ = nullptr;
- UIScrollView *scrollView1_ = nullptr;
- UILabelExt *label1_ = nullptr;
- UIImageView *image1_ = nullptr;
- UIImageView *image2_ = nullptr;
- UIImageView *image3_ = nullptr;
- UIImageView *image4_ = nullptr;
- UIImageView *image5_ = nullptr;
- UIImageView *image6_ = nullptr;
- UIImageView *image7_ = nullptr;
- UIImageView *image8_ = nullptr;
- UIButton *button1_ = nullptr;
- UIButton *button2_ = nullptr;
- UIButton *button3_ = nullptr;
- UIButton *button4_ = nullptr;
- UIButton *button5_ = nullptr;
- UIButton *button6_ = nullptr;
- UIButton *button7_ = nullptr;
- UIButton *button8_ = nullptr;
- UIList *list1_ = nullptr;
- IconAdapter *list1adapter_ = nullptr;
- List<IconItemNode *> *list1data_ = nullptr;
- bool viewiInitStatus{false};
+ TraingMorePresenter *g_TraingMorePresenter{nullptr};
+ TraingMoreModel *g_TraingMoreModel{nullptr};
+ bool viewInitStatus{false};
};
} // namespace OHOS
-#endif // TraingMore_PRESENTER_H
+#endif
\ No newline at end of file
--- /dev/null
+/***
+ * @Author: Caisking 3449750381@qq.com
+ * @Date: 2024-03-27 11:12:53
+ * @LastEditors: Caisking 3449750381@qq.com
+ * @LastEditTime: 2024-03-27 15:27:45
+ * @FilePath: /sdk/application/wearable/fd230app/nativeui/traing/training_list_more/src/TraingMoreAdapter.cpp
+ * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
+ */
+#include "traing/training_list_more/include/TraingMoreAdapter.h"
+#include "traing/training_list_more/include/TraingMoreModel.h"
+#include "traing/training_list_more/include/TraingMoreItemView.h"
+
+#include "wearable_log.h"
+
+namespace OHOS
+{
+ TraingMoreAdapter::TraingMoreAdapter() {}
+
+ TraingMoreAdapter::~TraingMoreAdapter()
+ {
+ listData.clear();
+ }
+
+ uint16_t TraingMoreAdapter::GetCount(void)
+ {
+ return listData.size();
+ }
+
+ void TraingMoreAdapter::SetData(std::list<TraingMoreItem> &data)
+ {
+ if (!listData.empty())
+ {
+ listData.clear();
+ }
+ std::list<TraingMoreItem>::iterator it;
+ for (it = data.begin(); it != data.end(); it++)
+ {
+ listData.push_back(*it);
+ }
+ }
+
+ /// @brief 为列表的每一项创建一个视图
+ /// @param inView 一个指向已存在的视图对象的指
+ /// @param index 要创建的视图在列表中的索引l。
+ /// @return 返回该视图对象
+ UIView *TraingMoreAdapter::GetView(UIView *inView, int16_t index)
+ {
+
+ // 1.先检查列表数据是否为空,若为空则返回空指针
+ if (listData.empty())
+ {
+ return nullptr;
+ }
+ // 2.接着检查索引是否小于0,若小于0则返回空指针
+ if (index < 0)
+ {
+ return nullptr;
+ }
+ // 3.检查是否超出列表数据大小,若超出则返回空指针
+ size_t uindex = index;
+ if (uindex >= listData.size())
+ {
+ return nullptr;
+ }
+ // 4.通过迭代器访问列表中指定索引位置的元素,将其赋值给itemData变量
+ std::list<TraingMoreItem>::iterator it = listData.begin();
+ for (int i = 0; i < index; i++)
+ {
+ it++;
+ }
+ TraingMoreItem itemData = *it;
+ TraingMoreItemView *item = nullptr;
+ /*
+ 5.根据传入的inView参数是否已经存在一个视图对象,
+ 若为空则创建一个新的MessageItemView对象,
+ 否则将inView转换成MessageItemView类型的指针
+ */
+ if (inView == nullptr)
+ {
+ item = new TraingMoreItemView();
+ }
+ else
+ {
+ item = static_cast<TraingMoreItemView *>(inView);
+ }
+ item->SetItemInfo(itemData);
+ item->SetOnClickListener(itemClickListener);
+ return item;
+ }
+
+ void TraingMoreAdapter::AddItem(const TraingMoreItem &item)
+ {
+ listData.push_back(item);
+ }
+} // namespace OHOS
--- /dev/null
+/***
+ * @Author: Caisking 3449750381@qq.com
+ * @Date: 2024-03-27 11:13:16
+ * @LastEditors: Caisking 3449750381@qq.com
+ * @LastEditTime: 2024-03-29 11:47:02
+ * @FilePath: /sdk/application/wearable/fd230app/nativeui/traing/training_list_more/src/TraingMoreItemView.cpp
+ * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
+ */
+
+#include "traing/training_list_more/include/TraingMoreItemView.h"
+#include "traing/include/TraingModel.h"
+#include "traing/Training_UiConfig.h"
+#include "components/ui_label_ext.h"
+#include "language/font/ui_resource_string.h"
+#include "UiConfig.h"
+namespace OHOS
+{
+
+ TraingMoreItemView::TraingMoreItemView()
+ {
+ SetPosition(0, 0, 380, 120); // 每一个itemview宽高要配置好,因为加到list都是以这个视图为基准
+ SetStyle(STYLE_BACKGROUND_COLOR, Color::Black().full);
+ SetStyle(STYLE_BACKGROUND_OPA, 255);
+ SetTouchable(true);
+ SetUpChild();
+ Add(&sbackground);
+ Add(&sicon);
+ Add(&sLabel);
+ Add(&slogo);
+ }
+
+ TraingMoreItemView::~TraingMoreItemView()
+ {
+ Remove(&sbackground);
+ Remove(&sicon);
+ Remove(&sLabel);
+ Remove(&slogo);
+ }
+
+ /// @brief 设置item的信息
+ /// @param itemInfo
+ void TraingMoreItemView::SetItemInfo(const TraingMoreItem itemInfo)
+ {
+ sItemInfo = itemInfo;
+ sLabel.SetTextId(itemInfo.labelid);
+ slogo.SetSrc(itemInfo.logo);
+ }
+
+ /// @brief 设置每一个itemview上的组件
+ void TraingMoreItemView::SetUpChild()
+ {
+ sbackground.SetSrc(PNG_SETTING_BACKGROUND_IMAGE);
+
+ slogo.SetPosition(60, 35);
+ slogo.SetStyle(STYLE_IMAGE_OPA, OPA_OPAQUE);
+
+ sicon.SetPosition(330, 40);
+ sicon.SetSrc(ICON_IMAGE);
+ sicon.SetStyle(STYLE_IMAGE_OPA, OPA_OPAQUE);
+
+ sLabel.SetPosition(50, 10, 300, 80);
+ sLabel.SetLineBreakMode(UILabel::LINE_BREAK_ELLIPSIS);
+ sLabel.SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);
+ sLabel.SetRollSpeed(0);
+ sLabel.SetFont(DEFAULT_VECTOR_FONT_FILENAME, 30);
+ }
+
+ /// @brief 获取list的中每个组件的在list的下标
+ /// @return 返回下标
+ AppViewId TraingMoreItemView::GetTraingMoreIndex()
+ {
+ return sItemInfo.id;
+ }
+
+ UIResourceTextId TraingMoreItemView::GetTraingMoreId()
+ {
+ return sItemInfo.labelid;
+ }
+}
\ No newline at end of file
--- /dev/null
+/***
+ * @Author: Caisking 3449750381@qq.com
+ * @Date: 2024-03-26 18:34:15
+ * @LastEditors: Caisking 3449750381@qq.com
+ * @LastEditTime: 2024-03-26 18:36:25
+ * @FilePath: /sdk/application/wearable/fd230app/nativeui/traing/training_list_more/src/TraingMoreModel.cpp
+ * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
+ */
+
+#include "traing/training_list_more/include/TraingMoreModel.h"
+#include "traing/Training_UiConfig.h"
+#include "common/image_cache_manager.h"
+#include "components/ui_label_ext.h"
+#include "language/font/ui_resource_string.h"
+#include "UiConfig.h"
+#include "ui_resource_image.h"
+#include "AppViewIDs.h"
+#include "components/ui_label_ext.h"
+#include "language/font/ui_resource_string.h"
+namespace OHOS
+{
+
+ TraingMoreModel::TraingMoreModel() {}
+
+ TraingMoreModel::~TraingMoreModel() {}
+
+ TraingMoreModel &TraingMoreModel::GetInstance()
+ {
+ static TraingMoreModel instance;
+ return instance;
+ }
+
+ void TraingMoreModel::InitTraingMoreListItem()
+ {
+ TraingMores[0] = {VIEW_TRAININGFITNESS, STR_EXERCISE_LIST, FITNESS_IMAGE};
+ TraingMores[1] = {VIEW_TRAININGDANCE, STR_DANCING_LIST, DANCE_IMAGE};
+ TraingMores[2] = {VIEW_TRAININGREST, STR_RECREATIONAL_LIST, REST_IMAGE};
+ TraingMores[3] = {VIEW_TRAININGBALL, STR_BALL_LIST, BALL_IMAGE};
+ TraingMores[4] = {VIEW_TRAININGAQUATIC, STR_WATER_LIST, SWIMMING_IMAGE};
+ TraingMores[5] = {VIEW_TRAININGICE, STR_ICE_LIST, ICE_IMAGE};
+ TraingMores[6] = {VIEW_TRAININGLIMIT, STR_EXTREME_LIST, LIMIT_IMAGE};
+ TraingMores[7] = {VIEW_TRAININGOTHER, STR_OTHER_LIST, OTHER_IMAGE};
+ }
+
+ const TraingMoreItem *TraingMoreModel::GetTraingMorelistItems() const
+ {
+ return TraingMores;
+ }
+ uint8_t TraingMoreModel::GetTraingMoreListNum() const
+ {
+ return TraingMoreListMaxNum;
+ }
+
+}
\ No newline at end of file
+\r
+\r
#include "AppViewIDs.h"\r
#include "components/ui_label_ext.h"\r
#include "language/font/ui_resource_string.h"\r
#include <iostream>\r
#include <chrono>\r
#include <thread>\r
+#include "traing/training_list_more/include/TraingMoreItemView.h"\r
#include "traing/training_list_more/include/TraingMorePresenter.h"\r
-#include "MainViewSample.h"\r
-#include "ScreenModels.h"\r
+#include "traing/training_list_more/include/TraingMoreView.h"\r
// #include "TraingMoreView.h"\r
\r
namespace OHOS\r
{\r
+ extern const char *More_buttons[];\r
+ extern char *More_text[];\r
\r
// 当前Presenter属性实例化的内存指针\r
static TraingMorePresenter *g_pTraingMorePresenter = nullptr;\r
\r
TraingMorePresenter::TraingMorePresenter()\r
{\r
-\r
+ p_TraingMoreModel = &TraingMoreModel::GetInstance();\r
g_pTraingMorePresenter = this;\r
}\r
\r
\r
void TraingMorePresenter::OnStart()\r
{\r
-\r
+ p_TraingMoreModel->InitTraingMoreListItem();\r
Presenter<TraingMoreView>::OnStart();\r
}\r
\r
void TraingMorePresenter::OnPause(void)\r
{\r
-\r
Presenter<TraingMoreView>::OnPause();\r
}\r
\r
void TraingMorePresenter::OnResume(void)\r
{\r
-\r
+ if (view_ == nullptr)\r
+ {\r
+ return;\r
+ }\r
+ const TraingMoreItem *itemInfo = p_TraingMoreModel->GetTraingMorelistItems();\r
+ for (int i = 0; i < p_TraingMoreModel->GetTraingMoreListNum(); i++)\r
+ {\r
+ view_->AddToTraingMoreList(itemInfo[i]);\r
+ }\r
Presenter<TraingMoreView>::OnResume();\r
}\r
\r
}\r
bool TraingMorePresenter::OnDragEnd(UIView &view, const DragEvent &event)\r
{\r
-\r
if (event.GetDragDirection() == DragEvent::DIRECTION_LEFT_TO_RIGHT)\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
- else\r
- {\r
- NativeAbility::GetInstance().ChangeSlice(VIEW_TRAINING);\r
- }\r
+ NativeAbility::GetInstance().ChangeSlice(VIEW_TRAINING);\r
}\r
UNUSED(view);\r
return true;\r
\r
bool TraingMorePresenter::OnClick(UIView &view, const ClickEvent &event)\r
{\r
- // 根据控件id查找是哪个控件触发了点击回调\r
- if (strcmp(view.GetViewId(), BUTTON_BALL) == 0)\r
+ UNUSED(event);\r
+ TraingMoreItemView *itemView = static_cast<TraingMoreItemView *>(&view);\r
+ AppViewId viewId = itemView->GetTraingMoreIndex();\r
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "ApplistPresenter::OnClick viewid = %d\n", viewId);\r
+ if (viewId < VIEW_MAX_INTER_APP)\r
{\r
- NativeAbility::GetInstance().ChangeSlice(VIEW_TRAININGBALL);\r
+ NativeAbility::GetInstance().ChangeSlice(viewId);\r
+ return true;\r
}\r
- if (strcmp(view.GetViewId(), BUTTON_DANCE) == 0)\r
- {\r
- NativeAbility::GetInstance().ChangeSlice(VIEW_TRAININGDANCE);\r
- }\r
- if (strcmp(view.GetViewId(), BUTTON_FITNESS) == 0)\r
- {\r
- NativeAbility::GetInstance().ChangeSlice(VIEW_TRAININGFITNESS);\r
- }\r
- if (strcmp(view.GetViewId(), BUTTON_ICE) == 0)\r
- {\r
- NativeAbility::GetInstance().ChangeSlice(VIEW_TRAININGICE);\r
- }\r
- if (strcmp(view.GetViewId(), BUTTON_LIMIT) == 0)\r
- {\r
- NativeAbility::GetInstance().ChangeSlice(VIEW_TRAININGLIMIT);\r
- }\r
- if (strcmp(view.GetViewId(), BUTTON_OTHER) == 0)\r
- {\r
- NativeAbility::GetInstance().ChangeSlice(VIEW_TRAININGOTHER);\r
- }\r
- if (strcmp(view.GetViewId(), BUTTON_REST) == 0)\r
- {\r
- NativeAbility::GetInstance().ChangeSlice(VIEW_TRAININGREST);\r
- }\r
- if (strcmp(view.GetViewId(), BUTTON_SWIMMING) == 0)\r
- {\r
- NativeAbility::GetInstance().ChangeSlice(VIEW_TRAININGAQUATIC);\r
- }\r
- return true;\r
+ return false;\r
}\r
+\r
}\r
-\r
+/***\r
+ * @Author: Caisking 3449750381@qq.com\r
+ * @Date: 2024-03-26 09:46:17\r
+ * @LastEditors: Caisking 3449750381@qq.com\r
+ * @LastEditTime: 2024-03-29 12:06:57\r
+ * @FilePath: /sdk/application/wearable/fd230app/nativeui/traing/training_list_more/src/TraingMoreView.cpp\r
+ * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE\r
+ */\r
#include "traing/training_list_more/include/TraingMoreView.h"\r
+#include "traing/training_list_more/include/TraingMorePresenter.h"\r
#include "traing/include/TraingModel.h"\r
#include "traing/Training_UiConfig.h"\r
\r
-#include "common/image_cache_manager.h"\r
#include "components/ui_label_ext.h"\r
-#include"language/font/ui_resource_string.h"\r
+#include "language/font/ui_resource_string.h"\r
#include "UiConfig.h"\r
-#include "ui_resource_image.h"\r
-#include <ui_scroll_view.h>\r
-#include "components/ui_button.h"\r
+#include "wearable_log.h"\r
+\r
namespace OHOS\r
{\r
- // 定义全局变量\r
- static const char *imagePaths[] = {FITNESS_IMAGE, DANCE_IMAGE, REST_IMAGE, BALL_IMAGE, SWIMMING_IMAGE, ICE_IMAGE, LIMIT_IMAGE, OTHER_IMAGE};\r
-\r
- static char *text[] = {"健身类", "舞蹈类", "休闲运动", "球类", "水上运动", "冰上运动", "极限运动", "其他"};\r
-\r
+ static constexpr uint8_t NUM_2 = 2;\r
static TraingMoreView *g_pTraingMoreView{nullptr};\r
+ /* --------------------------------- List --------------------------------- */\r
+ static constexpr int16_t More_LIST_POSITION_X = 43;\r
+ static constexpr int16_t More_LIST_POSITION_Y = 120;\r
+ static constexpr int16_t More_SCROLLBLANKSIZE = 35; // 设置此滚动视图的空白大小。\r
+ static constexpr int16 MAX_SCR_DIS = 1000;\r
+ static constexpr int16 LIST_POS = 20;\r
+ static constexpr int16 SNUM_2 = 2;\r
\r
TraingMoreView::TraingMoreView()\r
{\r
\r
TraingMoreView::~TraingMoreView()\r
{\r
- DeInit();\r
+ if (viewInitStatus == true)\r
+ {\r
+ DeInitView();\r
+ }\r
g_pTraingMoreView = nullptr;\r
}\r
\r
TraingMoreView *TraingMoreView::GetInstance()\r
{\r
-\r
return g_pTraingMoreView;\r
}\r
-\r
- /* Traing:初始化list */\r
- void TraingMoreView::InitList()\r
+ /// @param item\r
+ void TraingMoreView::AddToTraingMoreList(const TraingMoreItem &item)\r
{\r
- // Add List to App\r
- if (list1_ == nullptr)\r
- {\r
- list1_ = new UIList();\r
- }\r
- list1_->SetPosition(35, 110); // widget's left position and top position\r
- list1_->Resize(300, 1100); // widget's width and height\r
- list1_->SetViewId("list1"); // Set style\r
- list1_->SetStyle(STYLE_BACKGROUND_COLOR, 0xff000000);\r
- list1_->SetStyle(STYLE_BACKGROUND_OPA, 0x00);\r
-\r
- // Set additional property\r
- if (list1data_ == nullptr)\r
- {\r
- list1data_ = new List<IconItemNode *>();\r
- }\r
-\r
- // 使用全局变量来初始化列表项\r
- for (int i = 0; i < 8; ++i)\r
- {\r
- IconItemNode *listData = new IconItemNode();\r
- // 检查是否需要分配内存空间\r
- if (listData->imagePath == nullptr)\r
- {\r
- listData->imagePath = new char[strlen(imagePaths[i]) + 1];\r
- }\r
- strcpy(listData->imagePath, imagePaths[i]);\r
- listData->txt = text[i];\r
- list1data_->PushBack(listData);\r
-\r
- // 释放内存空间\r
- // delete[] listData->imagePath;\r
- // delete listData;\r
- }\r
-\r
- if (list1adapter_ == nullptr)\r
- {\r
- list1adapter_ = new IconAdapter();\r
- }\r
- list1adapter_->SetItemSize(250, 120);\r
- list1adapter_->SetImageSize(130, 120);\r
- list1adapter_->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 30);\r
- list1adapter_->SetData(list1data_);\r
- list1_->SetAdapter(list1adapter_);\r
-\r
- // Add to scrollView1\r
- // scrollView1_->Add(list1_);\r
- list1_->SetVisible(true);\r
+ p_TraingMoreListAdapter->AddItem(item);\r
}\r
- /* InitView:初始化界面*/\r
- void TraingMoreView ::InitView()\r
+ void TraingMoreView::InitView()\r
{\r
- if (container_ == nullptr)\r
+ if (scrollView == nullptr)\r
{\r
- container_ = new UIViewGroup();\r
- container_->SetPosition(0, 0, 466, 466);\r
- container_->SetStyle(STYLE_BACKGROUND_OPA, 0);\r
+ scrollView = new UIScrollView();\r
}\r
- // Add ScrollView to App\r
- if (scrollView1_ == nullptr)\r
- {\r
- scrollView1_ = new UIScrollView();\r
- }\r
- scrollView1_->SetPosition(0, 0); // widget's left position and top position\r
- scrollView1_->Resize(466, 466); // widget's width and height\r
- scrollView1_->SetViewId("scrollView1"); // Set style\r
- scrollView1_->SetStyle(STYLE_BACKGROUND_OPA, 0xff);\r
- // Add to rootView\r
- container_->Add(scrollView1_);\r
- scrollView1_->SetVisible(true);\r
+ scrollView->SetPosition(0, 0, HORIZONTAL_RESOLUTION, VERTICAL_RESOLUTION);\r
+ // scrollView->SetStyle(STYLE_BACKGROUND_OPA, 0xff);\r
+ scrollView->SetScrollBlankSize(52);\r
+ // scrollView->SetReboundSize(100);\r
+ scrollView->SetTouchable(true);\r
+ scrollView->SetDraggable(true);\r
+ scrollView->SetDirection(1);\r
+ draglistener = static_cast<UIView::OnDragListener *>(TraingMorePresenter::GetInstance());\r
+ scrollView->SetOnDragListener(draglistener);\r
\r
+ /* -------------------------------------------------------------------------- */\r
// 初始化Lable\r
- TraingModel::GetInstance()->InitLabel(label1_, 203, 52, 200, 60, "label1", "训练", DEFAULT_VECTOR_FONT_FILENAME, 30);\r
- scrollView1_->Add(label1_);\r
- // 初始化Button\r
- TraingModel::GetInstance()->InitButton(button1_, 43, 120, 380, 100, BUTTON_FITNESS);\r
- TraingModel::GetInstance()->InitButton(button2_, 43, 240, 380, 100, BUTTON_DANCE);\r
- TraingModel::GetInstance()->InitButton(button1_, 43, 120, 380, 100, BUTTON_FITNESS);\r
- TraingModel::GetInstance()->InitButton(button2_, 43, 240, 380, 100, BUTTON_DANCE);\r
- TraingModel::GetInstance()->InitButton(button3_, 43, 360, 380, 100, BUTTON_REST);\r
- TraingModel::GetInstance()->InitButton(button4_, 43, 480, 380, 100, BUTTON_BALL);\r
- TraingModel::GetInstance()->InitButton(button5_, 43, 600, 380, 100, BUTTON_SWIMMING);\r
- TraingModel::GetInstance()->InitButton(button6_, 43, 720, 380, 100, BUTTON_ICE);\r
- TraingModel::GetInstance()->InitButton(button7_, 43, 840, 380, 100, BUTTON_LIMIT);\r
- TraingModel::GetInstance()->InitButton(button8_, 43, 960, 380, 100, BUTTON_OTHER);\r
- button1_->SetOnClickListener(static_cast<UIView::OnClickListener *>(TraingMorePresenter::GetInstance()));\r
- button2_->SetOnClickListener(static_cast<UIView::OnClickListener *>(TraingMorePresenter::GetInstance()));\r
- button3_->SetOnClickListener(static_cast<UIView::OnClickListener *>(TraingMorePresenter::GetInstance()));\r
- button4_->SetOnClickListener(static_cast<UIView::OnClickListener *>(TraingMorePresenter::GetInstance()));\r
- button5_->SetOnClickListener(static_cast<UIView::OnClickListener *>(TraingMorePresenter::GetInstance()));\r
- button6_->SetOnClickListener(static_cast<UIView::OnClickListener *>(TraingMorePresenter::GetInstance()));\r
- button7_->SetOnClickListener(static_cast<UIView::OnClickListener *>(TraingMorePresenter::GetInstance()));\r
- button8_->SetOnClickListener(static_cast<UIView::OnClickListener *>(TraingMorePresenter::GetInstance()));\r
- \r
-\r
- scrollView1_->Add(button1_);\r
- scrollView1_->Add(button2_);\r
- scrollView1_->Add(button3_);\r
- scrollView1_->Add(button4_);\r
- scrollView1_->Add(button5_);\r
- scrollView1_->Add(button6_);\r
- scrollView1_->Add(button7_);\r
- scrollView1_->Add(button8_);\r
- // 初始化image\r
- TraingModel::GetInstance()->InitImageView(image1_, 360, 160, 100, 100, "image1", ICON_IMAGE);\r
- TraingModel::GetInstance()->InitImageView(image2_, 360, 280, 100, 100, "image2", ICON_IMAGE);\r
- TraingModel::GetInstance()->InitImageView(image3_, 360, 400, 100, 100, "image3", ICON_IMAGE);\r
- TraingModel::GetInstance()->InitImageView(image4_, 360, 520, 100, 100, "image4", ICON_IMAGE);\r
- TraingModel::GetInstance()->InitImageView(image5_, 360, 640, 100, 100, "image5", ICON_IMAGE);\r
- TraingModel::GetInstance()->InitImageView(image6_, 360, 760, 100, 100, "image6", ICON_IMAGE);\r
- TraingModel::GetInstance()->InitImageView(image7_, 360, 880, 100, 100, "image7", ICON_IMAGE);\r
- TraingModel::GetInstance()->InitImageView(image8_, 360, 1000, 100, 100, "image8", ICON_IMAGE);\r
- scrollView1_->Add(image1_);\r
- scrollView1_->Add(image2_);\r
- scrollView1_->Add(image3_);\r
- scrollView1_->Add(image4_);\r
- scrollView1_->Add(image5_);\r
- scrollView1_->Add(image6_);\r
- scrollView1_->Add(image7_);\r
- scrollView1_->Add(image8_);\r
- // 初始化list\r
- InitList();\r
- scrollView1_->Add(list1_);\r
+ TraingModel::GetInstance()->InitLabelExt(title, 155, 52, 200, 60, "label1", STR_TRAINING, DEFAULT_VECTOR_FONT_FILENAME, 30);\r
+ scrollView->Add(title);\r
+ // UIList 的适配器\r
+ p_TraingMoreListAdapter = new TraingMoreAdapter();\r
+ p_TraingMoreListAdapter->SetItemClickListener(presenter_);\r
+ if (TraingMoreList == nullptr)\r
+ {\r
+ TraingMoreList = new UIList();\r
+ }\r
+ TraingMoreList->SetPosition(More_LIST_POSITION_X, More_LIST_POSITION_Y);\r
+ TraingMoreList->Resize(HORIZONTAL_RESOLUTION, VERTICAL_RESOLUTION);\r
+ TraingMoreList->SetScrollBlankSize(More_SCROLLBLANKSIZE);\r
+ TraingMoreList->SetSelectPosition(HORIZONTAL_RESOLUTION / SNUM_2); // middle position\r
+ TraingMoreList->SetDraggable(true);\r
+ TraingMoreList->SetThrowDrag(false);\r
+ TraingMoreList->EnableAutoAlign(true);\r
+ TraingMoreList->SetElastic(true); // 设置回弹效果\r
+ TraingMoreList->SetMaxScrollDistance(MAX_SCR_DIS);\r
+ TraingMoreList->SetYScrollBarVisible(true); // 设置滑动滚动条\r
+\r
+ // 增加表冠控制\r
+ scrollView->SetRotateFactor(2);\r
+ scrollView->RequestFocus();\r
}\r
- /* DeInit:删除组件*/\r
- void TraingMoreView::DeInit()\r
+ UIList *TraingMoreView::GetList()\r
{\r
- container_->RemoveAll();\r
- if (label1_ != nullptr)\r
- {\r
- delete label1_;\r
- label1_ = nullptr;\r
- }\r
- if (button1_ != nullptr)\r
- {\r
- delete button1_;\r
- button1_ = nullptr;\r
- }\r
- if (button8_ != nullptr)\r
- {\r
- delete button8_;\r
- button8_ = nullptr;\r
- }\r
- if (button7_ != nullptr)\r
- {\r
- delete button7_;\r
- button7_ = nullptr;\r
- }\r
- if (button6_ != nullptr)\r
- {\r
- delete button6_;\r
- button6_ = nullptr;\r
- }\r
- if (button5_ != nullptr)\r
- {\r
- delete button5_;\r
- button5_ = nullptr;\r
- }\r
- if (button4_ != nullptr)\r
- {\r
- delete button4_;\r
- button4_ = nullptr;\r
- }\r
- if (button3_ != nullptr)\r
- {\r
- delete button3_;\r
- button3_ = nullptr;\r
- }\r
- if (button2_ != nullptr)\r
- {\r
- delete button2_;\r
- button2_ = nullptr;\r
- }\r
- if (image1_ != nullptr)\r
- {\r
- delete image1_;\r
- image1_ = nullptr;\r
- }\r
- if (image2_ != nullptr)\r
- {\r
- delete image2_;\r
- image2_ = nullptr;\r
- }\r
- if (image3_ != nullptr)\r
- {\r
- delete image3_;\r
- image3_ = nullptr;\r
- }\r
- if (image4_ != nullptr)\r
- {\r
- delete image4_;\r
- image4_ = nullptr;\r
- }\r
- if (image5_ != nullptr)\r
- {\r
- delete image5_;\r
- image5_ = nullptr;\r
- }\r
- if (image6_ != nullptr)\r
- {\r
- delete image6_;\r
- image6_ = nullptr;\r
- }\r
- if (image7_ != nullptr)\r
- {\r
- delete image7_;\r
- image7_ = nullptr;\r
- }\r
- if (image8_ != nullptr)\r
- {\r
- delete image8_;\r
- image8_ = nullptr;\r
- }\r
- if (list1_ != nullptr)\r
- {\r
- delete list1_;\r
- list1_ = nullptr;\r
- }\r
- if (list1adapter_ != nullptr)\r
- {\r
- delete list1adapter_;\r
- list1adapter_ = nullptr;\r
- }\r
- if (list1data_ != nullptr)\r
- {\r
- list1data_->Clear();\r
- delete list1data_;\r
- list1data_ = nullptr;\r
- }\r
- if (scrollView1_ != nullptr)\r
- {\r
- scrollView1_->RemoveAll();\r
- delete scrollView1_;\r
- scrollView1_ = nullptr;\r
- }\r
- if (container_ != nullptr)\r
- {\r
- container_->RemoveAll();\r
- delete container_;\r
- container_ = nullptr;\r
- }\r
+ return TraingMoreList;\r
+ }\r
+ void TraingMoreView::DeInitView()\r
+ {\r
+ // scrollView-> RemoveAll();\r
+ RemoveAll();\r
+ delete title;\r
+ title = nullptr;\r
+\r
+ delete TraingMoreList;\r
+ TraingMoreList = nullptr;\r
+\r
+ delete scrollView;\r
+ scrollView = nullptr;\r
+\r
+ delete draglistener;\r
+ draglistener = nullptr;\r
}\r
\r
void TraingMoreView::PreLoad(void)\r
{\r
- if (!viewiInitStatus)\r
+ if (!viewInitStatus)\r
{\r
InitView();\r
- viewiInitStatus = true;\r
+ viewInitStatus = true;\r
}\r
}\r
+\r
+ /// @brief 页面启动时需要执行的代码逻辑\r
void TraingMoreView::OnStart()\r
{\r
- container_ = new UIViewGroup();\r
- if (container_ == nullptr)\r
- {\r
- return;\r
- }\r
- container_->SetPosition(0, 0);\r
- container_->SetWidth(Screen::GetInstance().GetWidth());\r
- container_->SetHeight(Screen::GetInstance().GetHeight());\r
-\r
- // 创建 draglistener 实例并设置为拖动监听器\r
- UIView::OnDragListener *draglistener = static_cast<UIView::OnDragListener *>(TraingMorePresenter::GetInstance());\r
- if (draglistener == nullptr)\r
- {\r
- return;\r
- }\r
- container_->SetOnDragListener(draglistener);\r
-\r
- container_->SetTouchable(true);\r
- container_->SetDraggable(true);\r
-\r
+ View<TraingMorePresenter>::OnStart();\r
+ BaseView::RootView(Color::Black().full);\r
PreLoad();\r
- RootView::GetInstance()->Add(container_);\r
}\r
\r
+ /// @brief 创建页面的视图。\r
void TraingMoreView::OnSetUpView()\r
{\r
-\r
View<TraingMorePresenter>::OnSetUpView();\r
+ // scrollView->Add(title);\r
+ scrollView->Add(TraingMoreList);\r
+ scrollView->SetStyle(STYLE_BACKGROUND_OPA, OPA_TRANSPARENT);\r
+ RootView::GetInstance()->Add(scrollView);\r
+ TraingMoreList->SetAdapter(p_TraingMoreListAdapter);\r
+ // TraingMoreList->RefreshList(); // 刷新列表\r
Draw();\r
}\r
\r
+ /// @brief 销毁页面的视图。\r
void TraingMoreView::OnTearDownView()\r
{\r
-\r
View<TraingMorePresenter>::OnTearDownView();\r
return;\r
}\r
\r
+ /// @brief 页面结束时需要执行的销毁逻辑。\r
void TraingMoreView::OnStop()\r
{\r
View<TraingMorePresenter>::OnStop();\r
RootView::GetInstance()->RemoveAll();\r
+ RootView::GetInstance()->ClearFocus();\r
return;\r
}\r
-}\r
+}
\ No newline at end of file
/* -------------------------------------------------------------------------- */
// 初始化Lable
- TraingModel::GetInstance()->InitLabel(title, 173, 52, 200, 60, "label1", "其他运动", DEFAULT_VECTOR_FONT_FILENAME, 30);
+ TraingModel::GetInstance()->InitLabelExt(title, 155, 52, 200, 60, "label1",STR_OTHER_TITLE, DEFAULT_VECTOR_FONT_FILENAME, 30);
scrollView->Add(title);
// UIList 的适配器
p_TraingOtherListAdapter = new TraingOtherAdapter();
-/***
- * @Author: Caisking 3449750381@qq.com
- * @Date: 2024-03-19 17:37:19
- * @LastEditors: Caisking 3449750381@qq.com
- * @LastEditTime: 2024-03-26 19:51:06
- * @FilePath: /sdk/application/wearable/fd230app/nativeui/traing/training_list_rest/src/TraingRestPresenter.cpp
- * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
- */
-/***
- * @Author: Caisking 3449750381@qq.com
- * @Date: 2024-03-19 17:37:19
- * @LastEditors: Caisking 3449750381@qq.com
- * @LastEditTime: 2024-03-26 14:23:32
- * @FilePath: /sdk/application/wearable/fd230app/nativeui/traing/src/TraingRestPresenter.cpp
- * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
- */
#include "AppViewIDs.h"
#include "components/ui_label_ext.h"
/* -------------------------------------------------------------------------- */
// 初始化Lable
- TraingModel::GetInstance()->InitLabel(title, 173, 52, 200, 60, "label1", "休闲运动", DEFAULT_VECTOR_FONT_FILENAME, 30);
+ TraingModel::GetInstance()->InitLabelExt(title, 155, 52, 200, 60, "label1", STR_RECREATIONAL_LIST, DEFAULT_VECTOR_FONT_FILENAME, 30);
scrollView->Add(title);
// UIList 的适配器
p_TraingRestListAdapter = new TraingRestAdapter();
STR_OTHER_STILL = 172,\r
STR_OTHER_TILTING = 173,\r
STR_OTHER_WHEELCHAIR = 174,\r
- STR_MAX_ID = 175,\r
+ STR_EXERCISE_LIST = 175,\r
+ STR_BALL_LIST = 176,\r
+ STR_WATER_LIST = 177,\r
+ STR_DANCING_LIST = 178,\r
+ STR_EXTREME_LIST = 179,\r
+ STR_ICE_LIST = 180,\r
+ STR_RECREATIONAL_LIST = 181,\r
+ STR_OTHER_LIST = 182,\r
+ STR_DANCING_TITLE = 183,\r
+ STR_BALL_LIST_TITLE = 184,\r
+ STR_OTHER_TITLE = 185,\r
+ STR_EXERCISE_TITLE = 186,\r
+ STR_TRAINING = 187,\r
+ STR_MAX_ID = 188,\r
}; // UIResourceTextId\r
enum FontLanguageId : uint8_t {
- LANGUAGE_ID_EN,\r
LANGUAGE_ID_ZH,\r
+ LANGUAGE_ID_EN,\r
LANGUAGE_ID_MAX\r
}; // UITextLanguageTextId\r
}\r