主界面天气视图修改
authorluozheng <1732036298@qq.com>
Tue, 19 Mar 2024 03:12:29 +0000 (11:12 +0800)
committerluozheng <1732036298@qq.com>
Tue, 19 Mar 2024 03:12:29 +0000 (11:12 +0800)
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/WeatherControlView.h
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/WeatherReportView.cpp

index 04e1e83..4ca9875 100644 (file)
@@ -8,6 +8,14 @@
 namespace OHOS\r
 {\r
     static constexpr const char *MAIN_WEATHER_VIEW = "MainWeatherview";\r
+    class WeatherControlViewOnSwipeListener : public UISwipeView::OnSwipeListener\r
+    {\r
+    public:\r
+        WeatherControlViewOnSwipeListener(){}\r
+        ~WeatherControlViewOnSwipeListener(){}\r
+        void OnSwipe(UISwipeView &view) override;\r
+    };\r
+\r
     class MainWeatherView;\r
     class MainWeatherPresenter : public Presenter<MainWeatherView>,\r
                                  public UIView::OnClickListener,\r
@@ -32,7 +40,7 @@ namespace OHOS
         bool OnDrag(UIView &view, const DragEvent &event) override;\r
         bool OnDragEnd(UIView &view, const DragEvent &event) override;\r
         bool OnKeyAct(UIView &view, const KeyEvent &event) override; // 增加按键事件\r
-        void OnSwipe(UISwipeView& view) override;\r
+        void OnSwipe(UISwipeView &view) override;\r
     };\r
 } // namespace OHOS\r
 \r
index cbc2de4..5fab389 100644 (file)
@@ -16,7 +16,6 @@ namespace OHOS
         // FUTUREWEATHERVIEW,   // 未来七天天气视图\r
         MAX_WEATHERVIEW,\r
     } WeatherPageId;\r
-\r
     class MainWeatherPresenter;\r
     class MainWeatherView : public View<MainWeatherPresenter>\r
     {\r
@@ -25,7 +24,7 @@ namespace OHOS
         MainWeatherView();\r
         virtual ~MainWeatherView();\r
         static MainWeatherView *GetInstance(void);\r
-        UIViewGroup *MainWeatherViewInit(void);\r
+        UISwipeView *MainWeatherViewInit(void);\r
         void ClearAll(void);\r
         AppGroupView *WeatherViewPageInit(void);\r
         AppGroupView *WeatherReportViewPageInit(void);\r
index 488253a..13bc62e 100644 (file)
@@ -5,7 +5,7 @@
 #include "components/root_view.h"
 #include "components/ui_card_page.h"
 #include "wearable_log.h"
-#include "weather/include/WeatherView.h"
+#include "weather/include/MainWeatherView.h"
 namespace OHOS
 {
     class WeatherControlView : public UICardPage
@@ -19,7 +19,8 @@ namespace OHOS
 
     private:
         void ClearAll(void);
-        WeatherView *weatherView{nullptr};
+        MainWeatherView *mainWeatherView{nullptr};
+        UISwipeView::OnSwipeListener *weatherOnSwipeListener{nullptr};
         bool viewiInitStatus{false};
     };
 }
index 595311c..39553f8 100644 (file)
@@ -93,6 +93,20 @@ namespace OHOS
     void MainWeatherPresenter::OnSwipe(UISwipeView &view)\r
     {\r
         WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "MainWeatherPresenter::OnSwipe,current tab index = %d", view.GetCurrentPage());\r
-        //WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "the view index = %d,dragging direction = %d,current tab index = %d", view.GetViewIndex(), view.GetDirection(), view.GetCurrentPage());\r
+        // WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "the view index = %d,dragging direction = %d,current tab index = %d", view.GetViewIndex(), view.GetDirection(), view.GetCurrentPage());\r
+    }\r
+\r
+    void WeatherControlViewOnSwipeListener::OnSwipe(UISwipeView &view)\r
+    {\r
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "WeatherControlViewOnSwipeListener::OnSwipe,current tab index = %d", view.GetCurrentPage());\r
+        if (view.GetCurrentPage() == MAINWEATHERVIEW)\r
+        {\r
+            view.SetIntercept(false);\r
+        }\r
+        else if (view.GetCurrentPage() == WEATHERREPORTVIEW)\r
+        {\r
+            view.SetIntercept(true);\r
+        }\r
+        return;\r
     }\r
 }
\ No newline at end of file
index f40c0b7..8bb0759 100644 (file)
@@ -42,7 +42,7 @@ namespace OHOS
     /*\r
      * @brief 主天气页面视图初始化\r
      */\r
-    UIViewGroup *MainWeatherView::MainWeatherViewInit(void)\r
+    UISwipeView *MainWeatherView::MainWeatherViewInit(void)\r
     {\r
         WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "MainWeatherView::MainWeatherViewInit");\r
         weatherSwipeViewList = new UISwipeView(UISwipeView::VERTICAL);\r
