Merge #156 into xts_origin from refs/changes/156/head 157/target/1
author罗正 <1732036298@qq.com>
Fri, 10 May 2024 04:04:36 +0000 (04:04 +0000)
committersnickersun@163.com <accounts_62b90f7fcf51ade33b6f628e@mail.teambition.com>
Fri, 10 May 2024 04:04:36 +0000 (04:04 +0000)
Code review from 罗正

* refs/changes/156/head: (4 commits squashed)

  - 优化下拉界面的数据更新逻辑
    如果当前是下拉界面,先更新一次下拉窗口的数据包括,电池电量时间,信号强度等等数据,然后开启一个每2秒更新数据的定时器。
    如果不在下拉界面了停止定时器。
    遗留一个问题:如果在下拉界面息屏时候停止了定时器,亮屏后需要手动上拉界面再下拉回到下拉界面才能更新数据。

  - Merge branch &#39;xts_origin&#39; of https://codeup.aliyun.com/64191456b9581d62e8f81ac0/FD230 into xts_origin

  - 1.优化天气显示主界面和applist已经同步显示
    遗留问题,手机app同步天气数据时候如果当前界面再天气界面,需要先退出界面在进入才能刷新数据。
    2.多国语言包更新需要重新下载资源

  - Merge branch &#39;xts_origin&#39; of https://codeup.aliyun.com/64191456b9581d62e8f81ac0/FD230 into xts_origin

Signed-off-by: 罗正 <1732036298@qq.com>
Reviewed-by: snickersun@163.com <accounts_62b90f7fcf51ade33b6f628e@mail.teambition.com>
Merged-by: snickersun@163.com <accounts_62b90f7fcf51ade33b6f628e@mail.teambition.com>
link: https://codeup.aliyun.com/64191456b9581d62e8f81ac0/FD230/change/156
22 files changed:
code/sdk/application/wearable/fd230app/nativeui/language/Language_xml/input_list_en.txt
code/sdk/application/wearable/fd230app/nativeui/language/Language_xml/input_list_zh.txt
code/sdk/application/wearable/fd230app/nativeui/language/Language_xml/language_en.xml
code/sdk/application/wearable/fd230app/nativeui/language/Language_xml/language_zh.xml
code/sdk/application/wearable/fd230app/nativeui/language/font/en.lang
code/sdk/application/wearable/fd230app/nativeui/language/font/ja.lang
code/sdk/application/wearable/fd230app/nativeui/language/font/ui_resource_string.h
code/sdk/application/wearable/fd230app/nativeui/language/font/zh.lang
code/sdk/application/wearable/fd230app/nativeui/weather/include/FutureWeatherView.h
code/sdk/application/wearable/fd230app/nativeui/weather/include/GetWeatherDataErrorView.h
code/sdk/application/wearable/fd230app/nativeui/weather/include/MainWeatherPresenter.h
code/sdk/application/wearable/fd230app/nativeui/weather/include/MainWeatherView.h
code/sdk/application/wearable/fd230app/nativeui/weather/include/WeatherModel.h
code/sdk/application/wearable/fd230app/nativeui/weather/include/WeatherReportView.h
code/sdk/application/wearable/fd230app/nativeui/weather/src/FutureWeatherView.cpp
code/sdk/application/wearable/fd230app/nativeui/weather/src/GetWeatherDataErrorView.cpp
code/sdk/application/wearable/fd230app/nativeui/weather/src/MainWeatherPresenter.cpp
code/sdk/application/wearable/fd230app/nativeui/weather/src/MainWeatherView.cpp
code/sdk/application/wearable/fd230app/nativeui/weather/src/WeatherControlView.cpp
code/sdk/application/wearable/fd230app/nativeui/weather/src/WeatherModel.cpp
code/sdk/application/wearable/fd230app/nativeui/weather/src/WeatherReportView.cpp
code/sdk/application/wearable/fd230app/nativeui/weather/src/WeatherView.cpp

index ec7fcb2..e56f97e 100644 (file)
@@ -392,4 +392,30 @@ STR_INSERT_WATCH_SIM_OR_CONNECT_PHONE$Insert watch SIM or connect phone to make
 STR_ENABLE_BLUETOOTH_CALL$Enable Bluetooth Call\r
 STR_ENABLE_BLUETOOTH_CALL_NOTE$The solution:\n1. IPhone\nPlease go to the phone \"Settings\" → \"Bluetooth\" list to find\n“KUMI_XXXX”\nClick and try again\n\n2. Android phones\nPlease go to the phone \"Settings\" → \"Bluetooth\" list to find\n“KUMI_XXXX”\nClick the icon on the right to enter Bluetooth Settings\nEnable the call and media functions and try again\r
 STR_SIM_CARD_ERROR$SIM Card Error\r
-STR_CHECK_SIM_CARD_INSERTION$Check if the watch’s SIM card is properly inserted
\ No newline at end of file
+STR_CHECK_SIM_CARD_INSERTION$Check if the watch’s SIM card is properly inserted\r
+STR_WEATHER_REPORT$Weather report\r
+STR_ULTRAVIOLET$Ultraviolet\r
+STR_WIND_SPEED$WindSpeed\r
+STR_HUMIDITY$Humidity\r
+STR_NEXT_7_DAYS$Next 7 Days\r
+STR_GET_WEATHER_ERROR$No weather information was obtained Please go to APP Update\r
+STR_MUSIC_SOURCE$Music source\r
+STR_MOBILE_MUSIC$Mobile music\r
+STR_WATCH_MUSIC$Watch music\r
+STR_MUSIC_SOURCE$Music source\r
+STR_MUSIC_LIST$Music list\r
+STR_BLUETOOTH_CONNECTION_FAILED$Bluetooth connection failed\r
+STR_SCANNING_BINDING$Scanning binding\r
+STR_DEVICE_BINDING$Device binding\r
+STR_DEVICE_BINDING_NOTE$XX wants to connect and bind with you\r
+STR_EQUIPMENT_UNTYING$Equipment untying\r
+STR_EQUIPMENT_UNTYING_NOTE$XX would like to unbind you\r
+STR_DRINK_WATER_REMINDER$Drink water reminder\r
+STR_DRINK_WATER_REMINDER_NOTE$Time for some water! And stay hydrated (๑•̀ㅂ•́)\r
+STR_SEDENTARY_REMINDER$Sedentary reminder\r
+STR_SEDENTARY_REMINDER_NOTE$You haven't moved for XX hours. Get up and move.\r
+STR_SYSTEM_UPGRADING$System upgrading\r
+STR_NEWDEVICE_BIND_REMIND_NOTE$The current device is already tied to the Iphone 13 pro\n\nContinuing to connect will unbind the Iphone 13 pro and restore the watch to factory Settings (will erase the watch data)\n\nWhether to continue the operation\r
+STR_TABULAR_DISPLAY$Tabular display\r
+STR_GRID_DISPLAY$Grid display\r
+STR_CELLULAR_DISPLAY$Cellular display
\ No newline at end of file
index 8573f25..c8c81c5 100644 (file)
@@ -428,4 +428,30 @@ STR_INSERT_WATCH_SIM_OR_CONNECT_PHONE$请插入手表SIM卡或连接手机并确
 STR_ENABLE_BLUETOOTH_CALL$开启蓝牙通话\r
 STR_ENABLE_BLUETOOTH_CALL_NOTE$解决方法:\n1.苹果手机\n请前往手机“设置”→“蓝牙”列表找到\n“KUMI_XXXX”\n并点击后重试\n\n2.安卓手机\n请前往手机“设置”→“蓝牙”列表找到\n“KUMI_XXXX”\n点击右侧图标进入蓝牙设置\n开启通话及媒体功能后重试\r
 STR_SIM_CARD_ERROR$Sim卡异常\r
