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
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
// FUTUREWEATHERVIEW, // 未来七天天气视图\r
MAX_WEATHERVIEW,\r
} WeatherPageId;\r
-\r
class MainWeatherPresenter;\r
class MainWeatherView : public View<MainWeatherPresenter>\r
{\r
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
#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
private:
void ClearAll(void);
- WeatherView *weatherView{nullptr};
+ MainWeatherView *mainWeatherView{nullptr};
+ UISwipeView::OnSwipeListener *weatherOnSwipeListener{nullptr};
bool viewiInitStatus{false};
};
}
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
/*\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
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
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
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
#include "weather/include/WeatherControlView.h"
-
+#include "weather/include/MainWeatherPresenter.h"
namespace OHOS
{
WeatherControlView::WeatherControlView()
if (viewiInitStatus == true)
{
RemoveAll();
- if (weatherView != nullptr)
+ if (mainWeatherView != nullptr)
{
- delete weatherView;
- weatherView = nullptr;
+ delete weatherOnSwipeListener;
+ weatherOnSwipeListener = nullptr;
+
+ delete mainWeatherView;
+ mainWeatherView = nullptr;
}
}
}
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;
}
\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
}\r
\r
delete UVimageAnimatorInfo;\r
+ UVimageAnimatorInfo = nullptr;\r
delete WindSpeedimageAnimatorInfo;\r
+ WindSpeedimageAnimatorInfo = nullptr;\r
delete HumidityimageAnimatorInfo;\r
+ HumidityimageAnimatorInfo = nullptr;\r
}\r
}\r
\r