static constexpr const char *PNG_APPLIST_RECORD_IMAGE = APP_LIST_PATH "/recording.bin"; // 录音
static constexpr const char *PNG_APPLIST_TRAINING_IMAGE = APP_LIST_PATH "/training.bin"; // 训练
static constexpr const char *PNG_APPLIST_TRAINING_RECORD_IMAGE = APP_LIST_PATH "/record.bin"; // 训练记录
- static constexpr const char *PNG_APPLIST_STOPWATCH_IMAGE = APP_LIST_PATH "/clock.bin"; // 秒表
- static constexpr const char *PNG_APPLIST_COUNTDOWN_IMAGE = APP_LIST_PATH "/countdown.bin"; // 计时器
+ static constexpr const char *PNG_APPLIST_STOPWATCH_IMAGE = APP_LIST_PATH "/countdown.bin"; // 秒表
+ static constexpr const char *PNG_APPLIST_COUNTDOWN_IMAGE = APP_LIST_PATH "/clock.bin"; // 计时器
static constexpr const char *PNG_APPLIST_ALIPAY_IMAGE = APP_LIST_PATH "/alipay.bin"; // 支付宝
static constexpr const char *PNG_APPLIST_FINDPHONE_IMAGE = APP_LIST_PATH "/findphone.bin"; // 查找手机
static constexpr const char *PNG_APPLIST_DISTURB_IMAGE = APP_LIST_PATH "/disturb.bin"; // 勿扰模式
node->addr[2], node->addr[3], node->addr[4], node->addr[5]); // 没有%s类型,不做返回判断
WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "addrTmp %s", addrTmp);
// ClickAnimation(itemData, item);
- item->SetItemInfo(itemData, true);
item->SetViewIndex(index);
+ item->SetItemInfo(itemData, true);
item->SetPairingtatus();
return item;
}
list->SetStyle(STYLE_BORDER_RADIUS, 50);\r
list->SetDragACCLevel(5);\r
list->SetSwipeACCLevel(800);\r
- list->SetReboundSize(30);\r
+ // list->SetReboundSize(30);\r
// list->SetScrollBlankSize(30);\r
list->SetAdapter(adapterText);\r
}\r
return;\r
}\r
}\r
- newEquipmentButton->SetPosition(173, list->GetY() + list->GetHeight() + 20, 120, 40);\r
+ newEquipmentButton->SetPosition(173, 390, 120, 40);\r
newEquipmentButton->SetTextId(STR_BT_HEADSET_RESCAN); // 重新搜索\r
newEquipmentButton->SetViewId(BLUETOOTH_NEWEQUIPMENT_BUTTON);\r
newEquipmentButton->SetStyle(STYLE_BACKGROUND_COLOR, 0xffffffff);\r
list->Resize(380, 250);\r
break;\r
}\r
- newEquipmentButton->SetY(list->GetY() + list->GetHeight() + 20);\r
+ // newEquipmentButton->SetY(list->GetY() + list->GetHeight() + 20);\r
list->RefreshList();\r
list->Invalidate();\r
- newEquipmentButton->Invalidate();\r
+ // newEquipmentButton->Invalidate();\r
}\r
}\r
\r
}\r
}\r
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "index = %d", GetViewIndex());\r
- List<BluetoothCaseInfo> &btConnedDevicesList_ = BluetoothModel::GetInstance()->GetConnedDevicesCase();\r
- std::list<BluetoothCaseInfo> &btScansDevicesList_ = BluetoothModel::GetInstance()->GetCase();\r
- if (GetViewIndex() == btConnedDevicesList_.Size() - 1 || GetViewIndex() == btScansDevicesList_.size() - 1)\r
+ if(!isCaseList)\r
{\r
- lineImage.SetVisible(false);\r
+ //已连接的耳机界面\r
+ List<BluetoothCaseInfo> &btConnedDevicesList_ = BluetoothModel::GetInstance()->GetConnedDevicesCase();\r
+ if (GetViewIndex() == btConnedDevicesList_.Size() - 1)\r
+ {\r
+ lineImage.SetVisible(false);\r
+ }\r
+ else\r
+ {\r
+ lineImage.SetVisible(true);\r
+ }\r
}\r
else\r
{\r
- lineImage.SetVisible(true);\r
+ //搜索出耳机的界面\r
+ std::list<BluetoothCaseInfo> &btScansDevicesList_ = BluetoothModel::GetInstance()->GetCase();\r
+ if (GetViewIndex() == btScansDevicesList_.size() - 1)\r
+ {\r
+ lineImage.SetVisible(false);\r
+ }\r
+ else\r
+ {\r
+ lineImage.SetVisible(true);\r
+ }\r
}\r
}\r
\r
return;\r
} else {\r
btScansDevicesList_.push_back(caseInfo);\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "btScansDevicesList_ num = %d",btScansDevicesList_.size());\r
+ if(BluetoothEarListView::GetInstance()) //动态计算扫描出来的设备列表ui高度\r
+ GraphicService::GetInstance()->PostGraphicEvent( \r
+ std::bind(&BluetoothEarListView::RefreshBluetoothEarListView, BluetoothEarListView::GetInstance()));\r
}\r
}\r
//设置设备的信号强度\r
* @Author: luozheng 1732036298@qq.com
* @Date: 2024-04-10 17:32:38
* @LastEditors: luozheng 1732036298@qq.com
- * @LastEditTime: 2024-09-23 11:13:30
+ * @LastEditTime: 2024-10-09 17:19:01
* @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/flashligh/src/FlashlightPresenter.cpp
*/
#include "common/key_code.h"
#include <custom_utils.h>
#include "gfx_utils/mem_check.h"
+#include "ConfigModel.h"
namespace OHOS
{
}
else
{
+ uapi_setScreenBrightness(ConfigModel::GetInstance()->GetBrightness());//滑动到手电筒设置页面需要将亮度恢复到ConfigModel中设置的亮度值
FlashlightModel::GetInstance().FlashlightStopTimer();
ScreenAlwaysOnCtr(CANCEL_SCREEN_ALWAYS_ON);
}
/*
* @Date: 2024-06-21 09:56:18
- * @LastEditors: Caisking 3449750381@qq.com
- * @LastEditTime: 2024-06-22 15:32:37
+ * @LastEditors: luozheng 1732036298@qq.com
+ * @LastEditTime: 2024-10-09 14:53:41
* @FilePath: /XTS_FD230/FD230/code/sdk/application/wearable/fd230app/nativeui/message/src/MessageModel.cpp
*/
delete messageInfo; // 释放内存
// 发送信息进行弹窗
- if(uapi_dev_runtime_get_train_status()||uapi_dev_runtime_get_saveele_status())
+ if(uapi_dev_runtime_get_train_status()||uapi_dev_runtime_get_saveele_status()|| uapi_dev_runtime_get_respiratory_training_status())
{
//增加训练模式下,不弹窗
//省电模式,不弹窗
+ //呼吸训练,不弹窗
return;
}
CustomEventPublish(TOPIC_EVENT_MESSAGENOTE, NULL, 0);
* @Author: luozheng 1732036298@qq.com\r
* @Date: 2024-02-27 09:16:50\r
* @LastEditors: luozheng 1732036298@qq.com\r
- * @LastEditTime: 2024-09-30 17:06:25\r
+ * @LastEditTime: 2024-10-09 17:53:56\r
* @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/record/src/RecordListView.cpp\r
*/\r
\r
recordList->SetMaxScrollDistance(1000); // 设置手指抬起屏幕后的最大滚动距离。\r
recordList->SetDragACCLevel(5);\r
recordList->SetSwipeACCLevel(800); /*设置手指抬起屏幕后的补偿距离。*/\r
- recordList->SetReboundSize(30);\r
- recordList->SetScrollBlankSize(20);\r
+ // recordList->SetReboundSize(30);\r
+ // recordList->SetScrollBlankSize(20);\r
recordList->SetIntercept(true); // 设置是否拦截输入事件。如果被截获,视图在本地处理后不会将输入事件传递给父视图。\r
recordList->SetAdapter(p_RecordingListAdapter);\r
RecordListScrollView->Add(recordList);\r
* @Author: luozheng 1732036298@qq.com
* @Date: 2024-08-05 15:20:03
* @LastEditors: luozheng 1732036298@qq.com
- * @LastEditTime: 2024-08-31 09:26:00
+ * @LastEditTime: 2024-10-09 18:11:09
* @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/record/src/RecordingListAdapter.cpp
*/
#include "record/include/RecordingListAdapter.h"
{
item = static_cast<RecordingListitemView *>(inView);
}
+ item->SetViewIndex(index);
item->SetItemInfo(itemData);
item->SetOnClickListener(itemClickListener);
- item->SetViewIndex(index);
return item;
}
* @Author: luozheng 1732036298@qq.com
* @Date: 2024-03-02 20:10:18
* @LastEditors: luozheng 1732036298@qq.com
- * @LastEditTime: 2024-10-05 10:45:23
+ * @LastEditTime: 2024-10-09 18:22:24
* @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/record/src/RecordingListitemView.cpp
*/
#include "record/include/RecordingListitemView.h"
+#include "record/include/RecordingModel.h"
#include "wearable_log.h"
namespace OHOS
m_recordId.SetText(itemInfo.recordId.c_str());
m_recordTotalTime.SetText(itemInfo.recordTotalTime);
m_recordTime.SetText(itemInfo.recordTime);
+ //防止list中元素超过3个后最后一个被遮住,且仅在最后一个元素设置其高度为160
+ if (RecordingModel::GetInstance()->GetRecordingListNum() > 2 && GetViewIndex() == RecordingModel::GetInstance()->GetRecordingListNum() - 1)
+ {
+ SetHeight(160);
+ }
+ else
+ {
+ SetHeight(120);
+ }
}
void RecordingListitemView::SetUpChild()
* @Author: luozheng 1732036298@qq.com
* @Date: 2024-06-11 16:26:13
* @LastEditors: luozheng 1732036298@qq.com
- * @LastEditTime: 2024-10-04 19:59:41
+ * @LastEditTime: 2024-10-09 12:22:31
* @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/respiratorytraining/include/RespiratoryTrainingModel.h
*/
#ifndef RESPIRATORY_TRAINING_MODEL_H
void calculateHeartrateTotal(void);
void ResumeStatus();
- void RT_StartTimer(uint32_t interval);
+ void RT_StartTimer(uint64_t interval);
void RT_StopTimer(void);
int GetRespiratoryTrainingSelectTime();
* @Author: luozheng 1732036298@qq.com
* @Date: 2024-06-11 16:26:20
* @LastEditors: luozheng 1732036298@qq.com
- * @LastEditTime: 2024-10-04 20:05:04
+ * @LastEditTime: 2024-10-09 15:09:06
* @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/respiratorytraining/src/RespiratoryTrainingModel.cpp
*/
#include "respiratorytraining/include/RespiratoryTrainingModel.h"
#include <sstream>
#include <thread>
#include <unordered_map>
+#include <custom_runtime.h>
namespace OHOS
{
// 声明定时器变量
{
int time = RespiratoryTrainingModel::GetInstance().GetRespiratoryTrainingSelectTime();
uint64_t time_;
- switch (time_)
+ switch (time)
{
case 1:
time_ = ONE_MIN;
heartTotal = 0;
count = 0;
HeartModel::GetInstance()->Heart_Control(HeartState::End, HeartCheck::INITIATIVE); // 关闭心率检测
+ uapi_dev_runtime_set_respiratory_training_status(0); // 如果直接退出也要设置为0
}
/* -------------------------------------------------------------------------- */
/*定时器到期时的处理*/
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "p_RespiratoryTrainingView is nullptr!!");
return;
}
+ uapi_dev_runtime_set_respiratory_training_status(0); // 训练结束runtime设置为0
RespiratoryTrainingModel::GetInstance().RT_StopTimer(); // 停止定时器
RespiratoryTrainingModel::GetInstance().AddRespiratoryTrainingTimes(); // 呼吸训练次数加1
p_RespiratoryTrainingView->GetRespiratoryTrainingAnimator_()->Stop(); // 关闭呼吸动画
* @brief 开启定时器函数
* @param interval 时间间隔,单位ms
*/
- void RespiratoryTrainingModel::RT_StartTimer(uint32_t interval)
+ void RespiratoryTrainingModel::RT_StartTimer(uint64_t interval)
{
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "RespiratoryTrainingModel::RT_StartTimer");
/* -------------------------- 1.检查定时器是否已经存在,如果存在则返回 ------------------------- */
* @Author: luozheng 1732036298@qq.com
* @Date: 2024-05-07 11:26:06
* @LastEditors: luozheng 1732036298@qq.com
- * @LastEditTime: 2024-10-05 12:30:08
+ * @LastEditTime: 2024-10-09 15:08:31
* @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/RespiratoryTraining/src/RespiratoryTrainingPresenter.cpp
*/
void RespiratoryTrainingPresenter::OnStart()
{
Presenter<RespiratoryTrainingView>::OnStart();
- ScreenAlwaysOnCtr(OPEN_SCREEN_ALWAYS_ON);
+ // ScreenAlwaysOnCtr(OPEN_SCREEN_ALWAYS_ON);
}
void RespiratoryTrainingPresenter::OnPause(void)
* @Author: luozheng 1732036298@qq.com
* @Date: 2024-05-07 11:25:58
* @LastEditors: luozheng 1732036298@qq.com
- * @LastEditTime: 2024-10-05 12:37:07
+ * @LastEditTime: 2024-10-09 15:07:50
* @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/RespiratoryTraining/src/RespiratoryTrainingView.cpp
*/
#include "respiratorytraining/include/RespiratoryTrainingModel.h"
#include "heartrate/include/HeartModel.h"
#include "vibrator_service.h"
+#include <custom_runtime.h>
+#include <custom_utils.h>
namespace OHOS
{
RespiratoryTrainingStartNote_->SetVisible(true);
RespiratoryTrainingImg_->SetVisible(true);
}
-
+ ScreenAlwaysOnCtr(OPEN_SCREEN_ALWAYS_ON);//开始训练后常亮屏
+ uapi_dev_runtime_set_respiratory_training_status(1); // 训练开始runtime设置为1
StartRespiratoryTraining(); // 开始呼吸训练
HeartModel::GetInstance()->Heart_Control(HeartState::Start, HeartCheck::INITIATIVE); // 开启心率检测
RespiratoryTrainingModel::GetInstance().RT_StartTimer(RespiratoryTrainingModel::GetInstance().GetRespiratoryTrainingTime()); // 开启定时器
if(id!=VIEW_INCOMING_CALL)
make_phone_push(id);
}
- showsStackSliceId();
+ // showsStackSliceId();
/*
if (GetCurSliceId() == targetSliceId) {
return;
* @Author: luozheng 1732036298@qq.com
* @Date: 2024-03-22 09:48:07
* @LastEditors: luozheng 1732036298@qq.com
- * @LastEditTime: 2024-09-11 17:22:48
+ * @LastEditTime: 2024-10-09 09:54:34
* @FilePath: /FD230/code/sdk/application/wearable/service/msg_center/include/notify/pairing_notification.h
*/
#ifndef PAIRING_NOTIFICATION_H
void FreeDeviceBindingView(void);
void FreeDeviceUnBindingView(void);
void FreeDeviceUnbindingRequestGroupView(void);
- class PairingViewEventListener : public OHOS::UIView::OnClickListener
+ class PairingViewEventListener : public OHOS::UIView::OnClickListener,public RootView::OnKeyActListener
{
public:
static PairingViewEventListener &GetInstance(void);
bool OnClick(OHOS::UIView &view, const OHOS::ClickEvent &event) override;
+ bool OnKeyAct(UIView &view, const KeyEvent &event) override; // 增加按键事件
void SetDeviceName(char *Name);
char *GetDeviceName();
void DeviceUnBindingViewIsVisible(bool state);
* @Author: luozheng 1732036298@qq.com
* @Date: 2024-03-25 17:33:47
* @LastEditors: luozheng 1732036298@qq.com
- * @LastEditTime: 2024-09-14 17:31:21
+ * @LastEditTime: 2024-10-09 11:21:37
* @FilePath: /FD230/code/sdk/application/wearable/service/msg_center/src/notify/findwatch_notification.cpp
* @details:实现查找手表的功能一般需要手表和智能手机之间的配合,通常是通过手机上的应用(App)或其他设备发送指令给手表,触发手表的查找功能。
* 以下是基本的实现步骤:
const power_display_svr_api_t *display_api = power_display_svr_get_api();
if (display_api)
{
- int brightnessValue = ConfigModel::GetInstance()->GetBrightness();
+ int brightnessValue;
+ if(uapi_dev_runtime_get_saveele_status()) //如果是省电模式状态下退出要把亮度设置为最低
+ {
+ brightnessValue = 51;
+ }
+ else
+ {
+ brightnessValue= ConfigModel::GetInstance()->GetBrightness();
+ }
if (display_api->set_brightness(brightnessValue) != ERRCODE_SUCC)
{
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "[FindWatchViewEventListener] resume_brightness fail!");
}
FindWatchViewEventListener::GetInstance().ResumeScreenBrightness();
+ FindWatchViewEventListener::GetInstance().FindWatch_StopTimer();
}
/* ----------------------- FindWatchRingPlayerListener ---------------------- */
* @Author: luozheng 1732036298@qq.com
* @Date: 2024-03-22 10:04:36
* @LastEditors: luozheng 1732036298@qq.com
- * @LastEditTime: 2024-10-08 16:33:30
+ * @LastEditTime: 2024-10-09 10:08:29
* @FilePath: /FD230/code/sdk/application/wearable/service/msg_center/src/notify/pairing_notification.cpp
*/
#include "notification_manager.h"
return false;
}
DeviceUnbindingRequestGroupView->SetVisible(false);
+ /* -------------------------------------------------------------------------- */
+ RootView::GetInstance()->ClearOnKeyActListener();
+ RootView::GetInstance()->SetOnKeyActListener(this);
+ /* -------------------------------------------------------------------------- */
RootView::GetInstance()->Add(ShutDownImageAnimatorGroupView);
}
ShutDownImageAnimatorView::GetInstance()->ShutDownImageAnimator_Start(3);
return true;
}
+ bool PairingViewEventListener::OnKeyAct(UIView &view, const KeyEvent &event) // 增加按键事件
+ {
+ //消耗按键事件
+ return true;
+ }
+
static UIButton *CreateButton(unsigned int x, unsigned int y, unsigned int w, unsigned int h, const char *imageSrc)
{
UIButton *button = new UIButton();
uint8_t lock_flag_sleep;//睡眠
uint8_t lock_flag_goal;//每日目标数据 5个数据一起锁
+
+ uint8_t respiratory_training_status;//呼吸训练开始状态
} runtime_status_t;
return g_runtime.motion_recognition_status;
}
+//设置呼吸训练状态
+void uapi_dev_runtime_set_respiratory_training_status(uint8_t status)
+{
+ g_runtime.respiratory_training_status = status;
+}
+uint8_t uapi_dev_runtime_get_respiratory_training_status(void)
+{
+ return g_runtime.respiratory_training_status;
+}
+
// sleep mode flag
void uapi_sleep_mode_flag_set(uint8_t flag)
{
void uapi_dev_runtime_set_motion_recognition_status(uint8_t status);
uint8_t uapi_dev_runtime_get_motion_recognition_status(void);
+
+//呼吸训练
+void uapi_dev_runtime_set_respiratory_training_status(uint8_t status);
+uint8_t uapi_dev_runtime_get_respiratory_training_status(void);
/***************************************cat1 runtime 变量设置获取函数**************************************************/