-STR_CHECK_SIM_CARD_INSERTION$SIM卡拨号异常,请检查手表SIM卡是否正确插入
\ No newline at end of file
+STR_CHECK_SIM_CARD_INSERTION$SIM卡拨号异常,请检查手表SIM卡是否正确插入\r
+STR_WEATHER_REPORT$气象报告\r
+STR_ULTRAVIOLET$紫外线\r
+STR_WIND_SPEED$风速\r
+STR_HUMIDITY$湿度\r
+STR_NEXT_7_DAYS$未来七天\r
+STR_GET_WEATHER_ERROR$未获取到天气信息请前往APP更新\r
+STR_MUSIC_SOURCE$音乐来源\r
+STR_MOBILE_MUSIC$手机音乐\r
+STR_WATCH_MUSIC$手表音乐\r
+STR_MUSIC_SOURCE$音乐来源\r
+STR_MUSIC_LIST$音乐列表\r
+STR_BLUETOOTH_CONNECTION_FAILED$蓝牙连接失败\r
+STR_SCANNING_BINDING$扫码绑定\r
+STR_DEVICE_BINDING$设备绑定\r
+STR_DEVICE_BINDING_NOTE$XX想要与你进行连接绑定\r
+STR_EQUIPMENT_UNTYING$设备解绑\r
+STR_EQUIPMENT_UNTYING_NOTE$XX 想要与你进行解绑\r
+STR_DRINK_WATER_REMINDER$喝水提醒\r
+STR_DRINK_WATER_REMINDER_NOTE$该喝水啦!记得按时保持水分充足(๑•̀ㅂ•́)و✧\r
+STR_SEDENTARY_REMINDER$久坐提醒\r
+STR_SEDENTARY_REMINDER_NOTE$你已经XX小时未活动了,站起来活动一下吧。\r
+STR_SYSTEM_UPGRADING$系统升级中\r
+STR_NEWDEVICE_BIND_REMIND_NOTE$当前设备已经与 XX 绑定继续连接操作会解除与  XX 的绑定并将手表恢复出厂设置(会清空手表数据)是否继续此操作\r
+STR_TABULAR_DISPLAY$列表显示\r
+STR_GRID_DISPLAY$网格显示\r
+STR_CELLULAR_DISPLAY$蜂窝显示
\ No newline at end of file
index 61eda97..99f7a0c 100644 (file)
        <lanstr id="STR_ENABLE_BLUETOOTH_CALL_NOTE" value="The solution:\n1. IPhone\nPlease go to the phone \&quot;Settings\&quot; → \&quot;Bluetooth\&quot; list to find\n“KUMI_XXXX”\nClick and try again\n\n2. Android phones\nPlease go to the phone \&quot;Settings\&quot; → \&quot;Bluetooth\&quot; list to find\n“KUMI_XXXX”\nClick the icon on the right to enter Bluetooth Settings\nEnable the call and media functions and try again"/>
        <lanstr id="STR_SIM_CARD_ERROR" value="SIM Card Error"/>
        <lanstr id="STR_CHECK_SIM_CARD_INSERTION" value="Check if the watch’s SIM card is properly inserted"/>
+       <lanstr id="STR_WEATHER_REPORT" value="Weather report"/>
+       <lanstr id="STR_ULTRAVIOLET" value="Ultraviolet"/>
+       <lanstr id="STR_WIND_SPEED" value="WindSpeed"/>
+       <lanstr id="STR_HUMIDITY" value="Humidity"/>
+       <lanstr id="STR_NEXT_7_DAYS" value="Next 7 Days"/>
+       <lanstr id="STR_GET_WEATHER_ERROR" value="No weather information was obtained Please go to APP Update"/>
+       <lanstr id="STR_MUSIC_SOURCE" value="Music source"/>
+       <lanstr id="STR_MOBILE_MUSIC" value="Mobile music"/>
+       <lanstr id="STR_WATCH_MUSIC" value="Watch music"/>
+       <lanstr id="STR_MUSIC_SOURCE" value="Music source"/>
+       <lanstr id="STR_MUSIC_LIST" value="Music list"/>
+       <lanstr id="STR_BLUETOOTH_CONNECTION_FAILED" value="Bluetooth connection failed"/>
+       <lanstr id="STR_SCANNING_BINDING" value="Scanning binding"/>
+       <lanstr id="STR_DEVICE_BINDING" value="Device binding"/>
+       <lanstr id="STR_DEVICE_BINDING_NOTE" value="XX wants to connect and bind with you"/>
+       <lanstr id="STR_EQUIPMENT_UNTYING" value="Equipment untying"/>
+       <lanstr id="STR_EQUIPMENT_UNTYING_NOTE" value="XX would like to unbind you"/>
+       <lanstr id="STR_DRINK_WATER_REMINDER" value="Drink water reminder"/>
+       <lanstr id="STR_DRINK_WATER_REMINDER_NOTE" value="Time for some water! And stay hydrated (๑•̀ㅂ•́)"/>
+       <lanstr id="STR_SEDENTARY_REMINDER" value="Sedentary reminder"/>
+       <lanstr id="STR_SEDENTARY_REMINDER_NOTE" value="You haven't moved for XX hours. Get up and move."/>
+       <lanstr id="STR_SYSTEM_UPGRADING" value="System upgrading"/>
+       <lanstr id="STR_NEWDEVICE_BIND_REMIND_NOTE" value="The current device is already tied to the Iphone 13 pro\n\nContinuing to connect will unbind the Iphone 13 pro and restore the watch to factory Settings (will erase the watch data)\n\nWhether to continue the operation"/>
+       <lanstr id="STR_TABULAR_DISPLAY" value="Tabular display"/>
+       <lanstr id="STR_GRID_DISPLAY" value="Grid display"/>
+       <lanstr id="STR_CELLULAR_DISPLAY" value="Cellular display"/>
 </language>
index 2a085ce..b772e48 100644 (file)
        <lanstr id="STR_ENABLE_BLUETOOTH_CALL_NOTE" value="解决方法:\n1.苹果手机\n请前往手机“设置”→“蓝牙”列表找到\n“KUMI_XXXX”\n并点击后重试\n\n2.安卓手机\n请前往手机“设置”→“蓝牙”列表找到\n“KUMI_XXXX”\n点击右侧图标进入蓝牙设置\n开启通话及媒体功能后重试"/>
        <lanstr id="STR_SIM_CARD_ERROR" value="Sim卡异常"/>
        <lanstr id="STR_CHECK_SIM_CARD_INSERTION" value="SIM卡拨号异常,请检查手表SIM卡是否正确插入"/>
