From: luozheng <1732036298@qq.com> Date: Tue, 19 Mar 2024 03:12:29 +0000 (+0800) Subject: 主界面天气视图修改 X-Git-Tag: release_V1.2.70_20241020_135402~1274^2~5 X-Git-Url: http://git.snicker.com.cn/Users/apple/Desktop/static/gitweb.css?a=commitdiff_plain;h=fe370e40fd02c2a0ce9db81c9505f8bd2589adf3;p=mirrors%2FFD230.git 主界面天气视图修改 --- diff --git a/code/sdk/application/wearable/fd230app/nativeui/weather/include/MainWeatherPresenter.h b/code/sdk/application/wearable/fd230app/nativeui/weather/include/MainWeatherPresenter.h index 04e1e8302..4ca98759e 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/weather/include/MainWeatherPresenter.h +++ b/code/sdk/application/wearable/fd230app/nativeui/weather/include/MainWeatherPresenter.h @@ -8,6 +8,14 @@ namespace OHOS { static constexpr const char *MAIN_WEATHER_VIEW = "MainWeatherview"; + class WeatherControlViewOnSwipeListener : public UISwipeView::OnSwipeListener + { + public: + WeatherControlViewOnSwipeListener(){} + ~WeatherControlViewOnSwipeListener(){} + void OnSwipe(UISwipeView &view) override; + }; + class MainWeatherView; class MainWeatherPresenter : public Presenter, public UIView::OnClickListener, @@ -32,7 +40,7 @@ namespace OHOS bool OnDrag(UIView &view, const DragEvent &event) override; bool OnDragEnd(UIView &view, const DragEvent &event) override; bool OnKeyAct(UIView &view, const KeyEvent &event) override; // 增加按键事件 - void OnSwipe(UISwipeView& view) override; + void OnSwipe(UISwipeView &view) override; }; } // namespace OHOS 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 cbc2de4ef..5fab389cb 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/weather/include/MainWeatherView.h +++ b/code/sdk/application/wearable/fd230app/nativeui/weather/include/MainWeatherView.h @@ -16,7 +16,6 @@ namespace OHOS // FUTUREWEATHERVIEW, // 未来七天天气视图 MAX_WEATHERVIEW, } WeatherPageId; - class MainWeatherPresenter; class MainWeatherView : public View { @@ -25,7 +24,7 @@ namespace OHOS MainWeatherView(); virtual ~MainWeatherView(); static MainWeatherView *GetInstance(void); - UIViewGroup *MainWeatherViewInit(void); + UISwipeView *MainWeatherViewInit(void); void ClearAll(void); AppGroupView *WeatherViewPageInit(void); AppGroupView *WeatherReportViewPageInit(void); diff --git a/code/sdk/application/wearable/fd230app/nativeui/weather/include/WeatherControlView.h b/code/sdk/application/wearable/fd230app/nativeui/weather/include/WeatherControlView.h index 488253a81..13bc62ea7 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/weather/include/WeatherControlView.h +++ b/code/sdk/application/wearable/fd230app/nativeui/weather/include/WeatherControlView.h @@ -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}; }; } 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 595311ce8..39553f891 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/weather/src/MainWeatherPresenter.cpp +++ b/code/sdk/application/wearable/fd230app/nativeui/weather/src/MainWeatherPresenter.cpp @@ -93,6 +93,20 @@ namespace OHOS void MainWeatherPresenter::OnSwipe(UISwipeView &view) { WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "MainWeatherPresenter::OnSwipe,current tab index = %d", view.GetCurrentPage()); - //WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "the view index = %d,dragging direction = %d,current tab index = %d", view.GetViewIndex(), view.GetDirection(), view.GetCurrentPage()); + // WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "the view index = %d,dragging direction = %d,current tab index = %d", view.GetViewIndex(), view.GetDirection(), view.GetCurrentPage()); + } + + void WeatherControlViewOnSwipeListener::OnSwipe(UISwipeView &view) + { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "WeatherControlViewOnSwipeListener::OnSwipe,current tab index = %d", view.GetCurrentPage()); + if (view.GetCurrentPage() == MAINWEATHERVIEW) + { + view.SetIntercept(false); + } + else if (view.GetCurrentPage() == WEATHERREPORTVIEW) + { + view.SetIntercept(true); + } + return; } } \ No newline at end of file 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 f40c0b712..8bb07596c 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/weather/src/MainWeatherView.cpp +++ b/code/sdk/application/wearable/fd230app/nativeui/weather/src/MainWeatherView.cpp @@ -42,7 +42,7 @@ namespace OHOS /* * @brief 主天气页面视图初始化 */ - UIViewGroup *MainWeatherView::MainWeatherViewInit(void) + UISwipeView *MainWeatherView::MainWeatherViewInit(void) { WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "MainWeatherView::MainWeatherViewInit"); weatherSwipeViewList = new UISwipeView(UISwipeView::VERTICAL); @@ -55,6 +55,9 @@ namespace OHOS weatherSwipeViewList->SetStyle(STYLE_BACKGROUND_COLOR, Color::Black().full); weatherSwipeViewList->SetPosition(0, 0, HORIZONTAL_RESOLUTION, VERTICAL_RESOLUTION); // 0 : X; 0 : Y weatherSwipeViewList->SetAnimatorTime(50); // 50:animator drag time(ms) + weatherSwipeViewList->SetViewId(MAIN_WEATHER_VIEW); + weatherSwipeViewList->SetDraggable(true); + weatherSwipeViewList->SetTouchable(true); for (uint16_t i = 0; i < maxPage; i++) { recordCard[i] = CreatePage(i); @@ -66,36 +69,7 @@ namespace OHOS recordCard[i]->InitView(this); weatherSwipeViewList->Add(recordCard[i]); } - - UIView::OnClickListener *weatherOnClickListener = (UIView::OnClickListener *)OHOS::MainWeatherPresenter::GetInstance(); - if (weatherOnClickListener == nullptr) - { - WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "weatherOnClickListener new fail"); - return nullptr; - } - - UIView::OnDragListener *weatherOnDragListener = (UIView::OnDragListener *)OHOS::MainWeatherPresenter::GetInstance(); - if (weatherOnDragListener == nullptr) - { - WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "weatherOnDragListener new fail"); - return nullptr; - } - - UISwipeView::OnSwipeListener *weatherOnSwipeListener = (UISwipeView::OnSwipeListener *)OHOS::MainWeatherPresenter::GetInstance(); - if (weatherOnSwipeListener == nullptr) - { - WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "weatherOnSwipeListener new fail"); - return nullptr; - } - - weatherSwipeViewList->SetOnClickListener(weatherOnClickListener); - weatherSwipeViewList->SetOnDragListener(weatherOnDragListener); - weatherSwipeViewList->SetOnSwipeListener(weatherOnSwipeListener); - weatherSwipeViewList->SetViewId(MAIN_WEATHER_VIEW); - weatherSwipeViewList->SetDraggable(true); - weatherSwipeViewList->SetTouchable(true); WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "MainWeatherView InitPage over!!"); - return weatherSwipeViewList; } @@ -104,6 +78,33 @@ namespace OHOS 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; + } + + UIView::OnDragListener *weatherOnDragListener = (UIView::OnDragListener *)OHOS::MainWeatherPresenter::GetInstance(); + if (weatherOnDragListener == nullptr) + { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "weatherOnDragListener new fail"); + return; + } + + UISwipeView::OnSwipeListener *weatherOnSwipeListener = (UISwipeView::OnSwipeListener *)OHOS::MainWeatherPresenter::GetInstance(); + if (weatherOnSwipeListener == nullptr) + { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "weatherOnSwipeListener new fail"); + return; + } + + weatherSwipeViewList->SetOnClickListener(weatherOnClickListener); + weatherSwipeViewList->SetOnDragListener(weatherOnDragListener); + weatherSwipeViewList->SetOnSwipeListener(weatherOnSwipeListener); + } RootView::OnKeyActListener *keyactListener = (RootView::OnKeyActListener *)OHOS::MainWeatherPresenter::GetInstance(); RootView::GetInstance()->SetOnKeyActListener(keyactListener); } diff --git a/code/sdk/application/wearable/fd230app/nativeui/weather/src/WeatherControlView.cpp b/code/sdk/application/wearable/fd230app/nativeui/weather/src/WeatherControlView.cpp index 280d9da57..f5311c9fc 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/weather/src/WeatherControlView.cpp +++ b/code/sdk/application/wearable/fd230app/nativeui/weather/src/WeatherControlView.cpp @@ -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(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; } 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 414d1ddee..f8c449e81 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/weather/src/WeatherReportView.cpp +++ b/code/sdk/application/wearable/fd230app/nativeui/weather/src/WeatherReportView.cpp @@ -18,7 +18,7 @@ namespace OHOS 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 char *HumidityPaths = "/user/res/weather/weather60x60gif/Humidity/"; static WeatherReportView *g_pWeatherReportView{nullptr}; @@ -91,8 +91,11 @@ namespace OHOS } delete UVimageAnimatorInfo; + UVimageAnimatorInfo = nullptr; delete WindSpeedimageAnimatorInfo; + WindSpeedimageAnimatorInfo = nullptr; delete HumidityimageAnimatorInfo; + HumidityimageAnimatorInfo = nullptr; } }