@@ -55,6 +55,9 @@ namespace OHOS
         weatherSwipeViewList->SetStyle(STYLE_BACKGROUND_COLOR, Color::Black().full);\r
         weatherSwipeViewList->SetPosition(0, 0, HORIZONTAL_RESOLUTION, VERTICAL_RESOLUTION); // 0 : X; 0 : Y\r
         weatherSwipeViewList->SetAnimatorTime(50);                                           // 50:animator drag time(ms)\r
+        weatherSwipeViewList->SetViewId(MAIN_WEATHER_VIEW);\r
+        weatherSwipeViewList->SetDraggable(true);\r
+        weatherSwipeViewList->SetTouchable(true);\r
         for (uint16_t i = 0; i < maxPage; i++)\r
         {\r
             recordCard[i] = CreatePage(i);\r
@@ -66,36 +69,7 @@ namespace OHOS
             recordCard[i]->InitView(this);\r
             weatherSwipeViewList->Add(recordCard[i]);\r
         }\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 nullptr;\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 nullptr;\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 nullptr;\r
-        }\r
-\r
-        weatherSwipeViewList->SetOnClickListener(weatherOnClickListener);\r
-        weatherSwipeViewList->SetOnDragListener(weatherOnDragListener);\r
-        weatherSwipeViewList->SetOnSwipeListener(weatherOnSwipeListener);\r
-        weatherSwipeViewList->SetViewId(MAIN_WEATHER_VIEW);\r
-        weatherSwipeViewList->SetDraggable(true);\r
-        weatherSwipeViewList->SetTouchable(true);\r
         WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "MainWeatherView InitPage over!!");\r
-\r
         return weatherSwipeViewList;\r
     }\r
 \r
@@ -104,6 +78,33 @@ namespace OHOS
         View<MainWeatherPresenter>::OnStart();\r
         MainWeatherViewInit();\r
 \r
+        if (weatherSwipeViewList != 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
+\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
+            weatherSwipeViewList->SetOnClickListener(weatherOnClickListener);\r
+            weatherSwipeViewList->SetOnDragListener(weatherOnDragListener);\r
+            weatherSwipeViewList->SetOnSwipeListener(weatherOnSwipeListener);\r
+        }\r
         RootView::OnKeyActListener *keyactListener = (RootView::OnKeyActListener *)OHOS::MainWeatherPresenter::GetInstance();\r
         RootView::GetInstance()->SetOnKeyActListener(keyactListener);\r
     }\r
index 280d9da..f5311c9 100644 (file)
@@ -1,5 +1,5 @@
 #include "weather/include/WeatherControlView.h"
-
+#include "weather/include/MainWeatherPresenter.h"
 namespace OHOS
 {
     WeatherControlView::WeatherControlView()
@@ -19,10 +19,13 @@ namespace OHOS
         if (viewiInitStatus == true)
         {
             RemoveAll();
-            if (weatherView != nullptr)
+            if (mainWeatherView != nullptr)
             {
-                delete weatherView;
-                weatherView = nullptr;
+                delete weatherOnSwipeListener;
+                weatherOnSwipeListener = nullptr;
+
+                delete mainWeatherView;
+                mainWeatherView = nullptr;
             }
         }
     }
@@ -30,18 +33,26 @@ namespace OHOS
     bool WeatherControlView::InitView(void)
     {
         WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "WeatherControlView::InitView()");
-        weatherView = new WeatherView();
-        if (weatherView == nullptr)
+        mainWeatherView = new MainWeatherView();
+        if (mainWeatherView == nullptr)
         {
             WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "WeatherView::new mainweatherView fail!");
             return false;
         }
-        if (weatherView->InitPage() == false)
+        UISwipeView *weatherSwipView = mainWeatherView->MainWeatherViewInit();
+        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_LOGD(WEARABLE_LOG_MODULE_APP, "WeatherView->InitPage() == false!");
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "weatherOnSwipeListener new fail");
             return false;
         }
-        Add(weatherView);
+        weatherSwipView->SetOnSwipeListener(weatherOnSwipeListener);
+        Add(weatherSwipView);
         viewiInitStatus = true;
         return true;
     }
index 414d1dd..f8c449e 100644 (file)
@@ -18,7 +18,7 @@ namespace OHOS
 \r
     static constexpr char *UVPaths = "/user/res/weather/weather60x60gif/UV/";\r
     static constexpr char *WindSpeedPaths = "/user/res/weather/weather60x60gif/WindSpeed/";\r
-    static constexpr char *HumidityPaths ="/user/res/weather/weather60x60gif/Humidity/";\r
+    static constexpr char *HumidityPaths = "/user/res/weather/weather60x60gif/Humidity/";\r
 \r
     static WeatherReportView *g_pWeatherReportView{nullptr};\r
 \r
@@ -91,8 +91,11 @@ namespace OHOS
             }\r
 \r
             delete UVimageAnimatorInfo;\r
+            UVimageAnimatorInfo = nullptr;\r
             delete WindSpeedimageAnimatorInfo;\r
+            WindSpeedimageAnimatorInfo = nullptr;\r
             delete HumidityimageAnimatorInfo;\r
+            HumidityimageAnimatorInfo = nullptr;\r
         }\r
     }\r
 \r