if (get_charge_stat())
{
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Power is Charging!");
- DialModelCharge::GetInstance()->UpdateChargeStuaut(1);
+ DialModelCharge::GetInstance()->UpdatechargeStatus(1);
}
/*开机读取天气历史数据*/
read_jsonHistory_weather();
return &instance;
}
bool GetDialFloatData(DialDataType &type, float &out) override;
- void UpdateChargeStuaut(int16_t ChargeStuaut);
+ void UpdatechargeStatus(int16_t chargeStatus);
private:
- int16_t ChargeStuaut_ = 0; // 默认没有充电 测试为充电
+ int16_t chargeStatus_ = 0; // 默认没有充电 测试为充电
};
}
#endif
\ No newline at end of file
bool DialModelCharge::GetDialFloatData(DialDataType &type, float &out)
{
(void)type;
- out = ChargeStuaut_;
- //WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "DialModelCharge %d", ChargeStuaut_);
+ out = chargeStatus_;
+ //WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "DialModelCharge %d", chargeStatus_);
return true;
}
- void DialModelCharge::UpdateChargeStuaut(int16_t ChargeStuaut)
+ void DialModelCharge::UpdatechargeStatus(int16_t chargeStatus)
{
- ChargeStuaut_ = static_cast<float>(ChargeStuaut);
+ chargeStatus_ = static_cast<float>(chargeStatus);
if (onChangeListener_ != nullptr)
{
- onChangeListener_->OnDialFloatDataUpdate(DialDataType::DATA_TYPE_CHARGE, ChargeStuaut_);
+ onChangeListener_->OnDialFloatDataUpdate(DialDataType::DATA_TYPE_CHARGE, chargeStatus_);
}
}
}
+/***\r
+ * @Date: 2024-04-15 10:55:58\r
+ * @LastEditors: Caisking 3449750381@qq.com\r
+ * @LastEditTime: 2024-08-17 16:00:26\r
+ * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/saveele/include/SaveBatPresenter.h\r
+ */\r
\r
#ifndef _SAVEBAT_PRESENTER_H\r
#define _SAVEBAT_PRESENTER_H\r
public UIView::OnClickListener,\r
public UIView::OnDragListener,\r
public UIView::OnLongPressListener,\r
- public ModelListenerSample\r
+ public ModelListenerSample,\r
+ public UIView::OnTouchListener\r
{\r
public:\r
SaveBatPresenter();\r
bool OnClick(UIView &view, const ClickEvent &event) override;\r
bool OnDrag(UIView &view, const DragEvent &event) override;\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
\r
} // namespace OHOS\r
#include "components/ui_button.h"\r
#include "components/ui_digital_clock.h"\r
#include "components/ui_box_progress.h"\r
+#include "components/ui_circle_progress.h"\r
+\r
#include "SaveBatPresenter.h"\r
#include <thread>\r
\r
UIView *GetView();\r
\r
void RefreshView();\r
+\r
void InitBatteryView();\r
void InitTimeView();\r
void InitButtonView();\r
+ void InitShowBackView();\r
+\r
+ void UpdateView();\r
\r
private:\r
UIView::OnDragListener *draglistener{nullptr};\r
\r
SaveBatView(SaveBatView &&) = delete;\r
SaveBatView &operator=(SaveBatView &&) = delete;\r
-\r
- UILabel *timelabel = nullptr; // 时间\r
- UILabel *datelabel = nullptr; // 日期标签\r
- UILabel *weeklabel = nullptr; // 星期标签\r
-\r
+ /*省电界面*/\r
+ UILabel *timelabel = nullptr; // 时间\r
+ UILabel *datelabel = nullptr; // 日期标签\r
+ UILabel *weeklabel = nullptr; // 星期标签\r
UILabel *batterylabel = nullptr; // 电量标签\r
UIBoxProgress *batteryprogress{nullptr}; // 电池进度条\r
UIImageView *batteryiamge = nullptr; // 电池框图标\r
-\r
- UIButton *button_exit = nullptr; // 退出按键\r
+ UIButton *button_exit = nullptr; // 退出按键\r
+ /*退出界面*/\r
+ UILabel *curren_timelabel{nullptr};\r
+ UILabel *countlabel{nullptr};\r
+ UIImageView *wathchiamge = nullptr;\r
+ UICircleProgress *backprogress{nullptr};\r
};\r
} // namespace OHOS\r
\r
+#ifndef SAVE_ELE_MODEL_H
+#define SAVE_ELE_MODEL_H
-#ifndef SaveEle_MODEL_H
-#define SaveEle_MODEL_H
-
-namespace OHOS
-{
- class SaveEleModel
- {
- public:
- static SaveEleModel *GetInstance(void);
- int GetChargeStuaut();
- void SetChargeStuaut(int chargestuaut);
-
- private:
- SaveEleModel() = default;
- ~SaveEleModel() {}
- SaveEleModel(const SaveEleModel &) = delete;
- SaveEleModel &operator=(const SaveEleModel &) = delete;
-
- int ChargeStuaut = 0; // 充电状态
- };
-}
-
-#endif
\ No newline at end of file
+namespace OHOS
+{
+ class SaveEleModel
+ {
+ public:
+ // 获取单例实例
+ static SaveEleModel *GetInstance();
+
+ // 获取充电状态
+ int GetChargeStatus();
+
+ // 设置充电状态
+ void SetChargeStatus(int chargeStatus);
+
+ // 获取视图状态
+ bool GetViewState() const { return viewState; }
+
+ // 设置视图状态
+ void SetViewState(bool state) { viewState = state; }
+
+ private:
+ SaveEleModel() = default; // 默认构造函数
+ ~SaveEleModel() {} // 默认析构函数
+
+ SaveEleModel(const SaveEleModel &) = delete; // 禁止拷贝构造
+ SaveEleModel &operator=(const SaveEleModel &) = delete; // 禁止赋值操作
+
+ int chargeStatus = 0; // 充电状态
+ bool viewState{false}; // 视图状态
+ };
+}
+
+#endif // SAVE_ELE_MODEL_H
\ No newline at end of file
-/*** \r
+/***\r
* @Date: 2024-04-15 10:55:58\r
* @LastEditors: Caisking 3449750381@qq.com\r
- * @LastEditTime: 2024-08-17 11:49:58\r
+ * @LastEditTime: 2024-08-17 15:08:53\r
* @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/saveele/src/SaveBatPresenter.cpp\r
*/\r
\r
#include "AppViewIDs.h"\r
#include "components/ui_label_ext.h"\r
-#include"ui_resource_string.h"\r
+#include "ui_resource_string.h"\r
#include "NativeAbility.h"\r
\r
#include "saveele/include/SaveBatPresenter.h"\r
#include "saveele/include/SaveEleModel.h"\r
+\r
+#include "string.h"\r
namespace OHOS\r
{\r
\r
\r
void SaveBatPresenter::OnStop(void)\r
{\r
-\r
+ SaveEleModel::GetInstance()->SetViewState(false);\r
Presenter<SaveBatView>::OnStop();\r
}\r
\r
\r
bool SaveBatPresenter::OnClick(UIView &view, const ClickEvent &event)\r
{\r
- \r
+ if (strcmp(view.GetViewId(), "button_exit") == 0)\r
+ {\r
+ /*点击*/\r
+ bool state = SaveEleModel::GetInstance()->GetViewState();\r
+ SaveEleModel::GetInstance()->SetViewState(!state);\r
+ SaveBatView::GetInstance()->UpdateView();\r
+ }\r
return true;\r
}\r
bool SaveBatPresenter::OnLongPress(UIView &view, const LongPressEvent &event)\r
{\r
- // 1.长按三秒button1\r
// 2.退出 button1NativeAbility::GetInstance().ChangeSlice(VIEW_SAVEELE);\r
// 3.返回 true 以消耗点击事件\r
if (strcmp(view.GetViewId(), "button_exit") == 0)\r
}\r
return true;\r
}\r
+ bool SaveBatPresenter::OnPress(UIView &view, const PressEvent &event)\r
+ {\r
+\r
+ return true;\r
+ }\r
+ bool SaveBatPresenter::OnRelease(UIView &view, const ReleaseEvent &event)\r
+ {\r
+ if (strcmp(view.GetViewId(), "button_exit") == 0)\r
+ {\r
+ /*释放*/\r
+ SaveEleModel::GetInstance()->SetViewState(false);\r
+ SaveBatView::GetInstance()->UpdateView();\r
+ }\r
+ return true;\r
+ }\r
void SaveBatPresenter::ExitView(void)\r
{\r
- if (SaveEleModel::GetInstance()->GetChargeStuaut())\r
+ if (SaveEleModel::GetInstance()->GetChargeStatus())\r
{\r
NativeAbility::GetInstance().ChangeSlice(VIEW_MAIN);\r
}\r
\r
\r
#include "saveele/include/SaveBatView.h"\r
+#include "saveele/include/SaveEleModel.h"\r
\r
#include "common/image_cache_manager.h"\r
#include "UiConfig.h"\r
\r
static constexpr const char *WHITE_BATTERY = "/user/res/Battery/Battery-E.bin";\r
static constexpr const char *SAVE_BUTTON = "/user/res/Save_Ele/finger.bin";\r
+static constexpr const char *BACK_BUTTON = "/user/res/Save_Ele/finger2.bin";\r
+static constexpr const char *SAVE_WATHCH = "/user/res/Save_Ele/wathch.bin";\r
\r
namespace OHOS\r
{\r
// 构建日期和时间字符串\r
std::string dateStr =\r
(month < 10 ? "0" : "") + std::to_string(month) + "-" +\r
- (day < 10 ? "0" : "") + std::to_string(day)+" "+weekStr;\r
+ (day < 10 ? "0" : "") + std::to_string(day) + " " + weekStr;\r
\r
std::string stringtime =\r
(hour < 10 ? "0" : "") + std::to_string(hour) + ":" +\r
button_exit->SetStyleForState(STYLE_BACKGROUND_COLOR, 0xff000000, UIButton::PRESSED);\r
\r
button_exit->SetOnLongPressListener(presenter_);\r
+ // button_exit->SetOnClickListener(presenter_);\r
container_->Add(button_exit);\r
}\r
+ void SaveBatView::InitShowBackView()\r
+ {\r
+ // 时间\r
+ if (curren_timelabel == nullptr)\r
+ {\r
+ curren_timelabel = new UILabel();\r
+ }\r
+ curren_timelabel->SetPosition(181, 52);\r
+ curren_timelabel->Resize(200, 60);\r
+ curren_timelabel->SetViewId("label4");\r
+ curren_timelabel->SetStyle(STYLE_TEXT_FONT, 40);\r
+ curren_timelabel->SetText("12:10");\r
+ curren_timelabel->SetLineBreakMode(UILabel::LINE_BREAK_ADAPT);\r
+ curren_timelabel->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);\r
+ curren_timelabel->SetRollSpeed(0);\r
+ curren_timelabel->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 40);\r
+ container_->Add(curren_timelabel);\r
+ curren_timelabel->SetVisible(false);\r
+\r
+ // 圆形进度条\r
+ if (backprogress == nullptr)\r
+ {\r
+ backprogress = new UICircleProgress();\r
+ }\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->SetBackgroundStyle(STYLE_LINE_WIDTH, 20);\r
+ backprogress->SetForegroundStyle(STYLE_BACKGROUND_COLOR, 0xff2195F6);\r
+ backprogress->SetForegroundStyle(STYLE_BORDER_COLOR, 0xff000000);\r
+ backprogress->SetForegroundStyle(STYLE_LINE_COLOR, 0xff18ef05);\r
+ backprogress->SetForegroundStyle(STYLE_LINE_WIDTH, 20);\r
+ backprogress->SetCenterPosition(92, 93);\r
+ backprogress->SetRadius(90);\r
+ backprogress->SetEndAngle(359);\r
+ backprogress->SetValue(30);\r
+ container_->Add(backprogress);\r
+ backprogress->SetVisible(false);\r
+\r
+ // 手表image\r
+ if (wathchiamge == nullptr)\r
+ {\r
+ wathchiamge = new UIImageView();\r
+ }\r
+ wathchiamge->SetPosition(188, 182);\r
+ wathchiamge->Resize(100, 100);\r
+ wathchiamge->SetViewId("image1");\r
+ wathchiamge->SetSrc(SAVE_WATHCH);\r
+ container_->Add(wathchiamge);\r
+ wathchiamge->SetVisible(false);\r
+\r
+ // 倒计时\r
+ if (countlabel == nullptr)\r
+ {\r
+ countlabel = new UILabel();\r
+ }\r
+ countlabel->SetPosition(221, 212);\r
+ countlabel->Resize(200, 60);\r
+ countlabel->SetViewId("label3");\r
+ countlabel->SetStyle(STYLE_TEXT_FONT, 40);\r
+ countlabel->SetText("3");\r
+ countlabel->SetLineBreakMode(UILabel::LINE_BREAK_ADAPT);\r
+ countlabel->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);\r
+ countlabel->SetRollSpeed(0);\r
+ countlabel->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 40);\r
+ container_->Add(countlabel);\r
+ countlabel->SetVisible(false);\r
+ }\r
\r
+ // 更新当前界面状态\r
+ void SaveBatView ::UpdateView()\r
+ {\r
+ bool state = SaveEleModel::GetInstance()->GetViewState();\r
+\r
+ /*原界面*/\r
+ timelabel->SetVisible(!state);\r
+ datelabel->SetVisible(!state);\r
+ weeklabel->SetVisible(!state);\r
+ batterylabel->SetVisible(!state);\r
+ batteryprogress->SetVisible(!state);\r
+ batteryiamge->SetVisible(!state);\r
+\r
+ /*退出界面*/\r
+ curren_timelabel->SetVisible(state);\r
+ countlabel->SetVisible(state);\r
+ wathchiamge->SetVisible(state);\r
+ backprogress->SetVisible(state);\r
+ /*\r
+ if (state)\r
+ button_exit->SetImageSrc(BACK_BUTTON, BACK_BUTTON);\r
+ else\r
+ button_exit->SetImageSrc(SAVE_BUTTON, SAVE_BUTTON);\r
+ */\r
+ }\r
void SaveBatView::OnStart()\r
{\r
container_ = new UIViewGroup();\r
{\r
return;\r
}\r
+\r
container_->SetPosition(0, 0);\r
container_->SetWidth(Screen::GetInstance().GetWidth());\r
container_->SetHeight(Screen::GetInstance().GetHeight());\r
InitBatteryView();\r
InitTimeView();\r
InitButtonView();\r
+ // InitShowBackView();\r
\r
RootView::GetInstance()->Add(container_);\r
}\r
\r
void SaveBatView::OnSetUpView()\r
{\r
-\r
View<SaveBatPresenter>::OnSetUpView();\r
Draw();\r
}\r
\r
void SaveBatView::OnTearDownView()\r
{\r
-\r
View<SaveBatPresenter>::OnTearDownView();\r
return;\r
}\r
+/***
+ * @Date: 2024-04-15 10:55:58
+ * @LastEditors: Caisking 3449750381@qq.com
+ * @LastEditTime: 2024-08-17 16:15:17
+ * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/saveele/src/SaveEleModel.cpp
+ */
#include "saveele/include/SaveEleModel.h"
namespace OHOS
static SaveEleModel instance;
return &instance;
}
- int SaveEleModel::GetChargeStuaut()
+ int SaveEleModel::GetChargeStatus()
{
- return ChargeStuaut;
+ return chargeStatus;
}
- void SaveEleModel::SetChargeStuaut(int chargestuaut)
+ void SaveEleModel::SetChargeStatus(int chargeStatus)
{
- ChargeStuaut = chargestuaut;
+ chargeStatus = chargeStatus;
}
}
\ No newline at end of file
#include <service/graphic_service.h>
#include "thread_adapter.h"
#include "cmsis_os.h"
+#include "ui_service.h"
extern "C" errcode_t uapi_get_TIME_STR(uint32_t time, char *p_time, char date_separator, char time_separator, date_format_t format);
extern "C" int get_sleep_time_from_config_model(void);
total_minutes += 60; // 转换为正数,加60分钟
}
goal_total_time = total_hours; // 确保最小时间为0小时
+
+ /*通知界面更新*/
+ SendMsgToUIService(UI_UPDATE_SLEEP_DATA, 0, nullptr, 0);
}
// 获取睡眠总时长(小时)
int SleepModel::get_sleep_hour()
\r
void ModifiesTime();\r
void RefreshData(); // 更新数据\r
+\r
+ /*蓝牙开启运动*/\r
bool send_sport_cmd(training_ble *cmd);\r
+ /*运动识别开启运动*/\r
+ void set_sport_config(UIResourceTextId id);\r
\r
/*控制*/\r
void handleStartState();\r
\r
return false; // 没有匹配的操作\r
}\r
+ /* -------------------------------- 运动识别发起处理 -------------------------------- */\r
+ void TraingCardPresenter::set_sport_config(UIResourceTextId id)\r
+ {\r
+ if (id >= MAXSPORTID)\r
+ {\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "id is error");\r
+ return;\r
+ }\r
+ // 开始训练 ->不返回\r
+ NativeAbility::GetInstance().ChangeSlice(VIEW_TRAININGCRAD);\r
+ // 配置运动项\r
+ TraingModel::GetInstance()->SetSportEvent(id);\r
+ // 获取运动项目\r
+ ExerciseClass type = TraingModel::GetInstance()->GetSportId();\r
+ // 开启对应的运动\r
+ TraingCardPresenter::GetInstance()->OpenSensor(type);\r
+ // 设置为手表开启运动\r
+ TraingModel::GetInstance()->SetSportOpenWay(false);\r
+ }\r
+\r
/* -------------------------------- 协议发起运动处理 -------------------------------- */\r
bool TraingCardPresenter::send_sport_cmd(training_ble *cmd)\r
{\r
display_api->turn_on_screen();
}
#if DIALDATASET
- DialModelCharge::GetInstance()->UpdateChargeStuaut(1);
+ DialModelCharge::GetInstance()->UpdatechargeStatus(1);
#endif
- SaveEleModel::GetInstance()->SetChargeStuaut(1);
+ SaveEleModel::GetInstance()->SetChargeStatus(1);
unused(topic);
WEARABLE_LOGI(WEARABLE_LOG_MODULE_APP, "MsgCenterNotifyProc:: CHarger UnPlug !");
#if DIALDATASET
- DialModelCharge::GetInstance()->UpdateChargeStuaut(0);
+ DialModelCharge::GetInstance()->UpdatechargeStatus(0);
#endif
- SaveEleModel::GetInstance()->SetChargeStuaut(0);
+ SaveEleModel::GetInstance()->SetChargeStatus(0);
//TODO: 亮屏弹窗倒计时5秒关机(不需要取消,强制关机)
- // DialModelCharge::GetInstance()->UpdateChargeStuaut(0);
- // SaveEleModel::GetInstance()->SetChargeStuaut(0);
+ // DialModelCharge::GetInstance()->UpdatechargeStatus(0);
+ // SaveEleModel::GetInstance()->SetChargeStatus(0);
// testCHANINGView *t=testCHANINGView::GetInstance();
// if(t!=NULL)
#define CLOSEBUTTON "close_button"
#define NOPBUTTON "nop_button"
+ static int countsleep = 0;
/* -------------------------------------------------------------------------- */
/*创建睡眠弹窗*/
WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "Free SleepView succeed!!");
ScreenTurnOff();
}
+ countsleep = 0; // 重置
return;
}
void SleepRingPlayerCallbackImpl::OnPlaybackComplete(void)
{
WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "OnPlaybackComplete");
- static int countsleep = 0;
SleepViewEventListener::GetInstance().PopInterCancelMusic();
/*达到最大次数不再播放*/
if (countsleep <= MAX_SLEEP_RING)