bool InitUILabel(UILabel *&label, int left, int top, int width, int height, const char *viewId, const char *text, const char *fontName, int fontSize)
{
// 检查标签指针是否为空
- label = new UILabel();
if (label == nullptr)
{
+ label = new UILabel();
+ if (label == nullptr)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "InitUILabel is error");
+ return false; // 内存分配失败,返回false
+ }
+ }
+ else
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "InitUILabel is not nullptr");
return false; // 内存分配失败,返回false
}
// 设置标签的位置和大小
bool InitLabel(UILabelExt *&label, int left, int top, int width, int height, const char *viewId, const char *text, const char *fontName, int fontSize)
{
// 检查标签指针是否为空
-
- label = new UILabelExt();
if (label == nullptr)
{
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "InitLabel is error");
+ label = new UILabelExt();
+ if (label == nullptr)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "InitLabel is error");
+ return false; // 内存分配失败,返回false
+ }
+ }
+ else
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "InitLabel is not nullptr");
return false; // 内存分配失败,返回false
}
// 设置标签的位置和大小
bool InitLabelAdapt(UILabelExt *&label, int left, int top, int width, int height, const char *viewId, const char *text, const char *fontName, int fontSize)
{
// 检查标签指针是否为空
- label = new UILabelExt();
if (label == nullptr)
{
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "InitLabelAdapt is error");
+ label = new UILabelExt();
+ if (label == nullptr)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "InitLabelAdapt is error");
+ return false; // 内存分配失败,返回false
+ }
+ }
+ else
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "InitLabelAdapt is not nullptr");
return false; // 内存分配失败,返回false
}
// 设置标签的位置和大小
bool InitLabelExt(UILabelExt *&label, int left, int top, int width, int height, const char *viewId, UIResourceTextId id, const char *fontName, int fontSize)
{
// 检查标签指针是否为空
- label = new UILabelExt();
if (label == nullptr)
{
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "InitLabelExt is error");
+ label = new UILabelExt();
+ if (label == nullptr)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "InitLabelExt is error");
+ return false; // 内存分配失败,返回false
+ }
+ }
+ else
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "InitLabelExt is not nullptr");
return false; // 内存分配失败,返回false
}
// 设置标签的位置和大小
return false; // 内存分配失败,返回false
}
}
+ else
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "UILabelButtonExt UILabelButtonExt is not nullptr");
+ return false; // 内存分配失败,返回false
+ }
button->SetPosition(left, top);
button->Resize(width, height);
button->SetViewId(viewId);
{
if (label == nullptr)
{
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "UpdateLabelText label is nullptr");
return nullptr;
}
/*取Id对应的字符串*/
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "label is error");
return nullptr;
}
-
std::string str = UpdateLabelText(label, std::to_string(num), id);
return str;
}
{
if (label == nullptr)
{
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "label is error");
return;
}
bool InitButton(UIButton *&button, int left, int top, int width, int height, const char *viewId)
{
// 创建新按钮(如果当前按钮为空)
- button = new UIButton();
if (button == nullptr)
{
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "new UIButton fail");
+ button = new UIButton();
+ if (button == nullptr)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "new UIButton fail");
+ return false; // 内存分配失败,返回false
+ }
+ }
+ else
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "InitButton is not nullptr");
return false; // 内存分配失败,返回false
}
button->SetPosition(left, top);
*/
bool InitImageView(UIImageView *&imageView, int left, int top, int width, int height, const char *viewId, const char *imagePath)
{
- imageView = new UIImageView();
+ // 创建新图片(如果当前图片为空)
if (imageView == nullptr)
{
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "imagePath %s fail", imagePath);
- return false;
+ imageView = new UIImageView();
+ if (imageView == nullptr)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "imagePath %s fail", imagePath);
+ return false;
+ }
+ }
+ else
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "InitImageView is not nullptr");
+ return false; // 内存分配失败,返回false
}
if (imagePath == nullptr)
{
void UpShowBloodText(void);
private:
- UIImageAnimatorView *imageAnimator;
- UILabelExt *titleLabel;
- UILabel *Spo2Text;
- UIScrollView *BloodDetectionScrollView;
- UILabelButtonExt *testButton;
+ UIImageAnimatorView *imageAnimator{nullptr};
+ UILabelExt *titleLabel{nullptr};
+ UILabel *Spo2Text{nullptr};
+ UIScrollView *BloodDetectionScrollView{nullptr};
+ UILabelButtonExt *testButton{nullptr};
uint32_t spo2_;
};
UILabelExt *titleLabel = nullptr;
UILabelExt *timeLabel = nullptr;
UILabel *bloodLabel = nullptr;
- UILabelButtonExt *checkButton;
+ UILabelButtonExt *checkButton{nullptr};
};
}
UILabelExt *timeLabel = nullptr;\r
UILabel *bloodLabel = nullptr;\r
\r
- UILabelButtonExt *checkButton;\r
+ UILabelButtonExt *checkButton{nullptr};\r
\r
bool viewiInitStatus{false};\r
bool resLoadStatus{false};\r
void UpShowHeartText(void);
private:
- UIImageAnimatorView *imageAnimator;
- UILabelExt *titleLabel;
- UILabel *HeartText;
- UIScrollView *HeartDetectionScrollView;
- UILabelButtonExt *testButton;
+ UIImageAnimatorView *imageAnimator{nullptr};
+ UILabelExt *titleLabel{nullptr};
+ UILabel *HeartText{nullptr};
+ UIScrollView *HeartDetectionScrollView{nullptr};
+ UILabelButtonExt *testButton{nullptr};
uint32_t heart_;
};
UILabelExt *titleLabel = nullptr;
UILabelExt *timeLabel = nullptr;
UILabel *heartLabel = nullptr;
- UILabelButtonExt *checkButton;
+ UILabelButtonExt *checkButton{nullptr};
};
}
#include "common/key_code.h"
#include "AppViewIDs.h"
#include "components/ui_label_ext.h"
-#include"ui_resource_string.h"
+#include "ui_resource_string.h"
#include "View.h"
#include "MainViewSample.h"
#include "wearable_log.h"
uint16 keyID = event.GetKeyId();
if (keyID == static_cast<uint16_t>(ZliteKeyCode::ZLITE_KEY_POWER))
{ // 电源按键
- // 切换到关机/重启卡片
- // NativeAbility::GetInstance().ChangeSlice(VIEW_SHUTDOWN_OR_REBOOT);
+ // 切换到关机/重启卡片
+ // NativeAbility::GetInstance().ChangeSlice(VIEW_SHUTDOWN_OR_REBOOT);
}
else if (keyID == static_cast<uint16_t>(ZliteKeyCode::ZLITE_KEY_FUNC))
{ // 功能按键
return;
}
-void KeyInputListener::CallVolumeDipSwitchControl(VolumeChangeStatus status)
-{
- if (MainCallingPresenter::GetInstance() != nullptr && CallerLogModel::GetInstance()->GetCallStatus()) {
- if (CallerLogModel::GetInstance()->GetVolumeScreenStatus()) {
- VolumeSettingView *settingView = MainCallingPresenter::GetInstance()->GetvolumeSetting();
- if (settingView == nullptr) {
- return;
+ void KeyInputListener::CallVolumeDipSwitchControl(VolumeChangeStatus status)
+ {
+ if (MainCallingPresenter::GetInstance() != nullptr && CallerLogModel::GetInstance()->GetCallStatus())
+ {
+ if (CallerLogModel::GetInstance()->GetVolumeScreenStatus())
+ {
+ VolumeSettingView *settingView = MainCallingPresenter::GetInstance()->GetvolumeSetting();
+ if (settingView == nullptr)
+ {
+ return;
+ }
+ volumeSliderEventListener = settingView->GetVolumeEventListener();
+ if (volumeSliderEventListener == nullptr)
+ {
+ return;
+ }
+ volumeSliderEventListener->ChangeVolume(status);
}
- volumeSliderEventListener = settingView->GetVolumeEventListener();
- if (volumeSliderEventListener == nullptr) {
- return;
+ else
+ {
+ MainCallingPresenter::GetInstance()->HonrsViewChange();
+ CallerLogModel::GetInstance()->SetVolumeScreenStatus(true);
}
- volumeSliderEventListener->ChangeVolume(status);
- } else {
- MainCallingPresenter::GetInstance()->HonrsViewChange();
- CallerLogModel::GetInstance()->SetVolumeScreenStatus(true);
}
- }
- if (IsNotifyCallStatus()) {
- if (NotificationManager::GetInstance()->GetVolumeScreenStatus()) {
- VolumeSettingView *settingView = GetvolumeSetting();
- if (settingView == nullptr) {
- return;
+ if (IsNotifyCallStatus())
+ {
+ if (NotificationManager::GetInstance()->GetVolumeScreenStatus())
+ {
+ VolumeSettingView *settingView = GetvolumeSetting();
+ if (settingView == nullptr)
+ {
+ return;
+ }
+ volumeSliderEventListener = settingView->GetVolumeEventListener();
+ if (volumeSliderEventListener == nullptr)
+ {
+ return;
+ }
+ volumeSliderEventListener->ChangeVolume(status);
}
- volumeSliderEventListener = settingView->GetVolumeEventListener();
- if (volumeSliderEventListener == nullptr) {
- return;
+ else
+ {
+ HonrsViewChange();
+ NotificationManager::GetInstance()->SetVolumeScreenStatus(true);
}
- volumeSliderEventListener->ChangeVolume(status);
- } else {
- HonrsViewChange();
- NotificationManager::GetInstance()->SetVolumeScreenStatus(true);
}
}
-}
-
extern "C"
{
if (longPressFlag == 0 && pressFlag == 1)
{
// 如果当前页面是音量卡片或正在通话中,则执行音量+操作
- if (currentViewId == VIEW_INCOMING_CALL ||
- NotificationManager::GetInstance()->GetWatchCallStatus()) { // 音量卡片
+ if (currentViewId == VIEW_INCOMING_CALL ||
+ NotificationManager::GetInstance()->GetWatchCallStatus())
+ { // 音量卡片
// 音量+
- CallVolumeDipSwitchControl(VOLUMEUP);
+ CallVolumeDipSwitchControl(VOLUMEUP);
}
else if (currentViewId != VIEW_MAIN) // 如果当前页面不是主表盘,如果屏幕亮起,则先处理闹钟通知再切换到主表盘页面
{
if (mcu_pms_is_screen_on())
{
PressAlarmNotify();
- NativeAbility::GetInstance().ChangeSlice(VIEW_MAIN, TransitionType::TRANSITION_ZOOM);
+ NativeAbility::GetInstance().ChangeSlice(VIEW_MAIN);
+ // NativeAbility::GetInstance().ChangeSlice(VIEW_MAIN, TransitionType::TRANSITION_ZOOM);
}
}
else // 如果当前页面是主表盘:
}
else
{
- NativeAbility::GetInstance().ChangeSlice(VIEW_APPLIST, TransitionType::TRANSITION_ZOOM);
+ NativeAbility::GetInstance().ChangeSlice(VIEW_APPLIST);
+ // NativeAbility::GetInstance().ChangeSlice(VIEW_APPLIST, TransitionType::TRANSITION_ZOOM);
// NativeAbility::GetInstance().EnterSlice(VIEW_APPLIST, TransitionType::TRANSITION_ZOOM);
}
}
if (longPressFlag == 0 && pressFlag == 1)
{
// 如果当前页面是音量卡片或正在通话中,则执行音量减操作
- if (currentViewId == VIEW_INCOMING_CALL ||
- NotificationManager::GetInstance()->GetWatchCallStatus()) { // 音量卡片
+ if (currentViewId == VIEW_INCOMING_CALL ||
+ NotificationManager::GetInstance()->GetWatchCallStatus())
+ { // 音量卡片
// 音量-
- CallVolumeDipSwitchControl(VOLUMEDOWN);
+ CallVolumeDipSwitchControl(VOLUMEDOWN);
}
else if (currentViewId != VIEW_MAIN) // 如果当前页面不是主表盘,如果屏幕亮起,则先处理闹钟通知再切换到主表盘页面。
{
if (mcu_pms_is_screen_on())
{
PressAlarmNotify();
- //NativeAbility::GetInstance().ChangeSlice(VIEW_MAIN, TransitionType::TRANSITION_ZOOM);
+ // NativeAbility::GetInstance().ChangeSlice(VIEW_MAIN, TransitionType::TRANSITION_ZOOM);
}
}
else // 如果当前页面是主表盘,如果屏幕亮起,则先处理闹钟通知再切换到用户配置的快捷卡片
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "messageView new fail");
return;
}
- if (MessageLable == nullptr)
- {
- MessageLable = new UILabel();
- }
messageView->SetViewId("messageView");
messageView->SetPosition(0, 0, Screen::GetInstance().GetWidth(), Screen::GetInstance().GetHeight());
messageView->PreLoad();
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "MainClockView new fail");
return nullptr;
}
+
/*增加勿扰图标*/
InitImageView(disturbIcon, 213, 0, 40, 40, "disturbIcon", DISTURBICON);
/*获取勿扰状态*/
WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "disturb:state[%d]\r\n", state);
disturbIcon->SetVisible(state);
mainClockView->Add(disturbIcon);
+
return mainClockView;
}
// 指南针卡片
+/***
+ * @Date: 2024-06-28 19:21:39
+ * @LastEditors: Caisking 3449750381@qq.com
+ * @LastEditTime: 2024-08-09 11:44:39
+ * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/message/include/MessageAdapter.h
+ */
/***
* @Date: 2024-04-15 10:55:58
* @LastEditors: Caisking 3449750381@qq.com
#include "components/ui_label.h"
#include "components/ui_label_ext.h"
#include "components/ui_checkbox.h"
+#include "components/ui_label_button_ext.h"
namespace OHOS
{
{
int index;
bool read; // 是否未读
- std::string labeltitle; // 来信标签
+ std::string labeltitle; // 来信人
std::string labeldetails; // 信息内容
std::string labeltime; // 来信时间
} MessageListItem;
private:
std::list<MessageListItem> listData;
UIView::OnClickListener *itemClickListener{nullptr};
+ UILabelButtonExt *DeleteButton{nullptr};
};
}
UIList *MessageList = nullptr;
UILabelButtonExt *DeleteButton = nullptr; // 删除按键
MessageModel *p_MessageModel{nullptr};
+ UIImageView *imageline{nullptr};
};
}
#endif
\ No newline at end of file
+/***
+ * @Date: 2024-04-15 10:55:58
+ * @LastEditors: Caisking 3449750381@qq.com
+ * @LastEditTime: 2024-08-09 11:55:24
+ * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/message/include/MessageItemView.h
+ */
/***
* @Date: 2024-04-15 10:55:58
* @LastEditors: Caisking 3449750381@qq.com
virtual ~MessageItemView();
virtual void SetItemInfo(const MessageListItem itemInfo);
virtual void SetUpChild();
+ void TearDownChild();
int GetMessageListIndex();
private:
UILabel stime; // 时间
UILabelButton sLabelButton; // 按键
MessageListItem sItemInfo = {0, false, nullptr, nullptr, nullptr};
+ bool isSetupChild{false};
};
}
#endif
\ No newline at end of file
+/***
+ * @Date: 2024-06-19 17:04:12
+ * @LastEditors: Caisking 3449750381@qq.com
+ * @LastEditTime: 2024-08-10 16:50:28
+ * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/message/include/MessageLackView.h
+ */
/***
* @Date: 2024-06-19 17:04:12
* @LastEditors: Caisking 3449750381@qq.com
-
+/***
+ * @Date: 2024-06-21 09:56:18
+ * @LastEditors: Caisking 3449750381@qq.com
+ * @LastEditTime: 2024-08-09 18:56:33
+ * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/message/include/MessageShowView.h
+ */
#ifndef MessageShow_VIEW_H
#define MessageShow_VIEW_H
UILabel *time{nullptr};
UILabel *message{nullptr};
- UILabelButton *messageButton; // 消息
- UILabelButtonExt *deleteButton; // 清除按键
+ UILabelButton *messageButton{nullptr}; // 消息
+ UILabelButtonExt *deleteButton{nullptr}; // 清除按键
bool viewInitStatus{false};
+ std::string titleStr;
+ std::string timeStr;
+ std::string messageStr;
};
} // namespace OHOS
#endif
\ No newline at end of file
-/***
- * @Date: 2024-04-15 10:55:58
- * @LastEditors: Caisking 3449750381@qq.com
- * @LastEditTime: 2024-07-05 18:36:27
- * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/message/include/MessageView.h
- */
-/***
- * @Date: 2024-04-15 10:55:58
- * @LastEditors: Caisking 3449750381@qq.com
- * @LastEditTime: 2024-06-21 17:13:44
- * @FilePath: /XTS_FD230/FD230/code/sdk/application/wearable/fd230app/nativeui/message/include/MessageView.h
- */
-/***
- * @Date: 2024-04-15 10:55:58
- * @LastEditors: Caisking 3449750381@qq.com
- * @LastEditTime: 2024-06-19 10:54:53
- * @FilePath: /XTS_FD230/FD230/code/sdk/application/wearable/fd230app/nativeui/message/include/MessageView.h
- */
+
#ifndef Message_VIEW_H
#define Message_VIEW_H
bool viewInitStatus{false};
- MessageModel *g_MessageModel;
+ MessageModel *g_MessageModel{nullptr};
};
} // namespace OHOS
#endif
\ No newline at end of file
-/***
+/***
* @Author: Caisking 3449750381@qq.com
* @Date: 2024-01-29 19:58:37
* @LastEditors: Caisking 3449750381@qq.com
#include "message/include/MessageAdapter.h"
#include "message/include/MessageItemView.h"
#include "wearable_log.h"
+#include "message/include/MessagePresenter.h"
+#include "message/include/MessageModel.h"
+#include "uicomponents/UIComponents.h"
namespace OHOS
{
MessageListAdapter::MessageListAdapter() {}
uint16_t MessageListAdapter::GetCount(void)
{
- return listData.size();
+ return listData.size() + 1;
}
void MessageListAdapter::SetData(std::list<MessageListItem> &data)
}
}
- /// @brief
+ /// @brief
/// @param inView 一个指向已存在的视图对象的指
/// @param index 要创建的视图在列表中的索引l。
/// @return 返回该视图对象
UIView *MessageListAdapter::GetView(UIView *inView, int16_t index)
{
-
- //1.先检查列表数据是否为空,若为空则返回空指针
+ // 1.先检查列表数据是否为空,若为空则返回空指针
if (listData.empty())
{
return nullptr;
}
- //2.接着检查索引是否小于0,若小于0则返回空指针
+ // 2.接着检查索引是否小于0,若小于0则返回空指针
if (index < 0)
{
return nullptr;
}
- //3.检查是否超出列表数据大小,若超出则返回空指针
+ printf("GetView : index %d\r\n", index);
+ // 3.检查是否超出列表数据大小,若超出则返回空指针
size_t uindex = index;
- if (uindex >= listData.size())
- {
+ if (uindex > listData.size())
return nullptr;
+
+ MessageItemView *item = nullptr;
+ if (uindex == listData.size())
+ {
+ if (inView == nullptr)
+ {
+ item = new MessageItemView();
+ }
+ else
+ {
+ item = static_cast<MessageItemView *>(inView);
+ // item->TearDownChild();
+ item->RemoveAll();
+ }
+ InitButtonExt(DeleteButton, 0, 0, 380, 100, DELETEALLDATA, STR_CLEANALL, 30);
+ DeleteButton->SetOnClickListener(itemClickListener);
+ item->Add(DeleteButton);
+ item->SetViewIndex(index);
+ item->SetOnClickListener(nullptr);
+ return item;
}
- //4.通过迭代器访问列表中指定索引位置的元素,将其赋值给itemData变量
+ // 4.通过迭代器访问列表中指定索引位置的元素,将其赋值给itemData变量
std::list<MessageListItem>::iterator it = listData.begin();
for (int i = 0; i < index; i++)
{
it++;
}
MessageListItem itemData = *it;
- MessageItemView *item = nullptr;
- //5.根据传入的inView参数是否已经存在一个视图对象,若为空则创建一个新的MessageItemView对象,否则将inView转换成MessageItemView类型的指针
+ // 5.根据传入的inView参数是否已经存在一个视图对象,若为空则创建一个新的MessageItemView对象,否则将inView转换成MessageItemView类型的指针
if (inView == nullptr)
{
item = new MessageItemView();
else
{
item = static_cast<MessageItemView *>(inView);
+ item->RemoveAll();
}
+ item->SetUpChild();
item->SetItemInfo(itemData);
item->SetViewIndex(index);
item->SetOnClickListener(itemClickListener);
static MessageCardView *g_pMessageCardView = nullptr;
static const uint32_t BACK_GROUND_COLOR = 0xfff6f6f6;
static constexpr int16_t MORE_LIST_POSITION_X = 43;
- static constexpr int16_t MORE_LIST_POSITION_Y = 120;
+ static constexpr int16_t MORE_LIST_POSITION_Y = 95;
static constexpr int16_t MORE_SCROLLBLANKSIZE = 35; // 设置此滚动视图的空白大小。
static constexpr int16 MAX_SCR_DIS = 1000;
static constexpr int16 LIST_POS = 20;
static constexpr int16 SNUM_2 = 2;
static constexpr uint8_t NUM_2 = 2;
+
+ static constexpr char *lineimagePath = "/user/res/message/Line.bin";
MessageCardView::MessageCardView()
{
SetPosition(0, 0, HORIZONTAL_RESOLUTION, VERTICAL_RESOLUTION);
void MessageCardView::ClearAll(void)
{
RemoveAll();
- if (title != nullptr)
+ if (imageline != nullptr)
{
- delete title;
- title = nullptr;
+ delete imageline;
+ imageline = nullptr;
}
if (MessageList != nullptr)
{
bool MessageCardView::InitPage(void)
{
WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "InitPage is begin");
- /*初始化label*/
- InitLabelExt(title, 83, 50, 300, 35, "labletitle", STR_MESSAGE_NOTIFICATION, DEFAULT_VECTOR_FONT_FILENAME, 30);
- Add(title);
+
+ /*初始化image*/
+ InitImageView(imageline, 193, 30, 365, 35, "image", lineimagePath);
+ Add(imageline);
// UIList 的适配器
p_MessageListAdapter = new MessageListAdapter();
MessageList = new UIList();
}
MessageList->SetPosition(MORE_LIST_POSITION_X, MORE_LIST_POSITION_Y, 466, 466);
- // MessageList->SetScrollStateListener(this);
+ MessageList->SetScrollBlankSize(35);
+ MessageList->SetReboundSize(50);
MessageList->SetThrowDrag(true);
MessageList->SetStyle(STYLE_BACKGROUND_OPA, OPA_TRANSPARENT);
- // 设置手指抬起屏幕后的最大滚动距离
MessageList->SetMaxScrollDistance(1000); // 1000: max scroll distance
- // 设置手指抬起屏幕后的补偿距离
- MessageList->SetSwipeACCLevel(800); // 800: compensation distance
- // 设置拖动加速
- MessageList->SetDragACCLevel(5); // 5: drag acceleration
- MessageList->SetYScrollBarVisible(true);
+ MessageList->SetSwipeACCLevel(800); // 800: compensation distance
+ MessageList->SetDragACCLevel(5); // 5: drag acceleration
MessageList->SetViewId(MAINMESSAGEVIEW);
-
- // SetYScrollBarVisible(true); // 设置滑动滚动条
- UIView::OnClickListener *clickListener = (UIView::OnClickListener *)OHOS::MessageControlPresenter::GetInstance();
- if (clickListener == nullptr)
- {
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AddButton::OnStart clickListener NULL");
- return false;
- }
- MessageList->SetOnClickListener(clickListener);
- UIView::OnDragListener *Messagedraglistener = (UIView::OnDragListener *)(MessageControlPresenter::GetInstance());
+ MessageList->SetOnClickListener((UIView::OnClickListener *)OHOS::MessageControlPresenter::GetInstance());
+ MessageList->SetIntercept(true);
Add(MessageList);
MessageList->SetAdapter(p_MessageListAdapter);
- MessageList->RefreshList();
- SetDraggable(false);
- SetTouchable(false);
+ // MessageList->RefreshList();
+ // SetDraggable(true);
+ // SetTouchable(true);
+
initViewStatus = true;
WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "InitPage is end");
return true;
}
void MessageCardView::UpdateMessageCard()
{
-
}
UIList *MessageCardView::GetList()
{
-/***
- * @Date: 2024-07-11 14:52:39
- * @LastEditors: Caisking 3449750381@qq.com
- * @LastEditTime: 2024-07-25 10:28:36
- * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/message/src/MessageControlView.cpp
- */
-/***
- * @Date: 2024-07-11 14:52:39
- * @LastEditors: Caisking 3449750381@qq.com
- * @LastEditTime: 2024-07-25 09:41:22
- * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/message/src/MessageControlView.cpp
- */
-/***
- * @Date: 2024-07-11 14:52:39
- * @LastEditors: Caisking 3449750381@qq.com
- * @LastEditTime: 2024-07-25 09:32:03
- * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/message/src/MessageControlView.cpp
- */
-/*
- * Copyright (c) CompanyNameMagicTag 2022-2022. All rights reserved.
- * Description: MessageControlView.cpp
- * Author:
- * Create: 2022-04-02
- */
+
#include "message/include/MessageControlView.h"
#include "message/include/MessageModel.h"
#include "message/include/MessageControlPresenter.h"
{
static constexpr const char *ICON_IMAGE = "user/res/message/Icon.bin";
+#define SELF_ADAPTION 1
+
#define RECTANGLE_WIDTH 380
-// 定义不同大小矩形的长度常量
+// 定义不同大小背景矩形的长度常量
#define SMALL_RECTANGLE_LENGTH 180
#define MEDIUM_RECTANGLE_LENGTH 210
#define BIG_RECTANGLE_LENGTH 240
// 定义不同大小标签的长度常量
#define SMALL_LABEL_LENGTH 30
-#define MEDIUM_LABEL_LENGTH 70
-#define BIG_LABEL_LENGTH 105
+#define MEDIUM_LABEL_LENGTH 80
+#define BIG_LABEL_LENGTH 115
// 时间的top
-#define SMALL_TIMELABEL_LENGTH 108
-#define MEDIUM_TIMELABEL_LENGTH 139
-#define BIG_LABELTIME_LENGTH 171
+#define SMALL_TIMELABEL_LENGTH 110
+#define MEDIUM_TIMELABEL_LENGTH 141
+#define BIG_LABELTIME_LENGTH 173
// 定义全局变量
static int item_length = BIG_RECTANGLE_LENGTH;
MessageItemView::MessageItemView()
{
SetPosition(0, 0, RECTANGLE_WIDTH, item_length);
+ // SetStyle(STYLE_BACKGROUND_COLOR, 0xff303030);
SetStyle(STYLE_BACKGROUND_OPA, 255);
SetStyle(STYLE_BORDER_RADIUS, 20);
SetTouchable(true);
- SetUpChild();
-
- Add(&sLabelButton);
- Add(&sIcon);
- Add(&stitle);
- Add(&smessgae);
- Add(&stime);
}
MessageItemView::~MessageItemView()
{
- Remove(&sIcon);
- Remove(&stitle);
- Remove(&smessgae);
- Remove(&stime);
- Remove(&sLabelButton);
+ RemoveAll();
}
void MessageItemView::SetItemInfo(const MessageListItem itemInfo)
{
sItemInfo = itemInfo;
-#if 0
+#if SELF_ADAPTION
// 根据 labeldetails 的大小设置矩形和标签的长度
- if (itemInfo.labeldetails.size() <= 10)
+ printf("itemInfo.labeldetails.size():%d\r\n", itemInfo.labeldetails.size());
+ if (itemInfo.labeldetails.size() <= 30) // 一行
{
- label_length = SMALL_LABEL_LENGTH;
item_length = SMALL_RECTANGLE_LENGTH;
+ label_length = SMALL_LABEL_LENGTH;
time_top = SMALL_TIMELABEL_LENGTH;
}
- else if (itemInfo.labeldetails.size() > 10 && itemInfo.labeldetails.size() <= 20)
+ else if (itemInfo.labeldetails.size() > 30 && itemInfo.labeldetails.size() <= 60) // 两行
{
- label_length = MEDIUM_LABEL_LENGTH;
item_length = MEDIUM_RECTANGLE_LENGTH;
+ label_length = MEDIUM_LABEL_LENGTH;
time_top = MEDIUM_TIMELABEL_LENGTH;
}
else
{
- label_length = BIG_LABEL_LENGTH;
item_length = BIG_RECTANGLE_LENGTH;
+ label_length = BIG_LABEL_LENGTH;
time_top = BIG_LABELTIME_LENGTH;
}
-
+ /* 自适应消息列表配置 测试中 */
SetPosition(0, 0, RECTANGLE_WIDTH, item_length);
+ smessgae.SetPosition(40, 69, 300, label_length);
+ stime.SetPosition(40, time_top, 300, 33);
+ sLabelButton.SetPosition(0, 0, 380, item_length - 20);
#endif
- if (!itemInfo.read)
- {
- sIcon.SetSrc(ICON_IMAGE);
- }
+ sIcon.SetSrc(ICON_IMAGE);
stitle.SetText(itemInfo.labeltitle.c_str());
smessgae.SetText(itemInfo.labeldetails.c_str());
stime.SetText(itemInfo.labeltime.c_str());
+ // 设置图标可见性
+ sIcon.SetVisible(!itemInfo.read);
- // printf("%d %s %s %s\r\n", itemInfo.read, itemInfo.labeltitle.c_str(), itemInfo.labeldetails.c_str(), itemInfo.labeltime.c_str());
+ printf("MessageItemView itemInfo %d %s %s\r\n", itemInfo.read, itemInfo.labeltitle.c_str(), itemInfo.labeldetails.c_str(), itemInfo.labeltime.c_str());
+ printf("MessageItemView size %d %d %d\r\n", label_length, item_length, time_top);
}
+ void MessageItemView::TearDownChild()
+ {
+ if (!isSetupChild)
+ return;
+ Remove(&sIcon);
+ Remove(&stitle);
+ Remove(&smessgae);
+ Remove(&stime);
+ Remove(&sLabelButton);
+
+ isSetupChild = false;
+ }
void MessageItemView::SetUpChild()
{
+ if (isSetupChild)
+ return;
+
sIcon.SetPosition(40, 43);
sIcon.SetStyle(STYLE_IMAGE_OPA, OPA_OPAQUE);
stitle.SetLineBreakMode(UILabel::LINE_BREAK_OSCILLATION);
stitle.SetRollSpeed(70);
- smessgae.SetPosition(40, 69, 300, label_length);
smessgae.SetLineBreakMode(UILabel::LINE_BREAK_ELLIPSIS);
smessgae.SetTextColor(Color::Gray());
smessgae.SetFont(DEFAULT_VECTOR_FONT_FILENAME, 30);
- stime.SetPosition(40, time_top, 300, 33);
stime.SetLineBreakMode(UILabel::LINE_BREAK_ELLIPSIS);
stime.SetTextColor(Color::Gray());
stime.SetFont(DEFAULT_VECTOR_FONT_FILENAME, 28);
sLabelButton.SetPosition(0, 0, 380, item_length - 20);
sLabelButton.SetStyle(STYLE_BACKGROUND_COLOR, 0xff303030);
sLabelButton.SetStyle(STYLE_BORDER_RADIUS, 20);
- sLabelButton.SetStyleForState(STYLE_BORDER_COLOR, 0xff0b1928, UIButton::PRESSED);
+
sLabelButton.SetStyleForState(STYLE_BORDER_RADIUS, 20, UIButton::PRESSED);
+ sLabelButton.SetStyleForState(STYLE_BACKGROUND_COLOR, 0xff000000, UIButton::PRESSED);
sLabelButton.SetTouchable(true);
+
+ Add(&sLabelButton);
+ Add(&sIcon);
+ Add(&stitle);
+ Add(&smessgae);
+ Add(&stime);
+
+ isSetupChild = false;
}
int MessageItemView::GetMessageListIndex()
std::string timeStr = "2023.12.26 17:23";
std::string messageStr = "【铁路12306】系统已自动为您生成订单EC09828333,04月23日G2231次,深圳北站13:31开。请您在2小时内完成支付。您可通过以下链接进行支付。https://www.12306.cn/index/";
#endif
- std::string titleStr, timeStr, messageStr;
MessageShowView::MessageShowView()
{
container_->Add(messageButton);
container_->Add(deleteButton);
/* -------------------------------------------------------------------------- */
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "InitView is ok!");
// UpdateMessage();
}
PreLoad();
- RootView::GetInstance()->Add(container_);
SetContainerView(container_);
RootView::GetInstance()->SetOnKeyActListener(presenter_);
-
+/***
+ * @Date: 2024-07-12 11:19:45
+ * @LastEditors: Caisking 3449750381@qq.com
+ * @LastEditTime: 2024-08-09 14:03:51
+ * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/message/src/MessageView.cpp
+ */
#include "message/include/MessageView.h"
#include "message/include/MessagePresenter.h"
MessageView::~MessageView()
{
- if (viewInitStatus == true)
- {
- DeInitView();
- }
+ // if (viewInitStatus == true)
+ // {
+ // DeInitView();
+ // }
+ UIViewGroup *tmpGroup = dynamic_cast<UIViewGroup *>(container_);
+ UIViewGroup::RemoveAndDeleteAllRecursively(tmpGroup);
+
g_pMessageView = nullptr;
}
lackView->Add(labeltitle);
lackView->Add(labelmeage);
- RootView::GetInstance()->Add(lackView);
+ container_->Add(lackView);
lackView->SetDraggable(true);
lackView->SetTouchable(true);
MessageList->SetOnClickListener(presenter_);
messageView->SetOnDragListener(presenter_);
-#if 0
- /*删除按键*/
- int top = MessageList->GetHeight();
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "old top %d", top);
- top > 466 ? top += 130 : top -= 100;
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "new top %d", top);
- InitButtonExt(DeleteButton, 43, top, 380, 100, DELETEALLDATA, STR_CLEANALL, 30);
- DeleteButton->SetOnClickListener(presenter_);
- messageView->Add(DeleteButton);
-#endif
+
messageView->SetVisible(false); // 隐藏界面
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "ShowmessageView end");
}
void MessageView::SetPopupViewStatus(PopupMessage view, bool status)
{
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SetPopupViewStatus %d", view);
- UIView *popupView = nullptr;
+
if (view == PopupMessage::LackPopup)
{
- MessageModel::GetInstance().SetPopupViewState(false); // 设置状态为无记录
- popupView = lackView;
+ MessageModel::GetInstance().SetPopupViewState(false); // 设置状态为无消息
+ lackView->SetVisible(true); // 隐藏界面
+ messageView->SetVisible(false); // 隐藏界面
}
else if (view == PopupMessage::MessagePopup)
{
- MessageModel::GetInstance().SetPopupViewState(true); // 设置状态为有记录
- popupView = messageView;
- }
- if (popupView == nullptr)
- {
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "PopupView is NULL");
- return;
- }
- if (container_ != nullptr)
- {
- container_->SetVisible(!status);
+ MessageModel::GetInstance().SetPopupViewState(true); // 设置状态为有消息
+ lackView->SetVisible(false); // 隐藏界面
+ messageView->SetVisible(true); // 隐藏界面
}
- popupView->SetVisible(status);
}
/// @brief 页面启动时需要执行的代码逻辑
ShowMessageView();
PreLoad();
- RootView::GetInstance()->Add(container_);
SetContainerView(container_);
RootView::GetInstance()->SetOnKeyActListener(presenter_);
if (MessageModel::GetInstance().HasDataVector())
{
messageView->Add(MessageList);
+ messageView->Add(DeleteButton);
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "MessageList is add");
- RootView::GetInstance()->Add(messageView);
+ container_->Add(messageView);
MessageList->SetAdapter(p_MessageListAdapter);
}
Draw();
+/***\r
+ * @Date: 2024-04-15 10:55:58\r
+ * @LastEditors: Caisking 3449750381@qq.com\r
+ * @LastEditTime: 2024-08-09 15:01:58\r
+ * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/saveele/include/SaveElePresenter.h\r
+ */\r
#ifndef _SAVEELE_PRESENTER_H\r
#define _SAVEELE_PRESENTER_H\r
- \r
\r
#include "Presenter.h"\r
#include "SaveEleView.h"\r
- \r
+\r
namespace OHOS\r
{\r
+ static constexpr const char *SAVEBUTTONOK = "buttonok";\r
+ static constexpr const char *SAVEBUTTONNO = "buttonno";\r
+\r
class SaveEleView;\r
- \r
class SaveElePresenter : public Presenter<SaveEleView>,\r
- public UIView::OnClickListener,\r
- public UIView::OnDragListener\r
+ public UIView::OnClickListener,\r
+ public UIView::OnDragListener,\r
+ public RootView::OnKeyActListener\r
{\r
public:\r
SaveElePresenter();\r
virtual ~SaveElePresenter();\r
- \r
- void OnStart() override; \r
- void OnPause() override; \r
- void OnResume() override; \r
- void OnStop() override; \r
- \r
- static SaveElePresenter *GetInstance(); \r
- \r
+\r
+ void OnStart() override;\r
+ void OnPause() override;\r
+ void OnResume() override;\r
+ void OnStop() override;\r
+\r
+ static SaveElePresenter *GetInstance();\r
+\r
private:\r
- //因为继承了OnClickListener,所以有OnClick属性,至于参数,原函数也这样直接继承;\r
- bool OnClick(UIView &view, const ClickEvent &event) override; \r
- bool OnDrag(UIView &view, const DragEvent &event) override; \r
+ // 因为继承了OnClickListener,所以有OnClick属性,至于参数,原函数也这样直接继承;\r
+ bool OnClick(UIView &view, const ClickEvent &event) override;\r
+ bool OnDrag(UIView &view, const DragEvent &event) override;\r
+ bool OnKeyAct(UIView &view, const KeyEvent &event) override; // 增加按键事件\r
};\r
-} //namespace OHOS\r
- \r
- \r
-#endif //SLEEPDETAIL_PRESENTER_H
\ No newline at end of file
+} // namespace OHOS\r
+\r
+#endif // SLEEPDETAIL_PRESENTER_H
\ No newline at end of file
\r
#include "BaseView.h"\r
#include "View.h"\r
-#include <ui_scroll_view.h>\r
+\r
#include "components/ui_view_group.h"\r
#include "components/ui_label.h"\r
#include "components/ui_label_ext.h"\r
#include "components/ui_image_view.h"\r
#include "components/ui_button.h"\r
+#include "components/ui_scroll_view.h"\r
\r
#include "SaveElePresenter.h"\r
namespace OHOS\r
void OnSetUpView() override;\r
void OnTearDownView() override;\r
void OnStop() override;\r
- void Init();\r
+ void InitView();\r
void DeInit();\r
- UIView *GetView();\r
\r
private:\r
UIView::OnDragListener *draglistener{nullptr};\r
\r
- // void InitImage(void);\r
- // void InitLable(void);\r
-\r
- // 以下控件属性通过new实例化后,add到对应root属性上;\r
- // SaveEleView(constSaveEleView &) = delete;\r
- // SaveEleView &operator=(constSaveEleView &) = delete;\r
SaveEleView(SaveEleView &&) = delete;\r
SaveEleView &operator=(SaveEleView &&) = delete;\r
\r
- UIViewGroup *container_ = nullptr;\r
- UIScrollView *scrollView1_ = nullptr;\r
- UILabel *label1_ = nullptr;\r
- UILabel *label3_ = nullptr;\r
- UILabel *label4_ = nullptr;\r
- UIButton *button1_ = nullptr;\r
- UIButton *button2_ = nullptr;\r
- UIImageView *image2_ = nullptr;\r
- UIImageView *image1_ = nullptr;\r
- UILabel *label2_ = nullptr;\r
+ UILabelExt *labeltitle = nullptr;\r
+ UILabelExt *labelnote = nullptr;\r
+ UILabelExt *labelkown = nullptr;\r
+ UIButton *buttonok = nullptr;\r
+ UIButton *buttonno = nullptr;\r
+ UIImageView *iamgeicon = nullptr;\r
+\r
+ UIScrollView *container_{nullptr};\r
};\r
} // namespace OHOS\r
#endif // SaveEle_PRESENTER_H\r
+/*** \r
+ * @Date: 2024-05-30 15:59:37\r
+ * @LastEditors: Caisking 3449750381@qq.com\r
+ * @LastEditTime: 2024-08-09 15:14:49\r
+ * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/saveele/src/SaveElePresenter.cpp\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
+#include "KeyInputListener.h"\r
+#include "custom_utils.h"\r
+#include "common/key_code.h"\r
\r
#include "saveele/include/SaveElePresenter.h"\r
\r
bool SaveElePresenter::OnDrag(UIView &view, const DragEvent &event)\r
{\r
\r
- // if (event.GetDragDirection() == DragEvent::DIRECTION_LEFT_TO_RIGHT)\r
- // {\r
- // NativeAbility::GetInstance().ChangeSlice(VIEW_APPLIST);\r
- // }\r
+ if (event.GetDragDirection() == DragEvent::DIRECTION_LEFT_TO_RIGHT &&\r
+ (event.GetDeltaX() > 20) && (event.GetDeltaX() > (2 * MATH_ABS(event.GetDeltaY()))))\r
+ {\r
+ NativeAbility::GetInstance().Back();\r
+ }\r
UNUSED(view);\r
return true;\r
}\r
\r
bool SaveElePresenter::OnClick(UIView &view, const ClickEvent &event)\r
{\r
- // 根据控件id查找是哪个控件触发了点击回调\r
- // if (strcmp(view.GetViewId(), 控件ID) == 0)\r
- if (strcmp(view.GetViewId(), "button1") == 0)\r
+ if (strcmp(view.GetViewId(), SAVEBUTTONNO) == 0)\r
+ {\r
+ NativeAbility::GetInstance().Back();\r
+ }\r
+ if (strcmp(view.GetViewId(), SAVEBUTTONOK) == 0)\r
{\r
- // NativeAbility::GetInstance().ChangeSlice(VIEW_MAIN);\r
- uint16_t preSlice = NativeAbility::GetInstance().GetPreSliceId();\r
- NativeAbility::GetInstance().ChangeSlice(preSlice);\r
+ NativeAbility::GetInstance().EnterSlice(VIEW_SAVEBAT);\r
}\r
- if (strcmp(view.GetViewId(), "button2") == 0)\r
+ return true;\r
+ }\r
+ bool SaveElePresenter::OnKeyAct(UIView &view, const KeyEvent &event)\r
+ {\r
+ unsigned short keyID = event.GetKeyId();\r
+ unsigned short keyState = event.GetState();\r
+ // 如果是power键,且是亮屏状态,按键释放就返回上一级\r
+ if (keyID == static_cast<uint16_t>(ZliteKeyCode::ZLITE_KEY_POWER) && keyState == 0 && uapi_get_screen_state() == 0)\r
{\r
- NativeAbility::GetInstance().ChangeSlice(VIEW_SAVEBAT);\r
+ NativeAbility::GetInstance().Back();\r
}\r
return true;\r
}\r
-\r
+/***\r
+ * @Date: 2024-04-15 10:55:58\r
+ * @LastEditors: Caisking 3449750381@qq.com\r
+ * @LastEditTime: 2024-08-09 14:41:32\r
+ * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/saveele/src/SaveEleView.cpp\r
+ */\r
\r
#include "saveele/include/SaveEleView.h"\r
+#include "saveele/include/SaveElePresenter.h"\r
\r
#include "common/image_cache_manager.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 "uicomponents/UIComponents.h"\r
+#include "ui_resource_string.h"\r
+#include "components/ui_scroll_view.h"\r
+\r
namespace OHOS\r
{\r
\r
static SaveEleView *g_pSaveEleView{nullptr};\r
+ static const uint32_t BACK_GROUND_COLOR = 0xfff6f6f6;\r
+\r
+ static constexpr char *iconImgPath = "/user/res/Save_Ele/SaveEle.bin";\r
+ static constexpr char *butnoImgPath = "/user/res/Save_Ele/Save_Error.bin";\r
+ static constexpr char *butokImgPath = "/user/res/Save_Ele/Save_Right.bin";\r
\r
SaveEleView::SaveEleView()\r
{\r
-\r
g_pSaveEleView = this;\r
}\r
\r
SaveEleView::~SaveEleView()\r
{\r
- DeInit();\r
+ UIViewGroup *tmpGroup = dynamic_cast<UIViewGroup *>(container_);\r
+ UIViewGroup::RemoveAndDeleteAllRecursively(tmpGroup);\r
g_pSaveEleView = nullptr;\r
}\r
\r
return g_pSaveEleView;\r
}\r
\r
- void SaveEleView::Init()\r
+ void SaveEleView::InitView()\r
{\r
if (container_ == nullptr)\r
{\r
- container_ = new UIViewGroup();\r
+ container_ = new UIScrollView();\r
container_->SetPosition(0, 0, 466, 466);\r
container_->SetStyle(STYLE_BACKGROUND_OPA, 0);\r
}\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
-\r
- // Set additional property\r
- scrollView1_->SetDirection(1);\r
-\r
- // Add the CallBack about events\r
- UIView::OnDragListener *scrollView1Drag = static_cast<UIView::OnDragListener *>(SaveElePresenter::GetInstance());\r
- scrollView1_->SetOnDragListener(scrollView1Drag);\r
- // Add to rootView\r
- container_->Add(scrollView1_);\r
- scrollView1_->SetVisible(true);\r
-\r
- // Add Label to App\r
- if (label1_ == nullptr)\r
- {\r
- label1_ = new UILabel();\r
- }\r
- label1_->SetPosition(173, 52); // widget's left position and top position\r
- label1_->Resize(120, 35); // widget's width and height\r
- label1_->SetViewId("label1"); // Set style\r
- label1_->SetStyle(STYLE_TEXT_FONT, 30);\r
- label1_->SetStyle(STYLE_LINE_SPACE, 0);\r
- label1_->SetStyle(STYLE_LETTER_SPACE, 1);\r
- label1_->SetStyle(STYLE_LINE_HEIGHT, 35);\r
-\r
- // Set additional property\r
- label1_->SetText("省电模式");\r
- label1_->SetLineBreakMode(UILabel::LINE_BREAK_ADAPT);\r
- label1_->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);\r
- label1_->SetRollSpeed(0);\r
- label1_->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 30);\r
-\r
- // Add to scrollView1\r
- scrollView1_->Add(label1_);\r
- label1_->SetVisible(true);\r
-\r
- // Add Label to App\r
- if (label3_ == nullptr)\r
- {\r
- label3_ = new UILabel();\r
- }\r
- label3_->SetPosition(33, 440); // widget's left position and top position\r
- label3_->Resize(200, 60); // widget's width and height\r
- label3_->SetViewId("label3"); // Set style\r
- label3_->SetStyle(STYLE_TEXT_FONT, 30);\r
- label3_->SetStyle(STYLE_LINE_HEIGHT, 35);\r
+ /*初始化label*/\r
+ InitLabelExt(labeltitle, 83, 50, 300, 35, "labletitle", STR_POWER_SAVE_MODE, DEFAULT_VECTOR_FONT_FILENAME, 30);\r
+ InitLabelExt(labelnote, 53, 217, 360, 200, "labletitle", STR_SAVENOTE, DEFAULT_VECTOR_FONT_FILENAME, 30);\r
+ InitLabelExt(labelkown, 53, 385, 360, 100, "labelrecord", STR_SAVEBACK, DEFAULT_VECTOR_FONT_FILENAME, 30);\r
+ labelkown->SetTextColor(Color::Orange());\r
\r
- // Set additional property\r
- label3_->SetText("长按屏幕3秒以上或充电可退\n出省电模式");\r
- label3_->SetLineBreakMode(UILabel::LINE_BREAK_ADAPT);\r
- label3_->SetTextColor(Color::GetColorFromRGBA(0xff, 0xc3, 0x00, 0xff));\r
- label3_->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);\r
- label3_->SetRollSpeed(0);\r
- label3_->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 30);\r
+ /*初始化图片*/\r
+ InitImageView(iamgeicon, 188, 121, 80, 90, "saveicon", iconImgPath);\r
\r
- // Add to scrollView1\r
- scrollView1_->Add(label3_);\r
- label3_->SetVisible(true);\r
+ /*初始化按键*/\r
+ InitButton(buttonno, 110, 501, 100, 100, SAVEBUTTONNO);\r
+ buttonno->SetImageSrc(butnoImgPath, butnoImgPath);\r
+ buttonno->SetOnClickListener(presenter_);\r
\r
- // Add Label to App\r
- if (label4_ == nullptr)\r
- {\r
- label4_ = new UILabel();\r
- }\r
- label4_->SetPosition(173, 547); // widget's left position and top position\r
- label4_->Resize(400, 395); // widget's width and height\r
- label4_->SetViewId("label4"); // Set style\r
- label4_->SetStyle(STYLE_TEXT_FONT, 30);\r
- label4_->SetStyle(STYLE_LINE_HEIGHT, 35);\r
-\r
- // Set additional property\r
- label4_->SetText("是否开启");\r
- label4_->SetLineBreakMode(UILabel::LINE_BREAK_ADAPT);\r
- label4_->SetTextColor(Color::GetColorFromRGBA(0x99, 0x99, 0x99, 0xff));\r
- label4_->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);\r
- label4_->SetRollSpeed(0);\r
- label4_->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 30);\r
-\r
- // Add to scrollView1\r
- scrollView1_->Add(label4_);\r
- label4_->SetVisible(true);\r
-\r
- // Add Button to App\r
- if (button1_ == nullptr)\r
- {\r
- button1_ = new UIButton();\r
- }\r
- button1_->SetPosition(110, 636); // widget's left position and top position\r
- button1_->Resize(100, 100); // widget's width and height\r
- button1_->SetViewId("button1"); // Set style\r
- button1_->SetStyle(STYLE_BACKGROUND_COLOR, 0xff000000);\r
- button1_->SetStyle(STYLE_BACKGROUND_OPA, 0x00);\r
-\r
- char *button1defaultImgSrc = "/user/res/Save_Ele/Save_Error.bin";\r
- char *button1triggeredImgSrc = nullptr;\r
- button1_->SetImageSrc(button1defaultImgSrc, button1triggeredImgSrc);\r
- button1_->SetStyleForState(STYLE_BACKGROUND_COLOR, 0xffff1919, UIButton::PRESSED);\r
- button1_->SetStyleForState(STYLE_BORDER_COLOR, 0xff0b1928, UIButton::PRESSED);\r
-\r
- // Add the CallBack about events\r
- UIView::OnClickListener *button1Click = static_cast<UIView::OnClickListener *>(SaveElePresenter::GetInstance());\r
- button1_->SetOnClickListener(button1Click);\r
- // Add to scrollView1\r
- scrollView1_->Add(button1_);\r
- button1_->SetVisible(true);\r
-\r
- // Add Button to App\r
- if (button2_ == nullptr)\r
- {\r
- button2_ = new UIButton();\r
- }\r
- button2_->SetPosition(255, 636); // widget's left position and top position\r
- button2_->Resize(100, 100); // widget's width and height\r
- button2_->SetViewId("button2"); // Set style\r
- button2_->SetStyle(STYLE_BACKGROUND_COLOR, 0xff000000);\r
- button2_->SetStyle(STYLE_BACKGROUND_OPA, 0x00);\r
-\r
- char *button2defaultImgSrc = "/user/res/Save_Ele/Save_Right.bin";\r
- char *button2triggeredImgSrc = nullptr;\r
- button2_->SetImageSrc(button2defaultImgSrc, button2triggeredImgSrc);\r
- button2_->SetStyleForState(STYLE_BACKGROUND_COLOR, 0xff19ff5e, UIButton::PRESSED);\r
- button2_->SetStyleForState(STYLE_BORDER_COLOR, 0xff0b1928, UIButton::PRESSED);\r
-\r
- // Add the CallBack about events\r
- UIView::OnClickListener *button2Click = static_cast<UIView::OnClickListener *>(SaveElePresenter::GetInstance());\r
- button2_->SetOnClickListener(button2Click);\r
- // Add to scrollView1\r
- scrollView1_->Add(button2_);\r
- button2_->SetVisible(true);\r
-\r
- // Add ImageView to App\r
- if (image2_ == nullptr)\r
- {\r
- image2_ = new UIImageView();\r
- }\r
- image2_->SetPosition(183, 775); // widget's left position and top position\r
- image2_->Resize(100, 100); // widget's width and height\r
- image2_->SetViewId("image2"); // Set style\r
-\r
- // Set additional property\r
-\r
- // Add to scrollView1\r
- scrollView1_->Add(image2_);\r
- image2_->SetVisible(true);\r
-\r
- // Add ImageView to App\r
- if (image1_ == nullptr)\r
- {\r
- image1_ = new UIImageView();\r
- }\r
- image1_->SetPosition(188, 121); // widget's left position and top position\r
- image1_->Resize(90, 90); // widget's width and height\r
- image1_->SetViewId("image1"); // Set style\r
-\r
- // Set additional property\r
- char *image1imagesPath = "/user/res/Save_Ele/SaveEle.bin";\r
- image1_->SetSrc(image1imagesPath);\r
-\r
- // Add to scrollView1\r
- scrollView1_->Add(image1_);\r
- image1_->SetVisible(true);\r
-\r
- // Add Label to App\r
- if (label2_ == nullptr)\r
- {\r
- label2_ = new UILabel();\r
- }\r
- label2_->SetPosition(33, 217); // widget's left position and top position\r
- label2_->Resize(400, 395); // widget's width and height\r
- label2_->SetViewId("label2"); // Set style\r
- label2_->SetStyle(STYLE_TEXT_FONT, 30);\r
- label2_->SetStyle(STYLE_LINE_HEIGHT, 35);\r
+ InitButton(buttonok, 255, 501, 100, 100, SAVEBUTTONOK);\r
+ buttonok->SetImageSrc(butokImgPath, butokImgPath);\r
+ buttonok->SetOnClickListener(presenter_);\r
\r
- // Set additional property\r
- label2_->SetText("开启省电模式会关闭非必要的\n蓝牙连接(通话/耳机蓝牙),以\n及传感器监测(心率监测及血\n氧监测等会停止)等功能\n 仅保留时间日期可查看");\r
- label2_->SetLineBreakMode(UILabel::LINE_BREAK_ADAPT);\r
- label2_->SetTextColor(Color::GetColorFromRGBA(0x99, 0x99, 0x99, 0xff));\r
- label2_->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);\r
- label2_->SetRollSpeed(0);\r
- label2_->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 30);\r
-\r
- // Add to scrollView1\r
- scrollView1_->Add(label2_);\r
- label2_->SetVisible(true);\r
- }\r
-\r
- void SaveEleView::DeInit()\r
- {\r
- scrollView1_->RemoveAll();\r
- container_->RemoveAll();\r
- if (label1_ != nullptr)\r
- {\r
- delete label1_;\r
- label1_ = nullptr;\r
- }\r
- if (label3_ != nullptr)\r
- {\r
- delete label3_;\r
- label3_ = nullptr;\r
- }\r
- if (label4_ != nullptr)\r
- {\r
- delete label4_;\r
- label4_ = nullptr;\r
- }\r
- if (button1_ != nullptr)\r
- {\r
- delete button1_;\r
- button1_ = nullptr;\r
- }\r
- if (button2_ != nullptr)\r
- {\r
- delete button2_;\r
- button2_ = nullptr;\r
- }\r
- if (image2_ != nullptr)\r
- {\r
- delete image2_;\r
- image2_ = nullptr;\r
- }\r
- if (image1_ != nullptr)\r
- {\r
- delete image1_;\r
- image1_ = nullptr;\r
- }\r
- if (label2_ != nullptr)\r
- {\r
- delete label2_;\r
- label2_ = nullptr;\r
- }\r
- if (scrollView1_ != nullptr)\r
- {\r
- delete scrollView1_;\r
- scrollView1_ = nullptr;\r
- }\r
- if (container_ != nullptr)\r
- {\r
- delete container_;\r
- container_ = nullptr;\r
- }\r
+ container_->Add(labeltitle);\r
+ container_->Add(labelnote);\r
+ container_->Add(labelkown);\r
+ container_->Add(iamgeicon);\r
+ container_->Add(buttonno);\r
+ container_->Add(buttonok);\r
}\r
\r
- UIView *SaveEleView::GetView()\r
- {\r
- Init();\r
- return container_;\r
- }\r
void SaveEleView::OnStart()\r
{\r
+\r
+ View<SaveElePresenter>::OnStart();\r
+\r
container_ = new UIScrollView();\r
if (container_ == nullptr)\r
{\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "container_ new fail");\r
return;\r
}\r
- container_->SetPosition(0, 0);\r
- container_->SetWidth(Screen::GetInstance().GetWidth());\r
- container_->SetHeight(Screen::GetInstance().GetHeight() * 2);\r
-\r
- // 创建 draglistener 实例并设置为拖动监听器\r
- UIView::OnDragListener *draglistener = static_cast<UIView::OnDragListener *>(SaveElePresenter::GetInstance());\r
- if (draglistener == nullptr)\r
- {\r
- return;\r
- }\r
- container_->SetOnDragListener(draglistener);\r
+ container_->SetScrollBlankSize(35);\r
+ container_->SetReboundSize(50);\r
+ container_->SetPosition(0, 0, Screen::GetInstance().GetWidth(), Screen::GetInstance().GetHeight());\r
\r
+ container_->SetOnDragListener(presenter_);\r
container_->SetTouchable(true);\r
container_->SetDraggable(true);\r
+ container_->SetStyle(STYLE_BACKGROUND_COLOR, BACK_GROUND_COLOR);\r
+ container_->SetStyle(STYLE_BACKGROUND_COLOR, Color::Black().full);\r
\r
- GetView();\r
- RootView::GetInstance()->Add(container_);\r
+ InitView();\r
+ SetContainerView(container_);\r
+ RootView::GetInstance()->SetOnKeyActListener(presenter_);\r
}\r
\r
void SaveEleView::OnSetUpView()\r
{\r
-\r
View<SaveElePresenter>::OnSetUpView();\r
Draw();\r
}\r
\r
void SaveEleView::OnTearDownView()\r
{\r
-\r
View<SaveElePresenter>::OnTearDownView();\r
return;\r
}\r
void SaveEleView::OnStop()\r
{\r
View<SaveElePresenter>::OnStop();\r
+ if (container_ != nullptr)\r
+ {\r
+ container_->RemoveAll();\r
+ delete container_;\r
+ container_ = nullptr;\r
+ }\r
RootView::GetInstance()->RemoveAll();\r
return;\r
}\r
TakephotosView::~TakephotosView()
{
- DeInit();
+ // DeInit();
+
+ creamAnimator->Stop();
+ smileAnimator->Start();
+
+ UIViewGroup *tmpGroup = dynamic_cast<UIViewGroup *>(container_);
+ UIViewGroup::RemoveAndDeleteAllRecursively(tmpGroup);
+
g_pTakephotosView = nullptr;
}
creamView->Add(labelnote_);
creamView->Add(buttongo);
- RootView::GetInstance()->Add(creamView);
+ // RootView::GetInstance()->Add(creamView);
+ container_->Add(creamView);
+
creamView->SetDraggable(true);
creamView->SetTouchable(true);
takeView->Add(labelclick_);
takeView->Add(buttontake);
- RootView::GetInstance()->Add(takeView);
+ // RootView::GetInstance()->Add(takeView);
+ container_->Add(takeView);
+
takeView->SetDraggable(true);
takeView->SetTouchable(true);
void TakephotosView::SetPopupViewStatus(PopupPhoto view, bool status)
{
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SetPopupViewStatus %d", view);
- UIView *popupView = nullptr;
+
if (view == PopupPhoto::CreamPopup)
{
- popupView = creamView;
+ creamView->SetVisible(true);
+ takeView->SetVisible(false);
+
creamAnimator->Start();
smileAnimator->Stop();
}
else if (view == PopupPhoto::TakePopup)
{
- popupView = takeView;
+ takeView->SetVisible(true);
+ creamView->SetVisible(false);
+
smileAnimator->Start();
creamAnimator->Stop();
}
-
- if (popupView == nullptr)
- {
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "PopupView is NULL");
- return;
- }
-
- if (container_ != nullptr)
- {
- container_->SetVisible(!status);
- }
-
- popupView->SetVisible(status);
}
void TakephotosView::OnStart()
ShowTakeView();
PreLoad();
- RootView::GetInstance()->Add(container_);
SetContainerView(container_);
RootView::GetInstance()->SetOnKeyActListener(presenter_);
UILabelButtonExt *buttonok_ = nullptr;
UIPicker *Picker_ = nullptr;
- UIScrollView *SetCaluliScrollView;
+ UIScrollView *SetCaluliScrollView{nullptr};
};
} // namespace OHOS
#endif
+/***
+ * @Date: 2024-04-18 11:59:51
+ * @LastEditors: Caisking 3449750381@qq.com
+ * @LastEditTime: 2024-08-10 10:28:21
+ * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/traing/include/TrainingSetMileView.h
+ */
/***
* @Date: 2024-04-18 11:59:51
* @LastEditors: Caisking 3449750381@qq.com
UILabelButtonExt *buttonok_ = nullptr;
UIPicker *Picker_ = nullptr;
- UIScrollView *SetMileScrollView;
+ UIScrollView *SetMileScrollView{nullptr};
};
} // namespace OHOS
#endif
UILabelButtonExt *buttonok_ = nullptr;
UIPicker *Picker_ = nullptr;
- UIScrollView *SetStepScrollView;
+ UIScrollView *SetStepScrollView{nullptr};
};
} // namespace OHOS
#endif
+/***
+ * @Date: 2024-04-18 11:58:41
+ * @LastEditors: Caisking 3449750381@qq.com
+ * @LastEditTime: 2024-08-10 10:28:35
+ * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/traing/include/TrainingSetTimeView.h
+ */
/***
* @Date: 2024-04-18 10:57:45
* @LastEditors: Caisking 3449750381@qq.com
UILabelButtonExt*buttonok_ = nullptr;
UIPicker *Picker_ = nullptr;
- UIScrollView *SetTimeScrollView;
+ UIScrollView *SetTimeScrollView{nullptr};
};
} // namespace OHOS
#endif
TraingRecordView::~TraingRecordView()
{
- DeInit();
+ // DeInit();
+ UIViewGroup *tmpGroup = dynamic_cast<UIViewGroup *>(container_);
+ UIViewGroup::RemoveAndDeleteAllRecursively(tmpGroup);
+
g_pTraingRecordView = nullptr;
}
/* DeInit:删除组件 */
void TraingRecordView::DeInit()
{
+
lackView->RemoveAll();
recordView->RemoveAll();
lackView->Add(imagerecord);
lackView->Add(buttongo);
- RootView::GetInstance()->Add(lackView);
+ // RootView::GetInstance()->lackView
+ container_->Add(lackView);
+ printf("lackView Add\r\n");
+
lackView->SetDraggable(true);
lackView->SetTouchable(true);
return;
}
recordView->SetPosition(0, 0);
- recordView->Resize(VERTICAL_RESOLUTION, HORIZONTAL_RESOLUTION);
+ recordView->Resize(466, 466);
recordView->SetScrollBlankSize(20);
recordView->SetReboundSize(50);
recordView->SetDirection(1);
void TraingRecordView::SetPopupViewStatus(PopupRecord view, bool status)
{
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SetPopupViewStatus %d", view);
- UIView *popupView = nullptr;
+
if (view == PopupRecord::LackPopup)
{
TraingRecordModel::GetInstance().SetPopupView(false); // 设置状态为无训练记录
- popupView = lackView;
+ lackView->SetVisible(true); // 隐藏界面
+ recordView->SetVisible(false); // 隐藏界面
}
else if (view == PopupRecord::RecordPopup)
{
TraingRecordModel::GetInstance().SetPopupView(true); // 设置状态为有训练记录
- popupView = recordView;
- }
- if (popupView == nullptr)
- {
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "PopupView is NULL");
- return;
- }
- if (container_ != nullptr)
- {
- container_->SetVisible(!status);
+ lackView->SetVisible(false); // 隐藏界面
+ recordView->SetVisible(true); // 隐藏界面
}
- popupView->SetVisible(status);
}
// 获取目前的view
void TraingRecordView::OnStart()
return;
}
container_->SetPosition(0, 0, Screen::GetInstance().GetWidth(), Screen::GetInstance().GetHeight());
- // 创建 draglistener 实例并设置为拖动监听器
- UIView::OnDragListener *draglistener = static_cast<UIView::OnDragListener *>(TraingRecordPresenter::GetInstance());
- if (draglistener == nullptr)
- {
- return;
- }
- container_->SetOnDragListener(draglistener);
+
+ container_->SetOnDragListener(presenter_);
container_->SetTouchable(true);
container_->SetDraggable(true);
container_->SetStyle(STYLE_BACKGROUND_COLOR, BACK_GROUND_COLOR);
ShowLackView();
ShowRecordView();
PreLoad();
- RootView::GetInstance()->Add(container_);
+
SetContainerView(container_);
+
// 增加按键监听
RootView::OnKeyActListener *keyactListener = (RootView::OnKeyActListener *)OHOS::TraingRecordPresenter::GetInstance();
RootView::GetInstance()->SetOnKeyActListener(keyactListener);
{
recordView->Add(TraingRecordList);
recordView->SetStyle(STYLE_BACKGROUND_OPA, OPA_TRANSPARENT);
- RootView::GetInstance()->Add(recordView);
+ container_->Add(recordView);
+ printf("recordView Add\r\n");
TraingRecordList->SetAdapter(p_TraingRecordAdapter);
}
Draw();
/***
* @Date: 2024-05-30 15:59:37
* @LastEditors: Caisking 3449750381@qq.com
- * @LastEditTime: 2024-07-04 19:20:34
+ * @LastEditTime: 2024-08-10 15:24:43
* @FilePath: /FD230/code/sdk/application/wearable/nativeabilityfwk/src/transition/ZoomTransition.cpp
*/
/*
namespace OHOS {
static constexpr int16_t RANGE = 1000;
-REGIST_TRANSITION(TransitionType::TRANSITION_ZOOM, ZoomTransition, 200, true, true);
+REGIST_TRANSITION(TransitionType::TRANSITION_ZOOM, ZoomTransition, 80, true, true);
void ZoomTransition::OnTransitionStart(UIImageView* current, UIImageView* target)
{