+       <lanstr id="STR_WEATHER_REPORT" value="气象报告"/>
+       <lanstr id="STR_ULTRAVIOLET" value="紫外线"/>
+       <lanstr id="STR_WIND_SPEED" value="风速"/>
+       <lanstr id="STR_HUMIDITY" value="湿度"/>
+       <lanstr id="STR_NEXT_7_DAYS" value="未来七天"/>
+       <lanstr id="STR_GET_WEATHER_ERROR" value="未获取到天气信息请前往APP更新"/>
+       <lanstr id="STR_MUSIC_SOURCE" value="音乐来源"/>
+       <lanstr id="STR_MOBILE_MUSIC" value="手机音乐"/>
+       <lanstr id="STR_WATCH_MUSIC" value="手表音乐"/>
+       <lanstr id="STR_MUSIC_SOURCE" value="音乐来源"/>
+       <lanstr id="STR_MUSIC_LIST" value="音乐列表"/>
+       <lanstr id="STR_BLUETOOTH_CONNECTION_FAILED" value="蓝牙连接失败"/>
+       <lanstr id="STR_SCANNING_BINDING" value="扫码绑定"/>
+       <lanstr id="STR_DEVICE_BINDING" value="设备绑定"/>
+       <lanstr id="STR_DEVICE_BINDING_NOTE" value="XX想要与你进行连接绑定"/>
+       <lanstr id="STR_EQUIPMENT_UNTYING" value="设备解绑"/>
+       <lanstr id="STR_EQUIPMENT_UNTYING_NOTE" value="XX 想要与你进行解绑"/>
+       <lanstr id="STR_DRINK_WATER_REMINDER" value="喝水提醒"/>
+       <lanstr id="STR_DRINK_WATER_REMINDER_NOTE" value="该喝水啦!记得按时保持水分充足(๑•̀ㅂ•́)و✧"/>
+       <lanstr id="STR_SEDENTARY_REMINDER" value="久坐提醒"/>
+       <lanstr id="STR_SEDENTARY_REMINDER_NOTE" value="你已经XX小时未活动了,站起来活动一下吧。"/>
+       <lanstr id="STR_SYSTEM_UPGRADING" value="系统升级中"/>
+       <lanstr id="STR_NEWDEVICE_BIND_REMIND_NOTE" value="当前设备已经与 XX 绑定继续连接操作会解除与  XX 的绑定并将手表恢复出厂设置(会清空手表数据)是否继续此操作"/>
+       <lanstr id="STR_TABULAR_DISPLAY" value="列表显示"/>
+       <lanstr id="STR_GRID_DISPLAY" value="网格显示"/>
+       <lanstr id="STR_CELLULAR_DISPLAY" value="蜂窝显示"/>
 </language>
index ae14358..6567541 100644 (file)
Binary files a/code/sdk/application/wearable/fd230app/nativeui/language/font/en.lang and b/code/sdk/application/wearable/fd230app/nativeui/language/font/en.lang differ
index 65427ed..f5336af 100644 (file)
Binary files a/code/sdk/application/wearable/fd230app/nativeui/language/font/ja.lang and b/code/sdk/application/wearable/fd230app/nativeui/language/font/ja.lang differ
index 9e19253..47818ab 100644 (file)
@@ -397,64 +397,87 @@ enum UIResourceTextId : uint16_t {
     STR_ENABLE_BLUETOOTH_CALL_NOTE = 384,\r
     STR_SIM_CARD_ERROR = 385,\r
     STR_CHECK_SIM_CARD_INSERTION = 386,\r
-    STR_RANGE_MILE = 387,\r
-    STR_CLOSE = 388,\r
-    STR_MORE_APP = 389,\r
-    STR_SAVENOTE = 390,\r
-    STR_SAVEBACK = 391,\r
-    STR_SAVEASK = 392,\r
-    STR_BLOOD = 393,\r
-    STR_CHECK = 394,\r
-    STR_CHECKNEW = 395,\r
-    STR_CHECKTIME = 396,\r
-    STR_CHECKLONG = 397,\r
-    STR_CHECKNO = 398,\r
-    STR_CHECKNOTE = 399,\r
-    STR_CHECKON = 400,\r
-    STR_CHECKSTOP = 401,\r
-    STR_CHECKERROR = 402,\r
-    STR_WAERKEEP = 403,\r
-    STR_WEARRE = 404,\r
-    STR_WEARREADY = 405,\r
-    STR_RECHECK = 406,\r
-    STR_CHECKEWARN = 407,\r
-    STR_BLOODSHORT = 408,\r
-    STR_HEARTNOTE = 409,\r
-    STR_KONW = 410,\r
-    STR_EXPLAIN = 411,\r
-    STR_HEARTREST = 412,\r
-    STR_HEARTDATA = 413,\r
-    STR_HEARTTITLE = 414,\r
-    STR_HEARTMAX = 415,\r
-    STR_HEARTMIN = 416,\r
-    STR_TRAINGNO = 417,\r
-    STR_TRAINGGO = 418,\r
-    STR_MESSAGE = 419,\r
-    STR_MESSAGENO = 420,\r
-    STR_DIS = 421,\r
-    STR_DUR = 422,\r
-    STR_STANDUP = 423,\r
-    STR_SLEEPHOUR = 424,\r
-    STR_SLEEPMGOAL = 425,\r
-    STR_REATTIME = 426,\r
-    STR_SLEEPTIME = 427,\r
-    STR_WALKTIME = 428,\r
-    STR_DISTURB = 429,\r
-    STR_DISTURBNOTE = 430,\r
-    STR_MORNNING = 431,\r
-    STR_NOW = 432,\r
-    STR_NAP = 433,\r
-    STR_TACK = 434,\r
-    STR_CLICK = 435,\r
-    STR_TACKNUM = 436,\r
-    STR_MON = 437,\r
-    STR_TUES = 438,\r
-    STR_WEDNES = 439,\r
-    STR_THURS = 440,\r
-    STR_FRI = 441,\r
-    STR_SATUR = 442,\r
-    STR_SUN = 443,\r
-    STR_MAX_ID = 444,\r
+    STR_WEATHER_REPORT = 387,\r
+    STR_ULTRAVIOLET = 388,\r
+    STR_WIND_SPEED = 389,\r
+    STR_HUMIDITY = 390,\r
+    STR_NEXT_7_DAYS = 391,\r
+    STR_GET_WEATHER_ERROR = 392,\r
+    STR_MUSIC_SOURCE = 393,\r
+    STR_MOBILE_MUSIC = 394,\r
+    STR_WATCH_MUSIC = 395,\r
+    STR_MUSIC_LIST = 396,\r
+    STR_BLUETOOTH_CONNECTION_FAILED = 397,\r
+    STR_SCANNING_BINDING = 398,\r
+    STR_DEVICE_BINDING = 399,\r
+    STR_DEVICE_BINDING_NOTE = 400,\r
+    STR_EQUIPMENT_UNTYING = 401,\r
+    STR_EQUIPMENT_UNTYING_NOTE = 402,\r
+    STR_DRINK_WATER_REMINDER = 403,\r
+    STR_DRINK_WATER_REMINDER_NOTE = 404,\r
+    STR_SEDENTARY_REMINDER = 405,\r
+    STR_SEDENTARY_REMINDER_NOTE = 406,\r
+    STR_SYSTEM_UPGRADING = 407,\r
+    STR_NEWDEVICE_BIND_REMIND_NOTE = 408,\r
+    STR_TABULAR_DISPLAY = 409,\r
+    STR_RANGE_MILE = 410,\r
+    STR_CLOSE = 411,\r
+    STR_MORE_APP = 412,\r
+    STR_SAVENOTE = 413,\r
+    STR_SAVEBACK = 414,\r
+    STR_SAVEASK = 415,\r
+    STR_BLOOD = 416,\r
+    STR_CHECK = 417,\r
+    STR_CHECKNEW = 418,\r
+    STR_CHECKTIME = 419,\r
+    STR_CHECKLONG = 420,\r
+    STR_CHECKNO = 421,\r
+    STR_CHECKNOTE = 422,\r
+    STR_CHECKON = 423,\r
+    STR_CHECKSTOP = 424,\r
+    STR_CHECKERROR = 425,\r
+    STR_WAERKEEP = 426,\r
+    STR_WEARRE = 427,\r
+    STR_WEARREADY = 428,\r
+    STR_RECHECK = 429,\r
+    STR_CHECKEWARN = 430,\r
+    STR_BLOODSHORT = 431,\r
+    STR_HEARTNOTE = 432,\r
+    STR_KONW = 433,\r
+    STR_EXPLAIN = 434,\r
+    STR_HEARTREST = 435,\r
+    STR_HEARTDATA = 436,\r
+    STR_HEARTTITLE = 437,\r
+    STR_HEARTMAX = 438,\r
+    STR_HEARTMIN = 439,\r
+    STR_TRAINGNO = 440,\r
+    STR_TRAINGGO = 441,\r
+    STR_MESSAGE = 442,\r
+    STR_MESSAGENO = 443,\r
+    STR_DIS = 444,\r
+    STR_DUR = 445,\r
+    STR_STANDUP = 446,\r
+    STR_SLEEPHOUR = 447,\r
+    STR_SLEEPMGOAL = 448,\r
+    STR_REATTIME = 449,\r
+    STR_SLEEPTIME = 450,\r
+    STR_WALKTIME = 451,\r
+    STR_DISTURB = 452,\r
+    STR_DISTURBNOTE = 453,\r
+    STR_MORNNING = 454,\r
+    STR_NOW = 455,\r
+    STR_NAP = 456,\r
+    STR_TACK = 457,\r
+    STR_CLICK = 458,\r
+    STR_TACKNUM = 459,\r
+    STR_MON = 460,\r
+    STR_TUES = 461,\r
+    STR_WEDNES = 462,\r
+    STR_THURS = 463,\r
+    STR_FRI = 464,\r
+    STR_SATUR = 465,\r
+    STR_SUN = 466,\r
+    STR_MAX_ID = 467,\r
 }; // UIResourceTextId\r
 
 enum FontLanguageId : uint8_t {
index f7fe8d2..c5b1081 100644 (file)
Binary files a/code/sdk/application/wearable/fd230app/nativeui/language/font/zh.lang and b/code/sdk/application/wearable/fd230app/nativeui/language/font/zh.lang differ
index eeeaa50..82c9ede 100644 (file)
@@ -2,7 +2,7 @@
  * @Author: luozheng 1732036298@qq.com\r
  * @Date: 2024-03-30 09:14:38\r
  * @LastEditors: luozheng 1732036298@qq.com\r
- * @LastEditTime: 2024-04-15 14:24:52\r
+ * @LastEditTime: 2024-05-10 11:36:50\r
  * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/weather/include/FutureWeatherView.h\r
  */\r
 #ifndef FUTURE_WEATHER_VIEW_H\r
index a45a17a..4f84f2d 100644 (file)
@@ -2,7 +2,7 @@
  * @Author: luozheng 1732036298@qq.com\r
  * @Date: 2024-03-30 09:14:38\r
  * @LastEditors: luozheng 1732036298@qq.com\r
- * @LastEditTime: 2024-04-12 16:22:24\r
+ * @LastEditTime: 2024-05-10 10:49:52\r
  * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/weather/include/GetWeatherDataErrorView.h\r
  */\r
 #ifndef Get_WEATHER_DATA_ERROR_VIEW_H\r
index 1950dbd..d149d71 100644 (file)
@@ -2,7 +2,7 @@
  * @Author: luozheng 1732036298@qq.com\r
  * @Date: 2024-01-29 15:37:44\r
  * @LastEditors: luozheng 1732036298@qq.com\r
- * @LastEditTime: 2024-04-13 10:09:34\r
+ * @LastEditTime: 2024-05-10 10:58:31\r
  * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/weather/include/MainWeatherPresenter.h\r
  */\r
 #ifndef MAIN_WEATHER_PRESENTER_H\r
@@ -51,6 +51,7 @@ namespace OHOS
         void OnSwipe(UISwipeView &view) override;\r
 \r
         WeatherModel *weatherModel{nullptr};\r
+        bool X_DRAG_FLAG{false};\r
     };\r
 } // namespace OHOS\r
 \r
