#include <string>
#include "components/ui_list.h"
#include "components/ui_label.h"
+#include "components/ui_label_ext.h"
#include "components/ui_view_group.h"
#include "components/ui_image_view.h"
#include "components/abstract_adapter.h"
#include "SettingModel.h"
#include "SettingItemView.h"
-namespace OHOS {
-class SettingAdapter : public AbstractAdapter {
-public:
- explicit SettingAdapter();
- ~SettingAdapter() override;
-
- /* *
- * @brief Sets the UIView adapter data, which is a SettingItem linked list.
- *
- * @param data Indicates the SettingItem linked list data.
- * @since 1.0
- * @version 1.0
- */
- void SetData(std::list<SettingItem> &data);
-
- /* *
- * @brief Obtains the <b>data</b> size of the UILabel adapter.
- *
- * @return Returns the <b>data</b> size of the UILabel adapter.
- * @since 1.0
- * @version 1.0
- */
- uint16_t GetCount(void) override;
-
- UIView *GetView(UIView *inView, int16_t index) override;
-
- void AddListItem(const SettingItem &item);
-
- void SetItemClickListener(UIView::OnClickListener *itemclicklistener)
+namespace OHOS
+{
+ class SettingAdapter : public AbstractAdapter
{
- itemClickListener = itemclicklistener;
- }
-private:
- std::list<SettingItem> listData;
- UIView::OnClickListener *itemClickListener{nullptr};
-};
+ public:
+ explicit SettingAdapter();
+ ~SettingAdapter() override;
+
+ /* *
+ * @brief Sets the UIView adapter data, which is a SettingItem linked list.
+ *
+ * @param data Indicates the SettingItem linked list data.
+ * @since 1.0
+ * @version 1.0
+ */
+ void SetData(std::list<SettingItem> &data);
+
+ /* *
+ * @brief Obtains the <b>data</b> size of the UILabel adapter.
+ *
+ * @return Returns the <b>data</b> size of the UILabel adapter.
+ * @since 1.0
+ * @version 1.0
+ */
+ uint16_t GetCount(void) override;
+
+ UIView *GetView(UIView *inView, int16_t index) override;
+
+ void AddListItem(const SettingItem &item);
+
+ void SetItemClickListener(UIView::OnClickListener *itemclicklistener)
+ {
+ itemClickListener = itemclicklistener;
+ }
+
+ private:
+ std::list<SettingItem> listData;
+ UIView::OnClickListener *itemClickListener{nullptr};
+ };
}
#endif
\ No newline at end of file
/*
- * Copyright (c) CompanyNameMagicTag 2021-2021. All rights reserved.
- * Description: SettingItem.h
- * Author:
- * Create: 2021-11-23
+ * @Author: luozheng 1732036298@qq.com
+ * @Date: 2024-01-29 15:37:44
+ * @LastEditors: luozheng 1732036298@qq.com
+ * @LastEditTime: 2024-04-23 18:09:12
+ * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/settings/include/SettingItem.h
*/
-
#ifndef SETTING_ITEM_H
#define SETTING_ITEM_H
#include <cstdint>
-
-namespace OHOS {
-typedef struct {
- AppViewId viewId;
- const char *icon;
- const char *label;
- bool hasSecondMenu;
- bool enableSlideBack;
-} SettingItem;
+#include <AppViewIDs.h>
+#include "ui_resource_string.h"
+namespace OHOS
+{
+ typedef struct
+ {
+ AppViewId viewId;
+ const char *icon;
+ UIResourceTextId textId;
+ bool hasSecondMenu;
+ } SettingItem;
}
#endif
\ No newline at end of file
+/*
+ * @Author: luozheng 1732036298@qq.com
+ * @Date: 2024-03-30 09:14:38
+ * @LastEditors: luozheng 1732036298@qq.com
+ * @LastEditTime: 2024-05-07 20:06:31
+ * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/settings/include/SettingItemView.h
+ */
/*
* Copyright (c) CompanyNameMagicTag 2021-2021. All rights reserved.
* Description: SettingItemView.h
#ifndef SETTING_ITEM_VIEW_H
#define SETTING_ITEM_VIEW_H
-#include "components/ui_label.h"
#include "components/ui_view_group.h"
-#include "components/ui_image_view.h"
-
#include "UiConfig.h"
#include "SettingModel.h"
-
-namespace OHOS {
-class SettingItemView : public UIViewGroup {
-public:
- explicit SettingItemView();
- ~SettingItemView() override;
- virtual void SetItemInfo(const SettingItem itemInfo);
- virtual void SetUpChild();
- bool SlideBackEnabled() const
+#include "components/ui_label_button_ext.h"
+#include "components/ui_label_ext.h"
+#include "components/ui_image_view.h"
+namespace OHOS
+{
+ class SettingItemView : public UIViewGroup
{
- return sItemInfo.enableSlideBack;
- }
- AppViewId GetViewId();
- const char* GetIconId();
-private:
- UIImageView sIcon;
- UILabel sLabel;
- UIImageView sNextImage;
- SettingItem sItemInfo = { VIEW_INVALID, nullptr, nullptr, false, false };
-};
+ public:
+ explicit SettingItemView();
+ ~SettingItemView() override;
+ virtual void SetItemInfo(const SettingItem itemInfo);
+ virtual void SetUpChild();
+ AppViewId GetViewId();
+ const char *GetIconId();
+ UIImageView *GetNeedToUpdateImage(void);
+
+ private:
+ UIImageView Icon;
+ UILabelExt settingLabelExt;
+ UILabelButtonExt settingLabelButtonExt;
+ SettingItem sItemInfo = {VIEW_INVALID, nullptr, STR_EXERCISE_GENERAL, false};
+ /* -------------------------------------------------------------------------- */
+ void NeedToUpdateImageinit(void);
+ UIImageView NeedToUpdateImage; // 提示需要系统更新的icon图片
+ /* -------------------------------------------------------------------------- */
+ };
}
#endif
/*
- * Copyright (c) CompanyNameMagicTag 2021-2021. All rights reserved.
- * Description: SettingModel.h
- * Author:
- * Create: 2021-11-23
+ * @Author: luozheng 1732036298@qq.com
+ * @Date: 2024-03-30 09:14:38
+ * @LastEditors: luozheng 1732036298@qq.com
+ * @LastEditTime: 2024-09-14 19:57:56
+ * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/settings/include/SettingModel.h
*/
#ifndef SETTING_MODEL_H
#include <cstdint>
#include <map>
#include "AppViewIDs.h"
+#include "components/ui_label_ext.h"
#include "UiConfig.h"
#include "SettingItem.h"
#include "SettingPresenter.h"
-namespace OHOS {
- static const uint16_t SETTING_ITEM_COUNT = 10;
- class SettingModel {
+namespace OHOS
+{
+ static const uint16_t SETTING_ITEM_COUNT = 15;
+ class SettingModel
+ {
public:
static SettingModel &GetInstance(void);
void InitSettingItem();
const SettingItem *GetSettinglistItems() const;
uint8_t GetSettingListNum() const;
+ void SetStartIndex(uint16_t index);
+ uint16_t GetStartIndex(void);
+ void SetHeadItemY(int y);
+ int GetHeadItemY(void);
+ bool GetPhoneConnectStatus(void);
+ bool GetEarPhoneConnectStatus(void);
bool GetBlueToothConnectStatus(void);
+ void UpdatePhoneConnectStatus(bool status);
+ void UpdateEarPhoneConnectStatus(bool status);
void UpdateBlueToothConnectStatus(bool status);
+
private:
SettingModel();
- SettingModel(const SettingModel &);
- SettingModel &operator=(const SettingModel &);
+ SettingModel(const SettingModel &) = delete;
+ SettingModel &operator=(const SettingModel &) = delete;
virtual ~SettingModel();
- SettingItem settings[SETTING_ITEM_COUNT] = { VIEW_INVALID, nullptr, nullptr, false };
+ SettingItem settings[SETTING_ITEM_COUNT] = {VIEW_INVALID, nullptr, STR_EXERCISE_GENERAL, false};
int usedLen;
+ uint16_t startIndex{0};
+ int headItemY{0};
+ bool phoneConnectStatus{false};
+ bool earphoneConnectStatus{false};
bool btConnectStatus{false};
};
}
/*
- * Copyright (c) CompanyNameMagicTag 2021-2021. All rights reserved.
- * Description: SettingPresenter.h
- * Author:
- * Create: 2021-11-23
+ * @Author: luozheng 1732036298@qq.com
+ * @Date: 2024-02-19 11:58:05
+ * @LastEditors: luozheng 1732036298@qq.com
+ * @LastEditTime: 2024-09-14 20:14:00
+ * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/settings/include/SettingPresenter.h
*/
-
#ifndef SETTING_PRESENTER_H
#define SETTING_PRESENTER_H
#include "Presenter.h"
#include "components/ui_view.h"
-#include "SettingAdapter.h"
+#include "View.h"
+namespace OHOS
+{
+ class SettingView;
+ class SettingModel;
+ class SettingPresenter : public Presenter<SettingView>,
+ public UIView::OnClickListener,
+ public RootView::OnKeyActListener,
+ public UIView::OnDragListener
+ {
+ public:
+ SettingPresenter();
+ ~SettingPresenter() override;
+ static SettingPresenter *GetInstance();
+ void SetStartIndex(uint16_t index);
+ uint16_t GetStartIndex(void);
+ void SetHeadItemY(int y);
+ int GetHeadItemY(void);
+ int GetListItemNum();
-namespace OHOS {
-class SettingView;
-class SettingModel;
-class SettingAdapter;
-class SettingPresenter : public Presenter<SettingView>,
- public UIView::OnClickListener,
- public UIView::OnDragListener {
-public:
- SettingPresenter();
- ~SettingPresenter() override;
+ void OnStart() override;
+ void OnResume() override;
+ void OnPause() override;
+ void OnStop() override;
- void OnStart() override;
- bool OnClick(UIView &view, const ClickEvent &event) override;
- bool OnDrag(UIView& view, const DragEvent& event) override;
-private:
- SettingModel *settingModel;
-};
+ bool OnClick(UIView &view, const ClickEvent &event) override;
+ bool OnDrag(UIView &view, const DragEvent &event) override;
+ bool OnDragEnd(UIView &view, const DragEvent &event) override;
+ bool OnKeyAct(UIView &view, const KeyEvent &event) override; // 增加按键事件
+ private:
+ SettingModel *settingModel;
+ bool X_DRAG_FLAG{false};
+ };
}
#endif // SETTING_PRESENTER_H
\ No newline at end of file
/*
- * Copyright (c) CompanyNameMagicTag 2021-2021. All rights reserved.
- * Description: SettingView.h
- * Author:
- * Create: 2021-11-23
+ * @Author: luozheng 1732036298@qq.com
+ * @Date: 2024-03-30 09:14:38
+ * @LastEditors: luozheng 1732036298@qq.com
+ * @LastEditTime: 2024-09-14 20:06:44
+ * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/settings/include/SettingView.h
*/
-
#ifndef SETTING_VIEW_H
#define SETTING_VIEW_H
#include "components/root_view.h"
#include "components/ui_view_group.h"
#include "components/ui_scroll_view.h"
-#include "components/ui_label.h"
+#include "components/ui_label_ext.h"
#include "components/ui_list.h"
+#include "window/window.h"
+
#include "SettingAdapter.h"
#include "ChangeSliceListener.h"
-namespace OHOS {
-class SettingPresenter;
-class SettingView : public View<SettingPresenter> {
-public:
- SettingView();
- ~SettingView() override;
+namespace OHOS
+{
+ class SettingPresenter;
+ class SettingView : public View<SettingPresenter>
+ {
+ public:
+ SettingView();
+ ~SettingView() override;
+
+ void OnStart() override;
+
+ void AddSettingItemToList(const SettingItem &item);
- void OnStart() override;
- void RefreshSettingsList(const SettingItem* item, uint8_t count);
-private:
- SettingAdapter *listAdapter{nullptr};
- UIScrollView *scrollView{nullptr};
- UIList *contentList{nullptr};
- UILabel *title{nullptr};
-};
+ private:
+ void CreateSettingView(void);
+ void ClearAll(void);
+ void settingListOnSetUpView(void);
+ void settingListOnStop(void);
+ SettingAdapter *listAdapter{nullptr};
+ UIScrollView *scrollView{nullptr};
+ UIList *contentList{nullptr};
+ UILabelExt *title{nullptr};
+ bool viewInitStatus{false};
+ };
}
#endif // SETTING_VIEW_H
\ No newline at end of file
/*
- * Copyright (c) CompanyNameMagicTag 2021-2021. All rights reserved.
- * Description: SettingAdapter.cpp
- * Author:
- * Create: 2021-11-23
+ * @Author: luozheng 1732036298@qq.com
+ * @Date: 2024-01-29 15:37:44
+ * @LastEditors: luozheng 1732036298@qq.com
+ * @LastEditTime: 2024-10-02 15:33:51
+ * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/settings/src/SettingAdapter.cpp
*/
-
-#include "SettingAdapter.h"
-
-namespace OHOS {
-SettingAdapter::SettingAdapter() {}
-
-SettingAdapter::~SettingAdapter()
-{
- listData.clear();
-}
-
-uint16_t SettingAdapter::GetCount(void)
+// #include "SettingAdapter.h"
+#include "settings/include/SettingAdapter.h"
+namespace OHOS
{
- return listData.size();
-}
+ SettingAdapter::SettingAdapter() {}
-void SettingAdapter::SetData(std::list<SettingItem> &data)
-{
- if (!listData.empty()) {
+ SettingAdapter::~SettingAdapter()
+ {
listData.clear();
}
- std::list<SettingItem>::iterator it;
- for (it = data.begin(); it != data.end(); it++) {
- listData.push_back(*it);
- }
-}
-UIView *SettingAdapter::GetView(UIView *inView, int16_t index)
-{
- if (listData.empty()) {
- return nullptr;
- }
- if (index < 0) {
- return nullptr;
- }
- size_t uindex = index;
- if (uindex >= listData.size()) {
- return nullptr;
+ uint16_t SettingAdapter::GetCount(void)
+ {
+ return listData.size();
}
- std::list<SettingItem>::iterator it = listData.begin();
- for (int i = 0; i < index; i++) {
- it++;
- }
- SettingItem itemData = *it;
- SettingItemView *item = nullptr;
- if (inView == nullptr) {
- item = new SettingItemView();
- } else {
- item = static_cast<SettingItemView *>(inView);
+ void SettingAdapter::SetData(std::list<SettingItem> &data)
+ {
+ if (!listData.empty())
+ {
+ listData.clear();
+ }
+ std::list<SettingItem>::iterator it;
+ for (it = data.begin(); it != data.end(); it++)
+ {
+ listData.push_back(*it);
+ }
}
- item->SetItemInfo(itemData);
- item->SetOnClickListener(itemClickListener);
- return item;
-}
+ UIView *SettingAdapter::GetView(UIView *inView, int16_t index)
+ {
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "SettingAdapter::GetView:%d", index);
+ if (listData.empty())
+ {
+ return nullptr;
+ }
+ if (index < 0)
+ {
+ return nullptr;
+ }
+ size_t uindex = index;
+ if (uindex >= listData.size())
+ {
+ return nullptr;
+ }
-void SettingAdapter::AddListItem(const SettingItem &item)
-{
- listData.push_back(item);
-}
+ std::list<SettingItem>::iterator it = listData.begin();
+ for (int i = 0; i < index; i++)
+ {
+ it++;
+ }
+ SettingItem itemData = *it;
+ SettingItemView *item = nullptr;
+ if (inView == nullptr)
+ {
+ item = new SettingItemView();
+ }
+ else
+ {
+ item = static_cast<SettingItemView *>(inView);
+ }
+
+ item->SetItemInfo(itemData);
+ item->SetOnClickListener(itemClickListener);
+ // UIImageView *view = dynamic_cast<UIImageView *>(item->GetNeedToUpdateImage());
+ // if (view != nullptr && index == 6)
+ // {
+ // item->GetNeedToUpdateImage()->SetVisible(true);
+ // }
+ // else
+ // {
+ // item->GetNeedToUpdateImage()->SetVisible(false);
+ // }
+ item->SetViewIndex(index);
+ return item;
+ }
+
+ void SettingAdapter::AddListItem(const SettingItem &item)
+ {
+ listData.push_back(item);
+ }
} // namespace OHOS
/*
- * Copyright (c) CompanyNameMagicTag 2021-2021. All rights reserved.
- * Description: SettingItemView.cpp
- * Author:
- * Create: 2021-11-23
+ * @Author: luozheng 1732036298@qq.com
+ * @Date: 2024-03-27 19:48:49
+ * @LastEditors: luozheng 1732036298@qq.com
+ * @LastEditTime: 2024-10-02 15:34:50
+ * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/settings/src/SettingItemView.cpp
*/
#include "wearable_log.h"
-#include "SettingItemView.h"
-
-namespace OHOS {
- static constexpr int16 SETTING_ICON_X = 20;
- static constexpr int16 NUM_22 = 22;
- static constexpr int16_t SETTING_ITEM_BUTTON_HEIGHT = 100;
- static constexpr int16_t SETTING_ITEM_LABEL_WIDTH = 155;
- static constexpr int16_t SETTING_ITEM_LABEL_HEIGHT = 100;
- static constexpr int16 SETTING_ITEM_FONT_SIZE = 35;
- static constexpr int16_t SETTINGS_RESIZE_SIZE = 100;
- static constexpr int16_t SETTING_SICON_Y = 15;
- static constexpr int16 NUMS_2 = 2;
- static constexpr int16 NUMS_50 = 50;
+#include "settings/include/SettingItemView.h"
+#include "systemupdate/include/SystemUpdateModel.h"
+namespace OHOS
+{
+ static constexpr int16_t SETTING_ICON_X = 19 + 43;
+ static constexpr int16_t SETTING_SICON_Y = 19;
+ static constexpr int16_t SETTING_SICON_W = 62;
+ static constexpr int16_t SETTING_SICON_H = 62;
+
+ static constexpr int16_t SETTINGLABELEXT_X = 115 + 43;
+ static constexpr int16_t SETTINGLABELEXT_Y = 33;
+ static constexpr int16_t SETTINGLABELEXT_W = 180;
+ static constexpr int16_t SETTINGLABELEXT_H = 35;
+ static constexpr int16_t SETTINGLABELEXT_X2 = 83;
+ static constexpr int16_t SETTINGLABELEXT_Y2 = 50;
+ static constexpr int16_t SETTINGLABELEXT_W2 = 300;
+ static constexpr int16_t SETTINGLABELEXT_H2 = 35;
+ static constexpr int16_t SETTINGLABELEXT_TEXT_FONT = 30;
+ static constexpr int16_t SETTINGLABELEXT_LINE_HEIGHT = 35;
+ static constexpr int16_t SETTINGLABELEXT_ROLLSPEED = 70;
+
+ static constexpr int16_t SETTINGLABELBUTTONEXT_X = 43;
+ static constexpr int16_t SETTINGLABELBUTTONEXT_Y = 0;
+ static constexpr int16_t SETTINGLABELBUTTONEXT_W = 380;
+ static constexpr int16_t SETTINGLABELBUTTONEXT_H = 100;
+ static constexpr int16_t SETTINGLABELBUTTONEXT_TEXT_FONT = 30;
+ static constexpr int16_t SETTINGLABELBUTTONEXT_LINE_HEIGHT = 35;
SettingItemView::SettingItemView()
{
- SetPosition(0, 0, HORIZONTAL_RESOLUTION, SETTING_ITEM_BUTTON_HEIGHT);
+ SetPosition(43, 120, 466, 120);
SetStyle(STYLE_BACKGROUND_COLOR, Color::Black().full);
SetStyle(STYLE_BACKGROUND_OPA, UN_OPACITY);
- SetTouchable(true);
SetUpChild();
-
- Add(&sIcon);
- Add(&sLabel);
- Add(&sNextImage);
+ Add(&settingLabelButtonExt);
+ Add(&settingLabelExt);
+ Add(&Icon);
}
SettingItemView::~SettingItemView()
{
- Remove(&sIcon);
- Remove(&sLabel);
- Remove(&sNextImage);
+ RemoveAll();
}
void SettingItemView::SetItemInfo(const SettingItem itemInfo)
{
sItemInfo = itemInfo;
- sIcon.SetSrc(itemInfo.icon);
- sLabel.SetText(itemInfo.label);
- sNextImage.SetVisible(itemInfo.hasSecondMenu);
+ if (itemInfo.hasSecondMenu)
+ {
+ Icon.SetVisible(true);
+ Icon.SetSrc(itemInfo.icon);
+ settingLabelExt.SetVisible(true);
+ settingLabelExt.SetPosition(SETTINGLABELEXT_X, SETTINGLABELEXT_Y, SETTINGLABELEXT_W, SETTINGLABELEXT_H);
+ settingLabelExt.SetTextId(itemInfo.textId);
+ settingLabelExt.SetAlign(TEXT_ALIGNMENT_LEFT, TEXT_ALIGNMENT_CENTER);
+ settingLabelButtonExt.SetVisible(true);
+ SetHeight(120);
+ SetTouchable(true);
+ }
+ else
+ {
+
+ Icon.SetVisible(false);
+ if (itemInfo.viewId == VIEW_INVALID && itemInfo.textId == STR_MAX_ID)
+ {
+ settingLabelExt.SetVisible(false);
+ SetHeight(60);
+ }
+ else
+ {
+ settingLabelExt.SetVisible(true);
+ SetHeight(120);
+ }
+ settingLabelExt.SetPosition(SETTINGLABELEXT_X2, SETTINGLABELEXT_Y2, SETTINGLABELEXT_W2, SETTINGLABELEXT_H2);
+ settingLabelExt.SetTextId(itemInfo.textId);
+ settingLabelExt.SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);
+ settingLabelButtonExt.SetVisible(false);
+ SetTouchable(false);
+ }
+
+ // if (itemInfo.textId == STR_SYSTEM && SystemUpdateModel::GetInstance().IsLatestVersion() == false) // 如果不是最新系统版本出现小圆点
+ // {
+ // NeedToUpdateImageinit();
+ // }
}
void SettingItemView::SetUpChild()
{
- sIcon.SetPosition(SETTING_ICON_X, SETTING_SICON_Y);
- sIcon.SetStyle(STYLE_IMAGE_OPA, OPA_OPAQUE);
-
- sLabel.SetPosition(SETTING_ITEM_LABEL_WIDTH, 0);
- sLabel.Resize(SETTING_ITEM_LABEL_WIDTH, SETTING_ITEM_LABEL_HEIGHT);
- sLabel.SetFont(DEFAULT_VECTOR_FONT_FILENAME, SETTING_ITEM_FONT_SIZE);
- sLabel.SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);
- sLabel.SetStyle(STYLE_TEXT_OPA, OPA_OPAQUE);
- sLabel.SetStyle(STYLE_TEXT_COLOR, Color::White().full);
- sLabel.SetStyle(STYLE_BACKGROUND_COLOR, Color::Black().full);
- sLabel.SetStyle(STYLE_BACKGROUND_OPA, OPA_OPAQUE);
-
- sNextImage.SetSrc(PNG_SETTING_NEXT_IMAGE);
- sNextImage.SetPosition(LA_HORIZONTAL_RESOLUTION - NUMS_50, (SETTING_ITEM_HEIGHT - sNextImage.GetHeight()) / NUMS_2);
- sNextImage.SetStyle(STYLE_IMAGE_OPA, OPA_OPAQUE);
+ Icon.SetPosition(SETTING_ICON_X, SETTING_SICON_Y, SETTING_SICON_W, SETTING_SICON_H);
+ Icon.SetStyle(STYLE_IMAGE_OPA, OPA_OPAQUE);
+
+ settingLabelExt.SetPosition(SETTINGLABELEXT_X, SETTINGLABELEXT_Y, SETTINGLABELEXT_W, SETTINGLABELEXT_H);
+ settingLabelExt.SetStyle(STYLE_TEXT_FONT, SETTINGLABELEXT_TEXT_FONT);
+ settingLabelExt.SetStyle(STYLE_LINE_HEIGHT, SETTINGLABELEXT_LINE_HEIGHT);
+ settingLabelExt.SetLineBreakMode(UILabel::LINE_BREAK_OSCILLATION);
+ settingLabelExt.SetAlign(TEXT_ALIGNMENT_LEFT, TEXT_ALIGNMENT_CENTER);
+ settingLabelExt.SetRollSpeed(SETTINGLABELEXT_ROLLSPEED);
+ settingLabelExt.SetFont(DEFAULT_VECTOR_FONT_FILENAME, SETTINGLABELEXT_TEXT_FONT);
+
+ settingLabelButtonExt.SetPosition(SETTINGLABELBUTTONEXT_X, SETTINGLABELBUTTONEXT_Y, SETTINGLABELBUTTONEXT_W, SETTINGLABELBUTTONEXT_H);
+ settingLabelButtonExt.SetStyle(STYLE_BACKGROUND_COLOR, 0xff191919);
+ settingLabelButtonExt.SetFont(DEFAULT_VECTOR_FONT_FILENAME, SETTINGLABELBUTTONEXT_TEXT_FONT);
+ settingLabelButtonExt.SetStyle(STYLE_LINE_HEIGHT, SETTINGLABELBUTTONEXT_LINE_HEIGHT);
+ settingLabelButtonExt.SetStyleForState(STYLE_BACKGROUND_COLOR, 0xff000000, UIButton::PRESSED);
+ settingLabelButtonExt.SetAlign(TEXT_ALIGNMENT_LEFT);
+ settingLabelButtonExt.SetLabelPosition(115, 0);
+ settingLabelButtonExt.SetImagePosition(326, 37);
+ settingLabelButtonExt.SetTouchable(false);
+ settingLabelButtonExt.SetImageSrc(PNG_SETTING_NEXT_IMAGE, PNG_SETTING_NEXT_IMAGE);
}
AppViewId SettingItemView::GetViewId()
return sItemInfo.viewId;
}
- const char* SettingItemView::GetIconId()
+ const char *SettingItemView::GetIconId()
{
return sItemInfo.icon;
}
+
+ void SettingItemView::NeedToUpdateImageinit(void)
+ {
+ NeedToUpdateImage.SetPosition(280, 40, 20, 20);
+ NeedToUpdateImage.SetStyle(STYLE_BORDER_RADIUS, 200);
+ char *imagesPath = "/user/res/system/SYSTEM_UPDATE_FLAG.bin";
+ NeedToUpdateImage.SetSrc(imagesPath);
+ NeedToUpdateImage.SetVisible(false);
+
+ Add(&NeedToUpdateImage);
+ }
+
+ UIImageView *SettingItemView::GetNeedToUpdateImage(void)
+ {
+ return &NeedToUpdateImage;
+ }
}
\ No newline at end of file
/*
- * Copyright (c) CompanyNameMagicTag 2021-2021. All rights reserved.
- * Description: SettingModel.cpp
- * Author:
- * Create: 2021-11-23
+ * @Author: luozheng 1732036298@qq.com
+ * @Date: 2024-02-18 09:09:13
+ * @LastEditors: luozheng 1732036298@qq.com
+ * @LastEditTime: 2025-01-18 12:26:57
+ * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/settings/src/SettingModel.cpp
*/
+#include "settings/include/SettingModel.h"
+#include "main/include/PullUpDownView.h"
+#include "ui_resource_string.h"
+#include "classicbluetooth/include/BluetoothServiceOptionsView.h"
+#include "player/include/PlayersView.h"
+#include "player/include/PlayersModel.h"
+#include "PhoneService.h"
+#include "phoneservice/include/PhoneService.h"
+#include "BluetoothModel.h"
+#include "player/include/MusicPlayerSourceView.h"
+extern "C" {
-#include "SettingModel.h"
-#include "PullUpDownView.h"
-
-namespace OHOS {
+#include "custom_runtime.h"
+}
+namespace OHOS
+{
SettingModel::SettingModel() {}
SettingModel::~SettingModel() {}
void SettingModel::InitSettingItem()
{
int index = 0;
- settings[index++] = {VIEW_BLUETOOTH_EARPHONE, PNG_BLUETOOTH_STITLE, "蓝牙耳机", true, false};
- settings[index++] = {VIEW_CONNECT_PHONE, PNG_CONNECT_PHONE_IMAGE, "连接手机", true, true};
- settings[index++] = {VIEW_REBOOT, PNG_SETTTING_REBOOT_IMAGE, "重启", true, true};
- settings[index++] = {VIEW_REBOOT, PNG_SETTTING_SHUTDOWN_IMAGE, "关机", true, true};
- settings[index++] = {VIEW_SET_DESKTOP, PNG_SETTTING_DESKTOP_IMAGE, "桌面", true, true};
- settings[index++] = {VIEW_SET_DIAL, PNG_SETTTING_DESKTOP_IMAGE, "表盘", true, false};
- settings[index++] = {VIEW_SET_CARD, PNG_SETTTING_DESKTOP_IMAGE, "卡片", true, false};
- settings[index++] = {VIEW_SET_DIAL_STYLE, PNG_SETTTING_DESKTOP_IMAGE, "表盘风格", true, true};
- settings[index++] = {VIEW_RESTORE_DEFAULTS, PNG_SETTTING_DESKTOP_IMAGE, "恢复出厂", true, true};
+ settings[index++] = {VIEW_SETTING, nullptr, STR_SETTINGS, false};//标题:设置
+ settings[index++] = {VIEW_DISPLAY_BRIGHTNESS, PNG_SETTINGS_DISPLAY_BRIGHTNESS, STR_SCREEN_AND_BRIGHTNESS, true};
+ settings[index++] = {VIEW_NETWORKANDCALL, PNG_SETTINGS_NETWORKANDCALL, STR_NETWORKANDCALL, true};
+ settings[index++] = {VIEW_CLASSIC_BLUETOOTH, PNG_SETTINGS_BLUETOOTH, STR_BLUETOOTH, true};
+ settings[index++] = {VIEW_SOUND_VIBRATION, PNG_SETTINGS_SOUND_VIBRATION, STR_SOUND_AND_VIBRATION, true};
+ settings[index++] = {VIEW_THEME_STYLE, PNG_SETTINGS_DISPLAY_MODE, STR_DISPLAY_MODE, true};
+ settings[index++] = {VIEW_MOTION_RECOGNITION, PNG_SETTINGS_MOTION_RECOGNITION, STR_MOTION_RECOGNITION, true};
+ settings[index++] = {VIEW_DNOTDISTURB, PNG_SETTINGS_DISTURB_IMAGE, STR_DO_NOT_DISTURB, true};
+ settings[index++] = {VIEW_ADD_CARD, PNG_SETTINGS_CARDSET_IMAGE, STR_CARD_MANAGEMENT, true};
+ settings[index++] = {VIEW_SET_DIAL_STYLE, PNG_SETTINGS_CHANGEDIAL_IMAGE, STR_DIAL_BROWSING_SPECIAL_EFFECTS, true};
+ settings[index++] = {VIEW_SAVEELE, PNG_SETTINGS_SAVEELE_IMAGE, STR_POWER_SAVE_MODE, true};
+ settings[index++] = {VIEW_SYSTEM, PNG_SETTINGS_SYSTEM, STR_SYSTEM, true};
+ settings[index++] = {VIEW_INVALID, nullptr, STR_MAX_ID, false};
usedLen = index;
}
+ void SettingModel::SetStartIndex(uint16_t index)
+ {
+ startIndex = index;
+ }
+
+ uint16_t SettingModel::GetStartIndex(void)
+ {
+ return startIndex;
+ }
+
+ void SettingModel::SetHeadItemY(int y)
+ {
+ headItemY = y;
+ }
+
+ int SettingModel::GetHeadItemY(void)
+ {
+ return headItemY;
+ }
+
const SettingItem *SettingModel::GetSettinglistItems() const
{
return settings;
return usedLen;
}
+ // 获取手机连接状态
+ bool SettingModel::GetPhoneConnectStatus(void)
+ {
+ // return phoneConnectStatus;
+ return uapi_dev_runtime_get_ble_connect_stat();
+ }
+
+ // 获取蓝牙耳机连接状态
+ bool SettingModel::GetEarPhoneConnectStatus(void)
+ {
+ return uapi_dev_runtime_get_earphone_connect_stat();
+ }
+
+ // 获取蓝牙连接状态
bool SettingModel::GetBlueToothConnectStatus(void)
{
+ #if SUPPORT_BLE_SERVICE
+ if(!uapi_a2dp_snk_get_device_connect_state()&& !uapi_hfp_connect_state())
+ {
+ btConnectStatus = false;
+ }
+ else
+ {
+ btConnectStatus = true;
+ }
+ #else
+ btConnectStatus = false;
+ #endif
return btConnectStatus;
}
+ // 更新手机连接状态
+ void SettingModel::UpdatePhoneConnectStatus(bool status)
+ {
+ // phoneConnectStatus = status;
+ if (PullUpDownView::GetInstance() != nullptr)
+ {
+ PullUpDownView::GetInstance()->UpdatePhoneStatus(status);
+ }
+ //更新系统全局状态
+ if (status)
+ uapi_dev_runtime_set_ble_connect_stat(1);
+ else
+ uapi_dev_runtime_set_ble_connect_stat(0);
+
+ }
+
+ // 更新耳机连接状态
+ void SettingModel::UpdateEarPhoneConnectStatus(bool status)
+ {
+ earphoneConnectStatus = status;
+ if (PullUpDownView::GetInstance() != nullptr)
+ {
+ PullUpDownView::GetInstance()->UpdateEarPhoneStatus(status);
+ }
+ if (BluetoothServiceOptionsView::GetInstance())
+ {
+ BluetoothServiceOptionsView::GetInstance()->Button_UPdata();
+ }
+ if(MusicPlayerSourceView::GetInstance())
+ {
+ MusicPlayerSourceView::GetInstance()->UpdateBluetoothHeadsetConnectLabel();
+ }
+ }
+
+ // 更新蓝牙连接状态
void SettingModel::UpdateBlueToothConnectStatus(bool status)
{
- btConnectStatus = status;
- if (PullUpDownView::GetInstance() != nullptr) {
- PullUpDownView::GetInstance()->UpdateBlueToothStatus(status);
+ // btConnectStatus = status;
+ if (PullUpDownView::GetInstance() != nullptr)
+ {
+ #if SUPPORT_BLE_SERVICE
+ if(!uapi_a2dp_snk_get_device_connect_state()&& !uapi_hfp_connect_state())
+ PullUpDownView::GetInstance()->UpdateBlueToothStatus(false);
+ else
+ PullUpDownView::GetInstance()->UpdateBlueToothStatus(true);
+ #else
+ PullUpDownView::GetInstance()->UpdateBlueToothStatus(false);
+ #endif
+ }
+ if (BluetoothServiceOptionsView::GetInstance())
+ {
+ BluetoothServiceOptionsView::GetInstance()->Button_UPdata();
+ }
+ if (PlayersView::GetInstance())
+ {
+ PlayersView::GetInstance()->UpdatePlayerView();
}
}
}
+/*
+ * @Author: luozheng 1732036298@qq.com
+ * @Date: 2024-06-12 11:44:04
+ * @LastEditors: luozheng 1732036298@qq.com
+ * @LastEditTime: 2024-09-18 09:39:55
+ * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/settings/src/SettingPresenter.cpp
+ */
/*
* Copyright (c) CompanyNameMagicTag 2021-2021. All rights reserved.
* Description: SettingPresenter.cpp
* Author:
* Create: 2021-11-23
*/
-
-#include "SettingView.h"
-#include "SettingModel.h"
-#include "SettingPresenter.h"
-#include "RebootModel.h"
-#include "SetDesktopModel.h"
+#include "gfx_utils/mem_check.h"
+#include "settings/include/SettingView.h"
+#include "settings/include/SettingModel.h"
+#include "settings/include/SettingPresenter.h"
+#include "common/key_code.h"
+#include <custom_utils.h>
#include "NativeRegisterManager.h"
+namespace OHOS
+{
-namespace OHOS {
-
-REGIST_MENU(VIEW_SETTING, SettingView, SettingPresenter, PNG_APPLIST_SETTING_IMAGE, PNG_APPLIST_DEFAULT_IMG, "设置");
-
+ REGIST_MENU_PRO(VIEW_SETTING, SettingView, SettingPresenter,
+ PNG_APPLIST_SETTING_IMAGE_BIG, PNG_APPLIST_SETTING_IMAGE,PNG_APPLIST_SETTING_IMAGE, "设置", STR_SETTINGS);
+
+ static SettingPresenter *g_pSettingPresenter = nullptr;
SettingPresenter::SettingPresenter()
{
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "SettingPresenter::SettingPresenter()");
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "SettingPresenter::SettingPresenter");
settingModel = &SettingModel::GetInstance();
+ g_pSettingPresenter = this;
+#ifdef MEM_CHECK
+ MemCheck::GetInstance()->EnableLeakCheck(true);
+#endif
}
- SettingPresenter::~SettingPresenter() {}
+ SettingPresenter::~SettingPresenter()
+ {
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "SettingPresenter::~SettingPresenter");
+ g_pSettingPresenter = nullptr;
+#ifdef MEM_CHECK
+ MemCheck::GetInstance()->EnableLeakCheck(false);
+#endif
+ }
+
+ SettingPresenter *SettingPresenter::GetInstance()
+ {
+ return g_pSettingPresenter;
+ }
+
+ void SettingPresenter::SetStartIndex(uint16_t index)
+ {
+ settingModel->SetStartIndex(index);
+ }
+
+ uint16_t SettingPresenter::GetStartIndex(void)
+ {
+ return settingModel->GetStartIndex();
+ }
+
+ void SettingPresenter::SetHeadItemY(int y)
+ {
+ settingModel->SetHeadItemY(y);
+ }
+
+ int SettingPresenter::GetHeadItemY(void)
+ {
+ return settingModel->GetHeadItemY();
+ }
+
+ int SettingPresenter::GetListItemNum()
+ {
+ return settingModel->GetSettingListNum();
+ }
void SettingPresenter::OnStart()
{
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "SettingPresenter::OnStart");
+ Presenter<SettingView>::OnStart();
settingModel->InitSettingItem();
- if (view_ == nullptr) {
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "view_ is nullptr!!");
+ }
+
+ void SettingPresenter::OnResume(void)
+ {
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "SettingPresenter::OnResume");
+ if (view_ == nullptr)
+ {
return;
}
const SettingItem *itemInfo = settingModel->GetSettinglistItems();
- view_->RefreshSettingsList(itemInfo, settingModel->GetSettingListNum());
+ for (uint8_t i = 0; i < settingModel->GetSettingListNum(); i++)
+ {
+ view_->AddSettingItemToList(itemInfo[i]);
+ }
+ }
+
+ // 页面准备切换到后台前执行的逻辑
+ void SettingPresenter::OnPause(void)
+ {
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "SettingPresenter::OnPause");
+ Presenter<SettingView>::OnPause();
+ }
+
+ void SettingPresenter::OnStop(void)
+ {
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "SettingPresenter::OnStop");
+ Presenter<SettingView>::OnPause();
+ return;
}
- bool SettingPresenter::OnDrag(UIView& view, const DragEvent& event)
+ bool SettingPresenter::OnDrag(UIView &view, const DragEvent &event)
{
+ UNUSED(view);
WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "SettingPresenter::OnDrag");
+ if ((event.GetDeltaX() > X_DRAG_OFFSET) && (event.GetDeltaX() > (DOUBLES * MATH_ABS(event.GetDeltaY())))) // 拖动过程中判断是否是水平滑动
+ {
+ X_DRAG_FLAG = true;
+ }
+ return true;
+ }
+
+ bool SettingPresenter::OnDragEnd(UIView &view, const DragEvent &event)
+ {
UNUSED(view);
- if ((event.GetDragDirection() == DragEvent::DIRECTION_LEFT_TO_RIGHT) &&
- (event.GetDeltaX() > X_DRAG_OFFSET) && (event.GetDeltaX() > (DOUBLES * MATH_ABS(event.GetDeltaY())))) {
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "SettingPresenter::OnDrag ChangeSlice(VIEW_APPLIST)");
- if (SetDesktopModel::GetInstance().GetDesktopStyle() == HEXAGONS_STYLE) {
- NativeAbility::GetInstance().ChangeSlice(VIEW_APPLIST, TransitionType::TRANSITION_BACK_TO_HEXAGONS);
- } else if (SetDesktopModel::GetInstance().GetDesktopStyle() == WATERFALL_STYLE) {
- NativeAbility::GetInstance().ChangeSlice(VIEW_APPLIST, TransitionType::TRANSITION_BACK_TO_WATERFALL);
- } else {
- NativeAbility::GetInstance().ChangeSlice(VIEW_APPLIST);
- }
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "SettingPresenter::OnDragEnd");
+ if (event.GetDragDirection() == DragEvent::DIRECTION_LEFT_TO_RIGHT && X_DRAG_FLAG)
+ {
+ NativeAbility::GetInstance().Back(TransitionType::TRANSITION_BACK_TO_HEXAGONS);
+ X_DRAG_FLAG = false;
+ }
+ return true;
+ }
+
+ // 增加按键事件
+ bool SettingPresenter::OnKeyAct(UIView &view, const KeyEvent &event)
+ {
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "SettingPresenter::OnKeyAct");
+ uint16 keyID = event.GetKeyId();
+ uint16 keyState = event.GetState();
+ if (keyID == static_cast<uint16_t>(ZliteKeyCode::ZLITE_KEY_POWER) && keyState == 1 && uapi_get_screen_state() == 0)
+ {
+ NativeAbility::GetInstance().Back(TransitionType::TRANSITION_BACK_TO_HEXAGONS);
}
- return false;
+ return true;
}
bool SettingPresenter::OnClick(UIView &view, const ClickEvent &event)
UNUSED(event);
SettingItemView *settingItemView = static_cast<SettingItemView *>(&view);
AppViewId viewId = settingItemView->GetViewId();
- if (viewId == VIEW_REBOOT) {
- if (strstr(settingItemView->GetIconId(), "REBOOT") != nullptr) {
- RebootModel::GetInstance()->SetSelectViewId(REBOOTDEVICE);
- RebootModel::GetInstance()->SetExitsView(true);
- } else {
- RebootModel::GetInstance()->SetSelectViewId(SHUTDOWNDEVICE);
- RebootModel::GetInstance()->SetExitsView(true);
- }
- }
- if (settingItemView->SlideBackEnabled()) {
- NativeAbility::GetInstance().ChangeSlice(viewId, TransitionType::TRANSITION_INVALID,
- gSliceDefaultPriority, true);
- } else {
- NativeAbility::GetInstance().ChangeSlice(viewId);
- }
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "%d\n", viewId);
+ NativeAbility::GetInstance().EnterSlice(viewId);
return true;
}
}
/*
- * Copyright (c) CompanyNameMagicTag 2021-2021. All rights reserved.
- * Description: SettingView.cpp
- * Author:
- * Create: 2021-11-23
+ * @Author: luozheng 1732036298@qq.com
+ * @Date: 2024-07-12 09:55:29
+ * @LastEditors: luozheng 1732036298@qq.com
+ * @LastEditTime: 2024-11-05 14:41:44
+ * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/settings/src/SettingView.cpp
*/
#include <string>
-
-#include "SettingView.h"
-#include "SettingItem.h"
-#include "SettingPresenter.h"
-#include "components/ui_list_nested.h"
-#include "components/ui_scroll_view_nested.h"
-
-namespace OHOS {
-static constexpr uint8_t SETTINGS_ITEM_FONT_SIZE = 40;
-static constexpr int16_t SETTINGS_RESIZE_SIZE_WIDTH = 100;
-static constexpr int16_t SETTINGS_RESIZE_SIZE_HEIGHT = 60;
-static constexpr int16_t SETTING_TITLE_POSITION_X = 187;
-static constexpr int16_t SETTING_LIST_POSITION_X = 32;
-static constexpr int16_t SETTING_LIST_POSITION_Y = 90;
-static constexpr int16_t SETTING_SCROLLBLANKSIZE = 50;
-static constexpr int16 MAX_SCR_DIS = 1000;
-static constexpr int16 LIST_POS = 20;
-static constexpr int16 SNUM_2 = 2;
-
-SettingView::SettingView()
+#include "settings/include/SettingView.h"
+#include "settings/include/SettingItem.h"
+#include "settings/include/SettingPresenter.h"
+#include "ui_resource_string.h"
+namespace OHOS
{
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "SettingView::SettingView");
-}
+ /* ---------------------------------- 设置标签 ---------------------------------- */
+ static constexpr int16_t SETTING_TITLE_POSITION_X = 83;
+ static constexpr int16_t SETTING_TITLE_POSITION_Y = 52;
+ static constexpr int16_t SETTING_TITLE_SIZE_WIDTH = 300;
+ static constexpr int16_t SETTING_TITLE_SIZE_HEIGHT = 35;
+ static constexpr uint8_t SETTINGS_TITLE_FONT_SIZE = 30; // 字体大小
+ static constexpr uint8_t SETTINGS_TITLE_FONT_HEIGHT = 35; // 字体高度
+ /* --------------------------------- 设置List --------------------------------- */
+ static constexpr int16_t SETTING_LIST_POSITION_X = 0;
+ static constexpr int16_t SETTING_LIST_POSITION_Y = 0;
+ static constexpr int16_t SETTING_SCROLLBLANKSIZE = 50; // 设置此滚动视图的空白大小。
+ static constexpr int16 MAX_SCR_DIS = 1000;
+ static constexpr int16 LIST_POS = 20;
+ static constexpr int16 SNUM_2 = 2;
+ static constexpr int16 ROLLSPEED = 70;
+ static constexpr int16 REBOUNDSIZE = 30;
-SettingView::~SettingView()
-{
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "SettingView::~SettingView");
- if (scrollView != nullptr) {
- scrollView->RemoveAll();
- delete scrollView;
- scrollView = nullptr;
+ SettingView::SettingView()
+ {
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "SettingView::SettingView");
}
- if (title != nullptr) {
- delete title;
- title = nullptr;
+ SettingView::~SettingView()
+ {
+ settingListOnStop();
+ ClearAll();
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "SettingView::~SettingView");
}
- if (listAdapter != nullptr) {
- delete listAdapter;
- listAdapter = nullptr;
+ void SettingView::ClearAll(void)
+ {
+ if (viewInitStatus)
+ {
+
+ if (scrollView != nullptr)
+ {
+ scrollView->RemoveAll();
+ if (listAdapter != nullptr)
+ {
+ delete listAdapter;
+ listAdapter = nullptr;
+ }
+ if (contentList != nullptr)
+ {
+ delete contentList;
+ contentList = nullptr;
+ }
+ delete scrollView;
+ scrollView = nullptr;
+ }
+
+ }
}
- if (contentList != nullptr) {
- delete contentList;
- contentList = nullptr;
+ void SettingView::CreateSettingView(void)
+ {
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "SettingView::CreateSettingView");
+ /* -------------------------------------------------------------------------- */
+ if (scrollView == nullptr)
+ {
+ scrollView = new UIScrollView();
+ if (scrollView == nullptr)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SettingView::OnStart::scrollView is new fail!!");
+ return;
+ }
+ }
+ scrollView->SetPosition(0, 0, Screen::GetInstance().GetWidth(), Screen::GetInstance().GetHeight());
+ scrollView->SetStyle(STYLE_BACKGROUND_COLOR, Color::Black().full);
+ scrollView->SetStyle(STYLE_BACKGROUND_OPA, UN_OPACITY);
+ scrollView->SetHorizontalScrollState(false);
+ scrollView->SetTouchable(true);
+ scrollView->SetThrowDrag(true);
+ scrollView->SetOnDragListener(presenter_);
+ /* -------------------------------------------------------------------------- */
+ if (listAdapter == nullptr)
+ {
+ listAdapter = new SettingAdapter();
+ if (listAdapter == nullptr)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SettingView::OnStart::listAdapter is new fail!!");
+ return;
+ }
+ }
+ listAdapter->SetItemClickListener(presenter_);
+ /* -------------------------------------------------------------------------- */
+ if (contentList == nullptr)
+ {
+ contentList = new UIList(UIList::VERTICAL);
+ if (contentList == nullptr)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SettingView::OnStart::contentList is new fail!!");
+ return;
+ }
+ }
+ contentList->SetPosition(SETTING_LIST_POSITION_X, SETTING_LIST_POSITION_Y, HORIZONTAL_RESOLUTION, VERTICAL_RESOLUTION);
+ contentList->SetStyle(STYLE_BACKGROUND_COLOR, 0xff000000);
+ contentList->EnableAutoAlign(true); // 设置此列表的自动对齐状态。当滚动停止时,子视图被选中,其位置自动与预设位置对齐
+ contentList->SetThrowDrag(true); // 设置手指抬起屏幕后是否继续滚动。
+ contentList->SetMaxScrollDistance(1000); // 设置手指抬起屏幕后的最大滚动距离。
+ contentList->SetSwipeACCLevel(200); /*设置手指抬起屏幕后的补偿距离。*/
+ // contentList->SetReboundSize(30);
+ // contentList->SetScrollBlankSize(30);
+ FocusManager::GetInstance()->RequestFocus(contentList);
+ FocusManager::GetInstance()->RequestFocusByDirection(FOCUS_DIRECTION_UP);
+ contentList->SetRotateFactor(1.0);
+ /* ----------------------------------- Add ---------------------------------- */
+ scrollView->Add(contentList);
+ AddViewToRootContainer(scrollView);
}
-}
-void SettingView::OnStart()
-{
- title = new UILabel();
- if (title == nullptr) {
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "SettingView::OnStart::title is nullptr");
- return;
- }
- title->SetPosition(SETTING_TITLE_POSITION_X, 0);
- title->SetText("设置");
- title->Resize(SETTINGS_RESIZE_SIZE_WIDTH, SETTINGS_RESIZE_SIZE_HEIGHT);
- title->SetFont(DEFAULT_VECTOR_FONT_FILENAME, SETTINGS_ITEM_FONT_SIZE);
- title->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);
- title->SetStyle(STYLE_TEXT_OPA, OPA_OPAQUE);
- title->SetStyle(STYLE_TEXT_COLOR, Color::White().full);
- title->SetStyle(STYLE_BACKGROUND_COLOR, Color::Black().full);
- title->SetStyle(STYLE_BACKGROUND_OPA, OPA_OPAQUE);
+ void SettingView::OnStart()
+ {
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "SettingView::OnStart");
+ if (!viewInitStatus)
+ {
+ CreateSettingView();
+ viewInitStatus = true;
+ }
- contentList = new UIListNested();
- if (contentList == nullptr) {
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "SettingView::OnStart::contentList is nullptr");
- return;
+ // 增加按键监听
+ RootView::GetInstance()->SetOnKeyActListener(presenter_);
}
- contentList->SetPosition(SETTING_LIST_POSITION_X, SETTING_LIST_POSITION_Y);
- contentList->Resize(HORIZONTAL_RESOLUTION, 364); // 364: height
- contentList->SetScrollBlankSize(SETTING_SCROLLBLANKSIZE);
- contentList->SetSelectPosition(HORIZONTAL_RESOLUTION / SNUM_2); // middle position
- contentList->SetDraggable(true);
- contentList->SetThrowDrag(true);
- contentList->EnableAutoAlign(true);
- contentList->SetMaxScrollDistance(MAX_SCR_DIS);
- scrollView = new UIScrollViewNested();
- if (scrollView == nullptr) {
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "SettingView::OnStart::scrollView is nullptr");
- return;
- }
- scrollView->Resize(HORIZONTAL_RESOLUTION, VERTICAL_RESOLUTION);
- scrollView->SetStyle(STYLE_BACKGROUND_COLOR, Color::Black().full);
- scrollView->SetStyle(STYLE_BACKGROUND_OPA, UN_OPACITY);
- scrollView->SetThrowDrag(true);
+
- if (PageTransitionMgr::GetInstance().GetTopSlideBackImage() == nullptr) { // support default slide back firstly
- scrollView->SetOnDragListener(presenter_);
+
+
+ void SettingView::AddSettingItemToList(const SettingItem &item)
+ {
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "SettingView::AddSettingItemToList");
+ listAdapter->AddListItem(item);
}
- scrollView->Add(title);
- scrollView->Add(contentList);
- AddViewToRootContainer(scrollView);
-}
-void SettingView::RefreshSettingsList(const SettingItem* item, uint8_t count)
-{
- listAdapter = new SettingAdapter();
- if (listAdapter == nullptr) {
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "SettingView::OnStart::listAdapter is nullptr");
- return;
+ void SettingView::settingListOnSetUpView(void)
+ {
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "SettingView::settingListOnSetUpView");
+ if (contentList == nullptr || listAdapter == nullptr)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SettingView::settingListOnSetUpView fail!!");
+ return;
+ }
+ uint16_t startIndex = 0;
+ int16_t headY = 0;
+ int NUM_2 = 2;
+ int screen_h = Screen::GetInstance().GetHeight();
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "GetStartIndex = %d,GetListItemNum = %d", presenter_->GetStartIndex(), presenter_->GetListItemNum());
+ if (presenter_->GetStartIndex() >= presenter_->GetListItemNum())
+ {
+ startIndex = presenter_->GetListItemNum() - 1;
+ headY = screen_h / NUM_2;
+ }
+ else
+ {
+ uint16_t presliceId = NativeAbility::GetInstance().GetPreSliceId();
+ if (presliceId == VIEW_MAIN)
+ {
+ startIndex = 0;
+ headY = 0;
+ }
+ else
+ {
+ startIndex = presenter_->GetStartIndex();
+ headY = presenter_->GetHeadItemY();
+ }
+ if (headY == 0)
+ {
+ headY = screen_h / NUM_2;
+ }
+ }
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "startIndex = %d,headY = %d", startIndex, headY);
+ contentList->SetStartIndex(startIndex);
+ contentList->SetAdapter(listAdapter);
+ contentList->RefreshList();
+ contentList->ScrollBy(headY);
}
- listAdapter->SetItemClickListener(presenter_);
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "SettingView::RefreshSettingsList");
- for (int i = 0; i < count; i++) {
- listAdapter->AddListItem(item[i]);
+
+ void SettingView::settingListOnStop(void)
+ {
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "SettingView::settingListOnStop");
+ int16_t listHeadY = contentList->GetChildrenHead()->GetY();
+ int16_t listHeadIndex = contentList->GetChildrenHead()->GetViewIndex();
+ presenter_->SetHeadItemY(listHeadY);
+ presenter_->SetStartIndex(listHeadIndex);
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "listHeadY = %d,listHeadIndex = %d", listHeadY, listHeadIndex);
}
- contentList->SetAdapter(listAdapter);
-}
}