#include "CompassPresenter.h"
#include "CompassModel.h"
#include "CompassCalibrationView.h"
+#include "KeyInputListener.h"
namespace OHOS {
class CompassView;
-class MainCompassPresenter : public Presenter<CompassView>, public CompassPresenter,
+class MainCompassPresenter : public Presenter<CompassView>, public CompassPresenter, public RootView::OnKeyActListener,
public ModelListenerSample, public UIView::OnDragListener {
public:
MainCompassPresenter();
static MainCompassPresenter *GetInstance(void);
bool OnDrag(UIView& view, const DragEvent& event) override;
+ bool OnKeyAct(UIView &view, const KeyEvent &event) override; // 增加按键事件
virtual void Notify() override;
};
}
#include "MainCompassPresenter.h"
#include "MainCompassView.h"
#include "wearable_log.h"
-
+#include "common/key_code.h"
namespace OHOS {
static MainCompassPresenter *g_pMainView = nullptr;
return true;
}
+// 增加按键事件
+bool MainCompassPresenter::OnKeyAct(UIView &view, const KeyEvent &event)
+{
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "MainCompassPresenter::OnKeyAct");
+ uint16 keyID = event.GetKeyId();
+ //如果是power键就返回上一级
+ if (keyID == static_cast<uint16_t>(ZliteKeyCode::ZLITE_KEY_POWER))
+ {
+ uint16_t preSlice = NativeAbility::GetInstance().GetPreSliceId();
+ NativeAbility::GetInstance().ChangeSlice(preSlice);
+ }
+ return true;
+}
void MainCompassPresenter::Notify()
{
compassCalibrationView->SetVisible(false);
}
CompassModel::GetInstance()->OpenCompassSensor();
+
+ // 增加按键监听
+ RootView::OnKeyActListener *keyactListener = (RootView::OnKeyActListener *)OHOS::MainCompassPresenter::GetInstance();
+ RootView::GetInstance()->SetOnKeyActListener(keyactListener);
}
void MainCompassView::OnSetUpView()
#include "Presenter.h"
#include "components/ui_view.h"
#include "KeyInputListener.h"
-#include "common/key_code.h"
namespace OHOS
{
#include "SettingModel.h"
#include "SettingPresenter.h"
#include "RebootModel.h"
+#include "common/key_code.h"
namespace OHOS
{
(event.GetDeltaX() > X_DRAG_OFFSET) && (event.GetDeltaX() > (DOUBLES * MATH_ABS(event.GetDeltaY()))))
{
WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "SettingPresenter::OnDrag ChangeSlice(VIEW_APPLIST)");
- NativeAbility::GetInstance().ChangeSlice(VIEW_APPLIST);
+ /*
+ GetPreSliceId作用:是从已存储的切片中获取上一个切片的ID,并且在切片数小于2的情况下返回一个无效的切片ID。
+ */
+ uint16_t preSlice = NativeAbility::GetInstance().GetPreSliceId();
+ if(preSlice == VIEW_APPLIST){
+ NativeAbility::GetInstance().ChangeSlice(preSlice);
+ }
+ else
+ {
+ NativeAbility::GetInstance().ChangeSlice(VIEW_MAIN_SAMPLE);
+ }
+
}
return false;
}
// 增加按键事件
bool SettingPresenter::OnKeyAct(UIView &view, const KeyEvent &event)
{
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "SettingPresenter::OnKeyAct");
uint16 keyID = event.GetKeyId();
- WEARABLE_LOGD("", "into key! keyID %u\n", keyID);
-#if 0
+ printf("%d %s %d\n",keyID,__FUNCTION__,__LINE__);
//如果是power键就返回上一级
if (keyID == static_cast<uint16_t>(ZliteKeyCode::ZLITE_KEY_POWER))
{
uint16_t preSlice = NativeAbility::GetInstance().GetPreSliceId();
- NativeAbility::GetInstance().ChangeSlice(VIEW_APPLIST);
+ NativeAbility::GetInstance().ChangeSlice(preSlice);
}
-#endif
- // 目前只有一个按键。直接切换
- uint16_t preSlice = NativeAbility::GetInstance().GetPreSliceId();
- NativeAbility::GetInstance().ChangeSlice(preSlice);
return true;
}
scrollView->Add(title);
scrollView->Add(contentList);
RootView::GetInstance()->Add(scrollView);
+
contentList->SetAdapter(listAdapter);
Draw();
{
WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "SettingView::OnStop");
View<SettingPresenter>::OnStop();
- if (container_ != nullptr)
- {
- container_->RemoveAll();
- delete container_;
- container_ = nullptr;
- }
RootView::GetInstance()->ClearOnKeyActListener();
RootView::GetInstance()->RemoveAll();
return;
\r
#include "Presenter.h"\r
#include "MainWeatherView.h"\r
-\r
+#include "KeyInputListener.h"\r
/*主天气视图*/\r
namespace OHOS\r
{\r
class MainWeatherView;\r
-\r
class MainWeatherPresenter : public Presenter<MainWeatherView>,\r
public UIView::OnClickListener,\r
+ public RootView::OnKeyActListener,\r
public UIView::OnDragListener\r
{\r
public:\r
// 因为继承了OnClickListener,所以有OnClick属性,至于参数,原函数也这样直接继承;\r
bool OnClick(UIView &view, const ClickEvent &event) override;\r
bool OnDrag(UIView &view, const DragEvent &event) override;\r
+ bool OnKeyAct(UIView &view, const KeyEvent &event) override; // 增加按键事件\r
};\r
} // namespace OHOS\r
\r
UILabel *label1_ = nullptr;\r
UILabel *label2_ = nullptr;\r
UIImageView *image1_ = nullptr;\r
- UILabel *label3_ = nullptr;\r
+ UILabel *showWeatherDescriptionLabel = nullptr;\r
UILabel *label4_ = nullptr;\r
UILabel *label5_ = nullptr;\r
UIImageAnimatorView *imageAnimator1_ = nullptr;\r
#include "AppViewIDs.h"\r
#include "NativeAbility.h"\r
#include "weather/include/MainWeatherPresenter.h"\r
-\r
+#include "common/key_code.h"\r
namespace OHOS\r
{\r
\r
NativeAbility::GetInstance().ChangeSlice(VIEW_APPLIST);\r
return true;\r
}\r
- else if (event.GetDragDirection() == DragEvent::DIRECTION_BOTTOM_TO_TOP)\r
- {\r
- NativeAbility::GetInstance().ChangeSlice(VIEW_WEATHER_REPORT); // 主天气界面从下往上滑进入气象报告界面\r
- return true;\r
- }\r
+ // else if (event.GetDragDirection() == DragEvent::DIRECTION_BOTTOM_TO_TOP)\r
+ // {\r
+ // NativeAbility::GetInstance().ChangeSlice(VIEW_WEATHER_REPORT); // 主天气界面从下往上滑进入气象报告界面\r
+ // return true;\r
+ // }\r
return false;\r
}\r
\r
// if (strcmp(view.GetViewId(), 控件ID) == 0)\r
return true;\r
}\r
+\r
+ // 增加按键事件\r
+ bool MainWeatherPresenter::OnKeyAct(UIView &view, const KeyEvent &event)\r
+ {\r
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "SettingPresenter::OnKeyAct");\r
+ uint16 keyID = event.GetKeyId();\r
+ //如果是power键就返回上一级\r
+ if (keyID == static_cast<uint16_t>(ZliteKeyCode::ZLITE_KEY_POWER))\r
+ {\r
+ uint16_t preSlice = NativeAbility::GetInstance().GetPreSliceId();\r
+ NativeAbility::GetInstance().ChangeSlice(preSlice);\r
+ }\r
+ return true;\r
+ }\r
}
\ No newline at end of file
label2_ = InitLabel(249, 126, Temperature.c_str(), "label2", 100, 125);\r
scrollView1_->Add(label2_);\r
/* -------------------------------------------------------------------------- */\r
- label3_ = InitLabel(111, 264, WeatherDescription.c_str(), "label3", 35, 41);\r
- scrollView1_->Add(label3_);\r
+ showWeatherDescriptionLabel = new UILabel();\r
+ if (showWeatherDescriptionLabel == nullptr)\r
+ {\r
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "WeatherView::new showWeatherDescriptionLabel fail!");\r
+ return ;\r
+ }\r
+ showWeatherDescriptionLabel->SetPosition(83, 264,300,40);\r
+ showWeatherDescriptionLabel->SetViewId("showWeatherDescriptionLabel");\r
+ showWeatherDescriptionLabel->SetStyle(STYLE_TEXT_FONT, 35);\r
+ showWeatherDescriptionLabel->SetStyle(STYLE_LINE_HEIGHT, 41);\r
+ showWeatherDescriptionLabel->SetText(WeatherDescription.c_str());\r
+ showWeatherDescriptionLabel->SetLineBreakMode(UILabel::LINE_BREAK_WRAP);\r
+ showWeatherDescriptionLabel->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);\r
+ showWeatherDescriptionLabel->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 35);\r
+ scrollView1_->Add(showWeatherDescriptionLabel);\r
/* -------------------------------------------------------------------------- */\r
label4_ = InitLabel(155, 330, WeatherArea.c_str(), "label4", 26, 30);\r
label4_->SetTextColor(Color::GetColorFromRGBA(0x99, 0x99, 0x99, 0xff));\r
delete image1_;\r
image1_ = nullptr;\r
}\r
- if (label3_ != nullptr)\r
+ if (showWeatherDescriptionLabel != nullptr)\r
{\r
- delete label3_;\r
- label3_ = nullptr;\r
+ delete showWeatherDescriptionLabel;\r
+ showWeatherDescriptionLabel = nullptr;\r
}\r
if (label4_ != nullptr)\r
{\r
}\r
PreLoad();\r
RootView::GetInstance()->Add(container_);\r
+ // 增加按键监听\r
+ RootView::OnKeyActListener *keyactListener = (RootView::OnKeyActListener *)OHOS::MainWeatherPresenter::GetInstance();\r
+ RootView::GetInstance()->SetOnKeyActListener(keyactListener);\r
}\r
\r
void MainWeatherView::OnSetUpView()\r
\r
void MainWeatherView::OnStop()\r
{\r
-\r
View<MainWeatherPresenter>::OnStop();\r
+ RootView::GetInstance()->ClearOnKeyActListener();\r
RootView::GetInstance()->RemoveAll();\r
return;\r
}\r
return false;
}
/* -------------------------------------------------------------------------- */
- UILabel *showWeatherDescriptionLabel = new UILabel();
+ showWeatherDescriptionLabel = new UILabel();
showWeatherDescriptionLabel->SetPosition(83, 264,300,40);
showWeatherDescriptionLabel->SetViewId("showWeatherDescriptionLabel");
showWeatherDescriptionLabel->SetStyle(STYLE_TEXT_FONT, 35);