From: luozheng <1732036298@qq.com> Date: Fri, 12 Apr 2024 12:10:56 +0000 (+0800) Subject: 天气视图优化 X-Git-Tag: release_V1.2.70_20241020_135402~1189^2~12 X-Git-Url: http://git.snicker.com.cn/css/static/gitweb.css?a=commitdiff_plain;h=d4f5e936a3a89b57083258a718b1a01c9c398353;p=mirrors%2FFD230.git 天气视图优化 配对弹窗的定时器启动放到显示视图时启动 --- diff --git a/code/sdk/application/wearable/fd230app/CMakeLists.txt b/code/sdk/application/wearable/fd230app/CMakeLists.txt index 92cdfffbf..32c0283a8 100644 --- a/code/sdk/application/wearable/fd230app/CMakeLists.txt +++ b/code/sdk/application/wearable/fd230app/CMakeLists.txt @@ -330,7 +330,6 @@ set(SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/weather/src/WeatherReportView.cpp ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/weather/src/FutureWeatherPresenter.cpp ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/weather/src/FutureWeatherView.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/weather/src/GetWeatherDataErrorPresenter.cpp ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/weather/src/GetWeatherDataErrorView.cpp ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/weather/src/WeatherControlView.cpp ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/weather/src/WeatherView.cpp diff --git a/code/sdk/application/wearable/fd230app/nativelauncher/include/AppViewIDs.h b/code/sdk/application/wearable/fd230app/nativelauncher/include/AppViewIDs.h index f3c6a7bb8..7632b31ea 100644 --- a/code/sdk/application/wearable/fd230app/nativelauncher/include/AppViewIDs.h +++ b/code/sdk/application/wearable/fd230app/nativelauncher/include/AppViewIDs.h @@ -44,7 +44,6 @@ typedef enum : uint16_t VIEW_SHUTDOWN_OR_REBOOT, // 关机或重启界面 VIEW_WEATHER, // 天气 VIEW_FUTURE_WEATHER, // 未来天气 - VIEW_GET_WEATHER_DATA_ERROR, // 获取天气数据失败 VIEW_SYSTEM, // 系统 VIEW_SOUND_VIBRATION, // 声音与震动 VIEW_SYSTEM_VOLUME, // 系统音量 diff --git a/code/sdk/application/wearable/fd230app/nativelauncher/include/NativeLauncher.h b/code/sdk/application/wearable/fd230app/nativelauncher/include/NativeLauncher.h index 957072159..9571dc755 100644 --- a/code/sdk/application/wearable/fd230app/nativelauncher/include/NativeLauncher.h +++ b/code/sdk/application/wearable/fd230app/nativelauncher/include/NativeLauncher.h @@ -41,7 +41,6 @@ namespace OHOS /* -------------------------------------------------------------------------- */ void InitWeatherSlice(void); void InitFutureWeatherSlice(void); - void InitGetWeatherDataErrorSlice(void); void InitSystemSlice(void); void InitSoundAndVibrationSlice(void); void InitSystemVolumeSlice(void); diff --git a/code/sdk/application/wearable/fd230app/nativelauncher/src/NativeLauncher.cpp b/code/sdk/application/wearable/fd230app/nativelauncher/src/NativeLauncher.cpp index 00b23109d..658e9cc04 100644 --- a/code/sdk/application/wearable/fd230app/nativelauncher/src/NativeLauncher.cpp +++ b/code/sdk/application/wearable/fd230app/nativelauncher/src/NativeLauncher.cpp @@ -70,8 +70,6 @@ #include "weather/include/MainWeatherView.h" #include "weather/include/FutureWeatherPresenter.h" #include "weather/include/FutureWeatherView.h" -#include "weather/include/GetWeatherDataErrorPresenter.h" -#include "weather/include/GetWeatherDataErrorView.h" #include "system/include/SystemPresenter.h" #include "system/include/SystemView.h" @@ -266,7 +264,6 @@ namespace OHOS {VIEW_SHUTDOWN_OR_REBOOT, &NativeLauncher::InitRebootSlice}, {VIEW_WEATHER, &NativeLauncher::InitWeatherSlice}, // 天气 {VIEW_FUTURE_WEATHER, &NativeLauncher::InitFutureWeatherSlice}, // 未来天气 - {VIEW_GET_WEATHER_DATA_ERROR, &NativeLauncher::InitGetWeatherDataErrorSlice}, // 获取天气数据失败 {VIEW_SYSTEM, &NativeLauncher::InitSystemSlice}, // 系统实例化地址 {VIEW_SOUND_VIBRATION, &NativeLauncher::InitSoundAndVibrationSlice}, // 声音与震动实例化地址 {VIEW_SYSTEM_VOLUME, &NativeLauncher::InitSystemVolumeSlice}, // 系统音量 @@ -684,16 +681,7 @@ namespace OHOS NativeAbility::GetInstance().AddSliceProxy(VIEW_FUTURE_WEATHER, futureweather); } - void NativeLauncher::InitGetWeatherDataErrorSlice(void) - { - WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "NativeLauncher::InitGetWeatherDataErrorSlice"); - SliceProxy *getweatherdataerror = new AbilitySliceProxy; - if (getweatherdataerror == nullptr) - { - return; - } - NativeAbility::GetInstance().AddSliceProxy(VIEW_GET_WEATHER_DATA_ERROR, getweatherdataerror); - } + void NativeLauncher::InitSystemSlice(void) // 系统 { diff --git a/code/sdk/application/wearable/fd230app/nativeui/weather/include/GetWeatherDataErrorPresenter.h b/code/sdk/application/wearable/fd230app/nativeui/weather/include/GetWeatherDataErrorPresenter.h deleted file mode 100644 index 2bda7b5ee..000000000 --- a/code/sdk/application/wearable/fd230app/nativeui/weather/include/GetWeatherDataErrorPresenter.h +++ /dev/null @@ -1,33 +0,0 @@ -#ifndef Get_WEATHER_DATA_ERROR_PRESENTER_H -#define Get_WEATHER_DATA_ERROR_PRESENTER_H - -#include "Presenter.h" -#include "GetWeatherDataErrorView.h" - -namespace OHOS -{ - class GetWeatherDataErrorView; - - class GetWeatherDataErrorPresenter : public Presenter, - public UIView::OnClickListener, - public UIView::OnDragListener - { - public: - GetWeatherDataErrorPresenter(); - virtual ~GetWeatherDataErrorPresenter(); - - void OnStart() override; - void OnPause() override; - void OnResume() override; - void OnStop() override; - - static GetWeatherDataErrorPresenter *GetInstance(); - - private: - // 因为继承了OnClickListener,所以有OnClick属性,至于参数,原函数也这样直接继承; - bool OnClick(UIView &view, const ClickEvent &event) override; - bool OnDrag(UIView &view, const DragEvent &event) override; - }; -} // namespace OHOS - -#endif // GetWeatherDataError_PRESENTER_H \ No newline at end of file diff --git a/code/sdk/application/wearable/fd230app/nativeui/weather/include/GetWeatherDataErrorView.h b/code/sdk/application/wearable/fd230app/nativeui/weather/include/GetWeatherDataErrorView.h index ccc9ac931..a45a17ab8 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/weather/include/GetWeatherDataErrorView.h +++ b/code/sdk/application/wearable/fd230app/nativeui/weather/include/GetWeatherDataErrorView.h @@ -1,41 +1,38 @@ +/* + * @Author: luozheng 1732036298@qq.com + * @Date: 2024-03-30 09:14:38 + * @LastEditors: luozheng 1732036298@qq.com + * @LastEditTime: 2024-04-12 16:22:24 + * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/weather/include/GetWeatherDataErrorView.h + */ #ifndef Get_WEATHER_DATA_ERROR_VIEW_H #define Get_WEATHER_DATA_ERROR_VIEW_H #include "BaseView.h" #include "View.h" -#include "components/ui_view_group.h" #include "components/ui_scroll_view.h" #include "components/ui_label.h" #include "components/ui_label_ext.h" #include "components/ui_image_view.h" namespace OHOS { - class GetWeatherDataErrorPresenter; - class GetWeatherDataErrorView : public View + + static constexpr const char *GETWEATHERDATAERRORVIEW = "GetWeatherDataErrorView"; + class GetWeatherDataErrorView { public: GetWeatherDataErrorView(); virtual ~GetWeatherDataErrorView(); static GetWeatherDataErrorView *GetInstance(void); - - void OnStart() override; - void OnSetUpView() override; - void OnTearDownView() override; - void OnStop() override; + UIScrollView *GetWeatherDataErrorViewInit(void); private: - void InitView(void); - void DeInitView(void); - void PreLoad(void); + void ClearAll(); - private: - UIView::OnDragListener *draglistener{nullptr}; - UIViewGroup *container_ = nullptr; - UIScrollView *scrollView1_ = nullptr; - UILabel *label1_ = nullptr; - UIImageView *image1_ = nullptr; - bool viewInitStatus{false}; + UIScrollView *scrollView = nullptr; + UILabel *label = nullptr; + UIImageView *image = nullptr; }; -} // namespace OHOS -#endif // GetWeatherDataError_PRESENTER_H \ No newline at end of file +} +#endif \ No newline at end of file diff --git a/code/sdk/application/wearable/fd230app/nativeui/weather/include/MainWeatherView.h b/code/sdk/application/wearable/fd230app/nativeui/weather/include/MainWeatherView.h index 5fab389cb..ecff30147 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/weather/include/MainWeatherView.h +++ b/code/sdk/application/wearable/fd230app/nativeui/weather/include/MainWeatherView.h @@ -1,3 +1,10 @@ +/* + * @Author: luozheng 1732036298@qq.com + * @Date: 2024-01-29 15:37:44 + * @LastEditors: luozheng 1732036298@qq.com + * @LastEditTime: 2024-04-12 19:45:12 + * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/weather/include/MainWeatherView.h + */ #ifndef MAIN_WEATHER_VIEW_H #define MAIN_WEATHER_VIEW_H @@ -7,6 +14,7 @@ #include "weather/include/WeatherView.h" #include "weather/include/WeatherReportView.h" +#include "weather/include/GetWeatherDataErrorView.h" namespace OHOS { typedef enum @@ -40,7 +48,7 @@ namespace OHOS private: WeatherView *weatherView{nullptr}; WeatherReportView *weatherReportView{nullptr}; - + GetWeatherDataErrorView *g_GetWeatherDataErrorView{nullptr}; private: int16_t maxPage = MAX_WEATHERVIEW; UISwipeView *weatherSwipeViewList{nullptr}; // 天气滑动视图列表 diff --git a/code/sdk/application/wearable/fd230app/nativeui/weather/include/WeatherModel.h b/code/sdk/application/wearable/fd230app/nativeui/weather/include/WeatherModel.h index 2ed852656..dcecff4b9 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/weather/include/WeatherModel.h +++ b/code/sdk/application/wearable/fd230app/nativeui/weather/include/WeatherModel.h @@ -2,71 +2,92 @@ * @Author: luozheng 1732036298@qq.com * @Date: 2024-04-08 18:40:20 * @LastEditors: luozheng 1732036298@qq.com - * @LastEditTime: 2024-04-11 15:51:19 + * @LastEditTime: 2024-04-12 18:57:44 * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/weather/include/WeatherModel.h */ #ifndef WEATHER_MODEL_H #define WEATHER_MODEL_H #include "wearable_log.h" -#if __cplusplus -extern "C" +#include "iostream" +namespace OHOS { +#if __cplusplus + extern "C" + { #endif /* __cplusplus */ #include "string.h" - static int WEATHER_DATA_VALID = 0; //天气数据是否有效 - /*天气数据*/ - struct Weather_data - { - int humidity; // 湿度 - char windScale[16]; // 风速 - char textNight[16]; // 夜间天气文本 - int uvIndex; // 紫外线指数 - int temp; // 温度 - int iconNight; // 夜间天气图标 - }; - //"address": { "lat" : 225737664, "atm" : "1010", "city" : "深圳", "subLocality" : "宝安", "lon" : 1138535138 } - /*天气数据的地址信息*/ - struct Weather_data_address - { - int lat; // 纬度 - char atm[16]; // 大气压 - char city[32]; // 城市 - char subLocality[32]; // 子地区 - int lon; // 经纬度 - }; + static uint8_t WEATHER_DATA_VALID = 0; // 天气数据是否有效 + /*天气数据*/ + struct Weather_data + { + int humidity; // 湿度 + char windScale[16]; // 风速 + char textNight[16]; // 夜间天气文本 + int uvIndex; // 紫外线指数 + int temp; // 温度 + int iconNight; // 夜间天气图标 + }; + //"address": { "lat" : 225737664, "atm" : "1010", "city" : "深圳", "subLocality" : "宝安", "lon" : 1138535138 } + /*天气数据的地址信息*/ + struct Weather_data_address + { + int lat; // 纬度 + char atm[16]; // 大气压 + char city[32]; // 城市 + char subLocality[32]; // 子地区 + int lon; // 经纬度 + }; - //{"tempMin":22,"iconDay":6,"fxDate":1712505600,"textDay":"阵雨","tempMax":29}, - /*一天内天气数据*/ - struct ONE_DAY_DATA - { - int tempMin; // 最低温度 - int iconDay; // 白天天气图标 - int fxDate; // 日期 - char textDay[16]; // 白天天气文本 - int tempMax; // 最高温度 - }; - - extern Weather_data Weather_data_t_now; - extern Weather_data_address Weather_data_t_address; - extern ONE_DAY_DATA Weather_data_seven_data[]; + //{"tempMin":22,"iconDay":6,"fxDate":1712505600,"textDay":"阵雨","tempMax":29}, + /*一天内天气数据*/ + struct ONE_DAY_DATA + { + int tempMin; // 最低温度 + int iconDay; // 白天天气图标 + int fxDate; // 日期 + char textDay[16]; // 白天天气文本 + int tempMax; // 最高温度 + }; - void UI_set_weather_now_data(int humidity, char *windScale, char *textNight, int uvIndex, int temp, int iconNight); + void UI_set_weather_now_data(int humidity, char *windScale, char *textNight, int uvIndex, int temp, int iconNight); - void UI_set_weather_address_data(int lat, char *atm, char *city, char *subLocality, int lon); + void UI_set_weather_address_data(int lat, char *atm, char *city, char *subLocality, int lon); - void UI_set_weather_seven_day_data(struct ONE_DAY_DATA *t); + void UI_set_weather_seven_day_data(struct ONE_DAY_DATA *t); #if __cplusplus -} + } #endif /* __cplusplus */ -namespace OHOS -{ + + static constexpr const char *WeatherBackground = "WEATHER_BACKGROUND.bin"; // 天气背景 + static constexpr const char *weather130x130[] = + { + "/user/res/weather/weather130x130/WEATHER_CLEAR-CLOUDY.bin", + "/user/res/weather/weather130x130/WEATHER_CLEAR-SUNNY.bin", //晴 + "/user/res/weather/weather130x130/WEATHER_DUSTSTORM.bin", + "/user/res/weather/weather130x130/WEATHER_FOGGY.bin", + "/user/res/weather/weather130x130/WEATHER_HAZE.bin", + "/user/res/weather/weather130x130/WEATHER_OVERCAST.bin", + "/user/res/weather/weather130x130/WEATHER_RAIN.bin", + "/user/res/weather/weather130x130/WEATHER_SNOW.bin", + "/user/res/weather/weather130x130/WEATHER_SUNNY.bin", + "/user/res/weather/weather130x130/WEATHER_SUNNY-CLOUNDY.bin", + "/user/res/weather/weather130x130/WEATHER_THUNDERSHOWER.bin", + "/user/res/weather/weather130x130/WEATHER_UNKNOWN.bin", + }; + /* -------------------------------------------------------------------------- */ class WeatherModel { public: static WeatherModel &GetInstance(void); + std::string GetWeatherImage(); + std::string GetWeatherTemperature(); + std::string GetWeatherDescription(); + std::string GetWeatherArea(); + std::string GetWeatherMaxAndMinTemperature(); + private: WeatherModel(); WeatherModel(const WeatherModel &) = delete; diff --git a/code/sdk/application/wearable/fd230app/nativeui/weather/include/WeatherReportView.h b/code/sdk/application/wearable/fd230app/nativeui/weather/include/WeatherReportView.h index 07ef3b5f3..a06a92a72 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/weather/include/WeatherReportView.h +++ b/code/sdk/application/wearable/fd230app/nativeui/weather/include/WeatherReportView.h @@ -1,3 +1,10 @@ +/* + * @Author: luozheng 1732036298@qq.com + * @Date: 2024-03-30 09:14:38 + * @LastEditors: luozheng 1732036298@qq.com + * @LastEditTime: 2024-04-12 16:41:27 + * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/weather/include/WeatherReportView.h + */ #ifndef WEATHER_REPORT_VIEW_H #define WEATHER_REPORT_VIEW_H @@ -7,7 +14,7 @@ #include "components/ui_view_group.h" #include "components/ui_scroll_view.h" #include "components/ui_label_ext.h" -#include"language/font/ui_resource_string.h" +#include "language/font/ui_resource_string.h" #include "components/ui_image_animator.h" #include "config/include/ConfigModel.h" namespace OHOS @@ -39,6 +46,8 @@ namespace OHOS } private: + const char **CreateImagePathsArray(const char *basePath, const char *fileExtension, int numImages); + void FreeImagePathsArray(const char **imagePaths, const int numImages); UILabelExt *SetUpLabel(LabelConfig &labelconfig); // 设置标签 bool WeatherReportViewLabelInit(void); bool WeatherReportViewImageAnimatorViewInit(void); @@ -52,10 +61,7 @@ namespace OHOS UIImageAnimatorView *UVImageAnimatorView{nullptr}; // 紫外线动画 UIImageAnimatorView *WindSpeedImageAnimatorView{nullptr}; // 风速动画 UIImageAnimatorView *HumidityImageAnimatorView{nullptr}; // 湿度动画 - ImageAnimator *p_ImageAnimator{nullptr}; - ImageAnimatorInfo *UVimageAnimatorInfo{nullptr}; - ImageAnimatorInfo *WindSpeedimageAnimatorInfo{nullptr}; - ImageAnimatorInfo *HumidityimageAnimatorInfo{nullptr}; + const char **UVPathsArray{nullptr}; const char **WindSpeedPathsArray{nullptr}; const char **HumidityPathsArray{nullptr}; diff --git a/code/sdk/application/wearable/fd230app/nativeui/weather/include/WeatherView.h b/code/sdk/application/wearable/fd230app/nativeui/weather/include/WeatherView.h index 6f6931cf7..331cbcfba 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/weather/include/WeatherView.h +++ b/code/sdk/application/wearable/fd230app/nativeui/weather/include/WeatherView.h @@ -1,3 +1,10 @@ +/* + * @Author: luozheng 1732036298@qq.com + * @Date: 2024-03-30 09:14:38 + * @LastEditors: luozheng 1732036298@qq.com + * @LastEditTime: 2024-04-12 15:06:35 + * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/weather/include/WeatherView.h + */ #ifndef WEATHER_VIEW_H #define WEATHER_VIEW_H @@ -13,26 +20,6 @@ #include "wearable_log.h" #include "AppGroupView.h" #include -#include "config/include/ConfigModel.h" - -namespace OHOS -{ - static constexpr char *WeatherBackground = "WEATHER_BACKGROUND.bin"; // 天气背景 - static constexpr const char *weather130x130[] = - { - "/user/res/weather/weather130x130/WEATHER_CLEAR-CLOUDY.bin", - "/user/res/weather/weather130x130/WEATHER_CLEAR-SUNNY.bin", - "/user/res/weather/weather130x130/WEATHER_DUSTSTORM.bin", - "/user/res/weather/weather130x130/WEATHER_FOGGY.bin", - "/user/res/weather/weather130x130/WEATHER_HAZE.bin", - "/user/res/weather/weather130x130/WEATHER_OVERCAST.bin", - "/user/res/weather/weather130x130/WEATHER_RAIN.bin", - "/user/res/weather/weather130x130/WEATHER_SNOW.bin", - "/user/res/weather/weather130x130/WEATHER_SUNNY.bin", - "/user/res/weather/weather130x130/WEATHER_SUNNY-CLOUNDY.bin", - "/user/res/weather/weather130x130/WEATHER_THUNDERSHOWER.bin", - "/user/res/weather/weather130x130/WEATHER_UNKNOWN.bin"}; -} namespace OHOS { @@ -53,13 +40,9 @@ namespace OHOS UILabelExt *InitLabelExt(int x, int y, int w, int h, const char *text, int textfont, int lineheight); private: - std::string GetTime(); - std::string GetWeatherImage(); - std::string GetWeatherTemperature(); - std::string GetWeatherDescription(); - std::string GetWeatherArea(); - std::string GetWeatherMaxAndMinTemperature(); - + const char **CreateImagePathsArray(const char *basePath, const char *fileExtension, int numImages); + void FreeImagePathsArray(const char **imagePaths, const int numImages); + void DumpWeatherInfo(); std::string WeatherImag; // 天气图片 std::string Temperature; // 温度 std::string WeatherDescription; // 天气描述 @@ -73,8 +56,6 @@ namespace OHOS UILabelExt *showWeatherAreaLabel{nullptr}; // 显示天气地区 UILabelExt *showMaxandMinTemperatureLabel{nullptr}; // 显示最高与最低气温 UIImageAnimatorView *PullUpAnimatorView{nullptr}; // 上拉动画 - ImageAnimator *p_ImageAnimator{nullptr}; - ImageAnimatorInfo *PullUpimageAnimatorInfo{nullptr}; const char **PullUpPathsArray{nullptr}; bool viewInitStatus{false}; }; diff --git a/code/sdk/application/wearable/fd230app/nativeui/weather/src/GetWeatherDataErrorPresenter.cpp b/code/sdk/application/wearable/fd230app/nativeui/weather/src/GetWeatherDataErrorPresenter.cpp deleted file mode 100644 index 4169b7be7..000000000 --- a/code/sdk/application/wearable/fd230app/nativeui/weather/src/GetWeatherDataErrorPresenter.cpp +++ /dev/null @@ -1,73 +0,0 @@ -#include "AppViewIDs.h" -#include "components/ui_label_ext.h" -#include"language/font/ui_resource_string.h" -#include "NativeAbility.h" -#include "weather/include/GetWeatherDataErrorPresenter.h" - -namespace OHOS -{ - - // 当前Presenter属性实例化的内存指针 - static GetWeatherDataErrorPresenter *g_pGetWeatherDataErrorPresenter = nullptr; - - GetWeatherDataErrorPresenter::GetWeatherDataErrorPresenter() - { - - g_pGetWeatherDataErrorPresenter = this; - } - - GetWeatherDataErrorPresenter::~GetWeatherDataErrorPresenter() - { - - g_pGetWeatherDataErrorPresenter = nullptr; - } - - GetWeatherDataErrorPresenter *GetWeatherDataErrorPresenter::GetInstance() - { - - return g_pGetWeatherDataErrorPresenter; - } - - void GetWeatherDataErrorPresenter::OnStart() - { - - Presenter::OnStart(); - } - - void GetWeatherDataErrorPresenter::OnPause(void) - { - - Presenter::OnPause(); - } - - void GetWeatherDataErrorPresenter::OnResume(void) - { - - Presenter::OnResume(); - } - - void GetWeatherDataErrorPresenter::OnStop(void) - { - - Presenter::OnStop(); - } - - bool GetWeatherDataErrorPresenter::OnDrag(UIView &view, const DragEvent &event) - { - - if (event.GetDragDirection() == DragEvent::DIRECTION_LEFT_TO_RIGHT && - (event.GetDeltaX() > 20) && (event.GetDeltaX() > (2 * MATH_ABS(event.GetDeltaY())))) - { - NativeAbility::GetInstance().ChangeSlice(VIEW_WEATHER); - } - return true; - } - - bool GetWeatherDataErrorPresenter::OnClick(UIView &view, const ClickEvent &event) - { - - // 根据控件id查找是哪个控件触发了点击回调 - // if (strcmp(view.GetViewId(), 控件ID) == 0) - return true; - } -} \ No newline at end of file diff --git a/code/sdk/application/wearable/fd230app/nativeui/weather/src/GetWeatherDataErrorView.cpp b/code/sdk/application/wearable/fd230app/nativeui/weather/src/GetWeatherDataErrorView.cpp index 55a43f67c..c71b9135a 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/weather/src/GetWeatherDataErrorView.cpp +++ b/code/sdk/application/wearable/fd230app/nativeui/weather/src/GetWeatherDataErrorView.cpp @@ -1,6 +1,13 @@ +/* + * @Author: luozheng 1732036298@qq.com + * @Date: 2024-01-29 15:37:44 + * @LastEditors: luozheng 1732036298@qq.com + * @LastEditTime: 2024-04-12 20:00:56 + * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/weather/src/GetWeatherDataErrorView.cpp + */ #include "weather/include/GetWeatherDataErrorView.h" -#include "weather/include/GetWeatherDataErrorPresenter.h" -#include "UiConfig.h" +#include "wearable_log.h" +#include "weather/include/MainWeatherPresenter.h" /* 天气获取数据失败后会调用该视图*/ namespace OHOS @@ -10,153 +17,94 @@ namespace OHOS GetWeatherDataErrorView::GetWeatherDataErrorView() { - + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "GetWeatherDataErrorView::GetWeatherDataErrorView"); g_pGetWeatherDataErrorView = this; } GetWeatherDataErrorView::~GetWeatherDataErrorView() { - if (viewInitStatus == true) - { - DeInitView(); - } + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "GetWeatherDataErrorView::~GetWeatherDataErrorView"); + ClearAll(); g_pGetWeatherDataErrorView = nullptr; } GetWeatherDataErrorView *GetWeatherDataErrorView::GetInstance() { - return g_pGetWeatherDataErrorView; } - void GetWeatherDataErrorView::InitView() + UIScrollView *GetWeatherDataErrorView::GetWeatherDataErrorViewInit() { - // Add ScrollView to App - if (scrollView1_ == nullptr) - { - scrollView1_ = new UIScrollView(); - } - scrollView1_->SetPosition(0, 0); - scrollView1_->Resize(466, 466); - scrollView1_->SetViewId("scrollView1"); - scrollView1_->SetStyle(STYLE_BACKGROUND_OPA, 0xff); - container_->Add(scrollView1_); - scrollView1_->SetVisible(true); - - // Add Label to App - if (label1_ == nullptr) + if (scrollView == nullptr) { - label1_ = new UILabel(); + scrollView = new UIScrollView(); + if (scrollView == nullptr) + { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "scrollView is new fail!!"); + return nullptr; + } + scrollView->SetPosition(0, 0, Screen::GetInstance().GetWidth(), Screen::GetInstance().GetHeight()); + scrollView->SetViewId(GETWEATHERDATAERRORVIEW); + scrollView->SetStyle(STYLE_BACKGROUND_OPA, 0xff); + UIView::OnDragListener *listener = static_cast(MainWeatherPresenter::GetInstance()); + if (listener == nullptr) + { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "listener is nullptr!!"); + return nullptr; + } + scrollView->SetOnDragListener(listener); + /* -------------------------------------------------------------------------- */ + image = new UIImageView(); + if (image == nullptr) + { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "image is new fail!!"); + return nullptr; + } + image->SetPosition(168, 127, 130, 130); + const char * ImgSr = "/user/res/weather/weather130x130/WEATHER_UNKNOWN.bin"; //天气数据获取失败 + image->SetSrc(ImgSr); + scrollView->Add(image); + /* -------------------------------------------------------------------------- */ + label = new UILabel(); + if (label == nullptr) + { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "label is new fail!!"); + return nullptr; + } + label->SetPosition(33, 268, 400, 70); + label->SetStyle(STYLE_TEXT_FONT, 26); + label->SetStyle(STYLE_LINE_HEIGHT, 35); + label->SetText("未获取到天气信息\n请前往APP更新"); + label->SetLineBreakMode(UILabel::LINE_BREAK_WRAP); + label->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER); + label->SetRollSpeed(40); + label->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 26); + scrollView->Add(label); } - label1_->SetPosition(113, 268); - label1_->Resize(240, 70); - label1_->SetViewId("label1"); - label1_->SetStyle(STYLE_TEXT_FONT, 30); - label1_->SetStyle(STYLE_LINE_HEIGHT, 35); - - // Set additional property - label1_->SetText("未获取到天气信息\n请前往APP更新"); - label1_->SetLineBreakMode(UILabel::LINE_BREAK_ADAPT); - label1_->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER); - label1_->SetRollSpeed(0); - label1_->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 30); - - // Add to scrollView1 - scrollView1_->Add(label1_); - label1_->SetVisible(true); - - // Add ImageView to App - if (image1_ == nullptr) - { - image1_ = new UIImageView(); - } - image1_->SetPosition(168, 127); - image1_->Resize(130, 130); - image1_->SetViewId("image1"); - image1_->SetSrc("/user/res/weather/WEATHER_UNKNOWN.bin"); - - // Add to scrollView1 - scrollView1_->Add(image1_); - image1_->SetVisible(true); + return scrollView; } - void GetWeatherDataErrorView::DeInitView() - { - container_->RemoveAll(); - scrollView1_->RemoveAll(); - if (label1_ != nullptr) - { - delete label1_; - label1_ = nullptr; - } - if (image1_ != nullptr) - { - delete image1_; - image1_ = nullptr; - } - if (scrollView1_ != nullptr) - { - delete scrollView1_; - scrollView1_ = nullptr; - } - if (container_ != nullptr) - { - delete container_; - container_ = nullptr; - } - } - - void GetWeatherDataErrorView::PreLoad(void) + void GetWeatherDataErrorView::ClearAll() { - if (!viewInitStatus) + scrollView->RemoveAll(); + + if (label != nullptr) { - InitView(); - viewInitStatus = true; + delete label; + label = nullptr; } - } - void GetWeatherDataErrorView::OnStart() - { - container_ = new UIViewGroup(); - if (container_ == nullptr) + + if (image != nullptr) { - return; + delete image; + image = nullptr; } - // container_容器属性 扩展 - container_->SetPosition(0, 0); - container_->SetWidth(Screen::GetInstance().GetWidth()); - container_->SetHeight(Screen::GetInstance().GetHeight()); - draglistener = static_cast(GetWeatherDataErrorPresenter::GetInstance()); - if (draglistener == nullptr) + if (scrollView != nullptr) { - return; + delete scrollView; + scrollView = nullptr; } - container_->SetOnDragListener(draglistener); - container_->SetTouchable(true); - container_->SetDraggable(true); - PreLoad(); - RootView::GetInstance()->Add(container_); } - void GetWeatherDataErrorView::OnSetUpView() - { - - View::OnSetUpView(); - Draw(); - } - - void GetWeatherDataErrorView::OnTearDownView() - { - - View::OnTearDownView(); - return; - } - - void GetWeatherDataErrorView::OnStop() - { - - View::OnStop(); - RootView::GetInstance()->RemoveAll(); - return; - } } \ No newline at end of file diff --git a/code/sdk/application/wearable/fd230app/nativeui/weather/src/MainWeatherPresenter.cpp b/code/sdk/application/wearable/fd230app/nativeui/weather/src/MainWeatherPresenter.cpp index 69311be7d..177ba4804 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/weather/src/MainWeatherPresenter.cpp +++ b/code/sdk/application/wearable/fd230app/nativeui/weather/src/MainWeatherPresenter.cpp @@ -65,13 +65,16 @@ namespace OHOS bool MainWeatherPresenter::OnDragEnd(UIView &view, const DragEvent &event) { - UNUSED(view); WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, " MainWeatherPresenter::OnDragEnd"); if (event.GetDragDirection() == DragEvent::DIRECTION_LEFT_TO_RIGHT) { NativeAbility::GetInstance().ChangeSlice(VIEW_APPLIST); return true; } + if(strcmp(view.GetViewId(),GETWEATHERDATAERRORVIEW) == 0) + { + NativeAbility::GetInstance().ChangeSlice(VIEW_APPLIST); + } return true; } diff --git a/code/sdk/application/wearable/fd230app/nativeui/weather/src/MainWeatherView.cpp b/code/sdk/application/wearable/fd230app/nativeui/weather/src/MainWeatherView.cpp index 8bb07596c..428ec38e9 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/weather/src/MainWeatherView.cpp +++ b/code/sdk/application/wearable/fd230app/nativeui/weather/src/MainWeatherView.cpp @@ -1,5 +1,6 @@ #include "weather/include/MainWeatherView.h" #include "weather/include/MainWeatherPresenter.h" +#include "weather/include/WeatherModel.h" namespace OHOS { static MainWeatherView *g_pMainWeatherView{nullptr}; @@ -23,20 +24,29 @@ namespace OHOS void MainWeatherView::ClearAll(void) { - for (int32_t i = 0; i < maxPage; i++) + if (weatherSwipeViewList != nullptr) { - recordCard[i] = nullptr; - } - weatherSwipeViewList->RemoveAll(); + for (int32_t i = 0; i < maxPage; i++) + { + recordCard[i] = nullptr; + } + weatherSwipeViewList->RemoveAll(); - delete weatherView; - weatherView = nullptr; + delete weatherView; + weatherView = nullptr; - delete weatherReportView; - weatherReportView = nullptr; + delete weatherReportView; + weatherReportView = nullptr; - delete weatherSwipeViewList; - weatherSwipeViewList = nullptr; + delete weatherSwipeViewList; + weatherSwipeViewList = nullptr; + } + + if (g_GetWeatherDataErrorView != nullptr) + { + delete g_GetWeatherDataErrorView; + g_GetWeatherDataErrorView = nullptr; + } } /* @@ -69,42 +79,57 @@ namespace OHOS recordCard[i]->InitView(this); weatherSwipeViewList->Add(recordCard[i]); } - WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "MainWeatherView InitPage over!!"); - return weatherSwipeViewList; - } - - void MainWeatherView::OnStart() - { - View::OnStart(); - MainWeatherViewInit(); - + /* -------------------------------------------------------------------------- */ if (weatherSwipeViewList != nullptr) { UIView::OnClickListener *weatherOnClickListener = (UIView::OnClickListener *)OHOS::MainWeatherPresenter::GetInstance(); if (weatherOnClickListener == nullptr) { WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "weatherOnClickListener new fail"); - return; + return nullptr; } UIView::OnDragListener *weatherOnDragListener = (UIView::OnDragListener *)OHOS::MainWeatherPresenter::GetInstance(); if (weatherOnDragListener == nullptr) { WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "weatherOnDragListener new fail"); - return; + return nullptr; } UISwipeView::OnSwipeListener *weatherOnSwipeListener = (UISwipeView::OnSwipeListener *)OHOS::MainWeatherPresenter::GetInstance(); if (weatherOnSwipeListener == nullptr) { WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "weatherOnSwipeListener new fail"); - return; + return nullptr; } weatherSwipeViewList->SetOnClickListener(weatherOnClickListener); weatherSwipeViewList->SetOnDragListener(weatherOnDragListener); weatherSwipeViewList->SetOnSwipeListener(weatherOnSwipeListener); } + /* -------------------------------------------------------------------------- */ + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "MainWeatherView InitPage over!!"); + return weatherSwipeViewList; + } + + void MainWeatherView::OnStart() + { + View::OnStart(); + if (WEATHER_DATA_VALID) + { + MainWeatherViewInit(); + RootView::GetInstance()->Add(weatherSwipeViewList); + } + else + { + g_GetWeatherDataErrorView = new GetWeatherDataErrorView(); + if (g_GetWeatherDataErrorView == nullptr) + { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "g_GetWeatherDataErrorView new fail!!"); + return; + } + RootView::GetInstance()->Add(g_GetWeatherDataErrorView->GetWeatherDataErrorViewInit()); + } RootView::OnKeyActListener *keyactListener = (RootView::OnKeyActListener *)OHOS::MainWeatherPresenter::GetInstance(); RootView::GetInstance()->SetOnKeyActListener(keyactListener); } @@ -112,7 +137,7 @@ namespace OHOS void MainWeatherView::OnSetUpView() { View::OnSetUpView(); - RootView::GetInstance()->Add(weatherSwipeViewList); + Draw(); } diff --git a/code/sdk/application/wearable/fd230app/nativeui/weather/src/WeatherModel.cpp b/code/sdk/application/wearable/fd230app/nativeui/weather/src/WeatherModel.cpp index f4039746f..035e28e42 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/weather/src/WeatherModel.cpp +++ b/code/sdk/application/wearable/fd230app/nativeui/weather/src/WeatherModel.cpp @@ -2,90 +2,103 @@ * @Author: luozheng 1732036298@qq.com * @Date: 2024-04-08 18:40:09 * @LastEditors: luozheng 1732036298@qq.com - * @LastEditTime: 2024-04-11 15:51:28 + * @LastEditTime: 2024-04-12 16:34:46 * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/weather/src/WeatherModel.cpp */ #include "weather/include/WeatherModel.h" -#if __cplusplus -extern "C" +namespace OHOS { -#endif /* __cplusplus */ - Weather_data Weather_data_t_now; - Weather_data_address Weather_data_t_address; - ONE_DAY_DATA Weather_data_seven_data[7]; - - /* - * @brief 设置当前天气数据 - * @param {int} humidity 湿度 - * @param {char} *windScale 风力 - * @param {char} *textNight 夜间天气文本 - * @param {int} uvIndex 紫外线指数 - * @param {int} temp 温度 - * @param {int} iconNight 夜间天气图标 - */ - void UI_set_weather_now_data(int humidity, char *windScale, char *textNight, int uvIndex, int temp, int iconNight) +#if __cplusplus + extern "C" { - Weather_data_t_now.humidity = humidity; - memset((void *)Weather_data_t_now.windScale, 0, 16); - strcpy(Weather_data_t_now.windScale, windScale); - memset((void *)Weather_data_t_now.textNight, 0, 16); - strcpy(Weather_data_t_now.textNight, textNight); - Weather_data_t_now.uvIndex = uvIndex; - Weather_data_t_now.temp = temp; - Weather_data_t_now.iconNight = iconNight; +#endif /* __cplusplus */ + static Weather_data Weather_data_t_now; + static Weather_data_address Weather_data_t_address; + static ONE_DAY_DATA Weather_data_seven_data[7]; - WEATHER_DATA_VALID = 1; - } + /* + * @brief 设置当前天气数据 + * @param {int} humidity 湿度 + * @param {char} *windScale 风力 + * @param {char} *textNight 夜间天气文本 + * @param {int} uvIndex 紫外线指数 + * @param {int} temp 温度 + * @param {int} iconNight 夜间天气图标 + */ + void UI_set_weather_now_data(int humidity, char *windScale, char *textNight, int uvIndex, int temp, int iconNight) + { + Weather_data_t_now.humidity = humidity; + memset((void *)Weather_data_t_now.windScale, 0, 16); + strcpy(Weather_data_t_now.windScale, windScale); + memset((void *)Weather_data_t_now.textNight, 0, 16); + strcpy(Weather_data_t_now.textNight, textNight); + Weather_data_t_now.uvIndex = uvIndex; + Weather_data_t_now.temp = temp; + Weather_data_t_now.iconNight = iconNight; - /* - * @brief 设置天气地址信息 - * @param {int} lat 纬度 - * @param {char} *atm 大气压 - * @param {char} *city 城市 - * @param {char} *subLocality 子地区 - * @param {int} lon 经度 - */ - void UI_set_weather_address_data(int lat, char *atm, char *city, char *subLocality, int lon) - { - Weather_data_t_address.lat = lat; - Weather_data_t_address.lon = lon; - memset((void *)Weather_data_t_address.atm, 0, 16); - strcpy(Weather_data_t_address.atm, atm); - memset((void *)Weather_data_t_address.city, 0, 32); - strcpy(Weather_data_t_address.city, city); - memset((void *)Weather_data_t_address.subLocality, 0, 32); - strcpy(Weather_data_t_address.subLocality, subLocality); + WEATHER_DATA_VALID = 1; + } - WEATHER_DATA_VALID = 1; - } + /* + * @brief 设置天气地址信息 + * @param {int} lat 纬度 + * @param {char} *atm 大气压 + * @param {char} *city 城市 + * @param {char} *subLocality 子地区 + * @param {int} lon 经度 + */ + void UI_set_weather_address_data(int lat, char *atm, char *city, char *subLocality, int lon) + { + Weather_data_t_address.lat = lat; + Weather_data_t_address.lon = lon; + memset((void *)Weather_data_t_address.atm, 0, 16); + strcpy(Weather_data_t_address.atm, atm); + memset((void *)Weather_data_t_address.city, 0, 32); + strcpy(Weather_data_t_address.city, city); + memset((void *)Weather_data_t_address.subLocality, 0, 32); + strcpy(Weather_data_t_address.subLocality, subLocality); + } - /* - * @brief 设置七天天气数据 - */ - void UI_set_weather_seven_day_data(struct ONE_DAY_DATA *t) - { - for (int i = 0; i < 7; i++) + /* + * @brief 设置七天天气数据 + */ + void UI_set_weather_seven_day_data(struct ONE_DAY_DATA *t) { - Weather_data_seven_data[i].fxDate = t[i].fxDate; - Weather_data_seven_data[i].iconDay = t[i].iconDay; - Weather_data_seven_data[i].tempMax = t[i].tempMax; - Weather_data_seven_data[i].tempMin = t[i].tempMin; - Weather_data_seven_data[i].fxDate = t[i].fxDate; - memset((void *)Weather_data_seven_data[i].textDay, 0, 16); - strcpy(Weather_data_seven_data[i].textDay, t[i].textDay); + for (int i = 0; i < 7; i++) + { + Weather_data_seven_data[i].fxDate = t[i].fxDate; + Weather_data_seven_data[i].iconDay = t[i].iconDay; + Weather_data_seven_data[i].tempMax = t[i].tempMax; + Weather_data_seven_data[i].tempMin = t[i].tempMin; + Weather_data_seven_data[i].fxDate = t[i].fxDate; + memset((void *)Weather_data_seven_data[i].textDay, 0, 16); + strcpy(Weather_data_seven_data[i].textDay, t[i].textDay); + } } - WEATHER_DATA_VALID = 1; - } + void jsonCheck_weather(uint8_t *buf); #if __cplusplus -} + } #endif /* __cplusplus */ -namespace OHOS -{ + + static constexpr const char json_data[] = + "{\"now\": {\"humidity\":89,\"windScale\":\"2\",\"textNight\":\"多云\",\"uvIndex\":3,\"temp\":24,\"iconNight\":4}," + "\"address\": {\"lat\":225737664,\"atm\":\"1010\",\"city\":\"深圳\",\"subLocality\":\"宝安\",\"lon\":1138535138}," + "\"daily\": [{\"tempMin\":22,\"iconDay\":6,\"fxDate\":1712505600,\"textDay\":\"阵雨\",\"tempMax\":29}," + "{\"tempMax\":27,\"textDay\":\"多云\",\"iconDay\":3,\"fxDate\":1712592000,\"tempMin\":22}," + "{\"tempMax\":29,\"fxDate\":1712678400,\"textDay\":\"多云\",\"iconDay\":3,\"tempMin\":22}," + "{\"tempMin\":23,\"textDay\":\"多云\",\"fxDate\":1712764800,\"tempMax\":30,\"iconDay\":3}," + "{\"fxDate\":1712851200,\"textDay\":\"多云\",\"iconDay\":3,\"tempMax\":31,\"tempMin\":24}," + "{\"fxDate\":1712937600,\"iconDay\":3,\"tempMax\":31,\"tempMin\":24,\"textDay\":\"多云\"}," + "{\"fxDate\":1713024000,\"textDay\":\"多云\",\"iconDay\":3,\"tempMax\":29,\"tempMin\":25}]," + "\"code\":1}"; + + /* -------------------------------------------------------------------------- */ WeatherModel::WeatherModel() { WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "WeatherModel::WeatherModel"); + jsonCheck_weather((uint8_t *)json_data); } WeatherModel::~WeatherModel() @@ -99,4 +112,42 @@ namespace OHOS return instance; } + // 获取天气图片 + std::string WeatherModel::GetWeatherImage() + { + int size = Weather_data_t_now.iconNight; + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "iconNight:%d", size); + return weather130x130[size]; + } + + // 获取温度 + std::string WeatherModel::GetWeatherTemperature() + { + int temperature = Weather_data_t_now.temp; + return std::to_string(temperature) + "°"; + } + + // 获取天气描述 + std::string WeatherModel::GetWeatherDescription() + { + std::string WeatherDescription = Weather_data_t_now.textNight; + return WeatherDescription; + } + + // 获取天气地区 + std::string WeatherModel::GetWeatherArea() + { + std::string city = Weather_data_t_address.city; + std::string subLocality = Weather_data_t_address.city; + return (city + subLocality); + } + + // 获取最高气温和最低气温 + std::string WeatherModel::GetWeatherMaxAndMinTemperature() + { + int maxtemperature = Weather_data_seven_data[0].tempMax; + int mintemperature = Weather_data_seven_data[0].tempMin; + std::string MaxandMinTemperature = "最高" + std::to_string(maxtemperature) + "°" + " " + "最低" + std::to_string(mintemperature) + "°"; + return MaxandMinTemperature; + } } \ No newline at end of file diff --git a/code/sdk/application/wearable/fd230app/nativeui/weather/src/WeatherReportView.cpp b/code/sdk/application/wearable/fd230app/nativeui/weather/src/WeatherReportView.cpp index b0ade2c4a..702037ee5 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/weather/src/WeatherReportView.cpp +++ b/code/sdk/application/wearable/fd230app/nativeui/weather/src/WeatherReportView.cpp @@ -9,16 +9,19 @@ namespace OHOS static constexpr int16_t UV_IMAGE_ANIMATOR_VIEW_H = 60; static constexpr int16_t UV_IMAGE_ANIMATOR_VIEW_NUM_FRAMES = 24; // 图片帧数 static constexpr int16_t UV_IMAGE_ANIMATOR_TIME = 100; // 图片更新间隔 + static ImageAnimatorInfo UVimageAnimatorInfo[UV_IMAGE_ANIMATOR_VIEW_NUM_FRAMES]; static constexpr int16_t WINDSPEED_IMAGE_ANIMATOR_VIEW_X = 203; static constexpr int16_t WINDSPEED_IMAGE_ANIMATOR_VIEW_NUM_FRAMES = 24; // 图片帧数 + static ImageAnimatorInfo WindSpeedimageAnimatorInfo[WINDSPEED_IMAGE_ANIMATOR_VIEW_NUM_FRAMES]; static constexpr int16_t HUMIDITY_IMAGE_ANIMATOR_VIEW_X = 353; static constexpr int16_t HUMIDITY_IMAGE_ANIMATOR_VIEW_NUM_FRAMES = 20; // 图片帧数 + static ImageAnimatorInfo HumidityimageAnimatorInfo[HUMIDITY_IMAGE_ANIMATOR_VIEW_NUM_FRAMES]; - static constexpr char *UVPaths = "/user/res/weather/weather60x60gif/UV/"; - static constexpr char *WindSpeedPaths = "/user/res/weather/weather60x60gif/WindSpeed/"; - static constexpr char *HumidityPaths = "/user/res/weather/weather60x60gif/Humidity/"; + static constexpr const char *UVPaths = "/user/res/weather/weather60x60gif/UV/"; + static constexpr const char *WindSpeedPaths = "/user/res/weather/weather60x60gif/WindSpeed/"; + static constexpr const char *HumidityPaths = "/user/res/weather/weather60x60gif/Humidity/"; static WeatherReportView *g_pWeatherReportView{nullptr}; @@ -80,20 +83,11 @@ namespace OHOS delete HumidityImageAnimatorView; HumidityImageAnimatorView = nullptr; - if (p_ImageAnimator != nullptr) - { - p_ImageAnimator->FreeImagePathsArray(UVPathsArray, UV_IMAGE_ANIMATOR_VIEW_NUM_FRAMES); - p_ImageAnimator->DeleteImageAnimatorInfo(UVimageAnimatorInfo); - - p_ImageAnimator->FreeImagePathsArray(WindSpeedPathsArray, WINDSPEED_IMAGE_ANIMATOR_VIEW_NUM_FRAMES); - p_ImageAnimator->DeleteImageAnimatorInfo(WindSpeedimageAnimatorInfo); + FreeImagePathsArray(UVPathsArray, UV_IMAGE_ANIMATOR_VIEW_NUM_FRAMES); - p_ImageAnimator->FreeImagePathsArray(HumidityPathsArray, HUMIDITY_IMAGE_ANIMATOR_VIEW_NUM_FRAMES); - p_ImageAnimator->DeleteImageAnimatorInfo(HumidityimageAnimatorInfo); + FreeImagePathsArray(WindSpeedPathsArray, WINDSPEED_IMAGE_ANIMATOR_VIEW_NUM_FRAMES); - delete p_ImageAnimator; - p_ImageAnimator = nullptr; - } + FreeImagePathsArray(HumidityPathsArray, HUMIDITY_IMAGE_ANIMATOR_VIEW_NUM_FRAMES); } } @@ -211,7 +205,6 @@ namespace OHOS /* ----------------------------------- Add ---------------------------------- */ Add(title); - Add(UV_Number); Add(WindSpeed_Number); Add(Humidity_Number); @@ -226,37 +219,84 @@ namespace OHOS { WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "WeatherReportView::WeatherReportViewImageAnimatorViewInit"); - p_ImageAnimator = new ImageAnimator(); - if (p_ImageAnimator == nullptr) + /* ----------------------------- UVImageAnimatorView---------------------------- */ + UVPathsArray = CreateImagePathsArray(UVPaths, "bin", UV_IMAGE_ANIMATOR_VIEW_NUM_FRAMES); + if (UVImageAnimatorView == nullptr) { - WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "p_ImageAnimator new fail!!"); - return false; + UVImageAnimatorView = new UIImageAnimatorView(); + if (UVImageAnimatorView == nullptr) + { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "UVImageAnimatorView new fail"); + return false; + } + for (uint8_t i = 0; i < UV_IMAGE_ANIMATOR_VIEW_NUM_FRAMES; i++) + { + UVimageAnimatorInfo[i].imagePath = (UVPathsArray[i]); + UVimageAnimatorInfo[i].imageType = IMG_SRC_FILE_PATH; + UVimageAnimatorInfo[i].pos.x = UV_IMAGE_ANIMATOR_VIEW_X; + UVimageAnimatorInfo[i].pos.y = UV_IMAGE_ANIMATOR_VIEW_Y; + UVimageAnimatorInfo[i].width = UV_IMAGE_ANIMATOR_VIEW_W; + UVimageAnimatorInfo[i].height = UV_IMAGE_ANIMATOR_VIEW_H; + } + UVImageAnimatorView->SetPosition(UV_IMAGE_ANIMATOR_VIEW_X, UV_IMAGE_ANIMATOR_VIEW_Y, UV_IMAGE_ANIMATOR_VIEW_W, UV_IMAGE_ANIMATOR_VIEW_H); + UVImageAnimatorView->SetStyle(STYLE_BACKGROUND_COLOR, 0xffffffff); + UVImageAnimatorView->SetStyle(STYLE_BACKGROUND_OPA, 0xff); + UVImageAnimatorView->SetImageAnimatorSrc(UVimageAnimatorInfo, UV_IMAGE_ANIMATOR_VIEW_NUM_FRAMES, UV_IMAGE_ANIMATOR_TIME); + UVImageAnimatorView->SetRepeat(true); + UVImageAnimatorView->Start(); + } + /* ----------------------- WindSpeedImageAnimatorView ----------------------- */ + WindSpeedPathsArray = CreateImagePathsArray(WindSpeedPaths, "bin", WINDSPEED_IMAGE_ANIMATOR_VIEW_NUM_FRAMES); + if (WindSpeedImageAnimatorView == nullptr) + { + WindSpeedImageAnimatorView = new UIImageAnimatorView(); + if (WindSpeedImageAnimatorView == nullptr) + { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "WindSpeedImageAnimatorView new fail"); + return false; + } + for (uint8_t i = 0; i < WINDSPEED_IMAGE_ANIMATOR_VIEW_NUM_FRAMES; i++) + { + WindSpeedimageAnimatorInfo[i].imagePath = (WindSpeedPathsArray[i]); + WindSpeedimageAnimatorInfo[i].imageType = IMG_SRC_FILE_PATH; + WindSpeedimageAnimatorInfo[i].pos.x = WINDSPEED_IMAGE_ANIMATOR_VIEW_X; + WindSpeedimageAnimatorInfo[i].pos.y = UV_IMAGE_ANIMATOR_VIEW_Y; + WindSpeedimageAnimatorInfo[i].width = UV_IMAGE_ANIMATOR_VIEW_W; + WindSpeedimageAnimatorInfo[i].height = UV_IMAGE_ANIMATOR_VIEW_H; + } + WindSpeedImageAnimatorView->SetPosition(WINDSPEED_IMAGE_ANIMATOR_VIEW_X, UV_IMAGE_ANIMATOR_VIEW_Y, UV_IMAGE_ANIMATOR_VIEW_W, UV_IMAGE_ANIMATOR_VIEW_H); + WindSpeedImageAnimatorView->SetStyle(STYLE_BACKGROUND_COLOR, 0xffffffff); + WindSpeedImageAnimatorView->SetStyle(STYLE_BACKGROUND_OPA, 0xff); + WindSpeedImageAnimatorView->SetImageAnimatorSrc(WindSpeedimageAnimatorInfo, WINDSPEED_IMAGE_ANIMATOR_VIEW_NUM_FRAMES, UV_IMAGE_ANIMATOR_TIME); + WindSpeedImageAnimatorView->SetRepeat(true); + WindSpeedImageAnimatorView->Start(); + } + /* ------------------------ HumidityImageAnimatorView ----------------------- */ + HumidityPathsArray = CreateImagePathsArray(HumidityPaths, "bin", HUMIDITY_IMAGE_ANIMATOR_VIEW_NUM_FRAMES); + if (HumidityImageAnimatorView == nullptr) + { + HumidityImageAnimatorView = new UIImageAnimatorView(); + if (HumidityImageAnimatorView == nullptr) + { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "HumidityImageAnimatorView new fail"); + return false; + } + for (uint8_t i = 0; i < HUMIDITY_IMAGE_ANIMATOR_VIEW_NUM_FRAMES; i++) + { + HumidityimageAnimatorInfo[i].imagePath = (HumidityPathsArray[i]); + HumidityimageAnimatorInfo[i].imageType = IMG_SRC_FILE_PATH; + HumidityimageAnimatorInfo[i].pos.x = HUMIDITY_IMAGE_ANIMATOR_VIEW_X; + HumidityimageAnimatorInfo[i].pos.y = UV_IMAGE_ANIMATOR_VIEW_Y; + HumidityimageAnimatorInfo[i].width = UV_IMAGE_ANIMATOR_VIEW_W; + HumidityimageAnimatorInfo[i].height = UV_IMAGE_ANIMATOR_VIEW_H; + } + HumidityImageAnimatorView->SetPosition(HUMIDITY_IMAGE_ANIMATOR_VIEW_X, UV_IMAGE_ANIMATOR_VIEW_Y, UV_IMAGE_ANIMATOR_VIEW_W, UV_IMAGE_ANIMATOR_VIEW_H); + HumidityImageAnimatorView->SetStyle(STYLE_BACKGROUND_COLOR, 0xffffffff); + HumidityImageAnimatorView->SetStyle(STYLE_BACKGROUND_OPA, 0xff); + HumidityImageAnimatorView->SetImageAnimatorSrc(HumidityimageAnimatorInfo, HUMIDITY_IMAGE_ANIMATOR_VIEW_NUM_FRAMES, UV_IMAGE_ANIMATOR_TIME); + HumidityImageAnimatorView->SetRepeat(true); + HumidityImageAnimatorView->Start(); } - - p_ImageAnimator->imageAnimatorConfig = { - .x = UV_IMAGE_ANIMATOR_VIEW_X, - .y = UV_IMAGE_ANIMATOR_VIEW_Y, - .w = UV_IMAGE_ANIMATOR_VIEW_W, - .h = UV_IMAGE_ANIMATOR_VIEW_H, - .numFrames = UV_IMAGE_ANIMATOR_VIEW_NUM_FRAMES, - .time = UV_IMAGE_ANIMATOR_TIME, - }; - UVPathsArray = p_ImageAnimator->CreateImagePathsArray(UVPaths, "bin", UV_IMAGE_ANIMATOR_VIEW_NUM_FRAMES); - p_ImageAnimator->InitImageAnimatorSource(UVImageAnimatorView, UVimageAnimatorInfo, UVPathsArray, p_ImageAnimator->imageAnimatorConfig); - - p_ImageAnimator->imageAnimatorConfig.x = WINDSPEED_IMAGE_ANIMATOR_VIEW_X; - WindSpeedPathsArray = p_ImageAnimator->CreateImagePathsArray(WindSpeedPaths, "bin", WINDSPEED_IMAGE_ANIMATOR_VIEW_NUM_FRAMES); - p_ImageAnimator->InitImageAnimatorSource(WindSpeedImageAnimatorView, WindSpeedimageAnimatorInfo, WindSpeedPathsArray, p_ImageAnimator->imageAnimatorConfig); - - p_ImageAnimator->imageAnimatorConfig.x = HUMIDITY_IMAGE_ANIMATOR_VIEW_X; - p_ImageAnimator->imageAnimatorConfig.numFrames = HUMIDITY_IMAGE_ANIMATOR_VIEW_NUM_FRAMES; - HumidityPathsArray = p_ImageAnimator->CreateImagePathsArray(HumidityPaths, "bin", HUMIDITY_IMAGE_ANIMATOR_VIEW_NUM_FRAMES); - p_ImageAnimator->InitImageAnimatorSource(HumidityImageAnimatorView, HumidityimageAnimatorInfo, HumidityPathsArray, p_ImageAnimator->imageAnimatorConfig); - - /* ---------------------------------- Start --------------------------------- */ - UVImageAnimatorView->Start(); - WindSpeedImageAnimatorView->Start(); - HumidityImageAnimatorView->Start(); /* ----------------------------------- Add ---------------------------------- */ Add(UVImageAnimatorView); Add(WindSpeedImageAnimatorView); @@ -294,4 +334,31 @@ namespace OHOS return true; } + const char **WeatherReportView::CreateImagePathsArray(const char *basePath, const char *fileExtension, int numImages) + { + const char **imagePaths = new const char *[numImages]; + char buffer[256]; + for (int i = 0; i < numImages; i++) + { + snprintf(buffer, sizeof(buffer), "%s%d.%s", basePath, i + 1, fileExtension); + imagePaths[i] = strdup(buffer); + WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, " imagePaths[%d] = %s", i, imagePaths[i]); + } + return imagePaths; + } + + /* + * @brief: 释放图片路径数组指针 + * @param {char} imagePaths 图片路径数组 + * @param {int} numImages 图片数量 + */ + void WeatherReportView::FreeImagePathsArray(const char **imagePaths, const int numImages) + { + for (int i = 0; i < numImages; i++) + { + delete imagePaths[i]; + imagePaths[i] = nullptr; + } + } + } \ No newline at end of file diff --git a/code/sdk/application/wearable/fd230app/nativeui/weather/src/WeatherView.cpp b/code/sdk/application/wearable/fd230app/nativeui/weather/src/WeatherView.cpp index 2e6692871..4bb5d2544 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/weather/src/WeatherView.cpp +++ b/code/sdk/application/wearable/fd230app/nativeui/weather/src/WeatherView.cpp @@ -60,9 +60,10 @@ namespace OHOS static constexpr int16_t PULLUP_ANIMATOR_VIEW_Y = 400; static constexpr int16_t PULLUP_ANIMATOR_VIEW_W = 40; static constexpr int16_t PULLUP_ANIMATOR_VIEW_H = 40; - static constexpr int16_t PULLUP_ANIMATOR_VIEW_NUM_FRAMES = 74; - static constexpr int16_t PULLUP_ANIMATOR_VIEW_TIME = 50; - static constexpr char *PullUpPaths = "/user/res/weather/PullUp/PullUp_"; + static constexpr int16_t PULLUP_ANIMATOR_VIEW_NUM_FRAMES = 70; + static constexpr int16_t PULLUP_ANIMATOR_VIEW_TIME = 100; + ImageAnimatorInfo PullUpimageAnimatorInfo[PULLUP_ANIMATOR_VIEW_NUM_FRAMES]; + static constexpr const char *PullUpPaths = "/user/res/weather/PullUp/PullUp_"; static WeatherView *g_pWeatherView{nullptr}; WeatherView::WeatherView() @@ -70,11 +71,15 @@ namespace OHOS WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "WeatherView::WeatherView"); SetPosition(0, 0, HORIZONTAL_RESOLUTION, VERTICAL_RESOLUTION); SetViewIndex(0); // 视图索引 - WeatherImag = GetWeatherImage(); - Temperature = GetWeatherTemperature(); - WeatherDescription = GetWeatherDescription(); - WeatherArea = GetWeatherArea(); - MaxandMinTemperature = GetWeatherMaxAndMinTemperature(); + if (WEATHER_DATA_VALID) + { + WeatherModel *p_WeatherModel = &WeatherModel::GetInstance(); + WeatherImag = p_WeatherModel->GetWeatherImage(); + Temperature = p_WeatherModel->GetWeatherTemperature(); + WeatherDescription = p_WeatherModel->GetWeatherDescription(); + WeatherArea = p_WeatherModel->GetWeatherArea(); + MaxandMinTemperature = p_WeatherModel->GetWeatherMaxAndMinTemperature(); + } g_pWeatherView = this; } @@ -126,14 +131,8 @@ namespace OHOS delete PullUpAnimatorView; PullUpAnimatorView = nullptr; } - if (p_ImageAnimator != nullptr) - { - p_ImageAnimator->FreeImagePathsArray(PullUpPathsArray, PULLUP_ANIMATOR_VIEW_NUM_FRAMES); - p_ImageAnimator->DeleteImageAnimatorInfo(PullUpimageAnimatorInfo); - delete p_ImageAnimator; - p_ImageAnimator = nullptr; - } + FreeImagePathsArray(PullUpPathsArray, PULLUP_ANIMATOR_VIEW_NUM_FRAMES); } } @@ -142,52 +141,6 @@ namespace OHOS return g_pWeatherView; } - // 获取天气图片 - std::string WeatherView::GetWeatherImage() - { - int size = sizeof(weather130x130) / sizeof(weather130x130[0]); - return weather130x130[8]; - } - // 获取温度 - - std::string WeatherView::GetWeatherTemperature() - { - // 使用系统时间作为种子 - srand(time(0)); - int temperature = rand() % 50; - return std::to_string(22) + "°"; - } - // 获取天气描述 - - std::string WeatherView::GetWeatherDescription() - { - srand(time(0)); - std::string area[] = {"晴", "雨夹雪", "雷阵雨伴有冰雹"}; - int num = rand() % (sizeof(area) / sizeof(area[0])); - return area[0]; - } - // 获取天气地区 - - std::string WeatherView::GetWeatherArea() - { - srand(time(0)); - std::string area[] = {"北京市东城区", "深圳市宝安区"}; - int num = rand() % (sizeof(area) / sizeof(area[0])); - return area[1]; - } - // 获取最高气温和最低气温 - - std::string WeatherView::GetWeatherMaxAndMinTemperature() - { - // 使用系统时间作为种子 - srand(time(0)); - // 生成随机数 - int maxtemperature = 20 + rand() % 40; // 最高气温:20°~60° - int mintemperature = -5 + rand() % 20; - std::string MaxandMinTemperature = "最高" + std::to_string(22) + "°" + " " + "最低" + std::to_string(18) + "°"; - return MaxandMinTemperature; - } - // 初始化标签 UILabelExt *WeatherView::InitLabelExt(int x, int y, int w, int h, const char *text, int textfont, int lineheight) { @@ -263,24 +216,31 @@ namespace OHOS } showMaxandMinTemperatureLabel->SetTextColor(Color::GetColorFromRGBA(0x99, 0x99, 0x99, 0xff)); /* -------------------------------------------------------------------------- */ - - p_ImageAnimator = new ImageAnimator(); - if (p_ImageAnimator == nullptr) + PullUpPathsArray = CreateImagePathsArray(PullUpPaths, "bin", PULLUP_ANIMATOR_VIEW_NUM_FRAMES); + if (PullUpAnimatorView == nullptr) { - WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "p_ImageAnimator new fail!!"); - return false; + PullUpAnimatorView = new UIImageAnimatorView(); + if (PullUpAnimatorView == nullptr) + { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "PullUpAnimatorView new fail"); + return false; + } + for (uint8_t i = 0; i < PULLUP_ANIMATOR_VIEW_NUM_FRAMES; i++) + { + PullUpimageAnimatorInfo[i].imagePath = (PullUpPathsArray[i]); + PullUpimageAnimatorInfo[i].imageType = IMG_SRC_FILE_PATH; + PullUpimageAnimatorInfo[i].pos.x = PULLUP_ANIMATOR_VIEW_X; + PullUpimageAnimatorInfo[i].pos.y = PULLUP_ANIMATOR_VIEW_Y; + PullUpimageAnimatorInfo[i].width = PULLUP_ANIMATOR_VIEW_W; + PullUpimageAnimatorInfo[i].height = PULLUP_ANIMATOR_VIEW_H; + } + PullUpAnimatorView->SetPosition(PULLUP_ANIMATOR_VIEW_X, PULLUP_ANIMATOR_VIEW_Y, PULLUP_ANIMATOR_VIEW_W, PULLUP_ANIMATOR_VIEW_H); + PullUpAnimatorView->SetStyle(STYLE_BACKGROUND_COLOR, 0xffffffff); + PullUpAnimatorView->SetStyle(STYLE_BACKGROUND_OPA, 0xff); + PullUpAnimatorView->SetImageAnimatorSrc(PullUpimageAnimatorInfo, PULLUP_ANIMATOR_VIEW_NUM_FRAMES, PULLUP_ANIMATOR_VIEW_TIME); + PullUpAnimatorView->SetRepeat(true); + PullUpAnimatorView->Start(); } - - p_ImageAnimator->imageAnimatorConfig.x = PULLUP_ANIMATOR_VIEW_X; - p_ImageAnimator->imageAnimatorConfig.y = PULLUP_ANIMATOR_VIEW_Y; - p_ImageAnimator->imageAnimatorConfig.w = PULLUP_ANIMATOR_VIEW_W; - p_ImageAnimator->imageAnimatorConfig.h = PULLUP_ANIMATOR_VIEW_H; - p_ImageAnimator->imageAnimatorConfig.numFrames = PULLUP_ANIMATOR_VIEW_NUM_FRAMES; - p_ImageAnimator->imageAnimatorConfig.time = PULLUP_ANIMATOR_VIEW_TIME; - PullUpPathsArray = p_ImageAnimator->CreateImagePathsArray(PullUpPaths, "bin", PULLUP_ANIMATOR_VIEW_NUM_FRAMES); - p_ImageAnimator->InitImageAnimatorSource(PullUpAnimatorView, PullUpimageAnimatorInfo, PullUpPathsArray, p_ImageAnimator->imageAnimatorConfig); - PullUpAnimatorView->Start(); - /* -------------------------------- 将组件添加到根视图 ------------------------------- */ Add(showWeatherImage); Add(showCurrentTimeLabel); @@ -333,4 +293,41 @@ namespace OHOS showCurrentTimeLabel->SetText(stringtime.c_str()); } } + + const char **WeatherView::CreateImagePathsArray(const char *basePath, const char *fileExtension, int numImages) + { + const char **imagePaths = new const char *[numImages]; + char buffer[256]; + for (int i = 0; i < numImages; i++) + { + snprintf(buffer, sizeof(buffer), "%s%d.%s", basePath, i + 1, fileExtension); + imagePaths[i] = strdup(buffer); + WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, " imagePaths[%d] = %s", i, imagePaths[i]); + } + return imagePaths; + } + + /* + * @brief: 释放图片路径数组指针 + * @param {char} imagePaths 图片路径数组 + * @param {int} numImages 图片数量 + */ + void WeatherView::FreeImagePathsArray(const char **imagePaths, const int numImages) + { + for (int i = 0; i < numImages; i++) + { + delete imagePaths[i]; + imagePaths[i] = nullptr; + } + } + + void WeatherView::DumpWeatherInfo() + { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "WeatherInfo:"); + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "WeatherImag:%s", WeatherImag.c_str()); + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Temperature:%s", Temperature.c_str()); + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "WeatherDescription:%s", WeatherDescription.c_str()); + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "WeatherArea:%s", WeatherArea.c_str()); + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "MaxandMinTemperature:%s\n", MaxandMinTemperature.c_str()); + } } \ No newline at end of file diff --git a/code/sdk/application/wearable/service/ble_service/blemoder/bletest.cpp b/code/sdk/application/wearable/service/ble_service/blemoder/bletest.cpp index cd98d98b5..8b6087638 100644 --- a/code/sdk/application/wearable/service/ble_service/blemoder/bletest.cpp +++ b/code/sdk/application/wearable/service/ble_service/blemoder/bletest.cpp @@ -1,3 +1,10 @@ +/* + * @Author: luozheng 1732036298@qq.com + * @Date: 2024-04-11 19:15:39 + * @LastEditors: luozheng 1732036298@qq.com + * @LastEditTime: 2024-04-12 20:04:57 + * @FilePath: /FD230/code/sdk/application/wearable/service/ble_service/blemoder/bletest.cpp + */ /** * Copyright (c) @CompanyNameMagicTag 2022-2022. All rights reserved. \n * @@ -19,7 +26,8 @@ #ifdef __cplusplus #if __cplusplus -extern "C" { +extern "C" +{ #endif /* __cplusplus */ #endif /* __cplusplus */ @@ -45,65 +53,64 @@ extern "C" { #include "custom_utils.h" #include "string.h" #include "bleService.h" +//#include "../../../fd230app/nativeui/weather/include/WeatherModel.h" + // struct Weather_data + // { + // int humidity; + // char* windScale; + // char* textNight; + // int uvIndex; + // int temp; + // int iconNight; + // }; + uint8_t ble_falg = 0; -// struct Weather_data -// { -// int humidity; -// char* windScale; -// char* textNight; -// int uvIndex; -// int temp; -// int iconNight; -// }; -uint8_t ble_falg=0; - -uint8_t ble_is_ready(void) -{ - return ble_falg; -} - -uint8_t ble_is_connect_ready(void) -{ - return Bleconnect; -} + uint8_t ble_is_ready(void) + { + return ble_falg; + } -void set_ble_falg(bool falg) -{ - ble_falg=falg; -} + uint8_t ble_is_connect_ready(void) + { + return Bleconnect; + } -void set_weather_now_data(int humidity, char* windScale, char* textNight,int uvIndex,int temp,int iconNight) -{ - return UI_set_weather_now_data(humidity, windScale, textNight,uvIndex,temp,iconNight); -} + void set_ble_falg(bool falg) + { + ble_falg = falg; + } -void set_weather_address_data(int lat, char* atm, char* city,char* subLocality,int lon) -{ - return UI_set_weather_address_data(lat, atm, city,subLocality,lon); -} -// struct ONE_DAY_DATA -// { -// int tempMin; -// int iconDay; -// int fxDate; -// char textDay[16]; -// int tempMax; -// }; + void set_weather_now_data(int humidity, char *windScale, char *textNight, int uvIndex, int temp, int iconNight) + { + return OHOS::UI_set_weather_now_data(humidity, windScale, textNight, uvIndex, temp, iconNight); + } -static struct ONE_DAY_DATA data_t[7]; -void set_weather_one_data(int tempMin, int iconDay,int fxDate, int tempMax, char *textDay,int x) -{ - data_t[x].tempMin=tempMin; - data_t[x].iconDay=iconDay; - data_t[x].fxDate=fxDate; - data_t[x].tempMax=tempMax; - memset((void*)data_t[x].textDay,0,16); - strcpy(data_t[x].textDay,textDay); + void set_weather_address_data(int lat, char *atm, char *city, char *subLocality, int lon) + { + return OHOS::UI_set_weather_address_data(lat, atm, city, subLocality, lon); + } + // struct ONE_DAY_DATA + // { + // int tempMin; + // int iconDay; + // int fxDate; + // char textDay[16]; + // int tempMax; + // }; + static OHOS::ONE_DAY_DATA data_t[7]; + void set_weather_one_data(int tempMin, int iconDay, int fxDate, int tempMax, char *textDay, int x) + { + data_t[x].tempMin = tempMin; + data_t[x].iconDay = iconDay; + data_t[x].fxDate = fxDate; + data_t[x].tempMax = tempMax; + memset((void *)data_t[x].textDay, 0, 16); + strcpy(data_t[x].textDay, textDay); - if(x==6) - return UI_set_weather_seven_day_data(data_t); -} + if (x == 6) + return OHOS::UI_set_weather_seven_day_data(data_t); + } #ifdef __cplusplus #if __cplusplus } diff --git a/code/sdk/application/wearable/service/msg_center/src/msg_center_customer.cpp b/code/sdk/application/wearable/service/msg_center/src/msg_center_customer.cpp index eb07d3100..53c69a28c 100755 --- a/code/sdk/application/wearable/service/msg_center/src/msg_center_customer.cpp +++ b/code/sdk/application/wearable/service/msg_center/src/msg_center_customer.cpp @@ -192,7 +192,6 @@ static OHOS::UIViewGroup* CalldialNotify(void) /*显示绑定通知*/ static OHOS::UIViewGroup* showDeviceBindingNotify(void) { - PairingViewEventListener::GetInstance().Pairing_StartTimer(); return OHOS::CreateDeviceBindingView(); } diff --git a/code/sdk/application/wearable/service/msg_center/src/notify/pairing_notification.cpp b/code/sdk/application/wearable/service/msg_center/src/notify/pairing_notification.cpp index d77c55955..756c196ac 100644 --- a/code/sdk/application/wearable/service/msg_center/src/notify/pairing_notification.cpp +++ b/code/sdk/application/wearable/service/msg_center/src/notify/pairing_notification.cpp @@ -2,7 +2,7 @@ * @Author: luozheng 1732036298@qq.com * @Date: 2024-03-22 10:04:36 * @LastEditors: luozheng 1732036298@qq.com - * @LastEditTime: 2024-04-12 11:37:28 + * @LastEditTime: 2024-04-12 15:46:18 * @FilePath: /FD230/code/sdk/application/wearable/service/msg_center/src/notify/pairing_notification.cpp */ #include "notification_manager.h" @@ -282,6 +282,9 @@ namespace OHOS DeviceBindingView->Add(DeviceBindingButtonCancel); DeviceBindingView->Add(DeviceBindingButtonOK); } + + PairingViewEventListener::GetInstance().Pairing_StartTimer(); + return DeviceBindingView; }