if (scrollView == view_->GetAiVoiceScrollView(AIVOICE_STARTCHAT_VIEWID))
{
/*AI对话界面右滑退出当前Slice*/
- // NativeAbility::GetInstance().Back(TransitionType::TRANSITION_BACK_TO_HEXAGONS);
+ // NativeAbility::GetInstance().Back();
DragLeftToRightChangeAIModel();
}
else if (scrollView == view_->GetAiVoiceScrollView(AIVOICE_ALERT_APPBLUETOOTH_AND_4GNETWORK_VIEWID))
// 如果是power键,且是亮屏状态,按键释放就返回上一级
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);
+ NativeAbility::GetInstance().Back();
AiVoiceModel::GetInstance().CancelCurAIChat();
}
return true;
bool GetClockWeek(int16_t alarmNum, uint8_t *alarmWeek);\r
bool GetClockStatus(int16_t num, uint8_t *alarmEnable);\r
void GetPopTimeData(int16 *hour, int16* min);\r
+ void SetPopTimeData(int16 hour, int16 min);\r
bool GetClockListenerTime(uint32_t &alarmTime);\r
bool GetListenClockId(uint8_t *alarmId);\r
void GetAlarmCallId(uint8_t *alarmId);\r
void NextDayNotify(void);\r
void ResetRingClockStatus(void);\r
void DeactAudioInter(void);\r
- void PushAlarmClockData(AlarmClockQueueMsg alarmClockMsg);\r
+ // void PushAlarmClockData(AlarmClockQueueMsg alarmClockMsg);\r
void PopInterCancelMusic(void);\r
void PopInterPlayMusic(void);\r
void SetAlarmInfo(uint32_t time_hour, uint32_t time_min, uint8 week, uint16_t alarmListener, uint16_t setListener);\r
void AlarmGetClockNum(void);\r
int AlarmPlayerStat();\r
int AlarmPlayerInit(void);\r
+ int AlarmPlayerInit_BY_fir_name(char *);\r
+\r
int AlarmPlayerStart();\r
+ int testPlayerStart(char *);\r
int AlarmPlayerStop();\r
-private:\r
+ int InitAlarmData(void);\r
+\r
+ void UpdateAlarmInfoByAppSet(void);\r
+ void CancelAlarmRing();\r
+ void DelayAlarmRing();\r
void SetAlarmId(uint8_t id);\r
void DeleteAlarmId(uint8_t id);\r
- void NewFirstTime(void);\r
+\r
+private:\r
+ // void NewFirstTime(void);\r
uint8_t GetAlarmId(void);\r
- int32_t SaveGlobalAlarmToFile(void);\r
- int32_t GetAlarmGlobalData(uint8 id, AlarmClockInfo *info);\r
- int32_t InitAlarmClockData(void);\r
- int32_t FetchedAlarmClockData(AlarmClockQueueMsg *alarmClockMsg);\r
+ // int32_t SaveGlobalAlarmToFile(void);\r
+ // int32_t GetAlarmGlobalData(uint8 id, AlarmClockInfo *info);\r
+ // int32_t InitAlarmClockData(void);\r
+ // int32_t FetchedAlarmClockData(AlarmClockQueueMsg *alarmClockMsg);\r
int32_t GettManagement(AlarmClockManagement *management);\r
- int InitAlarmData(void);\r
+ \r
bool JudgeClockModel(uint16_t alarmNum);\r
std::string uri;\r
std::shared_ptr<PlayerCallback> playerCallback{nullptr};\r
std::shared_ptr<Player> playerCtr{nullptr};\r
AlarmClockManagement managementAlarm;\r
uint8_t alarmId[5]{0}; // 事件闹钟的个数是5个\r
- uint16_t alarmSerial{0};\r
+ uint16_t alarmSerial{0};//闹钟数量\r
uint16_t clockListener{0};\r
uint16 preSliceId{0};\r
uint32_t listAlarmClockNum{0};\r
List<AlarmClockQueueMsg> listAlarmClock;\r
};\r
\r
-extern "C" {\r
- void PushAlarmClockDataToModel(AlarmClockQueueMsg alarmClockMsg);\r
-}\r
+// extern "C" {\r
+// void PushAlarmClockDataToModel(AlarmClockQueueMsg alarmClockMsg);\r
+// }\r
}\r
#endif // ALARM_CLOCK_MODEL_H\r
--- /dev/null
+/*
+ * @Author: luozheng 1732036298@qq.com
+ * @Date: 2024-09-25 16:48:17
+ * @LastEditors: luozheng 1732036298@qq.com
+ * @LastEditTime: 2024-10-24 14:14:08
+ * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/alarm/include/AlarmClockModelC.h
+ */
+
+#ifndef ALARM_CLOCK_MODEL_C_H
+#define ALARM_CLOCK_MODEL_C_H
+
+#ifdef __cplusplus
+#if __cplusplus
+extern "C"
+{
+#endif
+#endif
+#include <stdint.h>
+
+ void delete_alarm_id(uint8_t id);
+
+ void set_alarm_id(uint8_t id);
+
+ int testPlayerStart_(char *);
+
+ int AlarmPlayerStop_(void);
+
+ void custom_timer_callback(void);
+
+#ifdef __cplusplus
+#if __cplusplus
+}
+#endif
+#endif
+#endif
\ No newline at end of file
#include "UiConfig.h"\r
#include "AlarmClockModel.h"\r
#include "ChangeSliceListener.h"\r
+#include "components/ui_label_ext.h"\r
\r
namespace OHOS {\r
class AlarmCloseRingView {\r
#include "common/screen.h"\r
#include "gfx_utils/graphic_log.h"\r
#include "AlarmClockModel.h"\r
+#include "components/ui_label_button_ext.h"\r
+#include "components/ui_label_ext.h"\r
\r
namespace OHOS {\r
class AlarmConfigView {\r
static AlarmConfigView *GetInstance(void);\r
void RefreshConfig(const uint32 time, uint8 week, uint16_t alarmNum);\r
private:\r
- UILabelButton *deleteImage{nullptr};\r
- UIScrollView *configScroll{nullptr};\r
+ void InitLabel();\r
+ void InitButton();\r
UIScrollView *group{nullptr};\r
- UILabel *editLabel{nullptr};\r
- UIDigitalClock *labelTime{nullptr};\r
- UILabel *labelSetTime{nullptr};\r
- UILabel *labelDay{nullptr};\r
- UILabel *labelSetWeek{nullptr};\r
- UILabel *labelChangeName{nullptr};\r
- UILabel *labelSetName{nullptr};\r
- UIImageView *changeIcon1{nullptr};\r
- UIImageView *changeIcon2{nullptr};\r
- UIImageView *changeIcon3{nullptr};\r
- UILabel *CreateConfigLabel(const char *buttonText, int16_t labelFont, int16_t x, int16_t y, int16_t width);\r
- void CreateConfigButton(void);\r
- void CreateChangeIcons(void);\r
+ UIScrollView *configScroll{nullptr};\r
+ UILabelExt *editLabel{nullptr};\r
+ UILabelButtonExt* button1{nullptr};\r
+ UILabelButtonExt* button2{nullptr};\r
+ UILabelExt *labelTime{nullptr};\r
+ UILabelExt *labelSetTime{nullptr};\r
+ UILabelExt *labelDay{nullptr};\r
+ UILabelExt *labelSetWeek{nullptr};\r
+ char showtime[12]{0};\r
};\r
} // namespace OHOS\r
#endif // ALARM_CONFIG_VIEW_H
\ No newline at end of file
#include "common/screen.h"\r
#include "AlarmPresenter.h"\r
#include "AlarmClockModel.h"\r
-\r
+#include "components/ui_label_ext.h"\r
+#include "components/ui_label_button_ext.h"\r
namespace OHOS {\r
class AlarmJudgeView {\r
public:\r
AlarmJudgeView();\r
virtual ~AlarmJudgeView();\r
UIScrollView *InitJudgeView();\r
- void OnStop();\r
private:\r
- void CreateImage(void);\r
- UIScrollView *container{nullptr};\r
- UILabel *labelText{nullptr};\r
- UIImageView *imageViewDelete{nullptr};\r
- UIImageView *imageViewTrue{nullptr};\r
+ UIScrollView * InitDeleteScreen();\r
+ void DeinitDeleteScreen();\r
+ UIScrollView * DeleteGroup_{nullptr};\r
+ UILabelExt * DeleteTitleLabelExt_{nullptr};\r
+ UILabelExt * DeletePromptLabelExt_{nullptr};\r
+ UILabelButtonExt * DeleteCancelButton_{nullptr};\r
+ UILabelButtonExt * DeleteOKButton_{nullptr};\r
+\r
+ #define SCREEN_WIDTH (Screen::GetInstance().GetWidth())\r
+ #define SCREEN_HEIGHT (Screen::GetInstance().GetHeight())\r
};\r
} // namespace OHOS\r
#endif
\ No newline at end of file
#include "common/screen.h"\r
#include "AlarmPresenter.h"\r
#include "AlarmClockModel.h"\r
+#include "components/ui_label_ext.h"\r
\r
namespace OHOS {\r
void CancelScanHandle(void);\r
void AlarmMaxDelayExit(void);\r
private:\r
UIScrollView *container{nullptr};\r
- UILabel *labelText{nullptr};\r
+ UILabelExt *labelText{nullptr};\r
};\r
} // namespace OHOS\r
#endif
\ No newline at end of file
#include "View.h"\r
#include "AlarmPresenter.h"\r
#include "AlarmClockModel.h"\r
+#include "components/ui_label_button_ext.h"\r
\r
namespace OHOS {\r
class AlarmNewTimeView : public UITimePicker::SelectedListener {\r
private:\r
void CreateLabelTime(void);\r
UIScrollView *group{nullptr};\r
- UILabel *title{nullptr};\r
+ UILabelExt *title{nullptr};\r
UITimePicker *picker{nullptr};\r
- UILabelButton *labelButton{nullptr};\r
- UILabel *GetTitleLabel(const char *titleName);\r
+ UILabelButtonExt *labelButton{nullptr};\r
};\r
} // namespace OHOS\r
#endif // ALARM_SET_TIME_VIEW_H
\ No newline at end of file
#include "wearable_log.h"\r
#include "color.h"\r
\r
+#include "common/key_code.h"\r
+#include "components/ui_label_ext.h"\r
+#include "components/ui_swipe_view.h"\r
+\r
namespace OHOS {\r
-constexpr char* EVERY_DAY = (char *)"每天";\r
+constexpr char* EVERY_DAY = (char *)"每日";\r
constexpr char* DO_NOT_REPEAT = (char *)"不重复";\r
\r
constexpr char* MON_DAY = (char *)"一 ";\r
constexpr char* SAT_DAY = (char *)"六 ";\r
constexpr char* SUN_DAY = (char *)"日";\r
\r
+constexpr char* EVERY_DAY_EN = (char *)"Everyday";\r
+constexpr char* DO_NOT_REPEAT_EN = (char *)"no-repeat";\r
+\r
+constexpr char* MON_DAY_EN = (char *)"Mon ";\r
+constexpr char* TUE_DAY_EN = (char *)"Tue ";\r
+constexpr char* WED_DAY_EN = (char *)"Wed ";\r
+constexpr char* THUR_DAY_EN = (char *)"Thu ";\r
+constexpr char* FRI_DAY_EN = (char *)"Fri ";\r
+constexpr char* SAT_DAY_EN = (char *)"Sat ";\r
+constexpr char* SUN_DAY_EN = (char *)"Sun";\r
+\r
constexpr char* SET_TIME = (char *)"settime";\r
constexpr char* SET_WEEK = (char *)"setweek";\r
constexpr char* ALARM_CLOCK_DELETE = (char *)"alarmclockdelete";\r
constexpr char* ALARM_OK = (char *)"alarmok";\r
constexpr char* JUDGE_DELETE = (char *)"judgedelete";\r
constexpr char* JUDGE_TRUE = (char *)"judgetrue";\r
-constexpr char* ADD_BUTTON = (char *)"addbutton";\r
+constexpr char* ADD_BUTTON = (char *)"addbutton"; // 增加闹钟按钮viewId\r
\r
+//星期设置按钮的viewId周一到周日\r
constexpr char* MONDAY = (char *)"monday";\r
constexpr char* TUESDAY = (char *)"tuesday";\r
constexpr char* WEDNESDAY = (char *)"wednesday";\r
constexpr char* FRIDAY = (char *)"friday";\r
constexpr char* SATURDAY = (char *)"saturday";\r
constexpr char* SUNDAY = (char *)"sunday";\r
-constexpr char* ALARM_WEEK_OK = (char *)"alarmweekok";\r
+constexpr char* ALARM_WEEK_OK = (char *)"alarmweekok"; // 星期设置确认按钮viewId\r
\r
+// 闹钟开关按钮的viewId\r
constexpr char* ALARM_STATUS_ONE = (char *)"alarmstatus0";\r
constexpr char* ALARM_STATUS_TWO = (char *)"alarmstatus1";\r
constexpr char* ALARM_STATUS_THREE = (char *)"alarmstatus2";\r
\r
constexpr int16_t SET_SIX = 6;\r
\r
-constexpr char* ALARM_STATUS[6] = {ALARM_STATUS_ONE, ALARM_STATUS_TWO, ALARM_STATUS_THREE, // 闹钟按钮最大个数为6个\r
+constexpr char* ALARM_STATUS[6] = {ALARM_STATUS_ONE, ALARM_STATUS_TWO, ALARM_STATUS_THREE, // 闹钟开关按钮viewId最大个数为6个\r
ALARM_STATUS_FOUR, ALARM_STATUS_FIVE, ALARM_STATUS_SIX};\r
constexpr char* ALARM_CLOCK[6] = {ALARM_CLOCK_ONE, ALARM_CLOCK_TWO, ALARM_CLOCK_THREE, // 闹钟个数最大个数为6个\r
ALARM_CLOCK_FOUR, ALARM_CLOCK_FIVE, ALARM_CLOCK_SIX};\r
-constexpr char* WEEK_CONTAINER[7] = {SUNDAY, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY}; // 日期按钮最大个数为7个\r
+constexpr char* WEEK_BUTTON_VIEWID[7] = {SUNDAY, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY}; // 星期按钮viewId最大个数为7个\r
+\r
+\r
+constexpr char * ALARM_ITEM_DELETE_00 = (char *)"ALARM_ITEM_DELETE_00";\r
+constexpr char * ALARM_ITEM_DELETE_01 = (char *)"ALARM_ITEM_DELETE_01";\r
+constexpr char * ALARM_ITEM_DELETE_02 = (char *)"ALARM_ITEM_DELETE_02";\r
+constexpr char * ALARM_ITEM_DELETE_03 = (char *)"ALARM_ITEM_DELETE_03";\r
+constexpr char * ALARM_ITEM_DELETE_04 = (char *)"ALARM_ITEM_DELETE_04";\r
+constexpr char * ALARM_ITEM_DELETE_05 = (char *)"ALARM_ITEM_DELETE_05";\r
+constexpr char * ALARM_ITEM_DELETE[6] = {ALARM_ITEM_DELETE_00, ALARM_ITEM_DELETE_01, ALARM_ITEM_DELETE_02, \r
+ ALARM_ITEM_DELETE_03, ALARM_ITEM_DELETE_04, ALARM_ITEM_DELETE_05};\r
\r
typedef enum {\r
- MAIN_INTERFACE = 0,\r
- CHANGE_INTERFACE_CONFIG,\r
- CHANGE_INTERFACE_SET_TIME,\r
- CHANGE_INTERFACE_SET_WEEK,\r
- CHANGE_INTERFACE_JUDGE,\r
- CHANGE_INTERFACE_NEW_TIME,\r
+ MAIN_INTERFACE = 0, // 主界面\r
+ CHANGE_INTERFACE_CONFIG, // 闹钟编辑页面[包括更改时间和更改星期]\r
+ CHANGE_INTERFACE_SET_TIME, // 时间设置页面\r
+ CHANGE_INTERFACE_SET_WEEK, //星期设置页面\r
+ CHANGE_INTERFACE_JUDGE, // 确认删除闹钟页面\r
+ CHANGE_INTERFACE_NEW_TIME, // 新建闹钟的[时间设置]页面\r
CHANGE_INTERFACE_MAXCLOCK,\r
} InterfacesId;\r
\r
-class AlarmStatusBtnChangeListener : public OHOS::UICheckBox::OnChangeListener\r
-{\r
+constexpr int16_t NEW_TIME_LISTENER = 0; // 新建闹钟的[时间设置]标志\r
+constexpr int16_t SET_TIME_LISTENER = 1; // 更新已存在闹钟的[星期设置]标志\r
+\r
+class AlarmStatusBtnChangeListener : public OHOS::UICheckBox::OnChangeListener {\r
public:\r
explicit AlarmStatusBtnChangeListener(UIView *uiView)\r
{\r
};\r
\r
class MainAlarmView;\r
-class AlarmPresenter : public Presenter<MainAlarmView>, public UIView::OnClickListener,\r
- public UITimePicker::SelectedListener, public UIView::OnDragListener {\r
+class AlarmPresenter : public Presenter<MainAlarmView>, public UIView::OnClickListener, public RootView::OnKeyActListener, \r
+ public UITimePicker::SelectedListener, public UIView::OnDragListener, public UISwipeView::OnSwipeListener {\r
public:\r
AlarmPresenter();\r
~AlarmPresenter() override;\r
ColorType ShadowBlue(void);\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
+ bool OnDragEnd(UIView& view, const DragEvent& event) override;\r
+ void OnSwipe(UISwipeView &view) override;\r
bool ClickFuncId(const char *buttonName);\r
bool ClickFuncView(UIView &view);\r
void OnTimePickerStoped(UITimePicker &picker) override;\r
- void ClickBlue(UIView &view);\r
- void ClickBlack(UIView &view);\r
- void GetAlarmNum(uint16_t alarmNum);\r
+ // void ClickBlue(UIView &view);三个函数都没实现\r
+ // void ClickBlack(UIView &view);\r
+ // void GetAlarmNum(uint16_t alarmNum);\r
void ClickSetTime(uint16_t alarmNum);\r
void ClickSetWeek(uint16_t alarmNum);\r
void ClickAlarmClockDelete(uint16_t alarmNum);\r
void ClickAlarmNext(uint16_t alarmNum);\r
void OnTimePickerInaction(uint32_t hour, uint32_t min);\r
uint8_t alarmWeek[7] = {1, 1, 1, 1, 1, 1, 1}; // 闹钟默认所有的日期都选中,因此初始值为1,7是指一个星期中七天\r
+\r
+ void ClickDeleteButtonAlarmClockDelete(uint16_t num);\r
+ void UpdateAlarmInfoByAppSet(void);\r
+ void RefreshAlarmStatus(int i);\r
+\r
private:\r
uint32_t timeHour{0};\r
uint32_t timeMin{0};\r
- uint16_t setListener;\r
- uint16_t alarmListener{0};\r
+ uint16_t setListener; // 新建闹钟还是修改闹钟的标志\r
+ uint16_t alarmListener{0};//闹钟编号\r
uint16_t clockQty{0};\r
int16_t interListener;\r
bool buttonStratus = true;\r
+ bool X_DRAG_FLAG{false};\r
};\r
}\r
#endif
\ No newline at end of file
#include "AlarmPresenter.h"\r
#include "AlarmClockModel.h"\r
#include "wearable_log.h"\r
+#include "components/ui_label_button_ext.h"\r
\r
namespace OHOS {\r
class AlarmSetTimeView {\r
void RefreshSetTime(uint32_t time);\r
private:\r
UIScrollView *group{nullptr};\r
- UILabelButton *timeImage{nullptr};\r
- UILabel *title{nullptr};\r
+ // UILabelButton *timeImage{nullptr};\r
+ UILabelButtonExt * labelButton{nullptr};\r
+ UILabelExt *title{nullptr};\r
UITimePicker *picker{nullptr};\r
UILabel *GetTitleLabel(const char *titleName);\r
void SetLabelButton(void);\r
#include "components/ui_time_picker.h"\r
#include "AlarmPresenter.h"\r
#include "AlarmClockModel.h"\r
+#include "components/ui_label_ext.h"\r
+#include "components/ui_label_button_ext.h"\r
+\r
+#define WEEK_NUM 7 // 星期一共有7天\r
\r
namespace OHOS {\r
class AlarmSetWeekView {\r
void RefreshSetWeek2(uint8_t week);\r
private:\r
UIScrollView *group{nullptr};\r
- UILabelButton *weekImage{nullptr};\r
- UILabel *labelRespeat{nullptr};\r
- UILabelButton *buttonWeek[7]{nullptr}; // 星期一共有7天,因此设置了七个星期的按钮\r
+ UILabelButtonExt *weekImage{nullptr};\r
+ UILabelExt *labelRespeat{nullptr};\r
+ UILabelButton *buttonWeek[WEEK_NUM]{nullptr}; // 星期一共有7天,因此设置了七个星期的按钮\r
void CreateWeekButton1(void);\r
void CreateWeekButton2(void);\r
void SetLabelButton(void);\r
- UILabelButton *CreateUILabelButton(const char *buttonText, int16_t x, int16_t y);\r
- UIView *CreateUIView(int16_t x, int16_t y);\r
+ UILabelButtonExt *CreateUILabelButton(const char *buttonText1,const char *buttonText2, int16_t x, int16_t y);\r
};\r
} // namespace OHOS\r
#endif\r
#include "AlarmNewTimeView.h"
#include "AlarmMaxClock.h"
#include "AlarmClockModel.h"
+#include "components/ui_swipe_view.h"
+#include "components/ui_label_button_ext.h"
namespace OHOS {
-constexpr int16_t D_CLOCK_Y = 210;
-constexpr int16_t LABEL_ZERO_Y = 270;
-constexpr int16_t ALARM_INTER_ADD = 150;
+constexpr int16_t ALARM_INTER_ADD = 120; // 120;
class AlarmPresenter;
class MainAlarmView : public View<AlarmPresenter> {
void OnStart() override;
void ChangeView(int16_t hideView, int16_t showView);
void DropView(UIView& view);
- void CreateImage();
void RefreshAlarm(void);
bool ChangeMainAlarm(int16_t thisView);
bool ChangeConfig(int16_t thisView);
bool ChangeJudge(int16_t thisView);
bool ChangeNewTime(int16_t thisView);
bool ChangeMaxClock(int16_t thisView);
- bool ClickFunc(int16_t interf);
+ bool ClickFunc(int16_t interface);
bool GetRefreshStatus(void);
+ void RefreshAlarmStatus(uint8_t alarmEnable, int16_t num);
private:
void LabelGetWeek(uint8_t week, int16_t alarmNum);
- void RefreshAlarmStatus(uint8_t alarmEnable, int16_t num);
void NewClockCtl(int16_t alarmNum);
- AlarmConfigView *configView{nullptr};
- AlarmSetTimeView *setTimeView{nullptr};
- AlarmSetWeekView *setWeekView{nullptr};
+ UIViewGroup * NewClockCtlExt(int16_t alarmNum, uint8_t index);
+ void AlarmTitleCreate(void);
+ void AlarmAddButtonCreate(void);
+ void AlarmAddButtonUpdate(uint8_t count);
+
+private:
+ AlarmConfigView *configView{nullptr}; //编辑闹钟页面【包括更改时间和更改星期】
+ AlarmSetTimeView *setTimeView{nullptr};//时间设置页面
+ AlarmSetWeekView *setWeekView{nullptr};//星期设置页面
AlarmJudgeView *judgeView{nullptr};
AlarmNewTimeView *newTimeView{nullptr};
AlarmMaxClock *maxClockView{nullptr};
UIScrollView *group{nullptr};
+ UISwipeView * SwipeView_[6]{nullptr};
+ UIViewGroup * SwipeViewItem_[6][2]{nullptr};
+ UILabelButtonExt * DeleteButton_[6]{nullptr};
UIToggleButton *statusButton[6]{nullptr}; // 6代表界面中最多存在六个按键
- UIImageView *addButton{nullptr};
UIDigitalClock *dClock[6]{nullptr}; // 6代表界面中最多存在六个闹钟
- UILabel *dLabel[6]{nullptr}; // 6代表界面中显示闹钟日期的控件个数
+ UILabelExt *dLabel[6]{nullptr}; // 6代表界面中显示闹钟日期的控件个数
UIScrollView *container[7]{nullptr}; // 7代表容器存有主界面以及跳转的四个副界面,用于跳转后显示或隐藏界面
uint8_t alarmHour, alarmMin;
int8_t dClockNum{-1};
int16_t weekStatus{-1};
- int16_t alarmPositionY{D_CLOCK_Y};
- int16_t labelPositionY{LABEL_ZERO_Y};
- int16_t alarmInterval{ALARM_INTER_ADD};
+ int16_t alarmInterval{ALARM_INTER_ADD}; // 闹钟之间的间隔
bool reflashStatus{false};
+ UILabelExt * TitleLabelExt_{nullptr};
+ UILabelButtonExt * AddButton_{nullptr};
+ UICheckBox::OnChangeListener *statusListener[6]{nullptr};
+ bool viewInitstatus_{false};
+
+ #define ALARM_DELETE_IMAGE "/user/res/Alarm/alarm_delete.bin"
};
} // namespace OHOS
#endif // MAIN_ALARM_VIEW_Ha
\ No newline at end of file
#include "securec.h"
#include "los_mux.h"
#include "samgr_lite.h"
-#include "graphic_mutex.h"
+#include "thread_adapter.h"
#include "UiConfig.h"
-#include "AlarmClockModel.h"
-#include "AlarmPopUpPresenter.h"
+#include "alarm/include/AlarmClockModel.h"
+#include "alarm/include/AlarmPopUpPresenter.h"
#include "graphic_service.h"
-#include "PlayersModel.h"
-#include "PhoneService.h"
+#include "player/include/PlayersModel.h"
+#include "phoneservice/include/PhoneService.h"
#include "ui_service.h"
+#include "notification_manager.h"
+#include "ConfigModel.h"
+#include "custom_runtime.h"
+#include "alarm/include/AlarmClockModelC.h"
#ifdef __cplusplus
extern "C" {
namespace OHOS {
#define BUFFER_SIZE 15
-static GraphicMutex g_alarmClockDataMutex;
+// static MutexId g_alarmClockDataMutex;
constexpr char *ALARM_CLOCK_DATA_PATH = (char *)"/user/res/alarm.bin";
constexpr char *ALARM_CLOCK_DIRECTORY = (char *)"/user/res/";
constexpr int ALARM_CLOCK_MAX = 5;
AlarmClockModel::AlarmClockModel()
{
- InitAlarmData();
+ // g_alarmClockDataMutex = MUTEX_InitValue();
+ // InitAlarmData();
}
AlarmClockModel::~AlarmClockModel()
for (uint16_t num = 0; num < CLOCK_NUM; num++) {
alarmName[num] = nullptr;
}
+ // g_alarmClockDataMutex = nullptr;
}
AlarmClockModel *AlarmClockModel::GetInstance(void)
return &alarmClockModel;
}
-int32_t AlarmClockModel::SaveGlobalAlarmToFile(void)
-{
- std::ofstream fd(ALARM_CLOCK_DATA_PATH);
- if (!fd.good()) {
- (void)mkdir(ALARM_CLOCK_DIRECTORY, S_IREAD | S_IWRITE);
- std::ofstream fd(ALARM_CLOCK_DATA_PATH);
- if (!fd.good()) {
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SaveGlobalAlarmToFile open fail");
- fd.close();
- return -1;
- }
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "mkdir success!!");
- }
- fd.write((const char *)(&g_alarmClockData), sizeof(g_alarmClockData));
- fd.close();
- return 0;
-}
-
-int32_t AlarmClockModel::GetAlarmGlobalData(uint8 id, AlarmClockInfo *info)
-{
- int32_t ret;
- if (info == nullptr) {
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "GetAlarmGlobalData info nullptr!!");
- return -1;
- }
- if (g_alarmClockData[id].alarmClockId != id) {
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "g_alarmClockData id %u error!", id);
- return -1;
- }
- ret = memcpy_s(info, sizeof(AlarmClockInfo), &g_alarmClockData[id], sizeof(AlarmClockInfo));
- if (ret != EOK) {
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "GetAlarmGlobalData fail. ret=%d", ret);
- return ret;
- }
- return 0;
-}
-
-void AlarmClockModel::PushAlarmClockData(AlarmClockQueueMsg alarmClockMsg)
-{
- if (listAlarmClockNum >= LIST_ALARM_CLOCK_MAX) {
- return;
- }
- g_alarmClockDataMutex.Lock();
- listAlarmClockNum++;
- listAlarmClock.PushBack(alarmClockMsg);
- g_alarmClockDataMutex.Unlock();
- SaveGlobalAlarmToFile();
-}
-
-int32_t AlarmClockModel::FetchedAlarmClockData(AlarmClockQueueMsg *alarmClockMsg)
-{
- if (alarmClockMsg == nullptr) {
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "FetchedAlarmClockData alarmClockMsg nullptr!!");
- return -1;
- }
- if (listAlarmClock.IsEmpty()) {
- return -1;
- } else {
- g_alarmClockDataMutex.Lock();
- if (listAlarmClockNum >= 1) {
- listAlarmClockNum--;
- } else {
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "FetchedAlarmClockData listAlarmClockNum invalid, num=%u",
- listAlarmClockNum);
- return -1;
- }
- *alarmClockMsg = listAlarmClock.Front();
- listAlarmClock.PopFront();
- g_alarmClockDataMutex.Unlock();
- }
- return 0;
-}
-
-int32_t AlarmClockModel::InitAlarmClockData(void)
-{
- (void)memset_s(&g_alarmClockData, sizeof(g_alarmClockData), 0, sizeof(g_alarmClockData));
- std::ifstream fd(ALARM_CLOCK_DATA_PATH);
- if (!fd.good()) {
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "InitAlarmClockData open fail");
- fd.close();
- return -1;
- } else {
- fd.read((char *)(&g_alarmClockData), sizeof(g_alarmClockData));
- fd.close();
- return 0;
- }
- return 0;
-}
+// int32_t AlarmClockModel::SaveGlobalAlarmToFile(void)
+// {
+// std::ofstream fd(ALARM_CLOCK_DATA_PATH);
+// if (!fd.good()) {
+// (void)mkdir(ALARM_CLOCK_DIRECTORY, S_IREAD | S_IWRITE);
+// std::ofstream fd(ALARM_CLOCK_DATA_PATH);
+// if (!fd.good()) {
+// WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SaveGlobalAlarmToFile open fail");
+// fd.close();
+// return -1;
+// }
+// WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "mkdir success!!");
+// }
+// fd.write((const char *)(&g_alarmClockData), sizeof(g_alarmClockData));
+// fd.close();
+// return 0;
+// }
+
+// int32_t AlarmClockModel::GetAlarmGlobalData(uint8 id, AlarmClockInfo *info)
+// {
+// int32_t ret;
+// if (info == nullptr) {
+// WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "GetAlarmGlobalData info nullptr!!");
+// return -1;
+// }
+// if (g_alarmClockData[id].alarmClockId != id) {
+// WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "g_alarmClockData id %u error!", id);
+// return -1;
+// }
+// ret = memcpy_s(info, sizeof(AlarmClockInfo), &g_alarmClockData[id], sizeof(AlarmClockInfo));
+// if (ret != EOK) {
+// WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "GetAlarmGlobalData fail. ret=%d", ret);
+// return ret;
+// }
+// return 0;
+// }
+
+// void AlarmClockModel::PushAlarmClockData(AlarmClockQueueMsg alarmClockMsg)
+// {
+// if (listAlarmClockNum >= LIST_ALARM_CLOCK_MAX) {
+// return;
+// }
+// MUTEX_Lock(g_alarmClockDataMutex);
+// listAlarmClockNum++;
+// listAlarmClock.PushBack(alarmClockMsg);
+// MUTEX_Unlock(g_alarmClockDataMutex);
+// SaveGlobalAlarmToFile();
+// }
+
+// int32_t AlarmClockModel::FetchedAlarmClockData(AlarmClockQueueMsg *alarmClockMsg)
+// {
+// if (alarmClockMsg == nullptr) {
+// WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "FetchedAlarmClockData alarmClockMsg nullptr!!");
+// return -1;
+// }
+// if (listAlarmClock.IsEmpty()) {
+// return -1;
+// } else {
+// MUTEX_Lock(g_alarmClockDataMutex);
+// if (listAlarmClockNum >= 1) {
+// listAlarmClockNum--;
+// } else {
+// WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "FetchedAlarmClockData listAlarmClockNum invalid, num=%u",
+// listAlarmClockNum);
+// return -1;
+// }
+// *alarmClockMsg = listAlarmClock.Front();
+// listAlarmClock.PopFront();
+// MUTEX_Unlock(g_alarmClockDataMutex);
+// }
+// return 0;
+// }
+
+// int32_t AlarmClockModel::InitAlarmClockData(void)
+// {
+// (void)memset_s(&g_alarmClockData, sizeof(g_alarmClockData), 0, sizeof(g_alarmClockData));
+// std::ifstream fd(ALARM_CLOCK_DATA_PATH);
+// if (!fd.good()) {
+// WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "InitAlarmClockData open fail");
+// fd.close();
+// return -1;
+// } else {
+// fd.read((char *)(&g_alarmClockData), sizeof(g_alarmClockData));
+// fd.close();
+// return 0;
+// }
+// return 0;
+// }
int32_t AlarmClockModel::InitAlarmData(void)
{
WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlarmClockModel::InitAlarmData get managementAlarm error!");
return -1;
}
- if (managementAlarm.eventAlarmInfo[0].alarmType == TYPE_INVALID_ALARM_CLOCK) {
- NewFirstTime();
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlarmClockModel::InitAlarmData new first alarm");
+ // if (managementAlarm.eventAlarmInfo[0].alarmType == TYPE_INVALID_ALARM_CLOCK) {
+ // NewFirstTime();
+ // WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlarmClockModel::InitAlarmData new first alarm");
+ // }
+ alarmSerial = 0;
+ for (num = 0; num < CLOCK_MAX; num++) {
+ delete currentAlarm[num];
+ currentAlarm[num] = nullptr;
}
- for (uint16_t i = 0; i < ALARM_CLOCK_MAX; i++) {
+ for (uint16_t i = 0, num = 0; i < ALARM_CLOCK_MAX; i++) {
for (int j = 0; j < ALARM_CLOCK_MAX; j++) {
if (managementAlarm.eventAlarmInfo[j].index == i && managementAlarm.eventAlarmInfo[j].alarmType == TYPE_EVENT_ALARM_CLOCK) {
currentAlarm[num] = &managementAlarm.eventAlarmInfo[j];
SetAlarmId(currentAlarm[num]->alarmClockId);
num++;
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP,
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,
"AlarmClockModel::InitAlarmData get managementAlarm[%u], the unmber of alarm is %u!", j, alarmSerial);
- if (i > 0) {
+ // if (i > 0) {
alarmSerial++;
- }
+ // }
}
}
}
return 0;
}
+//获取闹钟数量
int32_t AlarmClockModel::GetAlarmNum(void)
{
return alarmSerial;
}
}
+//获取一个可用的闹钟 ID
uint8_t AlarmClockModel::GetAlarmId(void)
{
for (int num = 0; num < CLOCK_MAX; num++) {
- if (alarmId[num] == 0) {
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlarmClockModel::GetAlarmId alarmId[%d] = %d", num, alarmId[num]);
+ }
+ for (int num = 0; num < CLOCK_MAX; num++) {
+ if (alarmId[num] == 0) { //如果某个元素的值为 0,表示这个 ID 尚未被使用
return num;
}
}
return 0;
}
+//将指定id的闹钟标记为已删除状态
void AlarmClockModel::DeleteAlarmId(uint8_t id)
{
for (int num = 0; num < CLOCK_MAX; num++) {
return;
}
+//将指定id的闹钟标记为已设置状态
void AlarmClockModel::SetAlarmId(uint8_t id)
{
for (int num = 0; num < CLOCK_MAX; num++) {
return;
}
-void AlarmClockModel::NewFirstTime(void)
-{
- uint32_t timeTem = FIRST_CLOCK_HOUR;
- if (currentAlarm[0] == nullptr) {
- currentAlarm[0] = new AlarmClockInfo();
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlarmClockModel::NewFirstTime new alarm_clock!");
- }
- currentAlarm[0]->alarmClockId = GetAlarmId();
- currentAlarm[0]->alarmClockEnable = 0;
- currentAlarm[0]->alarmType = 1;
- currentAlarm[0]->nameLen = strlen(alarmName[0]);
- currentAlarm[0]->index = 0;
- currentAlarm[0]->delayNum = 0;
- if (strcpy_s(currentAlarm[0]->alarmClockName, CLOCK_NAME_LENGTH, alarmName[0]) != 0) {
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlarmClockModel::NewFirstTime copy alarmname error!");
- return;
- }
- currentAlarm[0]->alarmTime = (timeTem << 16) | 0x0000; // 第一个闹钟的时间初始化为九点
- currentAlarm[0]->repeatPeriod = 0x7F; // 第一个闹钟的日期设置默认为一周七天全选
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP,
- "AlarmClockModel::JudgeClockModel currentAlarm[0]->alarm_time = %u, currentAlarm[0]->repeat_period =%u",
- currentAlarm[0]->alarmTime, currentAlarm[0]->repeatPeriod);
-
- int ret = AddAlarmClock(currentAlarm[0]);
- if (ret != 0) {
- if (currentAlarm[0] != nullptr) {
- delete currentAlarm[0];
- currentAlarm[0] = nullptr;
- }
- return;
- }
- SetAlarmId(currentAlarm[0]->alarmClockId);
- return;
-}
-
+void set_alarm_id(uint8_t id)
+{
+ AlarmClockModel::GetInstance()->SetAlarmId(id);
+}
+
+void delete_alarm_id(uint8_t id)
+{
+ AlarmClockModel::GetInstance()->DeleteAlarmId(id);
+}
+// void AlarmClockModel::NewFirstTime(void)
+// {
+// uint32_t timeTem = FIRST_CLOCK_HOUR;
+// if (currentAlarm[0] == nullptr) {
+// currentAlarm[0] = new AlarmClockInfo();
+// WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlarmClockModel::NewFirstTime new alarm_clock!");
+// }
+// currentAlarm[0]->alarmClockId = GetAlarmId();
+// currentAlarm[0]->alarmClockEnable = 0;
+// currentAlarm[0]->alarmType = 1;
+// currentAlarm[0]->nameLen = strlen(alarmName[0]);
+// currentAlarm[0]->index = 0;
+// currentAlarm[0]->delayNum = 0;
+// if (strcpy_s(currentAlarm[0]->alarmClockName, CLOCK_NAME_LENGTH, alarmName[0]) != 0) {
+// WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlarmClockModel::NewFirstTime copy alarmname error!");
+// return;
+// }
+// currentAlarm[0]->alarmTime = (timeTem << 16) | 0x0000; // 第一个闹钟的时间初始化为九点
+// currentAlarm[0]->repeatPeriod = 0x7F; // 第一个闹钟的日期设置默认为一周七天全选
+// WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,
+// "AlarmClockModel::JudgeClockModel currentAlarm[0]->alarm_time = %u, currentAlarm[0]->repeat_period =%u",
+// currentAlarm[0]->alarmTime, currentAlarm[0]->repeatPeriod);
+
+// int ret = AddAlarmClock(currentAlarm[0]);
+// if (ret != 0) {
+// if (currentAlarm[0] != nullptr) {
+// delete currentAlarm[0];
+// currentAlarm[0] = nullptr;
+// }
+// return;
+// }
+// SetAlarmId(currentAlarm[0]->alarmClockId);
+// return;
+// }
+#if 1
void AlarmClockModel::DeleteClockModel(uint16_t num)
{
+ // WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlarmClockModel::DeleteClockModel num=%d", num);
if (num >= CLOCK_MAX || currentAlarm[num] == nullptr) {
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlarmClockModel::DeleteClockModel delete clock error!");
return;
"AlarmClockModel::DeleteAlarmClock = %d, currentAlarm[alarmListener] = %p, id = %u!", status, currentAlarm[num],
currentAlarm[num]->alarmClockId);
DeleteAlarmId(clockId);
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlarmClockModel::DeleteClockModel alarmSerial = %u!", alarmSerial);
- for (; num < alarmSerial; num++) {
- AlarmClockInfo *tempAlarm = currentAlarm[num];
- tempAlarm->index = currentAlarm[num]->index;
- currentAlarm[num] = currentAlarm[num + 1];
- currentAlarm[num]->index = num;
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlarmClockModel::UpdataAlarmClock index = %u!",
- currentAlarm[num]->index);
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlarmClockModel::DeleteClockModel alarmSerial = %u!", alarmSerial);
+
+ for (; num < alarmSerial - 1; num ++) {
if (currentAlarm[num + 1] == nullptr || currentAlarm[num + 1]->alarmType == TYPE_INVALID_ALARM_CLOCK) {
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlarmClockModel::DeleteClockModel fail");
- currentAlarm[num] = tempAlarm;
- return;
+ break;
}
+ AlarmClockInfo *tempAlarm = currentAlarm[num];
+ currentAlarm[num] = currentAlarm[num + 1];
+ currentAlarm[num]->index = num;
+
int ret = UpdataAlarmClock(currentAlarm[num]);
- if (ret != 0) {
+ if (ret != 0)
+ {
currentAlarm[num] = tempAlarm;
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlarmClockModel::DeleteClockModel [%d]", __LINE__);
return;
}
}
- currentAlarm[alarmSerial] = nullptr;
+ currentAlarm[alarmSerial - 1] = nullptr;
}
+#else
+
+//删除闹钟信息
+void AlarmClockModel::DeleteClockModel(uint16_t id)
+{
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlarmClockModel::DeleteClockModel id=%d", id);
+ if (id >= CLOCK_MAX || currentAlarm[id] == nullptr) {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlarmClockModel::DeleteClockModel delete clock error!");
+ return;
+ }
+ uint8_t clockId = currentAlarm[id]->alarmClockId;
+ int status = DeleteAlarmClock(currentAlarm[id]);
+ if (status!= 0) {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlarmClockModel::DeleteAlarmClock delete clock error!");
+ return;
+ }
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,"AlarmClockModel::DeleteAlarmClock = %d, currentAlarm[alarmListener] = %p, alarmClockId = %u!", status, currentAlarm[id],currentAlarm[id]->alarmClockId);
+ DeleteAlarmId(clockId);
+ int alarmNum = GetAlarmNum();
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlarmClockModel::DeleteClockModel alarmNum = %u!", alarmNum);
+
+ bool isFirstAlarm = (alarmNum == 0);
+ if (isFirstAlarm) {
+ // 如果是第一个闹钟,直接处理删除,无需检查下一个闹钟状态
+ if (alarmNum > 1) {
+ // 如果有多个闹钟,将第二个闹钟赋给第一个位置,并更新索引
+ currentAlarm[0] = currentAlarm[1];
+ currentAlarm[0]->index = 0;
+ int ret = UpdataAlarmClock(currentAlarm[0]);
+ if (ret!= 0) {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlarmClockModel::DeleteClockModel update first alarm failed!");
+ return;
+ }
+ } else {
+ // 如果只有一个闹钟,直接将其置为 nullptr
+ currentAlarm[0] = nullptr;
+ }
+ } else {
+ // 如果不是第一个闹钟,按照原逻辑处理
+ for (; id < alarmNum; id++)
+ {
+ AlarmClockInfo *tempAlarm = currentAlarm[id];
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlarmClockModel::DeleteClockModel. current_index = %u!", currentAlarm[id]->index);
+ // 判断是否到达最后一个闹钟或者下一个闹钟为 nullptr 或无效类型
+ if ((id + 1) == alarmNum || currentAlarm[id + 1] == nullptr || currentAlarm[id + 1]->alarmType == TYPE_INVALID_ALARM_CLOCK)
+ {
+ // 如果是最后一个闹钟,直接置为 nullptr
+ if ((id + 1) == alarmNum) {
+ currentAlarm[id] = nullptr;
+ } else {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlarmClockModel::DeleteClockModel fail");
+ currentAlarm[id] = tempAlarm;
+ return;
+ }
+ break;
+ }
+ currentAlarm[id] = currentAlarm[id + 1];
+ currentAlarm[id]->index = id;
+ int ret = UpdataAlarmClock(currentAlarm[id]);
+ if (ret!= 0)
+ {
+ currentAlarm[id] = tempAlarm;
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlarmClockModel::DeleteClockModel [%d]", __LINE__);
+ return;
+ }
+ }
+ }
+}
+#endif
+//切换特定闹钟的启用状态
bool AlarmClockModel::ButtonStatusRing(int16_t num, bool alarmStatus)
{
if (num >= CLOCK_MAX || currentAlarm[num] == nullptr) {
} else if (!alarmStatus) {
currentAlarm[num]->alarmClockEnable = 0;
}
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlarmClockModel::ButtonStatusRing alarm[%d] status is %u", num,
- currentAlarm[num]->alarmClockEnable);
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlarmClockModel::ButtonStatusRing alarm[%d] status is %u", num, currentAlarm[num]->alarmClockEnable);
int ret = UpdataAlarmClock(currentAlarm[num]);
if (ret != 0) {
currentAlarm[num]->alarmClockEnable = tempAlarmEnable;
return true;
}
+//延迟某个闹钟
void AlarmClockModel::SetDelayAlarm(uint8_t alarm)
{
AlarmClockQueueMsg *clockQueueMsg = new AlarmClockQueueMsg();
}
currentAlarm[clockListener]->delayNum++;
clockQueueMsg->eventType = EVENT_ALARM_RING_DELAY;
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlarmClockModel::ButtonStatusRing clockQueueMsg->eventType is %u",
- clockQueueMsg->eventType);
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlarmClockModel::ButtonStatusRing clockQueueMsg->eventType is %u",clockQueueMsg->eventType);
(clockQueueMsg->data).value = alarm;
AlmmgrAlarmClockEventProcess(clockQueueMsg);
return;
}
+//取消某个闹钟
void AlarmClockModel::SetCancelAlarm(uint8_t alarm)
{
AlarmClockQueueMsg *clockQueueMsg = new AlarmClockQueueMsg();
return;
}
clockQueueMsg->eventType = EVENT_ALARM_RING_CANCEL;
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlarmClockModel::ButtonStatusRing clockQueueMsg->eventType is %u",
- clockQueueMsg->eventType);
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlarmClockModel::ButtonStatusRing clockQueueMsg->eventType is %u",clockQueueMsg->eventType);
(clockQueueMsg->data).value = alarm;
AlmmgrAlarmClockEventProcess(clockQueueMsg);
return;
}
+//设置闹钟时间
void AlarmClockModel::SetAlarmTime(uint32_t time_hour, uint32_t time_min, int16_t num)
{
if (num >= CLOCK_MAX || currentAlarm[num] == nullptr) {
currentAlarm[num]->alarmTime);
}
+//设置闹钟星期
void AlarmClockModel::SetAlarmWeek(uint8_t week, int16_t num)
{
WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlarmClockModel::SetAlarmWeek set week!");
void AlarmClockModel::DelAlarmDelay(int16_t num)
{
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlarmClockModel::SetAlarmWeek set week!");
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlarmClockModel::DelAlarmDelay set week!");
if (num >= CLOCK_MAX || currentAlarm[num] == nullptr) {
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlarmClcokModel::SetAlarmTime new alarm_clock! num = %d", num);
return;
currentAlarm[num]->delayNum = tempAlarmDelay;
return;
}
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlarmClockModel::SetAlarmWeek currentAlarm[num]->delayNum = %u",
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlarmClockModel::DelAlarmDelay currentAlarm[num]->delayNum = %u",
currentAlarm[num]->delayNum);
}
-void AlarmClockModel::SetAlarmInfo(uint32_t time_hour, uint32_t time_min, uint8_t week, uint16_t alarmListener,
- uint16_t setListener)
+/*
+ * @brief 设置闹钟信息
+ * @param 1 闹钟的小时数
+ * @param 2 闹钟的分钟数
+ * @param 3 表示闹钟的重复周期,按位表示一周中哪些天重复的数值
+ * @param 4 标识特定闹钟的索引
+ * @param 5 区分是新建闹钟还是修改闹钟的标志
+ */
+void AlarmClockModel::SetAlarmInfo(uint32_t time_hour, uint32_t time_min, uint8_t week, uint16_t alarmListener,uint16_t setListener)
{
WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlarmClockModel::SetAlarmInfo!");
+ // 检查时间参数是否合法
+ if (time_hour < 0 || time_hour > 23 || time_min < 0 || time_min > 59)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Invalid time parameters!");
+ return;
+ }
+ // 检查 alarmListener 是否在合理范围内
+ if (alarmListener >= ALARM_CLOCK_MAX || alarmListener < 0)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Invalid alarmListener value!");
+ return;
+ }
+ // 检查 setListener 是否合法
+ if (setListener!= NEW_TIME_LISTENER && setListener!= SET_TIME_LISTENER) // NEW_TIME_LISTENER:0 表示新建闹钟,SET_TIME_LISTENER:1 表示修改闹钟
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Invalid setListener value!");
+ return;
+ }
if (currentAlarm[alarmListener] == nullptr || (currentAlarm[alarmListener]->alarmType == TYPE_INVALID_ALARM_CLOCK &&
currentAlarm[alarmListener] != nullptr)) {
currentAlarm[alarmListener] = new AlarmClockInfo();
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlarmClcokModel::SetAlarmTime new alarm!");
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlarmClcokModel::SetAlarmTime new alarm!");
}
WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "hour = %u, minute = %u", time_hour, time_min);
- currentAlarm[alarmListener]->alarmTime = ((time_hour << 16) | time_min); // 闹钟时间数据的小时位右边16位
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlarmClockModel::NewAlarmTime currentAlarm[alarmListener]->alarm_time = %u",
- currentAlarm[alarmListener]->alarmTime);
+ currentAlarm[alarmListener]->alarmTime = ((time_hour << 16) | time_min); // 闹钟时间数据:小时存储在高 16 位,分钟存储在低 16 位
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlarmClockModel::NewAlarmTime currentAlarm[alarmListener]->alarm_time = %u",currentAlarm[alarmListener]->alarmTime);
currentAlarm[alarmListener]->alarmClockId = GetAlarmId();
currentAlarm[alarmListener]->alarmClockEnable = 1;
currentAlarm[alarmListener]->alarmType = 1;
}
WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlarmClockModel::NewAlarmTime clock name = %s, id = %u",
currentAlarm[alarmListener]->alarmClockName, currentAlarm[alarmListener]->alarmClockId);
- if (setListener == 0) {
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlarmClockModel::SetAlarmWeek new time!");
+ if (setListener == NEW_TIME_LISTENER) { //表示新建闹钟
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlarmClockModel::SetAlarmWeek new time!");
int ret = AddAlarmClock(currentAlarm[alarmListener]);
if (ret != 0) {
if (currentAlarm[alarmListener] != nullptr) {
return;
}
SetAlarmId(currentAlarm[alarmListener]->alarmClockId);
- } else {
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlarmClockModel::SetAlarmWeek modify time!");
+ } else { //表示修改闹钟
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlarmClockModel::SetAlarmWeek modify time!");
UpdataAlarmClock(currentAlarm[alarmListener]);
}
}
}
if (currentAlarm[clockListener]->repeatPeriod == 0) {
currentAlarm[clockListener]->alarmClockEnable = 0;
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlarmClockModel::ResetRingClockStatus");
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlarmClockModel::ResetRingClockStatus clockListener = %d",clockListener);
}
}
*hour = popHour;
*min = popMin;
}
-
+void AlarmClockModel::SetPopTimeData(int16 hour, int16 min)
+{
+ popHour = hour;
+ popMin = min;
+}
void AlarmClockModel::AlarmGetClockNum()
{
struct tm curTime;
currentAlarm[num]->alarmTime >> TWO_BYTES_BITS, currentAlarm[num]->alarmTime & AND_FOR_LOW_TWO_BYTES);
popHour = hour;
popMin = min;
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlarmClockModel::AlarmGetClockNum %d:%d!", popHour, popMin);
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlarmClockModel::AlarmGetClockNum %d:%d!", popHour, popMin);
clockListener = num;
return;
}
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlarmTimerCallback AlarmGetCurrentTimeInfo failed!!");
return;
}
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlarmGetClockNum, hour:%u, min:%u", curTime.tm_hour, curTime.tm_min);
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "GetAlarmCallId, hour:%u, min:%u", curTime.tm_hour, curTime.tm_min);
for (uint16_t num = 0; num < CLOCK_MAX; num++) {
if (currentAlarm[num] == nullptr || currentAlarm[num]->alarmType == TYPE_INVALID_ALARM_CLOCK) {
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlarmClockModel::AlarmGetClockNum get num fail!");
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlarmClockModel::GetAlarmCallId get num fail!");
return;
}
int32_t hour = currentAlarm[num]->alarmTime >> TWO_BYTES_BITS;
hour = (hour + min / ONE_HOUR_MIN) % TWENTY_FOUR_HOUR;
min = min % ONE_HOUR_MIN;
if (curTime.tm_hour == hour && curTime.tm_min == min) {
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlarmClockModel::AlarmGetClockNum %d:%d!",
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlarmClockModel::GetAlarmCallId %d:%d!",
currentAlarm[num]->alarmTime >> TWO_BYTES_BITS, currentAlarm[num]->alarmTime & AND_FOR_LOW_TWO_BYTES);
*alarm = currentAlarm[num]->alarmClockId;
return;
void AlarmClockModel::PopInterPlayMusic()
{
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlarmClockModel::PopInterPlayMusic");
+ if(true == ConfigModel::GetInstance()->GetDnotdisturb() || (uapi_sleep_mode_flag_get()))
+ {
+ return;
+ }
+
ScreenTurnOn(-1);
+
GraphicService::GetInstance()->PostGraphicEvent(
std::bind(&AlarmClockModel::AlarmPlayerStart, AlarmClockModel::GetInstance()));
}
int AlarmClockModel::AlarmPlayerStat()
{
int32_t ret;
+ // if(NotificationManager::GetInstance()->GetWatchCallStatus())
+ // {
+ // WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlarmClockModel::GetWatchCallStatus");
+ // return 0;
+ // }
// 设置回调函数
if (playerCtr.get() == nullptr) {
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlarmClockModel::AlarmPlayerStat playerCtr nullptr");
return OHOS_FAILURE;
}
- playerCtr->SetPlayerCallback(playerCallback);
+ //playerCtr->SetPlayerCallback(playerCallback);
// 申请资源
source = std::make_shared<Source>(uri, header);
if (source.get() == nullptr) {
}
WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlarmPlayer uri %s.", uri.c_str());
playerCtr->SetSource(*source);
- playerCtr->SetAudioStreamType(AUDIO_STREAM_ALARM_CLOCK);
+ playerCtr->SetAudioStreamType(AUDIO_STREAM_RING);
playerCtr->Prepare();
// 申请焦点
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "playerInterruptListener new fail");
return OHOS_FAILURE;
}
- interrupt = { AUDIO_STREAM_ALARM_CLOCK, sessionId, playerInterruptListener };
+ interrupt = { AUDIO_STREAM_RING, sessionId, playerInterruptListener };
// 激活音频中断 5s超时
if (amIntance.ActivateAudioInterrupt(interrupt) == INTERRUPT_FAILED) {
WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "ActivateAudioInterrupt faild");
return OHOS_FAILURE;
}
playerCtr->SetAudioSessionId(sessionId);
+ playerCtr->SetVolume(amIntance.GetMaxVolume(AUDIO_STREAM_MUSIC),amIntance.GetMaxVolume(AUDIO_STREAM_MUSIC));
+ playerCtr->EnableSingleLooping(true);
// 播放
- playerCtr->Play();
+ // playerCtr->Play();
+
+ ret = playerCtr->Play();
+ if (ret != 0) {
+ playerCtr->Stop(); // 暂停
+ playerCtr->Reset(); // 初始化
+
+ AudioManager::GetInstance().DeactivateAudioInterrupt(interrupt);
+ }
return OHOS_SUCCESS;
}
std::string strSongName = sliceId;
std::string pureName = strSongName.substr(0, strSongName.rfind(".")); // 播放音乐的路径需要引用.号
WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "PlayerInit, url:%s ", sliceId);
- std::string strSrcMusic(APP_MUSIC_PATH);
+ //std::string strSrcMusic(APP_MUSIC_PATH);
+ #ifdef SINGLE_USER_PARTITION
+ std::string strSrcMusic("/user/music/ring");
+ #else
+ std::string strSrcMusic("/music/ring");
+ #endif
std::string tempStr("/");
std::string strName = sliceId;
uri = strSrcMusic + tempStr + strName;
return OHOS_SUCCESS;
}
+
+int AlarmClockModel::AlarmPlayerInit_BY_fir_name(char *str)
+{
+ // 本地播放文件路径和状态
+ sliceId = str; // 播放音乐的文件名
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "PlayerInit start!");
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "PlayerInit, url:%s ", sliceId);
+ std::string strName = sliceId;
+ uri =strName;
+ // 创建 AM
+
+ playerCtr = std::make_shared<Player>();
+ if (playerCtr.get() == nullptr) {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "playerCtr new fail");
+ return OHOS_FAILURE;
+ }
+ playerCallback = std::make_shared<AlarmPlayerCallbackImpl>();
+ if (playerCallback.get() == nullptr) {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "playerCallback new fail");
+ return OHOS_FAILURE;
+ }
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "PlayerInit end!");
+ return OHOS_SUCCESS;
+}
+
int AlarmClockModel::AlarmPlayerStop(void)
{
int32_t ret = 0;
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlarmClockModel::AlarmPlayerStop playerCtr nullptr");
return OHOS_FAILURE;
}
-
- ret = playerCtr->Stop();
- playerCtr->Reset();
- playerCtr->Release();
- if (amIntance.DeactivateAudioInterrupt(interrupt) != 0) {
- return OHOS_FAILURE;
+ if(playerCtr->IsPlaying())
+ {
+ ret = playerCtr->Stop();
+ playerCtr->Reset();
+ playerCtr->Release();
+ if (amIntance.DeactivateAudioInterrupt(interrupt) != 0) {
+ return OHOS_FAILURE;
+ }
}
WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "Reset, ret:%d", ret);
return OHOS_SUCCESS;
return OHOS_SUCCESS;
}
+int testPlayerStart_(char *str)
+{
+ AlarmClockModel::GetInstance()->testPlayerStart(str);
+ return OHOS_SUCCESS;
+}
+
+int AlarmPlayerStop_(void)
+{
+ AlarmClockModel::GetInstance()->AlarmPlayerStop();
+ return OHOS_SUCCESS;
+}
+
+int AlarmClockModel::testPlayerStart(char *str)
+{
+ AlarmPlayerInit_BY_fir_name(str);
+ AlarmPlayerStat();
+ return OHOS_SUCCESS;
+}
+
void AlarmPlayerCallbackImpl::OnPlaybackComplete()
{
GraphicService::GetInstance()->PostGraphicEvent(
uint16_t preSlice = NativeAbility::GetInstance().GetPreSliceId();
if (preSlice == VIEW_ALARM_POP_UP || preSlice < VIEW_SETTING) {
preSlice = VIEW_MAIN;
- } else if ((preSlice == VIEW_MAEKPHONE_SAMPLE) &&
+ } else if ((preSlice == VIEW_INCOMING_CALL) &&
(GetCurrCallNum() == 0 || GetScoConnectState() != HFP_SCO_STATE_CONNECTED)) {
int num;
PhoneCallInfo callList[MULTI_CALL_MAX_NUME]{};
return AlmmgrGetSmartAlarmCnt();
}
+void AlarmClockModel::UpdateAlarmInfoByAppSet(void)
+{
+ if(nullptr != OHOS::AlarmPresenter::GetInstance())
+ {
+ OHOS::AlarmPresenter::GetInstance()->UpdateAlarmInfoByAppSet();
+ }
+}
+
+void AlarmClockModel::CancelAlarmRing()
+{
+ bool alarmStatus;
+ uint8_t alarm = 0;
+ alarmStatus = AlarmClockModel::GetInstance()->GetListenClockId(&alarm);
+ if (!alarmStatus) {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlarmPopUpPresenter::CancelAlarmRing get alarm Id false!");
+ return;
+ }
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "CancelAlarmRing alarm = %d",alarm);
+ AlarmClockModel::GetInstance()->ResetRingClockStatus();
+ AlarmClockModel::GetInstance()->SetCancelAlarm(alarm);
+ if(AlarmPresenter::GetInstance()) {
+ AlarmPresenter::GetInstance()->RefreshAlarmStatus(clockListener);
+ }
+}
+
+void AlarmClockModel::DelayAlarmRing()
+{
+ uint8_t alarmId = 0;
+ bool alarmStatus;
+ alarmStatus = AlarmClockModel::GetInstance()->GetListenClockId(&alarmId);
+ if (!alarmStatus) {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlarmClockModel::DelayAlarmRing get alarm Id false!");
+ return;
+ }
+ AlarmClockModel::GetInstance()->SetDelayAlarm(alarmId);
+}
+
bool AlarmPlayerListener::IsPaused()
{
return isPaused_;
}
}
-void PushAlarmClockDataToModel(AlarmClockQueueMsg alarmClockMsg)
-{
- OHOS::AlarmClockModel::GetInstance()->PushAlarmClockData(alarmClockMsg);
-}
+// void PushAlarmClockDataToModel(AlarmClockQueueMsg alarmClockMsg)
+// {
+// OHOS::AlarmClockModel::GetInstance()->PushAlarmClockData(alarmClockMsg);
+// }
////////////////////////////////////////////////////////////////////////////
\r
#include "AlarmPopUpPresenter.h"\r
\r
-#ifdef FD230_650\r
-#include "PhoneService.h"\r
-#endif\r
namespace OHOS {\r
#define CLOSE "关闭"\r
\r
#include "AlarmPresenter.h"\r
#include <sstream>\r
#include "color.h"\r
-\r
-namespace OHOS {\r
+#include "ConfigModel.h"\r
+#include "ui_resource_string.h"\r
+#include "languagecode/LanguageInit.h"\r
+namespace OHOS\r
+{\r
#define SET_ALARM "编辑闹钟"\r
#define TIME "9:00:00"\r
#define SET_THIS_TIME "更改时间"\r
#define EVERY_DAY "每天"\r
#define DO_NOT_REPEAT "不重复"\r
\r
-static AlarmConfigView *g_pAlarmConfigView = nullptr;\r
-constexpr int16_t CONTAINER_X = 0;\r
-constexpr int16_t CONTAINER_Y = 0;\r
-constexpr int16_t SET_ONE = 1;\r
-constexpr int16_t SET_FOUR = 4;\r
-constexpr int16_t TITLE_X_LEN = 100;\r
-constexpr int16_t MAX_TITLE_X_LEN = 160;\r
-constexpr int16_t MAX_TITLE_Y_LEN = 45;\r
-constexpr int16_t MAX_DATA_X = 65;\r
-constexpr int16_t CLOCK_X = 165;\r
-constexpr int16_t LABEL_WID = 250;\r
-constexpr int16_t MAX_LABEL_H_LEN = 80;\r
-constexpr int16_t MAX_DATA_W_LEN = 275;\r
-constexpr int16_t DIGITAL_CLOCK_FONT = 45;\r
-constexpr int16_t MAX_LABEL_TIME_Y_LEN = 195;\r
-constexpr int16_t LABEL_SET_TIME_Y = 245;\r
-constexpr int16_t MAX_LABEL_DAY_Y_LEN = 320;\r
-constexpr int16_t MAX_LABEL_SET_WEEK_Y_LEN = 380;\r
-constexpr int16_t MAX_LABEL_LABEL_CHANGE_NAME_Y_LEN = 460;\r
-constexpr int16_t MAX_LABEL_SET_NAME_Y_LEN = 505;\r
-constexpr int16_t MAX_DEFAULT_FONT_LEN = 34;\r
-constexpr int16_t LITTLE_LABEL_FONT = 30;\r
-constexpr int16_t MAX_DEFAULT_FONT_2_LEN = 35;\r
-constexpr int16_t MAX_DEFAULT_LIT_FONT2_LEN = 40;\r
-constexpr int16_t MAX_BACK_BUTTON_HEIGHT_LEN = 64;\r
-constexpr int16_t MAX_FONT_DEFAULT_SIZE_LEN = 24;\r
-constexpr int16_t MAX_DELETE_BUTTON_W_LEN = 320;\r
-constexpr int16_t LABEL_DAY_WIDTH = 320;\r
-constexpr int16_t MAX_DELETE_BUTTON_H_LEN = 100;\r
-constexpr int16_t MAX_DELETE_BUTTON_X_LEN = 63;\r
-constexpr int16_t MAX_DELETE_BUTTON_Y_LEN = 365;\r
-constexpr int16_t MAX_IMAGE_CHANGE_X_LEN = 370;\r
-constexpr int16_t MAX_IMAGE_CHANGE1_Y_LEN = 210;\r
-constexpr int16_t MAX_IMAGE_CHANGE2_Y_LEN = 350;\r
-constexpr int16_t MAX_IMAGE_CHANGE3_Y_LEN = 470;\r
-constexpr int16_t MAX_IMAGE_CHANGE_WIDTH = 50;\r
-constexpr int16_t MAX_IMAGE_CHANGE_HEIGHT = 60;\r
-constexpr int16_t CONFIG_SCROLL_SIZE = 50;\r
-constexpr int16_t LABEL_SEMITRANSPARENT = 168;\r
-\r
-AlarmConfigView::AlarmConfigView()\r
-{\r
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlarmConfigView::AlarmConfigView");\r
- g_pAlarmConfigView = this;\r
-}\r
-\r
-AlarmConfigView::~AlarmConfigView()\r
-{\r
- group->RemoveAll();\r
- configScroll->RemoveAll();\r
- delete editLabel;\r
- editLabel = nullptr;\r
- delete deleteImage;\r
- deleteImage = nullptr;\r
- delete configScroll;\r
- configScroll = nullptr;\r
- delete labelTime;\r
- labelTime = nullptr;\r
- delete labelSetTime;\r
- labelSetTime = nullptr;\r
- delete labelDay;\r
- labelDay = nullptr;\r
- delete labelSetWeek;\r
- labelSetWeek = nullptr;\r
- delete labelChangeName;\r
- labelChangeName = nullptr;\r
- delete labelSetName;\r
- labelSetName = nullptr;\r
- delete changeIcon1;\r
- changeIcon1 = nullptr;\r
- delete changeIcon2;\r
- changeIcon2 = nullptr;\r
- delete changeIcon3;\r
- changeIcon3 = nullptr;\r
- delete group;\r
- group = nullptr;\r
- g_pAlarmConfigView = nullptr;\r
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlarmConfigView::~AlarmConfigView");\r
-}\r
+ static AlarmConfigView *g_pAlarmConfigView = nullptr;\r
+ constexpr int16_t CONTAINER_X = 0;\r
+ constexpr int16_t CONTAINER_Y = 0;\r
+ constexpr int16_t SET_ONE = 1;\r
+ constexpr int16_t SET_FOUR = 4;\r
+ constexpr int16_t TITLE_X_LEN = 100;\r
+ constexpr int16_t MAX_TITLE_X_LEN = 160;\r
+ constexpr int16_t MAX_TITLE_Y_LEN = 45;\r
+ constexpr int16_t MAX_DATA_X = 65;\r
+ constexpr int16_t CLOCK_X = 165;\r
+ constexpr int16_t LABEL_WID = 250;\r
+ constexpr int16_t MAX_LABEL_H_LEN = 80;\r
+ constexpr int16_t MAX_DATA_W_LEN = 275;\r
+ constexpr int16_t DIGITAL_CLOCK_FONT = 45;\r
+ constexpr int16_t MAX_LABEL_TIME_Y_LEN = 195 - 25;\r
+ constexpr int16_t LABEL_SET_TIME_Y = 245 - 25;\r
+ constexpr int16_t MAX_LABEL_DAY_Y_LEN = 320 - 30;\r
+ constexpr int16_t MAX_LABEL_SET_WEEK_Y_LEN = 380 - 30;\r
+ constexpr int16_t MAX_LABEL_LABEL_CHANGE_NAME_Y_LEN = 460;\r
+ constexpr int16_t MAX_LABEL_SET_NAME_Y_LEN = 505;\r
+ constexpr int16_t MAX_DEFAULT_FONT_LEN = 34;\r
+ constexpr int16_t LITTLE_LABEL_FONT = 30;\r
+ constexpr int16_t MAX_DEFAULT_FONT_2_LEN = 35;\r
+ constexpr int16_t MAX_DEFAULT_LIT_FONT2_LEN = 40;\r
+ constexpr int16_t MAX_BACK_BUTTON_HEIGHT_LEN = 64;\r
+ constexpr int16_t MAX_FONT_DEFAULT_SIZE_LEN = 24;\r
+ constexpr int16_t MAX_DELETE_BUTTON_W_LEN = 320;\r
+ constexpr int16_t LABEL_DAY_WIDTH = 320;\r
+ constexpr int16_t MAX_DELETE_BUTTON_H_LEN = 100;\r
+ constexpr int16_t MAX_DELETE_BUTTON_X_LEN = 63;\r
+ constexpr int16_t MAX_DELETE_BUTTON_Y_LEN = 365;\r
+ constexpr int16_t MAX_IMAGE_CHANGE_X_LEN = 370;\r
+ constexpr int16_t MAX_IMAGE_CHANGE1_Y_LEN = 210 - 25;\r
+ constexpr int16_t MAX_IMAGE_CHANGE2_Y_LEN = 350 - 30;\r
+ constexpr int16_t MAX_IMAGE_CHANGE3_Y_LEN = 470;\r
+ constexpr int16_t MAX_IMAGE_CHANGE_WIDTH = 50;\r
+ constexpr int16_t MAX_IMAGE_CHANGE_HEIGHT = 60;\r
+ constexpr int16_t CONFIG_SCROLL_SIZE = 50;\r
+ constexpr int16_t LABEL_SEMITRANSPARENT = 168;\r
\r
-AlarmConfigView *AlarmConfigView::GetInstance(void)\r
-{\r
- return g_pAlarmConfigView;\r
-}\r
-\r
-UILabel *AlarmConfigView::CreateConfigLabel(const char *buttonText, int16_t labelFont, int16_t x, int16_t y, int16_t width)\r
-{\r
- if (buttonText == nullptr) {\r
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlarmConfigView:: buttonText nullptr!");\r
- return nullptr;\r
+ AlarmConfigView::AlarmConfigView()\r
+ {\r
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlarmConfigView::AlarmConfigView");\r
+ g_pAlarmConfigView = this;\r
}\r
- UILabel *label = nullptr;\r
- label = new UILabel();\r
- if (label == nullptr) {\r
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlarmConfigView:: CreateConfigLabel return nullptr");\r
- return nullptr;\r
- }\r
- label->SetFont(DEFAULT_VECTOR_FONT_FILENAME, labelFont);\r
- label->SetText(buttonText);\r
- label->SetPosition(x, y, width, MAX_LABEL_H_LEN);\r
- return label;\r
-}\r
\r
-void AlarmConfigView::CreateChangeIcons(void)\r
-{\r
- changeIcon1 = new UIImageView();\r
- if (changeIcon1 == nullptr) {\r
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlarmConfigView:: new changeIcon1 fail");\r
- return;\r
- }\r
- changeIcon1->SetPosition(MAX_IMAGE_CHANGE_X_LEN, MAX_IMAGE_CHANGE1_Y_LEN, MAX_IMAGE_CHANGE_WIDTH, MAX_IMAGE_CHANGE_HEIGHT);\r
- changeIcon1->SetSrc(PNG_SETTTING_BUTTON_IMAGE);\r
- configScroll->Add(changeIcon1);\r
-\r
- changeIcon2 = new UIImageView();\r
- if (changeIcon2 == nullptr) {\r
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlarmConfigView:: new changeIcon2 fail");\r
- return;\r
- }\r
- changeIcon2->SetPosition(MAX_IMAGE_CHANGE_X_LEN, MAX_IMAGE_CHANGE2_Y_LEN, MAX_IMAGE_CHANGE_WIDTH, MAX_IMAGE_CHANGE_HEIGHT);\r
- changeIcon2->SetSrc(PNG_SETTTING_BUTTON_IMAGE);\r
- configScroll->Add(changeIcon2);\r
-\r
- changeIcon3 = new UIImageView();\r
- if (changeIcon3 == nullptr) {\r
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlarmConfigView:: new changeIcon3 fail");\r
- return;\r
- }\r
- changeIcon3->SetPosition(MAX_IMAGE_CHANGE_X_LEN, MAX_IMAGE_CHANGE3_Y_LEN, MAX_IMAGE_CHANGE_WIDTH, MAX_IMAGE_CHANGE_HEIGHT);\r
- changeIcon3->SetSrc(PNG_SETTTING_BUTTON_IMAGE);\r
- configScroll->Add(changeIcon3);\r
-\r
- UIView::OnDragListener *configDragListener = (UIView::OnDragListener *)OHOS::AlarmPresenter::GetInstance();\r
- if (configDragListener == nullptr) {\r
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlarmConfigView:: new configDragListener fail");\r
- return;\r
- }\r
- group->SetOnDragListener(configDragListener);\r
-}\r
-\r
-void AlarmConfigView::CreateConfigButton(void)\r
-{\r
- editLabel = CreateConfigLabel(SET_ALARM, MAX_DEFAULT_FONT_LEN, TITLE_X_LEN, MAX_TITLE_Y_LEN, LABEL_WID);\r
- if (editLabel == nullptr) {\r
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlarmConfigView:: new editLabel fail");\r
- return;\r
- }\r
- editLabel->SetAlign(UITextLanguageAlignment::TEXT_ALIGNMENT_CENTER, UITextLanguageAlignment::TEXT_ALIGNMENT_CENTER);\r
- configScroll->Add(editLabel);\r
- UIView::OnClickListener *clickListener = (UIView::OnClickListener *)OHOS::AlarmPresenter::GetInstance();\r
- if (clickListener == nullptr) {\r
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlarmConfigView::OnStart clickListener nullptr");\r
- return;\r
- }\r
- labelTime = new UIDigitalClock();\r
- if (labelTime == nullptr) {\r
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlarmConfigView:: new labelTime fail");\r
- return;\r
+ AlarmConfigView::~AlarmConfigView()\r
+ {\r
+ if (nullptr != group)\r
+ {\r
+ group->RemoveAll();\r
+ if (nullptr != configScroll)\r
+ {\r
+ configScroll->RemoveAll();\r
+ if (nullptr != editLabel)\r
+ {\r
+ delete editLabel;\r
+ editLabel = nullptr;\r
+ }\r
+ if (nullptr != labelTime)\r
+ {\r
+ delete labelTime;\r
+ labelTime = nullptr;\r
+ }\r
+ if (nullptr != labelSetTime)\r
+ {\r
+ delete labelSetTime;\r
+ labelSetTime = nullptr;\r
+ }\r
+ if (nullptr != labelDay)\r
+ {\r
+ delete labelDay;\r
+ labelDay = nullptr;\r
+ }\r
+ if (nullptr != labelSetWeek)\r
+ {\r
+ delete labelSetWeek;\r
+ labelSetWeek = nullptr;\r
+ }\r
+ if (nullptr != button1)\r
+ {\r
+ delete button1;\r
+ button1 = nullptr;\r
+ }\r
+ if (nullptr != button2)\r
+ {\r
+ delete button2;\r
+ button2 = nullptr;\r
+ }\r
+ delete configScroll;\r
+ configScroll = nullptr;\r
+ }\r
+ delete group;\r
+ group = nullptr;\r
+ }\r
+ g_pAlarmConfigView = nullptr;\r
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlarmConfigView::~AlarmConfigView");\r
}\r
- labelTime->SetViewId(SET_TIME);\r
- labelTime->SetPosition(CLOCK_X, MAX_LABEL_TIME_Y_LEN, LABEL_WID, MAX_LABEL_H_LEN);\r
- labelTime->SetFont(DEFAULT_VECTOR_FONT_FILENAME, DIGITAL_CLOCK_FONT);\r
- labelTime->SetTouchable(true);\r
- labelTime->SetDisplayMode(UIDigitalClock::DISPLAY_24_HOUR_NO_SECONDS);\r
- labelTime->SetOnClickListener(clickListener);\r
- configScroll->Add(labelTime);\r
\r
- labelSetTime = CreateConfigLabel(SET_THIS_TIME, LITTLE_LABEL_FONT, MAX_TITLE_X_LEN, LABEL_SET_TIME_Y, LABEL_WID);\r
- if (labelSetTime == nullptr) {\r
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlarmConfigView:: new labelSetTime fail");\r
- return;\r
- }\r
- labelSetTime->SetStyle(STYLE_TEXT_OPA, LABEL_SEMITRANSPARENT);\r
- configScroll->Add(labelSetTime);\r
- labelDay = CreateConfigLabel(WEEK_MON_TUE, MAX_DEFAULT_FONT_LEN, MAX_DATA_X, MAX_LABEL_DAY_Y_LEN, LABEL_DAY_WIDTH);\r
- if (labelDay == nullptr) {\r
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlarmConfigView:: new labelDay fail");\r
- return;\r
+ AlarmConfigView *AlarmConfigView::GetInstance(void)\r
+ {\r
+ return g_pAlarmConfigView;\r
}\r
- labelDay->SetAlign(UITextLanguageAlignment::TEXT_ALIGNMENT_CENTER, UITextLanguageAlignment::TEXT_ALIGNMENT_CENTER);\r
- configScroll->Add(labelDay);\r
- labelDay->SetViewId(SET_WEEK);\r
- labelDay->SetTouchable(true);\r
- labelDay->SetOnClickListener(clickListener);\r
- labelSetWeek = CreateConfigLabel(SET_DATA, LITTLE_LABEL_FONT, MAX_TITLE_X_LEN, MAX_LABEL_SET_WEEK_Y_LEN, LABEL_WID);\r
- if (labelSetWeek == nullptr) {\r
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlarmConfigView:: new labelSetWeek fail");\r
- return;\r
+ void AlarmConfigView::InitLabel()\r
+ {\r
+ if (editLabel == nullptr)\r
+ {\r
+ editLabel = new UILabelExt();\r
+ if (editLabel == nullptr)\r
+ {\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlarmNewTimeView:: new editLabel fail");\r
+ return;\r
+ }\r
+ }\r
+ editLabel->SetPosition(83, 50, 300, 35);\r
+ // editLabel->SetText("编辑闹钟");\r
+ editLabel->SetTextId(STR_ALARM);\r
+ editLabel->SetStyle(STYLE_TEXT_FONT, 30);\r
+ editLabel->SetStyle(STYLE_LINE_HEIGHT, 35);\r
+ editLabel->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);\r
+ editLabel->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 30);\r
+ editLabel->SetLineBreakMode(UILabel::LINE_BREAK_OSCILLATION);\r
+ editLabel->SetRollSpeed(23);\r
+ /* -------------------------------------------------------------------------- */\r
+ // if (labelTime == nullptr)\r
+ // {\r
+ // labelTime = new UIDigitalClock();\r
+ // if (labelTime == nullptr)\r
+ // {\r
+ // WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlarmConfigView:: new labelTime fail");\r
+ // return;\r
+ // }\r
+ // }\r
+ // labelTime->SetPosition(93, (120 - 80) / 2, 150, 45);\r
+ // labelTime->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 45);\r
+ // labelTime->SetTouchable(true);\r
+ // labelTime->SetDisplayMode(UIDigitalClock::DISPLAY_24_HOUR_NO_SECONDS);\r
+ if (labelTime == nullptr)\r
+ {\r
+ labelTime = new UILabelExt();\r
+ if (labelTime == nullptr)\r
+ {\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlarmNewTimeView:: new labelSetTime fail");\r
+ return;\r
+ }\r
+ }\r
+ labelTime->SetPosition(93, 120 + 12, 250, 45);\r
+ labelTime->SetStyle(STYLE_TEXT_FONT, 40);\r
+ labelTime->SetStyle(STYLE_LINE_HEIGHT, 45);\r
+ labelTime->SetFont(DEFAULT_VECTOR_FONT_FILENAME_EN, 40);\r
+ labelTime->SetLineBreakMode(UILabel::LINE_BREAK_OSCILLATION);\r
+ labelTime->SetRollSpeed(23);\r
+ /* -------------------------------------------------------------------------- */\r
+ if (labelSetTime == nullptr)\r
+ {\r
+ labelSetTime = new UILabelExt();\r
+ if (labelSetTime == nullptr)\r
+ {\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlarmNewTimeView:: new labelSetTime fail");\r
+ return;\r
+ }\r
+ }\r
+ labelSetTime->SetPosition(93, labelTime->GetY() + labelTime->GetHeight(), 250, 35);\r
+ // labelSetTime->SetText("更改时间");\r
+ labelSetTime->SetTextId(STR_ALARM_TIME_CHANGE);\r
+ labelSetTime->SetStyle(STYLE_TEXT_FONT, 30);\r
+ labelSetTime->SetStyle(STYLE_LINE_HEIGHT, 35);\r
+ labelSetTime->SetTextColor(Color::GetColorFromRGBA(0x99, 0x99, 0x99, 0xff));\r
+ labelSetTime->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 30);\r
+ labelSetTime->SetLineBreakMode(UILabel::LINE_BREAK_OSCILLATION);\r
+ labelSetTime->SetRollSpeed(23);\r
+ /* -------------------------------------------------------------------------- */\r
+ if (labelDay == nullptr)\r
+ {\r
+ labelDay = new UILabelExt();\r
+ if (labelDay == nullptr)\r
+ {\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlarmNewTimeView:: new labelDay fail");\r
+ return;\r
+ }\r
+ }\r
+ labelDay->SetPosition(93, 240 + 12, 250, 45);\r
+ labelDay->SetStyle(STYLE_TEXT_FONT, 40);\r
+ labelDay->SetStyle(STYLE_LINE_HEIGHT, 45);\r
+ labelDay->SetFont(DEFAULT_VECTOR_FONT_FILENAME_EN, 40);\r
+ labelDay->SetLineBreakMode(UILabel::LINE_BREAK_OSCILLATION);\r
+ labelDay->SetRollSpeed(23);\r
+ /* -------------------------------------------------------------------------- */\r
+ if (labelSetWeek == nullptr)\r
+ {\r
+ labelSetWeek = new UILabelExt();\r
+ if (labelSetWeek == nullptr)\r
+ {\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlarmNewTimeView:: new labelSetWeek fail");\r
+ return;\r
+ }\r
+ }\r
+ labelSetWeek->SetPosition(93, labelDay->GetY() + labelDay->GetHeight(), 250, 35);\r
+ // labelSetWeek->SetText("更改星期");\r
+ labelSetWeek->SetTextId(STR_ALARM_WEEK_CHANGE);\r
+ labelSetWeek->SetStyle(STYLE_TEXT_FONT, 30);\r
+ labelSetWeek->SetStyle(STYLE_LINE_HEIGHT, 35);\r
+ labelSetWeek->SetTextColor(Color::GetColorFromRGBA(0x99, 0x99, 0x99, 0xff));\r
+ labelSetWeek->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 30);\r
+ labelSetWeek->SetLineBreakMode(UILabel::LINE_BREAK_OSCILLATION);\r
+ labelSetWeek->SetRollSpeed(23);\r
}\r
- labelSetWeek->SetStyle(STYLE_TEXT_OPA, LABEL_SEMITRANSPARENT);\r
- configScroll->Add(labelSetWeek);\r
-}\r
\r
-UIScrollView *AlarmConfigView::InitConfigView(void)\r
-{\r
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlarmConfigView::OnStart");\r
- group = new UIScrollView();\r
- if (group == nullptr) {\r
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlarmSetWeekView:: new group fail");\r
- return nullptr;\r
+ void AlarmConfigView::InitButton()\r
+ {\r
+ UIView::OnClickListener *clickListener = (UIView::OnClickListener *)OHOS::AlarmPresenter::GetInstance();\r
+ if (clickListener == nullptr)\r
+ {\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlarmConfigView::OnStart clickListener nullptr");\r
+ return;\r
+ }\r
+ if (nullptr == button1)\r
+ {\r
+ button1 = new UILabelButtonExt();\r
+ if (nullptr == button1)\r
+ {\r
+ return;\r
+ }\r
+ }\r
+ button1->SetPosition(43, 120, 380, 100);\r
+ button1->SetViewId(SET_TIME); // 设置时间\r
+ button1->SetStyle(STYLE_BACKGROUND_COLOR, 0xff191919);\r
+ button1->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 30);\r
+ button1->SetStyle(STYLE_LINE_HEIGHT, 35);\r
+ button1->SetStyleForState(STYLE_BACKGROUND_COLOR, 0xff000000, UIButton::PRESSED);\r
+ button1->SetAlign(TEXT_ALIGNMENT_LEFT);\r
+ button1->SetLabelPosition(115, 0);\r
+ button1->SetImagePosition(326, 37);\r
+ button1->SetImageSrc(PNG_SETTING_NEXT_IMAGE, PNG_SETTING_NEXT_IMAGE);\r
+ button1->SetOnClickListener(clickListener);\r
+ /* -------------------------------------------------------------------------- */\r
+ if (nullptr == button2)\r
+ {\r
+ button2 = new UILabelButtonExt();\r
+ if (nullptr == button2)\r
+ {\r
+ return;\r
+ }\r
+ }\r
+ button2->SetPosition(43, 240, 380, 100);\r
+ button2->SetViewId(SET_WEEK); // 设置星期\r
+ button2->SetStyle(STYLE_BACKGROUND_COLOR, 0xff191919);\r
+ button2->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 30);\r
+ button2->SetStyle(STYLE_LINE_HEIGHT, 35);\r
+ button2->SetStyleForState(STYLE_BACKGROUND_COLOR, 0xff000000, UIButton::PRESSED);\r
+ button2->SetAlign(TEXT_ALIGNMENT_LEFT);\r
+ button2->SetLabelPosition(115, 0);\r
+ button2->SetImagePosition(326, 37);\r
+ button2->SetImageSrc(PNG_SETTING_NEXT_IMAGE, PNG_SETTING_NEXT_IMAGE);\r
+ button2->SetOnClickListener(clickListener);\r
}\r
- group->SetPosition(CONTAINER_X, CONTAINER_Y, HORIZONTAL_RESOLUTION, VERTICAL_RESOLUTION);\r
\r
- configScroll = new UIScrollView();\r
- if (configScroll == nullptr) {\r
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlarmConfigView:: new configScroll fail");\r
- return nullptr;\r
- }\r
- configScroll->Resize(HORIZONTAL_RESOLUTION, VERTICAL_RESOLUTION - MAX_BACK_BUTTON_HEIGHT_LEN);\r
- configScroll->SetReboundSize(CONFIG_SCROLL_SIZE);\r
- configScroll->SetHorizontalScrollState(false);\r
- CreateConfigButton();\r
- labelChangeName = CreateConfigLabel(CHANGE_NAME, MAX_DEFAULT_FONT_LEN, MAX_TITLE_X_LEN,\r
- MAX_LABEL_LABEL_CHANGE_NAME_Y_LEN, LABEL_WID);\r
- if (labelChangeName == nullptr) {\r
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlarmConfigView:: new labelChangeName fail");\r
- return nullptr;\r
- }\r
- configScroll->Add(labelChangeName);\r
- labelSetName = CreateConfigLabel(SET_NAME, LITTLE_LABEL_FONT, MAX_TITLE_X_LEN, MAX_LABEL_SET_NAME_Y_LEN, LABEL_WID);\r
- if (labelSetName == nullptr) {\r
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlarmConfigView:: new labelSetName fail");\r
- return nullptr;\r
- }\r
- labelSetName->SetStyle(STYLE_TEXT_OPA, LABEL_SEMITRANSPARENT);\r
- configScroll->Add(labelSetName);\r
- deleteImage = new UILabelButton();\r
- if (deleteImage == nullptr) {\r
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlarmConfigView:: new deleteImage fail");\r
- return nullptr;\r
+ UIScrollView *AlarmConfigView::InitConfigView(void)\r
+ {\r
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlarmConfigView::OnStart");\r
+ if (group == nullptr)\r
+ {\r
+ group = new UIScrollView();\r
+ if (group == nullptr)\r
+ {\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlarmSetWeekView:: new group fail");\r
+ return nullptr;\r
+ }\r
+ group->SetPosition(CONTAINER_X, CONTAINER_Y, Screen::GetInstance().GetWidth(), Screen::GetInstance().GetHeight());\r
+ UIView::OnDragListener *configDragListener = (UIView::OnDragListener *)OHOS::AlarmPresenter::GetInstance();\r
+ if (configDragListener == nullptr)\r
+ {\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlarmConfigView:: new configDragListener fail");\r
+ return nullptr;\r
+ }\r
+ group->SetOnDragListener(configDragListener);\r
+ /* -------------------------------------------------------------------------- */\r
+ if (configScroll == nullptr)\r
+ {\r
+ configScroll = new UIScrollView();\r
+ if (configScroll == nullptr)\r
+ {\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlarmConfigView:: new configScroll fail");\r
+ return nullptr;\r
+ }\r
+ }\r
+ configScroll->SetPosition(CONTAINER_X, CONTAINER_Y, Screen::GetInstance().GetWidth(), Screen::GetInstance().GetHeight());\r
+ configScroll->SetReboundSize(CONFIG_SCROLL_SIZE);\r
+ configScroll->SetHorizontalScrollState(false);\r
+ InitButton();\r
+ InitLabel();\r
+ /* ----------------------------------- Add ---------------------------------- */\r
+ configScroll->Add(button1);\r
+ configScroll->Add(button2);\r
+ configScroll->Add(editLabel);\r
+ configScroll->Add(labelTime);\r
+ configScroll->Add(labelSetTime);\r
+ configScroll->Add(labelDay);\r
+ configScroll->Add(labelSetWeek);\r
+ group->Add(configScroll);\r
+ }\r
+ return group;\r
}\r
- deleteImage->SetPosition(MAX_DELETE_BUTTON_X_LEN, MAX_DELETE_BUTTON_Y_LEN, MAX_DELETE_BUTTON_W_LEN, MAX_DELETE_BUTTON_H_LEN);\r
- deleteImage->SetText(DELETE_INTERFACES);\r
- deleteImage->SetTouchable(true);\r
- deleteImage->SetViewId(ALARM_CLOCK_DELETE);\r
- deleteImage->SetTextColor(Color::Red());\r
- deleteImage->SetFont(DEFAULT_VECTOR_FONT_FILENAME, MAX_DEFAULT_LIT_FONT2_LEN);\r
- UIView::OnClickListener *clickListener = (UIView::OnClickListener *)OHOS::AlarmPresenter::GetInstance();\r
- deleteImage->SetOnClickListener(clickListener);\r
- deleteImage->SetImageSrc(PNG_NEW_DEVICE, PNG_NEW_DEVICE);\r
- \r
- CreateChangeIcons();\r
- group->Add(configScroll);\r
- group->Add(deleteImage);\r
- return group;\r
-}\r
\r
-void AlarmConfigView::RefreshConfig(const uint32_t time, uint8_t week, uint16_t alarmNum)\r
-{\r
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlarmConfigView::RefreshStep");\r
- uint8_t hour = time >> 16; // 闹钟存储小时位需右移16位\r
- uint8_t min = time & 0x00FF; // 闹钟存储分钟的位数右边16位需要全部置0\r
- uint16_t ret;\r
- std::string weekStr;\r
- if (hour > 24) { // 小时数最大为24,加入判断若小时的参数超过24则错误\r
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlarmConfigView::RefreshStep hour > 24 error!");\r
- return;\r
- }\r
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlarmConfigView::week = %u!", week);\r
- if ((week & 0x7f) == 0x7f) { // 判断0~6位是否都为1,如若都为1,则一周7天闹钟都响应\r
- weekStr = EVERY_DAY;\r
- } else if (week == 0) { // 判断0~6位是否都为0,如若都为0,则一周7天都不响应,闹钟为不重复开启\r
- weekStr = DO_NOT_REPEAT;\r
- } else {\r
- if ((week & 0x02) == 0x02) { // 判断第1位是否为1,如若为1,则星期一响应\r
- weekStr += MON_DAY;\r
+ void AlarmConfigView::RefreshConfig(const uint32_t time, uint8_t week, uint16_t alarmNum)\r
+ {\r
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlarmConfigView::RefreshStep");\r
+ uint8_t hour = time >> 16; // 闹钟存储小时位需右移16位\r
+ uint8_t min = time & 0x00FF; // 闹钟存储分钟的位数右边16位需要全部置0\r
+ uint16_t ret;\r
+ std::string weekStr;\r
+ std::string weekStr_en;\r
+ if (hour > 24)\r
+ { // 小时数最大为24,加入判断若小时的参数超过24则错误\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlarmConfigView::RefreshStep hour > 24 error!");\r
+ return;\r
}\r
- if ((week & 0x04) == 0x04) { // 判断第2位是否为1,如若为1,则星期二响应\r
- weekStr += TUE_DAY;\r
+ // 检查分钟是否在有效范围\r
+ if (min > 59)\r
+ {\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlarmConfigView::RefreshStep min > 59 error!");\r
+ return;\r
}\r
- if ((week & 0x08) == 0x08) { // 判断第3位是否为1,如若为1,则星期三响应\r
- weekStr += WED_DAY;\r
+ // 检查 week 是否在有效范围\r
+ if (week > 127)\r
+ {\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlarmConfigView::RefreshStep week out of range!");\r
+ return;\r
}\r
- if ((week & 0x10) == 0x10) { // 判断第4位是否为1,如若为1,则星期四响应\r
- weekStr += THUR_DAY;\r
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlarmConfigView::week = %u!", week);\r
+ if ((week & 0x7f) == 0x7f)\r
+ { // 判断0~6位是否都为1,如若都为1,则一周7天闹钟都响应\r
+ weekStr = EVERY_DAY;\r
+ weekStr_en = EVERY_DAY_EN;\r
}\r
- if ((week & 0x20) == 0x20) { // 判断第5位是否为1,如若为1,则星期五响应\r
- weekStr += FRI_DAY;\r
+ else if (week == 0)\r
+ { // 判断0~6位是否都为0,如若都为0,则一周7天都不响应,闹钟为不重复开启\r
+ weekStr = DO_NOT_REPEAT;\r
+ weekStr_en = DO_NOT_REPEAT_EN;\r
}\r
- if ((week & 0x40) == 0x40) { // 判断第6位是否为1,如若为1,则星期六响应\r
- weekStr += SAT_DAY;\r
+ else\r
+ {\r
+ if ((week & 0x02) == 0x02)\r
+ { // 判断第1位是否为1,如若为1,则星期一响应\r
+ weekStr += MON_DAY;\r
+ weekStr_en += MON_DAY_EN;\r
+ }\r
+ if ((week & 0x04) == 0x04)\r
+ { // 判断第2位是否为1,如若为1,则星期二响应\r
+ weekStr += TUE_DAY;\r
+ weekStr_en += TUE_DAY_EN;\r
+ }\r
+ if ((week & 0x08) == 0x08)\r
+ { // 判断第3位是否为1,如若为1,则星期三响应\r
+ weekStr += WED_DAY;\r
+ weekStr_en += WED_DAY_EN;\r
+ }\r
+ if ((week & 0x10) == 0x10)\r
+ { // 判断第4位是否为1,如若为1,则星期四响应\r
+ weekStr += THUR_DAY;\r
+ weekStr_en += THUR_DAY_EN;\r
+ }\r
+ if ((week & 0x20) == 0x20)\r
+ { // 判断第5位是否为1,如若为1,则星期五响应\r
+ weekStr += FRI_DAY;\r
+ weekStr_en += FRI_DAY_EN;\r
+ }\r
+ if ((week & 0x40) == 0x40)\r
+ { // 判断第6位是否为1,如若为1,则星期六响应\r
+ weekStr += SAT_DAY;\r
+ weekStr_en += SAT_DAY_EN;\r
+ }\r
+ if ((week & 0x01) == 0x01)\r
+ { // 判断第0位是否为1,如若为1,则星期日响应\r
+ weekStr += SUN_DAY;\r
+ weekStr_en += SUN_DAY_EN;\r
+ }\r
}\r
- if ((week & 0x01) == 0x01) { // 判断第0位是否为1,如若为1,则星期日响应\r
- weekStr += SUN_DAY;\r
+ if (labelTime == nullptr || labelDay == nullptr)\r
+ {\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlarmConfigView::RefreshStep labelTime or labelDay error!");\r
+ return;\r
}\r
+ memset(showtime, 0, sizeof(showtime));\r
+ snprintf(showtime, sizeof(showtime), "%02d:%02d", hour, min); // 使用更安全的 snprintf 函数\r
+ labelTime->SetText(showtime);\r
+ if (ConfigModel::GetInstance()->GetLanguage() == ZH_CN)\r
+ labelDay->SetText(weekStr.c_str());\r
+ else\r
+ labelDay->SetText(weekStr_en.c_str());\r
}\r
- if (labelTime == nullptr) {\r
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlarmConfigView::RefreshStep labelTime error!");\r
- return;\r
- }\r
- if (alarmNum == 0) {\r
- deleteImage->SetVisible(false);\r
- } else if (alarmNum >= SET_ONE && alarmNum <= SET_FOUR) {\r
- deleteImage->SetVisible(true);\r
- }\r
- labelTime->SetTime24Hour(hour, min, 0);\r
- labelDay->SetText(weekStr.c_str());\r
-}\r
}
\ No newline at end of file
* Create: 2021-09-11\r
*/\r
\r
-#include "AlarmJudgeView.h"\r
+#include "alarm/include/AlarmJudgeView.h"\r
#include "UiConfig.h"\r
#include <string>\r
-#include "AlarmPresenter.h"\r
+#include "alarm/include/AlarmPresenter.h"\r
+#include "ui_resource_string.h"\r
\r
namespace OHOS {\r
-#define DELETE_INETERFACES "是否删除此闹钟?"\r
-\r
static AlarmJudgeView *g_JudgeView = nullptr;\r
-constexpr int16_t CONTAINER_X = 0;\r
-constexpr int16_t CONTAINER_Y = 0;\r
-constexpr int16_t MAX_LABEL_X_LEN = 120;\r
-constexpr int16_t MAX_LABEL_Y_LEN = 160;\r
-constexpr int16_t MAX_LABEL_LENGTH_LEN = 400;\r
-constexpr int16_t MAX_LABEL_WIDTH_LEN = 50;\r
-constexpr int16_t MAX_LABEL_FONT_LEN = 30;\r
-constexpr int16_t MAX_IMAGE_DELETE_X_LEN = 90;\r
-constexpr int16_t MAX_IMAGE_DELETE_Y_LEN = 300;\r
-constexpr int16_t MAX_IMAGE_TRUE_X_LEN = 270;\r
-constexpr int16_t MAX_IMAGE_TRUE_Y_LEN = 300;\r
-constexpr int16_t MAX_IMAGE_DELETE_WIDTH_LEN = 91;\r
-constexpr int16_t MAX_IMAGE_TRUE_WIDTH_LEN = 91;\r
-\r
AlarmJudgeView::AlarmJudgeView()\r
{\r
WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlarmJudgeView::AlarmJudgeView");\r
\r
AlarmJudgeView::~AlarmJudgeView()\r
{\r
- container->RemoveAll();\r
- delete labelText;\r
- labelText = nullptr;\r
- delete imageViewDelete;\r
- imageViewDelete = nullptr;\r
- delete container;\r
- container = nullptr;\r
+ DeinitDeleteScreen();\r
g_JudgeView = nullptr;\r
WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlarmJudgeView::~AlarmJudgeView");\r
}\r
\r
-void AlarmJudgeView::CreateImage(void)\r
+UIScrollView *AlarmJudgeView::InitJudgeView(void)\r
{\r
- UIView::OnClickListener *clickListener = (UIView::OnClickListener *)OHOS::AlarmPresenter::GetInstance();\r
- if (clickListener == nullptr) {\r
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlarmJudgeView:: new OnClickListener fail");\r
- return;\r
- }\r
- imageViewDelete = new UIImageView();\r
- if (imageViewDelete == nullptr) {\r
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlarmJudgeView:: new imageViewDelete fail");\r
- return;\r
- }\r
- imageViewDelete->SetPosition(MAX_IMAGE_DELETE_X_LEN, MAX_IMAGE_DELETE_Y_LEN);\r
- imageViewDelete->SetSrc(ALARM_DELETE_ADD_PATH);\r
- imageViewDelete->SetViewId(JUDGE_DELETE);\r
- imageViewDelete->SetWidth(MAX_IMAGE_DELETE_WIDTH_LEN);\r
- imageViewDelete->SetTouchable(true);\r
- imageViewDelete->SetOnClickListener(clickListener);\r
- container->Add(imageViewDelete);\r
-\r
- imageViewTrue = new UIImageView();\r
- if (imageViewTrue == nullptr) {\r
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlarmJudgeView:: new imageViewTrue fail");\r
- return;\r
- }\r
- imageViewTrue->SetPosition(MAX_IMAGE_TRUE_X_LEN, MAX_IMAGE_TRUE_Y_LEN); // 50 : size\r
- imageViewTrue->SetSrc(ALARM_TRUE_ADD_PATH);\r
- imageViewTrue->SetViewId(JUDGE_TRUE);\r
- imageViewTrue->SetWidth(MAX_IMAGE_TRUE_WIDTH_LEN);\r
- imageViewTrue->SetTouchable(true);\r
- imageViewTrue->SetOnClickListener(clickListener);\r
- container->Add(imageViewTrue);\r
+ return InitDeleteScreen();\r
}\r
\r
-UIScrollView *AlarmJudgeView::InitJudgeView(void)\r
+\r
+void AlarmJudgeView::DeinitDeleteScreen()\r
{\r
- container = new UIScrollView();\r
- if (container == nullptr) {\r
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlarmJudgeView:: new container fail");\r
- return nullptr;\r
+ if(nullptr != DeleteGroup_)\r
+ {\r
+ DeleteGroup_->RemoveAll();\r
+ if(nullptr != DeleteTitleLabelExt_)\r
+ {\r
+ delete DeleteTitleLabelExt_;\r
+ DeleteTitleLabelExt_ = nullptr;\r
+ }\r
+ if(nullptr != DeletePromptLabelExt_)\r
+ {\r
+ delete DeletePromptLabelExt_;\r
+ DeletePromptLabelExt_ = nullptr;\r
+ }\r
+ if(nullptr != DeleteCancelButton_)\r
+ {\r
+ delete DeleteCancelButton_;\r
+ DeleteCancelButton_ = nullptr;\r
+ }\r
+ if(nullptr != DeleteOKButton_)\r
+ {\r
+ delete DeleteOKButton_;\r
+ DeleteOKButton_ = nullptr;\r
+ }\r
+ \r
+ delete DeleteGroup_;\r
+ DeleteGroup_ = nullptr;\r
}\r
- container->SetPosition(CONTAINER_X, CONTAINER_Y);\r
- container->SetWidth(HORIZONTAL_RESOLUTION);\r
- container->SetHeight(VERTICAL_RESOLUTION);\r
-\r
- labelText = new UILabel();\r
- if (container == nullptr) {\r
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlarmJudgeView:: new labelText fail");\r
- return nullptr;\r
+}\r
+\r
+UIScrollView * AlarmJudgeView::InitDeleteScreen()\r
+{\r
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "[%d]", __LINE__);\r
+ if(nullptr == DeleteGroup_)\r
+ {\r
+ DeleteGroup_ = new UIScrollView();\r
+ if(nullptr == DeleteGroup_)\r
+ return nullptr;\r
+\r
+ DeleteGroup_->SetPosition(0, 0, SCREEN_WIDTH, SCREEN_HEIGHT);\r
+ DeleteGroup_->SetStyle(STYLE_BACKGROUND_OPA, OPA_OPAQUE);\r
+ DeleteGroup_->SetStyle(STYLE_BACKGROUND_COLOR, Color::Black().full);\r
+\r
+ if(nullptr == DeleteTitleLabelExt_)\r
+ {\r
+ DeleteTitleLabelExt_ = new UILabelExt();\r
+ if(nullptr == DeleteTitleLabelExt_)\r
+ return nullptr;\r
+\r
+ DeleteTitleLabelExt_->SetPosition(83, 50, 300, 35);\r
+ DeleteTitleLabelExt_->SetStyle(STYLE_TEXT_FONT, 30);\r
+ DeleteTitleLabelExt_->SetStyle(STYLE_LINE_HEIGHT, 35);\r
+ DeleteTitleLabelExt_->SetTextId(STR_DELETE);\r
+ DeleteTitleLabelExt_->SetLineBreakMode(UILabel::LINE_BREAK_OSCILLATION);\r
+ DeleteTitleLabelExt_->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);\r
+ DeleteTitleLabelExt_->SetRollSpeed(23);\r
+ DeleteTitleLabelExt_->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 30);\r
+ DeleteTitleLabelExt_->SetStyle(STYLE_TEXT_COLOR, Color::White().full);\r
+ }\r
+\r
+ if(nullptr == DeletePromptLabelExt_)\r
+ {\r
+ DeletePromptLabelExt_ = new UILabelExt();\r
+ if(nullptr == DeletePromptLabelExt_)\r
+ return nullptr;\r
+\r
+ DeletePromptLabelExt_->SetPosition(83, 187, 300, 35);\r
+ DeletePromptLabelExt_->SetStyle(STYLE_TEXT_FONT, 30);\r
+ DeletePromptLabelExt_->SetStyle(STYLE_LINE_HEIGHT, 35);\r
+ DeletePromptLabelExt_->SetTextId(STR_ALARM_DELETE_NOTE);\r
+ DeletePromptLabelExt_->SetLineBreakMode(UILabel::LINE_BREAK_OSCILLATION);\r
+ DeletePromptLabelExt_->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);\r
+ DeletePromptLabelExt_->SetRollSpeed(23);\r
+ DeletePromptLabelExt_->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 30);\r
+ DeletePromptLabelExt_->SetStyle(STYLE_TEXT_COLOR, 0xff999999);\r
+ }\r
+\r
+ UIView::OnClickListener *clickListener = (UIView::OnClickListener *)OHOS::AlarmPresenter::GetInstance();\r
+ if(nullptr == DeleteCancelButton_)\r
+ {\r
+ DeleteCancelButton_ = new UILabelButtonExt();\r
+ if(nullptr == DeleteCancelButton_)\r
+ return nullptr;\r
+\r
+ DeleteCancelButton_->SetPosition(111, 299, 100, 100);\r
+ DeleteCancelButton_->SetViewId(JUDGE_DELETE);\r
+ DeleteCancelButton_->SetStyle(STYLE_BACKGROUND_COLOR, 0xffffffff);\r
+ DeleteCancelButton_->SetStyle(STYLE_BACKGROUND_OPA, 25); // 10%\r
+ DeleteCancelButton_->SetStyleForState(STYLE_BACKGROUND_COLOR, 0xffffffff, UIButton::PRESSED);\r
+ DeleteCancelButton_->SetStyleForState(STYLE_BACKGROUND_OPA, 25, UIButton::PRESSED);\r
+ DeleteCancelButton_->SetStyle(STYLE_BORDER_RADIUS, 100);\r
+ DeleteCancelButton_->SetImagePosition(0, 0);\r
+ DeleteCancelButton_->SetImageSrc(PNG_SYSTEM_CHECK_OFF_IMAGE, PNG_SYSTEM_CHECK_OFF_IMAGE);\r
+ DeleteCancelButton_->SetOnClickListener(clickListener);\r
+ }\r
+\r
+ if(nullptr == DeleteOKButton_)\r
+ {\r
+ DeleteOKButton_ = new UILabelButtonExt();\r
+ if(nullptr == DeleteOKButton_)\r
+ return nullptr;\r
+\r
+ DeleteOKButton_->SetPosition(256, 299, 100, 100);\r
+ DeleteOKButton_->SetViewId(JUDGE_TRUE);\r
+ DeleteOKButton_->SetStyle(STYLE_BACKGROUND_COLOR, 0xffffffff);\r
+ DeleteOKButton_->SetStyle(STYLE_BACKGROUND_OPA, 25); // 10%\r
+ DeleteOKButton_->SetStyleForState(STYLE_BACKGROUND_COLOR, 0xffffffff, UIButton::PRESSED);\r
+ DeleteOKButton_->SetStyleForState(STYLE_BACKGROUND_OPA, 25, UIButton::PRESSED);\r
+ DeleteOKButton_->SetStyle(STYLE_BORDER_RADIUS, 100);\r
+ DeleteOKButton_->SetImagePosition(0, 0);\r
+ DeleteOKButton_->SetImageSrc(PNG_SYSTEM_CHECK_ON_IMAGE, PNG_SYSTEM_CHECK_ON_IMAGE);\r
+ DeleteOKButton_->SetOnClickListener(clickListener);\r
+ }\r
+\r
+ DeleteGroup_->Add(DeleteTitleLabelExt_);\r
+ DeleteGroup_->Add(DeletePromptLabelExt_);\r
+ DeleteGroup_->Add(DeleteCancelButton_);\r
+ DeleteGroup_->Add(DeleteOKButton_);\r
}\r
- labelText->SetPosition(MAX_LABEL_X_LEN, MAX_LABEL_Y_LEN, MAX_LABEL_LENGTH_LEN, MAX_LABEL_WIDTH_LEN);\r
- labelText->SetText(DELETE_INETERFACES);\r
- labelText->SetFont(DEFAULT_VECTOR_FONT_FILENAME, MAX_LABEL_FONT_LEN);\r
- container->Add(labelText);\r
\r
- CreateImage();\r
- return container;\r
+ return DeleteGroup_;\r
}\r
}
\ No newline at end of file
\r
#include "AlarmPresenter.h"\r
#include "MainAlarmView.h"\r
+#include "ui_resource_string.h"\r
\r
namespace OHOS {\r
#define MAX_INETERFACES "当前闹钟个数已达上限"\r
\r
GraphicTimer* g_stopAlarmMaxHandle = nullptr;\r
static AlarmMaxClock *g_AlarmMaxClock = nullptr;\r
-static constexpr uint64_t MS_THREE_SECONDS = 3000;\r
+static constexpr uint64_t MS_THREE_SECONDS = 10*1000; //10s钟无操作关闭该视图;\r
void ScanTimerCallback(void* data);\r
void EndScanHandle(void);\r
\r
\r
AlarmMaxClock::~AlarmMaxClock()\r
{\r
- container->RemoveAll();\r
- delete labelText;\r
- labelText = nullptr;\r
- delete container;\r
- container = nullptr;\r
+ if(container)\r
+ {\r
+ container->RemoveAll();\r
+ if(labelText)\r
+ {\r
+ delete labelText;\r
+ labelText = nullptr;\r
+ }\r
+ delete container;\r
+ container = nullptr;\r
+ }\r
g_AlarmMaxClock = nullptr;\r
WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlarmMaxClock::~AlarmMaxClock");\r
}\r
\r
UIScrollView *AlarmMaxClock::InitAlarmMax(void)\r
{\r
- container = new UIScrollView();\r
if (container == nullptr) {\r
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlarmMaxClock:: new container fail");\r
- return container;\r
- }\r
- container->SetPosition(CONTAINER_X, CONTAINER_Y);\r
- container->SetWidth(HORIZONTAL_RESOLUTION);\r
- container->SetHeight(VERTICAL_RESOLUTION);\r
-\r
- labelText = new UILabel();\r
- if (labelText == nullptr) {\r
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlarmMaxClock:: new labelText fail");\r
- return container;\r
- }\r
- labelText->SetPosition(MAX_LABEL_X_LEN, MAX_LABEL_Y_LEN, MAX_LABEL_LENGTH_LEN, MAX_LABEL_WIDTH_LEN);\r
- labelText->SetText(MAX_INETERFACES);\r
- labelText->SetFont(DEFAULT_VECTOR_FONT_FILENAME, MAX_LABEL_FONT_LEN);\r
-\r
- container->SetTouchable(true);\r
- container->SetDraggable(true);\r
- UIView::OnDragListener *maxClockDragListener = (UIView::OnDragListener *)OHOS::AlarmPresenter::GetInstance();\r
- if (maxClockDragListener == nullptr) {\r
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlarmMaxClock:: maxClockDragListener is nullptr");\r
- return container;\r
+ container = new UIScrollView();\r
+ if (container == nullptr) {\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlarmMaxClock:: new container fail");\r
+ return container;\r
+ }\r
+ container->SetPosition(CONTAINER_X, CONTAINER_Y);\r
+ container->SetWidth(HORIZONTAL_RESOLUTION);\r
+ container->SetHeight(VERTICAL_RESOLUTION);\r
+ container->SetTouchable(true);\r
+ container->SetDraggable(true);\r
+ UIView::OnDragListener *maxClockDragListener = (UIView::OnDragListener *)OHOS::AlarmPresenter::GetInstance();\r
+ if (maxClockDragListener == nullptr) {\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlarmMaxClock:: maxClockDragListener is nullptr");\r
+ return container;\r
+ }\r
+ container->SetOnDragListener(maxClockDragListener);\r
+ /* -------------------------------------------------------------------------- */\r
+ if (labelText == nullptr)\r
+ {\r
+ labelText = new UILabelExt();\r
+ if (labelText == nullptr)\r
+ {\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "InitAlarmMax labelText is nullptr");\r
+ return nullptr;\r
+ }\r
+ }\r
+ labelText->SetPosition(83, 236, 360, 35);\r
+ labelText->SetTextId(STR_ALARM_ADD_LIMIT_NOTE);//当前闹钟个数已达上限\r
+ labelText->SetStyle(STYLE_TEXT_FONT, 30);\r
+ labelText->SetStyle(STYLE_LINE_HEIGHT, 35);\r
+ labelText->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 30);\r
+ labelText->SetLineBreakMode(UILabel::LINE_BREAK_OSCILLATION);\r
+ labelText->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);\r
+ container->Add(labelText);\r
+ labelText->LayoutCenterOfParent();\r
}\r
- container->SetOnDragListener(maxClockDragListener);\r
- container->Add(labelText);\r
-\r
return container;\r
}\r
\r
#include <string>\r
#include <iostream>\r
#include <sstream>\r
-\r
+#include "components/ui_label_ext.h"\r
+#include "ui_resource_string.h"\r
namespace OHOS {\r
#ifndef NEW_TIME\r
-#define NEW_TIME "设置时间"\r
+#define NEW_TIME "时间"\r
#endif\r
#define NEXT "下一步"\r
\r
-static AlarmNewTimeView *g_pAlarmNewTimeView = nullptr;\r
-constexpr int16_t CONTAINER_X = 0;\r
-constexpr int16_t CONTAINER_Y = 0;\r
-constexpr int16_t TITLE_X = 153;\r
-constexpr int16_t TITLE_Y = 30;\r
-constexpr int16_t TIME_PICKER_X = 75;\r
-constexpr int16_t TIME_PICKER_WIDTH = 250;\r
-constexpr int16_t TIME_ITEM_HEIGHT = 80;\r
-constexpr int16_t TIME_LABEL_BUTTON_X = 63;\r
-constexpr int16_t TIME_LABEL_BUTTON_Y = 360;\r
-constexpr int16_t LABEL_X = 0;\r
-constexpr int16_t LABEL_Y = 45;\r
-constexpr int16_t LABEL_BLANK = 38;\r
-constexpr int16_t LIST_W = 300;\r
-constexpr int16_t LIST_H = 260;\r
-constexpr int16_t TITLE_LABEL_DEFAULT_HEIGHT = 50;\r
-constexpr int16_t BUTTON_WIDHT3 = 324;\r
-constexpr int16_t BUTTON_HEIGHT3 = 101;\r
-constexpr int16_t PICKER_FONT_SIZE = 25;\r
-constexpr uint8_t BACKGROUND_FONT = 40;\r
-constexpr uint8_t HIGHTLIGHT_FONT = 50;\r
-constexpr uint16_t LABEL_FONT = 40;\r
-\r
-AlarmNewTimeView::AlarmNewTimeView()\r
-{\r
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlarmNewTimeView::AlarmNewTimeView");\r
- g_pAlarmNewTimeView = this;\r
-}\r
-\r
-AlarmNewTimeView::~AlarmNewTimeView()\r
-{\r
- group->RemoveAll();\r
- delete labelButton;\r
- labelButton = nullptr;\r
- delete picker;\r
- picker = nullptr;\r
- delete title;\r
- title = nullptr;\r
- delete group;\r
- group = nullptr;\r
- g_pAlarmNewTimeView = nullptr;\r
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlarmNewTimeView::~AlarmNewTimeView");\r
-}\r
+ static AlarmNewTimeView *g_pAlarmNewTimeView = nullptr;\r
+ constexpr int16_t CONTAINER_X = 0;\r
+ constexpr int16_t CONTAINER_Y = 0;\r
+ constexpr int16_t TITLE_X = 153;\r
+ constexpr int16_t TITLE_Y = 30;\r
+ constexpr int16_t TIME_PICKER_X = 75;\r
+ constexpr int16_t TIME_PICKER_WIDTH = 250;\r
+ constexpr int16_t TIME_ITEM_HEIGHT = 80;\r
+ constexpr int16_t TIME_LABEL_BUTTON_X = 63;\r
+ constexpr int16_t TIME_LABEL_BUTTON_Y = 360;\r
+ constexpr int16_t LABEL_X = 0;\r
+ constexpr int16_t LABEL_Y = 45;\r
+ constexpr int16_t LABEL_BLANK = 38;\r
+ constexpr int16_t LIST_W = 300;\r
+ constexpr int16_t LIST_H = 260;\r
+ constexpr int16_t TITLE_LABEL_DEFAULT_HEIGHT = 50;\r
+ constexpr int16_t BUTTON_WIDHT3 = 324;\r
+ constexpr int16_t BUTTON_HEIGHT3 = 101;\r
+ constexpr int16_t PICKER_FONT_SIZE = 25;\r
+ constexpr uint8_t BACKGROUND_FONT = 40;\r
+ constexpr uint8_t HIGHTLIGHT_FONT = 50;\r
+ constexpr uint16_t LABEL_FONT = 40;\r
\r
-AlarmNewTimeView *AlarmNewTimeView::GetInstance(void)\r
-{\r
- return g_pAlarmNewTimeView;\r
-}\r
-\r
-UILabel *AlarmNewTimeView::GetTitleLabel(const char *titleName)\r
-{\r
- if (titleName == nullptr) {\r
- return nullptr;\r
- }\r
- UILabel *label = new UILabel();\r
- if (label == nullptr) {\r
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlarmNewTimeView:: new label fail");\r
- return nullptr;\r
+ AlarmNewTimeView::AlarmNewTimeView()\r
+ {\r
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlarmNewTimeView::AlarmNewTimeView");\r
+ g_pAlarmNewTimeView = this;\r
}\r
- // 2: half of screen width\r
- label->SetPosition(LABEL_X, LABEL_Y, HORIZONTAL_RESOLUTION / 2, TITLE_LABEL_DEFAULT_HEIGHT);\r
- label->SetText(titleName);\r
- label->SetFont(DEFAULT_VECTOR_FONT_FILENAME, LABEL_FONT);\r
- return label;\r
-}\r
\r
-void AlarmNewTimeView::CreateLabelTime(void)\r
-{\r
- title = GetTitleLabel(NEW_TIME);\r
- if (title == nullptr) {\r
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "CreateLabelTime Set title fail");\r
- return;\r
- }\r
- group->Add(title);\r
- title->SetPosition(TITLE_X, TITLE_Y); // 672: x-coordinate\r
- title->SetStyle(STYLE_BACKGROUND_OPA, OPA_OPAQUE);\r
- picker = new UITimePicker();\r
- if (picker == nullptr) {\r
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "CreateLabelTime:: new picker fail");\r
- return;\r
+ AlarmNewTimeView::~AlarmNewTimeView()\r
+ {\r
+ if (group)\r
+ {\r
+ group->RemoveAll();\r
+ if (labelButton)\r
+ {\r
+ delete labelButton;\r
+ labelButton = nullptr;\r
+ }\r
+ if (picker)\r
+ {\r
+ delete picker;\r
+ picker = nullptr;\r
+ }\r
+ if (title)\r
+ {\r
+ delete title;\r
+ title = nullptr;\r
+ }\r
+ delete group;\r
+ group = nullptr;\r
+ }\r
+ g_pAlarmNewTimeView = nullptr;\r
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlarmNewTimeView::~AlarmNewTimeView");\r
}\r
\r
- UITimePicker::SelectedListener *selectedListener =\r
- (UITimePicker::SelectedListener *)OHOS::AlarmPresenter::GetInstance();\r
- if (selectedListener == nullptr) {\r
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "CreateLabelTime:: selectedListener is nullptr");\r
- return;\r
+ AlarmNewTimeView *AlarmNewTimeView::GetInstance(void)\r
+ {\r
+ return g_pAlarmNewTimeView;\r
}\r
- picker->EnableSecond(false);\r
- picker->SetPosition(TIME_PICKER_X, LABEL_Y + LABEL_BLANK, LIST_W, LIST_H); // 652: x-coordinate\r
- picker->SetItemHeight(TIME_ITEM_HEIGHT);\r
- picker->SetLoopState(0, true);\r
- picker->SetLoopState(1, true);\r
- picker->SetBackgroundFont(DEFAULT_VECTOR_FONT_FILENAME, BACKGROUND_FONT);\r
- picker->SetHighlightFont(DEFAULT_VECTOR_FONT_FILENAME, HIGHTLIGHT_FONT);\r
- picker->RegisterSelectedListener(selectedListener);\r
- group->Add(picker);\r
-}\r
\r
-UIScrollView *AlarmNewTimeView::InitNewTimeView(void)\r
-{\r
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlarmNewTimeView::OnStart");\r
- group = new UIScrollView();\r
- if (group == nullptr) {\r
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlarmNewTimeView:: new group fail");\r
- return nullptr;\r
+ void AlarmNewTimeView::CreateLabelTime(void)\r
+ {\r
+ if (title == nullptr)\r
+ {\r
+ title = new UILabelExt();\r
+ if (title == nullptr)\r
+ {\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlarmNewTimeView:: new title fail");\r
+ return;\r
+ }\r
+ }\r
+ title->SetPosition(83, 50, 300, 35);\r
+ title->SetTextId(STR_TIME);\r
+ title->SetStyle(STYLE_TEXT_FONT, 30);\r
+ title->SetStyle(STYLE_LINE_HEIGHT, 35);\r
+ title->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);\r
+ title->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 30);\r
+ title->SetLineBreakMode(UILabel::LINE_BREAK_OSCILLATION);\r
+ title->SetRollSpeed(23);\r
+ group->Add(title);\r
+ /* -------------------------------------------------------------------------- */\r
+ if (picker == nullptr)\r
+ {\r
+ picker = new UITimePicker();\r
+ if (picker == nullptr)\r
+ {\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "CreateLabelTime:: new picker fail");\r
+ return;\r
+ }\r
+ }\r
+ picker->EnableSecond(false);\r
+ picker->SetPosition(TIME_PICKER_X, LABEL_Y + LABEL_Y, LIST_W, LIST_H);\r
+ picker->SetItemHeight(TIME_ITEM_HEIGHT);\r
+ picker->SetLoopState(0, true);\r
+ picker->SetLoopState(1, true);\r
+ // picker->SetBackgroundFont(DEFAULT_VECTOR_FONT_FILENAME, BACKGROUND_FONT);\r
+ // picker->SetHighlightFont(DEFAULT_VECTOR_FONT_FILENAME, HIGHTLIGHT_FONT);\r
+ picker->SetHighlightFont(GILROY_BOLD_FONT, 65); // 设置突出显示文本的字体名称和大小。\r
+ picker->SetBackgroundFont(DEFAULT_VECTOR_FONT_FILENAME, 50);\r
+ picker->SetTextColor(Color::GetColorFromRGBA(0xcc, 0xcc, 0xcc, 0xff), Color::GetColorFromRGBA(0xff, 0xff, 0xff, 0xff));\r
+ UITimePicker::SelectedListener *selectedListener = (UITimePicker::SelectedListener *)OHOS::AlarmPresenter::GetInstance();\r
+ if (selectedListener == nullptr)\r
+ {\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "CreateLabelTime:: selectedListener is nullptr");\r
+ return;\r
+ }\r
+ picker->RegisterSelectedListener(selectedListener);\r
+ group->Add(picker);\r
}\r
- group->SetPosition(CONTAINER_X, CONTAINER_Y);\r
- group->SetWidth(HORIZONTAL_RESOLUTION);\r
- group->SetHeight(VERTICAL_RESOLUTION);\r
\r
- CreateLabelTime();\r
+ UIScrollView *AlarmNewTimeView::InitNewTimeView(void)\r
+ {\r
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlarmNewTimeView::InitNewTimeView");\r
+ if (group == nullptr)\r
+ {\r
+ group = new UIScrollView();\r
+ if (group == nullptr)\r
+ {\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlarmNewTimeView:: new group fail");\r
+ return nullptr;\r
+ }\r
+ }\r
+ group->SetPosition(CONTAINER_X, CONTAINER_Y, Screen::GetInstance().GetWidth(), Screen::GetInstance().GetHeight());\r
+ UIView::OnDragListener *newTimeDragListener = (UIView::OnDragListener *)OHOS::AlarmPresenter::GetInstance();\r
+ if (newTimeDragListener == nullptr)\r
+ {\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlarmNewTimeView:: new newTimeDragListener fail");\r
+ return group;\r
+ }\r
+ group->SetOnDragListener(newTimeDragListener);\r
+ /* -------------------------------------------------------------------------- */\r
+ CreateLabelTime();\r
+ if (labelButton == nullptr)\r
+ {\r
+ labelButton = new UILabelButtonExt();\r
+ if (labelButton == nullptr)\r
+ {\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlarmNewTimeView:: new labelButton fail");\r
+ return group;\r
+ }\r
+ }\r
+ labelButton->SetPosition(0, 366, 466, 100);\r
+ labelButton->SetViewId(ALARM_NEXT);\r
+ labelButton->SetTextId(STR_NEXT_STEP); // 下一步\r
+ labelButton->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 30);\r
+ labelButton->SetTextColor(Color::GetColorFromRGBA(0xff, 0xff, 0xff, 0xff));\r
+ labelButton->SetImageSrc(PNG_BUTTON_466x100_IMAGE, PNG_BUTTON_466x100_IMAGE);\r
+ labelButton->SetStyleForState(STYLE_BACKGROUND_COLOR, 0x00, UIButton::PRESSED);\r
+ labelButton->SetTouchable(true);\r
+ UIView::OnClickListener *clickListener = (UIView::OnClickListener *)OHOS::AlarmPresenter::GetInstance();\r
+ if (clickListener == nullptr)\r
+ {\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlarmNewTimeView:: new newTimeDragListener fail");\r
+ return group;\r
+ }\r
+ labelButton->SetOnClickListener(clickListener);\r
+ group->Add(labelButton);\r
\r
- labelButton = new UILabelButton();\r
- if (labelButton == nullptr) {\r
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlarmNewTimeView:: new labelButton fail");\r
return group;\r
}\r
- labelButton->Resize(BUTTON_WIDHT3, BUTTON_HEIGHT3);\r
- labelButton->SetPosition(TIME_LABEL_BUTTON_X, TIME_LABEL_BUTTON_Y);\r
- labelButton->SetText(NEXT);\r
- labelButton->SetViewId(ALARM_NEXT);\r
- labelButton->SetTouchable(true);\r
- labelButton->SetImageSrc(PNG_NEW_DEVICE, PNG_NEW_DEVICE);\r
- labelButton->SetFont(DEFAULT_VECTOR_FONT_FILENAME, LABEL_FONT);\r
- if (OHOS::AlarmPresenter::GetInstance() == nullptr) {\r
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlarmNewTimeView:: new ShadowBlue fail");\r
- return group;\r
- }\r
- labelButton->SetTextColor(OHOS::AlarmPresenter::GetInstance()->ShadowBlue());\r
- UIView::OnClickListener *clickListener = (UIView::OnClickListener *)OHOS::AlarmPresenter::GetInstance();\r
- labelButton->SetOnClickListener(clickListener);\r
- group->Add(labelButton);\r
-\r
- UIView::OnDragListener *newTimeDragListener = (UIView::OnDragListener *)OHOS::AlarmPresenter::GetInstance();\r
- if (newTimeDragListener == nullptr) {\r
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlarmNewTimeView:: new newTimeDragListener fail");\r
- return group;\r
- }\r
- group->SetOnDragListener(newTimeDragListener);\r
-\r
- return group;\r
-}\r
\r
-void AlarmNewTimeView::RefreshNewTime(void)\r
-{\r
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlarmNewTimeView::RefreshStep");\r
- struct tm local_time;\r
- time_t seconds = time(nullptr);\r
- if (localtime_r(&seconds, &local_time) == nullptr) {\r
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlarmClockModel::AlarmGetClockNum get localtime error!");\r
- return;\r
+ void AlarmNewTimeView::RefreshNewTime(void)\r
+ {\r
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlarmNewTimeView::RefreshNewTime");\r
+ struct tm local_time;\r
+ time_t seconds = time(nullptr);\r
+ if (localtime_r(&seconds, &local_time) == nullptr)\r
+ {\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlarmClockModel::RefreshNewTime get localtime error!");\r
+ return;\r
+ }\r
+ std::ostringstream ostrHour;\r
+ std::ostringstream ostMin;\r
+ ostrHour << local_time.tm_hour;\r
+ ostMin << local_time.tm_min;\r
+ std::string timeStr = ostrHour.str() + ":" + ostMin.str();\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "time = %s!", timeStr.c_str());\r
+ picker->SetSelected(timeStr.c_str());\r
+ uint32_t timeHour = stoi(ostrHour.str());\r
+ uint32_t timeMin = stoi(ostMin.str());\r
+ AlarmPresenter::GetInstance()->OnTimePickerInaction(timeHour, timeMin);\r
}\r
- std::ostringstream ostrHour;\r
- std::ostringstream ostMin;\r
- ostrHour << local_time.tm_hour;\r
- ostMin << local_time.tm_min;\r
- std::string weekStr = ostrHour.str() + ":" + ostMin.str();\r
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "time = %s!", weekStr.c_str());\r
- picker->SetSelected(weekStr.c_str()); // 添加的时间默认初始时间为0点\r
- uint32_t timeHour = stoi(ostrHour.str());\r
- uint32_t timeMin = stoi(ostMin.str());\r
- AlarmPresenter::GetInstance()->OnTimePickerInaction(timeHour, timeMin);\r
-}\r
} // namespace OHOS\r
*/\r
\r
\r
-#include "AlarmPresenter.h"\r
-#include "MainAlarmView.h"\r
+// #include "AlarmPresenter.h"\r
+#include "alarm/include/AlarmPresenter.h"\r
+#include "alarm/include/MainAlarmView.h"\r
#include "NativeRegisterManager.h"\r
#include "ChangeSliceListener.h"\r
#include "string"\r
#include "iostream"\r
#include "sstream"\r
+#include <custom_utils.h>\r
\r
namespace OHOS {\r
\r
constexpr int16_t CLOSE_SWITCHES = 0;\r
constexpr int16_t OPEN_SWITCHES = 1;\r
constexpr int16_t SET_ZERO = 0;\r
-constexpr int16_t NEW_TIME_LISTENER = 0;\r
-constexpr int16_t SET_TIME_LISTENER = 1;\r
constexpr uint16_t THE_FIRST_ALARM = 0;\r
constexpr uint16_t SECOND_ALARM = 1;\r
constexpr uint16_t THIRD_ALARM = 2;\r
constexpr uint8_t WEEK_BIT2 = 2;\r
constexpr uint8_t WEEK_BIT1 = 1;\r
constexpr uint8_t WEEK_BIT0 = 0;\r
-constexpr uint16_t ALARM_MAX_NUM = 4;\r
-constexpr int32_t BUTTON_MAX_NUM = 7;\r
+constexpr uint16_t ALARM_MAX_NUM = 5; // 最大闹钟数\r
+constexpr int32_t WEEK_BUTTON_MAX_NUM = 7; // 星期按钮的最大个数\r
constexpr uint16_t CLOCK_NUM = 5;\r
constexpr uint8_t CANCEL_DATA = 0;\r
constexpr uint8_t SELECT_DATA = 1;\r
AlarmPresenter::AlarmPresenter()\r
{\r
WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlarmPresenter new");\r
+ OHOS::AlarmClockModel::GetInstance()->InitAlarmData();\r
g_pAlarmPresenter = this;\r
}\r
\r
WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlarmPresenter JUDGE_DELETE");\r
UNUSED(num);\r
uint32_t clockTime;\r
+ // WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "[@CHENG][%d]:%d,%d", __LINE__, alarmListener, clockQty);\r
AlarmClockModel::GetInstance()->DeleteClockModel(alarmListener);\r
if (MainAlarmView::GetInstance() == nullptr) {\r
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlarmPresenter::ClickJudgeTrue new MainAlarmView::GetInstance() error");\r
return;\r
}\r
- MainAlarmView::GetInstance()->RefreshAlarm();\r
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "clockQty = %d", clockQty);\r
clockQty--;\r
- for (uint16_t alarmNum = 0; alarmNum < clockQty; alarmNum++) {\r
- if (!(AlarmClockModel::GetInstance()->GetClockTime(alarmNum, &clockTime))) {\r
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlarmPresenter ClickJudgeTrue error");\r
- return;\r
- }\r
- MainAlarmView::GetInstance()->RefreshAlarm();\r
- }\r
AlarmClockModel::GetInstance()->SetSerialRdc();\r
- MainAlarmView::GetInstance()->ChangeView(CHANGE_INTERFACE_JUDGE, MAIN_INTERFACE);\r
+ MainAlarmView::GetInstance()->RefreshAlarm();\r
+ // MainAlarmView::GetInstance()->ChangeView(CHANGE_INTERFACE_JUDGE, MAIN_INTERFACE);\r
+ NativeAbility::GetInstance().ChangeSlice(VIEW_MAIN_ALARM);\r
+\r
+\r
+\r
+ // MainAlarmView::GetInstance()->RefreshAlarm();\r
+ // clockQty--;\r
+ // for (uint16_t alarmNum = 0; alarmNum < clockQty; alarmNum++) {\r
+ // // WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "[@CHENG][%d]:%d", __LINE__, alarmNum);\r
+\r
+ // if (!(AlarmClockModel::GetInstance()->GetClockTime(alarmNum, &clockTime))) {\r
+ // WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlarmPresenter ClickJudgeTrue error");\r
+ // return;\r
+ // }\r
+ // MainAlarmView::GetInstance()->RefreshAlarm();\r
+ // }\r
+ // AlarmClockModel::GetInstance()->SetSerialRdc();\r
+ // MainAlarmView::GetInstance()->ChangeView(CHANGE_INTERFACE_JUDGE, MAIN_INTERFACE);\r
}\r
\r
void AlarmPresenter::ClickAlarmTimeOk(uint16_t num)\r
AlarmConfigView::GetInstance()->RefreshConfig(clockTime, clockWeek, num);\r
}\r
\r
+// 处理闹钟星期设置确认按钮的点击事件\r
void AlarmPresenter::ClickAlarmWeekOk(uint16_t num)\r
{\r
WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlarmPresenter ALARM_WEEK_OK");\r
if (setListener == SET_TIME_LISTENER) {\r
WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "ClickAlarmWeekOk set time!");\r
if (!(AlarmClockModel::GetInstance()->GetClockTime(alarmListener, &clockTime))) {\r
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlarmPresenter ClickAlarmWeekOk error");\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlarmPresenter ClickAlarmWeekOk error");\r
return;\r
}\r
WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "ClickAlarmWeekOk time = %d", clockTime);\r
}\r
AlarmClockModel::GetInstance()->ButtonStatusRing(alarmListener, true);\r
MainAlarmView::GetInstance()->RefreshAlarm();\r
- MainAlarmView::GetInstance()->ChangeView(CHANGE_INTERFACE_SET_WEEK, CHANGE_INTERFACE_CONFIG);\r
+ MainAlarmView::GetInstance()->ChangeView(CHANGE_INTERFACE_SET_WEEK, CHANGE_INTERFACE_CONFIG); // 跳转到闹钟配置界面\r
} else if (setListener == NEW_TIME_LISTENER) {\r
WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "ClickAlarmWeekOk new time!");\r
- clockQty++;\r
alarmListener = clockQty;\r
+ clockQty++;\r
WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "******************ClickAlarmWeekOk alarmListener = %d***************", alarmListener);\r
AlarmClockModel::GetInstance()->SetSerialAdd();\r
AlarmClockModel::GetInstance()->SetAlarmInfo(timeHour, timeMin, clockWeek, alarmListener, setListener);\r
return;\r
}\r
MainAlarmView::GetInstance()->RefreshAlarm();\r
- MainAlarmView::GetInstance()->ChangeView(CHANGE_INTERFACE_SET_WEEK, MAIN_INTERFACE);\r
+ MainAlarmView::GetInstance()->ChangeView(CHANGE_INTERFACE_SET_WEEK, MAIN_INTERFACE); // 跳转到闹钟主界面\r
}\r
}\r
\r
+// 处理闹钟新建按钮的点击事件\r
void AlarmPresenter::ClickAlarmNewTime(uint16_t num)\r
{\r
WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlarmPresenter ALARM_NEW_TIME");\r
+ if (MainAlarmView::GetInstance() == nullptr) {\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlarmPresenter::ClickAlarmNewTime new MainAlarmView::GetInstance() error");\r
+ return;\r
+ }\r
clockQty = AlarmClockModel::GetInstance()->GetAlarmNum();\r
WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlarmPresenter alarmNumbel = %u", clockQty);\r
UNUSED(num);\r
AlarmNewTimeView::GetInstance()->RefreshNewTime();\r
}\r
\r
+// 新建闹钟时:时间设置页面的下一步按钮点击事件处理函数\r
+\r
void AlarmPresenter::ClickAlarmNext(uint16_t num)\r
{\r
WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlarmPresenter ALARM_NEXT");\r
UNUSED(num);\r
- for (int i = 0; i < BUTTON_MAX_NUM; i++) {\r
+ for (int i = 0; i < WEEK_BUTTON_MAX_NUM; i++) {\r
alarmWeek[i] = 0;\r
WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "alarmWeek[%d] = %u", i, alarmWeek[i]);\r
}\r
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlarmPresenter::ClickAlarmNext new MainAlarmView::GetInstance() error");\r
return;\r
}\r
- MainAlarmView::GetInstance()->ChangeView(CHANGE_INTERFACE_NEW_TIME, CHANGE_INTERFACE_SET_WEEK);\r
+ MainAlarmView::GetInstance()->ChangeView(CHANGE_INTERFACE_NEW_TIME, CHANGE_INTERFACE_SET_WEEK);// 跳转到星期设置界面\r
if (AlarmNewTimeView::GetInstance() == nullptr) {\r
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlarmPresenter::ClickAlarmNext new AlarmNewTimeView::GetInstance() error");\r
return;\r
deltaX = event.GetDeltaX();\r
deltaY = event.GetDeltaY();\r
if (MATH_ABS(deltaX) >= MATH_ABS(deltaY) && MATH_ABS(deltaX) > SLIDING_LENGTH) {\r
- MainAlarmView::GetInstance()->DropView(view);\r
+ // MainAlarmView::GetInstance()->DropView(view);\r
+ X_DRAG_FLAG = true;\r
}\r
}\r
return true;\r
}\r
\r
+bool AlarmPresenter::OnDragEnd(UIView& view, const DragEvent& event)\r
+{\r
+ if (event.GetDragDirection() == DragEvent::DIRECTION_LEFT_TO_RIGHT && X_DRAG_FLAG) \r
+ {\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "OnDragEnd %p",&view);\r
+ MainAlarmView::GetInstance()->DropView(view);\r
+ X_DRAG_FLAG = false;\r
+ }\r
+ return true;\r
+}\r
+\r
struct AlarmPresentMapper1 {\r
const char *viewId;\r
void (AlarmPresenter::*func)(uint16_t);\r
bool AlarmPresenter::ClickFuncView(UIView &view)\r
{\r
WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "ClickFuncView view = %s", view.GetViewId());\r
- for (int num = 0; num < BUTTON_MAX_NUM; num++) {\r
- if (strcmp(view.GetViewId(), WEEK_CONTAINER[num]) == 0) {\r
+ for (int num = 0; num < WEEK_BUTTON_MAX_NUM; num++) {\r
+ if (strcmp(view.GetViewId(), WEEK_BUTTON_VIEWID[num]) == 0) {\r
alarmWeek[num] = alarmWeek[num] ? CANCEL_DATA: SELECT_DATA;\r
- if (alarmWeek[num] == CANCEL_DATA) {\r
+ if (alarmWeek[num] == CANCEL_DATA) { // 取消选中\r
WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "alarmWeek[num] = %u", alarmWeek[num]);\r
- view.SetStyle(STYLE_BACKGROUND_COLOR, Color::Black().full);\r
+ view.SetStyle(STYLE_BACKGROUND_COLOR, Color::GetColorFromRGB(0x19, 0x19, 0x19).full);\r
dynamic_cast<UIButton &>(view).SetStyleForState(STYLE_BACKGROUND_COLOR,\r
- Color::Black().full, UIButton::PRESSED);\r
- } else if (alarmWeek[num] == SELECT_DATA) {\r
+ Color::GetColorFromRGB(0x19, 0x19, 0x19).full, UIButton::PRESSED); \r
+ } else if (alarmWeek[num] == SELECT_DATA) { // 选中\r
WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "alarmWeek[num] = %u", alarmWeek[num]);\r
- view.SetStyle(STYLE_BACKGROUND_COLOR, Color::GetColorFromRGB(0x6c, 0xB8, 0xFD).full);\r
+ view.SetStyle(STYLE_BACKGROUND_COLOR, Color::GetColorFromRGB(0x4f, 0xc3, 0x4c).full);\r
dynamic_cast<UIButton &>(view).SetStyleForState(STYLE_BACKGROUND_COLOR,\r
- Color::GetColorFromRGB(0x6c, 0xB8, 0xFD).full, UIButton::PRESSED);\r
+ Color::GetColorFromRGB(0x4f, 0xc3, 0x4c).full, UIButton::PRESSED); \r
}\r
}\r
}\r
return true;\r
}\r
\r
+bool AlarmPresenter::OnKeyAct(UIView &view, const KeyEvent &event)\r
+{\r
+ UNUSED(view);\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlarmPresenter::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 == 1 && uapi_get_screen_state() == 0)\r
+ {\r
+ NativeAbility::GetInstance().Back();\r
+ }\r
+ return true;\r
+}\r
+\r
+void AlarmPresenter::ClickDeleteButtonAlarmClockDelete(uint16_t num)\r
+{\r
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "[@CHENG][%d]:%d", __LINE__, num);\r
+ if (MainAlarmView::GetInstance() == nullptr) {\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlarmPresenter::ClickDeleteButtonAlarmClockDelete error");\r
+ return;\r
+ }\r
+ UNUSED(num);\r
+ alarmListener = num;\r
+ MainAlarmView::GetInstance()->ChangeView(MAIN_INTERFACE, CHANGE_INTERFACE_JUDGE);\r
+}\r
+\r
+static const AlarmPresentMapper1 DeleteButtonPresentMapper[] = \r
+{\r
+ {ALARM_ITEM_DELETE[THE_FIRST_ALARM], &AlarmPresenter::ClickDeleteButtonAlarmClockDelete},\r
+ {ALARM_ITEM_DELETE[SECOND_ALARM], &AlarmPresenter::ClickDeleteButtonAlarmClockDelete},\r
+ {ALARM_ITEM_DELETE[THIRD_ALARM], &AlarmPresenter::ClickDeleteButtonAlarmClockDelete},\r
+ {ALARM_ITEM_DELETE[FOURTH_ALARM], &AlarmPresenter::ClickDeleteButtonAlarmClockDelete},\r
+ {ALARM_ITEM_DELETE[FIVE_ALARM], &AlarmPresenter::ClickDeleteButtonAlarmClockDelete},\r
+ {ALARM_ITEM_DELETE[SIX_ALARM], &AlarmPresenter::ClickDeleteButtonAlarmClockDelete},\r
+};\r
+\r
bool AlarmPresenter::OnClick(UIView &view, const ClickEvent &event)\r
{\r
WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlarmPresenter::OnClick ");\r
+\r
+ uint16_t num;\r
+ for (num = 0; num < CLOCK_NUM; num++)\r
+ {\r
+ if (0 == strcmp(view.GetViewId(), ALARM_ITEM_DELETE[num])) // 闹钟删除按钮\r
+ {\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "[@CHENG][%d]:%d", __LINE__, num);\r
+ (this->*(DeleteButtonPresentMapper[num].func))(num);\r
+ return true;\r
+ }\r
+ }\r
+\r
bool jug = ClickFuncId(view.GetViewId());\r
if (!jug) {\r
ClickFuncView(view);\r
return true;\r
}\r
\r
+void AlarmPresenter::OnSwipe(UISwipeView &view)\r
+{\r
+ UNUSED(view);\r
+ \r
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlarmPresenter::OnSwipe ");\r
+ view.SetIntercept((0 == view.GetCurrentPage()) ? false : true);\r
+}\r
+\r
+void AlarmPresenter::UpdateAlarmInfoByAppSet(void)\r
+{\r
+ NativeAbility::GetInstance().Back();\r
+}\r
+\r
+void AlarmPresenter::RefreshAlarmStatus(int i)\r
+{\r
+ uint8_t alarmEnable = 0;\r
+ bool alarmStatus;\r
+ alarmStatus = AlarmClockModel::GetInstance()->GetClockStatus(i, &alarmEnable);\r
+ if (!alarmStatus) {\r
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlarmPresenter:: GetClockStatus fail! i = %d", i);\r
+ }\r
+ if( MainAlarmView::GetInstance())\r
+ {\r
+ MainAlarmView::GetInstance()->RefreshAlarmStatus(alarmEnable, i);\r
+ }\r
+}\r
}
\ No newline at end of file
#include "components/ui_label.h"\r
#include "components/ui_label_button.h"\r
#include <string>\r
-\r
+#include "components/ui_label_ext.h"\r
+#include "ui_resource_string.h"\r
namespace OHOS {\r
#define SET_THIS_TIME "设置时间"\r
#define SURE "确认"\r
constexpr int16_t TITLE_X = 153;\r
constexpr int16_t TITLE_Y = 30;\r
constexpr int16_t LABEL_X = 0;\r
-constexpr int16_t LABEL_Y = 30;\r
+constexpr int16_t LABEL_Y = 45; // 30;\r
constexpr int16_t LABEL_FONT = 40;\r
constexpr int16_t TIME_PICKER_X = 75;\r
constexpr int16_t TIME_PICKER_WIDTH = 250;\r
constexpr int16_t TIME_LABEL_BUTTON_Y = 360;\r
constexpr int16_t LABEL_BLANK = 38;\r
constexpr int16_t LIST_W = 300;\r
-constexpr int16_t LIST_H = 250;\r
+constexpr int16_t LIST_H = 260; // 250;\r
constexpr int16_t TITLE_LABEL_DEFAULT_HEIGHT = 50;\r
constexpr int16_t BUTTON_WIDHT3 = 320;\r
constexpr int16_t BUTTON_HEIGHT3 = 101;\r
\r
AlarmSetTimeView::~AlarmSetTimeView()\r
{\r
- group->RemoveAll();\r
- delete timeImage;\r
- timeImage = nullptr;\r
- delete picker;\r
- picker = nullptr;\r
- delete title;\r
- title = nullptr;\r
- delete group;\r
- group = nullptr;\r
+ if(nullptr != group)\r
+ {\r
+ group->RemoveAll();\r
+ if(nullptr != labelButton)\r
+ {\r
+ delete labelButton;\r
+ labelButton = nullptr;\r
+ }\r
+ if(nullptr != picker)\r
+ {\r
+ delete picker;\r
+ picker = nullptr;\r
+ }\r
+ if(nullptr != title)\r
+ {\r
+ delete title;\r
+ title = nullptr;\r
+ }\r
+\r
+ delete group;\r
+ group = nullptr;\r
+ }\r
g_pAlarmSetTimeView = nullptr;\r
WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlarmSetTimeView::~AlarmSetTimeView");\r
}\r
\r
void AlarmSetTimeView::SetLabelButton(void)\r
{\r
- timeImage = new UILabelButton();\r
- if (timeImage == nullptr) {\r
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlarmConfigView:: new timeImage fail");\r
- return;\r
- }\r
- timeImage->SetPosition(TIME_LABEL_BUTTON_X, TIME_LABEL_BUTTON_Y, BUTTON_WIDHT3, BUTTON_HEIGHT3);\r
- timeImage->SetText(SURE);\r
- timeImage->SetTouchable(true);\r
- timeImage->SetViewId(ALARM_OK);\r
- if (OHOS::AlarmPresenter::GetInstance() == nullptr) {\r
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlarmNewTimeView:: new ShadowBlue fail");\r
- return;\r
+ // timeImage = new UILabelButton();\r
+ // if (timeImage == nullptr) {\r
+ // WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlarmConfigView:: new timeImage fail");\r
+ // return;\r
+ // }\r
+ // timeImage->SetPosition(TIME_LABEL_BUTTON_X, TIME_LABEL_BUTTON_Y, BUTTON_WIDHT3, BUTTON_HEIGHT3);\r
+ // timeImage->SetText(SURE);\r
+ // timeImage->SetTouchable(true);\r
+ // timeImage->SetViewId(ALARM_OK);\r
+ // if (OHOS::AlarmPresenter::GetInstance() == nullptr) {\r
+ // WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlarmNewTimeView:: new ShadowBlue fail");\r
+ // return;\r
+ // }\r
+ // timeImage->SetTextColor(OHOS::AlarmPresenter::GetInstance()->ShadowBlue());\r
+ // timeImage->SetFont(DEFAULT_VECTOR_FONT_FILENAME, LABEL_TIME_FONT);\r
+ // UIView::OnClickListener *clickListener = (UIView::OnClickListener *)OHOS::AlarmPresenter::GetInstance();\r
+ // timeImage->SetOnClickListener(clickListener);\r
+ // timeImage->SetImageSrc(PNG_NEW_DEVICE, PNG_NEW_DEVICE);\r
+ // group->Add(timeImage);\r
+\r
+ if (labelButton == nullptr) {\r
+ labelButton = new UILabelButtonExt();\r
+ if (labelButton == nullptr) {\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlarmSetTimeView::SetLabelButton");\r
+ return ;\r
+ }\r
}\r
- timeImage->SetTextColor(OHOS::AlarmPresenter::GetInstance()->ShadowBlue());\r
- timeImage->SetFont(DEFAULT_VECTOR_FONT_FILENAME, LABEL_TIME_FONT);\r
+ labelButton->SetPosition(0, 366, 466, 100);\r
+ labelButton->SetViewId(ALARM_OK);\r
+ // labelButton->SetText(SURE);\r
+ labelButton->SetTextId(STR_OK);//确定\r
+ labelButton->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 30);\r
+ labelButton->SetTextColor(Color::GetColorFromRGBA(0xff, 0xff, 0xff, 0xff));\r
+ labelButton->SetImageSrc(PNG_BUTTON_466x100_IMAGE, PNG_BUTTON_466x100_IMAGE);\r
+ labelButton->SetStyleForState(STYLE_BACKGROUND_COLOR, 0x00, UIButton::PRESSED);\r
+ labelButton->SetTouchable(true);\r
UIView::OnClickListener *clickListener = (UIView::OnClickListener *)OHOS::AlarmPresenter::GetInstance();\r
- timeImage->SetOnClickListener(clickListener);\r
- timeImage->SetImageSrc(PNG_NEW_DEVICE, PNG_NEW_DEVICE);\r
- group->Add(timeImage);\r
+ labelButton->SetOnClickListener(clickListener);\r
+ group->Add(labelButton);\r
}\r
\r
UIScrollView *AlarmSetTimeView::InitSetTimeView(void)\r
{\r
WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlarmSetTimeView::OnStart");\r
- group = new UIScrollView();\r
if (group == nullptr) {\r
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlarmSetTimeView:: new group fail");\r
- return nullptr;\r
+ group = new UIScrollView();\r
+ if (group == nullptr) {\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlarmSetTimeView:: new group fail");\r
+ return nullptr;\r
+ }\r
}\r
- group->SetPosition(CONTAINER_X, CONTAINER_Y);\r
- group->SetWidth(HORIZONTAL_RESOLUTION);\r
- group->SetHeight(VERTICAL_RESOLUTION);\r
-\r
- title = GetTitleLabel(SET_THIS_TIME);\r
- if (title == nullptr) {\r
- return nullptr;\r
+ group->SetPosition(CONTAINER_X, CONTAINER_Y,Screen::GetInstance().GetWidth(), Screen::GetInstance().GetHeight());\r
+ group->SetTouchable(true);\r
+ group->SetDraggable(true);\r
+ UIView::OnDragListener *setTimeDragListener = (UIView::OnDragListener *)OHOS::AlarmPresenter::GetInstance();\r
+ if (setTimeDragListener == nullptr) {\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlarmSetTimeView:: setTimeDragListener is nullptr");\r
+ return group;\r
+ }\r
+ group->SetOnDragListener(setTimeDragListener);\r
+ /* -------------------------------------------------------------------------- */\r
+ if (title == nullptr)\r
+ {\r
+ title = new UILabelExt();\r
+ if (title == nullptr)\r
+ {\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlarmNewTimeView:: new title fail");\r
+ return group;\r
+ }\r
}\r
+ title->SetPosition(83, 50, 300, 35);\r
+ title->SetTextId(STR_TIME);\r
+ title->SetStyle(STYLE_TEXT_FONT, 30);\r
+ title->SetStyle(STYLE_LINE_HEIGHT, 35);\r
+ title->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);\r
+ title->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 30);\r
+ title->SetLineBreakMode(UILabel::LINE_BREAK_OSCILLATION);\r
+ title->SetRollSpeed(23);\r
group->Add(title);\r
- title->SetPosition(TITLE_X, TITLE_Y); // 672: x-coordinate\r
- title->SetStyle(STYLE_BACKGROUND_OPA, OPA_OPAQUE);\r
- picker = new UITimePicker();\r
+ /* -------------------------------------------------------------------------- */\r
if (picker == nullptr) {\r
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlarmSetTimeView:: new picker fail");\r
- return nullptr;\r
+ picker = new UITimePicker();\r
+ if (picker == nullptr) {\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlarmSetTimeView:: new picker fail");\r
+ return nullptr;\r
+ }\r
}\r
UITimePicker::SelectedListener *selectedListener =\r
(UITimePicker::SelectedListener *)OHOS::AlarmPresenter::GetInstance();\r
return nullptr;\r
}\r
picker->EnableSecond(false);\r
- picker->SetPosition(TIME_PICKER_X, LABEL_Y + LABEL_BLANK, LIST_W, LIST_H); // 652: x-coordinate\r
+ picker->SetPosition(TIME_PICKER_X, LABEL_Y + LABEL_Y, LIST_W, LIST_H); // 652: x-coordinate\r
picker->SetItemHeight(TIME_ITEM_HEIGHT);\r
- picker->SetBackgroundFont(DEFAULT_VECTOR_FONT_FILENAME, BACKGROUND_FONT);\r
- picker->SetHighlightFont(DEFAULT_VECTOR_FONT_FILENAME, HIGHTLIGHT_FONT);\r
+ // picker->SetBackgroundFont(DEFAULT_VECTOR_FONT_FILENAME, BACKGROUND_FONT);\r
+ // picker->SetHighlightFont(DEFAULT_VECTOR_FONT_FILENAME, HIGHTLIGHT_FONT);\r
+ picker->SetHighlightFont(GILROY_BOLD_FONT, 65); // 设置突出显示文本的字体名称和大小。\r
+ picker->SetBackgroundFont(DEFAULT_VECTOR_FONT_FILENAME, 50); \r
+ picker->SetTextColor(Color::GetColorFromRGBA(0xcc, 0xcc, 0xcc, 0xff), Color::GetColorFromRGBA(0xff, 0xff, 0xff, 0xff));\r
picker->SetLoopState(0, true);\r
picker->SetLoopState(1, true);\r
picker->SetTouchable(true);\r
\r
SetLabelButton();\r
\r
- group->SetTouchable(true);\r
- group->SetDraggable(true);\r
- UIView::OnDragListener *setTimeDragListener = (UIView::OnDragListener *)OHOS::AlarmPresenter::GetInstance();\r
- if (setTimeDragListener == nullptr) {\r
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlarmSetTimeView:: setTimeDragListener is nullptr");\r
- return group;\r
- }\r
- group->SetOnDragListener(setTimeDragListener);\r
return group;\r
}\r
\r
#include "AlarmSetWeekView.h"\r
#include "common/screen.h"\r
#include "components/ui_digital_clock.h"\r
-\r
+#include "ui_resource_string.h"\r
+#include "ConfigModel.h"\r
namespace OHOS {\r
-#define MON "星期一"\r
-#define TUE "星期二"\r
-#define WED "星期三"\r
-#define THUR "星期四"\r
-#define FRI "星期五"\r
-#define SAT "星期六"\r
-#define SUN "星期天"\r
-#define RESPEAT "重复"\r
-#define SURE "确认"\r
-\r
-#define MONDAY "monday"\r
-#define TUESDAY "tuesday"\r
-#define WEDNESDAY "wednesday"\r
-#define THURSDAY "thursday"\r
-#define FRIDAY "friday"\r
-#define SATURDAY "saturday"\r
-#define SUNDAY "sunday"\r
-\r
static AlarmSetWeekView *g_pAlarmSetWeekView = nullptr;\r
constexpr int16_t CONTAINER_X = 0;\r
constexpr int16_t CONTAINER_Y = 0;\r
-constexpr int16_t DEFAULT_FONT = 40;\r
-constexpr int16_t REBOUND_SIZE = 50;\r
-constexpr int16_t BORDER_WIDTH = 20;\r
-constexpr int16_t SET_ZERO = 0;\r
-constexpr int16_t TITLE_X = 185;\r
-constexpr int16_t TITLE_Y = 30;\r
-constexpr int16_t LABEL_POSITION_SIZE = 150;\r
constexpr int16_t VIEW_BORDER_SIZE = 2;\r
-constexpr int16_t BORDER_RADIUS_SIZE = 200;\r
-constexpr int16_t VIEW_BUTTON_X = 100;\r
-constexpr int16_t VIEW_BUTTON_Y = 70;\r
-constexpr int16_t BUTTON_FONT_SIZE = 18;\r
-constexpr int16_t TIME_LABEL_BUTTON_X = 63;\r
-constexpr int16_t TIME_LABEL_BUTTON_Y = 360;\r
-constexpr int16_t BUTTON_WIDHT3 = 320;\r
-constexpr int16_t BUTTON_HEIGHT3 = 101;\r
-constexpr int16_t LABEL_WEEK_FONT = 40;\r
-constexpr int16_t BUTTON_WIDHT = 100;\r
-constexpr int16_t BUTTON_HEIGHT = 60;\r
-constexpr int16_t BUTTON_FONT = 20;\r
-constexpr int16_t VIEW_POSITION_X = 60;\r
-constexpr int16_t VIEW_POSITION_X2 = 12;\r
-constexpr int16_t WEEK_Y1 = 130;\r
-constexpr int16_t WEEK_Y2 = 210;\r
-constexpr int16_t WEEK_GAP_X = 112;\r
-constexpr int16_t BUTTON_STYLE_BORDER_RADIUS_VALUE = 30;\r
+constexpr int16_t BUTTON_WIDHT = 80; // 80\r
+constexpr int16_t BUTTON_HEIGHT = 80; // 80\r
+constexpr int16_t VIEW_POSITION_X = 27; //27\r
+constexpr int16_t VIEW_POSITION_X2 = 83;// 83\r
+constexpr int16_t WEEK_Y1 = 135;\r
+constexpr int16_t WEEK_Y2 = 245;\r
+constexpr int16_t WEEK_GAP_X = 110;// 星期按钮间的间隔 \r
+constexpr int16_t BUTTON_STYLE_BORDER_RADIUS_VALUE = 100; \r
constexpr int16_t FONT_DEFAULT_SIZE = 30;\r
constexpr int16_t WEEK_MON = 1;\r
constexpr int16_t WEEK_TUE = 2;\r
constexpr int16_t WEEK_SAT = 6;\r
constexpr int16_t WEEK_SUN = 0;\r
\r
+#define DEFAULT_BG_COLOR (Color::GetColorFromRGB(0x19, 0x19, 0x19)) // 默认背景色\r
+#define SELECTED_BG_COLOR (Color::GetColorFromRGB(0x4f, 0xc3, 0x4c)) // 选中背景色\r
+\r
+\r
AlarmSetWeekView::AlarmSetWeekView()\r
{\r
WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlarmSetWeekView::AlarmSetWeekView");\r
\r
AlarmSetWeekView::~AlarmSetWeekView()\r
{\r
- group->RemoveAll();\r
- delete labelRespeat;\r
- labelRespeat = nullptr;\r
- delete weekImage;\r
- weekImage = nullptr;\r
- for (int16_t alarmNum = 0; alarmNum < 7; alarmNum++) {\r
- delete buttonWeek[alarmNum];\r
- buttonWeek[alarmNum] = nullptr;\r
- }\r
- delete group;\r
- group = nullptr;\r
+ if(group)\r
+ {\r
+ group->RemoveAll();\r
+ if(labelRespeat) \r
+ {\r
+ delete labelRespeat;\r
+ labelRespeat = nullptr;\r
+ }\r
+ if(weekImage)\r
+ {\r
+ delete weekImage;\r
+ weekImage = nullptr;\r
+ }\r
+ for (int16_t alarmNum = 0; alarmNum < WEEK_NUM; alarmNum++) {\r
+ if(buttonWeek[alarmNum])\r
+ {\r
+ delete buttonWeek[alarmNum];\r
+ buttonWeek[alarmNum] = nullptr;\r
+ }\r
+ }\r
+ delete group;\r
+ group = nullptr;\r
+ }\r
g_pAlarmSetWeekView = nullptr;\r
WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlarmSetWeekView::~AlarmSetWeekView");\r
}\r
return g_pAlarmSetWeekView;\r
}\r
\r
-UILabelButton *AlarmSetWeekView::CreateUILabelButton(const char *buttonText, int16_t x, int16_t y)\r
+UILabelButtonExt *AlarmSetWeekView::CreateUILabelButton(const char *buttonText1,const char *buttonText2, int16_t x, int16_t y)\r
{\r
- if (buttonText == nullptr) {\r
+ if (buttonText1 == nullptr || buttonText2 == nullptr) {\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlarmSetWeekView:: buttonText1 or buttonText2 is null");\r
return nullptr;\r
}\r
\r
- UILabelButton *labelButton = new UILabelButton();\r
+ UILabelButtonExt *labelButton = new UILabelButtonExt();\r
if (labelButton == nullptr) {\r
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlarmSetWeekView:: new labelButton fail");\r
return nullptr;\r
}\r
-\r
+ int language = ConfigModel::GetInstance()->GetLanguage();\r
+ if(language == 0) // 中文\r
+ {\r
+ labelButton->SetText(buttonText1);\r
+ }\r
+ else \r
+ {\r
+ labelButton->SetText(buttonText2);\r
+ }\r
labelButton->SetPosition(x, y);\r
- labelButton->SetText(buttonText);\r
- labelButton->SetViewId(buttonText);\r
- labelButton->SetFont(DEFAULT_VECTOR_FONT_FILENAME, FONT_DEFAULT_SIZE);\r
+ labelButton->SetFont(DEFAULT_VECTOR_FONT_FILENAME_EN, FONT_DEFAULT_SIZE);\r
labelButton->SetStyleForState(STYLE_BORDER_RADIUS, BUTTON_STYLE_BORDER_RADIUS_VALUE, UIButton::PRESSED);\r
labelButton->SetStyleForState(STYLE_BORDER_RADIUS, BUTTON_STYLE_BORDER_RADIUS_VALUE, UIButton::INACTIVE);\r
labelButton->SetStyleForState(STYLE_BORDER_RADIUS, BUTTON_STYLE_BORDER_RADIUS_VALUE, UIButton::RELEASED);\r
- labelButton->SetStyleForState(STYLE_BACKGROUND_COLOR, Color::Black().full, UIButton::RELEASED);\r
- labelButton->SetStyleForState(STYLE_BACKGROUND_COLOR, Color::Black().full, UIButton::PRESSED);\r
- labelButton->SetStyleForState(STYLE_BACKGROUND_COLOR, Color::Black().full, UIButton::INACTIVE);\r
+ labelButton->SetStyleForState(STYLE_BACKGROUND_COLOR, DEFAULT_BG_COLOR.full, UIButton::RELEASED);\r
+ labelButton->SetStyleForState(STYLE_BACKGROUND_COLOR, DEFAULT_BG_COLOR.full, UIButton::PRESSED);\r
+ labelButton->SetStyleForState(STYLE_BACKGROUND_COLOR, DEFAULT_BG_COLOR.full, UIButton::INACTIVE);\r
labelButton->SetStyleForState(STYLE_BORDER_WIDTH, VIEW_BORDER_SIZE, UIButton::RELEASED);\r
labelButton->SetStyleForState(STYLE_BORDER_WIDTH, VIEW_BORDER_SIZE, UIButton::PRESSED);\r
labelButton->SetStyleForState(STYLE_BORDER_WIDTH, VIEW_BORDER_SIZE, UIButton::INACTIVE);\r
- labelButton->SetStyleForState(STYLE_BORDER_COLOR, Color::White().full, UIButton::RELEASED);\r
- labelButton->SetStyleForState(STYLE_BORDER_COLOR, Color::White().full, UIButton::PRESSED);\r
- labelButton->SetStyleForState(STYLE_BORDER_COLOR, Color::White().full, UIButton::INACTIVE);\r
- labelButton->SetStyle(STYLE_BACKGROUND_COLOR, Color::GetColorFromRGB(0x6c, 0xB8, 0xFD).full);\r
+ labelButton->SetStyleForState(STYLE_BORDER_COLOR, Color::Black().full, UIButton::RELEASED);\r
+ labelButton->SetStyleForState(STYLE_BORDER_COLOR, Color::Black().full, UIButton::PRESSED);\r
+ labelButton->SetStyleForState(STYLE_BORDER_COLOR, Color::Black().full, UIButton::INACTIVE);\r
+ labelButton->SetStyle(STYLE_BACKGROUND_COLOR, DEFAULT_BG_COLOR.full);\r
labelButton->SetStyle(STYLE_BORDER_WIDTH, VIEW_BORDER_SIZE);\r
- labelButton->SetStyle(STYLE_BORDER_COLOR, Color::White().full);\r
+ labelButton->SetStyle(STYLE_BORDER_COLOR, Color::Black().full);\r
labelButton->Resize(BUTTON_WIDHT, BUTTON_HEIGHT);\r
\r
return labelButton;\r
\r
void AlarmSetWeekView::CreateWeekButton1(void)\r
{\r
- int viewPositionX = VIEW_POSITION_X; // 60 150\r
+ int viewPositionX = VIEW_POSITION_X;\r
UIView::OnClickListener *clickListener = (UIView::OnClickListener *)OHOS::AlarmPresenter::GetInstance();\r
- buttonWeek[WEEK_MON] = CreateUILabelButton(MON, viewPositionX, WEEK_Y1);\r
+\r
+ buttonWeek[WEEK_SUN] = CreateUILabelButton(SUN_DAY,SUN_DAY_EN, viewPositionX, WEEK_Y1);\r
+ if (buttonWeek[WEEK_SUN] == nullptr) {\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlarmSetWeekView:: new buttonSun fail");\r
+ return;\r
+ }\r
+ group->Add(buttonWeek[WEEK_SUN]);\r
+ buttonWeek[WEEK_SUN]->SetOnClickListener(clickListener);\r
+ buttonWeek[WEEK_SUN]->SetViewId(SUNDAY);\r
+ viewPositionX += WEEK_GAP_X;\r
+\r
+ buttonWeek[WEEK_MON] = CreateUILabelButton(MON_DAY,MON_DAY_EN, viewPositionX, WEEK_Y1);\r
if (buttonWeek[WEEK_MON] == nullptr) {\r
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlarmSetWeekView:: new buttonMon fail");\r
return;\r
buttonWeek[WEEK_MON]->SetViewId(MONDAY);\r
viewPositionX += WEEK_GAP_X;\r
\r
- buttonWeek[WEEK_TUE] = CreateUILabelButton(TUE, viewPositionX, WEEK_Y1);\r
+ buttonWeek[WEEK_TUE] = CreateUILabelButton(TUE_DAY,TUE_DAY_EN, viewPositionX, WEEK_Y1);\r
if (buttonWeek[WEEK_TUE] == nullptr) {\r
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlarmSetWeekView:: new buttonTue fail");\r
return;\r
buttonWeek[WEEK_TUE]->SetViewId(TUESDAY);\r
viewPositionX += WEEK_GAP_X;\r
\r
- buttonWeek[WEEK_WED] = CreateUILabelButton(WED, viewPositionX, WEEK_Y1);\r
+ buttonWeek[WEEK_WED] = CreateUILabelButton(WED_DAY,WED_DAY_EN, viewPositionX, WEEK_Y1);\r
if (buttonWeek[WEEK_WED] == nullptr) {\r
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlarmSetWeekView:: new buttonWed fail");\r
return;\r
\r
void AlarmSetWeekView::CreateWeekButton2(void)\r
{\r
- int viewPositionX2 = VIEW_POSITION_X2; // 12 210\r
+ int viewPositionX2 = VIEW_POSITION_X2;\r
UIView::OnClickListener *clickListener = (UIView::OnClickListener *)OHOS::AlarmPresenter::GetInstance();\r
\r
- buttonWeek[WEEK_THUR] = CreateUILabelButton(THUR, viewPositionX2, WEEK_Y2);\r
+ buttonWeek[WEEK_THUR] = CreateUILabelButton(THUR_DAY,THUR_DAY_EN, viewPositionX2, WEEK_Y2);\r
if (buttonWeek[WEEK_THUR] == nullptr) {\r
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlarmSetWeekView:: new buttonThur fail");\r
return;\r
buttonWeek[WEEK_THUR]->SetViewId(THURSDAY);\r
viewPositionX2 += WEEK_GAP_X;\r
\r
- buttonWeek[WEEK_FRI] = CreateUILabelButton(FRI, viewPositionX2, WEEK_Y2);\r
+ buttonWeek[WEEK_FRI] = CreateUILabelButton(FRI_DAY,FRI_DAY_EN, viewPositionX2, WEEK_Y2);\r
if (buttonWeek[WEEK_FRI] == nullptr) {\r
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlarmSetWeekView:: new buttonFri fail");\r
return;\r
buttonWeek[WEEK_FRI]->SetViewId(FRIDAY);\r
viewPositionX2 += WEEK_GAP_X;\r
\r
- buttonWeek[WEEK_SAT] = CreateUILabelButton(SAT, viewPositionX2, WEEK_Y2);\r
+ buttonWeek[WEEK_SAT] = CreateUILabelButton(SAT_DAY,SAT_DAY_EN, viewPositionX2, WEEK_Y2);\r
if (buttonWeek[WEEK_SAT] == nullptr) {\r
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlarmSetWeekView:: new buttonSat fail");\r
return;\r
buttonWeek[WEEK_SAT]->SetViewId(SATURDAY);\r
viewPositionX2 += WEEK_GAP_X;\r
\r
- buttonWeek[WEEK_SUN] = CreateUILabelButton(SUN, viewPositionX2, WEEK_Y2);\r
- if (buttonWeek[WEEK_SUN] == nullptr) {\r
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlarmSetWeekView:: new buttonSun fail");\r
- return;\r
- }\r
- group->Add(buttonWeek[WEEK_SUN]);\r
- buttonWeek[WEEK_SUN]->SetOnClickListener(clickListener);\r
- buttonWeek[WEEK_SUN]->SetViewId(SUNDAY);\r
}\r
\r
void AlarmSetWeekView::SetLabelButton(void)\r
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlarmSetWeekView:: new clickListener fail");\r
return;\r
}\r
- weekImage = new UILabelButton();\r
+ weekImage = new UILabelButtonExt();\r
if (weekImage == nullptr) {\r
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlarmConfigView:: new weekImage fail");\r
return;\r
}\r
- weekImage->SetPosition(TIME_LABEL_BUTTON_X, TIME_LABEL_BUTTON_Y, BUTTON_WIDHT3, BUTTON_HEIGHT3);\r
- weekImage->SetText(SURE);\r
- weekImage->SetTouchable(true);\r
+ weekImage->SetPosition(0, 366, 466, 100);\r
weekImage->SetViewId(ALARM_WEEK_OK);\r
- weekImage->SetFont(DEFAULT_VECTOR_FONT_FILENAME, LABEL_WEEK_FONT);\r
- if (OHOS::AlarmPresenter::GetInstance() == nullptr) {\r
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlarmNewTimeView:: new ShadowBlue fail");\r
- return;\r
- }\r
- weekImage->SetTextColor(OHOS::AlarmPresenter::GetInstance()->ShadowBlue());\r
+ weekImage->SetTextId(STR_OK);//确定\r
+ weekImage->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 30);\r
+ weekImage->SetTextColor(Color::GetColorFromRGBA(0xff, 0xff, 0xff, 0xff));\r
+ weekImage->SetImageSrc(PNG_BUTTON_466x100_IMAGE, PNG_BUTTON_466x100_IMAGE);\r
+ weekImage->SetStyleForState(STYLE_BACKGROUND_COLOR, 0x00, UIButton::PRESSED);\r
+ weekImage->SetTouchable(true);\r
weekImage->SetOnClickListener(clickListener);\r
- weekImage->SetImageSrc(PNG_NEW_DEVICE, PNG_NEW_DEVICE);\r
group->Add(weekImage);\r
}\r
\r
UIScrollView *AlarmSetWeekView::InitSetWeekView()\r
{\r
WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlarmSetWeekView::InitSetWeekView");\r
-\r
group = new UIScrollView();\r
if (group == nullptr) {\r
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlarmSetWeekView:: new group fail");\r
return group;\r
}\r
-\r
group->SetPosition(CONTAINER_X, CONTAINER_Y, HORIZONTAL_RESOLUTION, VERTICAL_RESOLUTION);\r
- labelRespeat = new UILabel();\r
+ group->SetTouchable(true);\r
+ group->SetDraggable(true);\r
+ UIView::OnDragListener *setWeekDragListener = (UIView::OnDragListener *)OHOS::AlarmPresenter::GetInstance();\r
+ if (setWeekDragListener == nullptr) {\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlarmSetWeekView:: new setWeekDragListener fail");\r
+ return group;\r
+ }\r
+ group->SetOnDragListener(setWeekDragListener);\r
+ /* -------------------------------------------------------------------------- */\r
+ labelRespeat = new UILabelExt();\r
if (labelRespeat == nullptr) {\r
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlarmSetWeekView:: new labelRespeat fail");\r
return group;\r
}\r
+ labelRespeat->SetTextId(STR_ALARM_REPEAT);//重复\r
+ labelRespeat->SetPosition(83, 50, 300, 35);\r
+ labelRespeat->SetStyle(STYLE_TEXT_FONT, 30);\r
+ labelRespeat->SetStyle(STYLE_LINE_HEIGHT, 35);\r
+ labelRespeat->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);\r
+ labelRespeat->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 30);\r
group->Add(labelRespeat);\r
- labelRespeat->SetText(RESPEAT);\r
- labelRespeat->SetFont(DEFAULT_VECTOR_FONT_FILENAME, DEFAULT_FONT);\r
- labelRespeat->SetPosition(TITLE_X, TITLE_Y, HORIZONTAL_RESOLUTION / 2, LABEL_POSITION_SIZE);\r
\r
CreateWeekButton1();\r
CreateWeekButton2();\r
SetLabelButton();\r
\r
- group->SetTouchable(true);\r
- group->SetDraggable(true);\r
- UIView::OnDragListener *setWeekDragListener = (UIView::OnDragListener *)OHOS::AlarmPresenter::GetInstance();\r
- if (setWeekDragListener == nullptr) {\r
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlarmSetWeekView:: new setWeekDragListener fail");\r
- return group;\r
- }\r
- group->SetOnDragListener(setWeekDragListener);\r
+ \r
return group;\r
}\r
\r
+//该函数用于设置AlarmSetWeekView中周一到周日按钮的背景颜色\r
void AlarmSetWeekView::RefreshSetWeek1(void)\r
{\r
WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlarmSetWeekView::RefreshStep1");\r
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlarmSetWeekView::RefreshStep1 buttonMon nullptr error!");\r
return;\r
}\r
- buttonWeek[WEEK_MON]->SetStyle(STYLE_BACKGROUND_COLOR, Color::Black().full);\r
- buttonWeek[WEEK_MON]->SetStyleForState(STYLE_BACKGROUND_COLOR, Color::Black().full, UIButton::PRESSED);\r
+ buttonWeek[WEEK_MON]->SetStyle(STYLE_BACKGROUND_COLOR, DEFAULT_BG_COLOR.full);\r
+ buttonWeek[WEEK_MON]->SetStyleForState(STYLE_BACKGROUND_COLOR, DEFAULT_BG_COLOR.full, UIButton::PRESSED);\r
if (buttonWeek[WEEK_TUE] == nullptr) {\r
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlarmSetWeekView::RefreshStep1 buttonTue nullptr error!");\r
return;\r
}\r
- buttonWeek[WEEK_TUE]->SetStyle(STYLE_BACKGROUND_COLOR, Color::Black().full);\r
- buttonWeek[WEEK_TUE]->SetStyleForState(STYLE_BACKGROUND_COLOR, Color::Black().full, UIButton::PRESSED);\r
+ buttonWeek[WEEK_TUE]->SetStyle(STYLE_BACKGROUND_COLOR, DEFAULT_BG_COLOR.full);\r
+ buttonWeek[WEEK_TUE]->SetStyleForState(STYLE_BACKGROUND_COLOR, DEFAULT_BG_COLOR.full, UIButton::PRESSED);\r
if (buttonWeek[WEEK_WED] == nullptr) {\r
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlarmSetWeekView::RefreshStep1 buttonWed nullptr error!");\r
return;\r
}\r
- buttonWeek[WEEK_WED]->SetStyle(STYLE_BACKGROUND_COLOR, Color::Black().full);\r
- buttonWeek[WEEK_WED]->SetStyleForState(STYLE_BACKGROUND_COLOR, Color::Black().full, UIButton::PRESSED);\r
+ buttonWeek[WEEK_WED]->SetStyle(STYLE_BACKGROUND_COLOR, DEFAULT_BG_COLOR.full);\r
+ buttonWeek[WEEK_WED]->SetStyleForState(STYLE_BACKGROUND_COLOR, DEFAULT_BG_COLOR.full, UIButton::PRESSED);\r
if (buttonWeek[WEEK_THUR] == nullptr) {\r
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlarmSetWeekView::RefreshStep1 buttonThur nullptr error!");\r
return;\r
}\r
- buttonWeek[WEEK_THUR]->SetStyle(STYLE_BACKGROUND_COLOR, Color::Black().full);\r
- buttonWeek[WEEK_THUR]->SetStyleForState(STYLE_BACKGROUND_COLOR, Color::Black().full, UIButton::PRESSED);\r
+ buttonWeek[WEEK_THUR]->SetStyle(STYLE_BACKGROUND_COLOR, DEFAULT_BG_COLOR.full);\r
+ buttonWeek[WEEK_THUR]->SetStyleForState(STYLE_BACKGROUND_COLOR, DEFAULT_BG_COLOR.full, UIButton::PRESSED);\r
if (buttonWeek[WEEK_FRI] == nullptr) {\r
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlarmSetWeekView::RefreshStep1 buttonFri nullptr error!");\r
return;\r
}\r
- buttonWeek[WEEK_FRI]->SetStyle(STYLE_BACKGROUND_COLOR, Color::Black().full);\r
- buttonWeek[WEEK_FRI]->SetStyleForState(STYLE_BACKGROUND_COLOR, Color::Black().full, UIButton::PRESSED);\r
+ buttonWeek[WEEK_FRI]->SetStyle(STYLE_BACKGROUND_COLOR, DEFAULT_BG_COLOR.full);\r
+ buttonWeek[WEEK_FRI]->SetStyleForState(STYLE_BACKGROUND_COLOR, DEFAULT_BG_COLOR.full, UIButton::PRESSED);\r
if (buttonWeek[WEEK_SAT] == nullptr) {\r
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlarmSetWeekView::RefreshStep1 buttonSat nullptr error!");\r
return;\r
}\r
- buttonWeek[WEEK_SAT]->SetStyle(STYLE_BACKGROUND_COLOR, Color::Black().full);\r
- buttonWeek[WEEK_SAT]->SetStyleForState(STYLE_BACKGROUND_COLOR, Color::Black().full, UIButton::PRESSED);\r
+ buttonWeek[WEEK_SAT]->SetStyle(STYLE_BACKGROUND_COLOR, DEFAULT_BG_COLOR.full);\r
+ buttonWeek[WEEK_SAT]->SetStyleForState(STYLE_BACKGROUND_COLOR, DEFAULT_BG_COLOR.full, UIButton::PRESSED);\r
if (buttonWeek[WEEK_SUN] == nullptr) {\r
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlarmSetWeekView::RefreshStep1 buttonSun nullptr error!");\r
return;\r
}\r
- buttonWeek[WEEK_SUN]->SetStyle(STYLE_BACKGROUND_COLOR, Color::Black().full);\r
- buttonWeek[WEEK_SUN]->SetStyleForState(STYLE_BACKGROUND_COLOR, Color::Black().full, UIButton::PRESSED);\r
+ buttonWeek[WEEK_SUN]->SetStyle(STYLE_BACKGROUND_COLOR, DEFAULT_BG_COLOR.full);\r
+ buttonWeek[WEEK_SUN]->SetStyleForState(STYLE_BACKGROUND_COLOR, DEFAULT_BG_COLOR.full, UIButton::PRESSED);\r
}\r
\r
+//该函数用于设置AlarmSetWeekView中周一到周日按钮的背景颜色\r
void AlarmSetWeekView::RefreshSetWeek2(uint8_t week)\r
{\r
- for (int16_t alarmNum = 0; alarmNum < 7; alarmNum++) {\r
+ for (int16_t alarmNum = 0; alarmNum < WEEK_NUM; alarmNum++) {\r
if (buttonWeek[alarmNum] == nullptr) {\r
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlarmSetWeekView::RefreshStep2 week[%d] nullptr error!", alarmNum);\r
return;\r
}\r
}\r
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlarmSetWeekView:: week = %u", week);\r
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlarmSetWeekView:: week = %u", week);\r
if ((week & 0x01) == 1) { // 判断星期天的位数是否为1\r
- buttonWeek[WEEK_SUN]->SetStyle(STYLE_BACKGROUND_COLOR, Color::GetColorFromRGB(0x6c, 0xB8, 0xFD).full);\r
+ // buttonWeek[WEEK_SUN]->SetStyle(STYLE_BACKGROUND_COLOR, Color::GetColorFromRGB(0x6c, 0xB8, 0xFD).full); buttonWeek[WEEK_SUN]->SetStyle(STYLE_BACKGROUND_COLOR, Color::GetColorFromRGB(0x6c, 0xB8, 0xFD).full);\r
+ buttonWeek[WEEK_SUN]->SetStyle(STYLE_BACKGROUND_COLOR, SELECTED_BG_COLOR.full);\r
AlarmPresenter::GetInstance()->alarmWeek[WEEK_SUN] = 1;\r
}\r
if ((week & 0x02) == 0x02) { // 判断星期一的位数是否为1\r
- buttonWeek[WEEK_MON]->SetStyle(STYLE_BACKGROUND_COLOR, Color::GetColorFromRGB(0x6c, 0xB8, 0xFD).full);\r
+ buttonWeek[WEEK_MON]->SetStyle(STYLE_BACKGROUND_COLOR, SELECTED_BG_COLOR.full);\r
AlarmPresenter::GetInstance()->alarmWeek[WEEK_MON] = 1;\r
}\r
if ((week & 0x04) == 0x04) { // 判断星期二的位数是否为1\r
- buttonWeek[WEEK_TUE]->SetStyle(STYLE_BACKGROUND_COLOR, Color::GetColorFromRGB(0x6c, 0xB8, 0xFD).full);\r
+ buttonWeek[WEEK_TUE]->SetStyle(STYLE_BACKGROUND_COLOR, SELECTED_BG_COLOR.full);\r
AlarmPresenter::GetInstance()->alarmWeek[WEEK_TUE] = 1;\r
}\r
if ((week & 0x08) == 0x08) { // 判断星期三的位数是否为1\r
- buttonWeek[WEEK_WED]->SetStyle(STYLE_BACKGROUND_COLOR, Color::GetColorFromRGB(0x6c, 0xB8, 0xFD).full);\r
+ buttonWeek[WEEK_WED]->SetStyle(STYLE_BACKGROUND_COLOR, SELECTED_BG_COLOR.full);\r
AlarmPresenter::GetInstance()->alarmWeek[WEEK_WED] = 1;\r
}\r
if ((week & 0x10) == 0x10) { // 判断星期四的位数是否为1\r
- buttonWeek[WEEK_THUR]->SetStyle(STYLE_BACKGROUND_COLOR, Color::GetColorFromRGB(0x6c, 0xB8, 0xFD).full);\r
+ buttonWeek[WEEK_THUR]->SetStyle(STYLE_BACKGROUND_COLOR, SELECTED_BG_COLOR.full);\r
AlarmPresenter::GetInstance()->alarmWeek[WEEK_THUR] = 1;\r
}\r
if ((week & 0x20) == 0x20) { // 判断星期五的位数是否为1\r
- buttonWeek[WEEK_FRI]->SetStyle(STYLE_BACKGROUND_COLOR, Color::GetColorFromRGB(0x6c, 0xB8, 0xFD).full);\r
+ buttonWeek[WEEK_FRI]->SetStyle(STYLE_BACKGROUND_COLOR, SELECTED_BG_COLOR.full);\r
AlarmPresenter::GetInstance()->alarmWeek[WEEK_FRI] = 1;\r
}\r
if ((week & 0x40) == 0x40) { // 判断星期六的位数是否为1\r
- buttonWeek[WEEK_SAT]->SetStyle(STYLE_BACKGROUND_COLOR, Color::GetColorFromRGB(0x6c, 0xB8, 0xFD).full);\r
+ buttonWeek[WEEK_SAT]->SetStyle(STYLE_BACKGROUND_COLOR, SELECTED_BG_COLOR.full);\r
AlarmPresenter::GetInstance()->alarmWeek[WEEK_SAT] = 1;\r
}\r
}\r
* Create: 2021-09-11
*/
-#include "MainAlarmView.h"
+#include "alarm/include/MainAlarmView.h"
#include "UiConfig.h"
#include "ui_label_button.h"
#include "PhoneService.h"
+#include "ui_resource_string.h"
+#include "ConfigModel.h"
+#include "languagecode/LanguageInit.h"
namespace OHOS {
static MainAlarmView *g_MainAlarmView = nullptr;
constexpr int16_t STATUS_BUTTON_W = 90;
constexpr int16_t STATUS_BUTTON_H = 90;
constexpr int16_t D_CLOCK_X = 80;
-constexpr int16_t D_CLOCK_FONT_SIZE = 55;
-constexpr int16_t D_CLOCK_LABEL_FONT = 25;
+constexpr int16_t D_CLOCK_FONT_SIZE = 40; // 55;
+constexpr int16_t D_CLOCK_LABEL_FONT = 30; // 25;
constexpr int16_t POSITION_ADD_Y = 110;
constexpr int16_t POSITION_BUTTON_ADD_Y = 85;
constexpr int16_t LABEL_SEMITRANSPARENT = 128;
alarmMin = 0;
dClockNum = 0;
weekStatus = 0;
- group->RemoveAll();
- delete addButton;
- addButton = nullptr;
- delete group;
- group = nullptr;
- delete configView;
- configView = nullptr;
- delete setTimeView;
- setTimeView = nullptr;
- delete setWeekView;
- setWeekView = nullptr;
- delete judgeView;
- judgeView = nullptr;
- delete newTimeView;
- newTimeView = nullptr;
- for (int alarmNum = SET_ZERO; alarmNum <= SET_FIVE; alarmNum++) {
- if (dClock[alarmNum] != nullptr) {
- delete dClock[alarmNum];
- dClock[alarmNum] = nullptr;
- }
- if (statusButton[alarmNum] != nullptr) {
- delete statusButton[alarmNum];
- statusButton[alarmNum] = nullptr;
- }
- if (dLabel[alarmNum] != nullptr) {
- delete dLabel[alarmNum];
- dLabel[alarmNum] = nullptr;
+ if(group)
+ {
+ group->RemoveAll();
+ delete group;
+ group = nullptr;
+ }
+ if(configView)
+ {
+ delete configView;
+ configView = nullptr;
+ }
+ if(setTimeView)
+ {
+ delete setTimeView;
+ setTimeView = nullptr;
+ }
+ if(setWeekView)
+ {
+ delete setWeekView;
+ setWeekView = nullptr;
+ }
+ if(judgeView)
+ {
+ delete judgeView;
+ judgeView = nullptr;
+ }
+ if(newTimeView)
+ {
+ delete newTimeView;
+ newTimeView = nullptr;
+ }
+ if(maxClockView)
+ {
+ delete maxClockView;
+ maxClockView = nullptr;
+ }
+ if(nullptr != TitleLabelExt_)
+ {
+ delete TitleLabelExt_;
+ TitleLabelExt_ = nullptr;
+ }
+ if(nullptr != AddButton_)
+ {
+ delete AddButton_;
+ AddButton_ = nullptr;
+ }
+ for (int alarmNum = SET_ZERO; alarmNum <= SET_FIVE; alarmNum++)
+ {
+ if(nullptr != SwipeView_[alarmNum])
+ {
+ SwipeView_[alarmNum]->RemoveAll();
+
+ if(nullptr != SwipeViewItem_[alarmNum][0])
+ {
+ SwipeViewItem_[alarmNum][0]->RemoveAll();
+
+ if (dClock[alarmNum] != nullptr) {
+ delete dClock[alarmNum];
+ dClock[alarmNum] = nullptr;
+ }
+ if (statusButton[alarmNum] != nullptr) {
+ delete statusButton[alarmNum];
+ statusButton[alarmNum] = nullptr;
+ }
+ if (dLabel[alarmNum] != nullptr) {
+ delete dLabel[alarmNum];
+ dLabel[alarmNum] = nullptr;
+ }
+ if(statusListener[alarmNum] != nullptr)
+ {
+ delete statusListener[alarmNum];
+ statusListener[alarmNum] = nullptr;
+ }
+
+ delete SwipeViewItem_[alarmNum][0];
+ SwipeViewItem_[alarmNum][0] = nullptr;
+ }
+
+ if(nullptr != SwipeViewItem_[alarmNum][1])
+ {
+ SwipeViewItem_[alarmNum][1]->RemoveAll();
+
+ if (nullptr != DeleteButton_[alarmNum])
+ {
+ delete DeleteButton_[alarmNum];
+ DeleteButton_[alarmNum] = nullptr;
+ }
+
+ delete SwipeViewItem_[alarmNum][1];
+ SwipeViewItem_[alarmNum][1] = nullptr;
+ }
+
+ delete SwipeView_[alarmNum];
+ SwipeView_[alarmNum] = nullptr;
}
container[alarmNum] = nullptr;
}
return g_MainAlarmView;
}
-void MainAlarmView::CreateImage(void)
+void MainAlarmView::AlarmTitleCreate(void)
{
- UIView::OnClickListener *clickListener = (UIView::OnClickListener *)OHOS::AlarmPresenter::GetInstance();
+ if(nullptr == TitleLabelExt_)
+ {
+ TitleLabelExt_ = new UILabelExt();
+ if(nullptr == TitleLabelExt_)
+ return;
- addButton = new UIImageView();
- if (addButton == nullptr) {
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "MainAlarmView:: new addButton fail");
- return;
+ TitleLabelExt_->SetPosition(83, 50, 300, 35);
+ TitleLabelExt_->SetStyle(STYLE_TEXT_FONT, 30);
+ TitleLabelExt_->SetStyle(STYLE_LINE_HEIGHT, 35);
+ TitleLabelExt_->SetTextId(STR_ALARM);
+ TitleLabelExt_->SetLineBreakMode(UILabel::LINE_BREAK_OSCILLATION);
+ TitleLabelExt_->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);
+ TitleLabelExt_->SetRollSpeed(23);
+ TitleLabelExt_->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 30);
+
+ group->Add(TitleLabelExt_);
}
- addButton->SetPosition(ADD_BUTTON_X, ADD_BUTTON_Y);
- addButton->SetWidth(ADD_BUTTON_W);
- addButton->SetHeight(ADD_BUTTON_H);
- addButton->SetSrc(ALARM_ADD_BUTTON_PATH);
- addButton->SetViewId(ADD_BUTTON);
- addButton->SetTouchable(true);
- addButton->SetOnClickListener(clickListener);
- group->Add(addButton);
}
-void MainAlarmView::NewClockCtl(int16_t alarmNum)
+void MainAlarmView::AlarmAddButtonCreate(void)
{
- UIView::OnClickListener *clockListener = (UIView::OnClickListener *)OHOS::AlarmPresenter::GetInstance();
- dClock[alarmNum] = new UIDigitalClock();
- if (dClock[alarmNum] == nullptr) {
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "MainAlarmView:: new dClock fail");
- return;
- }
- dClock[alarmNum]->SetViewId(ALARM_CLOCK[alarmNum]);
- dClock[alarmNum]->SetTouchable(true);
- dClock[alarmNum]->SetOnClickListener(clockListener);
- if (alarmNum == 0) {
- dClock[0]->SetPosition(D_CLOCK_X, alarmPositionY, ALARM_CLOCK_WIDTH, ALARM_CLOCK_HEIGHT);
- } else {
- dClock[alarmNum]->SetPosition(D_CLOCK_X, dClock[0]->GetY() + (alarmInterval * alarmNum), ALARM_CLOCK_WIDTH, ALARM_CLOCK_HEIGHT);
+ if(nullptr == AddButton_)
+ {
+ AddButton_ = new UILabelButtonExt();
+ if(nullptr == AddButton_)
+ return;
+
+ AddButton_->SetPosition(43, 0, 380, 100);
+ AddButton_->SetViewId(ADD_BUTTON);
+ AddButton_->SetStyle(STYLE_BACKGROUND_COLOR, 0xff191919);
+ AddButton_->SetStyle(STYLE_BACKGROUND_OPA, OPA_OPAQUE);
+ AddButton_->SetStyleForState(STYLE_BACKGROUND_COLOR, 0xff191919, UIButton::PRESSED);
+ AddButton_->SetStyleForState(STYLE_BACKGROUND_OPA, OPA_OPAQUE, UIButton::PRESSED);
+ AddButton_->SetStyle(STYLE_BORDER_RADIUS, 100);
+ AddButton_->SetStyle(STYLE_TEXT_FONT, 30);
+ AddButton_->SetStyle(STYLE_LINE_HEIGHT, 35);
+ AddButton_->SetTextId(STR_ADD_A_NEW_ALARM);
+ // AddButton_->SetLineBreakMode(UILabel::LINE_BREAK_OSCILLATION);
+ // AddButton_->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);
+ // AddButton_->SetRollSpeed(23);
+ AddButton_->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 30);
+ UIView::OnClickListener *clickListener = (UIView::OnClickListener *)OHOS::AlarmPresenter::GetInstance();
+ AddButton_->SetOnClickListener(clickListener);
+
+ group->Add(AddButton_);
}
- dClock[alarmNum]->SetFont(DEFAULT_VECTOR_FONT_FILENAME, D_CLOCK_FONT_SIZE);
- dClock[alarmNum]->SetDisplayMode(UIDigitalClock::DISPLAY_24_HOUR_NO_SECONDS);
- group->Add(dClock[alarmNum]);
+}
- dLabel[alarmNum] = new UILabel();
- if (dLabel[alarmNum] == nullptr) {
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "MainAlarmView:: new dLabel fail");
- return;
+//更新闹钟添加按钮的位置
+//更新闹钟添加按钮的位置
+void MainAlarmView::AlarmAddButtonUpdate(uint8_t count)
+{
+ if(nullptr == AddButton_ || TitleLabelExt_ == nullptr)
+ return;
+ int bef_y = 0;
+ int aft_y = 0;
+ // WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "[%d]: 0_y=%d", __LINE__, Screen::GetInstance().GetHeight() / 2);
+ // WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "[%d]: 0_y=%d", __LINE__, TitleLabelExt_->GetHeight());
+ bef_y = AddButton_->GetY();
+ if((0 == count))
+ {
+ TitleLabelExt_->SetY(50);
+ AddButton_->SetY(120);
}
- if (alarmNum == 0) {
- dLabel[0]->SetPosition(D_CLOCK_X, labelPositionY, ALARM_CLOCK_WIDTH, WEEK_LABEL_HEIGHT);
- } else {
- dLabel[alarmNum]->SetPosition(D_CLOCK_X, dLabel[0]->GetY() + (alarmInterval * alarmNum), ALARM_CLOCK_WIDTH, WEEK_LABEL_HEIGHT);
+ else
+ {
+ if(SwipeView_[0]) {
+ AddButton_->SetY(SwipeView_[0]->GetY() + (alarmInterval * count));
+ }
+ }
+ aft_y = AddButton_->GetY();
+ bool is_up_drag = bef_y- aft_y > 0 ? false:true;
+ if(group) {
+ if(viewInitstatus_)
+ group->ScrollBy(0, is_up_drag ? - 120 : 120);
}
- group->Add(dLabel[alarmNum]);
+ RootView::GetInstance()->Invalidate();
+}
- statusButton[alarmNum] = new UIToggleButton();
- if (statusButton[alarmNum] == nullptr) {
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "MainAlarmView:: new statusButton[alarmNum] fail");
- return;
+UIViewGroup * MainAlarmView::NewClockCtlExt(int16_t alarmNum, uint8_t index)
+{
+ UIViewGroup * TempGroup_ = new UIViewGroup();
+ if(nullptr == TempGroup_)
+ return nullptr;
+
+ if(0 == index)
+ {
+ TempGroup_->SetPosition(0, 0, 380, 100);
+ TempGroup_->SetStyle(STYLE_BACKGROUND_COLOR, 0xff191919);
+ TempGroup_->SetStyle(STYLE_BACKGROUND_OPA, OPA_OPAQUE);
+ TempGroup_->SetStyle(STYLE_BORDER_RADIUS, 100);
+
+ dClock[alarmNum] = new UIDigitalClock();
+ if (dClock[alarmNum] == nullptr) {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "MainAlarmView:: new dClock fail");
+ return nullptr;
+ }
+ dClock[alarmNum]->SetViewId(ALARM_CLOCK[alarmNum]);
+ dClock[alarmNum]->SetTouchable(true);
+ UIView::OnClickListener *clockListener = (UIView::OnClickListener *)OHOS::AlarmPresenter::GetInstance();
+ dClock[alarmNum]->SetOnClickListener(clockListener);
+ dClock[alarmNum]->SetPosition(50, 10, 200, 76);
+ dClock[alarmNum]->SetFont(DEFAULT_VECTOR_FONT_FILENAME_EN, D_CLOCK_FONT_SIZE);
+ dClock[alarmNum]->SetDisplayMode(UIDigitalClock::DISPLAY_24_HOUR_NO_SECONDS);
+ /* -------------------------------------------------------------------------- */
+ dLabel[alarmNum] = new UILabelExt();
+ if (dLabel[alarmNum] == nullptr) {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "MainAlarmView:: new dLabel fail");
+ return nullptr;
+ }
+ dLabel[alarmNum]->SetPosition(50, 60, 200, 35);
+ dLabel[alarmNum]->SetStyle(STYLE_TEXT_FONT, 30);
+ dLabel[alarmNum]->SetStyle(STYLE_LINE_HEIGHT, 35);
+ dLabel[alarmNum]->SetTextColor(Color::GetColorFromRGBA(0x99, 0x99, 0x99, 0xff));
+ dLabel[alarmNum]->SetFont(DEFAULT_VECTOR_FONT_FILENAME_EN, D_CLOCK_LABEL_FONT);
+ dLabel[alarmNum]->SetLineBreakMode(UILabel::LINE_BREAK_OSCILLATION);
+ dLabel[alarmNum]->SetRollSpeed(23);
+ /* -------------------------------------------------------------------------- */
+ statusButton[alarmNum] = new UIToggleButton();
+ if (statusButton[alarmNum] == nullptr) {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "MainAlarmView:: new statusButton[alarmNum] fail");
+ return nullptr;
+ }
+ statusButton[alarmNum]->SetViewId(ALARM_STATUS[alarmNum]);
+ statusButton[alarmNum]->SetPosition(250, 15, 120, 70);
+ statusButton[alarmNum]->SetImages(PNG_TOGGLEBUTTON_ON_IMAGE, PNG_TOGGLEBUTTON_OFF_IMAGE);
+ // statusButton[alarmNum]->SetStyle(STYLE_BACKGROUND_OPA, alarmNum);
+ // statusButton[alarmNum]->SetStyle(STYLE_BACKGROUND_COLOR, 0xff29b862);
+ // statusButton[alarmNum]->SetStyle(STYLE_BACKGROUND_OPA, OPA_OPAQUE);
+ if(statusListener[alarmNum] == nullptr){
+ statusListener[alarmNum] = new AlarmStatusBtnChangeListener(reinterpret_cast<UIView*>(statusButton[alarmNum]));
+ if (statusListener == nullptr) {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "MainAlarmView::NewStatusButton statusListener nullptr!");
+ return nullptr;
+ }
+ }
+ statusButton[alarmNum]->SetOnChangeListener((UICheckBox::OnChangeListener *)statusListener[alarmNum]);
+ /* ----------------------------------- Add ---------------------------------- */
+ TempGroup_->Add(dClock[alarmNum]);
+ TempGroup_->Add(dLabel[alarmNum]);
+ TempGroup_->Add(statusButton[alarmNum]);
}
- statusButton[alarmNum]->SetViewId(ALARM_STATUS[alarmNum]);
- if (alarmNum == 0) {
- statusButton[0]->SetPosition(STATUS_BUTTON_X, alarmPositionY, STATUS_BUTTON_W, STATUS_BUTTON_H);
- } else {
- statusButton[alarmNum]->SetPosition(STATUS_BUTTON_X, statusButton[0]->GetY() + (alarmInterval * alarmNum), STATUS_BUTTON_W, STATUS_BUTTON_H);
+ else
+ {
+ TempGroup_->SetPosition(0, 0, 100 + 15, 100);
+ TempGroup_->SetStyle(STYLE_BACKGROUND_COLOR, Color::Black().full);
+ TempGroup_->SetStyle(STYLE_BACKGROUND_OPA, OPA_OPAQUE);
+ TempGroup_->SetStyle(STYLE_BORDER_RADIUS, 100);
+
+ DeleteButton_[alarmNum] = new UILabelButtonExt();
+ if(nullptr == DeleteButton_[alarmNum])
+ return nullptr;
+
+ DeleteButton_[alarmNum]->SetPosition(15, 0, 100, 100);
+ DeleteButton_[alarmNum]->SetViewId(ALARM_ITEM_DELETE[alarmNum]);
+ DeleteButton_[alarmNum]->SetStyle(STYLE_BACKGROUND_COLOR, 0xffffffff);
+ DeleteButton_[alarmNum]->SetStyle(STYLE_BACKGROUND_OPA, 25); // 10%
+ DeleteButton_[alarmNum]->SetStyleForState(STYLE_BACKGROUND_COLOR, 0xffffffff, UIButton::PRESSED);
+ DeleteButton_[alarmNum]->SetStyleForState(STYLE_BACKGROUND_OPA, 25, UIButton::PRESSED);
+ DeleteButton_[alarmNum]->SetStyle(STYLE_BORDER_RADIUS, 100);
+ DeleteButton_[alarmNum]->SetImagePosition(0, 0);
+ DeleteButton_[alarmNum]->SetImageSrc(ALARM_DELETE_IMAGE, ALARM_DELETE_IMAGE);
+ DeleteButton_[alarmNum]->SetOnClickListener(presenter_);
+
+ TempGroup_->Add(DeleteButton_[alarmNum]);
}
- statusButton[alarmNum]->SetStyle(STYLE_BACKGROUND_OPA, alarmNum);
- UICheckBox::OnChangeListener *statusListener{nullptr};
- statusListener = new AlarmStatusBtnChangeListener(reinterpret_cast<UIView*>(statusButton[alarmNum]));
- if (statusListener == nullptr) {
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "MainAlarmView::NewStatusButton statusListener nullptr!");
- return;
+
+ return TempGroup_;
+}
+
+void MainAlarmView::NewClockCtl(int16_t alarmNum)
+{
+ SwipeView_[alarmNum] = new UISwipeView(UISwipeView::HORIZONTAL);
+ if (0 == alarmNum)
+ {
+ SwipeView_[alarmNum]->SetPosition(43, 120, 380, 100);
+ } else
+ {
+ SwipeView_[alarmNum]->SetPosition(43, SwipeView_[0]->GetY() + (alarmInterval * alarmNum), 380, 100);
}
- statusButton[alarmNum]->SetOnChangeListener((UICheckBox::OnChangeListener *)statusListener);
- group->Add(statusButton[alarmNum]);
+ // SwipeView_[alarmNum]->SetViewId(ITEM_SWIPE[alarmNum]);
+ SwipeView_[alarmNum]->SetTouchable(true);
+ // SwipeView_[alarmNum]->SetThrowDrag(true);
+ SwipeView_[alarmNum]->SetOnSwipeListener(presenter_);
+ SwipeView_[alarmNum]->SetAnimatorTime(50); // 200:animator drag time(ms)
+ // SwipeView_[alarmNum]->SetOnDragListener(presenter_);
+ SwipeView_[alarmNum]->SetStyle(STYLE_BACKGROUND_COLOR, Color::Black().full);
+ SwipeView_[alarmNum]->SetStyle(STYLE_BACKGROUND_OPA, OPA_OPAQUE);
+ SwipeView_[alarmNum]->SetStyle(STYLE_BORDER_RADIUS, 100);
+ SwipeView_[alarmNum]->SetBlankSize(0);
+ // SwipeView_[alarmNum]->SetBlankSize(0);
+ // SwipeView_[alarmNum]->SetReboundSize(30); // 200: rebound size
+ // SwipeView_[alarmNum]->SetElastic(true);
+
+ SwipeViewItem_[alarmNum][0] = NewClockCtlExt(alarmNum, 0);
+ SwipeView_[alarmNum]->Add(SwipeViewItem_[alarmNum][0]);
+
+ SwipeViewItem_[alarmNum][1] = NewClockCtlExt(alarmNum, 1);
+ SwipeView_[alarmNum]->Add(SwipeViewItem_[alarmNum][1]);
+
+ SwipeView_[alarmNum]->SetCurrentPage(0);
+ SwipeView_[alarmNum]->SetIntercept(false);
+ SwipeView_[alarmNum]->SetLoopState(false);
+
+ group->Add(SwipeView_[alarmNum]);
}
void MainAlarmView::LabelGetWeek(uint8_t week, int16_t alarmNum)
{
WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "MainAlarmView::week = %u!", week);
std::string weekStr;
+ std::string weekStr_en;
if ((week & 0x7f) == 0x7f) { // 判断0~6位是否都为1,如若都为1,则一周7天闹钟都响应
weekStr = EVERY_DAY;
+ weekStr_en = EVERY_DAY_EN;
} else if (week == 0) { // 判断0~6位是否都为0,如若都为0,则一周7天都不响应,闹钟为不重复开启
weekStr = DO_NOT_REPEAT;
+ weekStr_en = DO_NOT_REPEAT_EN;
} else {
if ((week & 0x02) == 0x02) { // 判断第1位是否为1,如若为1,则星期一响应
weekStr += MON_DAY;
+ weekStr_en += MON_DAY_EN;
}
if ((week & 0x04) == 0x04) { // 判断第2位是否为1,如若为1,则星期二响应
weekStr += TUE_DAY;
+ weekStr_en += TUE_DAY_EN;
}
if ((week & 0x08) == 0x08) { // 判断第3位是否为1,如若为1,则星期三响应
weekStr += WED_DAY;
+ weekStr_en += WED_DAY_EN;
}
if ((week & 0x10) == 0x10) { // 判断第4位是否为1,如若为1,则星期四响应
weekStr += THUR_DAY;
+ weekStr_en += THUR_DAY_EN;
}
if ((week & 0x20) == 0x20) { // 判断第5位是否为1,如若为1,则星期五响应
weekStr += FRI_DAY;
+ weekStr_en += FRI_DAY_EN;
}
if ((week & 0x40) == 0x40) { // 判断第6位是否为1,如若为1,则星期六响应
weekStr += SAT_DAY;
+ weekStr_en += SAT_DAY_EN;
}
if ((week & 0x01) == 0x01) { // 判断第0位是否为1,如若为1,则星期日响应
weekStr += SUN_DAY;
+ weekStr_en += SUN_DAY_EN;
}
}
- dLabel[alarmNum]->SetFont(DEFAULT_VECTOR_FONT_FILENAME, D_CLOCK_LABEL_FONT);
- dLabel[alarmNum]->SetText(weekStr.c_str());
- dLabel[alarmNum]->SetStyle(STYLE_TEXT_OPA, LABEL_SEMITRANSPARENT);
+ if(ConfigModel::GetInstance()->GetLanguage() == ZH_CN)
+ dLabel[alarmNum]->SetText(weekStr.c_str());
+ else
+ dLabel[alarmNum]->SetText(weekStr_en.c_str());
+ // dLabel[alarmNum]->ForceResetText();
}
bool MainAlarmView::GetRefreshStatus(void)
void MainAlarmView::RefreshAlarmStatus(uint8_t alarmEnable, int16_t num)
{
- reflashStatus = true;
- if (alarmEnable == 0) {
- statusButton[num]->SetState(false);
- } else if (alarmEnable == 1) {
- statusButton[num]->SetState(true);
- }
- reflashStatus = false;
- dClock[num]->SetVisible(true);
- statusButton[num]->SetVisible(true);
+ if(statusButton[num] && dClock[num] && SwipeView_[num])
+ {
+ reflashStatus = true;
+ if (alarmEnable == 0) {
+ statusButton[num]->SetState(false);
+ } else if (alarmEnable == 1) {
+ statusButton[num]->SetState(true);
+ }
+ reflashStatus = false;
+ dClock[num]->SetVisible(true);
+ statusButton[num]->SetVisible(true);
+
+ SwipeView_[num]->SetCurrentPage(0);
+ }
}
void MainAlarmView::OnStart()
{
-
- group = new UIScrollView();
if (group == nullptr) {
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "MainAlarmView:: new group fail");
- return;
+ group = new UIScrollView();
+ if (group == nullptr) {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "MainAlarmView:: new group fail");
+ return;
+ }
}
- group->SetPosition(CONTAINER_X, CONTAINER_Y, HORIZONTAL_RESOLUTION, VERTICAL_RESOLUTION);
- UIView::OnClickListener *clickListener = (UIView::OnClickListener *)OHOS::AlarmPresenter::GetInstance();
- CreateImage();
-
+ group->SetPosition(0, 0, Screen::GetInstance().GetWidth(), Screen::GetInstance().GetHeight());
+ group->SetScrollBlankSize(75);
group->SetTouchable(true);
group->SetDraggable(true);
+ group->SetDirection(UIScrollView::VERTICAL);
+ group->RequestFocus();
+ group->SetRotateFactor(1.0);
UIView::OnDragListener *alarmDragListener = (UIView::OnDragListener *)OHOS::AlarmPresenter::GetInstance();
if (alarmDragListener == nullptr) {
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlarmSetWeekView:: new alarmDragListener fail");
return;
}
group->SetOnDragListener(alarmDragListener);
+
+ AlarmTitleCreate();
+ AlarmAddButtonCreate();
+
RefreshAlarm();
if (group != nullptr) {
container[0] = group;
AddViewToRootContainer(container[0]);
}
+ viewInitstatus_ = true;
+ RootView::GetInstance()->SetOnKeyActListener(presenter_);
}
void MainAlarmView::RefreshAlarm(void)
RefreshAlarmStatus(alarmEnable, i);
dClock[i]->SetTime24Hour(refreshHour, refreshMin, 0);
}
- group->ScrollBy(0, ADD_BUTTON_Y - addButton->GetY());
- if (dClockNum > (i - 1)) {
- group->Remove(dClock[dClockNum]);
- delete dClock[dClockNum];
- dClock[dClockNum] = nullptr;
-
- group->Remove(statusButton[dClockNum]);
- delete statusButton[dClockNum];
- statusButton[dClockNum] = nullptr;
-
- group->Remove(dLabel[dClockNum]);
- delete dLabel[dClockNum];
- dLabel[dClockNum] = nullptr;
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "[%d]: dClockNum = %d", __LINE__, dClockNum);
+ // group->ScrollBy(0, ADD_BUTTON_Y - addButton->GetY());
+ if (dClockNum > (i - 1))
+ {
+ if(group)
+ {
+ if(SwipeView_[dClockNum])
+ {
+ group->Remove(SwipeView_[dClockNum]);
+ SwipeView_[dClockNum]->RemoveAll();
+ // 0
+ if(SwipeViewItem_[dClockNum][0])
+ {
+ SwipeViewItem_[dClockNum][0]->RemoveAll();
+
+ delete dClock[dClockNum];
+ dClock[dClockNum] = nullptr;
+
+ delete dLabel[dClockNum];
+ dLabel[dClockNum] = nullptr;
+
+ delete statusButton[dClockNum];
+ statusButton[dClockNum] = nullptr;
+
+ delete SwipeViewItem_[dClockNum][0];
+ SwipeViewItem_[dClockNum][0] = nullptr;
+ }
+ /* -------------------------------------------------------------------------- */
+ // 1
+ if(SwipeViewItem_[dClockNum][1])
+ {
+ SwipeViewItem_[dClockNum][1]->RemoveAll();
+
+ delete DeleteButton_[dClockNum];
+ DeleteButton_[dClockNum] = nullptr;
+
+ delete SwipeViewItem_[dClockNum][1];
+ SwipeViewItem_[dClockNum][1] = nullptr;
+ }
+ delete SwipeView_[dClockNum];
+ SwipeView_[dClockNum] = nullptr;
+ }
+ }
}
dClockNum = i - 1;
+
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "[%d]: dClockNum=%d", __LINE__, dClockNum);
+ AlarmAddButtonUpdate(i);
}
bool MainAlarmView::ChangeMainAlarm(int16_t thisView)
bool MainAlarmView::ChangeJudge(int16_t thisView)
{
if (container[thisView] == nullptr) {
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "MainAlarmView::AlarmSetWeekView");
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "MainAlarmView::ChangeJudge");
judgeView = new AlarmJudgeView();
if (judgeView == nullptr) {
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "MainAlarmView:: new container[%d] fail", thisView);
container[thisView] = maxClockView->InitAlarmMax();
AddViewToRootContainer(container[thisView]);
}
- AlarmMaxClock::GetInstance()->AlarmMaxDelayExit();
+ // AlarmMaxClock::GetInstance()->AlarmMaxDelayExit();//暂时屏蔽自动销毁界面
return true;
}
} else if (&view == container[CHANGE_INTERFACE_MAXCLOCK]) {
WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "MainAlarmView::DropView::container[CHANGE_INTERFACE_MAXCLOCK]");
ChangeView(CHANGE_INTERFACE_MAXCLOCK, MAIN_INTERFACE);
- CancelScanHandle();
+ // CancelScanHandle();暂时屏蔽自动销毁界面
} else if (&view == container[MAIN_INTERFACE]) {
- uint16_t preSlice = AlarmClockModel::GetInstance()->JudgePreSlice();
WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "MainAlarmView::DropView::container[MAIN_INTERFACE]");
- NativeAbility::GetInstance().ChangeSlice(preSlice);
+ NativeAbility::GetInstance().Back();
}
}
#include "samgr_lite.h"
#include "RtcService.h"
-#include "AlarmClockTimerConfig.h"
+#include "alarmclocktimerconfig/include/AlarmClockTimerConfig.h"
#include "AlarmClockManage.h"
#ifdef __cplusplus
#endif
static constexpr uint32 DATETIME_PARA_NUM = 6;
-static constexpr const char *ALARM_CLOCK_MANAGE_DATA_PATH = (char *)"/user/data/alarmclock/alarmClockManage.bin";
-static constexpr const char *ALARM_CLOCK_MANAGE_DIRECTORY = (char *)"/user/data/alarmclock";
+static constexpr const char *ALARM_CLOCK_MANAGE_DATA_PATH = (char *)"/user/userdata/alarmclock/alarmClockManage.bin";
+static constexpr const char *ALARM_CLOCK_MANAGE_DIRECTORY = (char *)"/user/userdata/alarmclock";
static int32 SaveManagementToFile(void);
static int32 LoadManagementFromFile(void);
if (node == g_alarmTodayList.end() || id > EVENT_ALARM_CLOCK_MAX) {
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "DeleteAndUpdataListAlarmToday id is invalid, id = %u!!", id);
- return STATUS_ALARM_ID_INVALID;
+ // return STATUS_ALARM_ID_INVALID;
}
(void)SetFirstAlarmToday(TYPE_CUR_NODE_NO_SKIP);
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SetFirstAlarmToday AlarmGetCurrentTimeInfo failed!!");
return STATUS_TIME_FUN_ERROR;
}
+
+ SetAlarm(ALARM_A, 0,255, 255);
for (node = g_alarmTodayList.begin(); node != g_alarmTodayList.end();) {
tempNode = node;
(void)CreateListAlarmToday();
(void)SortListAlarmToday();
(void)SetFirstAlarmToday(TYPE_CUR_NODE_NO_SKIP);
+ (void)SetZeroAlarm();
return;
}
uint8_t week;\r
uint8_t hour;\r
uint8_t minute;\r
+ uint8_t second;\r
uint8_t reserved;\r
} AlarmInfo;\r
\r
int32_t SetZeroAlarm(void);\r
int32_t SetAlarm(AlarmType type, uint8_t week, uint8_t hour, uint8_t minute);\r
int32_t AlarmGetCurrentTimeInfo(struct tm *timeInfo);\r
+void set_sleep_and_wake_time(void);\r
+void set_sedentary_data(void);\r
+void get_sleep_time_notify(void);\r
+void clean_sleep_monitoring_flag(void);\r
+void clean_sedentary_flag(void);\r
+void set_drinkreminder_data(void);\r
+\r
+bool HandleIsBind(void);\r
+bool HandleCanShowDialog(void);\r
+void HandleSleepReminder(const struct tm* curTime);\r
+void HandleWakeUp(const struct tm* curTime);\r
+void HandleDrinkReminder(const struct tm* curTime);\r
+void HandleHeartRateDetection(const struct tm *curTime);\r
+void HandleAlarmOnTime(const struct tm *curTime);\r
+void HandleMusicUpdate(void);\r
\r
#ifdef __cplusplus\r
}\r
\r
#include "AlarmClockTimerConfig.h"\r
\r
-#ifdef __cplusplus\r
-extern "C" {\r
+#include "ConfigModelC.h"\r
+#include "ConfigModel.h"\r
+#include "heartrate/include/HeartModel.h"\r
+#include "sleep/include/SleepModel.h"\r
+#include "sleepmode/include/SleepModeModel.h"\r
+// #include "safemodemanager/include/SafeModeManagerModel.h"\r
+#include "cat1_server_hal.h"\r
+#include "custom_runtime.h"\r
+#include "uiservice/include/ui_service.h"\r
+#include "power_display_service.h"\r
+#include <NativeAbility.h>\r
+#include "AppViewIDs.h"\r
+#include "player/include/PlayersView.h"\r
+#include "record/include/RecordingPlayerView.h"\r
+#include "custom_utils.h"\r
+#include "alarm/include/AlarmClockModel.h"\r
+#ifdef CYWEE_SPORT\r
+#include "cywee_service.h"\r
#endif\r
\r
-static AlarmCtrl g_alarmCtrA;\r
-static AlarmCtrl g_alarmCtrB;\r
-namespace OHOS {\r
-GraphicTimer* g_AlarmHandle = nullptr;\r
-}\r
+#ifdef PPG_HX3695\r
+#include "ppg_service.h"\r
+#endif\r
\r
-void AlarmTimerEventPublish(uint16 topic, AlarmClockEventData data)\r
+#ifdef __cplusplus\r
+extern "C"\r
{\r
- int32 ret;\r
- uint32 size = sizeof(AlarmClockEventData);\r
- BroadcastApi *broadcastApi = nullptr;\r
- IUnknown *api = nullptr;\r
+#endif\r
\r
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlarmTimerEventPublish topic=%u!!", topic);\r
+ static AlarmCtrl g_alarmCtrA;\r
+ static AlarmCtrl g_alarmCtrB;\r
+ static osTimerId_t g_AlarmHandle = nullptr;\r
\r
- void *publishData = malloc(size);\r
- if (publishData == nullptr) {\r
- return;\r
+#define SLEPPNOTIFY 20\r
+\r
+ static int sleep_time = 0;\r
+ static int wake_up_time = 0;\r
+ static int sleep_notify_time = 0;\r
+ static int sleep_time_hour = 0;\r
+ static int sleep_time_min = 0;\r
+ static int wake_time_hour = 0;\r
+ static int wake_time_min = 0;\r
+ static int sedentary_switch = 0;\r
+ static int sedentary_interval = 1;\r
+ static int sedentary_time = 0;\r
+ static int sedentary_start_hour = 0;\r
+ static int sedentary_start_min = 0;\r
+ static int sedentary_stop_hour = 0;\r
+ static int sedentary_stop_min = 0;\r
+ static int drinkreminder_switch = 0; /*喝水提醒开关:0 关闭 1开始 2间隔提醒*/\r
+ static int drinkreminder_start_time = 0; /*喝水提醒开始时间*/\r
+ static int drinkreminder_start_hour = 0; /*喝水提醒开始小时*/\r
+ static int drinkreminder_start_min = 0; /*喝水提醒开始分钟*/\r
+ static int drinkreminder_end_time = 0; /*喝水提醒结束时间*/\r
+ static int drinkreminder_end_hour = 0; /*喝水提醒结束小时*/\r
+ static int drinkreminder_end_min = 0; /*喝水提醒结束分钟*/\r
+ static int drinkreminder_freq = 0; /*喝水提醒频率*/\r
+ static int drinkreminder_goal = 0; /*喝水提醒目标ml*/\r
+ static int drinkremind_expectedTime = 0;\r
+ static int sleep_notify_time_min = 0;\r
+ static int sleep_notify_time_hour = 0;\r
+ static int time_sync_flag = 0;\r
+\r
+ // #define SEDENTARY_TIME_RANGE (((curTime.tm_hour > sedentary_start_hour) || (curTime.tm_hour == sedentary_start_hour && curTime.tm_min >= sedentary_start_min)) && \\r
+// ((curTime.tm_hour < sedentary_stop_hour) || (curTime.tm_hour == sedentary_stop_hour && curTime.tm_min < sedentary_stop_min)))\r
+\r
+ // #define WAKE_TIME_RANGE (((wake_time_hour < sleep_time_hour) && \\r
+// ((curTime.tm_hour > wake_time_hour) || \\r
+// (curTime.tm_hour == wake_time_hour && curTime.tm_min >= wake_time_min)) && \\r
+// ((curTime.tm_hour < sleep_time_hour) || \\r
+// (curTime.tm_hour == sleep_time_hour && curTime.tm_min < sleep_time_min))) || \\r
+// ((wake_time_hour >= sleep_time_hour) && \\r
+// (((curTime.tm_hour > wake_time_hour) || \\r
+// (curTime.tm_hour == wake_time_hour && curTime.tm_min >= wake_time_min)) || \\r
+// ((curTime.tm_hour < sleep_time_hour) || \\r
+// (curTime.tm_hour == sleep_time_hour && curTime.tm_min < sleep_time_min))) || \\r
+// ((curTime.tm_hour > wake_time_hour) && (curTime.tm_hour < sleep_time_hour))))\r
+\r
+ // 设置目标睡眠时间\r
+ void set_sleep_and_wake_time(void)\r
+ {\r
+ sleep_time = get_sleep_time_from_config_model();\r
+ wake_up_time = get_wake_up_time_from_config_model();\r
+ // 解析开始时间\r
+ sleep_time_hour = (sleep_time & 0xFFFF0000) >> 16;\r
+ sleep_time_min = sleep_time & 0x0000FFFF;\r
+ wake_time_hour = (wake_up_time & 0xFFFF0000) >> 16;\r
+ wake_time_min = wake_up_time & 0x0000FFFF;\r
+ clean_sleep_monitoring_flag();\r
+ // 解析结束时间\r
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "sleep_time_hour:%d sleep_time_min:%d wake_time_hour:%d wake_time_min:%d", sleep_time_hour, sleep_time_min, wake_time_hour, wake_time_min);\r
}\r
- ret = memcpy_s(publishData, size, (const void *)&data, size);\r
- if (ret != EOK) {\r
- free(publishData);\r
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlarmTimerEventPublish memcpy_s fail! ret = %d", ret);\r
- return;\r
+\r
+ void set_sedentary_data(void)\r
+ {\r
+ sedentary_switch = get_sedentary_switch_from_config_model();\r
+ sedentary_time = get_sedentary_time_from_config_model();\r
+ sedentary_interval = get_sedentary_interval_from_config_model();\r
+ #ifdef CYWEE_SPORT\r
+ do_cywee_service_check_msg(CYWEE_SERVICE_CMD_SET_SEDENTARY_INTERVAL, &sedentary_interval); // 设置久坐提醒间隔\r
+ #endif\r
+\r
+ // sedentary_start_hour = (sedentary_time & 0XFF000000) >> 24;\r
+ // sedentary_start_min = (sedentary_time & 0X00FF0000) >> 16;\r
+ // sedentary_stop_hour = (sedentary_time & 0X0000FF00) >> 8;\r
+ // sedentary_stop_min = sedentary_time & 0X000000FF;\r
+ sedentary_stop_min = (sedentary_time & 0XFF000000) >> 24;\r
+ sedentary_stop_hour = (sedentary_time & 0X00FF0000) >> 16;\r
+ sedentary_start_min = (sedentary_time & 0X0000FF00) >> 8;\r
+ sedentary_start_hour = sedentary_time & 0X000000FF;\r
+ clean_sedentary_flag();\r
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "set_sedentary_data:%d:%d~%d:%d", sedentary_start_hour, sedentary_start_min, sedentary_stop_hour, sedentary_stop_min);\r
}\r
\r
- Request request = {\r
- .msgId = topic,\r
- .len = size,\r
- .msgValue = 0,\r
- .data = publishData,\r
- };\r
+ void set_drinkreminder_data(void)\r
+ {\r
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "set_drinkreminder_data");\r
+ drinkreminder_switch = OHOS::ConfigModel::GetInstance()->GetDrinkSwitch();\r
+ drinkreminder_freq = OHOS::ConfigModel::GetInstance()->GetDrinkFreq();\r
+ drinkreminder_goal = OHOS::ConfigModel::GetInstance()->GetDrinkGoal();\r
\r
- /* public request */\r
- api = SAMGR_GetInstance()->GetFeatureApi(BROADCAST_SERVICE_NAME, BROADCAST_FEATURE_NAME);\r
- if (api == nullptr) {\r
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "GetFeatureApi failed");\r
- free(publishData);\r
- return;\r
+ // 获取提醒时间段\r
+ drinkreminder_start_time = OHOS::ConfigModel::GetInstance()->GetDrinkStart(); // 获取喝水提醒开始时间,int类型 前16位小时,后16位分钟\r
+ drinkreminder_end_time = OHOS::ConfigModel::GetInstance()->GetDrinkEnd(); // 获取喝水提醒结束时间, int类型 前16位小时,后16位分钟\r
+\r
+ // 解析开始时间\r
+ drinkreminder_start_hour = (drinkreminder_start_time & 0XFFFF0000) >> 16; // 前16位是小时\r
+ drinkreminder_start_min = drinkreminder_start_time & 0X0000FFFF; // 后16位是分钟\r
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "%d:%d", drinkreminder_start_hour, drinkreminder_start_min);\r
+\r
+ // 解析结束时间\r
+ drinkreminder_end_hour = (drinkreminder_end_time & 0XFFFF0000) >> 16; // 前16位是小时\r
+ drinkreminder_end_min = drinkreminder_end_time & 0x0000FFFF; // 后16位是分钟\r
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "%d:%d", drinkreminder_end_hour, drinkreminder_end_min);\r
+\r
+ if (drinkreminder_switch == 2)\r
+ {\r
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "%d:%d~%d:%d", drinkreminder_start_hour, drinkreminder_start_min, drinkreminder_end_hour, drinkreminder_end_min);\r
+ }\r
}\r
- ret = api->QueryInterface(api, DEFAULT_VERSION, (void **)&broadcastApi);\r
- if (ret != 0 || broadcastApi == nullptr) {\r
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "QueryInterface failed");\r
- free(publishData);\r
+\r
+ static bool is_time_range(const struct tm &curTime, int start_time_hour, int start_time_min, int end_time_hour, int end_time_min)\r
+ {\r
+ int start_min = start_time_hour * 60 + start_time_min; /* 开始时间的分钟数 */\r
+ int end_min = end_time_hour * 60 + end_time_min; /* 结束时间的分钟数 */\r
+ int cur_time_min = curTime.tm_hour * 60 + curTime.tm_min; /* 当前时间的分钟数 */\r
+\r
+ // 处理非跨天的情况\r
+ if (end_min > start_min)\r
+ {\r
+ if (cur_time_min >= start_min && cur_time_min < end_min)\r
+ {\r
+ return true;\r
+ }\r
+ }\r
+ else // 处理跨天的情况\r
+ {\r
+ if (cur_time_min >= start_min || cur_time_min < end_min)\r
+ {\r
+ return true;\r
+ }\r
+ }\r
+ return false;\r
+ }\r
+\r
+ void clean_sleep_monitoring_flag(void)\r
+ {\r
+ uapi_dev_runtime_set_sleep_monitoring_status(0);\r
+ uapi_dev_runtime_set_nap_monitoring_status(0);\r
+ }\r
+\r
+ void clean_sedentary_flag(void)\r
+ {\r
+ uapi_dev_runtime_set_sedentary_status(0);\r
+ }\r
+\r
+ // 设置睡眠提醒时间\r
+ void get_sleep_time_notify(void)\r
+ {\r
+ int goal_hour = (sleep_time & 0XFFFF0000) >> 16;\r
+ int goal_min = (sleep_time & 0X0000FFFF);\r
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "goal_hour:%d goal_min:%d", goal_hour, goal_min);\r
+\r
+ sleep_notify_time_min = (goal_min >= SLEPPNOTIFY) ? goal_min - SLEPPNOTIFY : ((goal_min + 60) - SLEPPNOTIFY); // 避免分钟数为负\r
+ sleep_notify_time_hour = goal_hour;\r
+ if (goal_min < SLEPPNOTIFY)\r
+ { // 如果需要借位\r
+ sleep_notify_time_hour -= 1; // 小时减1\r
+ }\r
+ // 确保小时数正确\r
+ sleep_notify_time_hour = (sleep_notify_time_hour < 0) ? 23 : sleep_notify_time_hour; // 处理从0点前20分钟的情况,变为前一天的23点40分\r
+\r
+ sleep_notify_time = (sleep_notify_time_hour << 16) | sleep_notify_time_min;\r
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "sleep_notify_time_hour:%d sleep_notify_time_min:%d sleep_notify_time:%d", sleep_notify_time_hour, sleep_notify_time_min, sleep_notify_time);\r
+ }\r
+ void AlarmEventPublish(uint16_t topic, uint8_t *data, uint32_t size)\r
+ {\r
+ int32 ret;\r
+\r
+ BroadcastApi *broadcastApi = NULL;\r
+ IUnknown *api = NULL;\r
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "ChargerEventPublish topic=%u!!", topic);\r
+\r
+ void *publishData = nullptr;\r
+ if (size > 0)\r
+ {\r
+ publishData = malloc(size);\r
+ if (publishData == nullptr)\r
+ {\r
+ return;\r
+ }\r
+ ret = memcpy_s(publishData, size, (const void *)data, size);\r
+ if (ret != EOK)\r
+ {\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "ChargerEventPublish memcpy_s rateDataTmp fail! ret = %d", ret);\r
+ free(publishData);\r
+ return;\r
+ }\r
+ }\r
+\r
+ Request request = {.msgId = topic, .len = size, .msgValue = 0, .data = publishData};\r
+\r
+ /* public request */\r
+ api = SAMGR_GetInstance()->GetFeatureApi(BROADCAST_SERVICE_NAME, BROADCAST_FEATURE_NAME);\r
+ if (api == NULL)\r
+ {\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "GetFeatureApi failed");\r
+ free(publishData);\r
+ return;\r
+ }\r
+ ret = api->QueryInterface(api, DEFAULT_VERSION, (void **)&broadcastApi);\r
+ if (ret != 0 || broadcastApi == NULL)\r
+ {\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "QueryInterface failed");\r
+ free(publishData);\r
+ return;\r
+ }\r
+ broadcastApi->PublishTopic((IUnknown *)broadcastApi, &request);\r
+ broadcastApi->Release((IUnknown *)broadcastApi);\r
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "ChargerEventPublish end!!");\r
+\r
return;\r
}\r
- broadcastApi->PublishTopic((IUnknown *)broadcastApi, &request);\r
- broadcastApi->Release((IUnknown *)broadcastApi);\r
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlarmTimerEventPublish end!!");\r
+ void AlarmTimerEventPublish(uint16 topic, AlarmClockEventData data)\r
+ {\r
+ int32 ret;\r
+ uint32 size = sizeof(AlarmClockEventData);\r
+ BroadcastApi *broadcastApi = nullptr;\r
+ IUnknown *api = nullptr;\r
\r
- return;\r
-}\r
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlarmTimerEventPublish topic=%u!!", topic);\r
\r
-static void AlarmCallBackProcA(void)\r
-{\r
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlarmCallBackProcA");\r
- AlarmClockEventData unuse;\r
- AlarmTimerEventPublish(TOPIC_EVENT_ALARM_RING, unuse);\r
-}\r
+ void *publishData = malloc(size);\r
+ if (publishData == nullptr)\r
+ {\r
+ return;\r
+ }\r
+ ret = memcpy_s(publishData, size, (const void *)&data, size);\r
+ if (ret != EOK)\r
+ {\r
+ free(publishData);\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlarmTimerEventPublish memcpy_s fail! ret = %d", ret);\r
+ return;\r
+ }\r
\r
-static void AlarmCallBackProcB(void)\r
-{\r
- AlarmClockEventData unuse;\r
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlarmCallBackProcB");\r
- AlarmTimerEventPublish(TOPIC_EVENT_NEXTDAY_UPDATE, unuse);\r
- SetZeroAlarm();\r
-}\r
+ Request request = {\r
+ .msgId = topic,\r
+ .len = size,\r
+ .msgValue = 0,\r
+ .data = publishData,\r
+ };\r
+\r
+ /* public request */\r
+ api = SAMGR_GetInstance()->GetFeatureApi(BROADCAST_SERVICE_NAME, BROADCAST_FEATURE_NAME);\r
+ if (api == nullptr)\r
+ {\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "GetFeatureApi failed");\r
+ free(publishData);\r
+ return;\r
+ }\r
+ ret = api->QueryInterface(api, DEFAULT_VERSION, (void **)&broadcastApi);\r
+ if (ret != 0 || broadcastApi == nullptr)\r
+ {\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "QueryInterface failed");\r
+ free(publishData);\r
+ return;\r
+ }\r
+ broadcastApi->PublishTopic((IUnknown *)broadcastApi, &request);\r
+ broadcastApi->Release((IUnknown *)broadcastApi);\r
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlarmTimerEventPublish end!!");\r
\r
-void AlarmScan(void *arg)\r
-{\r
- struct tm curTime;\r
- int32_t ret = AlarmGetCurrentTimeInfo(&curTime);\r
- if (ret != ERRCODE_SUCC) {\r
return;\r
}\r
+ /*闹钟*/\r
+ static void AlarmCallBackProcA(void)\r
+ {\r
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlarmCallBackProcA");\r
+ AlarmClockEventData unuse;\r
+ AlarmTimerEventPublish(TOPIC_EVENT_ALARM_RING, unuse);\r
+ }\r
+\r
+ /*NextDay*/\r
+ static void AlarmCallBackProcB(void)\r
+ {\r
+ AlarmClockEventData unuse;\r
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlarmCallBackProcB");\r
+#if 0\r
+ // 记录当前时间\r
+ time_t now = time(nullptr);\r
+ struct tm *localTime = localtime(&now);\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Current time - Hour: %d, Minute: %d", localTime->tm_hour, localTime->tm_min);\r
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "Posting next day update event");\r
+\r
+#endif\r
+\r
+ GraphicService::GetInstance()->PostGraphicEvent(std::bind(AlarmTimerEventPublish, TOPIC_EVENT_NEXTDAY_UPDATE, unuse));\r
+\r
+ // AlarmTimerEventPublish(TOPIC_EVENT_NEXTDAY_UPDATE, unuse);\r
+\r
+ // 重置nextday闹钟\r
+ SetZeroAlarm();\r
+ }\r
+\r
+ static void on_time_CallBackProc(void)\r
+ {\r
+ AlarmClockEventData unuse;\r
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "on_time_CallBackProc invoked");\r
+ AlarmTimerEventPublish(TOPIC_EVENT_ON_TIME, unuse);\r
+ // GraphicService::GetInstance()->PostGraphicEvent(\r
+ // std::bind(AlarmTimerEventPublish, TOPIC_EVENT_ON_TIME, unuse));\r
+\r
+ // AlarmTimerEventPublish(TOPIC_EVENT_ON_TIME, unuse);\r
+ }\r
+\r
+ void AlarmScan(void *arg)\r
+ {\r
+ struct tm curTime;\r
+ int32_t ret = AlarmGetCurrentTimeInfo(&curTime);\r
+ if (ret != ERRCODE_SUCC)\r
+ {\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Failed to get current time info, error code: %d", ret);\r
+ return;\r
+ }\r
+\r
+ if (curTime.tm_sec % 3 == 0)\r
+ {\r
+ do_custom_cmd_service_check_msg(CUSTOM_CMD_MSG_BLE_ADV_CHECK, nullptr, 0); // 3秒钟检查一次广播\r
+ }\r
+\r
+ if (curTime.tm_sec % 60 == 0)\r
+ {\r
+ #ifdef CYWEE_SPORT\r
+ do_cywee_service_check_msg(CYWEE_SERVICE_CMD_CHECK_ACC, NULL); // 一分钟检查一次gsensor是否停止\r
+ #endif\r
+ }\r
+\r
+ if (curTime.tm_min % 60 == 0 && curTime.tm_sec == 0)\r
+ {\r
+ do_custom_fileoperate_service_check_msg(CUSTOM_FILEOPERATE_MSG_TYPE_BATTERY_DATA_SAVE, nullptr, 0); // 十分钟存一次电池信息\r
+ }\r
+\r
+ if (g_alarmCtrA.state == ALARM_STATUS_RUNNING)\r
+ {\r
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "Checking Alarm A");\r
+ if ((g_alarmCtrA.callback != nullptr) &&\r
+ (g_alarmCtrA.info.hour == curTime.tm_hour) &&\r
+ (g_alarmCtrA.info.minute == curTime.tm_min))\r
+ {\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Alarm A triggered");\r
+ OHOS::AlarmClockModel::GetInstance()->SetPopTimeData(g_alarmCtrA.info.hour, g_alarmCtrA.info.minute);\r
+ g_alarmCtrA.state = ALARM_STATUS_CREATED;\r
+ g_alarmCtrA.callback();\r
+ }\r
+ }\r
+\r
+ if (g_alarmCtrB.state == ALARM_STATUS_RUNNING)\r
+ {\r
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "Checking Alarm B");\r
+ if ((g_alarmCtrB.callback != NULL) &&\r
+ // (g_alarmCtrB.info.week == curTime.tm_wday) &&\r
+ (g_alarmCtrB.info.hour == curTime.tm_hour) &&\r
+ (g_alarmCtrB.info.minute == curTime.tm_min) &&\r
+ (g_alarmCtrB.info.second == curTime.tm_sec))\r
+ {\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Alarm B triggered");\r
+ g_alarmCtrB.state = ALARM_STATUS_CREATED;\r
+ g_alarmCtrB.callback();\r
+ }\r
+ }\r
+\r
+ // 业务逻辑回调\r
+ do_custom_cmd_service_check_msg(CUSTOM_CMD_MSG_TIMECALL_BACK, nullptr, 0);\r
+ }\r
\r
- if (g_alarmCtrA.state == ALARM_STATUS_RUNNING) {\r
- if ((g_alarmCtrA.callback != nullptr) &&\r
- (g_alarmCtrA.info.hour == curTime.tm_hour) &&\r
- (g_alarmCtrA.info.minute == curTime.tm_min)) {\r
- g_alarmCtrA.callback();\r
- g_alarmCtrA.state = ALARM_STATUS_CREATED;\r
+ // 每秒回调\r
+ void custom_timer_callback()\r
+ {\r
+ struct tm curTime;\r
+ int32_t ret = AlarmGetCurrentTimeInfo(&curTime);\r
+ if (ret != ERRCODE_SUCC)\r
+ {\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Failed to get current time info, error code: %d", ret);\r
+ return;\r
}\r
+\r
+ // 绑定判断\r
+ if (HandleIsBind())\r
+ {\r
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "HandleAlarmOnTime: not binded");\r
+ return;\r
+ }\r
+\r
+ HandleAlarmOnTime(&curTime);\r
+ HandleSleepReminder(&curTime);\r
+ HandleMusicUpdate();\r
+\r
+ // 以下弹窗被控制\r
+ if (HandleCanShowDialog())\r
+ {\r
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "HandleAlarmOnTime: not show dialog");\r
+ return;\r
+ }\r
+\r
+ HandleDrinkReminder(&curTime);\r
+ HandleHeartRateDetection(&curTime);\r
}\r
\r
- if (g_alarmCtrB.state == ALARM_STATUS_RUNNING) {\r
- if ((g_alarmCtrB.callback != nullptr) &&\r
- (g_alarmCtrB.info.week == curTime.tm_wday) &&\r
- (g_alarmCtrB.info.hour == curTime.tm_hour) &&\r
- (g_alarmCtrB.info.minute == curTime.tm_min)) {\r
- g_alarmCtrB.callback();\r
- g_alarmCtrB.state = ALARM_STATUS_CREATED;\r
+ // 判断是否绑定\r
+ bool HandleIsBind(void)\r
+ {\r
+ // 未绑定状态下,以下操作不进行\r
+ if (OHOS::ConfigModel::GetInstance()->get_configData_bool(\r
+ OHOS::ConfigModel::CONFIGMODEL_ITEM_FIRSTTIMESTART))\r
+ {\r
+ return true;\r
}\r
+ return false;\r
}\r
-}\r
\r
-static int32_t AlarmCreate(AlarmCtrl *alarmCtrl, AlarmCallBack callback)\r
-{\r
- if (alarmCtrl == nullptr) {\r
- return ERRCODE_FAIL;\r
+ // 判断是否可以弹窗\r
+ bool HandleCanShowDialog(void)\r
+ {\r
+ bool state = false;\r
+\r
+ if (uapi_dev_runtime_get_saveele_status())\r
+ {\r
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "saveele!");\r
+ state = true;\r
+ }\r
+\r
+ if (uapi_dev_runtime_get_train_status())\r
+ {\r
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "training!");\r
+ state = true;\r
+ }\r
+\r
+ return state;\r
}\r
- if (alarmCtrl->state == ALARM_STATUS_UNUSED) {\r
- alarmCtrl->state = ALARM_STATUS_CREATED;\r
- alarmCtrl->callback = callback;\r
+\r
+ // 整点回调\r
+ void HandleAlarmOnTime(const struct tm *curTime)\r
+ {\r
+ if (curTime->tm_min == 0 && curTime->tm_sec == 0)\r
+ {\r
+ AlarmClockEventData unuse;\r
+ time_t timetemp = mktime((struct tm *)curTime);\r
+ unuse.value = timetemp - 60 * 60;\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "on_time_CallBackProc invoked");\r
+ GraphicService::GetInstance()->PostGraphicEvent(\r
+ std::bind(AlarmTimerEventPublish, TOPIC_EVENT_ON_TIME, unuse));\r
+ }\r
}\r
- return ERRCODE_SUCC;\r
-}\r
\r
-int32_t AlarmTimerInit(void)\r
-{\r
- int32_t ret;\r
+ // 睡眠提醒\r
+ void HandleSleepReminder(const struct tm *curTime)\r
+ {\r
+ // 睡眠总开关\r
+ if (OHOS::ConfigModel::GetInstance()->get_configData_int(OHOS::ConfigModel::CONFIGMODEL_ITEM_SLEEP))\r
+ {\r
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "CONFIGMODEL_ITEM_SLEEP is OK");\r
+ // 睡眠提醒[前提开启睡眠提醒]\r
+ if (OHOS::ConfigModel::GetInstance()->get_configData_int(OHOS::ConfigModel::CONFIGMODEL_ITEM_SLEEP_REMIND))\r
+ {\r
+ // 提醒一次\r
+ if ((curTime->tm_hour == sleep_notify_time_hour) && (curTime->tm_min == sleep_notify_time_min) && (curTime->tm_sec == 0))\r
+ {\r
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "It's bedtime in 20 minutes");\r
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "20分钟后要睡觉啦!");\r
+ // 设置状态为睡眠提醒\r
+ OHOS::SleepModel::GetInstance().set_sleep_state(OHOS::SLEEPSTATE::SLEEPNOTIFY);\r
+ AlarmEventPublish(TOPIC_EVENT_SLEEPNOTE, NULL, 0);\r
+ }\r
+ }\r
+ if ((curTime->tm_hour == wake_time_hour && curTime->tm_min == wake_time_min && curTime->tm_sec == 0) ||\r
+ (curTime->tm_hour == sleep_time_hour && curTime->tm_min == sleep_time_min && curTime->tm_sec == 0) && curTime->tm_min)\r
+ {\r
+ uapi_cywee_time_sync();\r
+ }\r
+ else if (!time_sync_flag && curTime->tm_min)\r
+ {\r
+ time_sync_flag = 1;\r
+ uapi_cywee_time_sync();\r
+ }\r
+ // 退出睡眠检测模式并进入小睡检测模式\r
+ if (!is_time_range(*curTime, sleep_time_hour, sleep_time_min, wake_time_hour, wake_time_min) && (uapi_dev_runtime_get_nap_monitoring_status() == 0))\r
+ {\r
+ if (curTime->tm_hour == wake_time_hour && curTime->tm_min == wake_time_min && curTime->tm_sec == 0)\r
+ {\r
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "闹铃!");\r
+ // 退出睡眠模式\r
+ OHOS::SleepModeModel::GetInstance().SetSleepModeDisabled();\r
+ OHOS::SleepModel::GetInstance().set_sleep_state(OHOS::SLEEPSTATE::WAKE);\r
+ }\r
\r
- g_alarmCtrA.state = ALARM_STATUS_UNUSED;\r
- g_alarmCtrB.state = ALARM_STATUS_UNUSED;\r
- OHOS::g_AlarmHandle = new OHOS::GraphicTimer(ALARM_INTERVAL_MS, AlarmScan, nullptr, true);\r
- bool timerStatus = OHOS::g_AlarmHandle->Start();\r
- if (!timerStatus) {\r
- return ERRCODE_FAIL;\r
+ // 判断是否还在睡眠\r
+ if (uapi_dev_runtime_get_sleep_status() == 0)\r
+ {\r
+ // 设置状态为小睡\r
+ uapi_dev_runtime_set_nap_status(0); // 清零小睡状态\r
+ uapi_dev_runtime_set_absolute_static_status(0); // 清零绝对静止状态\r
+ #ifdef PPG_HX3695\r
+ set_keep_in_wear_det_mode(1); // 开启小睡佩戴监测\r
+ #endif\r
+ #ifdef CYWEE_SPORT\r
+ do_cywee_service_check_msg(CYWEE_SERVICE_CMD_NAP_SEDENTARY_MODE, NULL); // 算法底层切换小睡监测模式\r
+ #endif\r
+ time_sync_flag = 0;\r
+ }\r
+ }\r
+ // 进入睡眠检测模式并退出小睡检测模式\r
+ else if (is_time_range(*curTime, sleep_time_hour, sleep_time_min, wake_time_hour, wake_time_min) && (uapi_dev_runtime_get_sleep_monitoring_status() == 0))\r
+ {\r
+ int cmd = 1;\r
+ uapi_dev_runtime_set_sleep_status(0); // 清零睡眠状态\r
+ uapi_dev_runtime_set_absolute_static_status(0); // 清零绝对静止状态\r
+ // OHOS::clean_sleep_data(); // 清零睡眠文件存储数据\r
+ // if(uapi_dev_runtime_get_nap_monitoring_status() == 1)\r
+ // uapi_clean_sleep_flag(); // 清除睡眠标志文件\r
+ // OHOS::create_sleep_folder(); // 创建睡眠文件夹\r
+ #ifdef PPG_HX3695\r
+ set_keep_in_wear_det_mode(0);\r
+ #endif\r
+ #ifdef CYWEE_SPORT\r
+ do_cywee_service_check_msg(CYWEE_SERVICE_CMD_GET_SLEEP_DATA, &cmd); // 强制获取小睡数据,结束小睡\r
+ #endif\r
+\r
+ // 睡眠弹窗\r
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "要睡觉啦!");\r
+ // 设置状态为睡眠\r
+ OHOS::SleepModel::GetInstance().clean_sleep_data(); // 清除历史数据\r
+ OHOS::SleepModel::GetInstance().set_sleep_state(OHOS::SLEEPSTATE::SLEPP);\r
+\r
+ if (curTime->tm_hour == sleep_time_hour && curTime->tm_min == sleep_time_min && curTime->tm_sec == 0)\r
+ {\r
+ // 进入睡眠模式\r
+ OHOS::SleepModeModel::GetInstance().SetSleepModeEnabled();\r
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "要睡觉啦!!!! 开始");\r
+ AlarmEventPublish(TOPIC_EVENT_SLEEPNOTE, NULL, 0);\r
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "要睡觉啦!!!! 结束");\r
+ }\r
+\r
+ #ifdef CYWEE_SPORT\r
+ do_cywee_service_check_msg(CYWEE_SERVICE_CMD_SLEEPING_MODE, NULL); // 算法底层切换睡眠监测模式\r
+ #endif\r
+ time_sync_flag = 0;\r
+ }\r
+ }\r
}\r
- ret = AlarmCreate(&g_alarmCtrA, AlarmCallBackProcA);\r
- if (ret != ERRCODE_SUCC) {\r
- return ERRCODE_FAIL;\r
+\r
+ // 喝水提醒\r
+ void HandleDrinkReminder(const struct tm *curTime)\r
+ {\r
+ if (drinkreminder_switch == 1)\r
+ { // 定时提醒\r
+ if (curTime->tm_hour == drinkreminder_start_hour &&\r
+ curTime->tm_min == drinkreminder_start_min &&\r
+ curTime->tm_sec == 0)\r
+ {\r
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "该喝水了!!该喝水了!!");\r
+ AlarmEventPublish(TOPIC_EVENT_DRINKREMINDER, NULL, 0);\r
+ }\r
+ }\r
+ else if (drinkreminder_switch == 2)\r
+ { // 间隔提醒\r
+ // 判断当前时间是否在提醒时间段内\r
+ if (is_time_range(*curTime, drinkreminder_start_hour, drinkreminder_start_min, drinkreminder_end_hour, drinkreminder_end_min))\r
+ {\r
+ double interval_time = (drinkreminder_freq == 0) ? 0.5 : drinkreminder_freq;\r
+ int interval_time_seconds = (int)(interval_time * 60) * 60;\r
+ int current_seconds = (curTime->tm_hour * 60 + curTime->tm_min) * 60;\r
+ int hour_24_seconds = 24 * 60 * 60;\r
+ // 进行间隔判断和提醒\r
+ if (uapi_dev_runtime_get_drinkremind_status() == 0)\r
+ {\r
+ uapi_dev_runtime_set_drinkremind_status(1);\r
+ drinkremind_expectedTime = current_seconds + interval_time_seconds;\r
+ drinkremind_expectedTime %= hour_24_seconds; // 同时处理24小时循环\r
+ }\r
+ else if (current_seconds == drinkremind_expectedTime && curTime->tm_sec == 0)\r
+ {\r
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "该喝水了!!该喝水了!!");\r
+ drinkremind_expectedTime += interval_time_seconds;\r
+ drinkremind_expectedTime %= hour_24_seconds; // 处理24小时循环\r
+ AlarmEventPublish(TOPIC_EVENT_DRINKREMINDER, NULL, 0);\r
+ }\r
+ }\r
+ else if (!is_time_range(*curTime, drinkreminder_start_hour, drinkreminder_start_min, drinkreminder_end_hour, drinkreminder_end_min) && uapi_dev_runtime_get_drinkremind_status() == 1)\r
+ {\r
+ uapi_dev_runtime_set_drinkremind_status(0);\r
+ }\r
+ }\r
}\r
- ret = AlarmCreate(&g_alarmCtrB, AlarmCallBackProcB);\r
- if (ret != ERRCODE_SUCC) {\r
- return ERRCODE_FAIL;\r
+\r
+ // 心率周期检测\r
+ void HandleHeartRateDetection(const struct tm *curTime)\r
+ {\r
+ int heartRateDetectionInterval = 0;\r
+\r
+ if (uapi_dev_runtime_get_sleep_monitoring_status())\r
+ heartRateDetectionInterval = 20; // 晚上 20分钟检测一次\r
+ else\r
+ heartRateDetectionInterval = OHOS::ConfigModel::GetInstance()->get_configData_int(OHOS::ConfigModel::CONFIGMODEL_ITEM_HEARTRATE_DETECTED);\r
+\r
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "Heart rate detection cycle detection is enabled %d", heartRateDetectionInterval);\r
+ if (heartRateDetectionInterval)\r
+ {\r
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "Heart rate detection cycle detection is enabled %d", curTime->tm_min % heartRateDetectionInterval);\r
+ if (curTime->tm_min % heartRateDetectionInterval == 0 && curTime->tm_sec == 0)\r
+ {\r
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "Automatic heart rate detection starts");\r
+ // 开启心率检测\r
+ OHOS::HeartModel::GetInstance()->Heart_Control(OHOS::HeartState::Start, OHOS::HeartCheck::PASSIVITY);\r
+ }\r
+ }\r
}\r
- return ERRCODE_SUCC;\r
-}\r
\r
-int32_t SetAlarm(AlarmType type, uint8_t week, uint8_t hour, uint8_t minute)\r
-{\r
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "SetAlarm %d %d %d %d", type, week, hour, minute);\r
- if (type == ALARM_A) {\r
- g_alarmCtrA.state = ALARM_STATUS_RUNNING;\r
- g_alarmCtrA.info.hour = hour;\r
- g_alarmCtrA.info.minute = minute;\r
- } else if (type == ALARM_B) {\r
- g_alarmCtrB.state = ALARM_STATUS_RUNNING;\r
- g_alarmCtrB.info.week = week;\r
- g_alarmCtrB.info.hour = hour;\r
- g_alarmCtrB.info.minute = minute;\r
- } else {\r
- return ERRCODE_FAIL;\r
- }\r
- return ERRCODE_SUCC;\r
-}\r
+ // 音乐更新\r
+ void HandleMusicUpdate()\r
+ {\r
+ int16_t curviewid = OHOS::NativeAbility::GetInstance().GetCurSliceId();\r
+ if (curviewid != VIEW_MAIN && OHOS::PlayersView::GetInstance())\r
+ { // 当前不在主界面且音乐界面不为空\r
+ OHOS::UICheckBox::UICheckBoxState state = OHOS::PlayersView::GetInstance()->GetPlayerButtonState();\r
+ if (state == OHOS::UICheckBox::UICheckBoxState::SELECTED)\r
+ {\r
+ SendMsgToUIService(UI_UPDATE_PLAYERPROCESS, 0, nullptr, 0); // 音乐进度条更新\r
+ }\r
+ }\r
+ else if (OHOS::RecordingPlayerView::GetInstance())\r
+ {\r
+ OHOS::UICheckBox::UICheckBoxState state = OHOS::RecordingPlayerView::GetInstance()->GetPlayerButtonState();\r
+ if (state == OHOS::UICheckBox::UICheckBoxState::SELECTED)\r
+ {\r
+ SendMsgToUIService(UI_UPDATE_RECORDPROCESS, 0, nullptr, 0); // 录音进度条更新\r
+ }\r
+ }\r
+ }\r
\r
-int32_t SetZeroAlarm(void)\r
-{\r
- struct tm curTime;\r
- int32_t ret = AlarmGetCurrentTimeInfo(&curTime);\r
- if (ret != ERRCODE_SUCC) {\r
- return ERRCODE_FAIL;\r
+ static int32_t AlarmCreate(AlarmCtrl *alarmCtrl, AlarmCallBack callback)\r
+ {\r
+ if (alarmCtrl == nullptr)\r
+ {\r
+ return ERRCODE_FAIL;\r
+ }\r
+ if (alarmCtrl->state == ALARM_STATUS_UNUSED)\r
+ {\r
+ alarmCtrl->state = ALARM_STATUS_CREATED;\r
+ alarmCtrl->callback = callback;\r
+ }\r
+ return ERRCODE_SUCC;\r
}\r
- int32_t weekday = (++curTime.tm_wday) % 7;\r
- return SetAlarm(ALARM_B, weekday, 0, 0);\r
-}\r
\r
-int32_t AlarmGetCurrentTimeInfo(struct tm *timeInfo)\r
-{\r
- if (timeInfo == nullptr) {\r
- return ERRCODE_FAIL;\r
+ int32_t AlarmTimerInit(void)\r
+ {\r
+ int32_t timerStatus;\r
+ int32_t ret;\r
+\r
+ set_sleep_and_wake_time();\r
+ set_sedentary_data();\r
+ set_drinkreminder_data();\r
+ get_sleep_time_notify();\r
+\r
+ g_alarmCtrA.state = ALARM_STATUS_UNUSED;\r
+ g_alarmCtrB.state = ALARM_STATUS_UNUSED;\r
+ g_AlarmHandle = osTimerNew(AlarmScan, osTimerPeriodic, nullptr, nullptr);\r
+ if (g_AlarmHandle == nullptr)\r
+ {\r
+ return ERRCODE_FAIL;\r
+ }\r
+ timerStatus = osTimerStart(g_AlarmHandle, ALARM_INTERVAL_MS);\r
+ if (timerStatus != osOK)\r
+ {\r
+ return ERRCODE_FAIL;\r
+ }\r
+ ret = AlarmCreate(&g_alarmCtrA, AlarmCallBackProcA);\r
+ if (ret != ERRCODE_SUCC)\r
+ {\r
+ return ERRCODE_FAIL;\r
+ }\r
+ ret = AlarmCreate(&g_alarmCtrB, AlarmCallBackProcB);\r
+ if (ret != ERRCODE_SUCC)\r
+ {\r
+ return ERRCODE_FAIL;\r
+ }\r
+\r
+ return ERRCODE_SUCC;\r
+ }\r
+\r
+ int32_t SetAlarm(AlarmType type, uint8_t week, uint8_t hour, uint8_t minute)\r
+ {\r
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "SetAlarm %d %d %d %d", type, week, hour, minute);\r
+ if (type == ALARM_A)\r
+ {\r
+ g_alarmCtrA.state = ALARM_STATUS_RUNNING;\r
+ g_alarmCtrA.info.hour = hour;\r
+ g_alarmCtrA.info.minute = minute;\r
+ }\r
+ else if (type == ALARM_B)\r
+ {\r
+ g_alarmCtrB.state = ALARM_STATUS_RUNNING;\r
+ g_alarmCtrB.info.week = week;\r
+ g_alarmCtrB.info.hour = hour;\r
+ g_alarmCtrB.info.minute = minute;\r
+ g_alarmCtrB.info.second = 5;\r
+ }\r
+ else\r
+ {\r
+ return ERRCODE_FAIL;\r
+ }\r
+ return ERRCODE_SUCC;\r
+ }\r
+\r
+ int32_t SetZeroAlarm(void)\r
+ {\r
+ struct tm curTime;\r
+ int32_t ret = AlarmGetCurrentTimeInfo(&curTime);\r
+ if (ret != ERRCODE_SUCC)\r
+ {\r
+ return ERRCODE_FAIL;\r
+ }\r
+ int32_t weekday = (++curTime.tm_wday) % 7;\r
+ return SetAlarm(ALARM_B, weekday, 0, 0);\r
+ }\r
+\r
+ int32_t AlarmGetCurrentTimeInfo(struct tm *timeInfo)\r
+ {\r
+ if (timeInfo == nullptr)\r
+ {\r
+ return ERRCODE_FAIL;\r
+ }\r
+ time_t sec = time(nullptr);\r
+ localtime_r(&sec, timeInfo);\r
+ return ERRCODE_SUCC;\r
}\r
- time_t sec = time(nullptr);\r
- localtime_r(&sec, timeInfo);\r
- return ERRCODE_SUCC;\r
-}\r
\r
#ifdef __cplusplus\r
}\r
}
void BloodDetectionPresenter::NavigateBack()
{
- NativeAbility::GetInstance().Back(TransitionType::TRANSITION_BACK_TO_HEXAGONS);
+ NativeAbility::GetInstance().Back();
}
bool BloodDetectionPresenter::OnDrag(UIView &view, const DragEvent &event)
if (event.GetDragDirection() == DragEvent::DIRECTION_LEFT_TO_RIGHT)
{
// NativeAbility::GetInstance().ChangeSlice(VIEW_APPLIST);
- NativeAbility::GetInstance().Back(TransitionType::TRANSITION_BACK_TO_HEXAGONS);
+ NativeAbility::GetInstance().Back();
return true;
}
return false;
keyState == 1 && uapi_get_screen_state() == 0)
{
// NativeAbility::GetInstance().ChangeSlice(VIEW_APPLIST);
- NativeAbility::GetInstance().Back(TransitionType::TRANSITION_BACK_TO_HEXAGONS);
+ NativeAbility::GetInstance().Back();
}
return true;
}
UNUSED(view);
if (event.GetDragDirection() == DragEvent::DIRECTION_LEFT_TO_RIGHT)
{
- NativeAbility::GetInstance().Back(TransitionType::TRANSITION_BACK_TO_HEXAGONS);
+ NativeAbility::GetInstance().Back();
}
return true;
}
// 如果是power键,且是亮屏状态,按键释放就返回上一级
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);
+ NativeAbility::GetInstance().Back();
}
return true;
}
if (event.GetDragDirection() == DragEvent::DIRECTION_LEFT_TO_RIGHT)
{
if(event.GetPreLastPoint().x-event.GetStartPoint().x>150)
- NativeAbility::GetInstance().Back(TransitionType::TRANSITION_BACK_TO_HEXAGONS);
+ NativeAbility::GetInstance().Back();
}
return true;
}
if (keyID == static_cast<uint16_t>(ZliteKeyCode::ZLITE_KEY_POWER) && keyState == 1 && uapi_get_screen_state() == 0)
{
uint16_t preSlice = NativeAbility::GetInstance().GetPreSliceId();
- NativeAbility::GetInstance().Back(TransitionType::TRANSITION_BACK_TO_HEXAGONS);
+ NativeAbility::GetInstance().Back();
}
return true;
if (event.GetDragDirection() == DragEvent::DIRECTION_LEFT_TO_RIGHT)
{
if (event.GetPreLastPoint().x - event.GetStartPoint().x > 100)
- NativeAbility::GetInstance().Back(TransitionType::TRANSITION_BACK_TO_HEXAGONS);
+ NativeAbility::GetInstance().Back();
}
if (event.GetDragDirection() == DragEvent::DIRECTION_BOTTOM_TO_TOP)
{
if (keyID == static_cast<uint16_t>(ZliteKeyCode::ZLITE_KEY_POWER) && keyState == 1 && uapi_get_screen_state() == 0)
{
uint16_t preSlice = NativeAbility::GetInstance().GetPreSliceId();
- NativeAbility::GetInstance().Back(TransitionType::TRANSITION_BACK_TO_HEXAGONS);
+ NativeAbility::GetInstance().Back();
}
return true;
}
{\r
if (strcmp(view.GetViewId(), MAINCOUNTDOWNVIEW) == 0)\r
{\r
- NativeAbility::GetInstance().Back(TransitionType::TRANSITION_BACK_TO_HEXAGONS);\r
+ NativeAbility::GetInstance().Back();\r
}\r
else if (strcmp(view.GetViewId(), COUNTDOWN_TIMECONFIG_VIEW) == 0)\r
{\r
// 如果是power键就返回上一级\r
if (keyID == static_cast<uint16_t>(ZliteKeyCode::ZLITE_KEY_POWER) && keyState == 1 && uapi_get_screen_state() == 0)\r
{\r
- NativeAbility::GetInstance().Back(TransitionType::TRANSITION_BACK_TO_HEXAGONS);\r
+ NativeAbility::GetInstance().Back();\r
}\r
return true;\r
}\r
}\r
else if (strcmp(view.GetViewId(), DISPLAY_BRIGHTNESS_VIEW) == 0)\r
{\r
- NativeAbility::GetInstance().Back(TransitionType::TRANSITION_BACK_TO_HEXAGONS);\r
+ NativeAbility::GetInstance().Back();\r
}\r
DisplayBrightnessPresenter::X_DRAG_FLAG = false;\r
}\r
UNUSED(event);
if (event.GetDragDirection() == DragEvent::DIRECTION_LEFT_TO_RIGHT && DnotDisturbPresenter::X_DRAG_FLAG)
{
- NativeAbility::GetInstance().Back(TransitionType::TRANSITION_BACK_TO_HEXAGONS);
+ NativeAbility::GetInstance().Back();
DnotDisturbPresenter::X_DRAG_FLAG = false;
}
return true;
}
else if (&view == p_DnotDisturbView->GetButtonOff())
{
- // NativeAbility::GetInstance().Back(TransitionType::TRANSITION_BACK_TO_HEXAGONS);
+ // NativeAbility::GetInstance().Back();
}
- NativeAbility::GetInstance().Back(TransitionType::TRANSITION_BACK_TO_HEXAGONS);
+ NativeAbility::GetInstance().Back();
return true;
}
// 如果是power键就返回上一级
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);
+ NativeAbility::GetInstance().Back();
}
return true;
}
UNUSED(event);
if (strcmp(view.GetViewId(), FINDPHONE_LABELBUTTON) == 0)
{
- NativeAbility::GetInstance().Back(TransitionType::TRANSITION_BACK_TO_HEXAGONS);
+ NativeAbility::GetInstance().Back();
}
return true;
}
UNUSED(event);
if (event.GetDragDirection() == DragEvent::DIRECTION_LEFT_TO_RIGHT && FindPhonePresenter::X_DRAG_FLAG)
{
- NativeAbility::GetInstance().Back(TransitionType::TRANSITION_BACK_TO_HEXAGONS);
+ NativeAbility::GetInstance().Back();
FindPhonePresenter::X_DRAG_FLAG = false;
}
return true;
// 如果是power键,且是亮屏状态,按键释放就返回上一级
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);
+ NativeAbility::GetInstance().Back();
}
return true;
}
// 如果是power键就返回上一级
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);
+ NativeAbility::GetInstance().Back();
}
return true;
}
UNUSED(view);
if (event.GetDragDirection() == DragEvent::DIRECTION_LEFT_TO_RIGHT && MaingoalPresenter::X_DRAG_FLAG)
{
- NativeAbility::GetInstance().Back(TransitionType::TRANSITION_BACK_TO_HEXAGONS);
+ NativeAbility::GetInstance().Back();
X_DRAG_FLAG = false;
}
return true;
// 如果是power键就返回上一级
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);
+ NativeAbility::GetInstance().Back();
}
return true;
}
}
void HeartChartPresenter::NavigateBack()
{
- NativeAbility::GetInstance().Back(TransitionType::TRANSITION_BACK_TO_HEXAGONS);
+ NativeAbility::GetInstance().Back();
}
void HeartChartPresenter::OnStart()
{
}
void HeartDetectionPresenter::NavigateBack()
{
- NativeAbility::GetInstance().Back(TransitionType::TRANSITION_BACK_TO_HEXAGONS);
+ NativeAbility::GetInstance().Back();
}
void HeartDetectionPresenter::OnStart()
{
if (event.GetDragDirection() == DragEvent::DIRECTION_LEFT_TO_RIGHT)
{
// NativeAbility::GetInstance().ChangeSlice(VIEW_APPLIST);
- NativeAbility::GetInstance().Back(TransitionType::TRANSITION_BACK_TO_HEXAGONS);
+ NativeAbility::GetInstance().Back();
return true;
}
return false;
if (keyID == static_cast<uint16_t>(ZliteKeyCode::ZLITE_KEY_POWER) && keyState == 1 && uapi_get_screen_state() == 0)
{
// NativeAbility::GetInstance().ChangeSlice(VIEW_APPLIST);
- NativeAbility::GetInstance().Back(TransitionType::TRANSITION_BACK_TO_HEXAGONS);
+ NativeAbility::GetInstance().Back();
}
return true;
}
if (event.GetDragDirection() == DragEvent::DIRECTION_LEFT_TO_RIGHT && LanguageSwitchPresenter::X_DRAG_FLAG)
{
#ifdef FD230_650
- NativeAbility::GetInstance().Back(TransitionType::TRANSITION_BACK_TO_HEXAGONS);
+ NativeAbility::GetInstance().Back();
#endif
LanguageSwitchPresenter::X_DRAG_FLAG = false;
}
if (event.GetDragDirection() == DragEvent::DIRECTION_LEFT_TO_RIGHT &&
(event.GetDeltaX() > 20) && (event.GetDeltaX() > (2 * MATH_ABS(event.GetDeltaY()))))
{
- NativeAbility::GetInstance().Back(TransitionType::TRANSITION_BACK_TO_HEXAGONS);
+ NativeAbility::GetInstance().Back();
}
if(event.GetDragDirection() == DragEvent::DIRECTION_TOP_TO_BOTTOM)
{
{
// 执行全部删除操作
model->ClearAllMessages();
- NativeAbility::GetInstance().Back(TransitionType::TRANSITION_BACK_TO_HEXAGONS);
+ NativeAbility::GetInstance().Back();
return true;
}
// 如果是power键,且是亮屏状态,按键释放就返回上一级
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);
+ NativeAbility::GetInstance().Back();
}
return true;
}
if (keyID == static_cast<uint16_t>(ZliteKeyCode::ZLITE_KEY_POWER) && keyState == 1 && uapi_get_screen_state() == 0)
{
// NativeAbility::GetInstance().ChangeSlice(VIEW_APPLIST);
- NativeAbility::GetInstance().Back(TransitionType::TRANSITION_BACK_TO_HEXAGONS);
+ NativeAbility::GetInstance().Back();
}
return true;
}
WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "MusicPlayerPresenter::OnDragEnd");
if (event.GetDragDirection() == DragEvent::DIRECTION_LEFT_TO_RIGHT && MusicPlayerPresenter::X_DRAG_FLAG)
{
- NativeAbility::GetInstance().Back(TransitionType::TRANSITION_BACK_TO_HEXAGONS);
+ NativeAbility::GetInstance().Back();
MusicPlayerPresenter::X_DRAG_FLAG = false;
}
return true;
// 如果是power键,且是亮屏状态,按键释放就返回上一级
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);
+ NativeAbility::GetInstance().Back();
}
return true;
}
else
{
//if(event.GetPreLastPoint().x-event.GetStartPoint().x>200)
- NativeAbility::GetInstance().Back(TransitionType::TRANSITION_BACK_TO_HEXAGONS);
+ NativeAbility::GetInstance().Back();
//NativeAbility::GetInstance().EnterSlice(VIEW_APPLIST);
TelephonyInitInterface::X_DRAG_FLAG = false;
}
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);
+ NativeAbility::GetInstance().Back();
}
return true;
}
switch (currentView)\r
{\r
case RECORDINGVIEW:\r
- NativeAbility::GetInstance().Back(TransitionType::TRANSITION_BACK_TO_HEXAGONS);\r
+ NativeAbility::GetInstance().Back();\r
break;\r
case RECORDINGPLAYERVIEW:\r
p_RecordingView->ChangeView(RECORDINGPLAYERVIEW, RECORDINGLISTVIEW); // 录音播放视图(subView)->录音列表视图(subView)\r
// 如果是power键就返回上一级\r
if (keyID == static_cast<uint16_t>(ZliteKeyCode::ZLITE_KEY_POWER) && keyState == 1 && uapi_get_screen_state() == 0)\r
{\r
- NativeAbility::GetInstance().Back(TransitionType::TRANSITION_BACK_TO_HEXAGONS);\r
+ NativeAbility::GetInstance().Back();\r
}\r
return true;\r
}\r
std::string viewId = view.GetViewId();
if (viewId == RTCLABELBUTTON)
{
- NativeAbility::GetInstance().Back(TransitionType::TRANSITION_BACK_TO_HEXAGONS);
+ NativeAbility::GetInstance().Back();
return true;
}
std::map<std::string, int> viewMap = {
}
else
{
- NativeAbility::GetInstance().Back(TransitionType::TRANSITION_BACK_TO_HEXAGONS);
+ NativeAbility::GetInstance().Back();
}
RespiratoryTrainingPresenter::X_DRAG_FLAG = false;
}
// 如果是power键,且是亮屏状态,按键释放就返回上一级
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);
+ NativeAbility::GetInstance().Back();
}
return true;
}
return true;\r
}\r
\r
- NativeAbility::GetInstance().Back(TransitionType::TRANSITION_BACK_TO_HEXAGONS);\r
+ NativeAbility::GetInstance().Back();\r
SchedulePresenter::X_DRAG_FLAG = false;\r
}\r
return true;\r
// 如果是power键,且是亮屏状态,按键释放就返回上一级\r
if (keyID == static_cast<uint16_t>(ZliteKeyCode::ZLITE_KEY_POWER) && keyState == 1 && uapi_get_screen_state() == 0)\r
{\r
- NativeAbility::GetInstance().Back(TransitionType::TRANSITION_BACK_TO_HEXAGONS);\r
+ NativeAbility::GetInstance().Back();\r
}\r
return true;\r
}\r
UNUSED(view);
if (event.GetDragDirection() == DragEvent::DIRECTION_LEFT_TO_RIGHT && SleepControlPresenter::X_DRAG_FLAG)
{
- NativeAbility::GetInstance().Back(TransitionType::TRANSITION_BACK_TO_HEXAGONS);
+ NativeAbility::GetInstance().Back();
}
return true;
}
// 如果是power键就返回上一级
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);
+ NativeAbility::GetInstance().Back();
}
return true;
}
UNUSED(event);
if (event.GetDragDirection() == DragEvent::DIRECTION_LEFT_TO_RIGHT && SleepModePresenter::X_DRAG_FLAG)
{
- NativeAbility::GetInstance().Back(TransitionType::TRANSITION_BACK_TO_HEXAGONS);
+ NativeAbility::GetInstance().Back();
SleepModePresenter::X_DRAG_FLAG = false;
}
return true;
SleepModeModel_->SetSleepModeEnabled();
}
- NativeAbility::GetInstance().Back(TransitionType::TRANSITION_BACK_TO_HEXAGONS);
+ NativeAbility::GetInstance().Back();
return true;
}
// 如果是power键就返回上一级
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);
+ NativeAbility::GetInstance().Back();
}
return true;
}
}\r
else\r
{\r
- NativeAbility::GetInstance().Back(TransitionType::TRANSITION_BACK_TO_HEXAGONS);\r
+ NativeAbility::GetInstance().Back();\r
}\r
SoundAndVibrationPresenter::X_DRAG_FLAG = false;\r
}\r
// 如果是power键,且是亮屏状态,按键释放就返回上一级\r
if (keyID == static_cast<uint16_t>(ZliteKeyCode::ZLITE_KEY_POWER) && keyState == 1 && uapi_get_screen_state() == 0)\r
{\r
- NativeAbility::GetInstance().Back(TransitionType::TRANSITION_BACK_TO_HEXAGONS);\r
+ NativeAbility::GetInstance().Back();\r
}\r
return true;\r
}\r
{\r
if (&view == view_->GetScrollView(MAIN_STOPWATCH))\r
{\r
- NativeAbility::GetInstance().Back(TransitionType::TRANSITION_BACK_TO_HEXAGONS);\r
+ NativeAbility::GetInstance().Back();\r
}\r
else if (&view == view_->GetScrollView(STOPWATCH_RECORD_CYCLE_TO_LIMIT))\r
{\r
// 如果是power键就返回上一级\r
if (keyID == static_cast<uint16_t>(ZliteKeyCode::ZLITE_KEY_POWER) && keyState == 1 && uapi_get_screen_state() == 0)\r
{\r
- NativeAbility::GetInstance().Back(TransitionType::TRANSITION_BACK_TO_HEXAGONS);\r
+ NativeAbility::GetInstance().Back();\r
}\r
return false;\r
}\r
{
// 点亮屏幕
uapi_set_screen_on_api();
- NativeAbility::GetInstance().Back(TransitionType::TRANSITION_BACK_TO_HEXAGONS);
+ NativeAbility::GetInstance().Back();
#ifdef SUPPORT_BLE_SERVICE
cameraSend(3);
#endif
(event.GetDeltaX() > 20) && (event.GetDeltaX() > (2 * MATH_ABS(event.GetDeltaY()))))
{
- NativeAbility::GetInstance().Back(TransitionType::TRANSITION_BACK_TO_HEXAGONS);
+ NativeAbility::GetInstance().Back();
/*如果是拍照界面需要发送拍照结束的消息*/
if (TakephotosModel::GetInstance()->GetPopStaust() == PopupPhoto::TakePopup)
// 返回按键
if (strcmp(view.GetViewId(), BUTTONGO) == 0)
{
- NativeAbility::GetInstance().Back(TransitionType::TRANSITION_BACK_TO_HEXAGONS);
+ NativeAbility::GetInstance().Back();
return true;
}
if (strcmp(view.GetViewId(), BUTTONTAKE) == 0)
// 如果是power键,且是亮屏状态,按键释放就返回上一级
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);
+ NativeAbility::GetInstance().Back();
/*如果是拍照界面需要发送拍照结束的消息*/
if (TakephotosModel::GetInstance()->GetPopStaust() == PopupPhoto::TakePopup)
{
std::string viewId = labelButtonExt->GetViewId();
if (viewId == THEMESTYLEVIEWEXIT)
{
- NativeAbility::GetInstance().Back(TransitionType::TRANSITION_BACK_TO_HEXAGONS);
+ NativeAbility::GetInstance().Back();
return true;
}
uint16_t preSlice = NativeAbility::GetInstance().GetPreSliceId();
if (preSlice == VIEW_APPLIST)
{
- NativeAbility::GetInstance().Back(TransitionType::TRANSITION_BACK_TO_HEXAGONS);
+ NativeAbility::GetInstance().Back();
}
else
{
WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "RespiratoryTrainingPresenter::OnDragEnd");
if (event.GetDragDirection() == DragEvent::DIRECTION_LEFT_TO_RIGHT && ThemeStylePresenter::X_DRAG_FLAG)
{
- NativeAbility::GetInstance().Back(TransitionType::TRANSITION_BACK_TO_HEXAGONS);
+ NativeAbility::GetInstance().Back();
ThemeStylePresenter::X_DRAG_FLAG = false;
}
return true;
// 如果是power键就返回上一级
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);
+ NativeAbility::GetInstance().Back();
}
return true;
}
3.[更多]->[具体训练项]进入\r
4.[设置训练目标]进入 {不返回}\r
*/\r
- NativeAbility::GetInstance().Back(TransitionType::TRANSITION_BACK_TO_HEXAGONS);\r
+ NativeAbility::GetInstance().Back();\r
}\r
bool TraingNomalPresenter::OnDrag(UIView &view, const DragEvent &event)\r
{\r
}\r
else\r
{\r
- NativeAbility::GetInstance().Back(TransitionType::TRANSITION_BACK_TO_HEXAGONS);\r
+ NativeAbility::GetInstance().Back();\r
}\r
}\r
bool TraingMorePresenter::OnDrag(UIView &view, const DragEvent &event)\r
}
else
{
- NativeAbility::GetInstance().Back(TransitionType::TRANSITION_BACK_TO_HEXAGONS);
+ NativeAbility::GetInstance().Back();
}
}
bool TraingRecordPresenter::OnDrag(UIView &view, const DragEvent &event)
UNUSED(view);\r
if (event.GetDragDirection() == DragEvent::DIRECTION_LEFT_TO_RIGHT && MainWeatherPresenter::X_DRAG_FLAG)\r
{\r
- NativeAbility::GetInstance().Back(TransitionType::TRANSITION_BACK_TO_HEXAGONS);\r
+ NativeAbility::GetInstance().Back();\r
X_DRAG_FLAG = false;\r
}\r
return true;\r
// 如果是power键就返回上一级\r
if (keyID == static_cast<uint16_t>(ZliteKeyCode::ZLITE_KEY_POWER) && keyState == 1 && uapi_get_screen_state() == 0)\r
{\r
- NativeAbility::GetInstance().Back(TransitionType::TRANSITION_BACK_TO_HEXAGONS);\r
+ NativeAbility::GetInstance().Back();\r
}\r
return true;\r
}\r
#include "custom_utils.h"
#include "ui_serviceC.h"
+#include "alarm/include/AlarmClockModelC.h"
#ifdef FD230_650
#include "BluetoothModelC.h"
#include "PhoneServiceC.h"
#include "safemodemanager/include/SafeModeManagerModelC.h"
#include "set_dial/include/SetDialModelC.h"
-#include "alarmclocktimerconfig/include/AlarmClockTimerConfig.h"
+
#else
// void HandleUpdatelcdMode(int f){}
// void set_ota_upgrade(void){}
-void custom_timer_callback(void){}
+// void custom_timer_callback(void){}
// void Check_ble_adv_status(void){}
// void check_dial_space(void){}