index 04c1807..1e6064f 100644 (file)
@@ -2,7 +2,7 @@
  * @Author: luozheng 1732036298@qq.com\r
  * @Date: 2024-01-29 15:37:44\r
  * @LastEditors: luozheng 1732036298@qq.com\r
- * @LastEditTime: 2024-04-13 10:04:53\r
+ * @LastEditTime: 2024-05-10 11:22:41\r
  * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/weather/include/MainWeatherView.h\r
  */\r
 #ifndef MAIN_WEATHER_VIEW_H\r
@@ -38,7 +38,9 @@ namespace OHOS
         AppGroupView *WeatherViewPageInit(void);\r
         AppGroupView *WeatherReportViewPageInit(void);\r
         AppGroupView *FutureWeatherViewPageInit(void);\r
+        UIScrollView *WeatherDataErrorViewPageInit(void);\r
         WeatherView *GetWeatherView(void);\r
+        UIView *GetWeatherPageView(void);\r
         WeatherReportView *GetWeatherReportView(void);\r
         FutureWeatherView *GetFutureWeatherView(void);\r
 \r
@@ -53,11 +55,11 @@ namespace OHOS
         WeatherReportView *weatherReportView{nullptr};\r
         FutureWeatherView *futureWeatherView{nullptr};\r
         GetWeatherDataErrorView *getWeatherDataErrorView{nullptr};\r
+\r
     private:\r
         int16_t maxPage = MAX_WEATHERVIEW;\r
         UISwipeView *weatherSwipeViewList{nullptr}; // 天气滑动视图列表\r
         AppGroupView *recordCard[MAX_WEATHERVIEW]{nullptr};\r
-        bool pageStatus[MAX_WEATHERVIEW]{false};\r
         AppGroupView *CreatePage(int32_t WeatherPageId);\r
     };\r
 } // namespace OHOS\r
index b3fa377..c9f5a2d 100644 (file)
@@ -2,7 +2,7 @@
  * @Author: luozheng 1732036298@qq.com
  * @Date: 2024-04-08 18:40:20
  * @LastEditors: luozheng 1732036298@qq.com
- * @LastEditTime: 2024-04-16 09:57:34
+ * @LastEditTime: 2024-05-09 15:46:16
  * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/weather/include/WeatherModel.h
  */
 #ifndef WEATHER_MODEL_H
@@ -61,6 +61,7 @@ namespace OHOS
     }
 #endif /* __cplusplus */
 
