${ROOT_DIR}/open_source/openharmony/utils/native/lite/include
${ROOT_DIR}/open_source/openharmony/utils/native/lite/kv_store/innerkits
- # ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/schedule/include
+ ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/schedule/include
)
set(SOURCES
${CMAKE_CURRENT_SOURCE_DIR}/nativeui/goal/src/goalhint.cpp
${CMAKE_CURRENT_SOURCE_DIR}/nativeui/goal/src/goalControlView.cpp
- # #schedule
- # ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/schedule/src/ScheduleView.cpp
- # ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/schedule/src/SchedulePresenter.cpp
- # ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/schedule/src/ScheduleModel.cpp
- # ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/schedule/src/ScheduleListAdapter.cpp
+ #schedule
+ ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/schedule/src/ScheduleView.cpp
+ ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/schedule/src/SchedulePresenter.cpp
+ ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/schedule/src/ScheduleModel.cpp
+ ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/schedule/src/ScheduleListAdapter.cpp
+ ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/schedule/src/ScheduleListItem.cpp
${CMAKE_CURRENT_SOURCE_DIR}/nativeui/calculator/src/CalculatorView.cpp
${CMAKE_CURRENT_SOURCE_DIR}/nativeui/calculator/src/CalculatorPresenter.cpp
void InitDialingMethodSlice(void);
/* -------------------------------------------------------------------------- */
void InitCalculatorSlice(void);
- // void InitScheduleSlice(void);
+ void InitScheduleSlice(void);
void InittestSlice(void);
private:
#include "traing/training_card/include/TraingCardPresenter.h"
#include "traing/training_card/include/TraingCardView.h"
/* -------------------------------------------------------------------------- */
-// #include "schedule/include/SchedulePresenter.h"
+#include "schedule/include/SchedulePresenter.h"
#ifdef SUPPORT_ALIPAY_SEC
#include "AlipayMainView.h"
/* -------------------------------------------------------------------------- */
/*智能助手*/
{VIEW_OFFLINEVOICE, &NativeLauncher::InitOfflineVoice},
- // {VIEW_SCHEDULE, &NativeLauncher::InitScheduleSlice},
+ {VIEW_SCHEDULE, &NativeLauncher::InitScheduleSlice},
#ifdef SUPPORT_ALIPAY_SEC
{VIEW_MAIN_ALIPAY, &NativeLauncher::InitMainAlipaySlice},
NativeAbility::GetInstance().AddSliceProxy(VIEW_SET_DIAL_STYLE, setDialStyleView);
}
- // void NativeLauncher::InitScheduleSlice(void)
- // {
- // WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "NativeLauncher::InitScheduleSlice");
- // SliceProxy * t_View = new AbilitySliceProxy<ScheduleView, SchedulePresenter>;
- // if (nullptr == t_View)
- // {
- // WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "View is nullptr");
- // return;
- // }
- // NativeAbility::GetInstance().AddSliceProxy(VIEW_SCHEDULE, t_View);
- // }
+ void NativeLauncher::InitScheduleSlice(void)
+ {
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "NativeLauncher::InitScheduleSlice");
+ SliceProxy * t_View = new AbilitySliceProxy<ScheduleView, SchedulePresenter>;
+ if (nullptr == t_View)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "View is nullptr");
+ return;
+ }
+ NativeAbility::GetInstance().AddSliceProxy(VIEW_SCHEDULE, t_View);
+ }
}
/* -------------------------------------------------------------------------- */
// {VIEW_MUSIC_PLAYER, PNG_APPLIST_MUSIC_IMAGE, PNG_APPLIST_MUSIC_IMAGE, PNG_APPLIST_DEFAULT_IMG, "音乐播放器", STR_MUSIC, nullptr},
{VIEW_OFFLINEVOICE, PNG_APPLIST_VOCASSIST_IMAGE, PNG_APPLIST_VOCASSIST_IMAGE, PNG_APPLIST_DEFAULT_IMG, "语音助手", STR_VOICE_ASSISTANT, nullptr},
- // {VIEW_SCHEDULE, PNG_APPLIST_SCHEDULE_IMAGE, PNG_APPLIST_SCHEDULE_IMAGE, PNG_APPLIST_DEFAULT_IMG, "schedule", STR_SCHEDULE, nullptr},
+ {VIEW_SCHEDULE, PNG_APPLIST_SCHEDULE_IMAGE, PNG_APPLIST_SCHEDULE_IMAGE, PNG_APPLIST_DEFAULT_IMG, "schedule", STR_SCHEDULE, nullptr},
{VIEW_SETTING, PNG_APPLIST_SETTING_IMAGE, PNG_APPLIST_SETTING_IMAGE, PNG_APPLIST_DEFAULT_IMG, "设置", STR_SETTINGS, nullptr},
#if 0
/*屏蔽Slice*/
--- /dev/null
+
+#ifndef __SCHEDULELISTADAPTER_H__
+#define __SCHEDULELISTADAPTER_H__
+
+#include "View.h"
+#include "components/abstract_adapter.h"
+#include "schedule/include/ScheduleModel.h"
+#include "schedule/include/ScheduleListItem.h"
+
+
+namespace OHOS
+{
+ class ScheduleListAdapter : public AbstractAdapter
+ {
+ public:
+ ScheduleListAdapter();
+ ~ScheduleListAdapter() override;
+ ScheduleListAdapter * GetInstance();
+
+ UIView * GetView(UIView * inView, int16_t index) override;
+ uint16_t GetCount() override;
+ void AddListItem(const ScheduleListItemInfo &item);
+
+ void SetItemClickListener(UIView::OnClickListener *itemClickListener);
+
+ private:
+ List<ScheduleListItemInfo> nodeList_;
+ UIView::OnClickListener * itemClickListener_;
+ };
+}
+#endif
--- /dev/null
+
+#ifndef __SCHEDULELISTITEM_H__
+#define __SCHEDULELISTITEM_H__
+
+#include "View.h"
+#include "ohos_types.h"
+#include "components/ui_view_group.h"
+#include "components/ui_label_ext.h"
+#include "components/ui_image_view.h"
+
+
+namespace OHOS
+{
+ typedef struct
+ {
+ std::string DateStr;
+ std::string TopicStr;
+ std::string TimeStr;
+ std::string DataStr;
+ uint8_t index;
+ bool is_date_item;
+ uint8_t child_num; // if(true == is_date_item)
+ uint8_t child_index; // if(false == is_date_item)
+ } ScheduleListItemInfo;
+
+
+ class ScheduleListItem : public UIViewGroup
+ {
+ public:
+ ScheduleListItem();
+ ~ScheduleListItem() override;
+ void SetItemInfo(const ScheduleListItemInfo &itemInfo);
+ void ResetItemStyle(const ScheduleListItemInfo &itemInfo);
+
+
+ private:
+ ScheduleListItem(const ScheduleListItem &);
+ ScheduleListItem &operator = (const ScheduleListItem &);
+
+ UIViewGroup InfoGroup_;
+ UILabelExt LabelExtDate_;
+ UILabelExt LabelExtTopic_;
+ UILabelExt LabelExtTime_;
+ UIImageView Image_;
+ // ScheduleListItemInfo itemInfo_ = { nullptr, nullptr, nullptr, nullptr, 0 };
+
+ #define ITEM_WIDTH (380)
+ #define ITEM_HEIGHT (100)
+ #define ITEM_GAP (20)
+
+ #define ODD_ITEM_BACKGROUND_COLOR (0Xff001833)
+ #define ODD_ITEM_TOPIC_COLOR (0Xff0176ff)
+ #define ODD_ITEM_TIME_COLOR (0Xff8bc0ff)
+
+ #define EVEN_ITEM_BACKGROUND_COLOR (0Xff331f00)
+ #define EVEN_ITEM_TOPIC_COLOR (0Xffff7b01)
+ #define EVEN_ITEM_TIME_COLOR (0Xffffc28b)
+
+ #define IMAGE_ITEM_ARROW "/user/res/Schedule/IMAGE_ITEM_ARROW.bin"
+ // #define IMAGE_ITEM_ARROW "/user/res/settings/SETTINGS_DISPLAY_MODE.bin"
+ };
+}
+#endif
--- /dev/null
+\r
+#ifndef __SCHEDULEMODEL_H__\r
+#define __SCHEDULEMODEL_H__\r
+\r
+#include "ohos_types.h"\r
+#include "schedule/include/ScheduleListItem.h"\r
+\r
+\r
+namespace OHOS\r
+{\r
+ typedef struct\r
+ {\r
+ std::string date; // 7/8\r
+ std::string topic; // xxxx\r
+ std::string time; //10:30-14:00\r
+ std::string content; // yyyyyyy\r
+ }ScheduleRevData;\r
+\r
+ #define SCHEDULE_DATA_COUNT_MAX (20)\r
+\r
+ \r
+ class ScheduleModel\r
+ {\r
+ public:\r
+ static ScheduleModel &GetInstance(void);\r
+ uint8_t ScheduleDataInfoSet(void);\r
+ bool ScheduleDataIsEmpty(void);\r
+ ScheduleListItemInfo * ScheduleDataInfoGet(void);\r
+\r
+ std::string ScheduleInfoDateStrGet(uint8_t index);\r
+ std::string ScheduleInfoTopicStrGet(uint8_t index);\r
+ std::string ScheduleInfoTimeStrGet(uint8_t index);\r
+ std::string ScheduleInfoDataStrGet(uint8_t index);\r
+\r
+ void ScheduleSetByApp(ScheduleRevData * data, uint8_t index, bool is_finish);\r
+\r
+ void ScheduleDataToInfo(void);\r
+\r
+ private:\r
+ ScheduleModel();\r
+ ~ScheduleModel();\r
+ ScheduleModel(const ScheduleModel &) = delete;\r
+ ScheduleModel &operator=(const ScheduleModel &) = delete;\r
+\r
+ ScheduleRevData ScheduleRevData_[SCHEDULE_DATA_COUNT_MAX] = {nullptr, nullptr, nullptr, nullptr};\r
+ ScheduleListItemInfo ScheduleDataInfo_[SCHEDULE_DATA_COUNT_MAX*2] = {nullptr, nullptr, nullptr, nullptr, 0, false, 0, 0};\r
+ };\r
+}\r
+\r
+#endif
\ No newline at end of file
--- /dev/null
+\r
+#ifndef __SCHEDULEPRESENTER_H__\r
+#define __SCHEDULEPRESENTER_H__\r
+\r
+#include "Presenter.h"\r
+#include "View.h"\r
+\r
+#include "schedule/include/ScheduleView.h"\r
+#include "schedule/include/ScheduleModel.h"\r
+\r
+\r
+namespace OHOS\r
+{\r
+ class ScheduleView;\r
+ class ScheduleModel;\r
+ class SchedulePresenter : public Presenter<ScheduleView, ScheduleModel>,\r
+ public UIView::OnClickListener,\r
+ public UIView::OnDragListener,\r
+ public RootView::OnKeyActListener\r
+ {\r
+ public:\r
+ SchedulePresenter();\r
+ virtual ~SchedulePresenter();\r
+ static SchedulePresenter * GetInstance();\r
+\r
+ void OnStart() override;\r
+ void OnResume() override;\r
+ void OnPause() override;\r
+ void OnStop() override;\r
+\r
+ private:\r
+ bool OnClick(UIView &view, const ClickEvent &event) override;\r
+ bool OnDrag(UIView &view, const DragEvent &event) override;\r
+ bool OnDragEnd(UIView &view, const DragEvent &event) override;\r
+ bool OnKeyAct(UIView &view, const KeyEvent &event) override;\r
+\r
+ ScheduleModel * ScheduleModel_;\r
+ bool X_DRAG_FLAG{false};\r
+ };\r
+}\r
+\r
+#endif
\ No newline at end of file
--- /dev/null
+\r
+#ifndef __SCHEDULEVIEW_H__\r
+#define __SCHEDULEVIEW_H__\r
+\r
+#include "View.h"\r
+#include "ohos_types.h"\r
+#include "components/ui_view_group.h"\r
+#include "components/ui_label_ext.h"\r
+#include "components/ui_image_view.h"\r
+#include "components/ui_list.h"\r
+#include "components/ui_scroll_view.h"\r
+#include "components/ui_button.h"\r
+#include "common/screen.h"\r
+#include "ui_resource_string.h"\r
+\r
+#include "schedule/include/SchedulePresenter.h"\r
+#include "schedule/include/ScheduleListAdapter.h"\r
+#include "schedule/include/ScheduleListItem.h"\r
+\r
+\r
+namespace OHOS\r
+{\r
+ typedef enum\r
+ {\r
+ ENUM_SCHEDULE_NO_DATA_SCREEN,\r
+ ENUM_SCHEDULE_LIST_SCREEN,\r
+ ENUM_SCHEDULE_CONTENT_SCREEN,\r
+ ENUM_SCHEDULE_DELETE_SCREEN,\r
+\r
+ ENUM_SCHEDULE_MAX_SCREEN\r
+ }ENUM_SCHEDULE_SCREEN;\r
+\r
+ class SchedulePresenter;\r
+ class ScheduleView : public View<SchedulePresenter>\r
+ {\r
+ public:\r
+ ScheduleView();\r
+ ~ScheduleView();\r
+ static ScheduleView * GetInstance(void);\r
+\r
+ void OnStart() override;\r
+ void OnSetUpView() override;\r
+ void OnTearDownView() override;\r
+ void OnStop() override;\r
+ void AddItemToList(const ScheduleListItemInfo &item);\r
+ void DisplayContentScreen(uint8_t index);\r
+\r
+ private:\r
+ UIViewGroup * InitNoDataScreen();\r
+ UIViewGroup * InitDataScreen();\r
+ UILabelExt * InitLabel(int16_t x, int16_t y, int16_t width, int16_t height,\r
+ uint16_t line_height, uint8_t font_size, uint16_t text_id, uint32_t text_color);\r
+ void DisplayMainScreen(void);\r
+\r
+ UIScrollView * InitContentScreen();\r
+\r
+ UIViewGroup * NoDataGroup_{nullptr};\r
+ UILabelExt * LabelExt0_{nullptr};\r
+ UIImageView * ImageView_{nullptr};\r
+ UILabelExt * LabelExt1_{nullptr};\r
+ UILabelExt * LabelExt2_{nullptr};\r
+\r
+ UIViewGroup * DataGroup_{nullptr};\r
+ UIList * ScheduleList_{nullptr};\r
+ ScheduleListAdapter * ScheduleListAdapter_{nullptr};\r
+\r
+ UIScrollView * ContentGroup_{nullptr};\r
+ UILabelExt * ContentLabelExt0_{nullptr};\r
+ UILabelExt * ContentLabelExt1_{nullptr};\r
+ UILabelExt * ContentLabelExt2_{nullptr};\r
+ UILabelExt * ContentLabelExt3_{nullptr};\r
+ UIButton * ContentButton0_{nullptr};\r
+ UIButton * ContentButton1_{nullptr};\r
+\r
+ UIViewGroup * GroupArray_[ENUM_SCHEDULE_MAX_SCREEN]{nullptr};\r
+\r
+ #define LIST_LEFT (43)\r
+ #define LIST_TOP (50)\r
+ #define LIST_WIDTH (Screen::GetInstance().GetWidth() - LIST_LEFT * 2)\r
+ #define LIST_HEIGHT (Screen::GetInstance().GetHeight() - LIST_TOP * 2)\r
+\r
+ #define NO_DATA_IMAGE "/user/res/Schedule/schedule_no_data.bin"\r
+ };\r
+}\r
+#endif\r
--- /dev/null
+
+
+#include "schedule/include/ScheduleListAdapter.h"
+#include "wearable_log.h"
+
+namespace OHOS
+{
+ static ScheduleListAdapter * p_ScheduleListAdapterInstance = nullptr;
+
+ ScheduleListAdapter::ScheduleListAdapter()
+ {
+ p_ScheduleListAdapterInstance = this;
+ }
+
+ ScheduleListAdapter::~ScheduleListAdapter()
+ {
+ p_ScheduleListAdapterInstance = nullptr;
+ nodeList_.Clear();
+ }
+
+ ScheduleListAdapter * ScheduleListAdapter::GetInstance()
+ {
+ return p_ScheduleListAdapterInstance;
+ }
+
+ UIView * ScheduleListAdapter::GetView(UIView * inView, int16_t index)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "[%d]:GetView,%d", __LINE__, index);
+ if(nodeList_.IsEmpty() || nodeList_.Size() <= index || 0 > index)
+ {
+ return nullptr;
+ }
+
+ ScheduleListItem * item = nullptr;
+ ListNode<ScheduleListItemInfo> * node = nodeList_.Begin();
+ for (uint16_t i = 0; i < index; i++)
+ {
+ node = node->next_;
+ }
+
+ if (nullptr == inView)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "[%d]:GetView", __LINE__);
+ item = new ScheduleListItem();
+ if (nullptr == item)
+ return nullptr;
+ }
+ else
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "[%d]:GetView", __LINE__);
+ item = static_cast<ScheduleListItem *>(inView);
+ }
+
+ if (item != nullptr)
+ {
+ item->SetViewIndex(index);
+ item->ResetItemStyle(node->data_);
+ item->SetItemInfo(node->data_);
+ item->SetOnClickListener(itemClickListener_);
+ }
+
+ return item;
+ }
+
+ uint16_t ScheduleListAdapter::GetCount()
+ {
+ return nodeList_.Size();
+ }
+
+ void ScheduleListAdapter::AddListItem(const ScheduleListItemInfo &item)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "[%d]:AddListItem", __LINE__);
+ nodeList_.PushBack(item);
+ }
+
+ void ScheduleListAdapter::SetItemClickListener(UIView::OnClickListener *itemClickListener)
+ {
+ itemClickListener_ = itemClickListener;
+ }
+
+}
--- /dev/null
+
+#include "ScheduleListItem.h"
+#include "wearable_log.h"
+
+namespace OHOS
+{
+ ScheduleListItem::ScheduleListItem()
+ {
+ SetPosition(0, 0, ITEM_WIDTH, ITEM_HEIGHT + ITEM_GAP);
+ SetStyle(STYLE_BACKGROUND_COLOR, OHOS::Color::Black().full);
+ SetStyle(STYLE_BACKGROUND_OPA, OPA_OPAQUE);
+ // SetStyle(STYLE_BORDER_RADIUS, 20);
+ // SetTouchable(true);
+
+ InfoGroup_.SetPosition(0, ITEM_GAP>>1, ITEM_WIDTH, ITEM_HEIGHT);
+ InfoGroup_.SetStyle(STYLE_BACKGROUND_COLOR, OHOS::Color::Black().full);
+ InfoGroup_.SetStyle(STYLE_BACKGROUND_OPA, OPA_OPAQUE);
+ InfoGroup_.SetStyle(STYLE_BORDER_RADIUS, 20);
+ InfoGroup_.SetTouchable(true);
+
+ LabelExtDate_.SetPosition((ITEM_WIDTH - 300)>>1, (ITEM_HEIGHT - 55)>>1, 300, 55);
+ LabelExtDate_.SetStyle(STYLE_TEXT_FONT, 30);
+ LabelExtDate_.SetStyle(STYLE_LINE_HEIGHT, 35);
+ // LabelExtDate_.SetTextId(text_id);
+ LabelExtDate_.SetLineBreakMode(UILabel::LINE_BREAK_OSCILLATION);
+ LabelExtDate_.SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);
+ LabelExtDate_.SetRollSpeed(70);
+ LabelExtDate_.SetFont(DEFAULT_VECTOR_FONT_FILENAME, 30);
+ LabelExtDate_.SetStyle(STYLE_TEXT_COLOR, 0xffff5a36);
+
+ LabelExtTopic_.SetPosition(47, 22, 250, 35);
+ LabelExtTopic_.SetStyle(STYLE_TEXT_FONT, 30);
+ LabelExtTopic_.SetStyle(STYLE_LINE_HEIGHT, 35);
+ // LabelExtTopic_.SetTextId(text_id);
+ LabelExtTopic_.SetLineBreakMode(UILabel::LINE_BREAK_OSCILLATION);
+ LabelExtTopic_.SetAlign(TEXT_ALIGNMENT_LEFT, TEXT_ALIGNMENT_TOP);
+ LabelExtTopic_.SetRollSpeed(70);
+ LabelExtTopic_.SetFont(DEFAULT_VECTOR_FONT_FILENAME, 30);
+ // LabelExtTopic_.SetStyle(STYLE_TEXT_COLOR, 0xffff5a36);
+
+ LabelExtTime_.SetPosition(47, 57, 105, 24);
+ LabelExtTime_.SetStyle(STYLE_TEXT_FONT, 20);
+ LabelExtTime_.SetStyle(STYLE_LINE_HEIGHT, 24);
+ // LabelExtTime_.SetTextId(text_id);
+ LabelExtTime_.SetLineBreakMode(UILabel::LINE_BREAK_OSCILLATION);
+ LabelExtTime_.SetAlign(TEXT_ALIGNMENT_LEFT, TEXT_ALIGNMENT_TOP);
+ LabelExtTime_.SetRollSpeed(70);
+ LabelExtTime_.SetFont(DEFAULT_VECTOR_FONT_FILENAME, 20);
+ // LabelExtTime_.SetStyle(STYLE_TEXT_COLOR, 0xffff5a36);
+
+ Image_.SetPosition(326, 37, 14, 26);
+ Image_.SetStyle(STYLE_IMAGE_OPA, OPA_OPAQUE);
+ Image_.SetStyle(STYLE_BACKGROUND_OPA, OPA_OPAQUE);
+ Image_.SetResizeMode(UIImageView::CENTER);
+ Image_.SetAutoEnable(false);
+ Image_.SetSrc(IMAGE_ITEM_ARROW);
+
+ InfoGroup_.Add(&LabelExtDate_);
+ InfoGroup_.Add(&LabelExtTopic_);
+ InfoGroup_.Add(&LabelExtTime_);
+ InfoGroup_.Add(&Image_);
+ Add(&InfoGroup_);
+ }
+
+ ScheduleListItem::~ScheduleListItem()
+ {
+ RemoveAll();
+ }
+
+ void ScheduleListItem::SetItemInfo(const ScheduleListItemInfo &itemInfo)
+ {
+ if(true == itemInfo.is_date_item)
+ {
+ LabelExtDate_.SetText(itemInfo.DateStr.c_str());
+ }
+ else
+ {
+ if(0 == (itemInfo.child_index % 2))
+ {
+ LabelExtTopic_.SetText(itemInfo.TopicStr.c_str());
+ LabelExtTime_.SetText(itemInfo.TimeStr.c_str());
+ }
+ else
+ {
+ LabelExtTopic_.SetText(itemInfo.TopicStr.c_str());
+ LabelExtTime_.SetText(itemInfo.TimeStr.c_str());
+ }
+ }
+ }
+
+ void ScheduleListItem::ResetItemStyle(const ScheduleListItemInfo &itemInfo)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "[%d]:ResetItemStyle,%d,%d,%d",
+ __LINE__, itemInfo.is_date_item, itemInfo.child_num, itemInfo.child_index);
+
+ if(true == itemInfo.is_date_item)
+ {
+ SetHeight(ITEM_HEIGHT);
+
+ InfoGroup_.SetStyle(STYLE_BACKGROUND_COLOR, OHOS::Color::Black().full);
+ InfoGroup_.SetStyle(STYLE_BACKGROUND_OPA, OPA_OPAQUE);
+ InfoGroup_.SetTouchable(false);
+
+ LabelExtDate_.SetVisible(true);
+ LabelExtTopic_.SetVisible(false);
+ LabelExtTime_.SetVisible(false);
+ Image_.SetVisible(false);
+ }
+ else
+ {
+ if(0 == (itemInfo.child_index % 2))
+ {
+ InfoGroup_.SetStyle(STYLE_BACKGROUND_COLOR, ODD_ITEM_BACKGROUND_COLOR);
+ InfoGroup_.SetStyle(STYLE_BACKGROUND_OPA, OPA_OPAQUE);
+ InfoGroup_.SetTouchable(true);
+
+ LabelExtDate_.SetVisible(false);
+ LabelExtTopic_.SetVisible(true);
+ LabelExtTime_.SetVisible(true);
+ Image_.SetVisible(true);
+
+ LabelExtTopic_.SetStyle(STYLE_TEXT_COLOR, ODD_ITEM_TOPIC_COLOR);
+ LabelExtTime_.SetStyle(STYLE_TEXT_COLOR, ODD_ITEM_TIME_COLOR);
+ }
+ else
+ {
+ InfoGroup_.SetStyle(STYLE_BACKGROUND_COLOR, EVEN_ITEM_BACKGROUND_COLOR);
+ InfoGroup_.SetStyle(STYLE_BACKGROUND_OPA, OPA_OPAQUE);
+ InfoGroup_.SetTouchable(true);
+
+ LabelExtDate_.SetVisible(false);
+ LabelExtTopic_.SetVisible(true);
+ LabelExtTime_.SetVisible(true);
+ Image_.SetVisible(true);
+
+ LabelExtTopic_.SetStyle(STYLE_TEXT_COLOR, EVEN_ITEM_TOPIC_COLOR);
+ LabelExtTime_.SetStyle(STYLE_TEXT_COLOR, EVEN_ITEM_TIME_COLOR);
+ }
+ }
+ }
+
+}
--- /dev/null
+\r
+#include "schedule/include/ScheduleModel.h"\r
+#include "wearable_log.h"\r
+\r
+namespace OHOS\r
+{\r
+ ScheduleModel::ScheduleModel()\r
+ {\r
+\r
+ }\r
+\r
+ ScheduleModel::~ScheduleModel()\r
+ {\r
+\r
+ }\r
+\r
+ ScheduleModel &ScheduleModel::GetInstance()\r
+ {\r
+ static ScheduleModel instance;\r
+ return instance;\r
+ }\r
+\r
+ static ScheduleListItemInfo t_data[10] = {\r
+ {"10-10", "date00", "a", "a", 0, true, 4, 0},\r
+ {"10-10", "date000", "05:05", "jkguqpfhklal", 0, false, 0, 0},\r
+ {"10-10", "date000", "06:06", "dalguqpfhklal", 0, false, 0, 1},\r
+ {"10-10", "date002", "07:07", "atzdflal", 0, false, 0, 2},\r
+ {"10-10", "date003", "08:08", "gjqpljkal", 0, false, 0, 3},\r
+\r
+ {"10-18", "date01", "b", "b", 0, true, 2, 0},\r
+ {"10-18", "date011", "09:09", "qpfal", 0, false, 0, 0},\r
+ {"10-18", "date011", "10:10", "tttccccccckgl", 0, false, 0, 1},\r
+\r
+ {"11-30", "date02", "c", "c", 0, true, 1, 0},\r
+ {"11-30", "date020", "11:11", "qyq4100000fg21al", 0, false, 0, 0} \r
+ };\r
+\r
+ uint8_t ScheduleModel::ScheduleDataInfoSet(void)\r
+ {\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "ScheduleModel::ScheduleDataInfoSet 00");\r
+ uint8_t count = 0;\r
+\r
+ for(uint8_t i = 0; i < 10; i++)\r
+ {\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "[%d]:ScheduleModel::ScheduleDataInfoSet", __LINE__);\r
+ ScheduleDataInfo_[i].DateStr.assign(t_data[i].DateStr);\r
+ ScheduleDataInfo_[i].TopicStr.assign(t_data[i].TopicStr);\r
+ ScheduleDataInfo_[i].TimeStr.assign(t_data[i].TimeStr);\r
+ ScheduleDataInfo_[i].DataStr.assign(t_data[i].DataStr);\r
+\r
+ ScheduleDataInfo_[i].index = t_data[i].index;\r
+ ScheduleDataInfo_[i].is_date_item = t_data[i].is_date_item;\r
+ ScheduleDataInfo_[i].child_num = t_data[i].child_num;\r
+ ScheduleDataInfo_[i].child_index = t_data[i].child_index;\r
+ }\r
+\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "ScheduleModel::ScheduleDataInfoSet 10");\r
+\r
+ return count;\r
+ }\r
+\r
+ bool ScheduleModel::ScheduleDataIsEmpty(void)\r
+ {\r
+ if(ScheduleDataInfo_[0].DateStr.length())\r
+ return false;\r
+ \r
+ return true;\r
+ }\r
+\r
+ ScheduleListItemInfo * ScheduleModel::ScheduleDataInfoGet(void)\r
+ {\r
+ return ScheduleDataInfo_;\r
+ }\r
+\r
+ std::string ScheduleModel::ScheduleInfoDateStrGet(uint8_t index)\r
+ {\r
+ return ScheduleDataInfo_[index].DateStr.c_str();\r
+ }\r
+\r
+ std::string ScheduleModel::ScheduleInfoTopicStrGet(uint8_t index)\r
+ {\r
+ return ScheduleDataInfo_[index].TopicStr.c_str();\r
+ }\r
+\r
+ std::string ScheduleModel::ScheduleInfoTimeStrGet(uint8_t index)\r
+ {\r
+ return ScheduleDataInfo_[index].TimeStr.c_str();\r
+ }\r
+\r
+ std::string ScheduleModel::ScheduleInfoDataStrGet(uint8_t index)\r
+ {\r
+ return ScheduleDataInfo_[index].DataStr.c_str();\r
+ }\r
+\r
+ void ScheduleModel::ScheduleSetByApp(ScheduleRevData * data, uint8_t index, bool is_finish)\r
+ {\r
+ ScheduleRevData_[index].date.assign(data->date);\r
+ ScheduleRevData_[index].topic.assign(data->topic);\r
+ ScheduleRevData_[index].time.assign(data->time);\r
+ ScheduleRevData_[index].content.assign(data->content);\r
+\r
+ if(true == is_finish)\r
+ {\r
+ ScheduleDataToInfo();\r
+ }\r
+ }\r
+\r
+ void ScheduleModel::ScheduleDataToInfo(void)\r
+ {\r
+ uint8_t i = 0;\r
+ uint8_t j = 0;\r
+ uint8_t count = 0;\r
+\r
+ memset(ScheduleDataInfo_, 0x0, sizeof(ScheduleListItemInfo) * SCHEDULE_DATA_COUNT_MAX*2);\r
+\r
+ count = 0;\r
+\r
+ for(i = 0, j = 0; i < count, j < SCHEDULE_DATA_COUNT_MAX * 2; i++)\r
+ {\r
+ if(0 == i)\r
+ {\r
+ ScheduleDataInfo_[j].DateStr.assign(ScheduleRevData_[i].date);\r
+ ScheduleDataInfo_[j].index = j;\r
+ ScheduleDataInfo_[j].is_date_item = true;\r
+\r
+ j++;\r
+ ScheduleDataInfo_[j].DateStr.assign(ScheduleRevData_[i].date);\r
+ ScheduleDataInfo_[j].TopicStr.assign(ScheduleRevData_[i].topic);\r
+ ScheduleDataInfo_[j].TimeStr.assign(ScheduleRevData_[i].time);\r
+ ScheduleDataInfo_[j].DataStr.assign(ScheduleRevData_[i].content);\r
+ ScheduleDataInfo_[j].index = j;\r
+ ScheduleDataInfo_[j].is_date_item = false;\r
+ ScheduleDataInfo_[j].child_index = 0;\r
+ }\r
+ else\r
+ {\r
+ if(0 == ScheduleRevData_[i].date.compare(ScheduleRevData_[i - 1].date))\r
+ {\r
+ j++;\r
+ ScheduleDataInfo_[j].DateStr.assign(ScheduleRevData_[i].date);\r
+ ScheduleDataInfo_[j].TopicStr.assign(ScheduleRevData_[i].topic);\r
+ ScheduleDataInfo_[j].TimeStr.assign(ScheduleRevData_[i].time);\r
+ ScheduleDataInfo_[j].DataStr.assign(ScheduleRevData_[i].content);\r
+ ScheduleDataInfo_[j].index = j;\r
+ ScheduleDataInfo_[j].is_date_item = false;\r
+ ScheduleDataInfo_[j].child_index = ScheduleDataInfo_[i - 1].child_index + 1;\r
+ }\r
+ else\r
+ {\r
+ ScheduleDataInfo_[j].DateStr.assign(ScheduleRevData_[i].date);\r
+ ScheduleDataInfo_[j].index = j;\r
+ ScheduleDataInfo_[j].is_date_item = true;\r
+\r
+ j++;\r
+ ScheduleDataInfo_[j].DateStr.assign(ScheduleRevData_[i].date);\r
+ ScheduleDataInfo_[j].TopicStr.assign(ScheduleRevData_[i].topic);\r
+ ScheduleDataInfo_[j].TimeStr.assign(ScheduleRevData_[i].time);\r
+ ScheduleDataInfo_[j].DataStr.assign(ScheduleRevData_[i].content);\r
+ ScheduleDataInfo_[j].index = j;\r
+ ScheduleDataInfo_[j].is_date_item = false;\r
+ ScheduleDataInfo_[j].child_index = 0;\r
+ }\r
+ }\r
+ }\r
+ }\r
+\r
+}\r
--- /dev/null
+/*\r
+ * @Author: luozheng 1732036298@qq.com\r
+ * @Date: 2024-06-20 15:11:17\r
+ * @LastEditors: luozheng 1732036298@qq.com\r
+ * @LastEditTime: 2024-07-08 09:45:02\r
+ * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/aivoice/src/SchedulePresenter.cpp\r
+ */\r
+#include "AppViewIDs.h"\r
+#include "NativeAbility.h"\r
+#include "common/key_code.h"\r
+#include <custom_utils.h>\r
+#include "UiConfig.h"\r
+#include "schedule/include/SchedulePresenter.h"\r
+\r
+\r
+namespace OHOS\r
+{\r
+ // 当前Presenter属性实例化的内存指针\r
+ static SchedulePresenter * p_SchedulePresenterInstance = nullptr;\r
+\r
+ SchedulePresenter::SchedulePresenter()\r
+ {\r
+ ScheduleModel_ = &ScheduleModel::GetInstance();\r
+ p_SchedulePresenterInstance = this;\r
+ }\r
+\r
+ SchedulePresenter::~SchedulePresenter()\r
+ {\r
+ p_SchedulePresenterInstance = nullptr;\r
+ }\r
+\r
+ SchedulePresenter *SchedulePresenter::GetInstance()\r
+ {\r
+ return p_SchedulePresenterInstance;\r
+ }\r
+\r
+ // 启动时执行的逻辑\r
+ void SchedulePresenter::OnStart()\r
+ {\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SchedulePresenter::OnStart");\r
+ Presenter<ScheduleView, ScheduleModel>::OnStart();\r
+\r
+ ScheduleModel_->ScheduleDataInfoSet();\r
+ }\r
+\r
+ // 页面已经展示后的调用逻辑\r
+ void SchedulePresenter::OnResume(void)\r
+ {\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SchedulePresenter::OnResume");\r
+ Presenter<ScheduleView, ScheduleModel>::OnResume();\r
+ if (nullptr == view_)\r
+ {\r
+ return;\r
+ }\r
+\r
+ ScheduleListItemInfo * ItemInfo = ScheduleModel_->ScheduleDataInfoGet();\r
+ for (uint8_t i = 0; i < 10; i++)\r
+ {\r
+ view_->AddItemToList(ItemInfo[i]);\r
+ }\r
+ }\r
+\r
+ // 页面准备切换到后台前执行的逻辑\r
+ void SchedulePresenter::OnPause(void)\r
+ {\r
+ // WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "SchedulePresenter::OnPause");\r
+ Presenter<ScheduleView, ScheduleModel>::OnPause();\r
+ }\r
+\r
+ // 页面完全置于后台时的逻辑。\r
+ void SchedulePresenter::OnStop(void)\r
+ {\r
+ // WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "SchedulePresenter::OnStop");\r
+ Presenter<ScheduleView, ScheduleModel>::OnStop();\r
+ }\r
+\r
+ bool SchedulePresenter::OnClick(UIView &view, const ClickEvent &event)\r
+ {\r
+ UNUSED(event);\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SchedulePresenter::OnClick");\r
+\r
+ if (nullptr == &view) \r
+ {\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "[%d]:OnClick", __LINE__);\r
+ return false;\r
+ } \r
+ else \r
+ {\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "[%d]:OnClick", __LINE__);\r
+ ScheduleListItem * item = static_cast<ScheduleListItem *>(&view);\r
+ view_->DisplayContentScreen(item->GetViewIndex());\r
+ }\r
+ return true;\r
+ }\r
+\r
+ bool SchedulePresenter::OnDrag(UIView &view, const DragEvent &event)\r
+ {\r
+ UNUSED(view);\r
+ // WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "SchedulePresenter::OnDrag");\r
+ if ((event.GetDeltaX() > X_DRAG_OFFSET) && (event.GetDeltaX() > (DOUBLES * MATH_ABS(event.GetDeltaY())))) // 拖动过程中判断是否是水平滑动\r
+ {\r
+ SchedulePresenter::X_DRAG_FLAG = true;\r
+ }\r
+ return true;\r
+ }\r
+\r
+ bool SchedulePresenter::OnDragEnd(UIView &view, const DragEvent &event)\r
+ {\r
+ UNUSED(view);\r
+ // WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "SchedulePresenter::OnDragEnd");\r
+ if (event.GetDragDirection() == DragEvent::DIRECTION_LEFT_TO_RIGHT && SchedulePresenter::X_DRAG_FLAG)\r
+ {\r
+ NativeAbility::GetInstance().Back(TransitionType::TRANSITION_BACK_TO_HEXAGONS);\r
+ SchedulePresenter::X_DRAG_FLAG = false;\r
+ }\r
+ return true;\r
+ }\r
+\r
+ bool SchedulePresenter::OnKeyAct(UIView &view, const KeyEvent &event) // 增加按键事件\r
+ {\r
+ UNUSED(view);\r
+ // WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "SchedulePresenter::OnKeyAct");\r
+ uint16_t keyID = event.GetKeyId();\r
+ uint16_t 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().Back(TransitionType::TRANSITION_BACK_TO_HEXAGONS);\r
+ }\r
+ return true;\r
+ }\r
+}
\ No newline at end of file
--- /dev/null
+\r
+#include "schedule/include/ScheduleView.h"\r
+#include "wearable_log.h"\r
+\r
+namespace OHOS\r
+{\r
+ static ScheduleView * p_ScheduleViewInstance = nullptr;\r
+\r
+ ScheduleView::ScheduleView()\r
+ {\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "ScheduleView::ScheduleView");\r
+ p_ScheduleViewInstance = this;\r
+ }\r
+\r
+ ScheduleView::~ScheduleView()\r
+ {\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "ScheduleView::~ScheduleView");\r
+ p_ScheduleViewInstance = nullptr;\r
+ }\r
+\r
+ ScheduleView * ScheduleView::GetInstance()\r
+ {\r
+ return p_ScheduleViewInstance;\r
+ }\r
+\r
+ void ScheduleView::OnStart()\r
+ {\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "ScheduleView::OnStart");\r
+ View<SchedulePresenter>::OnStart();\r
+\r
+ SetContainerView(new UIViewGroup());\r
+ if (nullptr == GetContainer())\r
+ {\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "[%d]", __LINE__);\r
+ return;\r
+ }\r
+ container_->SetPosition(0, 0, Screen::GetInstance().GetWidth(), Screen::GetInstance().GetHeight());\r
+ container_->SetTouchable(true);\r
+ container_->SetDraggable(true);\r
+ container_->SetOnDragListener(presenter_);\r
+ container_->Add(InitNoDataScreen());\r
+ container_->Add(InitDataScreen());\r
+\r
+ RootView::GetInstance()->SetOnKeyActListener(presenter_);\r
+ }\r
+\r
+ void ScheduleView::OnSetUpView()\r
+ {\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "ScheduleView::OnSetUpView");\r
+ View<SchedulePresenter>::OnSetUpView();\r
+\r
+ DisplayMainScreen();\r
+ // GroupArray_\r
+ Draw();\r
+ }\r
+\r
+ void ScheduleView::OnTearDownView()\r
+ {\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "ScheduleView::OnTearDownView");\r
+ View<SchedulePresenter>::OnTearDownView();\r
+ }\r
+\r
+ void ScheduleView::OnStop()\r
+ {\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "ScheduleView::OnStop");\r
+ View<SchedulePresenter>::OnStop();\r
+ RootView::GetInstance()->ClearOnKeyActListener();\r
+\r
+ if (nullptr != container_)\r
+ {\r
+ container_->RemoveAll();\r
+ if (nullptr != NoDataGroup_)\r
+ {\r
+ NoDataGroup_->RemoveAll();\r
+ if (nullptr != LabelExt0_)\r
+ {\r
+ delete LabelExt0_;\r
+ LabelExt0_ = nullptr;\r
+ }\r
+ if (nullptr != ImageView_)\r
+ {\r
+ delete ImageView_;\r
+ ImageView_ = nullptr;\r
+ }\r
+ if (nullptr != LabelExt1_)\r
+ {\r
+ delete LabelExt1_;\r
+ LabelExt1_ = nullptr;\r
+ }\r
+ if (nullptr != LabelExt2_)\r
+ {\r
+ delete LabelExt2_;\r
+ LabelExt2_ = nullptr;\r
+ }\r
+\r
+ delete NoDataGroup_;\r
+ NoDataGroup_ = nullptr;\r
+ }\r
+ if (nullptr != DataGroup_)\r
+ {\r
+ DataGroup_->RemoveAll();\r
+ if (nullptr != ScheduleListAdapter_)\r
+ {\r
+ delete ScheduleListAdapter_;\r
+ ScheduleListAdapter_ = nullptr;\r
+ }\r
+ if (nullptr != ScheduleList_)\r
+ {\r
+ delete ScheduleList_;\r
+ ScheduleList_ = nullptr;\r
+ }\r
+\r
+ delete DataGroup_;\r
+ DataGroup_ = nullptr;\r
+ }\r
+ delete container_;\r
+ container_ = nullptr;\r
+ }\r
+ }\r
+\r
+ void ScheduleView::AddItemToList(const ScheduleListItemInfo &item)\r
+ {\r
+ ScheduleListAdapter_->AddListItem(item);\r
+ }\r
+\r
+ void ScheduleView::DisplayMainScreen(void)\r
+ {\r
+ if(true == ScheduleModel::GetInstance().ScheduleDataIsEmpty())\r
+ {\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "[%d]:DisplayMainScreen", __LINE__);\r
+ NoDataGroup_->SetVisible(true);\r
+ DataGroup_->SetVisible(false);\r
+ }\r
+ else\r
+ {\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "[%d]:DisplayMainScreen", __LINE__);\r
+ NoDataGroup_->SetVisible(false);\r
+ DataGroup_->SetVisible(true);\r
+ ScheduleList_->RefreshList();\r
+ }\r
+ }\r
+\r
+ void ScheduleView::DisplayContentScreen(uint8_t index)\r
+ {\r
+ NoDataGroup_->SetVisible(false);\r
+ DataGroup_->SetVisible(false);\r
+\r
+ UIScrollView * temp_group = InitContentScreen();\r
+ if(nullptr == temp_group)\r
+ return;\r
+\r
+ container_->Add(temp_group);\r
+\r
+ ContentLabelExt0_->SetText(ScheduleModel::GetInstance().ScheduleInfoDateStrGet(index).c_str());\r
+\r
+ int16_t temp_y = 0;\r
+ temp_y = ContentLabelExt0_->GetY() + ContentLabelExt0_->GetHeight() + 50;\r
+ ContentLabelExt1_->SetY(temp_y);\r
+ ContentLabelExt1_->SetText(ScheduleModel::GetInstance().ScheduleInfoTopicStrGet(index).c_str());\r
+\r
+ temp_y = ContentLabelExt1_->GetY() + ContentLabelExt1_->GetHeight() + 20;\r
+ ContentLabelExt2_->SetY(temp_y);\r
+ ContentLabelExt2_->SetText(ScheduleModel::GetInstance().ScheduleInfoTimeStrGet(index).c_str());\r
+\r
+ temp_y = ContentLabelExt2_->GetY() + ContentLabelExt2_->GetHeight() + 20;\r
+ ContentLabelExt3_->SetY(temp_y);\r
+ ContentLabelExt3_->SetText(ScheduleModel::GetInstance().ScheduleInfoDataStrGet(index).c_str());\r
+\r
+ temp_y = ContentLabelExt3_->GetY() + ContentLabelExt3_->GetHeight() + 50;\r
+ ContentButton0_->SetY(temp_y);\r
+\r
+ temp_y = ContentButton0_->GetY() + ContentButton0_->GetHeight() + 20;\r
+ ContentButton1_->SetY(temp_y);\r
+ }\r
+\r
+ UIViewGroup * ScheduleView::InitNoDataScreen()\r
+ {\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "[%d]", __LINE__);\r
+ if(nullptr == NoDataGroup_)\r
+ {\r
+ NoDataGroup_ = new UIViewGroup();\r
+ if(nullptr == NoDataGroup_)\r
+ return nullptr;\r
+ }\r
+ NoDataGroup_->SetPosition(0, 0, Screen::GetInstance().GetWidth(), Screen::GetInstance().GetHeight());\r
+ NoDataGroup_->SetStyle(STYLE_BACKGROUND_OPA, OPA_OPAQUE);\r
+ NoDataGroup_->SetStyle(STYLE_BACKGROUND_COLOR, Color::Black().full);\r
+ NoDataGroup_->SetOnDragListener(presenter_);\r
+ NoDataGroup_->SetTouchable(true);\r
+ NoDataGroup_->SetDraggable(true);\r
+\r
+ if(nullptr == LabelExt0_)\r
+ {\r
+ LabelExt0_ = InitLabel(83, 50, 300, 35, 35, 30, STR_SCHEDULE_TITLE, Color::White().full);\r
+ if(nullptr == LabelExt0_)\r
+ {\r
+ return nullptr;\r
+ }\r
+ }\r
+\r
+ if(nullptr == ImageView_)\r
+ {\r
+ ImageView_ = new UIImageView();\r
+ if(nullptr == ImageView_)\r
+ {\r
+ return nullptr;\r
+ }\r
+\r
+ ImageView_->SetPosition(175, 150, 116, 120);\r
+ // ImageView_->SetAutoEnable(true);\r
+ // ImageView_->SetViewId(viewId);\r
+ ImageView_->SetSrc(NO_DATA_IMAGE);\r
+ }\r
+\r
+ if(nullptr == LabelExt1_)\r
+ {\r
+ LabelExt1_ = InitLabel(53, 330, 360, 35, 35, 30, STR_SCHEDULE_NO_DATA, 0xff999999);\r
+ if(nullptr == LabelExt1_)\r
+ {\r
+ return nullptr;\r
+ }\r
+ }\r
+\r
+ if(nullptr == LabelExt2_)\r
+ {\r
+ LabelExt2_ = InitLabel(53, 370, 360, 35, 35, 30, STR_SCHEDULE_NO_DATA_PROMPT, 0xff999999);\r
+ if(nullptr == LabelExt2_)\r
+ {\r
+ return nullptr;\r
+ }\r
+ }\r
+\r
+ NoDataGroup_->Add(LabelExt0_);\r
+ NoDataGroup_->Add(ImageView_);\r
+ NoDataGroup_->Add(LabelExt1_);\r
+ NoDataGroup_->Add(LabelExt2_);\r
+\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "[%d]", __LINE__);\r
+ return NoDataGroup_;\r
+ }\r
+\r
+ UIViewGroup * ScheduleView::InitDataScreen()\r
+ {\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "[%d]", __LINE__);\r
+ if(nullptr == DataGroup_)\r
+ {\r
+ DataGroup_ = new UIViewGroup();\r
+ if(nullptr == DataGroup_)\r
+ return nullptr;\r
+ }\r
+ DataGroup_->SetPosition(0, 0, Screen::GetInstance().GetWidth(), Screen::GetInstance().GetHeight());\r
+ DataGroup_->SetStyle(STYLE_BACKGROUND_OPA, OPA_OPAQUE);\r
+ DataGroup_->SetStyle(STYLE_BACKGROUND_COLOR, Color::Black().full);\r
+ DataGroup_->SetOnDragListener(presenter_);\r
+ DataGroup_->SetTouchable(true);\r
+ DataGroup_->SetDraggable(true);\r
+\r
+ if(nullptr == ScheduleListAdapter_)\r
+ {\r
+ ScheduleListAdapter_ = new ScheduleListAdapter();\r
+ if(nullptr == ScheduleListAdapter_)\r
+ return nullptr;\r
+ \r
+ ScheduleListAdapter_->SetItemClickListener(presenter_);\r
+ }\r
+\r
+ if(nullptr == ScheduleList_)\r
+ {\r
+ ScheduleList_ = new UIList();\r
+ if(nullptr == ScheduleList_)\r
+ {\r
+ return nullptr;\r
+ }\r
+ }\r
+ ScheduleList_->SetPosition(LIST_LEFT, LIST_TOP, LIST_WIDTH, LIST_HEIGHT);\r
+ // ScheduleList_->SetScrollBlankSize(30);\r
+ // ScheduleList_->SetSelectPosition(VERTICAL_RESOLUTION / 2);\r
+ ScheduleList_->SetDraggable(true);\r
+ ScheduleList_->SetThrowDrag(true);\r
+ // ScheduleList_->EnableAutoAlign(true);\r
+ ScheduleList_->SetAdapter(ScheduleListAdapter_);\r
+ // ScheduleList_->SetScrollStateListener(presenter_);\r
+ ScheduleList_->SetMaxScrollDistance(1000); // 1000: max scroll distance\r
+ ScheduleList_->SetSwipeACCLevel(800); // 800: compensation distance\r
+ ScheduleList_->SetDragACCLevel(5); // 5: drag acceleration\r
+ ScheduleList_->SetYScrollBarVisible(false);\r
+\r
+ ScheduleList_->SetRotateFactor(2); // 增加表冠控制\r
+ ScheduleList_->RequestFocus();\r
+\r
+ DataGroup_->Add(ScheduleList_);\r
+\r
+ return DataGroup_;\r
+ }\r
+\r
+ UIScrollView * ScheduleView::InitContentScreen()\r
+ {\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "[%d]", __LINE__);\r
+ if(nullptr == ContentGroup_)\r
+ {\r
+ ContentGroup_ = new UIScrollView();\r
+ if(nullptr == ContentGroup_)\r
+ return nullptr;\r
+ }\r
+ // ContentGroup_->SetViewIndex(ENUM_SCHEDULE_CONTENT_SCREEN);\r
+ ContentGroup_->SetPosition(0, 0, Screen::GetInstance().GetWidth(), Screen::GetInstance().GetHeight());\r
+ ContentGroup_->SetStyle(STYLE_BACKGROUND_OPA, OPA_OPAQUE);\r
+ ContentGroup_->SetStyle(STYLE_BACKGROUND_COLOR, Color::Black().full);\r
+ ContentGroup_->SetOnDragListener(presenter_);\r
+ ContentGroup_->SetTouchable(true);\r
+ ContentGroup_->SetDraggable(true);\r
+\r
+ ContentGroup_->SetScrollBlankSize(40);\r
+ ContentGroup_->SetReboundSize(40);\r
+ ContentGroup_->SetDirection(1);\r
+ ContentGroup_->SetMaxScrollDistance(1000);\r
+ ContentGroup_->SetThrowDrag(true);\r
+ ContentGroup_->RequestFocus();\r
+ ContentGroup_->SetRotateFactor(2);\r
+\r
+ if(nullptr == ContentLabelExt0_)\r
+ {\r
+ ContentLabelExt0_ = new UILabelExt();\r
+ if(nullptr == ContentLabelExt0_)\r
+ return nullptr;\r
+\r
+ ContentLabelExt0_->SetPosition(83, 50, 300, 35);\r
+ ContentLabelExt0_->SetStyle(STYLE_TEXT_FONT, 30);\r
+ ContentLabelExt0_->SetStyle(STYLE_LINE_HEIGHT, 35);\r
+ // ContentLabelExt0_->SetTextId(text_id);\r
+ ContentLabelExt0_->SetLineBreakMode(UILabel::LINE_BREAK_OSCILLATION);\r
+ ContentLabelExt0_->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);\r
+ ContentLabelExt0_->SetRollSpeed(70);\r
+ ContentLabelExt0_->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 30);\r
+ ContentLabelExt0_->SetStyle(STYLE_TEXT_COLOR, 0xffff5a36);\r
+ }\r
+\r
+ if(nullptr == ContentLabelExt1_)\r
+ {\r
+ ContentLabelExt1_ = new UILabelExt();\r
+ if(nullptr == ContentLabelExt1_)\r
+ return nullptr;\r
+\r
+ ContentLabelExt1_->SetPosition(53, 0, 360, 35);\r
+ ContentLabelExt1_->SetStyle(STYLE_TEXT_FONT, 30);\r
+ ContentLabelExt1_->SetStyle(STYLE_LINE_HEIGHT, 35);\r
+ // ContentLabelExt1_->SetTextId(text_id);\r
+ ContentLabelExt1_->SetLineBreakMode(UILabel::LINE_BREAK_OSCILLATION);\r
+ ContentLabelExt1_->SetAlign(TEXT_ALIGNMENT_LEFT, TEXT_ALIGNMENT_TOP);\r
+ ContentLabelExt1_->SetRollSpeed(70);\r
+ ContentLabelExt1_->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 30);\r
+ ContentLabelExt1_->SetStyle(STYLE_TEXT_COLOR, Color::White().full);\r
+ }\r
+\r
+ if(nullptr == ContentLabelExt2_)\r
+ {\r
+ ContentLabelExt2_ = new UILabelExt();\r
+ if(nullptr == ContentLabelExt2_)\r
+ return nullptr;\r
+\r
+ ContentLabelExt2_->SetPosition(53, 0, 360, 35);\r
+ ContentLabelExt2_->SetStyle(STYLE_TEXT_FONT, 30);\r
+ ContentLabelExt2_->SetStyle(STYLE_LINE_HEIGHT, 35);\r
+ // ContentLabelExt2_->SetTextId(text_id);\r
+ ContentLabelExt2_->SetLineBreakMode(UILabel::LINE_BREAK_OSCILLATION);\r
+ ContentLabelExt2_->SetAlign(TEXT_ALIGNMENT_LEFT, TEXT_ALIGNMENT_TOP);\r
+ ContentLabelExt2_->SetRollSpeed(70);\r
+ ContentLabelExt2_->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 30);\r
+ ContentLabelExt2_->SetStyle(STYLE_TEXT_COLOR, Color::White().full);\r
+ }\r
+\r
+ if(nullptr == ContentLabelExt3_)\r
+ {\r
+ ContentLabelExt3_ = new UILabelExt();\r
+ if(nullptr == ContentLabelExt3_)\r
+ return nullptr;\r
+\r
+ int16_t y = ContentLabelExt2_->GetHeight();\r
+ ContentLabelExt3_->SetPosition(53, 0, 360, 35);\r
+ ContentLabelExt3_->SetStyle(STYLE_TEXT_FONT, 30);\r
+ ContentLabelExt3_->SetStyle(STYLE_LINE_HEIGHT, 35);\r
+ // ContentLabelExt3_->SetTextId(text_id);\r
+ ContentLabelExt3_->SetLineBreakMode(UILabel::LINE_BREAK_WRAP);\r
+ ContentLabelExt3_->SetAlign(TEXT_ALIGNMENT_LEFT, TEXT_ALIGNMENT_TOP);\r
+ ContentLabelExt3_->SetRollSpeed(70);\r
+ ContentLabelExt3_->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 30);\r
+ ContentLabelExt3_->SetStyle(STYLE_TEXT_COLOR, Color::White().full);\r
+ }\r
+\r
+ if(nullptr == ContentButton0_)\r
+ {\r
+ ContentButton0_ = new UIButton();\r
+ if(nullptr == ContentButton0_)\r
+ return nullptr;\r
+\r
+ ContentButton0_->SetPosition(93, 0, 280, 90);\r
+ // ContentButton0_->SetViewId();\r
+ ContentButton0_->SetStyle(STYLE_BACKGROUND_COLOR, 0xfffd5213);\r
+ ContentButton0_->SetStyle(STYLE_BACKGROUND_OPA, OPA_OPAQUE);\r
+ ContentButton0_->SetStyleForState(STYLE_BACKGROUND_COLOR, 0xfffd5213, UIButton::PRESSED);\r
+ }\r
+\r
+ if(nullptr == ContentButton1_)\r
+ {\r
+ ContentButton1_ = new UIButton();\r
+ if(nullptr == ContentButton1_)\r
+ return nullptr;\r
+\r
+ ContentButton1_->SetPosition(93, 0, 280, 90);\r
+ // ContentButton1_->SetViewId();\r
+ ContentButton1_->SetStyle(STYLE_BACKGROUND_COLOR, 0xff191919);\r
+ ContentButton1_->SetStyle(STYLE_BACKGROUND_OPA, OPA_OPAQUE);\r
+ ContentButton1_->SetStyleForState(STYLE_BACKGROUND_COLOR, 0xff191919, UIButton::PRESSED);\r
+ }\r
+\r
+ ContentGroup_->Add(ContentLabelExt0_);\r
+ ContentGroup_->Add(ContentLabelExt1_);\r
+ ContentGroup_->Add(ContentLabelExt2_);\r
+ ContentGroup_->Add(ContentLabelExt3_);\r
+ ContentGroup_->Add(ContentButton0_);\r
+ ContentGroup_->Add(ContentButton1_);\r
+\r
+ return ContentGroup_;\r
+ }\r
+\r
+ UILabelExt * ScheduleView::InitLabel(int16_t x, int16_t y, int16_t width, int16_t height,\r
+ uint16_t line_height, uint8_t font_size, uint16_t text_id, uint32_t text_color)\r
+ {\r
+ UILabelExt * LabelExt = new UILabelExt();\r
+ if(nullptr == LabelExt)\r
+ {\r
+ return nullptr;\r
+ }\r
+\r
+ LabelExt->SetPosition(x, y, width, height);\r
+ LabelExt->SetStyle(STYLE_TEXT_FONT, font_size);\r
+ LabelExt->SetStyle(STYLE_LINE_HEIGHT, line_height);\r
+ LabelExt->SetTextId(text_id);\r
+ LabelExt->SetLineBreakMode(UILabel::LINE_BREAK_OSCILLATION);\r
+ LabelExt->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);\r
+ LabelExt->SetRollSpeed(70);\r
+ LabelExt->SetFont(DEFAULT_VECTOR_FONT_FILENAME, font_size);\r
+ LabelExt->SetStyle(STYLE_TEXT_COLOR, text_color);\r
+\r
+ return LabelExt;\r
+ }\r
+\r
+}
\ No newline at end of file
--- /dev/null
+version https://git-lfs.github.com/spec/v1
+oid sha256:cba8ef0eaffc79e3918a64cac8e3e607f0f3522b827f2e02e855dd03017dd846
+size 360