DEFAULT_APPLICATION_NAME=brandy-native-js
DEFAULT_TARGET_PACK_NAME_USER=pack_brandy_native_js_user
DEFAULT_APPLICATION_NAME_USER=brandy-native-js-user
-DEFAULT_CUSTOM_FW_VERSION=1.1.35
+DEFAULT_CUSTOM_FW_VERSION=1.1.36
TARGET_PACK_NAME=$DEFAULT_TARGET_PACK_NAME
APPLICATION_NAME=$DEFAULT_APPLICATION_NAME
# socket通信(UDP)模块
def __Socket_Thread(self):
- data = b""
while True:
try:
print("recv====")
data=self.__sock.recv(1024)
print("data:{}".format(data))
+ if data:
+ value = self.__unpack_tlv_format(data.decode())
+ if value != -1:
+ print('mode: {0}, recv {1} bytes, Data: {2}'.format (value[0],len(data), value[2]))
+ if value[1] == 'FF':
+ self.btmcu_cmd_handler(value[0],value[2])
+ else:
+ # self.__value = value
+ # self.__queue.put('1')
+ self.btmcu_cmd_handler(value[0],value[2])
+ print("End else Thread")
+ else:
+ print("data error!!")
except Exception as recverr:
print("recverr:{}\r\n".format(recverr))
if "110" in str(recverr):
utime.sleep(1)
self.__sock = self.__socket_reinit()
- if data:
- value = self.__unpack_tlv_format(data.decode())
- if value != -1:
- print('mode: {0}, recv {1} bytes, Data: {2}'.format (value[0],len(data), value[2]))
- if value[1] == 'FF':
- self.btmcu_cmd_handler(value[0],value[2])
- else:
- # self.__value = value
- # self.__queue.put('1')
- self.btmcu_cmd_handler(value[0],value[2])
- print("End else Thread")
- else:
- print("data error!!")
+
print("End Socket Thread")
import request
import ujson
BLOCK_SIZE = 16
+NEED_SAVE_CONFIG_FILE = 0 #是否需要保存上报次数 异常重试次数 时间戳到配置文件 0不保存 1保存
#中国移动入库
class chinamobile:
def __init__(self):
self.reportTime = 1440#最大上报频率 自注册+心跳上报的频率次数不能大于最大上报频率次数
self.reportNum = 8 #最大上报次数
+
self.reportTime_Sec = 0 #保存本地 保存时间戳下一次开机使用
self.report_Num_old = 0#保存本地
self.retryNum_old = 0#保存本地
#写文件信息
def write_config_msg_file(self,msg):
+
print("write_config_msg_file msg:{}\r\n".format(msg))
with open("/usr/china_mobie_config.json",'w+',encoding="utf-8") as fd:
ujson.dump(msg,fd)
#读文件信息
def read_config_msg_file(self):
-
IFEXIST = ql_fs.path_exists("/usr/china_mobie_config.json") #不存在
if IFEXIST == True:
with open("/usr/china_mobie_config.json","r",encoding='utf-8') as fd:
MAC = self.mac_data
# base64_MAC = sha256_encode(key,MAC)
- RAM = "35MB"
+ RAM = "32MB"
# base64_RAM = sha256_encode(key,RAM)
ROM = "144MB"
# base64_ROM = sha256_encode(key,ROM)
# self.reportTime_Sec = 0 #保存本地 保存时间戳下一次开机使用
# self.report_Num_old = 0#保存本地
# self.retryNum_old = 3#保存本地
-
- if "reportTime_Sec" in self.config_data:
- self.reportTime_Sec = int(self.config_data["reportTime_Sec"])
+ if NEED_SAVE_CONFIG_FILE == 1:
+ if "reportTime_Sec" in self.config_data:
+ self.reportTime_Sec = int(self.config_data["reportTime_Sec"])
if "report_Num_old" in self.config_data:
self.report_Num_old = int(self.config_data["report_Num_old"])
if "retryNum_old" in self.config_data:
def retryTimerCb(self,*argc):#异常重试机制定时器回调
#保存本地
self.retryNum_old+=1 #1 self.reportNum = 1
- self.config_data["retryNum_old"] = self.retryNum_old
- self.write_config_msg_file(self.config_data)
+ if NEED_SAVE_CONFIG_FILE == 1:
+ self.config_data["retryNum_old"] = self.retryNum_old
+ self.write_config_msg_file(self.config_data)
print("retryTimerCb self.retryNum_old:{}\r\n".format(self.retryNum_old))
self.search_report_num_step()
pass
- def reportTimerIntervalError(self,*argc):
+ def reportTimerIntervalError(self):
self.retryNum_old = 0#保存
self.report_Num_old = 0#保存 定时清空数据
date_tmp = utime.localtime()
time_tmp = utime.mktime(date_tmp)#获取时间戳
self.reportTime_Sec = time_tmp+self.reportTime*60 #(记录时间+reportTime)标识旧的时间
- self.config_data["reportTime_Sec"] = self.reportTime_Sec
+ if NEED_SAVE_CONFIG_FILE == 1:
+ self.config_data["reportTime_Sec"] = self.reportTime_Sec
+
self.config_data["retryNum_old"] = self.retryNum_old
self.config_data["report_Num_old"] = self.report_Num_old
self.write_config_msg_file(self.config_data)
if self.retryNum_old >= self.retryNum and self.retryNum_old != 0:#self.retryNum_old > 10#结束HTPP下一个最大频率周期时间间隔流程
print("error_retryNum_step:self.retryNum_old >= self.retryNum\r\n")
- self.retpoertTimerC.start(self.reportTime*60*1000,0,self.reportTimerIntervalError)#重新开始 需要清空数据
+ self.reportTimerIntervalError()
+ # self.retpoertTimerC.start(self.reportTime*60*1000,0,self.reportTimerIntervalError)#重新开始 需要清空数据
else:
get_result = self.first_get_config_json()#发起向服务端请求配置信息下发到设备端
if get_result == 0:#获取失败或者没有网络 走异常重试机制
self.report_Num_old+=1#请求错误请求失败都要保存上报次数
self.config_data["report_Num_old"] = self.report_Num_old
self.write_config_msg_file(self.config_data)
- print("error_retryNum_step:self.retryTimer.start :{} {}\r\n".format(self.report_Num_old,self.reportNum))
+ print("error_retryNum_step:self.retryTimer.start :{} {} {}\r\n".format(self.retryInterval,self.report_Num_old,self.reportNum))
self.checkMaxReportNum()#检查上报最大次数
self.retryTimer.start(self.retryInterval*60*1000,0,self.retryTimerCb)
pass
#第一步触发自注册
if get_result == 2:#请求的配置文件和本地不一致重启
- self.report_Num_old+=1#请求错误请求失败都要保存上报次数
- self.config_data["report_Num_old"] = self.report_Num_old
self.retryNum_old = 0#保存本地 配置文件不同重启模组 清空异常重试的报错次数
- self.config_data["retryNum_old"] = self.retryNum_old
- self.write_config_msg_file(self.config_data)
+ # self.report_Num_old+=1#请求错误请求失败都要保存上报次数
+ # if NEED_SAVE_CONFIG_FILE == 1:
+ # self.config_data["report_Num_old"] = self.report_Num_old
+ # self.config_data["retryNum_old"] = self.retryNum_old
+ # self.write_config_msg_file(self.config_data)
+
self.china_mobile_init_param()#重新走流程读配置文件->判断上报总数->判断报错次数->获取配置文件
self.search_report_num_step()
return
+
self.report_Num_old+=1#请求错误请求失败都要保存上报次数
+
self.config_data["report_Num_old"] = self.report_Num_old
self.write_config_msg_file(self.config_data)
+ print("error_retryNum_step self.report_Num_old:{}\r\n".format(self.report_Num_old))
if self.checkMaxReportNum() == 1:#检查上报最大次数
self.search_report_num_step()#重新查询
return
#第二步触发心跳上报次数
if report_result == 1:#注册完成之后根据服务端下发的配置 间隔上报心跳
+ self.heartreportTimer.stop()
self.heartreportTimer.start(self.heartBeatTime*60*1000,1,self.heartreportTimerCb)
def heartreportTimerCb(self,*argc):
self.report_Num_old = 0#清空上报总次数 #保存本地
self.retryNum_old = 0#清空上报错误次数 #保存本地
self.reportTime_Sec = time_tmp+self.reportTime*60#记录当前时间+reportTime的时间用于下次错判断
- self.config_data["reportTime_Sec"] = self.reportTime_Sec
+ if NEED_SAVE_CONFIG_FILE == 1:
+ self.config_data["reportTime_Sec"] = self.reportTime_Sec
self.config_data["retryNum_old"] = self.retryNum_old
self.config_data["report_Num_old"] = self.report_Num_old
self.write_config_msg_file(self.config_data)
date_tmp = utime.localtime()
currentTime = utime.mktime(date_tmp)#获取时间戳
reportTime = self.reportTime_Sec
- print("check_current_time:time_tmp - self.reportTime_Sec:{} self.reportTime*60:{}".format(reportTime, currentTime,self.reportTime*60))
+ print("check_current_time:time_tmp - self.reportTime_Sec:{} currentTime:{} self.reportTime*60:{}".format(reportTime, currentTime,self.reportTime*60))
if currentTime >= reportTime:#当前时间是否大于上次记录的时间 currentTime >= reportTime 直接清空 不超过定时清空数据不再上报数据
#在规定时间内上报次数大于8次就要等下一个10分钟 或者1440分了开个定时器
print("currentTime >= reportTime:\r\n")
self.retpoertTimerClear()
else:#否则次数置零,记录一下(当前时间+reportTime)时间
- time_count = (self.reportTime_Sec - currentTime) #self.reportTime_Sec永远比time_tmp大
+ time_count = (reportTime - currentTime) #self.reportTime_Sec永远比time_tmp大
print("time_count:{}".format(time_count))
print("currentTime < reportTime:\r\n")
self.retpoertTimerC.start(time_count*1000,0,self.retpoertTimerCB)
self.report_Num_old = 0#清空上报总次数 #保存本地
self.retryNum_old = 0#清空上报错误次数 #保存本地
self.reportTime_Sec = time_tmp+self.reportTime*60#记录当前时间+reportTime的时间用于下次错判断
- self.config_data["reportTime_Sec"] = self.reportTime_Sec
+ if NEED_SAVE_CONFIG_FILE == 1:
+ self.config_data["reportTime_Sec"] = self.reportTime_Sec
self.config_data["retryNum_old"] = self.retryNum_old
self.config_data["report_Num_old"] = self.report_Num_old
self.write_config_msg_file(self.config_data)
date_tmp = utime.localtime()
time_tmp = utime.mktime(date_tmp)#获取时间戳
self.reportTime_Sec = time_tmp+self.reportTime*60 #(记录时间+reportTime)标识旧的时间
- self.config_data["reportTime_Sec"] = self.reportTime_Sec
- self.write_config_msg_file(self.config_data)
+ if NEED_SAVE_CONFIG_FILE == 1:
+ self.config_data["reportTime_Sec"] = self.reportTime_Sec
+ self.write_config_msg_file(self.config_data)
self.error_retryNum_step()#查询上报错误次数
def search_report_num_step_init(self):#查询上报总数步骤
time_tmp = utime.mktime(date_tmp)#获取时间戳
if self.reportTime_Sec == 0:
self.reportTime_Sec = time_tmp+self.reportTime*60 #(记录时间+reportTime)标识旧的时间
- self.config_data["reportTime_Sec"] = self.reportTime_Sec
- self.write_config_msg_file(self.config_data)
+ if NEED_SAVE_CONFIG_FILE == 1:
+ self.config_data["reportTime_Sec"] = self.reportTime_Sec
+ self.write_config_msg_file(self.config_data)
self.error_retryNum_step()#查询上报错误次数
if self.checkMaxRetryNum() == 1:
print("retryTimerCb timer22")#异常重试过多重新间隔reportTime注册流程 关闭所有的定时器
self.search_report_num_step()#重新查询
- # self.retpoertTimerC.start(self.reportTime*60*1000,0,self.reportTimerIntervalCb)#重新开始 需要清空数据
return 0
self.retryTimer.start(self.retryInterval*60*1000,0,self.retryTimerCb)
return 0
return 0
def heart_report_cb(self):#心跳上报信息
+
date_tmp = utime.localtime()
time_tmp = utime.mktime(date_tmp)#获取时间戳
self.report_Num_old+=1#保存本地
self.checkMaxReportNum()
if self.checkMaxRetryNum() == 1:#异常重试过多重新间隔reportTime注册流程
self.search_report_num_step()#重新查询
- # self.retpoertTimerC.start(self.reportTime*60*1000,0,self.reportTimerIntervalCb)#重新开始 需要清空数据
return
- self.retryTimer.start(self.retryInterval*60*1000,0,self.retryTimerCb)
+ self.retryTimer.start(self.retryInterval*60*1000,0,self.retryTimerCb)
return
if self.checkMaxReportNum() == 1:#上报次数大于8次
self.search_report_num_step()#重新查询
status = eventMesh.publish("get_factory_status")
if status == None:
status = 0
+ print("get_factory_status:{}\r\n".format(status))
if status == 0:#恢复出厂或者新的机器需要清空不必要的数据
if self.init_flag == 0:#只初始化一次
IFEXIST = ql_fs.path_exists("/usr/telecom_config.json") #不存在
self.config_data["reportTime"] = self.reportTime
self.config_data["reportNum"] = self.reportNum
# self.config_data["address"] = self.address
-
+ if NEED_SAVE_CONFIG_FILE == 1:
+ self.config_data["reportTime_Sec"] = self.reportTime_Sec
self.config_data["report_Num_old"] = self.report_Num_old
self.config_data["retryNum_old"] = self.retryNum_old
${ROOT_DIR}/open_source/openharmony/utils/native/lite/include
${ROOT_DIR}/open_source/openharmony/utils/native/lite/kv_store/innerkits
- # ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/schedule/include
+ ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/schedule/include
)
set(SOURCES
${CMAKE_CURRENT_SOURCE_DIR}/nativeui/main/src/MainModel.cpp
${CMAKE_CURRENT_SOURCE_DIR}/nativeui/main/src/MainPresenterSample.cpp
+ ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/main/src/dropdown/DropDownCardPage1.cpp
+ ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/main/src/dropdown/DropDownCardPage2.cpp
${CMAKE_CURRENT_SOURCE_DIR}/nativeui/main/src/ModelListenerSample.cpp
${CMAKE_CURRENT_SOURCE_DIR}/nativeui/main/src/PresenterTask.cpp
${CMAKE_CURRENT_SOURCE_DIR}/nativeui/main/src/HealthModel.cpp
${CMAKE_CURRENT_SOURCE_DIR}/nativeui/goal/src/goalhint.cpp
${CMAKE_CURRENT_SOURCE_DIR}/nativeui/goal/src/goalControlView.cpp
- # #schedule
- # ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/schedule/src/ScheduleView.cpp
- # ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/schedule/src/SchedulePresenter.cpp
- # ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/schedule/src/ScheduleModel.cpp
- # ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/schedule/src/ScheduleListAdapter.cpp
+ #schedule
+ ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/schedule/src/ScheduleView.cpp
+ ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/schedule/src/SchedulePresenter.cpp
+ ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/schedule/src/ScheduleModel.cpp
+ ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/schedule/src/ScheduleListAdapter.cpp
+ ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/schedule/src/ScheduleListItem.cpp
${CMAKE_CURRENT_SOURCE_DIR}/nativeui/calculator/src/CalculatorView.cpp
${CMAKE_CURRENT_SOURCE_DIR}/nativeui/calculator/src/CalculatorPresenter.cpp
void InitDialingMethodSlice(void);
/* -------------------------------------------------------------------------- */
void InitCalculatorSlice(void);
- // void InitScheduleSlice(void);
+ void InitScheduleSlice(void);
void InittestSlice(void);
private:
#include "traing/training_card/include/TraingCardPresenter.h"
#include "traing/training_card/include/TraingCardView.h"
/* -------------------------------------------------------------------------- */
-// #include "schedule/include/SchedulePresenter.h"
+#include "schedule/include/SchedulePresenter.h"
#ifdef SUPPORT_ALIPAY_SEC
#include "AlipayMainView.h"
/* -------------------------------------------------------------------------- */
/*智能助手*/
{VIEW_OFFLINEVOICE, &NativeLauncher::InitOfflineVoice},
- // {VIEW_SCHEDULE, &NativeLauncher::InitScheduleSlice},
+ {VIEW_SCHEDULE, &NativeLauncher::InitScheduleSlice},
#ifdef SUPPORT_ALIPAY_SEC
{VIEW_MAIN_ALIPAY, &NativeLauncher::InitMainAlipaySlice},
NativeAbility::GetInstance().AddSliceProxy(VIEW_SET_DIAL_STYLE, setDialStyleView);
}
- // void NativeLauncher::InitScheduleSlice(void)
- // {
- // WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "NativeLauncher::InitScheduleSlice");
- // SliceProxy * t_View = new AbilitySliceProxy<ScheduleView, SchedulePresenter>;
- // if (nullptr == t_View)
- // {
- // WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "View is nullptr");
- // return;
- // }
- // NativeAbility::GetInstance().AddSliceProxy(VIEW_SCHEDULE, t_View);
- // }
+ void NativeLauncher::InitScheduleSlice(void)
+ {
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "NativeLauncher::InitScheduleSlice");
+ SliceProxy * t_View = new AbilitySliceProxy<ScheduleView, SchedulePresenter>;
+ if (nullptr == t_View)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "View is nullptr");
+ return;
+ }
+ NativeAbility::GetInstance().AddSliceProxy(VIEW_SCHEDULE, t_View);
+ }
}
/* -------------------------------------------------------------------------- */
// {VIEW_MUSIC_PLAYER, PNG_APPLIST_MUSIC_IMAGE, PNG_APPLIST_MUSIC_IMAGE, PNG_APPLIST_DEFAULT_IMG, "音乐播放器", STR_MUSIC, nullptr},
{VIEW_OFFLINEVOICE, PNG_APPLIST_VOCASSIST_IMAGE, PNG_APPLIST_VOCASSIST_IMAGE, PNG_APPLIST_DEFAULT_IMG, "语音助手", STR_VOICE_ASSISTANT, nullptr},
- // {VIEW_SCHEDULE, PNG_APPLIST_SCHEDULE_IMAGE, PNG_APPLIST_SCHEDULE_IMAGE, PNG_APPLIST_DEFAULT_IMG, "schedule", STR_SCHEDULE, nullptr},
+ {VIEW_SCHEDULE, PNG_APPLIST_SCHEDULE_IMAGE, PNG_APPLIST_SCHEDULE_IMAGE, PNG_APPLIST_DEFAULT_IMG, "schedule", STR_SCHEDULE, nullptr},
{VIEW_SETTING, PNG_APPLIST_SETTING_IMAGE, PNG_APPLIST_SETTING_IMAGE, PNG_APPLIST_DEFAULT_IMG, "设置", STR_SETTINGS, nullptr},
#if 0
/*屏蔽Slice*/
void CodedLockPresenter::OnStop(void)
{
- /*关锁*/
- uapi_dev_runtime_set_lock_status(0);
- /*设置表盘状态*/
- MainModel::GetInstance().setDialState(DialState::LOCK, false);
Presenter<CodedLockView>::OnStop();
}
void CodedLockPresenter::JudgeMatch()
/*每次点击完成判断 是否 完成密码匹配*/
if (CodedLockModel::GetInstance()->IsLockState())
{
- NativeAbility::GetInstance().ChangeSlice(VIEW_MAIN);
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "回到主界面");
+ /*关锁*/
+ uapi_dev_runtime_set_lock_status(0);
+ NativeAbility::GetInstance().ChangeSlice(VIEW_MAIN);
+ /*设置表盘状态*/
+ MainModel::GetInstance().setDialState(DialState::LOCK, false);
}
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "JudgeMatch is Ok");
}
point_three->SetStyle(STYLE_BACKGROUND_COLOR, activeColor);
point_four->SetStyle(STYLE_BACKGROUND_COLOR, activeColor);
point_five->SetStyle(STYLE_BACKGROUND_COLOR, activeColor);
+ break;
case 6:
point_one->SetStyle(STYLE_BACKGROUND_COLOR, activeColor);
point_two->SetStyle(STYLE_BACKGROUND_COLOR, activeColor);
-/***
- * @Date: 2024-08-12 10:11:33
- * @LastEditors: Caisking 3449750381@qq.com
- * @LastEditTime: 2024-08-20 14:05:51
- * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/dnotdisturb/src/DnotDisturbModel.cpp
- */
-/***
- * @Date: 2024-08-12 10:11:33
- * @LastEditors: Caisking 3449750381@qq.com
- * @LastEditTime: 2024-08-20 12:09:12
+/*
+ * @Author: luozheng 1732036298@qq.com
+ * @Date: 2024-08-20 19:16:00
+ * @LastEditors: luozheng 1732036298@qq.com
+ * @LastEditTime: 2024-08-22 18:57:46
* @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/dnotdisturb/src/DnotDisturbModel.cpp
*/
#include "dnotdisturb/include/DnotDisturbModel.h"
-#include "main/include/PullUpDownView.h"
#include "main/include/MainViewSample.h"
#include "MainModel.h"
#include "ConfigModel.h"
#include "../../../../../../../drivers/peripheral/utils/custom_runtime.h"
+#include "main/include/dropdown/DropDownCardPage1.h"
namespace OHOS
{
if (PullUpDownView::GetInstance() != nullptr)
{
/*更新主界面下拉界面配置*/
+ if(DropDownCardPage1::GetInstance() && DropDownCardPage1::GetInstance()->GetDropDownCardPage1_ToggleButton(DropDownCardPage1::toggleButton_DNOTDISTURB))
+ {
+ DropDownCardPage1::GetInstance()->GetDropDownCardPage1_ToggleButton(DropDownCardPage1::toggleButton_DNOTDISTURB)->SetState(GetDoNotDisturbModeEnabled());
+ }
PullUpDownView::GetInstance()->UpdateDnotDisturbStatus(GetDoNotDisturbModeEnabled());
/*更新主界面配置*/
MainModel::GetInstance().setDialState(DialState::DO_NOT_DISTURB, GetDoNotDisturbModeEnabled());
* @Author: luozheng 1732036298@qq.com
* @Date: 2024-04-17 15:26:49
* @LastEditors: luozheng 1732036298@qq.com
- * @LastEditTime: 2024-07-16 14:55:16
+ * @LastEditTime: 2024-08-22 16:29:35
* @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/main/include/PullUpDownView.h
*/
-#if 1
#ifndef PULL_UP_DOWN_VIEW_H
#define PULL_UP_DOWN_VIEW_H
#include "components/ui_label_button.h"
#include "components/ui_box_progress.h"
#include "components/ui_image_animator.h"
+#include "components/ui_swipe_view.h"
#include "battery_hal.h"
#include "main/include/ConnectedStatusView.h"
+#include "main/include/dropdown/DropDownCardPage1.h"
+#include "main/include/dropdown/DropDownCardPage2.h"
extern uint8_t battery_get_voltage(float *voltage);
MAX_DROPDOWNVIEWID,
} DROPDOWNVIEWID;
- class PullUpDownView : public UICardPage
+ class PullUpDownView : public UICardPage, public UISwipeView::OnSwipeListener
{
public:
PullUpDownView();
static PullUpDownView *GetInstance(void);
void PreLoad(void) override;
void UnLoad(void) override;
- void UpdatePhoneStatus(int status);
- void UpdateEarPhoneStatus(int status);
- void UpdateBlueToothStatus(int status);
void UpdateDnotDisturbStatus(int status);
- void UpdateSignalStrengthStatusAndBatteryPosition();
bool ChangeDropDownView(int16_t thisView); // 切换到"下拉控制中心"视图
bool ChangeConnectedStatusView(int16_t thisView); // 切换到"连接状态"视图
bool ClickFunc(int16_t interface);
void ChangeView(int16_t hideView, int16_t showView);
ConnectedStatusView *GetConnectedStatusView(void);
- UILabel *GetTimeLabel();
- UILabel *GetDateLabel();
- UILabel *GetWeekLabel();
- UIBoxProgress *GetProgress();
-
- bool GetPhoneConnectedStatus(void);
- bool GetEarPhoneConnectedStatus(void);
- bool GetBlueToothConnectedStatus(void);
- struct ImageConfig
- {
- int16_t x;
- int16_t y;
- int16_t w;
- int16_t h;
- const char *viewid;
- const char *src;
- UIView::OnClickListener *clicklistener;
- };
-
private:
+ void OnSwipe(UISwipeView &view) override;
bool PullUpDownViewInit();
- bool InitBaseData(); // 初始化基础数据组件
- UIImageView *dropDownIconImageViweInit(ImageConfig &imageconfig);
- void createDropDownIconImageViwe(void);
- UIImageView *dropDownConnectedStatusImageViweInit(int16_t x, int16_t y, int16_t w, int16_t h);
- void createDropDownConnectedStatusImageViwe(void);
-
- bool InitSingalComponentsView();
- void ClearAllConnectedStatusComponentsView();
- void ClearAllSingalComponentsView();
void ClearAll();
-
- int GetSignalStrength(void);
- int CalculateSignalBars(int signalStrength);
- void UpdateSignalBarDisplay(int signalBars, bool state);
- void UpdateBatteryPosition(bool state);
- void updateSignalDisplay();
- void UpdateCat1NoSignalisplay(bool state);
- void UpdateCat14GDisplay(bool state);
- void UpdateCat1MobileDataDisplay(bool state);
-
- void PreLoadPullUpDownImageRes(void);
- void UnLoadPullUpDownImageRes(void);
-
- private:
- ConnectedStatusView *connectedStatusView{nullptr};
-
- private:
UIViewGroup *group[MAX_DROPDOWNVIEWID]{nullptr};
- UIImageView *dropSetting{nullptr}; // 设置
- UIImageView *dropBluetooth{nullptr}; // 蓝牙
- UIImageView *dropDnotDisturb{nullptr}; // 勿扰模式
- UIImageView *dropSavePower{nullptr}; // 省电
- UIImageView *drofindPhone{nullptr}; // 找手机
- UIImageView *dropLine{nullptr}; // 线
- UIButton *connectedStatusBackgroundButton{nullptr}; // 放置连接状态icon的背景按钮
- UIImageView *showPhoneConnectedStatus{nullptr}; // 显示手机连接状态
- UIImageView *showEarPhoneConnectedStatus{nullptr}; // 显示耳机连接状态
- UIImageView *showBluetoothConnectedStatus{nullptr}; // 显示蓝牙连接状态
- UILabel *showTimeLabel{nullptr}; // 显示时间
- UILabel *showDateLabel{nullptr}; // 显示日期
- UILabel *showWeekLabel{nullptr}; // 显示星期
- UIImageView *showSignalStrength[4]{nullptr}; // 信号强度
- UILabel *Singal_4{nullptr}; // 4G图标
- UIImageView *NoSignal{nullptr}; // 无信号
- UIImageView *MobileData{nullptr}; // 移动数据
-
- UIImageView *batteryimage = nullptr;
- UIBoxProgress *progress = nullptr;
-
+ ConnectedStatusView *connectedStatusView{nullptr};
bool viewiInitStatus{false};
- };
-}
-#endif
-
-#else
-/*
- * @Author: luozheng 1732036298@qq.com
- * @Date: 2024-04-17 15:26:49
- * @LastEditors: luozheng 1732036298@qq.com
- * @LastEditTime: 2024-06-28 14:30:04
- * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/main/include/PullUpDownView.h
- */
-/*
- * Copyright (c) CompanyNameMagicTag 2021-2021. All rights reserved.
- * Description: WeekStep
- * Author:
- * Create: 2021-09-11
- */
-
-#ifndef PULL_UP_DOWN_VIEW_H
-#define PULL_UP_DOWN_VIEW_H
-
-#include "graphic_types.h"
-#include "wearable_log.h"
-#include "components/ui_card_page.h"
-#include "components/ui_view_group.h"
-#include "components/ui_image_view.h"
-#include "components/ui_label.h"
-#include "components/ui_label_ext.h"
-#include "components/ui_label_button.h"
-#include "components/ui_box_progress.h"
-#include "components/ui_image_animator.h"
-#include "battery_hal.h"
-#include "main/include/ConnectedStatusView.h"
-extern uint8_t battery_get_voltage(float *voltage);
-
-namespace OHOS
-{
- static constexpr int16_t SETTING_INDEX = 0;
- static constexpr int16_t LIGHTING_INDEX = 1;
- static constexpr int16_t DNOTDISTURB_INDEX = 2;
- static constexpr int16_t SAVEPOWER_INDEX = 3;
- static constexpr int16_t FINDPHONE_INDEX = 4;
- static constexpr int16_t MAX_INDEX = 5;
-
- typedef enum : uint8_t
- {
- DROPDOWNVIEW = 0,
- CONNECTEDSTATUSVIEW,
- MAX_DROPDOWNVIEWID,
- } DROPDOWNVIEWID;
-
- class PullUpDownView : public UICardPage
- {
+ /* ---------------------------------- 1.连接状态 ---------------------------------- */
public:
- PullUpDownView();
- ~PullUpDownView() override;
- static PullUpDownView *GetInstance(void);
- void PreLoad(void) override;
- void UnLoad(void) override;
+ bool GetPhoneConnectedStatus(void);
+ bool GetEarPhoneConnectedStatus(void);
+ bool GetBlueToothConnectedStatus(void);
void UpdatePhoneStatus(int status);
void UpdateEarPhoneStatus(int status);
void UpdateBlueToothStatus(int status);
- void UpdateDnotDisturbStatus(int status);
- void UpdateSignalStrengthStatusAndBatteryPosition();
- bool ChangeDropDownView(int16_t thisView); // 切换到"下拉控制中心"视图
- bool ChangeConnectedStatusView(int16_t thisView); // 切换到"连接状态"视图
- bool ClickFunc(int16_t interface);
- void ChangeView(int16_t hideView, int16_t showView);
- ConnectedStatusView *GetConnectedStatusView(void);
- UILabel *GetTimeLabel();
- UILabel *GetDateLabel();
- UILabel *GetWeekLabel();
+ private:
+ UIImageView *DropDownConnectedStatusImageViweInit(int16_t x, int16_t y, int16_t w, int16_t h);
+ void CreateDropDownConnectionStatusImageViwe(void);
+ void ClearAll_1(void);
+ UIButton *connectedStatusBackgroundButton{nullptr}; // 放置连接状态icon的背景按钮
+ UIImageView *showPhoneConnectedStatus{nullptr}; // 显示手机连接状态
+ UIImageView *showEarPhoneConnectedStatus{nullptr}; // 显示耳机连接状态
+ UIImageView *showBluetoothConnectedStatus{nullptr}; // 显示蓝牙连接状态
+ /* --------------------------------- 2.基本数据显示-------------------------------- */
+ public:
UIBoxProgress *GetProgress();
-
- bool GetPhoneConnectedStatus(void);
- bool GetEarPhoneConnectedStatus(void);
- bool GetBlueToothConnectedStatus(void);
+ UILabel *GetDateAndWeekLabel(void);
+ void UpdateSignalStrengthStatusAndBatteryPosition();
private:
- bool PullUpDownViewInit();
- bool InitBaseData(); // 初始化基础数据组件
- void InitViewImgBackGround(void);
- void InitViewImg(void);
- void InitConnectedStatusImage(void);
- bool InitSingalComponentsView();
- void ClearAllConnectedStatusComponentsView();
- void ClearAllSingalComponentsView();
- void ClearAll();
-
+ void InitBaseData();
+ void ClearAll_2(void);
int GetSignalStrength(void);
int CalculateSignalBars(int signalStrength);
void UpdateSignalBarDisplay(int signalBars, bool state);
- void UpdateBatteryPosition(int signalBars);
void updateSignalDisplay();
void UpdateCat1NoSignalisplay(bool state);
void UpdateCat14GDisplay(bool state);
-
- void PreLoadPullUpDownImageRes(void);
- void UnLoadPullUpDownImageRes(void);
+ void UpdateHDDisplay(bool state);
+ void UpdateCat1MobileDataDisplay(bool state);
+ void UpdateXPosition(void);
+ UIViewGroup *group1{nullptr};
+ UIImageView *showSignalStrength[4]{nullptr}; // 信号强度
+ UILabel *Singal_4{nullptr}; // 4G图标
+ UIImageView *NoSignal{nullptr}; // 无信号
+ UIImageView *MobileData{nullptr}; // 移动数据
+ UIImageView *HD{nullptr}; // HD
+ UIImageView *batteryimage{nullptr}; // 电池图片
+ UIBoxProgress *progress{nullptr}; // 电池进度条
+ UILabel *showDateAndWeekLabel{nullptr}; // 显示日期和星期
+ /* ---------------------------------- 3.滑动列表 ---------------------------------- */
+ public:
+ AppGroupView *DropDownCardPage1Init(void);
+ AppGroupView *DropDownCardPage2Init(void);
private:
- ConnectedStatusView *connectedStatusView{nullptr};
-
+ AppGroupView *CreatePage(int32_t WeatherPageId);
+ void CreateDropDownswipeViewListView(void);
+ void ClearAll_3(void);
+ UISwipeView *dropDownswipeViewList{nullptr}; // 滑动列表
+ AppGroupView *recordCard[2]{nullptr};
+ DropDownCardPage1 *dropDownCardPage1{nullptr};
+ DropDownCardPage2 *dropDownCardPage2{nullptr};
+ /* ------------------------------------ 4 ----------------------------------- */
+ public:
+ void UpdateSwipviewSelect(bool value);
private:
- UIViewGroup *group[MAX_DROPDOWNVIEWID]{nullptr};
- UIImageView *dropSetting{nullptr}; // 设置
- UIImageView *dropLighting{nullptr}; // 蓝牙
- UIImageView *dropDnotDisturb{nullptr}; // 勿扰模式
- UIImageView *dropSavePower{nullptr}; // 省电
- UIImageView *drofindPhone{nullptr}; // 找手机
- UIImageView *dropIconBackground[MAX_INDEX]{nullptr}; // 放置各个icon的背景
- UIButton *connectedStatusBackgroundButton{nullptr}; // 放置连接状态icon的背景按钮
- UIImageView *showPhoneConnectedStatus{nullptr}; // 显示手机连接状态
- UIImageView *showEarPhoneConnectedStatus{nullptr}; // 显示耳机连接状态
- UIImageView *showBluetoothConnectedStatus{nullptr}; // 显示蓝牙连接状态
- UIImageView *dropLine{nullptr}; // 线
- UILabel *showTimeLabel{nullptr}; // 显示时间
- UILabel *showDateLabel{nullptr}; // 显示日期
- UILabel *showWeekLabel{nullptr}; // 显示星期
- UIImageView *showSignalStrength[4]{nullptr}; // 信号强度
- UILabel *Singal_4{nullptr}; // 4G图标
- UIImageView *NoSignal{nullptr}; // 无信号
-
- UIImageView *batteryimage = nullptr;
- UIBoxProgress *progress = nullptr;
- AnimatorCallback *progresscallback_ = nullptr;
- Animator *progressanimator_ = nullptr;
-
- bool viewiInitStatus{false};
- bool resLoadStatus{false};
+ void CreateView4();
+ void ClearAll_4(void);
+ UIImageView *swipviewSelect{nullptr};
+ UIImageView *line{nullptr};
};
}
-#endif
#endif
\ No newline at end of file
--- /dev/null
+/*
+ * @Author: luozheng 1732036298@qq.com
+ * @Date: 2024-08-21 11:54:00
+ * @LastEditors: luozheng 1732036298@qq.com
+ * @LastEditTime: 2024-08-22 17:38:26
+ * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/main/include/dropdown/DropDownCardPage1.h
+ */
+#ifndef __DROPDOWN_CARD_PAGE1_H__
+#define __DROPDOWN_CARD_PAGE1_H__
+#include "AppGroupView.h"
+#include "components/ui_toggle_button.h"
+
+namespace OHOS
+{
+ class DropDownCardPage1 : public AppGroupView,
+ public UIView::OnClickListener
+ {
+ public:
+ struct ToggleButtonConfig
+ {
+ int16_t left;
+ int16_t top;
+ int16_t width;
+ int16_t height;
+ const char *viewId;
+ const char *selectImg;
+ const char *unselectImg;
+ bool isTouchable;
+ bool state;
+ };
+ enum toggleButtonid : uint8_t
+ {
+ toggleButton_BT = 0, // 蓝牙开关
+ toggleButton_4G, // 4G开关
+ toggleButton_ALIPAY, // 支付宝
+ toggleButton_SAVEPOWER, // 省电模式开关
+ toggleButton_SLEEP, // 睡眠开关
+ toggleButton_DNOTDISTURB, // 勿扰开关
+ toggleButton_SETTING, // 设置
+ toggleButton_MAX,
+ };
+
+ DropDownCardPage1();
+ ~DropDownCardPage1();
+ static DropDownCardPage1 *GetInstance(void);
+ bool OnClick(UIView &view, const ClickEvent &event) override;
+ bool InitPage(void);
+ bool InitView(void *caller) override;
+ void ClearAll();
+
+ UIToggleButton *GetDropDownCardPage1_ToggleButton(int index);
+
+ private:
+ UIToggleButton *ToggleButtonInit(ToggleButtonConfig &toggleButtonConfig);
+ UIToggleButton *toggleButton[toggleButton_MAX]{nullptr};
+ };
+
+}
+
+#endif
--- /dev/null
+/*
+ * @Author: luozheng 1732036298@qq.com
+ * @Date: 2024-08-21 11:54:00
+ * @LastEditors: luozheng 1732036298@qq.com
+ * @LastEditTime: 2024-08-21 16:42:29
+ * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/main/include/dropdown/DropDownCardPage2.h
+ * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
+ */
+
+#ifndef __DROPDOWN_CARD_PAGE2_H__
+#define __DROPDOWN_CARD_PAGE2_H__
+#include "AppGroupView.h"
+#include "components/ui_toggle_button.h"
+
+namespace OHOS
+{
+ class DropDownCardPage2 : public AppGroupView,
+ public UIView::OnClickListener
+ {
+ public:
+ struct ToggleButtonConfig
+ {
+ int16_t left;
+ int16_t top;
+ int16_t width;
+ int16_t height;
+ const char *viewId;
+ const char *selectImg;
+ const char *unselectImg;
+ bool isTouchable;
+ };
+ DropDownCardPage2();
+ ~DropDownCardPage2();
+ static DropDownCardPage2 *GetInstance(void);
+ bool OnClick(UIView &view, const ClickEvent &event) override;
+ bool InitPage(void);
+ bool InitView(void *caller) override;
+ void ClearAll();
+
+ UIToggleButton *GetDropDownCardPage2_ToggleButton(int index);
+
+ private:
+ UIToggleButton *ToggleButtonInit(ToggleButtonConfig &toggleButtonConfig);
+ UIToggleButton *toggleButton[2]{nullptr};
+ };
+
+}
+
+#endif
#ifdef CUSTOM_Z1\r
{DIAL_CLOCK, "Z1", DEFAULT_DIALPER_PATH, DEFAULT_TASK_PERIOD},\r
#else\r
- {DIAL_CLOCK, "KUMI", DEFAULT_DIALPER_PATH, DEFAULT_TASK_PERIOD}, // 默认表盘 Id 0\r
+ {DIAL_CLOCK, "KUMI", DEFAULT_DIALPER_PATH, DEFAULT_TASK_PERIOD}, // 默认表盘 Id 0\r
#endif\r
{DIAL_CLOCK_1, "Custom_1", CUSTOM_CLOCK1_DIALPER_PATH, DEFAULT_TASK_PERIOD}, // 表盘 Id 1\r
{DIAL_CLOCK_2, "Custom_2", CUSTOM_CLOCK2_DIALPER_PATH, DEFAULT_TASK_PERIOD}, // 表盘 Id 2\r
{\r
// 将 state 转换为整数以进行比较\r
int stateIndex = static_cast<int>(state);\r
- if (stateIndex >= 0 && stateIndex < STATE_COUNT)\r
- { // 确保 index 在有效范围\r
- dialstateInfo[stateIndex].active = value; // 使用转换后的索引\r
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Set dialstateInfo[%d].active = %d", stateIndex, value);\r
+ if (stateIndex >= 0 && stateIndex < STATE_COUNT) // 确保 index 在有效范围\r
+ {\r
+ // 检查当前状态是否与要设置的状态一致\r
+ if (dialstateInfo[stateIndex].active != value)\r
+ {\r
+ dialstateInfo[stateIndex].active = value; // 使用转换后的索引\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Set dialstateInfo[%d].active = %d", stateIndex, value);\r
+ SendMsgToUIService(UI_UPDATE_DIALSTATE_DATA, 0, nullptr, 0); // 发送更新消息\r
+ }\r
+ else\r
+ {\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "State %d is unchanged, no update needed.", stateIndex);\r
+ }\r
}\r
else\r
{\r
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "state %d is error", stateIndex);\r
}\r
-\r
- SendMsgToUIService(UI_UPDATE_DIALSTATE_DATA, 0, nullptr, 0);\r
}\r
\r
// 接口 2: 获取最高优先级为 true 的状态\r
// 更新时间
void MainPresenterSample::UpdataTime()
{
- // 获取当前时间
- char *timeStr = (char *)malloc(9);
- if (uapi_get_HHMMSS_Time(timeStr, ':', false) != ERRCODE_SUCC)
- {
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Failed to get start time");
- free(timeStr);
- return;
- }
- if (PullUpDownView::GetInstance() != nullptr)
- PullUpDownView::GetInstance()->GetTimeLabel()->SetText(timeStr);
- free(timeStr);
+ // // 获取当前时间
+ // char *timeStr = (char *)malloc(9);
+ // if (uapi_get_HHMMSS_Time(timeStr, ':', false) != ERRCODE_SUCC)
+ // {
+ // WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Failed to get start time");
+ // free(timeStr);
+ // return;
+ // }
+ // if (PullUpDownView::GetInstance() != nullptr)
+ // // PullUpDownView::GetInstance()->GetTimeLabel()->SetText(timeStr);
+ // free(timeStr);
}
void MainPresenterSample::UpdataBaseData()
// break;
// }
// }
-
+ std::string dateAndweek = std::string(dateStr) + " " + std::string(weekStr) ;
if (PullUpDownView::GetInstance() != nullptr)
{
// PullUpDownView::GetInstance()->GetProgress()->SetImage(progressImageSrc, progressImageSrc);
PullUpDownView::GetInstance()->GetProgress()->SetValue(value);
- PullUpDownView::GetInstance()->GetDateLabel()->SetText(dateStr);
- PullUpDownView::GetInstance()->GetTimeLabel()->SetText(timeStr);
- PullUpDownView::GetInstance()->GetWeekLabel()->SetText(weekStr);
+ // PullUpDownView::GetInstance()->GetDateLabel()->SetText(dateStr);
+ // PullUpDownView::GetInstance()->GetTimeLabel()->SetText(timeStr);
+ // PullUpDownView::GetInstance()->GetWeekLabel()->SetText(weekStr);
+ PullUpDownView::GetInstance()->GetDateAndWeekLabel()->SetText(dateAndweek.c_str());
}
// 释放动态分配的内存
WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "%d", MainPresenterSample::g_PullUpDownTimes);
if (MainPresenterSample::g_PullUpDownTimes <= 0)
{
- MainPresenterSample::g_PullUpDownTimes = UPDATETIME; //
- if (MainPresenterSample::GetInstance() != nullptr)
- {
- MainPresenterSample::GetInstance()->UpdataTime();
- }
- else
- {
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "MainPresenterSample::GetInstance fail!!");
- }
+ MainPresenterSample::g_PullUpDownTimes = UPDATETIME;
if (PullUpDownView::GetInstance() != nullptr)
{
* @Author: luozheng 1732036298@qq.com
* @Date: 2024-06-26 18:14:24
* @LastEditors: luozheng 1732036298@qq.com
- * @LastEditTime: 2024-08-03 17:11:11
+ * @LastEditTime: 2024-08-22 17:53:56
* @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/main/src/PullUpDownView.cpp
*/
-#if 1
#include "PullUpDownView.h"
#include "wearable_log.h"
#include "UiConfig.h"
{
/* ---------------------------------- 坐标位置 ---------------------------------- */
- // 设置
- static constexpr uint16_t SETTING_IMG_X = 30;
- static constexpr uint16_t SETTING_IMG_Y = 186;
- static constexpr const char *DROPDOWN_SETTING_IMAGE = "/user/res/dropdown/DROPDOWN_SETTING.bin";
-
- // 蓝牙
- static constexpr uint16_t BLUETOOTH_IMG_X = 76;
- static constexpr uint16_t BLUETOOTH_IMG_Y = 76;
- static constexpr const char *DROPDOWN_BLUETOOTH_IMAGE = "/user/res/dropdown/DROPDOWN_BLUETOOTH.bin";
-
- // 勿扰
- static constexpr uint16_t DNOTDISTURB_IMG_X = 186;
- static constexpr uint16_t DNOTDISTURB_IMG_Y = 30;
- static constexpr const char *DROPDOWN_DNOTDISTURB_IMAGE = "/user/res/dropdown/DROPDOWN_DNOTDISTURB.bin";
-
- // 省电
- static constexpr uint16_t SAVEPOWER_IMG_X = 296;
- static constexpr uint16_t SAVEPOWER_IMG_Y = 76;
- // static constexpr const char *DROPDOWN_SAVEPOWER_IMAGE = "/user/res/dropdown/DROPDOWN_SAVEPOWER.bin";
- static constexpr const char *DROPDOWN_SAVEPOWER_IMAGE = "/user/res/dropdown/DROPDOWN_ALIPAY.bin";/*支付宝*/
-
- // 找手机
- static constexpr uint16_t FINDPHONE_IMG_X = 342;
- static constexpr uint16_t FINDPHONE_IMG_Y = 186;
- // static constexpr const char *DROPDOWN_FINDPHONE_IMAGE = "/user/res/dropdown/DROPDOWN_FINDPHONE.bin";
- static constexpr const char *DROPDOWN_FINDPHONE_IMAGE = "/user/res/dropdown/DROPDOWN_4G.bin";/*4G*/
-
- // line
- static constexpr uint16_t LINE_IMG_X = 193;
- static constexpr uint16_t LINE_IMG_Y = 430;
- static constexpr const char *DROPDOWN_LINE_IMAGE = "/user/res/dropdown/DROPDOWN_LINE.bin";
-
- // icon图片大小
- static constexpr uint16_t ICON_IMG_SIZE_W = 94;
- static constexpr uint16_t ICON_IMG_SIZE_H = 94;
-
- // 电池
- static constexpr uint16_t BATTERY_X = 209;
- static constexpr uint16_t BATTERY_Y = 180;
-
- // 时间
- static constexpr uint16_t TIME_LABEL_X = 172;
- static constexpr uint16_t TIME_LABEL_Y = 230;
-
- // 日期
- static constexpr uint16_t DATE_LABEL_X = 110;
- static constexpr uint16_t DATE_LABEL_Y = 300;
-
- // 星期
- static constexpr uint16_t WEEK_LABEL_X = 295;
- static constexpr uint16_t WEEK_LABEL_Y = 300;
-
// 手机连接状态
- static constexpr uint16_t PHONECONNECTSTATUS_IMG_X = 123;
- static constexpr uint16_t PHONECONNECTSTATUS_IMG_Y = 350;
- static constexpr const char *DROPDOWN_PHONECONNECTED_IMAGE = "/user/res/dropdown/DROPDOWN_PHONECONNECTED.bin";
- static constexpr const char *DROPDOWN_PHONEDISCONNECTED_IMAGE = "/user/res/dropdown/DROPDOWN_PHONEDISCONNECTED.bin";
-
+ static constexpr const char *DROPDOWN_PHONECONNECTED_IMAGE = "/user/res/dropdown/phone_connect.bin";
+ static constexpr const char *DROPDOWN_PHONEDISCONNECTED_IMAGE = "/user/res/dropdown/phone_disconnect.bin";
// 耳机连接状态
- static constexpr uint16_t EARPHONESCONNECTSTATUS_IMG_X = 203;
- static constexpr uint16_t EARPHONESCONNECTSTATUS_IMG_Y = 350;
- static constexpr const char *DROPDOWN_EARPHONESCONNECTED_IMAGE = "/user/res/dropdown/DROPDOWN_EARPHONESCONNECTED.bin";
- static constexpr const char *DROPDOWN_EARPHONESDISCONNECTED_IMAGE = "/user/res/dropdown/DROPDOWN_EARPHONESDISCONNECTED.bin";
-
+ static constexpr const char *DROPDOWN_EARPHONESCONNECTED_IMAGE = "/user/res/dropdown/earphones_connect.bin";
+ static constexpr const char *DROPDOWN_EARPHONESDISCONNECTED_IMAGE = "/user/res/dropdown/earphones_disconnect.bin";
// 蓝牙连接状态
- static constexpr uint16_t BLUETOOTHCONNECTSTATUS_IMG_X = 283;
- static constexpr uint16_t BLUETOOTHCONNECTSTATUS_IMG_Y = 350;
- static constexpr const char *DROPDOWN_BLUETOOTHCONNECTED_IMAGE = "/user/res/dropdown/DROPDOWN_BLUETOOTHCONNECTED.bin";
- static constexpr const char *DROPDOWN_BLUETOOTHDISCONNECTED_IMAGE = "/user/res/dropdown/DROPDOWN_BLUETOOTHDISCONNECTED.bin";
-
- static constexpr uint16_t CONNECTSTATUS_IMG_W = 60;
- static constexpr uint16_t CONNECTSTATUS_IMG_H = 60;
+ static constexpr const char *DROPDOWN_BLUETOOTHCONNECTED_IMAGE = "/user/res/dropdown/bluetooth_connect.bin";
+ static constexpr const char *DROPDOWN_BLUETOOTHDISCONNECTED_IMAGE = "/user/res/dropdown/bluetooth_disconnect.bin";
static constexpr const char *DROPDOWN_NOSIGNAL_IMAGE = "/user/res/dropdown/DROPDOWN_NOSIGNAL.bin";
static constexpr const char *DROPDOWN_MOBILE_DATA_IMAGE = "/user/res/dropdown/DROPDOWN_MOBILE_DATA.bin";
+ static constexpr const char *DROPDOWN_HD_IMAGE = "/user/res/dropdown/DROPDOWN_HD.bin";
+ static constexpr const char *DROPDOWN_SELECT_1_IMAGE = "/user/res/dropdown/DROPDOWN_SELECT_1.bin";
+ static constexpr const char *DROPDOWN_SELECT_2_IMAGE = "/user/res/dropdown/DROPDOWN_SELECT_2.bin";
+ static constexpr const char *DROPDOWN_LINE_IMAGE = "/user/res/dropdown/DROPDOWN_LINE.bin";
static const int64_t COLOR_SIGNAL_ON = 0xffffffff;
static const int64_t COLOR_SIGNAL_OFF = 0xff383838;
- static const int BATTERY_IMAGE_WIDTH = 48;
- static const int BATTERY_IMAGE_HEIGHT = 30;
- static const int PROGRESS_WIDTH = 30;
- static const int PROGRESS_HEIGHT = 18;
- /* -------------------------------------------------------------------------- */
- std::string getWeekString(int wday)
- {
- std::string weekDays[] = {"星期天", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六"};
- return weekDays[wday];
- }
/* -------------------------------------------------------------------------- */
static PullUpDownView *g_pPullUpDownView = nullptr;
PullUpDownView::PullUpDownView()
return g_pPullUpDownView;
}
- // 清除信号强度相关组件
- void PullUpDownView::ClearAllSingalComponentsView()
- {
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "PullUpDownView::ClearAllSingalComponentsView");
- if (NoSignal != nullptr)
- {
- delete NoSignal;
- NoSignal = nullptr;
- }
-
- for (int i = 0; i < 4; i++)
- {
- if (showSignalStrength[i] != nullptr)
- {
- delete showSignalStrength[i];
- showSignalStrength[i] = nullptr;
- }
- }
-
- if (Singal_4 != nullptr)
- {
- delete Singal_4;
- Singal_4 = nullptr;
- }
-
- if (MobileData != nullptr)
- {
- delete MobileData;
- MobileData = nullptr;
- }
- }
-
- // 清除所有与连接状态相关的视图组件
- void PullUpDownView::ClearAllConnectedStatusComponentsView()
+ void PullUpDownView::OnSwipe(UISwipeView &view)
{
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "PullUpDownView::ClearAllConnectedStatusComponentsView");
- if (connectedStatusBackgroundButton != nullptr)
- {
- delete connectedStatusBackgroundButton;
- connectedStatusBackgroundButton = nullptr;
- }
-
- if (showPhoneConnectedStatus != nullptr)
- {
- delete showPhoneConnectedStatus;
- showPhoneConnectedStatus = nullptr;
- }
-
- if (showEarPhoneConnectedStatus != nullptr)
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "PullUpDownView::OnSwipe,current tab index = %d", view.GetCurrentPage());
+ if (view.GetCurrentPage() == 0)
{
- delete showEarPhoneConnectedStatus;
- showEarPhoneConnectedStatus = nullptr;
+ UpdateSwipviewSelect(true);
}
-
- if (showBluetoothConnectedStatus != nullptr)
+ else
{
- delete showBluetoothConnectedStatus;
- showBluetoothConnectedStatus = nullptr;
+ UpdateSwipviewSelect(false);
}
+ return;
}
void PullUpDownView::ClearAll()
if (group[DROPDOWNVIEW] != nullptr)
{
group[DROPDOWNVIEW]->RemoveAll();
- group[DROPDOWNVIEW]->ClearBackgroundBlur();
+ /* -------------------------------------------------------------------------- */
+ ClearAll_1();
+ ClearAll_2();
+ ClearAll_3();
+ ClearAll_4();
+ /* -------------------------------------------------------------------------- */
delete group[DROPDOWNVIEW];
group[DROPDOWNVIEW] = nullptr;
}
-
- if (dropSetting != nullptr)
- {
- delete dropSetting;
- dropSetting = nullptr;
- }
-
- if (dropBluetooth != nullptr)
- {
- delete dropBluetooth;
- dropBluetooth = nullptr;
- }
-
- if (dropDnotDisturb != nullptr)
- {
- delete dropDnotDisturb;
- dropDnotDisturb = nullptr;
- }
-
- if (dropSavePower != nullptr)
- {
- delete dropSavePower;
- dropSavePower = nullptr;
- }
-
- if (drofindPhone != nullptr)
- {
- delete drofindPhone;
- drofindPhone = nullptr;
- }
-
- if (dropLine != nullptr)
- {
- delete dropLine;
- dropLine = nullptr;
- }
-
- if (showTimeLabel != nullptr)
- {
- delete showTimeLabel;
- showTimeLabel = nullptr;
- }
-
- if (showDateLabel != nullptr)
- {
- delete showDateLabel;
- showDateLabel = nullptr;
- }
-
- if (showWeekLabel != nullptr)
- {
- delete showWeekLabel;
- showWeekLabel = nullptr;
- }
- /* -------------------------------------------------------------------------- */
- ClearAllSingalComponentsView();
- ClearAllConnectedStatusComponentsView();
- /* -------------------------------------------------------------------------- */
- if (batteryimage != nullptr)
- {
- delete batteryimage;
- batteryimage = nullptr;
- }
-
- if (progress != nullptr)
- {
- delete progress;
- progress = nullptr;
- }
-
if (connectedStatusView != nullptr)
{
delete connectedStatusView;
connectedStatusView = nullptr;
- group[CONNECTEDSTATUSVIEW] = nullptr;
- }
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "PullUpDownView::ClearAll end!!");
- }
-
- UIImageView *PullUpDownView::dropDownIconImageViweInit(ImageConfig &imageconfig)
- {
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "PullUpDownView::dropDownIconImageViweInit");
- UIImageView *Image = new UIImageView();
- if (Image == nullptr)
- {
- return nullptr;
- }
- Image->SetPosition(imageconfig.x, imageconfig.y, imageconfig.w, imageconfig.h);
- Image->SetViewId(imageconfig.viewid);
- Image->SetStyle(STYLE_BACKGROUND_COLOR, 0xff191919);
- Image->SetStyle(STYLE_BACKGROUND_OPA, 0xff);
- Image->SetStyle(STYLE_BORDER_RADIUS, 100);
- Image->SetAutoEnable(false);
- Image->SetResizeMode(UIImageView::CENTER);
- Image->SetSrc(imageconfig.src);
- Image->SetTouchable(true);
- Image->SetOnClickListener(imageconfig.clicklistener);
-
- return Image;
- }
-
- /// @brief 创建icon图标
- void PullUpDownView::createDropDownIconImageViwe(void)
- {
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "PullUpDownView::InitViewImg");
- UIView::OnClickListener *clickListener = (UIView::OnClickListener *)OHOS::MainPresenterSample::GetInstance();
- if (clickListener == nullptr)
- {
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "MainPresenterSample::GetInstance fail!!");
- return;
- }
- /* ---------------------------------- 下拉设置图片 ---------------------------------- */
- ImageConfig imageconfig = {
- .x = SETTING_IMG_X,
- .y = SETTING_IMG_Y,
- .w = ICON_IMG_SIZE_W,
- .h = ICON_IMG_SIZE_H,
- .viewid = DROPDOWN_CLICK_SETTING,
- .src = DROPDOWN_SETTING_IMAGE,
- .clicklistener = clickListener,
- };
- dropSetting = dropDownIconImageViweInit(imageconfig);
- if (dropSetting == nullptr)
- {
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "PullUpDownView::dropSetting new fail");
- return;
- }
- /* ----------------------------------- 蓝牙 ----------------------------------- */
- imageconfig = {
- .x = BLUETOOTH_IMG_X,
- .y = BLUETOOTH_IMG_Y,
- .w = ICON_IMG_SIZE_W,
- .h = ICON_IMG_SIZE_H,
- .viewid = DROPDOWN_CLICK_BLUETOOTH,
- .src = DROPDOWN_BLUETOOTH_IMAGE,
- .clicklistener = clickListener,
- };
- dropBluetooth = dropDownIconImageViweInit(imageconfig);
- if (dropBluetooth == nullptr)
- {
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "PullUpDownView::dropBluetooth new fail");
- return;
- }
- /* ----------------------------------- 勿扰模式 ----------------------------------- */
- imageconfig = {
- .x = DNOTDISTURB_IMG_X,
- .y = DNOTDISTURB_IMG_Y,
- .w = ICON_IMG_SIZE_W,
- .h = ICON_IMG_SIZE_H,
- .viewid = DROPDOWN_CLICK_DNOTDISTURB,
- .src = DROPDOWN_DNOTDISTURB_IMAGE,
- .clicklistener = clickListener,
- };
- dropDnotDisturb = dropDownIconImageViweInit(imageconfig);
- if (dropDnotDisturb == nullptr)
- {
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "PullUpDownView::dropDnotDisturb new fail");
- return;
- }
- UpdateDnotDisturbStatus(DnotDisturbModel::GetInstance().GetDoNotDisturbModeEnabled());
- /* ----------------------------------- 省电 ----------------------------------- */
- imageconfig = {
- .x = SAVEPOWER_IMG_X,
- .y = SAVEPOWER_IMG_Y,
- .w = ICON_IMG_SIZE_W,
- .h = ICON_IMG_SIZE_H,
- .viewid = DROPDOWN_CLICK_SAVEELE,
- .src = DROPDOWN_SAVEPOWER_IMAGE,
- .clicklistener = clickListener,
- };
- dropSavePower = dropDownIconImageViweInit(imageconfig);
- if (dropSavePower == nullptr)
- {
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "PullUpDownView::dropSavePower new fail");
- return;
- }
- /* ----------------------------------- 找手机 ---------------------------------- */
- imageconfig = {
- .x = FINDPHONE_IMG_X,
- .y = FINDPHONE_IMG_Y,
- .w = ICON_IMG_SIZE_W,
- .h = ICON_IMG_SIZE_H,
- .viewid = DROPDOWN_CLICK_FINDMYPHONE,
- .src = DROPDOWN_FINDPHONE_IMAGE,
- .clicklistener = clickListener,
- };
- drofindPhone = dropDownIconImageViweInit(imageconfig);
- if (drofindPhone == nullptr)
- {
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "PullUpDownView::drofindPhone new fail");
- return;
}
- /* -------------------------------- dropLine -------------------------------- */
- dropLine = new UIImageView();
- if (dropLine == nullptr)
+ for (int i = DROPDOWNVIEW; i < MAX_DROPDOWNVIEWID; i++)
{
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "dropLine new fail");
- return;
+ group[i] = nullptr;
}
- dropLine->SetPosition(LINE_IMG_X, LINE_IMG_Y, ICON_IMG_SIZE_W, ICON_IMG_SIZE_H);
- dropLine->SetSrc(DROPDOWN_LINE_IMAGE);
- /* -------------------------------- 添加组件到视图上 -------------------------------- */
- group[DROPDOWNVIEW]->Add(dropSetting);
- group[DROPDOWNVIEW]->Add(dropBluetooth);
- group[DROPDOWNVIEW]->Add(dropDnotDisturb);
- group[DROPDOWNVIEW]->Add(dropSavePower);
- group[DROPDOWNVIEW]->Add(drofindPhone);
- group[DROPDOWNVIEW]->Add(dropLine);
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "PullUpDownView::ClearAll end!!");
}
-
+ /* --------------------------------- 1.连接状态相关 --------------------------------- */
// 获取手机连接状态
bool PullUpDownView::GetPhoneConnectedStatus(void)
{
return SettingModel::GetInstance().GetPhoneConnectStatus();
}
-
// 获取蓝牙耳机连接状态
bool PullUpDownView::GetEarPhoneConnectedStatus(void)
{
return SettingModel::GetInstance().GetEarPhoneConnectStatus();
}
-
// 获取蓝牙连接状态
bool PullUpDownView::GetBlueToothConnectedStatus(void)
{
return SettingModel::GetInstance().GetBlueToothConnectStatus();
}
- UIImageView *PullUpDownView::dropDownConnectedStatusImageViweInit(int16_t x, int16_t y, int16_t w, int16_t h)
+ // 更新手机连接状态
+ void PullUpDownView::UpdatePhoneStatus(int status)
+ {
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "PullUpDownView::UpdatePhoneStatus");
+ if (showPhoneConnectedStatus == nullptr)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "showPhoneConnectedStatus nullptr");
+ return;
+ }
+ showPhoneConnectedStatus->SetSrc(status ? DROPDOWN_PHONECONNECTED_IMAGE : DROPDOWN_PHONEDISCONNECTED_IMAGE);
+ showPhoneConnectedStatus->Invalidate();
+
+ if (GetConnectedStatusView() != nullptr)
+ GetConnectedStatusView()->UpdatePhoneConnectedStatus(status);
+
+ return;
+ }
+ // 更新蓝牙耳机连接状态
+ void PullUpDownView::UpdateEarPhoneStatus(int status)
+ {
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "PullUpDownView::UpdateEarPhoneStatus");
+ if (showEarPhoneConnectedStatus == nullptr)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "showEarPhoneConnectedStatus nullptr");
+ return;
+ }
+ showEarPhoneConnectedStatus->SetSrc(status ? DROPDOWN_EARPHONESCONNECTED_IMAGE : DROPDOWN_EARPHONESDISCONNECTED_IMAGE);
+ showEarPhoneConnectedStatus->Invalidate();
+
+ if (GetConnectedStatusView() != nullptr)
+ GetConnectedStatusView()->UpdateEarPhoneConnectedStatus(status);
+
+ return;
+ }
+ // 更新蓝牙连接状态
+ void PullUpDownView::UpdateBlueToothStatus(int status)
+ {
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "PullUpDownView::UpdateBlueToothStatus");
+ if (showBluetoothConnectedStatus == nullptr)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "showBluetoothConnectedStatus nullptr");
+ return;
+ }
+ showBluetoothConnectedStatus->SetSrc(status ? DROPDOWN_BLUETOOTHCONNECTED_IMAGE : DROPDOWN_BLUETOOTHDISCONNECTED_IMAGE);
+ showBluetoothConnectedStatus->Invalidate();
+
+ if (GetConnectedStatusView() != nullptr)
+ GetConnectedStatusView()->UpdateBlueToothConnectedStatus(status);
+
+ return;
+ }
+ UIImageView *PullUpDownView::DropDownConnectedStatusImageViweInit(int16_t x, int16_t y, int16_t w, int16_t h)
{
UIImageView *img = new UIImageView();
if (img == nullptr)
return img;
}
-
/// @brief 创建与连接状态相关组件
- void PullUpDownView::createDropDownConnectedStatusImageViwe(void)
+ void PullUpDownView::CreateDropDownConnectionStatusImageViwe(void)
{
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "PullUpDownView::InitConnectedStatusImage");
- connectedStatusBackgroundButton = new UIButton();
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "PullUpDownView::CreateDropDownConnectionStatusImageViwe");
if (connectedStatusBackgroundButton == nullptr)
{
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "connectedStatusBackgroundButton new fail");
- return;
+ connectedStatusBackgroundButton = new UIButton();
+ if (connectedStatusBackgroundButton == nullptr)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "connectedStatusBackgroundButton new fail");
+ return;
+ }
}
- connectedStatusBackgroundButton->SetPosition(113, 348, 240, 64);
+ connectedStatusBackgroundButton->SetPosition(153, 10, 160, 50);
connectedStatusBackgroundButton->SetViewId(CONNECTEDSTATUSBACKGROUNDBUTTON);
- connectedStatusBackgroundButton->SetStyle(STYLE_BACKGROUND_COLOR, 0xffffffff);
- connectedStatusBackgroundButton->SetStyle(STYLE_BACKGROUND_OPA, 0x00);
- connectedStatusBackgroundButton->SetStyleForState(STYLE_BACKGROUND_COLOR, 0xffffffff, UIButton::PRESSED);
- connectedStatusBackgroundButton->SetStyleForState(STYLE_BACKGROUND_OPA, 0x00, UIButton::PRESSED);
- connectedStatusBackgroundButton->SetStyleForState(STYLE_BORDER_COLOR, 0xffffffff, UIButton::PRESSED);
- connectedStatusBackgroundButton->SetStyleForState(STYLE_BORDER_OPA, 0x00, UIButton::PRESSED);
+ connectedStatusBackgroundButton->SetStyle(STYLE_BACKGROUND_COLOR, 0xff191919);
+ connectedStatusBackgroundButton->SetStyle(STYLE_BACKGROUND_OPA, 0xff);
+ connectedStatusBackgroundButton->SetStyleForState(STYLE_BACKGROUND_COLOR, 0xff383838, UIButton::PRESSED);
UIView::OnClickListener *clickListener = (UIView::OnClickListener *)OHOS::MainPresenterSample::GetInstance();
if (clickListener == nullptr)
{
return;
}
connectedStatusBackgroundButton->SetOnClickListener(clickListener);
+ int x = connectedStatusBackgroundButton->GetX();
+ int y = connectedStatusBackgroundButton->GetY();
/* -------------------------------- 显示手机连接状态 -------------------------------- */
-
- showPhoneConnectedStatus = dropDownConnectedStatusImageViweInit(PHONECONNECTSTATUS_IMG_X, PHONECONNECTSTATUS_IMG_Y, CONNECTSTATUS_IMG_W, CONNECTSTATUS_IMG_H);
if (showPhoneConnectedStatus == nullptr)
{
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "showPhoneConnectedStatus new fail");
- return;
+ showPhoneConnectedStatus = DropDownConnectedStatusImageViweInit(x + 26, y + 13, 24, 24);
+ if (showPhoneConnectedStatus == nullptr)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "showPhoneConnectedStatus new fail");
+ return;
+ }
}
/* -------------------------------- 显示耳机连接状态 -------------------------------- */
- showEarPhoneConnectedStatus = dropDownConnectedStatusImageViweInit(EARPHONESCONNECTSTATUS_IMG_X, EARPHONESCONNECTSTATUS_IMG_Y, CONNECTSTATUS_IMG_W, CONNECTSTATUS_IMG_H);
if (showEarPhoneConnectedStatus == nullptr)
{
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "showEarPhoneConnectedStatus new fail");
- return;
+ showEarPhoneConnectedStatus = DropDownConnectedStatusImageViweInit(x + 68, y + 13, 24, 24);
+ if (showEarPhoneConnectedStatus == nullptr)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "showEarPhoneConnectedStatus new fail");
+ return;
+ }
}
/* -------------------------------- 显示蓝牙连接状态 -------------------------------- */
- showBluetoothConnectedStatus = dropDownConnectedStatusImageViweInit(BLUETOOTHCONNECTSTATUS_IMG_X, BLUETOOTHCONNECTSTATUS_IMG_Y, CONNECTSTATUS_IMG_W, CONNECTSTATUS_IMG_H);
if (showBluetoothConnectedStatus == nullptr)
{
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "showBluetoothConnectedStatus new fail");
- return;
+ showBluetoothConnectedStatus = DropDownConnectedStatusImageViweInit(x + 110, y + 13, 24, 24);
+ if (showBluetoothConnectedStatus == nullptr)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "showBluetoothConnectedStatus new fail");
+ return;
+ }
}
/* -------------------------------------------------------------------------- */
UpdatePhoneStatus(GetPhoneConnectedStatus());
group[DROPDOWNVIEW]->Add(showBluetoothConnectedStatus);
}
- /***
- * @brief 初始化时间,日期,星期,电池,信号强度
- */
- bool PullUpDownView::InitBaseData()
+ void PullUpDownView::ClearAll_1(void)
{
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "PullUpDownView::InitBaseData");
- if (!InitSingalComponentsView())
+ if (connectedStatusBackgroundButton != nullptr)
{
- return false;
+ delete connectedStatusBackgroundButton;
+ connectedStatusBackgroundButton = nullptr;
}
-
- /* ---------------------------------- 时间显示 ---------------------------------- */
- showTimeLabel = new UILabel();
- if (showTimeLabel == nullptr)
+ if (showPhoneConnectedStatus != nullptr)
{
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "showTimeLabel new fail");
- return false;
+ delete showPhoneConnectedStatus;
+ showPhoneConnectedStatus = nullptr;
}
- showTimeLabel->SetPosition(TIME_LABEL_X, TIME_LABEL_Y);
- showTimeLabel->SetStyle(STYLE_TEXT_FONT, 50);
- showTimeLabel->SetStyle(STYLE_LINE_HEIGHT, 59);
- showTimeLabel->SetLineBreakMode(UILabel::LINE_BREAK_ADAPT);
- showTimeLabel->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);
- showTimeLabel->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 50);
- /* ---------------------------------- 日期显示 ---------------------------------- */
- showDateLabel = new UILabel();
- if (showDateLabel == nullptr)
+ if (showEarPhoneConnectedStatus != nullptr)
{
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "showDateLabel new fail");
- return false;
+ delete showEarPhoneConnectedStatus;
+ showEarPhoneConnectedStatus = nullptr;
}
- showDateLabel->SetPosition(DATE_LABEL_X, DATE_LABEL_Y);
- showDateLabel->SetStyle(STYLE_TEXT_FONT, 30);
- showDateLabel->SetStyle(STYLE_LINE_HEIGHT, 35);
- showDateLabel->SetLineBreakMode(UILabel::LINE_BREAK_ADAPT);
- showDateLabel->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);
- showDateLabel->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 30);
- /* ---------------------------------- 星期显示 ---------------------------------- */
- showWeekLabel = new UILabel();
- if (showWeekLabel == nullptr)
+ if (showBluetoothConnectedStatus != nullptr)
{
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "showWeekLabel new fail");
- return false;
+ delete showBluetoothConnectedStatus;
+ showBluetoothConnectedStatus = nullptr;
}
- showWeekLabel->SetPosition(WEEK_LABEL_X, WEEK_LABEL_Y);
- showWeekLabel->SetStyle(STYLE_TEXT_FONT, 30);
- showWeekLabel->SetStyle(STYLE_LINE_HEIGHT, 35);
- showWeekLabel->SetLineBreakMode(UILabel::LINE_BREAK_ADAPT);
- showWeekLabel->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);
- showWeekLabel->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 28);
- /* ----------------------------------- 电池 ----------------------------------- */
- batteryimage = new UIImageView();
- if (batteryimage == nullptr)
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "PullUpDownView::ClearAllConnectedStatusComponentsView");
+ }
+ /* -------------------------------------------------------------------------- */
+ /***
+ * @brief 初始化时间,日期,星期,电池,信号强度
+ */
+ void PullUpDownView::InitBaseData()
+ {
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "PullUpDownView::InitBaseData");
+ if (group1 == nullptr)
{
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "batteryimage new fail");
- return false;
+ group1 = new UIViewGroup();
+ if (group1 == nullptr)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "group1 new fail");
+ return;
+ }
}
- batteryimage->SetPosition(258, 180, BATTERY_IMAGE_WIDTH, BATTERY_IMAGE_HEIGHT);
- std::string batteryimagesPath = "/user/res/Battery/Battery-E.bin";
- batteryimage->SetSrc(batteryimagesPath.c_str());
- /* -------------------------------------------------------------------------- */
- progress = new UIBoxProgress();
- if (progress == nullptr)
+ group1->SetPosition(132, 80, 202, 40);
+ group1->SetStyle(STYLE_BACKGROUND_OPA, 0);
+ /* -------------------------------- NoSignal -------------------------------- */
+ if (NoSignal == nullptr)
{
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "progress new fail");
- return false;
+ NoSignal = new UIImageView();
+ if (NoSignal == nullptr)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "NoSignal new fail");
+ return;
+ }
}
- progress->SetPosition(206, 180, PROGRESS_WIDTH, PROGRESS_HEIGHT);
- progress->SetValidHeight(PROGRESS_HEIGHT);
- progress->SetValidWidth(PROGRESS_WIDTH);
- progress->SetValue(20);
- // progress->SetRange(100,0);
- // const char *progressImageSrc = "/user/res/Battery/Battery_Normal.bin";
- // progress->SetImage(progressImageSrc, progressImageSrc);
- progress->SetBackgroundStyle(STYLE_BACKGROUND_OPA, 0x00);
- progress->SetBackgroundStyle(STYLE_TEXT_COLOR, 0xff000000);
- progress->SetForegroundStyle(STYLE_BACKGROUND_COLOR, 0xffffffff);
- progress->SetForegroundStyle(STYLE_TEXT_COLOR, 0xff000000);
- progress->SetForegroundStyle(STYLE_LINE_COLOR, 0xff45A5FF);
-
- group[DROPDOWNVIEW]->Add(progress);
- group[DROPDOWNVIEW]->Add(batteryimage);
- group[DROPDOWNVIEW]->Add(showTimeLabel);
- group[DROPDOWNVIEW]->Add(showDateLabel);
- group[DROPDOWNVIEW]->Add(showWeekLabel);
-
- /* -------------------------------------------------------------------------- */
- UpdateSignalStrengthStatusAndBatteryPosition();
- /* -------------------------------------------------------------------------- */
-
- return true;
- }
-
- // 初始化信号强度相关组件
- bool PullUpDownView::InitSingalComponentsView()
- {
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "PullUpDownView::InitSingalComponentsView");
- /* -------------------------------------------------------------------------- */
- NoSignal = new UIImageView();
- if (NoSignal == nullptr)
- {
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "NoSignal new fail");
- return false;
- }
- NoSignal->SetPosition(160, 176, 36, 38);
+ NoSignal->SetPosition(0, (group1->GetHeight() - 38) / 2, 36, 38);
NoSignal->SetAutoEnable(false);
NoSignal->SetResizeMode(UIImageView::CENTER);
NoSignal->SetSrc(DROPDOWN_NOSIGNAL_IMAGE);
NoSignal->SetVisible(false);
- group[DROPDOWNVIEW]->Add(NoSignal);
- /* -------------------------------------------------------------------------- */
- MobileData = new UIImageView();
+ group1->Add(NoSignal);
+ /* ------------------------------- MobileData ------------------------------- */
if (MobileData == nullptr)
{
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "MobileData new fail");
- return false;
+ MobileData = new UIImageView();
+ if (MobileData == nullptr)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "MobileData new fail");
+ return;
+ }
}
- MobileData->SetPosition(161, 180, 13, 15);
+ MobileData->SetPosition(1, 4, 13, 15);
MobileData->SetAutoEnable(false);
MobileData->SetResizeMode(UIImageView::CENTER);
MobileData->SetSrc(DROPDOWN_MOBILE_DATA_IMAGE);
MobileData->SetVisible(false);
- group[DROPDOWNVIEW]->Add(MobileData);
+ group1->Add(MobileData);
/* -------------------------------------------------------------------------- */
// 定义一个结构体,用于存储 ImageView 的信息
struct ImageViewInfo
};
// 待添加的 ImageView 信息列表
std::vector<ImageViewInfo> imageViewList = {
- {160, 204, 6, 6},
- {170, 196, 6, 14},
- {180, 188, 6, 22},
- {190, 180, 6, 30},
+ {0, 28, 6, 6},
+ {10, 20, 6, 14},
+ {20, 12, 6, 22},
+ {30, 4, 6, 30},
};
// 循环添加 ImageView 到相应的容器中
if (showSignalStrength[i] == nullptr)
{
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "showSignalStrength[%d] new fail", i);
- return false;
+ return;
}
}
showSignalStrength[i]->SetPosition(imageViewList[i].posX, imageViewList[i].posY, imageViewList[i].width, imageViewList[i].height);
showSignalStrength[i]->SetStyle(STYLE_BACKGROUND_COLOR, 0xffffffff);
showSignalStrength[i]->SetStyle(STYLE_BACKGROUND_OPA, 0xff);
showSignalStrength[i]->SetStyle(STYLE_BORDER_RADIUS, 10);
- group[DROPDOWNVIEW]->Add(showSignalStrength[i]);
+ group1->Add(showSignalStrength[i]);
showSignalStrength[i]->SetVisible(false);
}
- /* -------------------------------------------------------------------------- */
+ /* -------------------------------- Singal_4 -------------------------------- */
if (Singal_4 == nullptr)
{
Singal_4 = new UILabel();
}
- Singal_4->SetPosition(201, 176, 40, 47);
+ Singal_4->SetPosition(0, 0, 40, 47);
Singal_4->SetStyle(STYLE_TEXT_FONT, 34);
Singal_4->SetStyle(STYLE_LINE_HEIGHT, 40);
Singal_4->SetText("4G");
Singal_4->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);
Singal_4->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 34);
Singal_4->SetVisible(false);
- group[DROPDOWNVIEW]->Add(Singal_4);
-
- return true;
- }
-
- // 获取信号强度
- int PullUpDownView::GetSignalStrength(void)
- {
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "PullUpDownView::GetSignalStrength");
- int SignalStrength = uapi_dev_runtime_get_cat1_signal(); // 信号强度
- return CalculateSignalBars(SignalStrength);
- }
-
- // 计算信号格
- int PullUpDownView::CalculateSignalBars(int signalStrength)
- {
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "PullUpDownView::CalculateSignalBars");
- if (signalStrength < 0 || signalStrength > 32 || signalStrength == 0)
- return 99; // 无信号 or Invalid signal strength
-
- // if (signalStrength == 32)
- // return 4; // Edge case where signalStrength is exactly at the upper boundary
-
- return (signalStrength / 8) + 1;
- }
-
-#if 1
- // 函数用于更新信号显示的UI
- void PullUpDownView::updateSignalDisplay()
- {
- int sim = uapi_dev_runtime_get_cat1_simstat();
- int cat1_powerOn = uapi_dev_runtime_get_cat1_powerstat();
- int signal = uapi_dev_runtime_get_cat1_signal();
- int network_on = uapi_dev_runtime_get_cat1_networkstat();
- int cat1_network_type = uapi_dev_runtime_get_cat1_networtype();
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "sim = %d", sim);
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "cat1_powerOn = %d", cat1_powerOn);
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "signal = %d", signal);
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "network_on = %d", network_on);
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "cat1_network_type = %d", cat1_network_type);
-
- const int SIGNAL_NO_SIGNAL = 99;
- const int NETWORK_TYPE_NO_NETWORK = 0;
- const int NETWORK_TYPE_4G = 4;
-
- if (sim == 0 || cat1_powerOn == 0)
- {
- // 无信号,无4G图标
- UpdateCat1NoSignalisplay(true);
- UpdateCat14GDisplay(false);
- UpdateSignalBarDisplay(CalculateSignalBars(signal), false);
- UpdateCat1MobileDataDisplay(false);
- }
- else if (cat1_powerOn == 1 && sim == 1)
+ group1->Add(Singal_4);
+ /* ----------------------------------- HD ----------------------------------- */
+ if (HD == nullptr)
{
- if (signal == SIGNAL_NO_SIGNAL) // 计算信号强度
- {
- // 无信号UI显示
- // UpdateCat1NoSignalisplay(true);
- // UpdateCat14GDisplay(false);
- UpdateSignalBarDisplay(CalculateSignalBars(signal), false);
- }
- else
- {
- // 信号强度显示
- UpdateCat1NoSignalisplay(false);
- // UpdateCat14GDisplay(true);
- UpdateSignalBarDisplay(CalculateSignalBars(signal), true);
- }
-
- if (network_on == 0)
- {
- // 无信号,无4G图标 显示
- // UpdateCat1NoSignalisplay(true);
- UpdateCat14GDisplay(false);
- UpdateCat1MobileDataDisplay(false);
- // UpdateSignalBarDisplay(CalculateSignalBars(signal), false);
- }
- else
+ HD = new UIImageView();
+ if (HD == nullptr)
{
- if (cat1_network_type == NETWORK_TYPE_NO_NETWORK)
- {
- // 无信号,无4G图标 显示
- // UpdateCat1NoSignalisplay(true);
- UpdateCat14GDisplay(false);
- UpdateCat1MobileDataDisplay(false);
- // UpdateSignalBarDisplay(CalculateSignalBars(signal), false);
- }
- else if (cat1_network_type == NETWORK_TYPE_4G)
- {
- // 有4G图标,正常显示信号
- // UpdateCat1NoSignalisplay(false);
- UpdateCat14GDisplay(true);
- UpdateCat1MobileDataDisplay(true);
- // UpdateSignalBarDisplay(CalculateSignalBars(signal), true);
- }
- else
- {
- // 无4G图标,正常显示信号
- // UpdateCat1NoSignalisplay(false);
- UpdateCat14GDisplay(false);
- UpdateCat1MobileDataDisplay(true);
- // UpdateSignalBarDisplay(CalculateSignalBars(signal), true);
- }
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "HD new fail");
+ return;
}
}
- }
-#else
- // 函数用于更新信号显示的UI
- void PullUpDownView::updateSignalDisplay()
- {
- int sim = uapi_dev_runtime_get_cat1_simstat();
- int cat1_powerOn = uapi_dev_runtime_get_cat1_powerstat();
- int signal = uapi_dev_runtime_get_cat1_signal();
- int network_on = uapi_dev_runtime_get_cat1_networkstat();
- int cat1_network_type = uapi_dev_runtime_get_cat1_networtype();
-
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "sim = %d", sim);
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "cat1_powerOn = %d", cat1_powerOn);
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "signal = %d", signal);
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "network_on = %d", network_on);
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "cat1_network_type = %d", cat1_network_type);
-
- const int SIGNAL_NO_SIGNAL = 99;
- const int NETWORK_TYPE_NO_NETWORK = 0;
- const int NETWORK_TYPE_4G = 4;
-
- bool showNoSignal = (sim == 0 || cat1_powerOn == 0 || signal == SIGNAL_NO_SIGNAL);
- bool showNo4GIcon = (network_on == 0 || cat1_network_type == NETWORK_TYPE_NO_NETWORK);
-
- if (showNoSignal)
- {
- UpdateCat1NoSignalisplay(true);
- UpdateCat14GDisplay(false);
- UpdateSignalBarDisplay(CalculateSignalBars(signal), false);
- }
- else
- {
- UpdateCat1NoSignalisplay(false);
- UpdateCat14GDisplay(!showNo4GIcon && cat1_network_type == NETWORK_TYPE_4G);
- UpdateSignalBarDisplay(CalculateSignalBars(signal), true);
- }
- }
-
-#endif
-
- // 更新信号强度显示
- void PullUpDownView::UpdateSignalBarDisplay(int signalBars, bool state)
- {
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "PullUpDownView::UpdateSignalBarDisplay");
- for (int i = 0; i < 4; i++)
- {
- showSignalStrength[i]->SetStyle(STYLE_BACKGROUND_COLOR, (i < signalBars) ? COLOR_SIGNAL_ON : COLOR_SIGNAL_OFF);
- showSignalStrength[i]->Invalidate();
- showSignalStrength[i]->SetVisible(state);
- }
- }
-
- // 更新无信号图标显示
- void PullUpDownView::UpdateCat1NoSignalisplay(bool state)
- {
- if (NoSignal != nullptr)
- {
- NoSignal->SetVisible(state);
- }
- }
-
- // 更新4G图标显示
- void PullUpDownView::UpdateCat14GDisplay(bool state)
- {
- if (Singal_4 != nullptr)
- {
- Singal_4->SetVisible(state);
- }
- UpdateBatteryPosition(state);
- }
-
- /*更新移动数据图标显示*/
- void PullUpDownView::UpdateCat1MobileDataDisplay(bool state)
- {
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "PullUpDownView::UpdateCat1MobileDataDisplay %d", state);
- if (MobileData != nullptr)
+ HD->SetPosition(88 + 10, (group1->GetHeight() - 30) / 2, 46, 30);
+ HD->SetAutoEnable(false);
+ HD->SetResizeMode(UIImageView::CENTER);
+ HD->SetSrc(DROPDOWN_HD_IMAGE);
+ HD->SetVisible(false);
+ group1->Add(HD);
+ /* ----------------------------------- 电池 ----------------------------------- */
+ batteryimage = new UIImageView();
+ if (batteryimage == nullptr)
{
- MobileData->SetVisible(state);
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "batteryimage new fail");
+ return;
}
- }
-
- // 更新电池位置
- void PullUpDownView::UpdateBatteryPosition(bool state)
- {
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "PullUpDownView::UpdateBatteryPosition");
- if (state == false)
+ batteryimage->SetPosition(HD->GetX() + HD->GetWidth() + 10, (group1->GetHeight() - 30) / 2, 48, 30);
+ std::string batteryimagesPath = "/user/res/Battery/Battery-E.bin";
+ batteryimage->SetSrc(batteryimagesPath.c_str());
+ group1->Add(batteryimage);
+ /* -------------------------------------------------------------------------- */
+ progress = new UIBoxProgress();
+ if (progress == nullptr)
{
- batteryimage->SetPosition(209, 180, BATTERY_IMAGE_WIDTH, BATTERY_IMAGE_HEIGHT);
- progress->SetPosition(215, 186, PROGRESS_WIDTH, PROGRESS_HEIGHT);
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "progress new fail");
+ return;
}
- else
+ progress->SetPosition(batteryimage->GetX() + 7, batteryimage->GetY() + 6, 30, 18);
+ progress->SetValidWidth(30);
+ progress->SetValidHeight(18);
+ progress->SetRange(100, 0);
+ progress->SetStyle(STYLE_BORDER_RADIUS, 3);
+ progress->SetBackgroundStyle(STYLE_BACKGROUND_OPA, 0x00);
+ progress->SetBackgroundStyle(STYLE_TEXT_COLOR, 0xff000000);
+ progress->SetForegroundStyle(STYLE_BACKGROUND_COLOR, 0xffffffff);
+ progress->SetForegroundStyle(STYLE_TEXT_COLOR, 0xff000000);
+ progress->SetForegroundStyle(STYLE_LINE_COLOR, 0xff45A5FF);
+ group1->Add(progress);
+ /* -------------------------------------------------------------------------- */
+ group[DROPDOWNVIEW]->Add(group1);
+ /* --------------------------------- 显示日期和星期 -------------------------------- */
+ showDateAndWeekLabel = new UILabel();
+ if (showDateAndWeekLabel == nullptr)
{
- batteryimage->SetPosition(258, 180, BATTERY_IMAGE_WIDTH, BATTERY_IMAGE_HEIGHT);
- progress->SetPosition(264, 186, PROGRESS_WIDTH, PROGRESS_HEIGHT);
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "showDateAndWeekLabel new fail");
+ return;
}
- batteryimage->Invalidate();
- progress->Invalidate();
- }
-
- // 更新信号强度和电池位置
- void PullUpDownView::UpdateSignalStrengthStatusAndBatteryPosition()
- {
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "PullUpDownView::UpdateSignalStrengthStatusAndBatteryPosition");
- updateSignalDisplay();
-
- int a2dp = uapi_a2dp_snk_get_device_connect_state();
- int hfp = uapi_hfp_connect_state();
- bool bluetoothstatus = (a2dp == 0 && hfp == 0) ? false : true;
- UpdateBlueToothStatus(bluetoothstatus);
- // UpdateBatteryPosition(GetSignalStrength());
+ showDateAndWeekLabel->SetPosition(128, 130, 210, 30);
+ showDateAndWeekLabel->SetStyle(STYLE_TEXT_FONT, 30);
+ showDateAndWeekLabel->SetStyle(STYLE_LINE_HEIGHT, 35);
+ showDateAndWeekLabel->SetTextColor(Color::GetColorFromRGBA(0xaa, 0xaa, 0xaa, 0xff));
+ showDateAndWeekLabel->SetLineBreakMode(UILabel::LINE_BREAK_ADAPT);
+ showDateAndWeekLabel->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);
+ showDateAndWeekLabel->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 30);
+ group[DROPDOWNVIEW]->Add(showDateAndWeekLabel);
+ /* -------------------------------------------------------------------------- */
+ UpdateSignalStrengthStatusAndBatteryPosition();
+ /* -------------------------------------------------------------------------- */
+ MainPresenterSample::GetInstance()->UpdataBaseData();
+ /* -------------------------------------------------------------------------- */
}
-
- // 下拉视图初始化
- bool PullUpDownView::PullUpDownViewInit()
+ void PullUpDownView::ClearAll_2(void)
{
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "PullUpDownView::InitView");
-
- group[DROPDOWNVIEW] = new UIViewGroup();
- if (group[DROPDOWNVIEW] == nullptr)
+ if (group1 != nullptr)
{
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "group[DROPDOWNVIEW] new fail!!");
- return false;
- }
- group[DROPDOWNVIEW]->SetPosition(0, 0, 466, 466);
- group[DROPDOWNVIEW]->SetStyle(STYLE_BACKGROUND_OPA, OPA_TRANSPARENT);
- group[DROPDOWNVIEW]->SetViewIndex(0);
- group[DROPDOWNVIEW]->SetFullScreenBlur(true);
- createDropDownIconImageViwe();
- createDropDownConnectedStatusImageViwe();
-
- if (InitBaseData())
- {
- MainPresenterSample::GetInstance()->UpdataBaseData();
- }
- else
- {
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "PullUpDownView::InitBaseData Error!");
- return false;
- }
- SetTouchable(true);
- SetIntercept(true);
- Add(group[DROPDOWNVIEW]);
- return true;
- }
-
- void PullUpDownView::PreLoad(void)
- {
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "PullUpDownView::PreLoad");
- if (!viewiInitStatus)
- {
- PullUpDownViewInit();
- viewiInitStatus = true;
- }
- }
-
- void PullUpDownView::UnLoad(void)
- {
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "PullUpDownView::UnLoad");
- }
-
- // 更新手机连接状态
- void PullUpDownView::UpdatePhoneStatus(int status)
- {
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "PullUpDownView::UpdatePhoneStatus");
- if (showPhoneConnectedStatus == nullptr)
- {
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "showPhoneConnectedStatus nullptr");
- return;
- }
- showPhoneConnectedStatus->SetSrc(status ? DROPDOWN_PHONECONNECTED_IMAGE : DROPDOWN_PHONEDISCONNECTED_IMAGE);
- showPhoneConnectedStatus->Invalidate();
-
- if (GetConnectedStatusView() != nullptr)
- GetConnectedStatusView()->UpdatePhoneConnectedStatus(status);
-
- return;
- }
-
- // 更新蓝牙耳机连接状态
- void PullUpDownView::UpdateEarPhoneStatus(int status)
- {
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "PullUpDownView::UpdateEarPhoneStatus");
- if (showEarPhoneConnectedStatus == nullptr)
- {
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "showEarPhoneConnectedStatus nullptr");
- return;
- }
- showEarPhoneConnectedStatus->SetSrc(status ? DROPDOWN_EARPHONESCONNECTED_IMAGE : DROPDOWN_EARPHONESDISCONNECTED_IMAGE);
- showEarPhoneConnectedStatus->Invalidate();
-
- if (GetConnectedStatusView() != nullptr)
- GetConnectedStatusView()->UpdateEarPhoneConnectedStatus(status);
-
- return;
- }
-
- // 更新蓝牙连接状态
- void PullUpDownView::UpdateBlueToothStatus(int status)
- {
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "PullUpDownView::UpdateBlueToothStatus");
- if (showBluetoothConnectedStatus == nullptr)
- {
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "showBluetoothConnectedStatus nullptr");
- return;
- }
- showBluetoothConnectedStatus->SetSrc(status ? DROPDOWN_BLUETOOTHCONNECTED_IMAGE : DROPDOWN_BLUETOOTHDISCONNECTED_IMAGE);
- showBluetoothConnectedStatus->Invalidate();
-
- if (GetConnectedStatusView() != nullptr)
- GetConnectedStatusView()->UpdateBlueToothConnectedStatus(status);
-
- return;
- }
-
- /*更新勿扰模式状态*/
- void PullUpDownView::UpdateDnotDisturbStatus(int status)
- {
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "PullUpDownView::UpdateDnotDisturbStatus");
- if (dropDnotDisturb != nullptr)
- {
- dropDnotDisturb->SetStyle(STYLE_BACKGROUND_COLOR, status ? 0xff8e20e2 : 0xff191919);
- dropDnotDisturb->Invalidate();
- }
- else
- {
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "dropIconBackground[DNOTDISTURB_INDEX] is nullptr");
- return;
- }
- }
-
- UILabel *PullUpDownView::GetTimeLabel()
- {
- return showTimeLabel;
- }
- UILabel *PullUpDownView::GetDateLabel()
- {
- return showDateLabel;
- }
- UILabel *PullUpDownView::GetWeekLabel()
- {
- return showWeekLabel;
- }
- UIBoxProgress *PullUpDownView::GetProgress()
- {
- return progress;
- }
- /* ------------------------------ 下拉界面切换到连接状态视图 ----------------------------- */
- // 切换到"下拉控制中心"视图
- bool PullUpDownView::ChangeDropDownView(int16_t thisView)
- {
- if (group[thisView] == nullptr)
- {
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "PullUpDownView::ChangeDropDownView");
- Add(group[thisView]);
- }
- return true;
- }
-
- // 切换到"连接状态"视图
- bool PullUpDownView::ChangeConnectedStatusView(int16_t thisView)
- {
- if (group[thisView] == nullptr)
- {
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "PullUpDownView::ChangeConnectedStatusView");
- connectedStatusView = new ConnectedStatusView();
- if (connectedStatusView == nullptr)
- {
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "PullUpDownView:: new scrollView[%d] fail", thisView);
- return false;
- }
- group[thisView] = connectedStatusView->ConnectedStatusViewInit();
- Add(group[thisView]);
- }
- return true;
- }
-
- struct PullUpDownViewMapper
- {
- const int16_t viewId;
- bool (PullUpDownView::*func)(int16_t thisView);
- };
-
- static const PullUpDownViewMapper ViewMapper[] = {
- {DROPDOWNVIEW, &PullUpDownView::ChangeDropDownView},
- {CONNECTEDSTATUSVIEW, &PullUpDownView::ChangeConnectedStatusView},
- };
-
- bool PullUpDownView::ClickFunc(int16_t interface)
- {
- int funcSize = sizeof(ViewMapper) / sizeof(ViewMapper[0]);
- for (int i = 0; i < funcSize; i++)
- {
- if (interface == ViewMapper[i].viewId)
+ group1->RemoveAll();
+ for (int i = 0; i < 4; i++)
{
- bool jug = (this->*(ViewMapper[i].func))(interface);
- if (jug == false)
+ if (showSignalStrength[i] != nullptr)
{
- return false;
+ delete showSignalStrength[i];
+ showSignalStrength[i] = nullptr;
}
- return true;
}
- }
- return false;
- }
-
- void PullUpDownView::ChangeView(int16_t hideView, int16_t showView)
- {
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "PullUpDownView::ChangeView");
- if (hideView > MAX_DROPDOWNVIEWID)
- {
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "PullUpDownView:: SystemViewId Overstep ones bounds");
- return;
- }
- group[hideView]->SetVisible(false);
- ClickFunc(showView);
- group[showView]->SetVisible(true);
- Invalidate();
- }
-
- ConnectedStatusView *PullUpDownView::GetConnectedStatusView(void)
- {
- return connectedStatusView;
- }
- /* -------------------------------------------------------------------------- */
-}
-#else
-/*
- * Copyright (c) CompanyNameMagicTag 2021-2021. All rights reserved.
- * Description: WeekStep
- * Author:
- * Create: 2021-09-11
- */
-
-#include "PullUpDownView.h"
-#include "wearable_log.h"
-#include "UiConfig.h"
-#include "common/screen.h"
-#include "main/include/MainPresenterSample.h"
-#include "screensetting/include/ScreenModels.h"
-#include "settings/include/SettingModel.h"
-#include "ui_resource_image.h"
-#include "dnotdisturb/include/DnotDisturbModel.h"
-#include "custom_utils.h"
-#include "custom_runtime.h"
-namespace OHOS
-{
-
- /* ---------------------------------- 坐标位置 ---------------------------------- */
- // 设置
- constexpr int16_t SETTING_IMG_X = 30;
- constexpr int16_t SETTING_IMG_Y = 186;
-
- // 手电筒
- constexpr int16_t LIGHTING_IMG_X = 76;
- constexpr int16_t LIGHTING_IMG_Y = 76;
-
- // 勿扰
- constexpr int16_t DNOTDISTURB_IMG_X = 186;
- constexpr int16_t DNOTDISTURB_IMG_Y = 30;
-
- // 省电
- constexpr int16_t SAVEPOWER_IMG_X = 296;
- constexpr int16_t SAVEPOWER_IMG_Y = 76;
-
- // 找手机
- constexpr int16_t FINDPHONE_IMG_X = 342;
- constexpr int16_t FINDPHONE_IMG_Y = 186;
-
- // line
- constexpr int16_t LINE_IMG_X = 193;
- constexpr int16_t LINE_IMG_Y = 430;
-
- // icon图片大小
- constexpr int16_t ICON_IMG_SIZE_W = 94;
- constexpr int16_t ICON_IMG_SIZE_H = 94;
-
- // 电池
- constexpr int16_t BATTERY_X = 209;
- constexpr int16_t BATTERY_Y = 180;
-
- // 时间
- constexpr int16_t TIME_LABEL_X = 172;
- constexpr int16_t TIME_LABEL_Y = 230;
-
- // 日期
- constexpr int16_t DATE_LABEL_X = 110;
- constexpr int16_t DATE_LABEL_Y = 300;
-
- // 星期
- constexpr int16_t WEEK_LABEL_X = 295;
- constexpr int16_t WEEK_LABEL_Y = 300;
-
- // 手机连接状态
- constexpr int16_t PHONECONNECTSTATUS_BUTTON_X = 123;
- constexpr int16_t PHONECONNECTSTATUS_BUTTON_Y = 350;
- constexpr int16_t PHONECONNECTSTATUS_BUTTON_W = 60;
- constexpr int16_t PHONECONNECTSTATUS_BUTTON_H = 60;
-
- // 耳机连接状态
- constexpr int16_t EARPHONESCONNECTSTATUS_BUTTON_X = 203;
- constexpr int16_t EARPHONESCONNECTSTATUS_BUTTON_Y = 350;
- constexpr int16_t EARPHONESCONNECTSTATUS_BUTTON_W = 60;
- constexpr int16_t EARPHONESCONNECTSTATUS_BUTTON_H = 60;
-
- // 蓝牙连接状态
- constexpr int16_t BLUETOOTHCONNECTSTATUS_BUTTON_X = 283;
- constexpr int16_t BLUETOOTHCONNECTSTATUS_BUTTON_Y = 350;
- constexpr int16_t BLUETOOTHCONNECTSTATUS_BUTTON_W = 60;
- constexpr int16_t BLUETOOTHCONNECTSTATUS_BUTTON_H = 60;
-
- static const int64_t COLOR_SIGNAL_ON = 0xffffffff;
- static const int64_t COLOR_SIGNAL_OFF = 0xff383838;
- static const int BATTERY_IMAGE_WIDTH = 48;
- static const int BATTERY_IMAGE_HEIGHT = 30;
- static const int PROGRESS_WIDTH = 30;
- static const int PROGRESS_HEIGHT = 18;
- /* -------------------------------------------------------------------------- */
- std::string getWeekString(int wday)
- {
- std::string weekDays[] = {"星期天", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六"};
- return weekDays[wday];
- }
- /* -------------------------------------------------------------------------- */
- static PullUpDownView *g_pPullUpDownView = nullptr;
- PullUpDownView::PullUpDownView()
- {
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "PullUpDownView::PullUpDownView");
- g_pPullUpDownView = this;
- }
-
- PullUpDownView::~PullUpDownView()
- {
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "PullUpDownView::~PullUpDownView");
- ClearAll();
- g_pPullUpDownView = nullptr;
- }
-
- PullUpDownView *PullUpDownView::GetInstance(void)
- {
- return g_pPullUpDownView;
- }
-
- // 清除信号强度相关组件
- void PullUpDownView::ClearAllSingalComponentsView()
- {
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "PullUpDownView::ClearAllSingalComponentsView");
- if (NoSignal != nullptr)
- {
- delete NoSignal;
- NoSignal = nullptr;
- }
-
- for (int i = 0; i < 4; i++)
- {
- if (showSignalStrength[i] != nullptr)
+ if (Singal_4 != nullptr)
{
- delete showSignalStrength[i];
- showSignalStrength[i] = nullptr;
+ delete Singal_4;
+ Singal_4 = nullptr;
}
- }
-
- if (Singal_4 != nullptr)
- {
- delete Singal_4;
- Singal_4 = nullptr;
- }
- }
-
- // 清除所有与连接状态相关的视图组件
- void PullUpDownView::ClearAllConnectedStatusComponentsView()
- {
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "PullUpDownView::ClearAllConnectedStatusComponentsView");
- if (connectedStatusBackgroundButton != nullptr)
- {
- delete connectedStatusBackgroundButton;
- connectedStatusBackgroundButton = nullptr;
- }
-
- if (showPhoneConnectedStatus != nullptr)
- {
- delete showPhoneConnectedStatus;
- showPhoneConnectedStatus = nullptr;
- }
-
- if (showEarPhoneConnectedStatus != nullptr)
- {
- delete showEarPhoneConnectedStatus;
- showEarPhoneConnectedStatus = nullptr;
- }
-
- if (showBluetoothConnectedStatus != nullptr)
- {
- delete showBluetoothConnectedStatus;
- showBluetoothConnectedStatus = nullptr;
- }
- }
-
- void PullUpDownView::ClearAll()
- {
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "PullUpDownView::ClearAll");
- RemoveAll();
- UnLoadPullUpDownImageRes(); // 切换slice的时候也要卸载资源放在ImageCach空间不够
- if (group[DROPDOWNVIEW] != nullptr)
- {
- group[DROPDOWNVIEW]->RemoveAll();
- group[DROPDOWNVIEW]->ClearBackgroundBlur();
- delete group[DROPDOWNVIEW];
- group[DROPDOWNVIEW] = nullptr;
- }
-
- for (int i = 0; i < MAX_INDEX; i++)
- {
- if (dropIconBackground[i] != nullptr)
+ if (NoSignal != nullptr)
{
- delete dropIconBackground[i];
- dropIconBackground[i] = nullptr;
+ delete NoSignal;
+ NoSignal = nullptr;
}
- }
-
- if (dropSetting != nullptr)
- {
- delete dropSetting;
- dropSetting = nullptr;
- }
-
- if (dropLighting != nullptr)
- {
- delete dropLighting;
- dropLighting = nullptr;
- }
-
- if (dropDnotDisturb != nullptr)
- {
- delete dropDnotDisturb;
- dropDnotDisturb = nullptr;
- }
-
- if (dropLine != nullptr)
- {
- delete dropLine;
- dropLine = nullptr;
- }
-
- if (dropSavePower != nullptr)
- {
- delete dropSavePower;
- dropSavePower = nullptr;
- }
-
- if (drofindPhone != nullptr)
- {
- delete drofindPhone;
- drofindPhone = nullptr;
- }
-
- if (showTimeLabel != nullptr)
- {
- delete showTimeLabel;
- showTimeLabel = nullptr;
- }
-
- if (showDateLabel != nullptr)
- {
- delete showDateLabel;
- showDateLabel = nullptr;
- }
-
- if (showWeekLabel != nullptr)
- {
- delete showWeekLabel;
- showWeekLabel = nullptr;
- }
- /* -------------------------------------------------------------------------- */
- ClearAllSingalComponentsView();
- ClearAllConnectedStatusComponentsView();
- /* -------------------------------------------------------------------------- */
- if (batteryimage != nullptr)
- {
- delete batteryimage;
- batteryimage = nullptr;
- }
-
- if (progress != nullptr)
- {
- delete progress;
- progress = nullptr;
- }
-
- if (progresscallback_ != nullptr)
- {
- delete progresscallback_;
- progresscallback_ = nullptr;
- }
-
- if (progressanimator_ != nullptr)
- {
- progressanimator_->Stop();
- delete progressanimator_;
- progressanimator_ = nullptr;
- }
-
- if (connectedStatusView != nullptr)
- {
- delete connectedStatusView;
- connectedStatusView = nullptr;
- group[CONNECTEDSTATUSVIEW] = nullptr;
- }
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "PullUpDownView::ClearAll end!!");
- }
-
- /// @brief 初始化icon图标背景
- /// @param void
- void PullUpDownView::InitViewImgBackGround(void)
- {
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "PullUpDownView::InitViewImgBackGround");
- for (int i = 0; i < MAX_INDEX; i++)
- {
- dropIconBackground[i] = new UIImageView();
- if (dropIconBackground[i] == nullptr)
+ if (MobileData != nullptr)
{
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "dropIconBackground[%d] new fail", i);
- return;
+ delete MobileData;
+ MobileData = nullptr;
}
- group[DROPDOWNVIEW]->Add(dropIconBackground[i]);
- }
- dropIconBackground[SETTING_INDEX]->SetPosition(SETTING_IMG_X, SETTING_IMG_Y);
- dropIconBackground[LIGHTING_INDEX]->SetPosition(LIGHTING_IMG_X, LIGHTING_IMG_Y);
- dropIconBackground[DNOTDISTURB_INDEX]->SetPosition(DNOTDISTURB_IMG_X, DNOTDISTURB_IMG_Y);
- dropIconBackground[SAVEPOWER_INDEX]->SetPosition(SAVEPOWER_IMG_X, SAVEPOWER_IMG_Y);
- dropIconBackground[FINDPHONE_INDEX]->SetPosition(FINDPHONE_IMG_X, FINDPHONE_IMG_Y);
- // for (int i = 0; i < MAX_INDEX; i++)
- // {
- // if (i == DNOTDISTURB_INDEX && DnotDisturbModel::GetInstance().GetDoNotDisturbModeEnabled() == true)
- // {
- // ScreenModels::GetInstance()->LoadAppImages(DROPDOWN_IAMGES, dropIconBackground[i], DROPDOWN_ICONELLIPSEPURPLE);
- // }
- // else
- // {
- // ScreenModels::GetInstance()->LoadAppImages(DROPDOWN_IAMGES, dropIconBackground[i], DROPDOWN_ICONELLIPSEBLACK);
- // }
- // group[DROPDOWNVIEW]->Add(dropIconBackground[i]);
- // }
- }
-
- /// @brief 初始化icon图标
- /// @param void
- void PullUpDownView::InitViewImg(void)
- {
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "PullUpDownView::InitViewImg");
- UIView::OnClickListener *clickListener = (UIView::OnClickListener *)OHOS::MainPresenterSample::GetInstance();
- InitViewImgBackGround();
- /* ---------------------------------- 下拉设置图片 ---------------------------------- */
- dropSetting = new UIImageView();
- if (dropSetting == nullptr)
- {
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "dropSetting new fail");
- return;
- }
- dropSetting->SetPosition(SETTING_IMG_X, SETTING_IMG_Y, ICON_IMG_SIZE_W, ICON_IMG_SIZE_H);
- dropSetting->SetAutoEnable(false);
- dropSetting->SetResizeMode(UIImageView::CENTER);
- // ScreenModels::GetInstance()->LoadAppImages(DROPDOWN_IAMGES, dropSetting, DROPDOWN_SETTING);
- dropSetting->SetViewId(DROPDOWN_CLICK_SETTING); // 进入设置界面
- dropSetting->SetTouchable(true);
- dropSetting->SetOnClickListener(clickListener);
- /* ----------------------------------- 蓝牙 ----------------------------------- */
- dropLighting = new UIImageView();
- if (dropLighting == nullptr)
- {
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "dropLighting new fail");
- return;
- }
- dropLighting->SetPosition(LIGHTING_IMG_X, LIGHTING_IMG_Y, ICON_IMG_SIZE_W, ICON_IMG_SIZE_H);
- dropLighting->SetAutoEnable(false);
- dropLighting->SetResizeMode(UIImageView::CENTER);
- // ScreenModels::GetInstance()->LoadAppImages(DROPDOWN_IAMGES, dropLighting, DROPDOWN_BLUETOOTH);
- dropLighting->SetViewId(DROPDOWN_CLICK_BLUETOOTH); // 进入亮屏界面
- dropLighting->SetTouchable(true);
- dropLighting->SetOnClickListener(clickListener);
- /* ----------------------------------- 勿扰模式 ----------------------------------- */
- dropDnotDisturb = new UIImageView();
- if (dropDnotDisturb == nullptr)
- {
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "dropDnotDisturb new fail");
- return;
- }
- dropDnotDisturb->SetPosition(DNOTDISTURB_IMG_X, DNOTDISTURB_IMG_Y, ICON_IMG_SIZE_W, ICON_IMG_SIZE_H);
- dropDnotDisturb->SetAutoEnable(false);
- dropDnotDisturb->SetResizeMode(UIImageView::CENTER);
- // ScreenModels::GetInstance()->LoadAppImages(DROPDOWN_IAMGES, dropDnotDisturb, DROPDOWN_DNOTDISTURB);
- dropDnotDisturb->SetViewId(DROPDOWN_CLICK_DNOTDISTURB); // 进入勿扰模式界面
- dropDnotDisturb->SetTouchable(true);
- dropDnotDisturb->SetOnClickListener(clickListener);
- /* ----------------------------------- 省电 ----------------------------------- */
- dropSavePower = new UIImageView();
- if (dropSavePower == nullptr)
- {
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "dropSavePower new fail");
- return;
- }
- dropSavePower->SetPosition(SAVEPOWER_IMG_X, SAVEPOWER_IMG_Y, ICON_IMG_SIZE_W, ICON_IMG_SIZE_H);
- dropSavePower->SetAutoEnable(false);
- dropSavePower->SetResizeMode(UIImageView::CENTER);
- // ScreenModels::GetInstance()->LoadAppImages(DROPDOWN_IAMGES, dropSavePower, DROPDOWN_SAVEPOWER);
- dropSavePower->SetViewId(DROPDOWN_CLICK_SAVEELE); // 进入省电界面
-
- dropSavePower->SetTouchable(true);
- dropSavePower->SetOnClickListener(clickListener);
- /* ----------------------------------- 找手机 ---------------------------------- */
- drofindPhone = new UIImageView();
- if (drofindPhone == nullptr)
- {
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "drofindPhone new fail");
- return;
- }
- drofindPhone->SetPosition(FINDPHONE_IMG_X, FINDPHONE_IMG_Y, ICON_IMG_SIZE_W, ICON_IMG_SIZE_H);
- drofindPhone->SetAutoEnable(false);
- drofindPhone->SetResizeMode(UIImageView::CENTER);
- // ScreenModels::GetInstance()->LoadAppImages(DROPDOWN_IAMGES, drofindPhone, DROPDOWN_FINDPHONE);
- drofindPhone->SetViewId(DROPDOWN_CLICK_FINDMYPHONE); // 找手机界面
- drofindPhone->SetTouchable(true);
- drofindPhone->SetOnClickListener(clickListener);
- /* -------------------------------- dropLine -------------------------------- */
- dropLine = new UIImageView();
- if (dropLine == nullptr)
- {
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "dropLine new fail");
- return;
- }
- dropLine->SetPosition(LINE_IMG_X, LINE_IMG_Y, ICON_IMG_SIZE_W, ICON_IMG_SIZE_H);
- // ScreenModels::GetInstance()->LoadAppImages(DROPDOWN_IAMGES, dropLine, DROPDOWN_LINE);
- /* -------------------------------- 添加组件到视图上 -------------------------------- */
- group[DROPDOWNVIEW]->Add(dropSetting);
- group[DROPDOWNVIEW]->Add(dropLighting);
- group[DROPDOWNVIEW]->Add(dropDnotDisturb);
- group[DROPDOWNVIEW]->Add(dropSavePower);
- group[DROPDOWNVIEW]->Add(drofindPhone);
- group[DROPDOWNVIEW]->Add(dropLine);
- }
-
- // 获取手机连接状态
- bool PullUpDownView::GetPhoneConnectedStatus(void)
- {
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "PullUpDownView::GetPhoneConnectedStatus");
- // uint8_t ret = uapi_dev_runtime_get_ble_connect_stat();
- // WEARABLE_LOGI(WEARABLE_LOG_MODULE_APP, "ble phone connect stat = %d", ret);
- // if (ret == 1)
- // return true;
- // else
- // return false;
-
- return SettingModel::GetInstance().GetPhoneConnectStatus();
- }
-
- // 获取蓝牙耳机连接状态
- bool PullUpDownView::GetEarPhoneConnectedStatus(void)
- {
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "PullUpDownView::GetEarPhoneConnectedStatus");
- // uint8_t ret = uapi_dev_runtime_get_earphone_connect_stat();
- // WEARABLE_LOGI(WEARABLE_LOG_MODULE_APP, "earphone connect stat = %d", ret);
- // if (ret == 1)
- // return true;
- // else
- // return false;
-
- return SettingModel::GetInstance().GetEarPhoneConnectStatus();
- }
-
- // 获取蓝牙连接状态
- bool PullUpDownView::GetBlueToothConnectedStatus(void)
- {
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "PullUpDownView::GetBlueToothConnectedStatus");
- // uint8_t ret = uapi_dev_runtime_get_br_connect_stat();
- // WEARABLE_LOGI(WEARABLE_LOG_MODULE_APP, "br connect stat = %d [0 no connect, 1 a2dp, 2 hfp, 3 both]", ret);
- // if (ret != 0)
- // return true;
- // else
- // return false;
-
- return SettingModel::GetInstance().GetBlueToothConnectStatus();
- }
-
- /// @brief 初始化与连接状态相关组件
- /// @param void
- void PullUpDownView::InitConnectedStatusImage(void)
- {
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "PullUpDownView::InitConnectedStatusImage");
- connectedStatusBackgroundButton = new UIButton();
- if (connectedStatusBackgroundButton == nullptr)
- {
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "connectedStatusBackgroundButton new fail");
- return;
- }
- connectedStatusBackgroundButton->SetPosition(113, 348, 240, 64);
- connectedStatusBackgroundButton->SetViewId(CONNECTEDSTATUSBACKGROUNDBUTTON);
- connectedStatusBackgroundButton->SetStyle(STYLE_BACKGROUND_COLOR, 0xffffffff);
- connectedStatusBackgroundButton->SetStyle(STYLE_BACKGROUND_OPA, 0x00);
- connectedStatusBackgroundButton->SetStyleForState(STYLE_BACKGROUND_COLOR, 0xffffffff, UIButton::PRESSED);
- connectedStatusBackgroundButton->SetStyleForState(STYLE_BACKGROUND_OPA, 0x00, UIButton::PRESSED);
- connectedStatusBackgroundButton->SetStyleForState(STYLE_BORDER_COLOR, 0xffffffff, UIButton::PRESSED);
- connectedStatusBackgroundButton->SetStyleForState(STYLE_BORDER_OPA, 0x00, UIButton::PRESSED);
- UIView::OnClickListener *clickListener = (UIView::OnClickListener *)OHOS::MainPresenterSample::GetInstance();
- connectedStatusBackgroundButton->SetOnClickListener(clickListener);
- group[DROPDOWNVIEW]->Add(connectedStatusBackgroundButton);
- /* -------------------------------- 显示手机连接状态 -------------------------------- */
- showPhoneConnectedStatus = new UIImageView();
- if (showPhoneConnectedStatus == nullptr)
- {
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "showPhoneConnectedStatus new fail");
- return;
- }
- showPhoneConnectedStatus->SetPosition(PHONECONNECTSTATUS_BUTTON_X, PHONECONNECTSTATUS_BUTTON_Y, PHONECONNECTSTATUS_BUTTON_W, PHONECONNECTSTATUS_BUTTON_H);
- showPhoneConnectedStatus->SetAutoEnable(false);
- showPhoneConnectedStatus->SetResizeMode(UIImageView::CENTER);
- showPhoneConnectedStatus->SetStyle(STYLE_BORDER_RADIUS, 30);
- // if (GetPhoneConnectedStatus()) // 获取手机连接状态
- // {
- // ScreenModels::GetInstance()->LoadAppImages(DROPDOWN_IAMGES, showPhoneConnectedStatus, DROPDOWN_PHONECONNECTED);
- // }
- // else
- // {
- // ScreenModels::GetInstance()->LoadAppImages(DROPDOWN_IAMGES, showPhoneConnectedStatus, DROPDOWN_PHONEDISCONNECTED);
- // }
-
- /* -------------------------------- 显示耳机连接状态 -------------------------------- */
- showEarPhoneConnectedStatus = new UIImageView();
- if (showEarPhoneConnectedStatus == nullptr)
- {
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "showEarPhoneConnectedStatus new fail");
- return;
- }
- showEarPhoneConnectedStatus->SetPosition(EARPHONESCONNECTSTATUS_BUTTON_X, EARPHONESCONNECTSTATUS_BUTTON_Y, EARPHONESCONNECTSTATUS_BUTTON_W, EARPHONESCONNECTSTATUS_BUTTON_H);
- showEarPhoneConnectedStatus->SetAutoEnable(false);
- showEarPhoneConnectedStatus->SetResizeMode(UIImageView::CENTER);
- showEarPhoneConnectedStatus->SetStyle(STYLE_BORDER_RADIUS, 30);
- // if (GetEarPhoneConnectedStatus()) // 获取耳机连接状态
- // {
- // ScreenModels::GetInstance()->LoadAppImages(DROPDOWN_IAMGES, showEarPhoneConnectedStatus, DROPDOWN_EARPHONESCONNECTED);
- // }
- // else
- // {
- // ScreenModels::GetInstance()->LoadAppImages(DROPDOWN_IAMGES, showEarPhoneConnectedStatus, DROPDOWN_EARPHONESDISCONNECTED);
- // }
-
- /* -------------------------------- 显示蓝牙连接状态 -------------------------------- */
- showBluetoothConnectedStatus = new UIImageView();
- if (showBluetoothConnectedStatus == nullptr)
- {
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "showBluetoothConnectedStatus new fail");
- return;
- }
- showBluetoothConnectedStatus->SetPosition(BLUETOOTHCONNECTSTATUS_BUTTON_X, BLUETOOTHCONNECTSTATUS_BUTTON_Y, BLUETOOTHCONNECTSTATUS_BUTTON_W, BLUETOOTHCONNECTSTATUS_BUTTON_H);
- showBluetoothConnectedStatus->SetAutoEnable(false);
- showBluetoothConnectedStatus->SetResizeMode(UIImageView::CENTER);
- showBluetoothConnectedStatus->SetStyle(STYLE_BORDER_RADIUS, 30);
- // if (GetBlueToothConnectedStatus()) // 获取蓝牙连接状态
- // {
- // ScreenModels::GetInstance()->LoadAppImages(DROPDOWN_IAMGES, showBluetoothConnectedStatus, DROPDOWN_BLUETOOTHCONNECTED);
- // }
- // else
- // {
- // ScreenModels::GetInstance()->LoadAppImages(DROPDOWN_IAMGES, showBluetoothConnectedStatus, DROPDOWN_BLUETOOTHDISCONNECTED);
- // }
- /* -------------------------------------------------------------------------- */
- group[DROPDOWNVIEW]->Add(showPhoneConnectedStatus);
- group[DROPDOWNVIEW]->Add(showEarPhoneConnectedStatus);
- group[DROPDOWNVIEW]->Add(showBluetoothConnectedStatus);
- }
-
- /***
- * @brief 初始化时间,日期,星期,电池,信号强度
- */
- bool PullUpDownView::InitBaseData()
- {
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "PullUpDownView::InitBaseData");
- if (!InitSingalComponentsView())
- {
- return false;
- }
-
- /* ---------------------------------- 时间显示 ---------------------------------- */
- showTimeLabel = new UILabel();
- if (showTimeLabel == nullptr)
- {
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "showTimeLabel new fail");
- return false;
- }
- showTimeLabel->SetPosition(TIME_LABEL_X, TIME_LABEL_Y);
- showTimeLabel->SetStyle(STYLE_TEXT_FONT, 50);
- showTimeLabel->SetStyle(STYLE_LINE_HEIGHT, 59);
- showTimeLabel->SetLineBreakMode(UILabel::LINE_BREAK_ADAPT);
- showTimeLabel->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);
- showTimeLabel->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 50);
- /* ---------------------------------- 日期显示 ---------------------------------- */
- showDateLabel = new UILabel();
- if (showDateLabel == nullptr)
- {
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "showDateLabel new fail");
- return false;
- }
- showDateLabel->SetPosition(DATE_LABEL_X, DATE_LABEL_Y);
- showDateLabel->SetStyle(STYLE_TEXT_FONT, 30);
- showDateLabel->SetStyle(STYLE_LINE_HEIGHT, 35);
- showDateLabel->SetLineBreakMode(UILabel::LINE_BREAK_ADAPT);
- showDateLabel->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);
- showDateLabel->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 30);
- /* ---------------------------------- 星期显示 ---------------------------------- */
- showWeekLabel = new UILabel();
- if (showWeekLabel == nullptr)
- {
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "showWeekLabel new fail");
- return false;
- }
- showWeekLabel->SetPosition(WEEK_LABEL_X, WEEK_LABEL_Y);
- showWeekLabel->SetStyle(STYLE_TEXT_FONT, 30);
- showWeekLabel->SetStyle(STYLE_LINE_HEIGHT, 35);
- showWeekLabel->SetLineBreakMode(UILabel::LINE_BREAK_ADAPT);
- showWeekLabel->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);
- showWeekLabel->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 28);
- /* ----------------------------------- 电池 ----------------------------------- */
- batteryimage = new UIImageView();
- if (batteryimage == nullptr)
- {
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "batteryimage new fail");
- return false;
- }
- batteryimage->SetPosition(258, 180, BATTERY_IMAGE_WIDTH, BATTERY_IMAGE_HEIGHT);
- std::string batteryimagesPath = "/user/res/Battery/Battery-E.bin";
- batteryimage->SetSrc(batteryimagesPath.c_str());
- /* -------------------------------------------------------------------------- */
- progress = new UIBoxProgress();
- if (progress == nullptr)
- {
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "progress new fail");
- return false;
- }
- progress->SetPosition(206, 180, PROGRESS_WIDTH, PROGRESS_HEIGHT);
- progress->SetValidHeight(PROGRESS_HEIGHT);
- progress->SetValidWidth(PROGRESS_WIDTH);
-
- // progress->SetValue(value);
- const char *progressImageSrc = "/user/res/Battery/Battery_Normal.bin";
- progress->SetImage(progressImageSrc, nullptr);
- progress->SetBackgroundStyle(STYLE_BACKGROUND_OPA, 0x00);
- progress->SetBackgroundStyle(STYLE_TEXT_COLOR, 0xff000000);
- progress->SetForegroundStyle(STYLE_BACKGROUND_COLOR, 0xffffffff);
- progress->SetForegroundStyle(STYLE_TEXT_COLOR, 0xff000000);
- progress->SetForegroundStyle(STYLE_LINE_COLOR, 0xff45A5FF);
-
- group[DROPDOWNVIEW]->Add(progress);
- group[DROPDOWNVIEW]->Add(batteryimage);
- group[DROPDOWNVIEW]->Add(showTimeLabel);
- group[DROPDOWNVIEW]->Add(showDateLabel);
- group[DROPDOWNVIEW]->Add(showWeekLabel);
-
- /* -------------------------------------------------------------------------- */
- UpdateSignalStrengthStatusAndBatteryPosition();
- /* -------------------------------------------------------------------------- */
-
- return true;
- }
-
- // 初始化信号强度相关组件
- bool PullUpDownView::InitSingalComponentsView()
- {
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "PullUpDownView::InitSingalComponentsView");
- /* -------------------------------------------------------------------------- */
- NoSignal = new UIImageView();
- if (NoSignal == nullptr)
- {
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "NoSignal new fail");
- return false;
- }
- NoSignal->SetPosition(160, 176, 36, 38);
- NoSignal->SetAutoEnable(false);
- NoSignal->SetResizeMode(UIImageView::CENTER);
- // ScreenModels::GetInstance()->LoadAppImages(DROPDOWN_IAMGES, NoSignal, DROPDOWN_NOSIGNAL);
- NoSignal->SetVisible(false);
- group[DROPDOWNVIEW]->Add(NoSignal);
- /* -------------------------------------------------------------------------- */
- // 定义一个结构体,用于存储 ImageView 的信息
- struct ImageViewInfo
- {
- int posX;
- int posY;
- int width;
- int height;
- };
- // 待添加的 ImageView 信息列表
- std::vector<ImageViewInfo> imageViewList = {
- {160, 204, 6, 6},
- {170, 196, 6, 14},
- {180, 188, 6, 22},
- {190, 180, 6, 30},
- };
-
- // 循环添加 ImageView 到相应的容器中
- for (int i = 0; i < 4; i++)
- {
- if (showSignalStrength[i] == nullptr)
- {
- showSignalStrength[i] = new UIImageView();
- if (showSignalStrength[i] == nullptr)
- {
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "showSignalStrength[%d] new fail", i);
- return false;
- }
+ if (HD != nullptr)
+ {
+ delete HD;
+ HD = nullptr;
}
- showSignalStrength[i]->SetPosition(imageViewList[i].posX, imageViewList[i].posY, imageViewList[i].width, imageViewList[i].height);
- showSignalStrength[i]->SetStyle(STYLE_BACKGROUND_COLOR, 0xffffffff);
- showSignalStrength[i]->SetStyle(STYLE_BACKGROUND_OPA, 0xff);
- showSignalStrength[i]->SetStyle(STYLE_BORDER_RADIUS, 10);
- group[DROPDOWNVIEW]->Add(showSignalStrength[i]);
- showSignalStrength[i]->SetVisible(false);
+ if (batteryimage != nullptr)
+ {
+ delete batteryimage;
+ batteryimage = nullptr;
+ }
+ if (progress != nullptr)
+ {
+ delete progress;
+ progress = nullptr;
+ }
+ delete group1;
+ group1 = nullptr;
}
- /* -------------------------------------------------------------------------- */
- if (Singal_4 == nullptr)
+ if (showDateAndWeekLabel != nullptr)
{
- Singal_4 = new UILabel();
+ delete showDateAndWeekLabel;
+ showDateAndWeekLabel = nullptr;
}
- Singal_4->SetPosition(201, 176, 40, 47);
- Singal_4->SetStyle(STYLE_TEXT_FONT, 34);
- Singal_4->SetStyle(STYLE_LINE_HEIGHT, 40);
- Singal_4->SetText("4G");
- Singal_4->SetLineBreakMode(UILabel::LINE_BREAK_ADAPT);
- Singal_4->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);
- Singal_4->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 34);
- Singal_4->SetVisible(false);
- group[DROPDOWNVIEW]->Add(Singal_4);
-
- return true;
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "PullUpDownView::ClearAll_2 over!!");
}
// 获取信号强度
return (signalStrength / 8) + 1;
}
-#if 0
// 函数用于更新信号显示的UI
void PullUpDownView::updateSignalDisplay()
{
UpdateCat1NoSignalisplay(true);
UpdateCat14GDisplay(false);
UpdateSignalBarDisplay(CalculateSignalBars(signal), false);
+ UpdateCat1MobileDataDisplay(false);
}
else if (cat1_powerOn == 1 && sim == 1)
{
- if (signal == SIGNAL_NO_SIGNAL)
+ if (signal == SIGNAL_NO_SIGNAL) // 计算信号强度
{
// 无信号UI显示
- UpdateCat1NoSignalisplay(true);
- UpdateCat14GDisplay(false);
+ // UpdateCat1NoSignalisplay(true);
+ // UpdateCat14GDisplay(false);
UpdateSignalBarDisplay(CalculateSignalBars(signal), false);
}
else
{
// 信号强度显示
UpdateCat1NoSignalisplay(false);
- UpdateCat14GDisplay(true);
+ // UpdateCat14GDisplay(true);
UpdateSignalBarDisplay(CalculateSignalBars(signal), true);
}
+
if (network_on == 0)
{
// 无信号,无4G图标 显示
- UpdateCat1NoSignalisplay(true);
+ // UpdateCat1NoSignalisplay(true);
UpdateCat14GDisplay(false);
- UpdateSignalBarDisplay(CalculateSignalBars(signal), false);
+ UpdateCat1MobileDataDisplay(false);
+ // UpdateSignalBarDisplay(CalculateSignalBars(signal), false);
}
else
{
if (cat1_network_type == NETWORK_TYPE_NO_NETWORK)
{
// 无信号,无4G图标 显示
- UpdateCat1NoSignalisplay(true);
+ // UpdateCat1NoSignalisplay(true);
UpdateCat14GDisplay(false);
- UpdateSignalBarDisplay(CalculateSignalBars(signal), false);
+ UpdateCat1MobileDataDisplay(false);
+ // UpdateSignalBarDisplay(CalculateSignalBars(signal), false);
}
else if (cat1_network_type == NETWORK_TYPE_4G)
{
// 有4G图标,正常显示信号
- UpdateCat1NoSignalisplay(false);
+ // UpdateCat1NoSignalisplay(false);
UpdateCat14GDisplay(true);
- UpdateSignalBarDisplay(CalculateSignalBars(signal), true);
+ UpdateCat1MobileDataDisplay(true);
+ // UpdateSignalBarDisplay(CalculateSignalBars(signal), true);
}
else
{
// 无4G图标,正常显示信号
- UpdateCat1NoSignalisplay(false);
+ // UpdateCat1NoSignalisplay(false);
UpdateCat14GDisplay(false);
- UpdateSignalBarDisplay(CalculateSignalBars(signal), true);
+ UpdateCat1MobileDataDisplay(true);
+ // UpdateSignalBarDisplay(CalculateSignalBars(signal), true);
}
}
}
}
-#else
- // 函数用于更新信号显示的UI
- void PullUpDownView::updateSignalDisplay()
- {
- int sim = uapi_dev_runtime_get_cat1_simstat();
- int cat1_powerOn = uapi_dev_runtime_get_cat1_powerstat();
- int signal = uapi_dev_runtime_get_cat1_signal();
- int network_on = uapi_dev_runtime_get_cat1_networkstat();
- int cat1_network_type = uapi_dev_runtime_get_cat1_networtype();
-
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "sim = %d", sim);
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "cat1_powerOn = %d", cat1_powerOn);
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "signal = %d", signal);
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "network_on = %d", network_on);
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "cat1_network_type = %d", cat1_network_type);
-
- const int SIGNAL_NO_SIGNAL = 99;
- const int NETWORK_TYPE_NO_NETWORK = 0;
- const int NETWORK_TYPE_4G = 4;
-
- bool showNoSignalUI = (sim == 0 || cat1_powerOn == 0 || signal == SIGNAL_NO_SIGNAL);
- bool showNoNetworkUI = (network_on == 0 || cat1_network_type == NETWORK_TYPE_NO_NETWORK);
-
- bool show4GIcon = (cat1_network_type == NETWORK_TYPE_4G);
-
- UpdateCat1NoSignalisplay(showNoSignalUI);
- UpdateCat14GDisplay(show4GIcon);
- UpdateSignalBarDisplay(CalculateSignalBars(signal), !(showNoSignalUI || showNoNetworkUI));
- }
-#endif
-
// 更新信号强度显示
void PullUpDownView::UpdateSignalBarDisplay(int signalBars, bool state)
{
}
}
- // æ\9b´æ\96°ç\94µæ± ä½\8dç½®
- void PullUpDownView::UpdateBatteryPosition(int signalBars)
+ // æ\9c\89HDä¸\80å®\9aæ\9c\894G
+ void PullUpDownView::UpdateHDDisplay(bool state)
{
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "PullUpDownView::UpdateBatteryPosition");
- if (signalBars == 99)
- {
- batteryimage->SetPosition(209, 180, BATTERY_IMAGE_WIDTH, BATTERY_IMAGE_HEIGHT);
- progress->SetPosition(215, 186, PROGRESS_WIDTH, PROGRESS_HEIGHT);
- }
- else
+ if (HD != nullptr)
{
- batteryimage->SetPosition(258, 180, BATTERY_IMAGE_WIDTH, BATTERY_IMAGE_HEIGHT);
- progress->SetPosition(264, 186, PROGRESS_WIDTH, PROGRESS_HEIGHT);
+ HD->SetVisible(state);
}
- batteryimage->Invalidate();
- progress->Invalidate();
- }
-
- // 更新信号强度和电池位置
- void PullUpDownView::UpdateSignalStrengthStatusAndBatteryPosition()
- {
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "PullUpDownView::UpdateSignalStrengthStatusAndBatteryPosition");
- updateSignalDisplay();
- UpdateBatteryPosition(GetSignalStrength());
}
- bool PullUpDownView::PullUpDownViewInit()
+ /*更新移动数据图标显示*/
+ void PullUpDownView::UpdateCat1MobileDataDisplay(bool state)
{
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "PullUpDownView::InitView");
-
- group[DROPDOWNVIEW] = new UIViewGroup();
- if (group[DROPDOWNVIEW] == nullptr)
- {
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "group[DROPDOWNVIEW] new fail!!");
- return false;
- }
- group[DROPDOWNVIEW]->SetPosition(0, 0, 466, 466);
- group[DROPDOWNVIEW]->SetStyle(STYLE_BACKGROUND_OPA, OPA_TRANSPARENT);
- group[DROPDOWNVIEW]->SetViewIndex(0);
- group[DROPDOWNVIEW]->SetFullScreenBlur(true);
- InitViewImg();
- InitConnectedStatusImage();
-
- if (InitBaseData())
- {
- MainPresenterSample::GetInstance()->UpdataBaseData();
- }
- else
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "PullUpDownView::UpdateCat1MobileDataDisplay %d", state);
+ if (MobileData != nullptr)
{
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "PullUpDownView::InitBaseData Error!");
- return false;
+ MobileData->SetVisible(state);
}
- SetTouchable(true);
- SetIntercept(true);
- Add(group[DROPDOWNVIEW]);
- return true;
}
- /*预加载下拉视图的图片资源*/
- void PullUpDownView::PreLoadPullUpDownImageRes(void)
+ void PullUpDownView::UpdateXPosition(void)
{
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "PullUpDownView::PreLoadPullUpDownImageRes");
- if (!resLoadStatus)
+ // 判断相关组件是否有效
+ if (MobileData && HD && Singal_4 && NoSignal && batteryimage && progress)
{
- /* -------------------------------------------------------------------------- */
- for (int i = 0; i < MAX_INDEX; i++)
+ // 获取各个组件的可见状态
+ bool mobileDataVisible = MobileData->IsVisible(); // 移动数据
+ bool hdVisible = HD->IsVisible(); // HD [VoLTE开关]
+ bool signal4Visible = Singal_4->IsVisible(); // 4G
+ bool noSignalVisible = NoSignal->IsVisible(); // 无信号
+
+ int x;
+ int signalWidth = NoSignal->GetWidth();
+ int batteryWidth = batteryimage->GetWidth();
+ int spacing = 10;
+
+ if (noSignalVisible) // 无信号时的处理
+ {
+ x = (group1->GetWidth() - (signalWidth + batteryWidth + spacing)) / 2;
+ NoSignal->SetX(x);
+ batteryimage->SetX(x + signalWidth + spacing);
+ progress->SetX(batteryimage->GetX() + 7);
+ }
+ else // 有信号时的处理
{
- if (i == DNOTDISTURB_INDEX && DnotDisturbModel::GetInstance().GetDoNotDisturbModeEnabled() == true)
+ if (!signal4Visible) // 无 4G
{
- ScreenModels::GetInstance()->LoadAppImages(DROPDOWN_IAMGES, dropIconBackground[i], DROPDOWN_ICONELLIPSEPURPLE);
+ x = (group1->GetWidth() - (signalWidth + batteryWidth + spacing)) / 2;
+ for (int i = 0; i < 4; i++)
+ {
+ if (showSignalStrength[i] != nullptr)
+ {
+ showSignalStrength[i]->SetX(x + 10);
+ }
+ }
+ batteryimage->SetX(showSignalStrength[3]->GetX() + signalWidth + spacing);
+ progress->SetX(batteryimage->GetX() + 7);
}
- else
+ else // 有 4G
{
- ScreenModels::GetInstance()->LoadAppImages(DROPDOWN_IAMGES, dropIconBackground[i], DROPDOWN_ICONELLIPSEBLACK);
+ int additionalWidth = hdVisible ? HD->GetWidth() : 0;
+ x = (group1->GetWidth() - (signalWidth + Singal_4->GetWidth() + additionalWidth + batteryWidth + spacing * (2 + hdVisible))) / 2;
+ for (int i = 0; i < 4; i++)
+ {
+ if (showSignalStrength[i] != nullptr)
+ {
+ showSignalStrength[i]->SetX(x + 10);
+ }
+ }
+ Singal_4->SetX(showSignalStrength[3]->GetX() + signalWidth + spacing);
+ if (hdVisible) // 无 HD
+ {
+ HD->SetX(Singal_4->GetX() + Singal_4->GetWidth() + spacing);
+ batteryimage->SetX(HD->GetX() + HD->GetWidth() + spacing);
+ progress->SetX(batteryimage->GetX() + 7);
+ }
+ else // 有 HD
+ {
+ batteryimage->SetX(Singal_4->GetX() + Singal_4->GetWidth() + spacing);
+ progress->SetX(batteryimage->GetX() + 7);
+ }
+
+ if (mobileDataVisible) // 如果有移动数据图标,设置其位置
+ {
+ MobileData->SetX(showSignalStrength[0]->GetX());
+ }
}
}
- /* -------------------------------------------------------------------------- */
- ScreenModels::GetInstance()->LoadAppImages(DROPDOWN_IAMGES, dropSetting, DROPDOWN_SETTING);
- ScreenModels::GetInstance()->LoadAppImages(DROPDOWN_IAMGES, dropLighting, DROPDOWN_BLUETOOTH);
- ScreenModels::GetInstance()->LoadAppImages(DROPDOWN_IAMGES, dropDnotDisturb, DROPDOWN_DNOTDISTURB);
- ScreenModels::GetInstance()->LoadAppImages(DROPDOWN_IAMGES, dropSavePower, DROPDOWN_SAVEPOWER);
- ScreenModels::GetInstance()->LoadAppImages(DROPDOWN_IAMGES, drofindPhone, DROPDOWN_FINDPHONE);
- ScreenModels::GetInstance()->LoadAppImages(DROPDOWN_IAMGES, dropLine, DROPDOWN_LINE);
- /* -------------------------------------------------------------------------- */
- bool phoneStatus = GetPhoneConnectedStatus(); // 获取手机连接状态
- bool EarPhoneStatus = GetEarPhoneConnectedStatus(); // 获取耳机连接状态
- bool blueToothStatus = GetBlueToothConnectedStatus(); // 获取蓝牙连接状态
- ScreenModels::GetInstance()->LoadAppImages(DROPDOWN_IAMGES, showPhoneConnectedStatus, phoneStatus ? DROPDOWN_PHONECONNECTED : DROPDOWN_PHONEDISCONNECTED);
- ScreenModels::GetInstance()->LoadAppImages(DROPDOWN_IAMGES, showEarPhoneConnectedStatus, EarPhoneStatus ? DROPDOWN_EARPHONESCONNECTED : DROPDOWN_EARPHONESDISCONNECTED);
- ScreenModels::GetInstance()->LoadAppImages(DROPDOWN_IAMGES, showBluetoothConnectedStatus, blueToothStatus ? DROPDOWN_BLUETOOTHCONNECTED : DROPDOWN_BLUETOOTHDISCONNECTED);
-
- /* -------------------------------------------------------------------------- */
- ScreenModels::GetInstance()->LoadAppImages(DROPDOWN_IAMGES, NoSignal, DROPDOWN_NOSIGNAL);
- /* -------------------------------------------------------------------------- */
- resLoadStatus = true;
+ // 使相关组件无效化以触发重绘
+ MobileData->Invalidate();
+ HD->Invalidate();
+ Singal_4->Invalidate();
+ NoSignal->Invalidate();
+ batteryimage->Invalidate();
+ progress->Invalidate();
}
}
- /*卸载下拉视图的图片资源*/
- void PullUpDownView::UnLoadPullUpDownImageRes(void)
+ // 更新信号强度和电池位置
+ void PullUpDownView::UpdateSignalStrengthStatusAndBatteryPosition()
+ {
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "PullUpDownView::UpdateSignalStrengthStatusAndBatteryPosition");
+ updateSignalDisplay(); // 函数用于更新信号显示的UI
+ UpdateXPosition();
+
+ /*更新蓝牙连接状态*/
+ int a2dp = uapi_a2dp_snk_get_device_connect_state();
+ int hfp = uapi_hfp_connect_state();
+ bool bluetoothstatus = (a2dp == 0 && hfp == 0) ? false : true;
+ UpdateBlueToothStatus(bluetoothstatus);
+ }
+
+ UILabel *PullUpDownView::GetDateAndWeekLabel(void)
+ {
+ return showDateAndWeekLabel;
+ }
+ /* -------------------------------------------------------------------------- */
+ AppGroupView *PullUpDownView::DropDownCardPage1Init(void)
{
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "PullUpDownView::UnLoadPullUpDownImageRes");
- if (resLoadStatus)
+ if (dropDownCardPage1 == nullptr)
{
- ImageInfo *img = nullptr;
- for (int i = 0; i < MAX_INDEX; i++)
+ dropDownCardPage1 = new DropDownCardPage1();
+ if (dropDownCardPage1 == nullptr)
{
- dropIconBackground[i]->SetSrc(img);
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "dropDownCardPage1 new fail!!");
+ return nullptr;
}
- /* -------------------------------------------------------------------------- */
- dropSetting->SetSrc(img);
- dropLighting->SetSrc(img);
- dropDnotDisturb->SetSrc(img);
- dropSavePower->SetSrc(img);
- drofindPhone->SetSrc(img);
- dropLine->SetSrc(img);
- /* -------------------------------------------------------------------------- */
- showPhoneConnectedStatus->SetSrc(img);
- showEarPhoneConnectedStatus->SetSrc(img);
- showBluetoothConnectedStatus->SetSrc(img);
- /* -------------------------------------------------------------------------- */
- NoSignal->SetSrc(img);
- /* -------------------------------------------------------------------------- */
- bool isDoNotDisturbOpen = DnotDisturbModel::GetInstance().GetDoNotDisturbModeEnabled(); // 勿扰是否开启
- ImageCacheManager::GetInstance().UnloadOneInMultiRes(isDoNotDisturbOpen ? DROPDOWN_ICONELLIPSEPURPLE : DROPDOWN_ICONELLIPSEBLACK, DROPDOWN_IAMGES);
- /* -------------------------------------------------------------------------- */
- ImageCacheManager::GetInstance().UnloadOneInMultiRes(DROPDOWN_SETTING, DROPDOWN_IAMGES);
- ImageCacheManager::GetInstance().UnloadOneInMultiRes(DROPDOWN_BLUETOOTH, DROPDOWN_IAMGES);
- ImageCacheManager::GetInstance().UnloadOneInMultiRes(DROPDOWN_DNOTDISTURB, DROPDOWN_IAMGES);
- ImageCacheManager::GetInstance().UnloadOneInMultiRes(DROPDOWN_SAVEPOWER, DROPDOWN_IAMGES);
- ImageCacheManager::GetInstance().UnloadOneInMultiRes(DROPDOWN_FINDPHONE, DROPDOWN_IAMGES);
- ImageCacheManager::GetInstance().UnloadOneInMultiRes(DROPDOWN_LINE, DROPDOWN_IAMGES);
- /* -------------------------------------------------------------------------- */
- bool phoneStatus = GetPhoneConnectedStatus(); // 获取手机连接状态
- bool EarPhoneStatus = GetEarPhoneConnectedStatus(); // 获取耳机连接状态
- bool blueToothStatus = GetBlueToothConnectedStatus(); // 获取蓝牙连接状态
- ImageCacheManager::GetInstance().UnloadOneInMultiRes(phoneStatus ? DROPDOWN_PHONECONNECTED : DROPDOWN_PHONEDISCONNECTED, DROPDOWN_IAMGES);
- ImageCacheManager::GetInstance().UnloadOneInMultiRes(EarPhoneStatus ? DROPDOWN_EARPHONESCONNECTED : DROPDOWN_EARPHONESDISCONNECTED, DROPDOWN_IAMGES);
- ImageCacheManager::GetInstance().UnloadOneInMultiRes(blueToothStatus ? DROPDOWN_BLUETOOTHCONNECTED : DROPDOWN_BLUETOOTHDISCONNECTED, DROPDOWN_IAMGES);
- /* -------------------------------------------------------------------------- */
- ImageCacheManager::GetInstance().UnloadOneInMultiRes(DROPDOWN_NOSIGNAL, DROPDOWN_IAMGES);
- /* -------------------------------------------------------------------------- */
- resLoadStatus = false;
}
+ return dropDownCardPage1;
}
-
- void PullUpDownView::PreLoad(void)
+ AppGroupView *PullUpDownView::DropDownCardPage2Init(void)
{
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "PullUpDownView::PreLoad");
- if (!viewiInitStatus)
+ if (dropDownCardPage2 == nullptr)
{
- PullUpDownViewInit();
- viewiInitStatus = true;
+ dropDownCardPage2 = new DropDownCardPage2();
+ if (dropDownCardPage2 == nullptr)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "dropDownCardPage2 new fail!!");
+ return nullptr;
+ }
}
-
- PreLoadPullUpDownImageRes();
+ return dropDownCardPage2;
}
-
- void PullUpDownView::UnLoad(void)
+ struct DropDownSwipViewMapper
{
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "PullUpDownView::UnLoad");
- UnLoadPullUpDownImageRes();
- }
-
- // 更新手机连接状态
- void PullUpDownView::UpdatePhoneStatus(int status)
+ const int16_t viewId;
+ AppGroupView *(PullUpDownView::*func)(void);
+ };
+ static const DropDownSwipViewMapper g_pageMapper[] = {
+ {0, &PullUpDownView::DropDownCardPage1Init},
+ {1, &PullUpDownView::DropDownCardPage2Init},
+ };
+ AppGroupView *PullUpDownView::CreatePage(int32_t PageId)
{
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "PullUpDownView::UpdatePhoneStatus");
- if (showPhoneConnectedStatus == nullptr)
+ uint16_t i;
+ AppGroupView *view = nullptr;
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "CreatePage %d", PageId);
+
+ for (i = 0; i < sizeof(g_pageMapper) / sizeof(g_pageMapper[0]); i++)
{
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "showPhoneConnectedStatus nullptr");
- return;
+ if (g_pageMapper[i].viewId == PageId)
+ {
+ view = (this->*(g_pageMapper[i].func))();
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "CreatePage view:%p", view);
+ return view;
+ }
}
- ScreenModels::GetInstance()->LoadAppImages(DROPDOWN_IAMGES, showPhoneConnectedStatus, (status ? DROPDOWN_PHONECONNECTED : DROPDOWN_PHONEDISCONNECTED));
- showPhoneConnectedStatus->Invalidate();
-
- if (GetConnectedStatusView() != nullptr)
- GetConnectedStatusView()->UpdatePhoneConnectedStatus(status);
-
- return;
+ return nullptr; // 如果没有找到匹配的视图ID,返回 nullptr
}
+ void PullUpDownView::ClearAll_3(void)
+ {
+ if (dropDownswipeViewList != nullptr)
+ {
+ dropDownswipeViewList->RemoveAll();
- // 更新蓝牙耳机连接状态
- void PullUpDownView::UpdateEarPhoneStatus(int status)
+ delete dropDownswipeViewList;
+ dropDownswipeViewList = nullptr;
+ }
+ if (dropDownCardPage1 != nullptr)
+ {
+ delete dropDownCardPage1;
+ dropDownCardPage1 = nullptr;
+ }
+ if (dropDownCardPage2 != nullptr)
+ {
+ delete dropDownCardPage2;
+ dropDownCardPage2 = nullptr;
+ }
+ for (int i = 0; i < sizeof(g_pageMapper) / sizeof(g_pageMapper[0]); i++)
+ {
+ recordCard[i] = nullptr;
+ }
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "PullUpDownView::ClearAll_3 over!!");
+ }
+ // 创建与滑动列表相关组件
+ void PullUpDownView::CreateDropDownswipeViewListView(void)
{
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "PullUpDownView::UpdateEarPhoneStatus");
- if (showEarPhoneConnectedStatus == nullptr)
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "PullUpDownView::CreateDropDownswipeViewListView start!!");
+ dropDownswipeViewList = new UISwipeView(UISwipeView::HORIZONTAL); // 水平方向
+ if (nullptr == dropDownswipeViewList)
{
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "showEarPhoneConnectedStatus nullptr");
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "dropDownswipeViewList new fail!!");
return;
}
- ScreenModels::GetInstance()->LoadAppImages(DROPDOWN_IAMGES, showEarPhoneConnectedStatus, (status ? DROPDOWN_EARPHONESCONNECTED : DROPDOWN_EARPHONESDISCONNECTED));
- showPhoneConnectedStatus->Invalidate();
-
- if (GetConnectedStatusView() != nullptr)
- GetConnectedStatusView()->UpdateEarPhoneConnectedStatus(status);
-
- return;
+ dropDownswipeViewList->SetStyle(STYLE_BACKGROUND_COLOR, Color::Black().full);
+ dropDownswipeViewList->SetPosition(18, 180, 430, 210); // 0 : X; 0 : Y
+ dropDownswipeViewList->SetAnimatorTime(200); // 200:animator drag time(ms)
+ dropDownswipeViewList->SetDraggable(true);
+ dropDownswipeViewList->SetTouchable(true);
+ for (uint16_t i = 0; i < 2; i++)
+ {
+ recordCard[i] = CreatePage(i);
+ if (nullptr == recordCard[i])
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "recordCard[%d] is nullptr!!", i);
+ return;
+ }
+ recordCard[i]->InitView(this);
+ dropDownswipeViewList->Add(recordCard[i]);
+ }
+ dropDownswipeViewList->SetOnSwipeListener(this);
+ group[DROPDOWNVIEW]->Add(dropDownswipeViewList);
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "PullUpDownView::CreateDropDownswipeViewListView over!!");
}
-
- // 更新蓝牙连接状态
- void PullUpDownView::UpdateBlueToothStatus(int status)
+ /* ------------------------------------ 4 ----------------------------------- */
+ void PullUpDownView::UpdateSwipviewSelect(bool value)
{
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "PullUpDownView::UpdateBlueToothStatus");
- if (showBluetoothConnectedStatus == nullptr)
+ if (swipviewSelect)
{
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "showBluetoothConnectedStatus nullptr");
- return;
+ swipviewSelect->SetSrc(value ? DROPDOWN_SELECT_1_IMAGE : DROPDOWN_SELECT_2_IMAGE);
+ swipviewSelect->Invalidate();
}
- ScreenModels::GetInstance()->LoadAppImages(DROPDOWN_IAMGES, showBluetoothConnectedStatus, (status ? DROPDOWN_BLUETOOTHCONNECTED : DROPDOWN_BLUETOOTHDISCONNECTED));
- showPhoneConnectedStatus->Invalidate();
-
- if (GetConnectedStatusView() != nullptr)
- GetConnectedStatusView()->UpdateBlueToothConnectedStatus(status);
-
- return;
}
- /*更新勿扰模式状态*/
- void PullUpDownView::UpdateDnotDisturbStatus(int status)
+ void PullUpDownView::CreateView4()
{
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "PullUpDownView::UpdateDnotDisturbStatus");
- for (int i = 0; i < MAX_INDEX; i++)
+ /* ----------------------------- swipviewSelect ----------------------------- */
+ if (swipviewSelect == nullptr)
{
- if (dropIconBackground[i] == nullptr)
+ swipviewSelect = new UIImageView();
+ if (swipviewSelect == nullptr)
{
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "dropIconBackground[%d] is nullptr", i);
+ return;
}
}
-
- if (dropIconBackground[DNOTDISTURB_INDEX] != nullptr)
+ swipviewSelect->SetPosition(217, 410, 33, 12);
+ swipviewSelect->SetSrc(DROPDOWN_SELECT_1_IMAGE);
+ group[DROPDOWNVIEW]->Add(swipviewSelect);
+ /* ---------------------------------- line ---------------------------------- */
+ if (line == nullptr)
{
- if (status)
+ line = new UIImageView();
+ if (line == nullptr)
{
- ScreenModels::GetInstance()->LoadAppImages(DROPDOWN_IAMGES, dropIconBackground[DNOTDISTURB_INDEX], DROPDOWN_ICONELLIPSEPURPLE);
- }
- else
- {
- ScreenModels::GetInstance()->LoadAppImages(DROPDOWN_IAMGES, dropIconBackground[DNOTDISTURB_INDEX], DROPDOWN_ICONELLIPSEBLACK);
+ return;
}
- dropIconBackground[DNOTDISTURB_INDEX]->Invalidate();
}
- else
+ line->SetPosition(193, 440, 80, 8);
+ line->SetSrc(DROPDOWN_LINE_IMAGE);
+ group[DROPDOWNVIEW]->Add(line);
+ }
+
+ void PullUpDownView::ClearAll_4(void)
+ {
+ if (swipviewSelect != nullptr)
{
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "dropIconBackground[DNOTDISTURB_INDEX] is nullptr");
- return;
+ delete swipviewSelect;
+ swipviewSelect = nullptr;
+ }
+ if (line != nullptr)
+ {
+ delete line;
+ line = nullptr;
+ }
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "PullUpDownView::ClearAll_4 over!!");
+ }
+
+ /* -------------------------------------------------------------------------- */
+ // 下拉视图初始化
+ bool PullUpDownView::PullUpDownViewInit()
+ {
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "PullUpDownView::InitView");
+
+ group[DROPDOWNVIEW] = new UIViewGroup();
+ if (group[DROPDOWNVIEW] == nullptr)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "group[DROPDOWNVIEW] new fail!!");
+ return false;
}
+ group[DROPDOWNVIEW]->SetPosition(0, 0, 466, 466);
+ group[DROPDOWNVIEW]->SetStyle(STYLE_BACKGROUND_OPA, OPA_OPAQUE);
+ group[DROPDOWNVIEW]->SetViewIndex(0);
+ group[DROPDOWNVIEW]->SetFullScreenBlur(false); /*设置高斯模式*/
+ /* ----------------------------------- 1 ----------------------------------- */
+ CreateDropDownConnectionStatusImageViwe();
+ /* ------------------------------------ 2 ----------------------------------- */
+ InitBaseData();
+ /* ------------------------------------ 3 ----------------------------------- */
+ CreateDropDownswipeViewListView();
+ /* ------------------------------------ 4 ----------------------------------- */
+ CreateView4();
+ /* -------------------------------------------------------------------------- */
+
+ SetTouchable(true);
+ SetIntercept(true);
+ Add(group[DROPDOWNVIEW]);
+ return true;
}
- UILabel *PullUpDownView::GetTimeLabel()
+ void PullUpDownView::PreLoad(void)
{
- return showTimeLabel;
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "PullUpDownView::PreLoad");
+ if (!viewiInitStatus)
+ {
+ PullUpDownViewInit();
+ viewiInitStatus = true;
+ }
}
- UILabel *PullUpDownView::GetDateLabel()
+
+ void PullUpDownView::UnLoad(void)
{
- return showDateLabel;
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "PullUpDownView::UnLoad");
}
- UILabel *PullUpDownView::GetWeekLabel()
+
+ /*更新勿扰模式状态*/
+ void PullUpDownView::UpdateDnotDisturbStatus(int status)
{
- return showWeekLabel;
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "PullUpDownView::UpdateDnotDisturbStatus");
}
+
UIBoxProgress *PullUpDownView::GetProgress()
{
return progress;
Invalidate();
}
+ /*获取连接状态视图*/
ConnectedStatusView *PullUpDownView::GetConnectedStatusView(void)
{
return connectedStatusView;
}
/* -------------------------------------------------------------------------- */
}
-#endif
--- /dev/null
+/*
+ * @Author: luozheng 1732036298@qq.com
+ * @Date: 2024-08-21 11:54:00
+ * @LastEditors: luozheng 1732036298@qq.com
+ * @LastEditTime: 2024-08-22 18:54:22
+ * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/main/src/dropdown/DropDownCardPage1.cpp
+ */
+#include "main/include/dropdown/DropDownCardPage1.h"
+#include "wearable_log.h"
+#include "iostream"
+#include "string"
+#include "AppViewIDs.h"
+#include "NativeAbility.h"
+#include "dnotdisturb/include/DnotDisturbModel.h"
+#include "main/include/MainModel.h"
+#include <custom_runtime.h>
+#include "ConfigModel.h"
+#include "../../../../../../../drivers/peripheral/slip/cat1Service/cat1_ctl.h"
+#include <custom_utils.h>
+namespace OHOS
+{
+ // viewId
+ static constexpr const char *DROPDOWN_BT_TOGGLEBUTTON_VIEWID = "dropdown_bt"; // 蓝牙
+ static constexpr const char *DROPDOWN_4G_TOGGLEBUTTON_VIEWID = "dropdown_4g"; // 4g
+ static constexpr const char *DROPDOWN_ALIPAY_TOGGLEBUTTON_VIEWID = "dropdown_ALIPAY"; // 支付宝
+ static constexpr const char *DROPDOWN_SAVEPOWER_TOGGLEBUTTON_VIEWID = "dropdown_savepower"; // 省电模式
+ static constexpr const char *DROPDOWN_SLEEP_TOGGLEBUTTON_VIEWID = "dropdown_sleep"; // 睡眠模式
+ static constexpr const char *DROPDOWN_DNOTDISTURB_TOGGLEBUTTON_VIEWID = "dropdown_dnotdisturb"; // 勿扰模式
+ static constexpr const char *DROPDOWN_SETTING_TOGGLEBUTTON_VIEWID = "dropdown_setting"; // 设置
+
+ // Image src
+ static constexpr const char *DROPDOWN_BT_CONNECT_IMAGE = "/user/res/dropdown/DROPDOWN_BT_CONNECT.bin";
+ static constexpr const char *DROPDOWN_BT_DISCONNECT_IMAGE = "/user/res/dropdown/DROPDOWN_BT_DISCONNECT.bin";
+
+ static constexpr const char *DROPDOWN_4G_ON_IMAGE = "/user/res/dropdown/DROPDOWN_4G_ON.bin";
+ static constexpr const char *DROPDOWN_4G_OFF_IMAGE = "/user/res/dropdown/DROPDOWN_4G_OFF.bin";
+
+ static constexpr const char *DROPDOWN_ALIPAY_IMAGE = "/user/res/dropdown/DROPDOWN_ALIPAY.bin";
+
+ static constexpr const char *DROPDOWN_SAVEPOWER_ON_IMAGE = "/user/res/dropdown/DROPDOWN_SAVEPOWER_ON.bin";
+ static constexpr const char *DROPDOWN_SAVEPOWER_OFF_IMAGE = "/user/res/dropdown/DROPDOWN_SAVEPOWER_OFF.bin";
+
+ static constexpr const char *DROPDOWN_SLEEP_ON_IMAGE = "/user/res/dropdown/DROPDOWN_SLEEP_ON.bin";
+ static constexpr const char *DROPDOWN_SLEEP_OFF_IMAGE = "/user/res/dropdown/DROPDOWN_SLEEP_OFF.bin";
+
+ static constexpr const char *DROPDOWN_DNOTDISTURB_ON_IMAGE = "/user/res/dropdown/DROPDOWN_DNOTDISTURB_ON.bin";
+ static constexpr const char *DROPDOWN_DNOTDISTURB_OFF_IMAGE = "/user/res/dropdown/DROPDOWN_DNOTDISTURB_OFF.bin";
+
+ static constexpr const char *DROPDOWN_SETTING_IMAGE = "/user/res/dropdown/DROPDOWN_SETTING.bin";
+
+ static DropDownCardPage1 *g_pDropDownCardPage1{nullptr};
+ DropDownCardPage1::DropDownCardPage1()
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "DropDownCardPage1::DropDownCardPage1");
+ SetPosition(0, 0, 430, 210);
+ g_pDropDownCardPage1 = this;
+ }
+
+ DropDownCardPage1::~DropDownCardPage1()
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "DropDownCardPage1::~DropDownCardPage1");
+ ClearAll();
+ g_pDropDownCardPage1 = nullptr;
+ }
+
+ DropDownCardPage1 *DropDownCardPage1::GetInstance(void)
+ {
+ return g_pDropDownCardPage1;
+ }
+
+ bool DropDownCardPage1::OnClick(UIView &view, const ClickEvent &event)
+ {
+ std::string viewId = view.GetViewId();
+ bool state;
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "DropDownCardPage1::OnClick %s ", view.GetViewId());
+ if (viewId == DROPDOWN_BT_TOGGLEBUTTON_VIEWID) // 蓝牙开关
+ {
+ state = toggleButton[DropDownCardPage1::toggleButton_BT]->GetState();
+ if (state)
+ {
+ start_custom_ble_service(); // 主动开启蓝牙
+ ConfigModel::GetInstance()->SetClassicBlueToothState(true);
+ }
+ else
+ {
+ stop_custom_ble_service();
+ ConfigModel::GetInstance()->SetClassicBlueToothState(false);
+ }
+ }
+ else if (viewId == DROPDOWN_4G_TOGGLEBUTTON_VIEWID) // 4G开关
+ {
+ state = toggleButton[DropDownCardPage1::toggleButton_4G]->GetState();
+ if (state)
+ {
+ uapi_set4GCapability(true);
+ ConfigModel::GetInstance()->SetCat1_4Gability(uapi_cat1_get_power_stat());
+ }
+ else
+ {
+#if defined(A5133_DEMO_CLIENT) || defined(A5133_DEMO_SERVER)
+ uapi_set4GCapability(true);
+#else
+ uapi_set4GCapability(false);
+#endif
+ ConfigModel::GetInstance()->SetCat1_4Gability(uapi_cat1_get_power_stat());
+ }
+ }
+ else if (viewId == DROPDOWN_ALIPAY_TOGGLEBUTTON_VIEWID) // 支付宝
+ {
+#ifdef SUPPORT_ALIPAY_SEC
+ NativeAbility::GetInstance().EnterSlice(VIEW_MAIN_ALIPAY);
+#endif
+ }
+ else if (viewId == DROPDOWN_SAVEPOWER_TOGGLEBUTTON_VIEWID) // 省电模式开关
+ {
+ state = toggleButton[DropDownCardPage1::toggleButton_SAVEPOWER]->GetState();
+ NativeAbility::GetInstance().EnterSlice(VIEW_SAVEELE);
+ }
+ else if (viewId == DROPDOWN_SLEEP_TOGGLEBUTTON_VIEWID) // 睡眠开关
+ {
+ state = toggleButton[DropDownCardPage1::toggleButton_SLEEP]->GetState();
+ }
+ else if (viewId == DROPDOWN_DNOTDISTURB_TOGGLEBUTTON_VIEWID) // 勿扰开关
+ {
+ state = toggleButton[DropDownCardPage1::toggleButton_DNOTDISTURB]->GetState();
+ DnotDisturbModel::GetInstance().SetDoNotDisturbModeEnabled(state);
+ }
+ else if (viewId == DROPDOWN_SETTING_TOGGLEBUTTON_VIEWID) // 设置
+ {
+ NativeAbility::GetInstance().EnterSlice(VIEW_SETTING);
+ }
+ return true;
+ }
+
+ void DropDownCardPage1::ClearAll()
+ {
+ RemoveAll();
+ int size = sizeof(toggleButton) / sizeof(toggleButton[0]);
+ for (int i = 0; i < size; i++)
+ {
+ if (toggleButton[i] != nullptr)
+ {
+ delete toggleButton[i];
+ toggleButton[i] = nullptr;
+ }
+ }
+ }
+
+ UIToggleButton *DropDownCardPage1::ToggleButtonInit(ToggleButtonConfig &toggleButtonConfig)
+ {
+ UIToggleButton *toggleButton = new UIToggleButton();
+ if (toggleButton == nullptr)
+ {
+ return nullptr;
+ }
+ toggleButton->SetPosition(toggleButtonConfig.left, toggleButtonConfig.top, toggleButtonConfig.width, toggleButtonConfig.height);
+ toggleButton->SetViewId(toggleButtonConfig.viewId);
+ toggleButton->SetStyle(STYLE_BACKGROUND_OPA, 0x00);
+ toggleButton->SetStyle(STYLE_BORDER_RADIUS, 200);
+ toggleButton->SetImages(toggleButtonConfig.selectImg, toggleButtonConfig.unselectImg);
+ toggleButton->SetState(toggleButtonConfig.state);
+
+ toggleButton->SetTouchable(toggleButtonConfig.isTouchable);
+ toggleButton->SetOnClickListener(this);
+ return toggleButton;
+ }
+
+ bool DropDownCardPage1::InitPage(void)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "DropDownCardPage1::InitPage");
+
+ bool state_bt = ConfigModel::GetInstance()->GetClassicBlueToothState(); // 传统蓝牙开关
+ bool state_4g = uapi_cat1_get_power_stat();
+ bool state_savepower = uapi_dev_runtime_get_saveele_status();
+ bool state_sleep = uapi_dev_runtime_get_sleep_monitoring_status();
+ bool state_dnotdisturb = DnotDisturbModel::GetInstance().GetDoNotDisturbModeEnabled();
+
+ ToggleButtonConfig toggleButtonConfig[] = {
+ {0, 0, 100, 100, DROPDOWN_BT_TOGGLEBUTTON_VIEWID, DROPDOWN_BT_CONNECT_IMAGE, DROPDOWN_BT_DISCONNECT_IMAGE, true, state_bt},
+ {110, 0, 100, 100, DROPDOWN_4G_TOGGLEBUTTON_VIEWID, DROPDOWN_4G_ON_IMAGE, DROPDOWN_4G_OFF_IMAGE, true, state_4g},
+ {220, 0, 100, 100, DROPDOWN_ALIPAY_TOGGLEBUTTON_VIEWID, DROPDOWN_ALIPAY_IMAGE, DROPDOWN_ALIPAY_IMAGE, true, true},
+ {330, 0, 100, 100, DROPDOWN_SAVEPOWER_TOGGLEBUTTON_VIEWID, state_savepower ? DROPDOWN_SAVEPOWER_ON_IMAGE : DROPDOWN_SAVEPOWER_OFF_IMAGE, state_savepower ? DROPDOWN_SAVEPOWER_ON_IMAGE : DROPDOWN_SAVEPOWER_OFF_IMAGE, true, state_savepower},
+ {55, 100, 100, 100, DROPDOWN_SLEEP_TOGGLEBUTTON_VIEWID, DROPDOWN_SLEEP_ON_IMAGE, DROPDOWN_SLEEP_OFF_IMAGE, true, state_sleep},
+ {165, 100, 100, 100, DROPDOWN_DNOTDISTURB_TOGGLEBUTTON_VIEWID, DROPDOWN_DNOTDISTURB_ON_IMAGE, DROPDOWN_DNOTDISTURB_OFF_IMAGE, true, state_dnotdisturb},
+ {275, 100, 100, 100, DROPDOWN_SETTING_TOGGLEBUTTON_VIEWID, DROPDOWN_SETTING_IMAGE, DROPDOWN_SETTING_IMAGE, true, true},
+ };
+
+ for (int i = 0; i < toggleButton_MAX; i++)
+ {
+ if (toggleButton[i] == nullptr)
+ {
+ toggleButton[i] = ToggleButtonInit(toggleButtonConfig[i]);
+ if (toggleButton[i] == nullptr)
+ {
+ return false;
+ }
+ Add(toggleButton[i]);
+ }
+ }
+ return true;
+ }
+
+ bool DropDownCardPage1::InitView(void *caller)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "DropDownCardPage1::InitView %p", caller);
+ if (InitPage() == false)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "DropDownCardPage1::InitPage fail");
+ return false;
+ }
+ SetDraggable(true);
+ SetTouchable(true);
+ return true;
+ }
+
+ UIToggleButton *DropDownCardPage1::GetDropDownCardPage1_ToggleButton(int index)
+ {
+ return toggleButton[index];
+ }
+}
\ No newline at end of file
--- /dev/null
+/*
+ * @Author: luozheng 1732036298@qq.com
+ * @Date: 2024-08-21 11:54:00
+ * @LastEditors: luozheng 1732036298@qq.com
+ * @LastEditTime: 2024-08-22 19:01:37
+ * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/main/src/dropdown/DropDownCardPage2.cpp
+ */
+#include "main/include/dropdown/DropDownCardPage2.h"
+#include "wearable_log.h"
+#include "iostream"
+#include "string"
+#include "AppViewIDs.h"
+#include "NativeAbility.h"
+namespace OHOS
+{
+ // viewId
+ static constexpr const char *DROPDOWN_FINDPHONE_TOGGLEBUTTON_VIEWID = "dropdown_bt"; // 查找手机
+ static constexpr const char *DROPDOWN_LIGHTING_TOGGLEBUTTON_VIEWID = "dropdown_4g"; // 手电筒
+
+ // Image src
+ static constexpr const char *DROPDOWN_FINDPHONE_IMAGE = "/user/res/dropdown/DROPDOWN_FINDPHONE.bin";
+
+ static constexpr const char *DROPDOWN_LIGHTING_IMAGE = "/user/res/dropdown/DROPDOWN_LIGHTING.bin";
+
+ static DropDownCardPage2 *g_pDropDownCardPage2{nullptr};
+ DropDownCardPage2::DropDownCardPage2()
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "DropDownCardPage2::DropDownCardPage2");
+ SetPosition(0, 0, 430, 210);
+ g_pDropDownCardPage2 = this;
+ }
+
+ DropDownCardPage2::~DropDownCardPage2()
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "DropDownCardPage2::~DropDownCardPage2");
+ ClearAll();
+ g_pDropDownCardPage2 = nullptr;
+ }
+
+ DropDownCardPage2 *DropDownCardPage2::GetInstance(void)
+ {
+ return g_pDropDownCardPage2;
+ }
+
+ bool DropDownCardPage2::OnClick(UIView &view, const ClickEvent &event)
+ {
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "DropDownCardPage2::OnClick");
+ std::string viewId = view.GetViewId();
+ if (viewId == DROPDOWN_FINDPHONE_TOGGLEBUTTON_VIEWID)
+ {
+ NativeAbility::GetInstance().EnterSlice(VIEW_FIND_PHONE);
+ }
+ else if (viewId == DROPDOWN_LIGHTING_TOGGLEBUTTON_VIEWID)
+ {
+ NativeAbility::GetInstance().EnterSlice(VIEW_FLASHLIGHT);
+ }
+ return true;
+ }
+
+ void DropDownCardPage2::ClearAll()
+ {
+ RemoveAll();
+ int size = sizeof(toggleButton) / sizeof(toggleButton[0]);
+ for (int i = 0; i < size; i++)
+ {
+ if (toggleButton[i] != nullptr)
+ {
+ delete toggleButton[i];
+ toggleButton[i] = nullptr;
+ }
+ }
+ }
+
+ UIToggleButton *DropDownCardPage2::ToggleButtonInit(ToggleButtonConfig &toggleButtonConfig)
+ {
+ UIToggleButton *toggleButton = new UIToggleButton();
+ if (toggleButton == nullptr)
+ {
+ return nullptr;
+ }
+ toggleButton->SetPosition(toggleButtonConfig.left, toggleButtonConfig.top, toggleButtonConfig.width, toggleButtonConfig.height);
+ toggleButton->SetViewId(toggleButtonConfig.viewId);
+ toggleButton->SetStyle(STYLE_BACKGROUND_OPA, 0x00);
+ toggleButton->SetStyle(STYLE_BORDER_RADIUS, 200);
+ toggleButton->SetImages(toggleButtonConfig.selectImg, toggleButtonConfig.unselectImg);
+
+ toggleButton->SetTouchable(toggleButtonConfig.isTouchable);
+ toggleButton->SetOnClickListener(this);
+ return toggleButton;
+ }
+
+ bool DropDownCardPage2::InitPage(void)
+ {
+ int size = sizeof(toggleButton) / sizeof(toggleButton[0]);
+ ToggleButtonConfig toggleButtonConfig[] = {
+ {0, 0, 100, 100, DROPDOWN_FINDPHONE_TOGGLEBUTTON_VIEWID, DROPDOWN_FINDPHONE_IMAGE, DROPDOWN_FINDPHONE_IMAGE, true},
+ {110, 0, 100, 100, DROPDOWN_LIGHTING_TOGGLEBUTTON_VIEWID, DROPDOWN_LIGHTING_IMAGE, DROPDOWN_LIGHTING_IMAGE, true},
+ };
+
+ for (int i = 0; i < size; i++)
+ {
+ if (toggleButton[i] == nullptr)
+ {
+ toggleButton[i] = ToggleButtonInit(toggleButtonConfig[i]);
+ if (toggleButton[i] == nullptr)
+ {
+ return false;
+ }
+ Add(toggleButton[i]);
+ }
+ }
+ return true;
+ }
+
+ bool DropDownCardPage2::InitView(void *caller)
+ {
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "DropDownCardPage2::InitView %p", caller);
+ if (InitPage() == false)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "DropDownCardPage2::InitPage fail");
+ return false;
+ }
+ SetDraggable(true);
+ SetTouchable(true);
+ return true;
+ }
+
+ UIToggleButton *DropDownCardPage2::GetDropDownCardPage2_ToggleButton(int index)
+ {
+ return toggleButton[index];
+ }
+}
\ No newline at end of file
--- /dev/null
+
+#ifndef __SCHEDULEDATA_H__
+#define __SCHEDULEDATA_H__
+
+// #include "ohos_types.h"
+#include <string>
+
+#ifdef __cplusplus
+#if __cplusplus
+extern "C" {
+#endif
+#endif
+
+namespace OHOS
+{
+ typedef struct
+ {
+ std::string date; // 7/8
+ std::string topic; // xxxx
+ std::string time; //10:30-14:00
+ std::string content; // yyyyyyy
+ }ScheduleRevData;
+
+ #define SCHEDULE_DATA_COUNT_MAX (20)
+
+ void C_ScheduleSetByApp(ScheduleRevData * data, uint8_t index, bool is_finish);
+ int C_ScheduleDataReadFromFile();
+ int C_ScheduleDataWriteToFile();
+}
+
+
+#ifdef __cplusplus
+#if __cplusplus
+}
+#endif
+#endif
+
+#endif
\ No newline at end of file
--- /dev/null
+
+#ifndef __SCHEDULELISTADAPTER_H__
+#define __SCHEDULELISTADAPTER_H__
+
+#include "View.h"
+#include "components/abstract_adapter.h"
+#include "schedule/include/ScheduleModel.h"
+#include "schedule/include/ScheduleListItem.h"
+
+
+namespace OHOS
+{
+ class ScheduleListAdapter : public AbstractAdapter
+ {
+ public:
+ ScheduleListAdapter();
+ ~ScheduleListAdapter() override;
+ ScheduleListAdapter * GetInstance();
+
+ UIView * GetView(UIView * inView, int16_t index) override;
+ uint16_t GetCount() override;
+ void AddListItem(const ScheduleListItemInfo &item);
+
+ void SetItemClickListener(UIView::OnClickListener *itemClickListener);
+
+ private:
+ List<ScheduleListItemInfo> nodeList_;
+ UIView::OnClickListener * itemClickListener_;
+ };
+}
+#endif
--- /dev/null
+
+#ifndef __SCHEDULELISTITEM_H__
+#define __SCHEDULELISTITEM_H__
+
+#include "View.h"
+#include "ohos_types.h"
+#include "components/ui_view_group.h"
+#include "components/ui_label_ext.h"
+#include "components/ui_image_view.h"
+
+
+namespace OHOS
+{
+ typedef struct
+ {
+ std::string DateStr;
+ std::string TopicStr;
+ std::string TimeStr;
+ std::string DataStr;
+ uint8_t index;
+ bool is_date_item;
+ uint8_t child_num; // if(true == is_date_item)
+ uint8_t child_index; // if(false == is_date_item)
+ } ScheduleListItemInfo;
+
+
+ class ScheduleListItem : public UIViewGroup
+ {
+ public:
+ ScheduleListItem();
+ ~ScheduleListItem() override;
+ void SetItemInfo(const ScheduleListItemInfo &itemInfo);
+ void ResetItemStyle(const ScheduleListItemInfo &itemInfo);
+
+
+ private:
+ ScheduleListItem(const ScheduleListItem &);
+ ScheduleListItem &operator = (const ScheduleListItem &);
+
+ UIViewGroup InfoGroup_;
+ UILabelExt LabelExtDate_;
+ UILabelExt LabelExtTopic_;
+ UILabelExt LabelExtTime_;
+ UIImageView Image_;
+ // ScheduleListItemInfo itemInfo_ = { nullptr, nullptr, nullptr, nullptr, 0 };
+
+ #define ITEM_WIDTH (380)
+ #define ITEM_HEIGHT (100)
+ #define ITEM_GAP (20)
+
+ #define ODD_ITEM_BACKGROUND_COLOR (0Xff001833)
+ #define ODD_ITEM_TOPIC_COLOR (0Xff0176ff)
+ #define ODD_ITEM_TIME_COLOR (0Xff8bc0ff)
+
+ #define EVEN_ITEM_BACKGROUND_COLOR (0Xff331f00)
+ #define EVEN_ITEM_TOPIC_COLOR (0Xffff7b01)
+ #define EVEN_ITEM_TIME_COLOR (0Xffffc28b)
+
+ #define IMAGE_ITEM_ARROW "/user/res/Schedule/IMAGE_ITEM_ARROW.bin"
+ // #define IMAGE_ITEM_ARROW "/user/res/settings/SETTINGS_DISPLAY_MODE.bin"
+ };
+}
+#endif
--- /dev/null
+\r
+#ifndef __SCHEDULEMODEL_H__\r
+#define __SCHEDULEMODEL_H__\r
+\r
+#include "ohos_types.h"\r
+#include "schedule/include/ScheduleListItem.h"\r
+#include "schedule/include/ScheduleData.h"\r
+\r
+\r
+namespace OHOS\r
+{\r
+ class ScheduleModel\r
+ {\r
+ public:\r
+ static ScheduleModel &GetInstance(void);\r
+ bool ScheduleDataIsEmpty(void);\r
+ ScheduleListItemInfo * ScheduleDataInfoGet(void);\r
+ uint8_t ScheduleDataItemCountGet(void);\r
+\r
+ std::string ScheduleInfoDateStrGet(uint8_t index);\r
+ std::string ScheduleInfoTopicStrGet(uint8_t index);\r
+ std::string ScheduleInfoTimeStrGet(uint8_t index);\r
+ std::string ScheduleInfoDataStrGet(uint8_t index);\r
+\r
+ void ScheduleSetByApp(ScheduleRevData * data, uint8_t index, bool is_finish);\r
+\r
+ private:\r
+ ScheduleModel();\r
+ ~ScheduleModel();\r
+ ScheduleModel(const ScheduleModel &) = delete;\r
+ ScheduleModel &operator=(const ScheduleModel &) = delete;\r
+\r
+ void ScheduleDataItemCountSet(uint8_t count);\r
+ void ScheduleDataToInfo(void);\r
+\r
+ ScheduleRevData ScheduleRevData_[SCHEDULE_DATA_COUNT_MAX] = {nullptr, nullptr, nullptr, nullptr};\r
+ ScheduleListItemInfo ScheduleDataInfo_[SCHEDULE_DATA_COUNT_MAX*2] = {nullptr, nullptr, nullptr, nullptr, 0, false, 0, 0};\r
+ uint8_t ItemCount_{0};\r
+ };\r
+}\r
+\r
+#endif
\ No newline at end of file
--- /dev/null
+\r
+#ifndef __SCHEDULEPRESENTER_H__\r
+#define __SCHEDULEPRESENTER_H__\r
+\r
+#include "Presenter.h"\r
+#include "View.h"\r
+\r
+#include "schedule/include/ScheduleView.h"\r
+#include "schedule/include/ScheduleModel.h"\r
+\r
+\r
+namespace OHOS\r
+{\r
+ class ScheduleView;\r
+ class ScheduleModel;\r
+ class SchedulePresenter : public Presenter<ScheduleView, ScheduleModel>,\r
+ public UIView::OnClickListener,\r
+ public UIView::OnDragListener,\r
+ public RootView::OnKeyActListener\r
+ {\r
+ public:\r
+ SchedulePresenter();\r
+ virtual ~SchedulePresenter();\r
+ static SchedulePresenter * GetInstance();\r
+\r
+ void OnStart() override;\r
+ void OnResume() override;\r
+ void OnPause() override;\r
+ void OnStop() override;\r
+\r
+ private:\r
+ bool OnClick(UIView &view, const ClickEvent &event) override;\r
+ bool OnDrag(UIView &view, const DragEvent &event) override;\r
+ bool OnDragEnd(UIView &view, const DragEvent &event) override;\r
+ bool OnKeyAct(UIView &view, const KeyEvent &event) override;\r
+\r
+ ScheduleModel * ScheduleModel_;\r
+ bool X_DRAG_FLAG{false};\r
+ };\r
+}\r
+\r
+#endif
\ No newline at end of file
--- /dev/null
+\r
+#ifndef __SCHEDULEVIEW_H__\r
+#define __SCHEDULEVIEW_H__\r
+\r
+#include "View.h"\r
+#include "ohos_types.h"\r
+#include "components/ui_view_group.h"\r
+#include "components/ui_label_ext.h"\r
+#include "components/ui_image_view.h"\r
+#include "components/ui_list.h"\r
+#include "components/ui_scroll_view.h"\r
+#include "components/ui_button.h"\r
+#include "common/screen.h"\r
+#include "ui_resource_string.h"\r
+\r
+#include "schedule/include/SchedulePresenter.h"\r
+#include "schedule/include/ScheduleListAdapter.h"\r
+#include "schedule/include/ScheduleListItem.h"\r
+\r
+\r
+namespace OHOS\r
+{\r
+ typedef enum\r
+ {\r
+ ENUM_SCHEDULE_NO_DATA_SCREEN,\r
+ ENUM_SCHEDULE_LIST_SCREEN,\r
+ ENUM_SCHEDULE_CONTENT_SCREEN,\r
+ ENUM_SCHEDULE_DELETE_SCREEN,\r
+\r
+ ENUM_SCHEDULE_MAX_SCREEN\r
+ }ENUM_SCHEDULE_SCREEN;\r
+\r
+ class SchedulePresenter;\r
+ class ScheduleView : public View<SchedulePresenter>\r
+ {\r
+ public:\r
+ ScheduleView();\r
+ ~ScheduleView();\r
+ static ScheduleView * GetInstance(void);\r
+\r
+ void OnStart() override;\r
+ void OnSetUpView() override;\r
+ void OnTearDownView() override;\r
+ void OnStop() override;\r
+ void AddItemToList(const ScheduleListItemInfo &item);\r
+ void DisplayContentScreen(uint8_t index);\r
+\r
+ private:\r
+ UIViewGroup * InitNoDataScreen();\r
+ UIViewGroup * InitDataScreen();\r
+ UILabelExt * InitLabel(int16_t x, int16_t y, int16_t width, int16_t height,\r
+ uint16_t line_height, uint8_t font_size, uint16_t text_id, uint32_t text_color);\r
+ void DisplayMainScreen(void);\r
+\r
+ UIScrollView * InitContentScreen();\r
+\r
+ UIViewGroup * NoDataGroup_{nullptr};\r
+ UILabelExt * LabelExt0_{nullptr};\r
+ UIImageView * ImageView_{nullptr};\r
+ UILabelExt * LabelExt1_{nullptr};\r
+ UILabelExt * LabelExt2_{nullptr};\r
+\r
+ UIViewGroup * DataGroup_{nullptr};\r
+ UIList * ScheduleList_{nullptr};\r
+ ScheduleListAdapter * ScheduleListAdapter_{nullptr};\r
+\r
+ UIScrollView * ContentGroup_{nullptr};\r
+ UILabelExt * ContentLabelExt0_{nullptr};\r
+ UILabelExt * ContentLabelExt1_{nullptr};\r
+ UILabelExt * ContentLabelExt2_{nullptr};\r
+ UILabelExt * ContentLabelExt3_{nullptr};\r
+ UIButton * ContentButton0_{nullptr};\r
+ UIButton * ContentButton1_{nullptr};\r
+\r
+ UIViewGroup * GroupArray_[ENUM_SCHEDULE_MAX_SCREEN]{nullptr};\r
+\r
+ #define LIST_LEFT (43)\r
+ #define LIST_TOP (50)\r
+ #define LIST_WIDTH (Screen::GetInstance().GetWidth() - LIST_LEFT * 2)\r
+ #define LIST_HEIGHT (Screen::GetInstance().GetHeight() - LIST_TOP * 2)\r
+\r
+ #define NO_DATA_IMAGE "/user/res/Schedule/schedule_no_data.bin"\r
+ };\r
+}\r
+#endif\r
--- /dev/null
+
+
+#include "schedule/include/ScheduleListAdapter.h"
+#include "wearable_log.h"
+
+namespace OHOS
+{
+ static ScheduleListAdapter * p_ScheduleListAdapterInstance = nullptr;
+
+ ScheduleListAdapter::ScheduleListAdapter()
+ {
+ p_ScheduleListAdapterInstance = this;
+ }
+
+ ScheduleListAdapter::~ScheduleListAdapter()
+ {
+ p_ScheduleListAdapterInstance = nullptr;
+ nodeList_.Clear();
+ }
+
+ ScheduleListAdapter * ScheduleListAdapter::GetInstance()
+ {
+ return p_ScheduleListAdapterInstance;
+ }
+
+ UIView * ScheduleListAdapter::GetView(UIView * inView, int16_t index)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "[%d]:GetView,%d", __LINE__, index);
+ if(nodeList_.IsEmpty() || nodeList_.Size() <= index || 0 > index)
+ {
+ return nullptr;
+ }
+
+ ScheduleListItem * item = nullptr;
+ ListNode<ScheduleListItemInfo> * node = nodeList_.Begin();
+ for (uint16_t i = 0; i < index; i++)
+ {
+ node = node->next_;
+ }
+
+ if (nullptr == inView)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "[%d]:GetView", __LINE__);
+ item = new ScheduleListItem();
+ if (nullptr == item)
+ return nullptr;
+ }
+ else
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "[%d]:GetView", __LINE__);
+ item = static_cast<ScheduleListItem *>(inView);
+ }
+
+ if (item != nullptr)
+ {
+ item->SetViewIndex(index);
+ item->ResetItemStyle(node->data_);
+ item->SetItemInfo(node->data_);
+ item->SetOnClickListener(itemClickListener_);
+ }
+
+ return item;
+ }
+
+ uint16_t ScheduleListAdapter::GetCount()
+ {
+ return nodeList_.Size();
+ }
+
+ void ScheduleListAdapter::AddListItem(const ScheduleListItemInfo &item)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "[%d]:AddListItem", __LINE__);
+ nodeList_.PushBack(item);
+ }
+
+ void ScheduleListAdapter::SetItemClickListener(UIView::OnClickListener *itemClickListener)
+ {
+ itemClickListener_ = itemClickListener;
+ }
+
+}
--- /dev/null
+
+#include "ScheduleListItem.h"
+#include "wearable_log.h"
+
+namespace OHOS
+{
+ ScheduleListItem::ScheduleListItem()
+ {
+ SetPosition(0, 0, ITEM_WIDTH, ITEM_HEIGHT + ITEM_GAP);
+ SetStyle(STYLE_BACKGROUND_COLOR, OHOS::Color::Black().full);
+ SetStyle(STYLE_BACKGROUND_OPA, OPA_OPAQUE);
+ // SetStyle(STYLE_BORDER_RADIUS, 20);
+ // SetTouchable(true);
+
+ InfoGroup_.SetPosition(0, ITEM_GAP>>1, ITEM_WIDTH, ITEM_HEIGHT);
+ InfoGroup_.SetStyle(STYLE_BACKGROUND_COLOR, OHOS::Color::Black().full);
+ InfoGroup_.SetStyle(STYLE_BACKGROUND_OPA, OPA_OPAQUE);
+ InfoGroup_.SetStyle(STYLE_BORDER_RADIUS, 20);
+ InfoGroup_.SetTouchable(true);
+
+ LabelExtDate_.SetPosition((ITEM_WIDTH - 300)>>1, (ITEM_HEIGHT - 55)>>1, 300, 55);
+ LabelExtDate_.SetStyle(STYLE_TEXT_FONT, 30);
+ LabelExtDate_.SetStyle(STYLE_LINE_HEIGHT, 35);
+ // LabelExtDate_.SetTextId(text_id);
+ LabelExtDate_.SetLineBreakMode(UILabel::LINE_BREAK_OSCILLATION);
+ LabelExtDate_.SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);
+ LabelExtDate_.SetRollSpeed(70);
+ LabelExtDate_.SetFont(DEFAULT_VECTOR_FONT_FILENAME, 30);
+ LabelExtDate_.SetStyle(STYLE_TEXT_COLOR, 0xffff5a36);
+
+ LabelExtTopic_.SetPosition(47, 22, 250, 35);
+ LabelExtTopic_.SetStyle(STYLE_TEXT_FONT, 30);
+ LabelExtTopic_.SetStyle(STYLE_LINE_HEIGHT, 35);
+ // LabelExtTopic_.SetTextId(text_id);
+ LabelExtTopic_.SetLineBreakMode(UILabel::LINE_BREAK_OSCILLATION);
+ LabelExtTopic_.SetAlign(TEXT_ALIGNMENT_LEFT, TEXT_ALIGNMENT_TOP);
+ LabelExtTopic_.SetRollSpeed(70);
+ LabelExtTopic_.SetFont(DEFAULT_VECTOR_FONT_FILENAME, 30);
+ // LabelExtTopic_.SetStyle(STYLE_TEXT_COLOR, 0xffff5a36);
+
+ LabelExtTime_.SetPosition(47, 57, 105, 24);
+ LabelExtTime_.SetStyle(STYLE_TEXT_FONT, 20);
+ LabelExtTime_.SetStyle(STYLE_LINE_HEIGHT, 24);
+ // LabelExtTime_.SetTextId(text_id);
+ LabelExtTime_.SetLineBreakMode(UILabel::LINE_BREAK_OSCILLATION);
+ LabelExtTime_.SetAlign(TEXT_ALIGNMENT_LEFT, TEXT_ALIGNMENT_TOP);
+ LabelExtTime_.SetRollSpeed(70);
+ LabelExtTime_.SetFont(DEFAULT_VECTOR_FONT_FILENAME, 20);
+ // LabelExtTime_.SetStyle(STYLE_TEXT_COLOR, 0xffff5a36);
+
+ Image_.SetPosition(326, 37, 14, 26);
+ Image_.SetStyle(STYLE_IMAGE_OPA, OPA_OPAQUE);
+ Image_.SetStyle(STYLE_BACKGROUND_OPA, OPA_OPAQUE);
+ Image_.SetResizeMode(UIImageView::CENTER);
+ Image_.SetAutoEnable(false);
+ Image_.SetSrc(IMAGE_ITEM_ARROW);
+
+ InfoGroup_.Add(&LabelExtDate_);
+ InfoGroup_.Add(&LabelExtTopic_);
+ InfoGroup_.Add(&LabelExtTime_);
+ InfoGroup_.Add(&Image_);
+ Add(&InfoGroup_);
+ }
+
+ ScheduleListItem::~ScheduleListItem()
+ {
+ RemoveAll();
+ }
+
+ void ScheduleListItem::SetItemInfo(const ScheduleListItemInfo &itemInfo)
+ {
+ if(true == itemInfo.is_date_item)
+ {
+ LabelExtDate_.SetText(itemInfo.DateStr.c_str());
+ }
+ else
+ {
+ if(0 == (itemInfo.child_index % 2))
+ {
+ LabelExtTopic_.SetText(itemInfo.TopicStr.c_str());
+ LabelExtTime_.SetText(itemInfo.TimeStr.c_str());
+ }
+ else
+ {
+ LabelExtTopic_.SetText(itemInfo.TopicStr.c_str());
+ LabelExtTime_.SetText(itemInfo.TimeStr.c_str());
+ }
+ }
+ }
+
+ void ScheduleListItem::ResetItemStyle(const ScheduleListItemInfo &itemInfo)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "[%d]:ResetItemStyle,%d,%d,%d",
+ __LINE__, itemInfo.is_date_item, itemInfo.child_num, itemInfo.child_index);
+
+ if(true == itemInfo.is_date_item)
+ {
+ SetHeight(ITEM_HEIGHT);
+
+ InfoGroup_.SetStyle(STYLE_BACKGROUND_COLOR, OHOS::Color::Black().full);
+ InfoGroup_.SetStyle(STYLE_BACKGROUND_OPA, OPA_OPAQUE);
+ InfoGroup_.SetTouchable(false);
+
+ LabelExtDate_.SetVisible(true);
+ LabelExtTopic_.SetVisible(false);
+ LabelExtTime_.SetVisible(false);
+ Image_.SetVisible(false);
+ }
+ else
+ {
+ if(0 == (itemInfo.child_index % 2))
+ {
+ InfoGroup_.SetStyle(STYLE_BACKGROUND_COLOR, ODD_ITEM_BACKGROUND_COLOR);
+ InfoGroup_.SetStyle(STYLE_BACKGROUND_OPA, OPA_OPAQUE);
+ InfoGroup_.SetTouchable(true);
+
+ LabelExtDate_.SetVisible(false);
+ LabelExtTopic_.SetVisible(true);
+ LabelExtTime_.SetVisible(true);
+ Image_.SetVisible(true);
+
+ LabelExtTopic_.SetStyle(STYLE_TEXT_COLOR, ODD_ITEM_TOPIC_COLOR);
+ LabelExtTime_.SetStyle(STYLE_TEXT_COLOR, ODD_ITEM_TIME_COLOR);
+ }
+ else
+ {
+ InfoGroup_.SetStyle(STYLE_BACKGROUND_COLOR, EVEN_ITEM_BACKGROUND_COLOR);
+ InfoGroup_.SetStyle(STYLE_BACKGROUND_OPA, OPA_OPAQUE);
+ InfoGroup_.SetTouchable(true);
+
+ LabelExtDate_.SetVisible(false);
+ LabelExtTopic_.SetVisible(true);
+ LabelExtTime_.SetVisible(true);
+ Image_.SetVisible(true);
+
+ LabelExtTopic_.SetStyle(STYLE_TEXT_COLOR, EVEN_ITEM_TOPIC_COLOR);
+ LabelExtTime_.SetStyle(STYLE_TEXT_COLOR, EVEN_ITEM_TIME_COLOR);
+ }
+ }
+ }
+
+}
--- /dev/null
+\r
+#include "schedule/include/ScheduleModel.h"\r
+#include "wearable_log.h"\r
+\r
+namespace OHOS\r
+{\r
+ ScheduleModel::ScheduleModel()\r
+ {\r
+\r
+ }\r
+\r
+ ScheduleModel::~ScheduleModel()\r
+ {\r
+\r
+ }\r
+\r
+ ScheduleModel &ScheduleModel::GetInstance()\r
+ {\r
+ static ScheduleModel instance;\r
+ return instance;\r
+ }\r
+\r
+ bool ScheduleModel::ScheduleDataIsEmpty(void)\r
+ {\r
+ if(0 == ItemCount_)\r
+ return true;\r
+ \r
+ return false;\r
+ }\r
+\r
+ uint8_t ScheduleModel::ScheduleDataItemCountGet(void)\r
+ {\r
+ return ItemCount_;\r
+ }\r
+\r
+ void ScheduleModel::ScheduleDataItemCountSet(uint8_t count)\r
+ {\r
+ ItemCount_ = count;\r
+ }\r
+\r
+ ScheduleListItemInfo * ScheduleModel::ScheduleDataInfoGet(void)\r
+ {\r
+ return ScheduleDataInfo_;\r
+ }\r
+\r
+ std::string ScheduleModel::ScheduleInfoDateStrGet(uint8_t index)\r
+ {\r
+ return ScheduleDataInfo_[index].DateStr.c_str();\r
+ }\r
+\r
+ std::string ScheduleModel::ScheduleInfoTopicStrGet(uint8_t index)\r
+ {\r
+ return ScheduleDataInfo_[index].TopicStr.c_str();\r
+ }\r
+\r
+ std::string ScheduleModel::ScheduleInfoTimeStrGet(uint8_t index)\r
+ {\r
+ return ScheduleDataInfo_[index].TimeStr.c_str();\r
+ }\r
+\r
+ std::string ScheduleModel::ScheduleInfoDataStrGet(uint8_t index)\r
+ {\r
+ return ScheduleDataInfo_[index].DataStr.c_str();\r
+ }\r
+\r
+ void ScheduleModel::ScheduleSetByApp(ScheduleRevData * data, uint8_t index, bool is_finish)\r
+ {\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "ScheduleModel::ScheduleSetByApp,%d,%d", index, is_finish);\r
+\r
+ ScheduleRevData_[index].date.assign(data->date);\r
+ ScheduleRevData_[index].topic.assign(data->topic);\r
+ ScheduleRevData_[index].time.assign(data->time);\r
+ ScheduleRevData_[index].content.assign(data->content);\r
+\r
+ if(true == is_finish)\r
+ {\r
+ ScheduleDataToInfo();\r
+ }\r
+ }\r
+\r
+ void ScheduleModel::ScheduleDataToInfo(void)\r
+ {\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "ScheduleModel::ScheduleDataToInfo");\r
+ uint8_t i = 0;\r
+ uint8_t j = 0;\r
+ uint8_t count = 0;\r
+\r
+ memset(ScheduleDataInfo_, 0x0, sizeof(ScheduleListItemInfo) * SCHEDULE_DATA_COUNT_MAX*2);\r
+\r
+ count = 1;\r
+\r
+ for(i = 0, j = 0; i < count; i++)\r
+ {\r
+ if(0 == i)\r
+ {\r
+ ScheduleDataInfo_[j].DateStr.assign(ScheduleRevData_[i].date);\r
+ ScheduleDataInfo_[j].index = j;\r
+ ScheduleDataInfo_[j].is_date_item = true;\r
+\r
+ j++;\r
+ ScheduleDataInfo_[j].DateStr.assign(ScheduleRevData_[i].date);\r
+ ScheduleDataInfo_[j].TopicStr.assign(ScheduleRevData_[i].topic);\r
+ ScheduleDataInfo_[j].TimeStr.assign(ScheduleRevData_[i].time);\r
+ ScheduleDataInfo_[j].DataStr.assign(ScheduleRevData_[i].content);\r
+ ScheduleDataInfo_[j].index = j;\r
+ ScheduleDataInfo_[j].is_date_item = false;\r
+ ScheduleDataInfo_[j].child_index = 0;\r
+ }\r
+ else\r
+ {\r
+ if(0 == ScheduleRevData_[i].date.compare(ScheduleRevData_[i - 1].date))\r
+ {\r
+ j++;\r
+ ScheduleDataInfo_[j].DateStr.assign(ScheduleRevData_[i].date);\r
+ ScheduleDataInfo_[j].TopicStr.assign(ScheduleRevData_[i].topic);\r
+ ScheduleDataInfo_[j].TimeStr.assign(ScheduleRevData_[i].time);\r
+ ScheduleDataInfo_[j].DataStr.assign(ScheduleRevData_[i].content);\r
+ ScheduleDataInfo_[j].index = j;\r
+ ScheduleDataInfo_[j].is_date_item = false;\r
+ ScheduleDataInfo_[j].child_index = ScheduleDataInfo_[i - 1].child_index + 1;\r
+ }\r
+ else\r
+ {\r
+ ScheduleDataInfo_[j].DateStr.assign(ScheduleRevData_[i].date);\r
+ ScheduleDataInfo_[j].index = j;\r
+ ScheduleDataInfo_[j].is_date_item = true;\r
+\r
+ j++;\r
+ ScheduleDataInfo_[j].DateStr.assign(ScheduleRevData_[i].date);\r
+ ScheduleDataInfo_[j].TopicStr.assign(ScheduleRevData_[i].topic);\r
+ ScheduleDataInfo_[j].TimeStr.assign(ScheduleRevData_[i].time);\r
+ ScheduleDataInfo_[j].DataStr.assign(ScheduleRevData_[i].content);\r
+ ScheduleDataInfo_[j].index = j;\r
+ ScheduleDataInfo_[j].is_date_item = false;\r
+ ScheduleDataInfo_[j].child_index = 0;\r
+ }\r
+ }\r
+ \r
+ if((SCHEDULE_DATA_COUNT_MAX * 2) <= j)\r
+ {\r
+ break;\r
+ }\r
+ }\r
+\r
+ ScheduleDataItemCountSet(j + 1);\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "ScheduleModel::ScheduleDataToInfo,%d,%s", j, ScheduleDataInfo_[0].DateStr.c_str());\r
+ }\r
+\r
+\r
+ void C_ScheduleSetByApp(ScheduleRevData * data, uint8_t index, bool is_finish)\r
+ {\r
+ ScheduleModel::GetInstance().ScheduleSetByApp(data, index, is_finish);\r
+ }\r
+\r
+ int C_ScheduleDataReadFromFile()\r
+ {\r
+ return 0;\r
+ }\r
+\r
+ int C_ScheduleDataWriteToFile()\r
+ {\r
+ return 0;\r
+ }\r
+}\r
--- /dev/null
+/*\r
+ * @Author: luozheng 1732036298@qq.com\r
+ * @Date: 2024-06-20 15:11:17\r
+ * @LastEditors: luozheng 1732036298@qq.com\r
+ * @LastEditTime: 2024-07-08 09:45:02\r
+ * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/aivoice/src/SchedulePresenter.cpp\r
+ */\r
+#include "AppViewIDs.h"\r
+#include "NativeAbility.h"\r
+#include "common/key_code.h"\r
+#include <custom_utils.h>\r
+#include "UiConfig.h"\r
+#include "schedule/include/SchedulePresenter.h"\r
+\r
+\r
+namespace OHOS\r
+{\r
+ // 当前Presenter属性实例化的内存指针\r
+ static SchedulePresenter * p_SchedulePresenterInstance = nullptr;\r
+\r
+ SchedulePresenter::SchedulePresenter()\r
+ {\r
+ ScheduleModel_ = &ScheduleModel::GetInstance();\r
+ p_SchedulePresenterInstance = this;\r
+ }\r
+\r
+ SchedulePresenter::~SchedulePresenter()\r
+ {\r
+ p_SchedulePresenterInstance = nullptr;\r
+ }\r
+\r
+ SchedulePresenter *SchedulePresenter::GetInstance()\r
+ {\r
+ return p_SchedulePresenterInstance;\r
+ }\r
+\r
+ // 启动时执行的逻辑\r
+ void SchedulePresenter::OnStart()\r
+ {\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SchedulePresenter::OnStart");\r
+ Presenter<ScheduleView, ScheduleModel>::OnStart();\r
+ }\r
+\r
+ // 页面已经展示后的调用逻辑\r
+ void SchedulePresenter::OnResume(void)\r
+ {\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SchedulePresenter::OnResume");\r
+ Presenter<ScheduleView, ScheduleModel>::OnResume();\r
+ if (nullptr == view_)\r
+ {\r
+ return;\r
+ }\r
+\r
+ ScheduleListItemInfo * ItemInfo = ScheduleModel_->ScheduleDataInfoGet();\r
+ for (uint8_t i = 0; i < ScheduleModel_->ScheduleDataItemCountGet(); i++)\r
+ {\r
+ view_->AddItemToList(ItemInfo[i]);\r
+ }\r
+ }\r
+\r
+ // 页面准备切换到后台前执行的逻辑\r
+ void SchedulePresenter::OnPause(void)\r
+ {\r
+ // WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "SchedulePresenter::OnPause");\r
+ Presenter<ScheduleView, ScheduleModel>::OnPause();\r
+ }\r
+\r
+ // 页面完全置于后台时的逻辑。\r
+ void SchedulePresenter::OnStop(void)\r
+ {\r
+ // WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "SchedulePresenter::OnStop");\r
+ Presenter<ScheduleView, ScheduleModel>::OnStop();\r
+ }\r
+\r
+ bool SchedulePresenter::OnClick(UIView &view, const ClickEvent &event)\r
+ {\r
+ UNUSED(event);\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SchedulePresenter::OnClick");\r
+\r
+ if (nullptr == &view) \r
+ {\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "[%d]:OnClick", __LINE__);\r
+ return false;\r
+ } \r
+ else \r
+ {\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "[%d]:OnClick", __LINE__);\r
+ ScheduleListItem * item = static_cast<ScheduleListItem *>(&view);\r
+ view_->DisplayContentScreen(item->GetViewIndex());\r
+ }\r
+ return true;\r
+ }\r
+\r
+ bool SchedulePresenter::OnDrag(UIView &view, const DragEvent &event)\r
+ {\r
+ UNUSED(view);\r
+ // WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "SchedulePresenter::OnDrag");\r
+ if ((event.GetDeltaX() > X_DRAG_OFFSET) && (event.GetDeltaX() > (DOUBLES * MATH_ABS(event.GetDeltaY())))) // 拖动过程中判断是否是水平滑动\r
+ {\r
+ SchedulePresenter::X_DRAG_FLAG = true;\r
+ }\r
+ return true;\r
+ }\r
+\r
+ bool SchedulePresenter::OnDragEnd(UIView &view, const DragEvent &event)\r
+ {\r
+ UNUSED(view);\r
+ // WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "SchedulePresenter::OnDragEnd");\r
+ if (event.GetDragDirection() == DragEvent::DIRECTION_LEFT_TO_RIGHT && SchedulePresenter::X_DRAG_FLAG)\r
+ {\r
+ NativeAbility::GetInstance().Back(TransitionType::TRANSITION_BACK_TO_HEXAGONS);\r
+ SchedulePresenter::X_DRAG_FLAG = false;\r
+ }\r
+ return true;\r
+ }\r
+\r
+ bool SchedulePresenter::OnKeyAct(UIView &view, const KeyEvent &event) // 增加按键事件\r
+ {\r
+ UNUSED(view);\r
+ // WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "SchedulePresenter::OnKeyAct");\r
+ uint16_t keyID = event.GetKeyId();\r
+ uint16_t keyState = event.GetState();\r
+ // 如果是power键,且是亮屏状态,按键释放就返回上一级\r
+ if (keyID == static_cast<uint16_t>(ZliteKeyCode::ZLITE_KEY_POWER) && keyState == 0 && uapi_get_screen_state() == 0)\r
+ {\r
+ NativeAbility::GetInstance().Back(TransitionType::TRANSITION_BACK_TO_HEXAGONS);\r
+ }\r
+ return true;\r
+ }\r
+}
\ No newline at end of file
--- /dev/null
+\r
+#include "schedule/include/ScheduleView.h"\r
+#include "wearable_log.h"\r
+\r
+namespace OHOS\r
+{\r
+ static ScheduleView * p_ScheduleViewInstance = nullptr;\r
+\r
+ ScheduleView::ScheduleView()\r
+ {\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "ScheduleView::ScheduleView");\r
+ p_ScheduleViewInstance = this;\r
+ }\r
+\r
+ ScheduleView::~ScheduleView()\r
+ {\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "ScheduleView::~ScheduleView");\r
+ p_ScheduleViewInstance = nullptr;\r
+ }\r
+\r
+ ScheduleView * ScheduleView::GetInstance()\r
+ {\r
+ return p_ScheduleViewInstance;\r
+ }\r
+\r
+ void ScheduleView::OnStart()\r
+ {\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "ScheduleView::OnStart");\r
+ View<SchedulePresenter>::OnStart();\r
+\r
+ SetContainerView(new UIViewGroup());\r
+ if (nullptr == GetContainer())\r
+ {\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "[%d]", __LINE__);\r
+ return;\r
+ }\r
+ container_->SetPosition(0, 0, Screen::GetInstance().GetWidth(), Screen::GetInstance().GetHeight());\r
+ container_->SetTouchable(true);\r
+ container_->SetDraggable(true);\r
+ container_->SetOnDragListener(presenter_);\r
+ container_->Add(InitNoDataScreen());\r
+ container_->Add(InitDataScreen());\r
+\r
+ RootView::GetInstance()->SetOnKeyActListener(presenter_);\r
+ }\r
+\r
+ void ScheduleView::OnSetUpView()\r
+ {\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "ScheduleView::OnSetUpView");\r
+ View<SchedulePresenter>::OnSetUpView();\r
+\r
+ DisplayMainScreen();\r
+ // GroupArray_\r
+ Draw();\r
+ }\r
+\r
+ void ScheduleView::OnTearDownView()\r
+ {\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "ScheduleView::OnTearDownView");\r
+ View<SchedulePresenter>::OnTearDownView();\r
+ }\r
+\r
+ void ScheduleView::OnStop()\r
+ {\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "ScheduleView::OnStop");\r
+ View<SchedulePresenter>::OnStop();\r
+ RootView::GetInstance()->ClearOnKeyActListener();\r
+\r
+ if (nullptr != container_)\r
+ {\r
+ container_->RemoveAll();\r
+ if (nullptr != NoDataGroup_)\r
+ {\r
+ NoDataGroup_->RemoveAll();\r
+ if (nullptr != LabelExt0_)\r
+ {\r
+ delete LabelExt0_;\r
+ LabelExt0_ = nullptr;\r
+ }\r
+ if (nullptr != ImageView_)\r
+ {\r
+ delete ImageView_;\r
+ ImageView_ = nullptr;\r
+ }\r
+ if (nullptr != LabelExt1_)\r
+ {\r
+ delete LabelExt1_;\r
+ LabelExt1_ = nullptr;\r
+ }\r
+ if (nullptr != LabelExt2_)\r
+ {\r
+ delete LabelExt2_;\r
+ LabelExt2_ = nullptr;\r
+ }\r
+\r
+ delete NoDataGroup_;\r
+ NoDataGroup_ = nullptr;\r
+ }\r
+ if (nullptr != DataGroup_)\r
+ {\r
+ DataGroup_->RemoveAll();\r
+ if (nullptr != ScheduleListAdapter_)\r
+ {\r
+ delete ScheduleListAdapter_;\r
+ ScheduleListAdapter_ = nullptr;\r
+ }\r
+ if (nullptr != ScheduleList_)\r
+ {\r
+ delete ScheduleList_;\r
+ ScheduleList_ = nullptr;\r
+ }\r
+\r
+ delete DataGroup_;\r
+ DataGroup_ = nullptr;\r
+ }\r
+ delete container_;\r
+ container_ = nullptr;\r
+ }\r
+ }\r
+\r
+ void ScheduleView::AddItemToList(const ScheduleListItemInfo &item)\r
+ {\r
+ ScheduleListAdapter_->AddListItem(item);\r
+ }\r
+\r
+ void ScheduleView::DisplayMainScreen(void)\r
+ {\r
+ if(true == ScheduleModel::GetInstance().ScheduleDataIsEmpty())\r
+ {\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "[%d]:DisplayMainScreen", __LINE__);\r
+ NoDataGroup_->SetVisible(true);\r
+ DataGroup_->SetVisible(false);\r
+ }\r
+ else\r
+ {\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "[%d]:DisplayMainScreen", __LINE__);\r
+ NoDataGroup_->SetVisible(false);\r
+ DataGroup_->SetVisible(true);\r
+ ScheduleList_->RefreshList();\r
+ }\r
+ }\r
+\r
+ void ScheduleView::DisplayContentScreen(uint8_t index)\r
+ {\r
+ NoDataGroup_->SetVisible(false);\r
+ DataGroup_->SetVisible(false);\r
+\r
+ UIScrollView * temp_group = InitContentScreen();\r
+ if(nullptr == temp_group)\r
+ return;\r
+\r
+ container_->Add(temp_group);\r
+\r
+ ContentLabelExt0_->SetText(ScheduleModel::GetInstance().ScheduleInfoDateStrGet(index).c_str());\r
+\r
+ int16_t temp_y = 0;\r
+ temp_y = ContentLabelExt0_->GetY() + ContentLabelExt0_->GetHeight() + 50;\r
+ ContentLabelExt1_->SetY(temp_y);\r
+ ContentLabelExt1_->SetText(ScheduleModel::GetInstance().ScheduleInfoTopicStrGet(index).c_str());\r
+\r
+ temp_y = ContentLabelExt1_->GetY() + ContentLabelExt1_->GetHeight() + 20;\r
+ ContentLabelExt2_->SetY(temp_y);\r
+ ContentLabelExt2_->SetText(ScheduleModel::GetInstance().ScheduleInfoTimeStrGet(index).c_str());\r
+\r
+ temp_y = ContentLabelExt2_->GetY() + ContentLabelExt2_->GetHeight() + 20;\r
+ ContentLabelExt3_->SetY(temp_y);\r
+ ContentLabelExt3_->SetText(ScheduleModel::GetInstance().ScheduleInfoDataStrGet(index).c_str());\r
+\r
+ temp_y = ContentLabelExt3_->GetY() + ContentLabelExt3_->GetHeight() + 50;\r
+ ContentButton0_->SetY(temp_y);\r
+\r
+ temp_y = ContentButton0_->GetY() + ContentButton0_->GetHeight() + 20;\r
+ ContentButton1_->SetY(temp_y);\r
+ }\r
+\r
+ UIViewGroup * ScheduleView::InitNoDataScreen()\r
+ {\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "[%d]", __LINE__);\r
+ if(nullptr == NoDataGroup_)\r
+ {\r
+ NoDataGroup_ = new UIViewGroup();\r
+ if(nullptr == NoDataGroup_)\r
+ return nullptr;\r
+ }\r
+ NoDataGroup_->SetPosition(0, 0, Screen::GetInstance().GetWidth(), Screen::GetInstance().GetHeight());\r
+ NoDataGroup_->SetStyle(STYLE_BACKGROUND_OPA, OPA_OPAQUE);\r
+ NoDataGroup_->SetStyle(STYLE_BACKGROUND_COLOR, Color::Black().full);\r
+ NoDataGroup_->SetOnDragListener(presenter_);\r
+ NoDataGroup_->SetTouchable(true);\r
+ NoDataGroup_->SetDraggable(true);\r
+\r
+ if(nullptr == LabelExt0_)\r
+ {\r
+ LabelExt0_ = InitLabel(83, 50, 300, 35, 35, 30, STR_SCHEDULE_TITLE, Color::White().full);\r
+ if(nullptr == LabelExt0_)\r
+ {\r
+ return nullptr;\r
+ }\r
+ }\r
+\r
+ if(nullptr == ImageView_)\r
+ {\r
+ ImageView_ = new UIImageView();\r
+ if(nullptr == ImageView_)\r
+ {\r
+ return nullptr;\r
+ }\r
+\r
+ ImageView_->SetPosition(175, 150, 116, 120);\r
+ // ImageView_->SetAutoEnable(true);\r
+ // ImageView_->SetViewId(viewId);\r
+ ImageView_->SetSrc(NO_DATA_IMAGE);\r
+ }\r
+\r
+ if(nullptr == LabelExt1_)\r
+ {\r
+ LabelExt1_ = InitLabel(53, 330, 360, 35, 35, 30, STR_SCHEDULE_NO_DATA, 0xff999999);\r
+ if(nullptr == LabelExt1_)\r
+ {\r
+ return nullptr;\r
+ }\r
+ }\r
+\r
+ if(nullptr == LabelExt2_)\r
+ {\r
+ LabelExt2_ = InitLabel(53, 370, 360, 35, 35, 30, STR_SCHEDULE_NO_DATA_PROMPT, 0xff999999);\r
+ if(nullptr == LabelExt2_)\r
+ {\r
+ return nullptr;\r
+ }\r
+ }\r
+\r
+ NoDataGroup_->Add(LabelExt0_);\r
+ NoDataGroup_->Add(ImageView_);\r
+ NoDataGroup_->Add(LabelExt1_);\r
+ NoDataGroup_->Add(LabelExt2_);\r
+\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "[%d]", __LINE__);\r
+ return NoDataGroup_;\r
+ }\r
+\r
+ UIViewGroup * ScheduleView::InitDataScreen()\r
+ {\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "[%d]", __LINE__);\r
+ if(nullptr == DataGroup_)\r
+ {\r
+ DataGroup_ = new UIViewGroup();\r
+ if(nullptr == DataGroup_)\r
+ return nullptr;\r
+ }\r
+ DataGroup_->SetPosition(0, 0, Screen::GetInstance().GetWidth(), Screen::GetInstance().GetHeight());\r
+ DataGroup_->SetStyle(STYLE_BACKGROUND_OPA, OPA_OPAQUE);\r
+ DataGroup_->SetStyle(STYLE_BACKGROUND_COLOR, Color::Black().full);\r
+ DataGroup_->SetOnDragListener(presenter_);\r
+ DataGroup_->SetTouchable(true);\r
+ DataGroup_->SetDraggable(true);\r
+\r
+ if(nullptr == ScheduleListAdapter_)\r
+ {\r
+ ScheduleListAdapter_ = new ScheduleListAdapter();\r
+ if(nullptr == ScheduleListAdapter_)\r
+ return nullptr;\r
+ \r
+ ScheduleListAdapter_->SetItemClickListener(presenter_);\r
+ }\r
+\r
+ if(nullptr == ScheduleList_)\r
+ {\r
+ ScheduleList_ = new UIList();\r
+ if(nullptr == ScheduleList_)\r
+ {\r
+ return nullptr;\r
+ }\r
+ }\r
+ ScheduleList_->SetPosition(LIST_LEFT, LIST_TOP, LIST_WIDTH, LIST_HEIGHT);\r
+ // ScheduleList_->SetScrollBlankSize(30);\r
+ // ScheduleList_->SetSelectPosition(VERTICAL_RESOLUTION / 2);\r
+ ScheduleList_->SetDraggable(true);\r
+ ScheduleList_->SetThrowDrag(true);\r
+ // ScheduleList_->EnableAutoAlign(true);\r
+ ScheduleList_->SetAdapter(ScheduleListAdapter_);\r
+ // ScheduleList_->SetScrollStateListener(presenter_);\r
+ ScheduleList_->SetMaxScrollDistance(1000); // 1000: max scroll distance\r
+ ScheduleList_->SetSwipeACCLevel(800); // 800: compensation distance\r
+ ScheduleList_->SetDragACCLevel(5); // 5: drag acceleration\r
+ ScheduleList_->SetYScrollBarVisible(false);\r
+\r
+ ScheduleList_->SetRotateFactor(2); // 增加表冠控制\r
+ ScheduleList_->RequestFocus();\r
+\r
+ DataGroup_->Add(ScheduleList_);\r
+\r
+ return DataGroup_;\r
+ }\r
+\r
+ UIScrollView * ScheduleView::InitContentScreen()\r
+ {\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "[%d]", __LINE__);\r
+ if(nullptr == ContentGroup_)\r
+ {\r
+ ContentGroup_ = new UIScrollView();\r
+ if(nullptr == ContentGroup_)\r
+ return nullptr;\r
+ }\r
+ // ContentGroup_->SetViewIndex(ENUM_SCHEDULE_CONTENT_SCREEN);\r
+ ContentGroup_->SetPosition(0, 0, Screen::GetInstance().GetWidth(), Screen::GetInstance().GetHeight());\r
+ ContentGroup_->SetStyle(STYLE_BACKGROUND_OPA, OPA_OPAQUE);\r
+ ContentGroup_->SetStyle(STYLE_BACKGROUND_COLOR, Color::Black().full);\r
+ ContentGroup_->SetOnDragListener(presenter_);\r
+ ContentGroup_->SetTouchable(true);\r
+ ContentGroup_->SetDraggable(true);\r
+\r
+ ContentGroup_->SetScrollBlankSize(40);\r
+ ContentGroup_->SetReboundSize(40);\r
+ ContentGroup_->SetDirection(1);\r
+ ContentGroup_->SetMaxScrollDistance(1000);\r
+ ContentGroup_->SetThrowDrag(true);\r
+ ContentGroup_->RequestFocus();\r
+ ContentGroup_->SetRotateFactor(2);\r
+\r
+ if(nullptr == ContentLabelExt0_)\r
+ {\r
+ ContentLabelExt0_ = new UILabelExt();\r
+ if(nullptr == ContentLabelExt0_)\r
+ return nullptr;\r
+\r
+ ContentLabelExt0_->SetPosition(83, 50, 300, 35);\r
+ ContentLabelExt0_->SetStyle(STYLE_TEXT_FONT, 30);\r
+ ContentLabelExt0_->SetStyle(STYLE_LINE_HEIGHT, 35);\r
+ // ContentLabelExt0_->SetTextId(text_id);\r
+ ContentLabelExt0_->SetLineBreakMode(UILabel::LINE_BREAK_OSCILLATION);\r
+ ContentLabelExt0_->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);\r
+ ContentLabelExt0_->SetRollSpeed(70);\r
+ ContentLabelExt0_->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 30);\r
+ ContentLabelExt0_->SetStyle(STYLE_TEXT_COLOR, 0xffff5a36);\r
+ }\r
+\r
+ if(nullptr == ContentLabelExt1_)\r
+ {\r
+ ContentLabelExt1_ = new UILabelExt();\r
+ if(nullptr == ContentLabelExt1_)\r
+ return nullptr;\r
+\r
+ ContentLabelExt1_->SetPosition(53, 0, 360, 35);\r
+ ContentLabelExt1_->SetStyle(STYLE_TEXT_FONT, 30);\r
+ ContentLabelExt1_->SetStyle(STYLE_LINE_HEIGHT, 35);\r
+ // ContentLabelExt1_->SetTextId(text_id);\r
+ ContentLabelExt1_->SetLineBreakMode(UILabel::LINE_BREAK_OSCILLATION);\r
+ ContentLabelExt1_->SetAlign(TEXT_ALIGNMENT_LEFT, TEXT_ALIGNMENT_TOP);\r
+ ContentLabelExt1_->SetRollSpeed(70);\r
+ ContentLabelExt1_->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 30);\r
+ ContentLabelExt1_->SetStyle(STYLE_TEXT_COLOR, Color::White().full);\r
+ }\r
+\r
+ if(nullptr == ContentLabelExt2_)\r
+ {\r
+ ContentLabelExt2_ = new UILabelExt();\r
+ if(nullptr == ContentLabelExt2_)\r
+ return nullptr;\r
+\r
+ ContentLabelExt2_->SetPosition(53, 0, 360, 35);\r
+ ContentLabelExt2_->SetStyle(STYLE_TEXT_FONT, 30);\r
+ ContentLabelExt2_->SetStyle(STYLE_LINE_HEIGHT, 35);\r
+ // ContentLabelExt2_->SetTextId(text_id);\r
+ ContentLabelExt2_->SetLineBreakMode(UILabel::LINE_BREAK_OSCILLATION);\r
+ ContentLabelExt2_->SetAlign(TEXT_ALIGNMENT_LEFT, TEXT_ALIGNMENT_TOP);\r
+ ContentLabelExt2_->SetRollSpeed(70);\r
+ ContentLabelExt2_->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 30);\r
+ ContentLabelExt2_->SetStyle(STYLE_TEXT_COLOR, Color::White().full);\r
+ }\r
+\r
+ if(nullptr == ContentLabelExt3_)\r
+ {\r
+ ContentLabelExt3_ = new UILabelExt();\r
+ if(nullptr == ContentLabelExt3_)\r
+ return nullptr;\r
+\r
+ int16_t y = ContentLabelExt2_->GetHeight();\r
+ ContentLabelExt3_->SetPosition(53, 0, 360, 35);\r
+ ContentLabelExt3_->SetStyle(STYLE_TEXT_FONT, 30);\r
+ ContentLabelExt3_->SetStyle(STYLE_LINE_HEIGHT, 35);\r
+ // ContentLabelExt3_->SetTextId(text_id);\r
+ ContentLabelExt3_->SetLineBreakMode(UILabel::LINE_BREAK_WRAP);\r
+ ContentLabelExt3_->SetAlign(TEXT_ALIGNMENT_LEFT, TEXT_ALIGNMENT_TOP);\r
+ ContentLabelExt3_->SetRollSpeed(70);\r
+ ContentLabelExt3_->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 30);\r
+ ContentLabelExt3_->SetStyle(STYLE_TEXT_COLOR, Color::White().full);\r
+ }\r
+\r
+ if(nullptr == ContentButton0_)\r
+ {\r
+ ContentButton0_ = new UIButton();\r
+ if(nullptr == ContentButton0_)\r
+ return nullptr;\r
+\r
+ ContentButton0_->SetPosition(93, 0, 280, 90);\r
+ // ContentButton0_->SetViewId();\r
+ ContentButton0_->SetStyle(STYLE_BACKGROUND_COLOR, 0xfffd5213);\r
+ ContentButton0_->SetStyle(STYLE_BACKGROUND_OPA, OPA_OPAQUE);\r
+ ContentButton0_->SetStyleForState(STYLE_BACKGROUND_COLOR, 0xfffd5213, UIButton::PRESSED);\r
+ }\r
+\r
+ if(nullptr == ContentButton1_)\r
+ {\r
+ ContentButton1_ = new UIButton();\r
+ if(nullptr == ContentButton1_)\r
+ return nullptr;\r
+\r
+ ContentButton1_->SetPosition(93, 0, 280, 90);\r
+ // ContentButton1_->SetViewId();\r
+ ContentButton1_->SetStyle(STYLE_BACKGROUND_COLOR, 0xff191919);\r
+ ContentButton1_->SetStyle(STYLE_BACKGROUND_OPA, OPA_OPAQUE);\r
+ ContentButton1_->SetStyleForState(STYLE_BACKGROUND_COLOR, 0xff191919, UIButton::PRESSED);\r
+ }\r
+\r
+ ContentGroup_->Add(ContentLabelExt0_);\r
+ ContentGroup_->Add(ContentLabelExt1_);\r
+ ContentGroup_->Add(ContentLabelExt2_);\r
+ ContentGroup_->Add(ContentLabelExt3_);\r
+ ContentGroup_->Add(ContentButton0_);\r
+ ContentGroup_->Add(ContentButton1_);\r
+\r
+ return ContentGroup_;\r
+ }\r
+\r
+ UILabelExt * ScheduleView::InitLabel(int16_t x, int16_t y, int16_t width, int16_t height,\r
+ uint16_t line_height, uint8_t font_size, uint16_t text_id, uint32_t text_color)\r
+ {\r
+ UILabelExt * LabelExt = new UILabelExt();\r
+ if(nullptr == LabelExt)\r
+ {\r
+ return nullptr;\r
+ }\r
+\r
+ LabelExt->SetPosition(x, y, width, height);\r
+ LabelExt->SetStyle(STYLE_TEXT_FONT, font_size);\r
+ LabelExt->SetStyle(STYLE_LINE_HEIGHT, line_height);\r
+ LabelExt->SetTextId(text_id);\r
+ LabelExt->SetLineBreakMode(UILabel::LINE_BREAK_OSCILLATION);\r
+ LabelExt->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);\r
+ LabelExt->SetRollSpeed(70);\r
+ LabelExt->SetFont(DEFAULT_VECTOR_FONT_FILENAME, font_size);\r
+ LabelExt->SetStyle(STYLE_TEXT_COLOR, text_color);\r
+\r
+ return LabelExt;\r
+ }\r
+\r
+}
\ No newline at end of file
{
screen_context_t *sc = power_display_get_screen_context();
uint16_t current_slice_id = OHOS::NativeAbility::GetInstance().GetCurSliceId();
+
for (uint16_t i = 0; i < sizeof(ignore_slice_ids) / sizeof(uint16_t); i++)
{
if (ignore_slice_ids[i] == current_slice_id)
sc->screen_off_time_interval);
WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "GetNativeAbilityState = %u",
OHOS::NativeAbility::GetInstance().GetNativeAbilityState());
+ /*密码锁开关被打开*/
+ if (OHOS::ConfigModel::GetInstance()->get_configData_int(OHOS::ConfigModel::CONFIGMODEL_ITEM_PASSWORD_SWITCH))
+ {
if (OHOS::NativeAbility::GetInstance().GetNativeAbilityState() == STATE_ACTIVE)
{
+
#if 0
if (current_slice_id != VIEW_MAIN)
{
}
}
#endif
- /*密码锁开关被打开*/
- if (OHOS::ConfigModel::GetInstance()->get_configData_int(OHOS::ConfigModel::CONFIGMODEL_ITEM_PASSWORD_SWITCH))
- {
/*如果是未上锁界面或者是密码锁界面*/
if (uapi_dev_runtime_get_lock_status() == 0)
{
/*重新进入一次主界面*/
OHOS::NativeAbility::GetInstance().ChangeSlice(VIEW_MAIN);
- // 切换回主表盘页面
- OHOS::MainViewSample::GetInstance()->SwitchToClockPage();
/*上锁*/
uapi_dev_runtime_set_lock_status(1);
/*设置表盘状态*/
OHOS::MainModel::GetInstance().setDialState(OHOS::DialState::LOCK, true);
}
+ if (uapi_dev_runtime_get_lock_status() == 1 && (current_slice_id == VIEW_CODED_LOCK))
+ {
+ /*重新进入一次主界面*/
+ OHOS::NativeAbility::GetInstance().ChangeSlice(VIEW_MAIN);
+ }
}
}
}
${ROOT_DIR}/application/wearable/fd230app/nativeui/aivoice/include
${ROOT_DIR}/application/wearable/fd230app/nativeui/alarm/include
${ROOT_DIR}/application/wearable/fd230app/nativeui/musicplayer/include
+${ROOT_DIR}/application/wearable/fd230app/nativeui/schedule/include
#/home/hcj/FD230/code/sdk/application/wearable/fd230app/nativeui/alarm/include/AlarmClockModel.h
#/home/hcj/FD230/code/sdk/middleware/services/media/foundation/player/interfaces/kits/player.h
#include <dirent.h>
#include <ppg_service.h>
#include "power_display_service.h"
+#include "ScheduleData.h"
#define before_file_day 30
bool Ble_Set_ScheduleInfo(uint8_t id,uint32_t timetamp_begin,uint32_t timetamp_end,char *title,char *data)
{
- OHOS::ScheduleInfo info;
- info.id=id;
- info.timetamp_begin=timetamp_begin;
- info.timetamp_end=timetamp_end;
- info.titel.clear();
- info.content.clear();
- info.titel.append(title,strlen(title)+1);
- info.content.append(data,strlen(data)+1);
- printf("///////////////////日程数据////////////////////\r\n");
- printf("id:%d\r\n",info.id);
- printf("timetamp_begin:%d\r\n",info.timetamp_begin);
- printf("timetamp_end:%d\r\n",info.timetamp_end);
- printf("titel:%s\r\n",info.titel.c_str());
- printf("content:%s\r\n",info.content.c_str());
+ OHOS::ScheduleRevData info_;
+
+ info_.topic.clear();
+ info_.content.clear();
+ info_.topic.append(title,strlen(title)+1);
+ info_.content.append(data,strlen(data)+1);
+ time_t currtime=timetamp_begin;
+ struct tm *timeinfo;
+ timeinfo = localtime(&currtime);
+ int y=timeinfo->tm_year+ 1900;
+ int m=timeinfo->tm_mon+1;
+ int d=timeinfo->tm_mday;
+ int h=timeinfo->tm_hour;
+ int min=timeinfo->tm_min;
+ char day_buf[24]={0};
+ sprintf_s(day_buf,24,"%d/%d",m,d);
+ info_.date.clear();
+ info_.date.append(day_buf,strlen(day_buf)+1);
+
+ currtime=timetamp_end;
+ timeinfo = localtime(&currtime);
+
+ int h_=timeinfo->tm_hour;
+ int min_=timeinfo->tm_min;
+ char time_buf[24]={0};
+ sprintf_s(time_buf,24,"%02d:%02d-%02d:%02d",h,min,h_,min_);
+ info_.time.clear();
+ info_.time.append(time_buf,strlen(time_buf)+1);
+
+ printf("///////////////////日程数据////////////////////\r\n");
+ printf("date:%s\r\n",info_.date.c_str());
+ printf("time:%s\r\n",info_.time.c_str());
+ printf("titel:%s\r\n",info_.topic.c_str());
+ printf("content:%s\r\n",info_.content.c_str());
printf("//////////////////////////////////////////////\r\n");
- return true;
+ //printf("delete_before_file now day%d %d %d\r\n ",y,m,d);
-
+ OHOS::C_ScheduleSetByApp(&info_, id - 1, false);
+
+ return true;
}
}
else
{
- NotificationManager::GetInstance()->ShowNotify(ShowChargeingNotify, (uint16_t)topic, true);
+ if (CheckPriority(topic))
+ {
+ NotificationManager::GetInstance()->ShowNotify(ShowChargeingNotify, (uint16_t)topic, true);
+ }
}
}
display_api->set_screen_set_keepon_timeout(1000*5);
set_lowpower_falg(0);
- NotificationManager::GetInstance()->SetNotifyPriority(PRIORITY_TWO);
- NotificationManager::GetInstance()->ShowNotify(showlowpowerNotify, (uint16_t)topic, true);
+ if (CheckPriority(topic))
+ {
+ NotificationManager::GetInstance()->SetNotifyPriority(PRIORITY_TWO);
+ NotificationManager::GetInstance()->ShowNotify(showlowpowerNotify, (uint16_t)topic, true);
+ }
}
else
{
set_lowpower_falg(1);
if (NotificationManager::GetInstance()->HasNotifyShowing())
NotificationManager::GetInstance()->StopNotify();
-
+ if (CheckPriority(topic))
+ {
NotificationManager::GetInstance()->SetNotifyPriority(PRIORITY_ONE);
NotificationManager::GetInstance()->ShowNotify(showlowpowerNotify, (uint16_t)topic, true);
+ }
}
unused(req);
WEARABLE_LOGI(WEARABLE_LOG_MODULE_APP, "MsgCenterNotifyMessageProc !");
if (CheckPriority(topic)) {
+ NotificationManager::GetInstance()->SetNotifyPriority(PRIORITY_THREE);
NotificationManager::GetInstance()->ShowNotify(showMessageNotify, (uint16_t)topic, true);
}
}
{
NotificationManager::GetInstance()->SetNotifyPriority(PRIORITY_THREE);
}
-
- NotificationManager::GetInstance()->ShowNotify(showSleepNotify, (uint16_t)topic, true);
+ if (CheckPriority(topic))
+ {
+ NotificationManager::GetInstance()->ShowNotify(showSleepNotify, (uint16_t)topic, true);
+ }
}
#endif
{
return;
}
- MotionRecognitionViewEventListener::GetInstance().SetMotionTypeId(*motionType);
- NotificationManager::GetInstance()->ShowNotify(showMotionRecognitionNotify, (uint16_t)topic, true);
+ if (CheckPriority(topic))
+ {
+ MotionRecognitionViewEventListener::GetInstance().SetMotionTypeId(*motionType);
+ NotificationManager::GetInstance()->ShowNotify(showMotionRecognitionNotify, (uint16_t)topic, true);
+ }
+
}
void MsgCenterNotifyInactivityProc(const Topic topic, Request *req)
case INACTIVITY_MODE_SEDENTARY_OUTPUT:
if(cywee_Inactivity_Info->status == 1)
{
- NotificationManager::GetInstance()->ShowNotify(showSedentaryReminderNotify, (uint16_t)topic, true);
+ if (CheckPriority(topic))
+ {
+ NotificationManager::GetInstance()->ShowNotify(showSedentaryReminderNotify, (uint16_t)topic, true);
+ }
}
else if(cywee_Inactivity_Info->status==9)
{
},
'brandy-native-js-ct': {
'base_target_name': 'brandy-native-js',
- 'defines': ['SUPPORT_TELECOM_DMP'],
+ 'defines': ['SUPPORT_TELECOM_DMP'], #电信
'fs_image_path':'fd230',
},
'brandy-native-js-cm': {
'base_target_name': 'brandy-native-js',
- 'defines': ['SUPPORT_CHINA_MOBILE_DMP'],
+ 'defines': ['SUPPORT_CHINA_MOBILE_DMP'], #移动
'fs_image_path':'fd230',
},
'brandy-native-js-obu': {
--- /dev/null
+version https://git-lfs.github.com/spec/v1
+oid sha256:cba8ef0eaffc79e3918a64cac8e3e607f0f3522b827f2e02e855dd03017dd846
+size 360
+++ /dev/null
-version https://git-lfs.github.com/spec/v1
-oid sha256:34598428db956980c4a4872fcac30bd2269a3e95af03bae8a7cd2e29356e642f
-size 1560
--- /dev/null
+version https://git-lfs.github.com/spec/v1
+oid sha256:577ac3d636d28e778810904a9f3c7050e6fb8f5e9ca4e3b5e89977ca96160d08
+size 6824
--- /dev/null
+version https://git-lfs.github.com/spec/v1
+oid sha256:690e6a09139ecfd6f5c33814cee1fec19603f9e9216055778969ecb69c72bda0
+size 6824
version https://git-lfs.github.com/spec/v1
-oid sha256:ab593a7db1ccde5bb02c986b1076727469120da3706eb58f0c2d7341aff6b79a
-size 1560
+oid sha256:68096574a9268b25064b3baf39156443ab25214ead01c007adc827e91121a491
+size 6824
+++ /dev/null
-version https://git-lfs.github.com/spec/v1
-oid sha256:6db591e3eb1bb54b9010e4c57c5b0f40d28a1290e95f28a9c0920ba7369e0171
-size 792
version https://git-lfs.github.com/spec/v1
-oid sha256:b21cd7b0da5006062af8f7efe3e791ee290322f31cde7581eed65bcc9ebf9df7
+oid sha256:486a3f978309b235ecbad08735000e120944a29784753182c9a7b0db1a7f15f5
size 2424
version https://git-lfs.github.com/spec/v1
-oid sha256:78a4a48c22d14d85354d1fe4d84b0c13244c47d9b1f5858227b63403fbad404d
+oid sha256:278118f46acb12fdf2803e29947b94003264eca5145de4aa9dfbd391d5ae705c
size 2424
--- /dev/null
+version https://git-lfs.github.com/spec/v1
+oid sha256:cb23385c5e0f30741f1daee38327f8ee129098caaffc0e54c1e79891f7e8075a
+size 6824
--- /dev/null
+version https://git-lfs.github.com/spec/v1
+oid sha256:b1fd43a729394c9369ac00fd9a9e535372cbd938a0fcb6fa2f32fdc4d43a6624
+size 6824
+++ /dev/null
-version https://git-lfs.github.com/spec/v1
-oid sha256:50053d273b582b274ff2e748de6940cc52312ee25adff7bf2bbd2a9e9e27960f
-size 1560
--- /dev/null
+version https://git-lfs.github.com/spec/v1
+oid sha256:2fc9288c4f82c47c2a7e5ae8de6c7f8f6416029c093035bafe175e3193e60fdf
+size 6824
--- /dev/null
+version https://git-lfs.github.com/spec/v1
+oid sha256:ce406b51adb4a8eeac02219635a7f7798131374b30c552e6a2c4b520da0cd741
+size 6824
version https://git-lfs.github.com/spec/v1
-oid sha256:34a4e1b063eda3fcb6ca9c2e223173e4550620182ecec675ddf8b4971bb6b1af
+oid sha256:e316c3df55273dec4fdefb3a495d20c2416b102147547543162916e32aba443e
size 2424
version https://git-lfs.github.com/spec/v1
-oid sha256:9fce27e93e1538cccc7da3120837858f59f48a9df2cedfc07992cacff34ae507
+oid sha256:d1b24e0b2f9a514947413e62a204dead79e6d1ce89d3eac03a345fd19c2afb88
size 2424
version https://git-lfs.github.com/spec/v1
-oid sha256:5be34fcd358e742d3a3cab6986d844cb5ccfc33f9c422b7c0ff22f35d63c3ea0
-size 1560
+oid sha256:2ce5d64a79892e706f0c00e89d5f6651909c36982697b7dd55b1072c303c8845
+size 6824
--- /dev/null
+version https://git-lfs.github.com/spec/v1
+oid sha256:ccd08d684b039120a694a5063eb0317713d41989329beecd482101ab224f8678
+size 1048
--- /dev/null
+version https://git-lfs.github.com/spec/v1
+oid sha256:5589fba2c549bc7cea35e988c37a9b1345c07f836d428a9edec0dbedde177724
+size 6824
version https://git-lfs.github.com/spec/v1
-oid sha256:492d2eb4af52cf3ef0ddb43cb09a8af13629ec7d5b8d5f723358771f3441e65c
+oid sha256:657fe582d7388c79981f854f7a104e3cbb5be32bd99b490733a3dc00c070f344
size 472
version https://git-lfs.github.com/spec/v1
-oid sha256:918af4560a1fb31b88e7ba3e96a82a3865457cf4296da60d85a6d05040306ad9
+oid sha256:a6fb65d6dcc531134c370a385dde6398f6c0faea4d618b5625e99db9d06c643a
size 216
version https://git-lfs.github.com/spec/v1
-oid sha256:905a252082ea4a712d68b34df64ce107350ba8def9e77b31e93d468d0cd6fe63
+oid sha256:a467f9fbbc6b008a5561f44b9d04344a4038a4b70d16398fdb56c2337887d45f
size 984
version https://git-lfs.github.com/spec/v1
-oid sha256:52855c1d10dc754e635bc180a5ea72459697a83de535633b6fafd5bc8be26836
+oid sha256:de5282b987c706fa7005e14bead646fe1338b778efa67ac5963330abb9883eb0
size 2424
version https://git-lfs.github.com/spec/v1
-oid sha256:923ae93925394df078d1451f332acf9e74c49a23f881ae222c30b790d217fe24
+oid sha256:e3f599b409d5bb02fa7f351a329e8d16b8fec79dbf74d4f9bc7453d9a528b475
size 2424
+++ /dev/null
-version https://git-lfs.github.com/spec/v1
-oid sha256:08218c18c5b6abb4d2427c0e9694e0d97f0046f30ce7f7f3e291f322bc10542d
-size 1560
--- /dev/null
+version https://git-lfs.github.com/spec/v1
+oid sha256:8120777259ef1138317ed77edea5e063c1c5f3d484bcf0a2e483d9bbbae617d4
+size 6824
--- /dev/null
+version https://git-lfs.github.com/spec/v1
+oid sha256:308fc80312070e3d36152fcac317a84239c4d80ee4dae39bdcde8427ef516abb
+size 6824
--- /dev/null
+version https://git-lfs.github.com/spec/v1
+oid sha256:7b174742055efa5938b64551a55fd1628a53b094a955030eade2e5805972df28
+size 312
--- /dev/null
+version https://git-lfs.github.com/spec/v1
+oid sha256:6512f32f946b26859a11c628d49a57a518b59127aab38a669cf70a888b5da098
+size 312
version https://git-lfs.github.com/spec/v1
-oid sha256:167523518e00aceaa0522319bbb7320b209c46a822635ddf99a1ac1041b967a1
-size 1560
+oid sha256:03cd2180ab031c0f5725c056cc749fbb44c56c9a61035efcf30414024aac91d7
+size 6824
--- /dev/null
+version https://git-lfs.github.com/spec/v1
+oid sha256:6d6f0d7144c7fa7086c43f0fd74f3f1fb7c2f840bf43c9f16f5e2fe9d9e0fa91
+size 6824
--- /dev/null
+version https://git-lfs.github.com/spec/v1
+oid sha256:39d90507886017aff1e024f2a95f468e6426f4ee01d8c02d12b21d5f4488ac91
+size 6824
--- /dev/null
+version https://git-lfs.github.com/spec/v1
+oid sha256:1ef5835d358587a909b57c87e2ea4884d02ed97db2c7edf9ed0e0dc24d42180a
+size 408
--- /dev/null
+version https://git-lfs.github.com/spec/v1
+oid sha256:ef114c9bf2ab68c7d416636aa83abc9cb65bb64088b6b4df3c83ce56d7f9b123
+size 408
--- /dev/null
+version https://git-lfs.github.com/spec/v1
+oid sha256:319061f20e42b134cdd01344fa79bb3ac706643a7da68c3b8199f6b6d630bce7
+size 408
--- /dev/null
+version https://git-lfs.github.com/spec/v1
+oid sha256:d197881a9b85fa97faa6bd7a94d684d55ca7680ef661d758b9d259e289751a22
+size 408
--- /dev/null
+version https://git-lfs.github.com/spec/v1
+oid sha256:9df2a4a49dff299179c5b4854f6bd4136d297117f4e20e8430122fb6c0cc7953
+size 312
--- /dev/null
+version https://git-lfs.github.com/spec/v1
+oid sha256:ec2ff4171692a30af22a443998788d830965c80ea4a6c909f2a6dfcf3cb48dad
+size 408
#!/bin/bash
-#set -e
+#set -ex
version=HEAD
DATE=$(date +%Y%m%d.%H%M%S)
HOMEDIR=$PWD
}
genpatch $PWD
-echo done
+echo $BACKUPDIR_HOME done