+#define DAYS_OF_THE_WEEK 7
 #define weather_src "/user/res/weather/weather65x65/"
     static const char *weather65x65[] =
         {
@@ -102,13 +103,16 @@ namespace OHOS
         std::string GetHumidity();
         std::string GetWindScale();
         std::string GetUVIndex();
-        static uint8_t WEATHER_DATA_VALID; // 天气数据是否有效
+        /* -------------------------------------------------------------------------- */
+        bool GetWeatherDataIsValid(void);
+        void SetWeatherDataIsValid(bool value);
     private:
         WeatherModel();
         WeatherModel(const WeatherModel &) = delete;
         WeatherModel &operator=(const WeatherModel &) = delete;
         virtual ~WeatherModel();
-        FutureWeather FutureWeatherItem[7];
+        FutureWeather FutureWeatherItem[DAYS_OF_THE_WEEK];
+        bool WEATHER_DATA_VALID{false}; // 天气数据是否有效
     };
 
 }
index 553edbf..295fe46 100644 (file)
@@ -2,7 +2,7 @@
  * @Author: luozheng 1732036298@qq.com\r
  * @Date: 2024-03-30 09:14:38\r
  * @LastEditors: luozheng 1732036298@qq.com\r
- * @LastEditTime: 2024-04-13 18:01:59\r
+ * @LastEditTime: 2024-05-09 17:49:13\r
  * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/weather/include/WeatherReportView.h\r
  */\r
 #ifndef WEATHER_REPORT_VIEW_H\r
@@ -31,7 +31,8 @@ namespace OHOS
             int16_t height;\r
             int16_t fontSize;      // 字体大小\r
             int16_t lineHeigh;     // 行高\r
-            std::string text;      // 文本\r
+            std::string text;   // 文本\r
+            uint16_t textId;      \r
             uint8_t lineBreakMode; // 断行模式。\r
         };\r
         WeatherReportView();\r
@@ -49,6 +50,7 @@ namespace OHOS
         const char **CreateImagePathsArray(const char *basePath, const char *fileExtension, int numImages);\r
         void FreeImagePathsArray(const char **imagePaths, const int numImages);\r
         UILabelExt *SetUpLabel(LabelConfig &labelconfig); // 设置标签\r
+        UILabelExt *SetUpLabelExt(LabelConfig &labelconfig);\r
         bool WeatherReportViewLabelInit(void);\r
         bool WeatherReportViewImageAnimatorViewInit(void);\r
         UILabelExt *title{nullptr};                               // 标题\r
index 4076d5b..51f24c1 100644 (file)
@@ -2,13 +2,15 @@
  * @Author: luozheng 1732036298@qq.com\r
  * @Date: 2024-01-29 15:37:44\r
  * @LastEditors: luozheng 1732036298@qq.com\r
- * @LastEditTime: 2024-04-15 15:01:52\r
+ * @LastEditTime: 2024-05-10 11:19:59\r
  * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/weather/src/FutureWeatherView.cpp\r
  */\r
 #include "weather/include/FutureWeatherView.h"\r
 #include "wearable_log.h"\r
 #include "weather/include/WeatherModel.h"\r
 #include "common/image_cache_manager.h"\r
+#include "language/font/ui_resource_string.h"\r
+#include "weather/include/WeatherModel.h"\r
 namespace OHOS\r
 {\r
 \r
@@ -52,8 +54,6 @@ namespace OHOS
     bool FutureWeatherView::InitPage(void)\r
     {\r
         WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "FutureWeatherView::InitPage");\r
-        /* -------------------------------------------------------------------------- */\r
-\r
         /* -------------------------------------------------------------------------- */\r
         Title = new UILabelExt();\r
         if (Title == nullptr)\r
@@ -64,10 +64,9 @@ namespace OHOS
         Title->SetPosition(93, 52, 280, 47);\r
         Title->SetStyle(STYLE_TEXT_FONT, 30);\r
         Title->SetStyle(STYLE_LINE_HEIGHT, 35);\r
-        Title->SetText("未来7天");\r
+        Title->SetTextId(STR_NEXT_7_DAYS);\r
         Title->SetLineBreakMode(UILabel::LINE_BREAK_MARQUEE);\r
         Title->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);\r
-        Title->SetRollSpeed(40);\r
         Title->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 30);\r
         Add(Title);\r
         /* -------------------------------------------------------------------------- */\r
@@ -108,6 +107,9 @@ namespace OHOS
         }\r
         SetDraggable(true);\r
         SetTouchable(true);\r
+        /* -------------------------------------------------------------------------- */\r
+        WeatherModel::GetInstance().InitFutureWeatherItem();\r
+        /* -------------------------------------------------------------------------- */\r
         return true;\r
     }\r
 \r
index 7a20874..1e36a45 100644 (file)
@@ -2,12 +2,14 @@
  * @Author: luozheng 1732036298@qq.com\r
  * @Date: 2024-01-29 15:37:44\r
  * @LastEditors: luozheng 1732036298@qq.com\r
- * @LastEditTime: 2024-04-13 19:23:06\r
+ * @LastEditTime: 2024-05-10 10:49:39\r
  * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/weather/src/GetWeatherDataErrorView.cpp\r
  */\r
 #include "weather/include/GetWeatherDataErrorView.h"\r
 #include "wearable_log.h"\r
 #include "weather/include/MainWeatherPresenter.h"\r
+#include "language/font/ui_resource_string.h"\r
+#include "uicomponents/UIComponents.h"\r
 \r
 /* 天气获取数据失败后会调用该视图*/\r
 namespace OHOS\r
@@ -46,13 +48,6 @@ namespace OHOS
             scrollView->SetPosition(0, 0, Screen::GetInstance().GetWidth(), Screen::GetInstance().GetHeight());\r
             scrollView->SetViewId(GETWEATHERDATAERRORVIEW);\r
             scrollView->SetStyle(STYLE_BACKGROUND_OPA, 0xff);\r
-            UIView::OnDragListener *listener = static_cast<UIView::OnDragListener *>(MainWeatherPresenter::GetInstance());\r
-            if (listener == nullptr)\r
-            {\r
-                WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "listener is  nullptr!!");\r
-                return nullptr;\r
-            }\r
-            scrollView->SetOnDragListener(listener);\r
             /* -------------------------------------------------------------------------- */\r
             image = new UIImageView();\r
             if (image == nullptr)\r
@@ -74,13 +69,14 @@ namespace OHOS
                 return nullptr;\r
             }\r
             label->SetPosition(33, 268, 400, 70);\r
-            label->SetStyle(STYLE_TEXT_FONT, 26);\r
+            label->SetStyle(STYLE_TEXT_FONT, 30);\r
             label->SetStyle(STYLE_LINE_HEIGHT, 35);\r
-            label->SetText("未获取到天气信息\n请前往APP更新");\r
+            SetLabelId(label,STR_GET_WEATHER_ERROR);\r
             label->SetLineBreakMode(UILabel::LINE_BREAK_WRAP);\r
             label->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);\r
-            label->SetRollSpeed(40);\r
-            label->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 26);\r
+            label->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 30);\r
+\r
+            \r
             scrollView->Add(label);\r
         }\r
         return scrollView;\r
index 92415d6..a882bd3 100644 (file)
@@ -5,6 +5,7 @@
 #include "common/key_code.h"\r
 #include <custom_utils.h>\r
 #include <ohos_types.h>\r
