* @Author: luozheng 1732036298@qq.com
* @Date: 2024-04-10 11:58:21
* @LastEditors: luozheng 1732036298@qq.com
- * @LastEditTime: 2024-08-26 17:39:08
+ * @LastEditTime: 2024-09-29 21:19:46
* @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/dnotdisturb/src/DnotDisturbView.cpp
*/
#include "dnotdisturb/include/DnotDisturbView.h"
delete ButtonOff;
ButtonOff = nullptr;
}
+ if (temp != nullptr)
+ {
+ delete temp;
+ temp = nullptr;
+ }
+ delete scrollView;
+ scrollView = nullptr;
}
}
scrollView->SetStyle(STYLE_BACKGROUND_OPA, 0xff);
scrollView->SetTouchable(true);
scrollView->SetDraggable(true);
+ scrollView->SetScrollBlankSize(30);
+ scrollView->SetReboundSize(30);
+ scrollView->SetDirection(1);
+ scrollView->SetThrowDrag(true); // 设置手指抬起屏幕后是否继续滚动。
+ scrollView->SetMaxScrollDistance(1000); // 设置手指抬起屏幕后的最大滚动距离。
+ scrollView->SetSwipeACCLevel(800); /*设置手指抬起屏幕后的补偿距离。*/
+ FocusManager::GetInstance()->RequestFocus(scrollView);
+ FocusManager::GetInstance()->RequestFocusByDirection(FOCUS_DIRECTION_UP);
+ scrollView->SetRotateFactor(1.0);
UIView::OnDragListener *dragListener = static_cast<UIView::OnDragListener *>(DnotDisturbPresenter::GetInstance());
if (dragListener == nullptr)
{
showTitleLabel->SetLineBreakMode(UILabel::LINE_BREAK_MARQUEE);
showTitleLabel->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);
showTitleLabel->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 30);
+ scrollView->Add(showTitleLabel);
/* -------------------------------------------------------------------------- */
DnotDisturbImage = new UIImageView();
if (DnotDisturbImage == nullptr)
DnotDisturbImage->SetAutoEnable(false);
DnotDisturbImage->SetResizeMode(UIImageView::FILL);
DnotDisturbImage->SetSrc(PNG_APPLIST_DISTURB_IMAGE);
+ scrollView->Add(DnotDisturbImage);
/* -------------------------------------------------------------------------- */
AttentionLabel = new UILabelExt();
if (AttentionLabel == nullptr)
AttentionLabel->SetStyle(STYLE_TEXT_FONT, 30);
AttentionLabel->SetStyle(STYLE_LINE_HEIGHT, 35);
// bool ?勿扰模式已开启是否关闭:开启勿扰模式,手表将不会发出震动与铃声,是否开启
- AttentionLabel->SetTextId(DnotDisturbModel::GetInstance().GetDoNotDisturbModeEnabled() ? STR_DISTURBNOTE_OFF : STR_DO_NOT_DISTURB_MODE);
+ AttentionLabel->SetTextId(DnotDisturbModel::GetInstance().GetDoNotDisturbModeEnabled() ? STR_DISTURBNOTE_OFF : STR_DO_NOT_DISTURB_MODE);
AttentionLabel->SetLineBreakMode(UILabelExt::LINE_BREAK_WRAP);
AttentionLabel->SetTextColor(Color::GetColorFromRGBA(0x99, 0x99, 0x99, 0xff));
AttentionLabel->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);
AttentionLabel->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 30);
+ scrollView->Add(AttentionLabel);
/* -------------------------------------------------------------------------- */
ButtonOn = new UILabelButtonExt();
if (ButtonOn == nullptr)
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "DnotDisturbView::ButtonOn new fail!!");
return;
}
- ButtonOn->SetPosition(256, 320, 120, 120);
+ ButtonOn->SetPosition(256, AttentionLabel->GetY() + AttentionLabel->GetHeight() + 20, 120, 120);
ButtonOn->SetStyle(STYLE_BACKGROUND_COLOR, 0xff000000);
ButtonOn->SetStyle(STYLE_BACKGROUND_OPA, 0x00);
const char *ButtonOnImgSrc = "/user/res/SYSTEM_CheckOn.bin";
ButtonOn->SetImagePosition(10, 10);
ButtonOn->SetStyleForState(STYLE_BACKGROUND_COLOR, 0xffffffff, UIButton::PRESSED);
ButtonOn->SetStyleForState(STYLE_BACKGROUND_OPA, 0x00, UIButton::PRESSED);
- UIView::OnClickListener *labelButtonClick1 = static_cast<UIView::OnClickListener *>(DnotDisturbPresenter::GetInstance());
- ButtonOn->SetOnClickListener(labelButtonClick1);
+ ButtonOn->SetOnClickListener(presenter_);
+ scrollView->Add(ButtonOn);
/* -------------------------------------------------------------------------- */
ButtonOff = new UILabelButtonExt();
if (ButtonOff == nullptr)
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "DnotDisturbView::ButtonOff new fail!!");
return;
}
- ButtonOff->SetPosition(111, 320, 120, 120);
+ ButtonOff->SetPosition(111, AttentionLabel->GetY() + AttentionLabel->GetHeight() + 20, 120, 120);
ButtonOff->SetStyle(STYLE_BACKGROUND_COLOR, 0xff000000);
ButtonOff->SetStyle(STYLE_BACKGROUND_OPA, 0x00);
const char *ButtonOffImgSrc = "/user/res/SYSTEM_CheckOff.bin";
ButtonOff->SetImagePosition(10, 10);
ButtonOff->SetStyleForState(STYLE_BACKGROUND_COLOR, 0xffffffff, UIButton::PRESSED);
ButtonOff->SetStyleForState(STYLE_BACKGROUND_OPA, 0x00, UIButton::PRESSED);
- UIView::OnClickListener *labelButtonClick2 = static_cast<UIView::OnClickListener *>(DnotDisturbPresenter::GetInstance());
- ButtonOff->SetOnClickListener(labelButtonClick2);
+ ButtonOff->SetOnClickListener(presenter_);
+ scrollView->Add(ButtonOff);
+ /* -------------------------------------------------------------------------- */
+ if ((ButtonOff->GetY() + ButtonOff->GetHeight() > Screen::GetInstance().GetHeight()))
+ {
+ if (temp == nullptr)
+ {
+ temp = new UIImageView();
+ if (temp == nullptr)
+ {
+ return;
+ }
+
+ temp->SetPosition(43, ButtonOff->GetY() + ButtonOff->GetHeight(), 380, 40);
+ temp->SetVisible(false);
+ scrollView->Add(temp);
+ }
+ }
}
}
void DnotDisturbView::OnStart()
{
View<DnotDisturbPresenter>::OnStart();
+ SetContainerView(new UIViewGroup());
+ if (GetContainer() == nullptr)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "container_ new fail!!");
+ return;
+ }
+ container_->SetPosition(0, 0, Screen::GetInstance().GetWidth(), Screen::GetInstance().GetHeight());
+ container_->SetTouchable(true);
+ container_->SetDraggable(true);
+
DnotDisturbViewInit();
- // 增加按键监听
- RootView::OnKeyActListener *keyactListener = (RootView::OnKeyActListener *)OHOS::DnotDisturbPresenter::GetInstance();
- RootView::GetInstance()->SetOnKeyActListener(keyactListener);
+ RootView::GetInstance()->SetOnKeyActListener(presenter_);
}
void DnotDisturbView::OnSetUpView()
{
View<DnotDisturbPresenter>::OnSetUpView();
- scrollView->Add(showTitleLabel);
- scrollView->Add(DnotDisturbImage);
- scrollView->Add(AttentionLabel);
- scrollView->Add(ButtonOn);
- scrollView->Add(ButtonOff);
- RootView::GetInstance()->Add(scrollView);
- container_ = scrollView;
+ if (scrollView)
+ {
+ container_->Add(scrollView);
+ }
Draw();
}
void DnotDisturbView::OnStop()
{
-
View<DnotDisturbPresenter>::OnStop();
+ if (container_ != nullptr)
+ {
+ container_->RemoveAll();
+ delete container_;
+ container_ = nullptr;
+ }
RootView::GetInstance()->RemoveAll();
RootView::GetInstance()->ClearOnKeyActListener();
ClearAll();