void ResetTickTimer();\r
\r
void ExitView(void);\r
- uint64_t startTime{0};\r
+ void Refresh_Back_View();\r
\r
private:\r
// 因为继承了OnClickListener,所以有OnClick属性,至于参数,原函数也这样直接继承;\r
bool OnLongPress(UIView &view, const LongPressEvent &event);\r
bool OnPress(UIView &view, const PressEvent &event);\r
bool OnRelease(UIView &view, const ReleaseEvent &event);\r
+\r
+ uint64_t startTime{0};\r
+ int count = 3; // 初始计数\r
+ int progressValue = 0; // 初始进度值\r
};\r
\r
} // namespace OHOS\r
\r
void UpdateView();\r
\r
+ UILabel *GetCountlabel()\r
+ {\r
+ return countlabel;\r
+ }\r
+ UICircleProgress *GetBackprogress()\r
+ {\r
+ return backprogress;\r
+ }\r
private:\r
UIView::OnDragListener *draglistener{nullptr};\r
\r
UIImageView *wathchiamge{nullptr};\r
UICircleProgress *backprogress{nullptr};\r
\r
- int count = 3; // 初始计数\r
- int progressValue = 0; // 初始进度值\r
};\r
} // namespace OHOS\r
\r
-#ifndef SAVE_ELE_MODEL_H
-#define SAVE_ELE_MODEL_H
+#ifndef SAVE_ELE_MODEL_H
+#define SAVE_ELE_MODEL_H
-namespace OHOS
-{
- class SaveEleModel
- {
- public:
- // 获取单例实例
- static SaveEleModel *GetInstance();
+namespace OHOS
+{
+ class SaveEleModel
+ {
+ public:
+ // 获取单例实例
+ static SaveEleModel *GetInstance();
- // 获取充电状态
- int GetChargeStatus();
+ // 获取充电状态
+ bool GetChargeStatus();
- // 设置充电状态
- void SetChargeStatus(int chargeStatus);
+ // 设置充电状态
+ void SetChargeStatus(bool chargeStatus);
- // 获取视图状态
- bool GetViewState() const { return viewState; }
+ // 获取视图状态
+ bool GetViewState() const { return viewState; }
- // 设置视图状态
- void SetViewState(bool state) { viewState = state; }
+ // 设置视图状态
+ void SetViewState(bool state) { viewState = state; }
- private:
- SaveEleModel() = default; // 默认构造函数
- ~SaveEleModel() {} // 默认析构函数
+ private:
+ SaveEleModel() = default; // 默认构造函数
+ ~SaveEleModel() {} // 默认析构函数
- SaveEleModel(const SaveEleModel &) = delete; // 禁止拷贝构造
- SaveEleModel &operator=(const SaveEleModel &) = delete; // 禁止赋值操作
+ SaveEleModel(const SaveEleModel &) = delete; // 禁止拷贝构造
+ SaveEleModel &operator=(const SaveEleModel &) = delete; // 禁止赋值操作
- int chargeStatus_ = 0; // 充电状态
- bool viewState{false}; // 视图状态
- };
-}
+ bool chargeStatus_{nullptr}; // 充电状态
+ bool viewState{false}; // 视图状态
+ };
+}
#endif // SAVE_ELE_MODEL_H
\ No newline at end of file
+/***\r
+ * @Date: 2024-04-15 10:55:58\r
+ * @LastEditors: Caisking 3449750381@qq.com\r
+ * @LastEditTime: 2024-08-20 16:29:53\r
+ * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/saveele/src/SaveBatPresenter.cpp\r
+ */\r
+/***\r
+ * @Date: 2024-04-15 10:55:58\r
+ * @LastEditors: Caisking 3449750381@qq.com\r
+ * @LastEditTime: 2024-08-20 16:28:11\r
+ * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/saveele/src/SaveBatPresenter.cpp\r
+ */\r
/***\r
* @Date: 2024-04-15 10:55:58\r
* @LastEditors: Caisking 3449750381@qq.com\r
\r
void SaveBatPresenter::OnStart()\r
{\r
+ SaveEleModel::GetInstance()->SetChargeStatus(false);\r
Presenter<SaveBatView>::OnStart();\r
}\r
\r
bool SaveBatPresenter::OnDrag(UIView &view, const DragEvent &event)\r
{\r
UNUSED(view);\r
- // 返回 true 以消耗拖动事件\r
return true;\r
}\r
\r
bool state = SaveEleModel::GetInstance()->GetViewState();\r
SaveEleModel::GetInstance()->SetViewState(!state);\r
SaveBatView::GetInstance()->UpdateView();\r
- ResetTickTimer();\r
}\r
return true;\r
}\r
bool SaveBatPresenter::OnLongPress(UIView &view, const LongPressEvent &event)\r
{\r
- // 2.退出 button1NativeAbility::GetInstance().ChangeSlice(VIEW_SAVEELE);\r
- // 3.返回 true 以消耗点击事件\r
if (strcmp(view.GetViewId(), "button_exit") == 0)\r
{\r
NativeAbility::GetInstance().ChangeSlice(VIEW_MAIN);\r
}\r
bool SaveBatPresenter::OnPress(UIView &view, const PressEvent &event)\r
{\r
+ if (strcmp(view.GetViewId(), "button_exit") == 0)\r
+ {\r
+ /*\r
+ uint64_t current_time = osKernelGetTick2ms();\r
+ SaveBatView::GetInstance()->Refresh_Back_View();\r
+ if (IS_TIME_EXCEED(startTime, current_time))\r
+ {\r
+ NativeAbility::GetInstance().ChangeSlice(VIEW_MAIN);\r
+ }\r
+ */\r
+ if (SaveEleModel::GetInstance()->GetViewState() == false)\r
+ {\r
+ SaveEleModel::GetInstance()->SetViewState(true);\r
+ SaveBatView::GetInstance()->UpdateView();\r
+ ResetTickTimer();\r
+ }\r
+ }\r
return true;\r
}\r
bool SaveBatPresenter::OnRelease(UIView &view, const ReleaseEvent &event)\r
/*释放*/\r
SaveEleModel::GetInstance()->SetViewState(false);\r
SaveBatView::GetInstance()->UpdateView();\r
+ /*重置*/\r
+ progressValue = 0;\r
+ count = 3;\r
}\r
return true;\r
}\r
void SaveBatPresenter::ExitView(void)\r
{\r
- bool isCharging = get_charge_stat(); // 获取充电状态\r
+ bool isCharging = SaveEleModel::GetInstance()->GetChargeStatus(); // 获取充电状态\r
+ // 如果省电模式中发生充电变化->进行退出\r
if (isCharging)\r
{\r
NativeAbility::GetInstance().ChangeSlice(VIEW_MAIN);\r
}\r
else if (SaveEleModel::GetInstance()->GetViewState() == true)\r
{\r
- if (IS_TIME_MATCH(startTime, current_time, ONE_SECOND))\r
+ Refresh_Back_View();\r
+ }\r
+ }\r
+ void SaveBatPresenter::ResetTickTimer(void)\r
+ {\r
+ startTime = osKernelGetTick2ms();\r
+ }\r
+ /* 更新退出UI */\r
+ void SaveBatPresenter::Refresh_Back_View()\r
+ {\r
+ if (SaveBatView::GetInstance()->GetCountlabel() == nullptr || SaveBatView::GetInstance()->GetBackprogress() == nullptr)\r
+ {\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Refresh_Back_View: countlabel or backprogress is null.");\r
+ return;\r
+ }\r
+\r
+ if (count > 0) // 确保不会减少到负数\r
+ {\r
+ // 每次调用时尝试更新进度值\r
+ progressValue++;\r
+\r
+ // 更新计数并检查进度值\r
+ if (progressValue == 50 || progressValue == 75 || progressValue == 100)\r
{\r
- SaveBatView::GetInstance()->Refresh_Back_View();\r
+ count--;\r
+ SaveBatView::GetInstance()->GetCountlabel()->SetText(std::to_string(count).c_str());\r
}\r
- if (IS_TIME_EXCEED(startTime, current_time))\r
+\r
+ // 根据最大值进行检查以避免进度条越界\r
+ if (progressValue >= 100) // 假设进度最大值为100\r
{\r
NativeAbility::GetInstance().ChangeSlice(VIEW_MAIN);\r
}\r
+ else\r
+ {\r
+ SaveBatView::GetInstance()->GetBackprogress()->SetValue(progressValue);\r
+ }\r
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "Refresh_Back_View: 当前计数: %d, 当前进度值: %d", count, progressValue);\r
}\r
}\r
- void SaveBatPresenter::ResetTickTimer(void)\r
- {\r
- startTime = osKernelGetTick2ms();\r
- }\r
}
\ No newline at end of file
uint8_t value = battery_get_voltage(&voltage);\r
\r
// 更新界面组件\r
-\r
timelabel->SetText(stringtime.c_str());\r
datelabel->SetText(dateStr.c_str());\r
batterylabel->SetText((std::to_string(value) + "%").c_str());\r
batteryprogress->SetValue(value);\r
}\r
\r
- /* 更新退出UI */\r
- void SaveBatView::Refresh_Back_View()\r
- {\r
- if (countlabel == nullptr || backprogress == nullptr)\r
- {\r
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Refresh_Back_View: countlabel or backprogress is null.");\r
- return;\r
- }\r
-\r
- if (count > 0) // 确保不会减少到负数\r
- {\r
- count--;\r
- progressValue += 33;\r
-\r
- countlabel->SetText(std::to_string(count).c_str());\r
- backprogress->SetValue(progressValue);\r
-\r
- // 根据最大值进行检查以避免进度条越界\r
- if (progressValue > 100) // 假设进度最大值为100\r
- {\r
- progressValue = 100; // 限制在最大值\r
- }\r
-\r
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Refresh_Back_View: 当前计数: %d, 当前进度值: %d", count, progressValue);\r
- }\r
- }\r
void SaveBatView::InitBatteryView()\r
{\r
// 创建电池框图像\r
button_exit->SetImageSrc(SAVE_BUTTON, SAVE_BUTTON);\r
button_exit->SetStyleForState(STYLE_BACKGROUND_COLOR, 0xff000000, UIButton::PRESSED);\r
\r
- button_exit->SetOnLongPressListener(presenter_);\r
- button_exit->SetOnClickListener(presenter_);\r
+ // button_exit->SetOnLongPressListener(presenter_);\r
+ // button_exit->SetOnClickListener(presenter_);\r
+ button_exit->SetOnTouchListener(presenter_);\r
container_->Add(button_exit);\r
}\r
void SaveBatView::InitShowBackView()\r
backprogress->SetPosition(143, 143);\r
backprogress->Resize(183, 186);\r
backprogress->SetViewId("circleProgress1");\r
- backprogress->SetStyle(STYLE_BACKGROUND_OPA, 0x00);\r
- backprogress->SetBackgroundStyle(STYLE_BACKGROUND_COLOR, 0xff000000);\r
+ backprogress->SetStyle(STYLE_BACKGROUND_OPA, 0x00); // 确保背景透明\r
+ backprogress->SetBackgroundStyle(STYLE_BACKGROUND_COLOR, 0x00000000); // 背景颜色设置为完全透明\r
backprogress->SetBackgroundStyle(STYLE_LINE_WIDTH, 20);\r
- backprogress->SetForegroundStyle(STYLE_BACKGROUND_COLOR, 0xff2195F6);\r
+ backprogress->SetForegroundStyle(STYLE_BACKGROUND_COLOR, 0xff000000);\r
backprogress->SetForegroundStyle(STYLE_BORDER_COLOR, 0xff000000);\r
backprogress->SetForegroundStyle(STYLE_LINE_COLOR, 0xff18ef05);\r
backprogress->SetForegroundStyle(STYLE_LINE_WIDTH, 20);\r
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "wathchiamge creation failed");\r
return;\r
}\r
- wathchiamge->SetPosition(188, 182);\r
+ wathchiamge->SetPosition(191, 182);\r
wathchiamge->Resize(100, 100);\r
wathchiamge->SetViewId("image1");\r
wathchiamge->SetSrc(SAVE_WATHCH);\r
batteryiamge->SetVisible(!state);\r
\r
/*重置计数器*/\r
- count = 3; // 初始计数\r
- progressValue = 0; // 初始进度值\r
+ int count = 3; // 初始计数\r
+ int progressValue = 0; // 初始进度值\r
countlabel->SetText(std::to_string(count).c_str());\r
backprogress->SetValue(progressValue);\r
\r
+/*** \r
+ * @Date: 2024-08-16 09:26:06\r
+ * @LastEditors: Caisking 3449750381@qq.com\r
+ * @LastEditTime: 2024-08-20 16:59:59\r
+ * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/saveele/src/SaveElePresenter.cpp\r
+ */\r
/*** \r
* @Date: 2024-05-30 15:59:37\r
* @LastEditors: Caisking 3449750381@qq.com\r
- * @LastEditTime: 2024-08-09 15:14:49\r
+ * @LastEditTime: 2024-08-20 16:04:44\r
* @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/saveele/src/SaveElePresenter.cpp\r
*/\r
#include "AppViewIDs.h"\r
}\r
if (strcmp(view.GetViewId(), SAVEBUTTONOK) == 0)\r
{\r
- NativeAbility::GetInstance().EnterSlice(VIEW_SAVEBAT);\r
+ NativeAbility::GetInstance().ChangeSlice(VIEW_SAVEBAT);\r
}\r
return true;\r
}\r