+#include "UiConfig.h"\r
 namespace OHOS\r
 {\r
 \r
@@ -43,35 +44,32 @@ namespace OHOS
 \r
     void MainWeatherPresenter::OnResume(void)\r
     {\r
-        weatherModel->InitFutureWeatherItem();\r
         Presenter<MainWeatherView>::OnResume();\r
     }\r
 \r
     void MainWeatherPresenter::OnStop(void)\r
     {\r
-\r
         Presenter<MainWeatherView>::OnStop();\r
     }\r
 \r
     bool MainWeatherPresenter::OnDrag(UIView &view, const DragEvent &event)\r
     {\r
         UNUSED(view);\r
-        UNUSED(event);\r
-\r
+        if ((event.GetDeltaX() > X_DRAG_OFFSET) && (event.GetDeltaX() > (DOUBLES * MATH_ABS(event.GetDeltaY())))) // 拖动过程中判断是否是水平滑动\r
+        {\r
+            MainWeatherPresenter::X_DRAG_FLAG = true;\r
+        }\r
         return true;\r
     }\r
 \r
     bool MainWeatherPresenter::OnDragEnd(UIView &view, const DragEvent &event)\r
     {\r
         WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, " MainWeatherPresenter::OnDragEnd");\r
-        if (event.GetDragDirection() == DragEvent::DIRECTION_LEFT_TO_RIGHT)\r
-        {\r
-            NativeAbility::GetInstance().ChangeSlice(VIEW_APPLIST);\r
-            return true;\r
-        }\r
-        if (strcmp(view.GetViewId(), GETWEATHERDATAERRORVIEW) == 0 && event.GetDragDirection() == DragEvent::DIRECTION_LEFT_TO_RIGHT)\r
+        UNUSED(view);\r
+        if (event.GetDragDirection() == DragEvent::DIRECTION_LEFT_TO_RIGHT && MainWeatherPresenter::X_DRAG_FLAG)\r
         {\r
-            NativeAbility::GetInstance().ChangeSlice(VIEW_APPLIST);\r
+            NativeAbility::GetInstance().Back();\r
+            X_DRAG_FLAG = false;\r
         }\r
         return true;\r
     }\r
@@ -94,8 +92,7 @@ namespace OHOS
         // 如果是power键就返回上一级\r
         if (keyID == static_cast<uint16_t>(ZliteKeyCode::ZLITE_KEY_POWER) && keyState == 0 && uapi_get_screen_state() == 0)\r
         {\r
-            uint16_t preSlice = NativeAbility::GetInstance().GetPreSliceId();\r
-            NativeAbility::GetInstance().ChangeSlice(preSlice);\r
+            NativeAbility::GetInstance().Back();\r
         }\r
         return true;\r
     }\r
@@ -116,6 +113,7 @@ namespace OHOS
         if (view.GetCurrentPage() == MAINWEATHERVIEW)\r
         {\r
             view.SetIntercept(false);\r
+            MainWeatherView::GetInstance()->GetFutureWeatherView()->GetFutureWeatherList()->RefreshList();\r
         }\r
         else\r
         {\r
index f98918f..002044d 100644 (file)
@@ -2,7 +2,7 @@
  * @Author: luozheng 1732036298@qq.com\r
  * @Date: 2024-01-29 15:37:44\r
  * @LastEditors: luozheng 1732036298@qq.com\r
- * @LastEditTime: 2024-04-15 15:06:51\r
+ * @LastEditTime: 2024-05-10 11:31:08\r
  * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/weather/src/MainWeatherView.cpp\r
  */\r
 #include "weather/include/MainWeatherView.h"\r
@@ -93,68 +93,74 @@ namespace OHOS
         return weatherSwipeViewList;\r
     }\r
 \r
+    // 获取天气页面视图\r
+    UIView *MainWeatherView::GetWeatherPageView()\r
+    {\r
+        if (WeatherModel::GetInstance().GetWeatherDataIsValid()) // 如果天气数据有效\r
+        {\r
+            return dynamic_cast<UIView *>(MainWeatherViewInit());\r
+        }\r
+        else\r
+        {\r
+            return dynamic_cast<UIView *>(WeatherDataErrorViewPageInit());\r
+        }\r
+        return nullptr;\r
+    }\r
+\r
     void MainWeatherView::OnStart()\r
     {\r
         View<MainWeatherPresenter>::OnStart();\r
-        if (WeatherModel::WEATHER_DATA_VALID)\r
+        RootView::GetInstance()->Add(GetWeatherPageView());\r
+        if (weatherSwipeViewList != nullptr)\r
         {\r
-            MainWeatherViewInit();\r
-            /* -------------------------------------------------------------------------- */\r
-            if (weatherSwipeViewList != nullptr)\r
+            UIView::OnClickListener *weatherOnClickListener = (UIView::OnClickListener *)OHOS::MainWeatherPresenter::GetInstance();\r
+            if (weatherOnClickListener == nullptr)\r
             {\r
-                UIView::OnClickListener *weatherOnClickListener = (UIView::OnClickListener *)OHOS::MainWeatherPresenter::GetInstance();\r
-                if (weatherOnClickListener == nullptr)\r
-                {\r
-                    WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "weatherOnClickListener new fail");\r
-                    return;\r
-                }\r
-\r
-                UIView::OnDragListener *weatherOnDragListener = (UIView::OnDragListener *)OHOS::MainWeatherPresenter::GetInstance();\r
-                if (weatherOnDragListener == nullptr)\r
-                {\r
-                    WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "weatherOnDragListener new fail");\r
-                    return;\r
-                }\r
+                WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "weatherOnClickListener new fail");\r
+                return;\r
+            }\r
 \r
-                UISwipeView::OnSwipeListener *weatherOnSwipeListener = (UISwipeView::OnSwipeListener *)OHOS::MainWeatherPresenter::GetInstance();\r
-                if (weatherOnSwipeListener == nullptr)\r
-                {\r
-                    WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "weatherOnSwipeListener new fail");\r
-                    return;\r
-                }\r
+            UIView::OnDragListener *weatherOnDragListener = (UIView::OnDragListener *)OHOS::MainWeatherPresenter::GetInstance();\r
+            if (weatherOnDragListener == nullptr)\r
+            {\r
+                WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "weatherOnDragListener new fail");\r
+                return;\r
+            }\r
 \r
-                weatherSwipeViewList->SetOnClickListener(weatherOnClickListener);\r
-                weatherSwipeViewList->SetOnDragListener(weatherOnDragListener);\r
-                weatherSwipeViewList->SetOnSwipeListener(weatherOnSwipeListener);\r
+            UISwipeView::OnSwipeListener *weatherOnSwipeListener = (UISwipeView::OnSwipeListener *)OHOS::MainWeatherPresenter::GetInstance();\r
+            if (weatherOnSwipeListener == nullptr)\r
+            {\r
+                WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "weatherOnSwipeListener new fail");\r
+                return;\r
             }\r
-            /* -------------------------------------------------------------------------- */\r
-            RootView::GetInstance()->Add(weatherSwipeViewList);\r
+            weatherSwipeViewList->SetOnClickListener(weatherOnClickListener);\r
+            weatherSwipeViewList->SetOnDragListener(weatherOnDragListener);\r
+            weatherSwipeViewList->SetOnSwipeListener(weatherOnSwipeListener);\r
         }\r
         else\r
         {\r
-            getWeatherDataErrorView = new GetWeatherDataErrorView();\r
-            if (getWeatherDataErrorView == nullptr)\r
+            UIView::OnDragListener *dragListener = static_cast<UIView::OnDragListener *>(MainWeatherPresenter::GetInstance());\r
+            if (dragListener == nullptr)\r
             {\r
-                WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "getWeatherDataErrorView new fail!!");\r
+                WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "dragListener is  nullptr!!");\r
                 return;\r
             }\r
-            RootView::GetInstance()->Add(getWeatherDataErrorView->GetWeatherDataErrorViewInit());\r
+            getWeatherDataErrorView->GetWeatherDataErrorViewInit()->SetOnDragListener(dragListener);\r
         }\r
-        /* -------------------------------------------------------------------------- */\r
+        /* --------------------------------- 添加按键监听 --------------------------------- */\r
         RootView::OnKeyActListener *keyactListener = (RootView::OnKeyActListener *)OHOS::MainWeatherPresenter::GetInstance();\r
         RootView::GetInstance()->SetOnKeyActListener(keyactListener);\r
+        /* -------------------------------------------------------------------------- */\r
     }\r
 \r
     void MainWeatherView::OnSetUpView()\r
     {\r
         View<MainWeatherPresenter>::OnSetUpView();\r
-\r
         Draw();\r
     }\r
 \r
     void MainWeatherView::OnTearDownView()\r
     {\r
-\r
         View<MainWeatherPresenter>::OnTearDownView();\r
         return;\r
     }\r
@@ -225,6 +231,20 @@ namespace OHOS
         return futureWeatherView;\r
     }\r
 \r
+    /*\r
+     * @brief 获取天气数据失败视图初始化\r
+     */\r
+    UIScrollView *MainWeatherView::WeatherDataErrorViewPageInit(void)\r
+    {\r
+        getWeatherDataErrorView = new GetWeatherDataErrorView();\r
+        if (getWeatherDataErrorView == nullptr)\r
+        {\r
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "getWeatherDataErrorView new fail!!");\r
+            return nullptr;\r
+        }\r
+        return getWeatherDataErrorView->GetWeatherDataErrorViewInit();\r
+    }\r
+\r
     struct MainWeatherViewMapper\r
     {\r
         const int16_t viewId;\r
index 9074344..987ba31 100644 (file)
@@ -21,11 +21,17 @@ namespace OHOS
             RemoveAll();
             if (mainWeatherView != nullptr)
             {
-                delete weatherOnSwipeListener;
-                weatherOnSwipeListener = nullptr;
-
-                delete mainWeatherView;
-                mainWeatherView = nullptr;
+                if (weatherOnSwipeListener != nullptr)
+                {
+                    delete weatherOnSwipeListener;
+                    weatherOnSwipeListener = nullptr;
+                }
+                
+                if (mainWeatherView != nullptr)
+                {
+                    delete mainWeatherView;
+                    mainWeatherView = nullptr;
+                }
             }
         }
     }
@@ -39,20 +45,28 @@ namespace OHOS
             WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "WeatherView::new mainweatherView fail!");
             return false;
         }
-        UISwipeView *weatherSwipView = mainWeatherView->MainWeatherViewInit();
-        if (weatherSwipView == nullptr)
+
+        if (WeatherModel::GetInstance().GetWeatherDataIsValid())
         {
-            WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "mainWeatherView->MainWeatherViewInit() == nullptr!!");
-            return false;
+            UISwipeView *weatherSwipView = dynamic_cast<UISwipeView *>(mainWeatherView->GetWeatherPageView());
+            if (weatherSwipView == nullptr)
+            {
+                WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "mainWeatherView->MainWeatherViewInit() == nullptr!!");
+                return false;
+            }
+            weatherOnSwipeListener = static_cast<UISwipeView::OnSwipeListener *>(new WeatherControlViewOnSwipeListener());
+            if (weatherOnSwipeListener == nullptr)
+            {
+                WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "weatherOnSwipeListener new fail");
+                return false;
+            }
+            weatherSwipView->SetOnSwipeListener(weatherOnSwipeListener);
+            Add(weatherSwipView);
         }
-        weatherOnSwipeListener = static_cast<UISwipeView::OnSwipeListener *>(new WeatherControlViewOnSwipeListener());
-        if (weatherOnSwipeListener == nullptr)
+        else
         {
-            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "weatherOnSwipeListener new fail");
-            return false;
+            Add(mainWeatherView->GetWeatherPageView());
         }
-        weatherSwipView->SetOnSwipeListener(weatherOnSwipeListener);
-        Add(weatherSwipView);
         return true;
     }
 
index 72bd30d..39cfd0b 100644 (file)
@@ -2,7 +2,7 @@
  * @Author: luozheng 1732036298@qq.com
  * @Date: 2024-04-08 18:40:09
  * @LastEditors: luozheng 1732036298@qq.com
- * @LastEditTime: 2024-04-18 18:42:24
+ * @LastEditTime: 2024-05-10 11:27:16
  * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/weather/src/WeatherModel.cpp
  */
 #include "weather/include/WeatherModel.h"
@@ -38,7 +38,7 @@ namespace OHOS
             Weather_data_t_now.temp = temp;
             Weather_data_t_now.iconNight = iconNight;
 
-            WeatherModel::WEATHER_DATA_VALID = 1;
+            WeatherModel::GetInstance().SetWeatherDataIsValid(true);
         }
 
         /*
@@ -78,29 +78,13 @@ namespace OHOS
             }
         }
 
-        void jsonCheck_weather(uint8_t *buf);
 #if __cplusplus
     }
 #endif /* __cplusplus */
 
-    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}";
-    //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}";
-    /* -------------------------------------------------------------------------- */
-    uint8_t WeatherModel::WEATHER_DATA_VALID = 0;
     WeatherModel::WeatherModel()
     {
         WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "WeatherModel::WeatherModel");
-        // jsonCheck_weather((uint8_t *)json_data);
     }
 
     WeatherModel::~WeatherModel()
@@ -117,20 +101,23 @@ namespace OHOS
     void WeatherModel::InitFutureWeatherItem()
     {
         MainWeatherView *p_MainWeatherView = MainWeatherView::GetInstance();
-        for (uint8_t i = 0; i < 7; i++)
+        if (p_MainWeatherView == nullptr)
+        {
+            WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "MainWeatherView::GetInstance fail!!");
+            return;
+        }
+        for (uint8_t i = 0; i < DAYS_OF_THE_WEEK; i++)
         {
             FutureWeatherItem[i].iconDay = GetWeather_data_seven_data_iconDay(i);
             FutureWeatherItem[i].fxDate = GetWeather_data_seven_data_fxDate(i);
             FutureWeatherItem[i].tempMinAndMax = GetWeather_data_seven_data_tempMinAndtempMax(i);
-            // FutureWeatherItem[i].tempMin = GetWeather_data_seven_data_tempMin(i);
-            // FutureWeatherItem[i].tempMax = GetWeather_data_seven_data_tempMax(i);
             p_MainWeatherView->GetFutureWeatherView()->AddFutureWeatherItemToList(FutureWeatherItem[i]);
         }
     }
 
     void WeatherModel::TimestampToMonthDayString(time_t timestamp, char *buffer)
     {
-       // 将时间戳转换成tm结构
+        // 将时间戳转换成tm结构
         struct tm timeinfo;
         localtime_r(&timestamp, &timeinfo);
 
@@ -235,9 +222,9 @@ namespace OHOS
     /*获取湿度*/
     std::string WeatherModel::GetHumidity()
     {
-        int humidity = Weather_data_t_now.humidity;
-        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "humidity:%d", humidity);
-        return std::to_string(humidity);
+        std::string humidity = std::to_string(Weather_data_t_now.humidity) + "%";
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "humidity:%s", humidity.c_str());
+        return humidity;
     }
 
     /*获取风速*/
@@ -251,8 +238,20 @@ namespace OHOS
     /*获取紫外线指数*/
     std::string WeatherModel::GetUVIndex()
     {
-        std::string uvIndex = std::to_string(Weather_data_t_now.uvIndex) + "%";
+        std::string uvIndex = std::to_string(Weather_data_t_now.uvIndex);
         WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "uvIndex:%s", uvIndex.c_str());
         return uvIndex;
     }
+
+    // 设置天气数据是否有效
+    void WeatherModel::SetWeatherDataIsValid(bool value)
+    {
+        WEATHER_DATA_VALID = value;
+    }
+
+    // 获取天气数据是否有效
+    bool WeatherModel::GetWeatherDataIsValid()
+    {
+        return WEATHER_DATA_VALID;
+    }
 }
\ No newline at end of file
index 58cf2a3..a697409 100644 (file)
@@ -103,9 +103,25 @@ namespace OHOS
         label->SetPosition(labelconfig.left, labelconfig.top, labelconfig.width, labelconfig.height); // 位置大小\r
         label->SetStyle(STYLE_TEXT_FONT, labelconfig.fontSize);                                       // 字体大小\r
         label->SetStyle(STYLE_LINE_HEIGHT, labelconfig.lineHeigh);                                    // 字体行高\r
-        label->SetText(labelconfig.text.c_str());                                                             // 内容\r
+        label->SetText(labelconfig.text.c_str());                                                     // 内容\r
+        label->SetLineBreakMode(labelconfig.lineBreakMode);                                           // 断行模式。\r
+        label->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);\r
+        label->SetFont(DEFAULT_VECTOR_FONT_FILENAME, labelconfig.fontSize);\r
+        return label;\r
+    }\r
+\r
+    UILabelExt *WeatherReportView::SetUpLabelExt(LabelConfig &labelconfig)\r
+    {\r
+        UILabelExt *label = new UILabelExt();\r
+        if (label == nullptr)\r
+        {\r
+            return nullptr;\r
+        }\r
+        label->SetPosition(labelconfig.left, labelconfig.top, labelconfig.width, labelconfig.height); // 位置大小\r
+        label->SetStyle(STYLE_TEXT_FONT, labelconfig.fontSize);                                       // 字体大小\r
+        label->SetStyle(STYLE_LINE_HEIGHT, labelconfig.lineHeigh);                                    // 字体行高\r
+        label->SetTextId(labelconfig.textId);                                                         // 内容\r
         label->SetLineBreakMode(labelconfig.lineBreakMode);                                           // 断行模式。\r
-        label->SetRollSpeed(40);\r
         label->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);\r
         label->SetFont(DEFAULT_VECTOR_FONT_FILENAME, labelconfig.fontSize);\r
         return label;\r
@@ -114,16 +130,17 @@ namespace OHOS
     bool WeatherReportView::WeatherReportViewLabelInit(void)\r
     {\r
         LabelConfig labelconfig = {\r
-            .left = 93,\r
+            .left = 83,\r
             .top = 52,\r
-            .width = 280,\r
-            .height = 47,\r
+            .width = 300,\r
+            .height = 35,\r
             .fontSize = 30,\r
             .lineHeigh = 35,\r
-            .text = "气象报告",\r
+            //.text = "气象报告",\r
+            .textId = STR_WEATHER_REPORT,\r
             .lineBreakMode = UILabel::LINE_BREAK_MARQUEE,\r
         };\r
-        title = SetUpLabel(labelconfig);\r
+        title = SetUpLabelExt(labelconfig);\r
         if (title == nullptr)\r
         {\r
             WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "WeatherReportView::title new fail!");\r
@@ -138,7 +155,7 @@ namespace OHOS
             .height = 50,\r
             .fontSize = 40,\r
             .lineHeigh = 50,\r
-            .text = p_WeatherModel->GetHumidity().c_str(),\r
+            .text = p_WeatherModel->GetUVIndex(), //紫外线强度\r
             .lineBreakMode = UILabel::LINE_BREAK_ELLIPSIS,\r
         };\r
         UV_Number = SetUpLabel(labelconfig);\r
@@ -149,7 +166,7 @@ namespace OHOS
         }\r
 \r
         labelconfig.left = 173;\r
-        labelconfig.text = p_WeatherModel->GetWindScale();\r
+        labelconfig.text = p_WeatherModel->GetWindScale();//风速\r
         WindSpeed_Number = SetUpLabel(labelconfig);\r
         if (WindSpeed_Number == nullptr)\r
         {\r
@@ -158,7 +175,7 @@ namespace OHOS
         }\r
 \r
         labelconfig.left = 323;\r
-        labelconfig.text = p_WeatherModel->GetUVIndex();\r
+        labelconfig.text = p_WeatherModel->GetHumidity().c_str(); //湿度\r
         Humidity_Number = SetUpLabel(labelconfig);\r
         if (Humidity_Number == nullptr)\r
         {\r
@@ -174,10 +191,11 @@ namespace OHOS
             .height = 35,\r
             .fontSize = 26,\r
             .lineHeigh = 35,\r
-            .text = "紫外线",\r
+            //.text = "紫外线",\r
+            .textId = STR_ULTRAVIOLET,\r
             .lineBreakMode = UILabel::LINE_BREAK_MARQUEE,\r
         };\r
-        UV = SetUpLabel(labelconfig);\r
+        UV = SetUpLabelExt(labelconfig);\r
         if (UV == nullptr)\r
         {\r
             WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "WeatherReportView::UV new fail!");\r
@@ -186,8 +204,9 @@ namespace OHOS
         UV->SetTextColor(Color::GetColorFromRGBA(0x99, 0x99, 0x99, 0xff));\r
 \r
         labelconfig.left = 173;\r
-        labelconfig.text = "风速";\r
-        WindSpeed = SetUpLabel(labelconfig);\r
+        //labelconfig.text = "风速";\r
+        labelconfig.textId = STR_WIND_SPEED;\r
+        WindSpeed = SetUpLabelExt(labelconfig);\r
         if (WindSpeed == nullptr)\r
         {\r
             WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "WeatherReportView::WindSpeed new fail!");\r
@@ -196,8 +215,9 @@ namespace OHOS
         WindSpeed->SetTextColor(Color::GetColorFromRGBA(0x99, 0x99, 0x99, 0xff));\r
 \r
         labelconfig.left = 323;\r
-        labelconfig.text = "湿度";\r
-        Humidity = SetUpLabel(labelconfig);\r
+        //labelconfig.text = "湿度";\r
+        labelconfig.textId = STR_HUMIDITY;\r
+        Humidity = SetUpLabelExt(labelconfig);\r
         if (Humidity == nullptr)\r
         {\r
             WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "WeatherReportView::Humidity new fail!");\r
index 837f631..243837e 100644 (file)
@@ -166,7 +166,6 @@ namespace OHOS
         label->SetText(text);
         label->SetLineBreakMode(UILabel::LINE_BREAK_MARQUEE);
         label->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);
-        label->SetRollSpeed(40);
         label->SetFont(DEFAULT_VECTOR_FONT_FILENAME, textfont);
         return label;
     }