* @Author: luozheng 1732036298@qq.com
* @Date: 2024-03-01 15:10:34
* @LastEditors: luozheng 1732036298@qq.com
- * @LastEditTime: 2024-11-25 21:24:31
+ * @LastEditTime: 2024-12-25 11:33:45
* @FilePath:
* /FD230/code/sdk/application/wearable/fd230app/nativeui/main/include/MainPresenterSample.h
*/
void ProcessDataNotify(void);
void SetCircleProgress(void);
void SetCompassRotate(void);
+ void OpenCompassSensor(void);
+ void CloseCompassSensor(void);
KeyInputListener *keyActListener_{nullptr};
uint8_t state_ = UICheckBox::UICheckBoxState::MAX_STATUS_NUM;
int64_t playerCurrentTime_{0};
int64_t playerMusicDuration_{0};
int64_t playerProgressValue_{0};
- bool isCompassSensorOpened_{false};
+ bool isCompassSensorOpened_{false}; //指南针传感器是否已经打开
CardId previousCardId{WATCH_FACE};
int isPullDownPageView{false};//是否已经是在下拉界面
#include "PlayersModel.h"
#include "PlayersPresenter.h"
#include "CompassPresenter.h"
-#include "CompassModel.h"
+#include "compass/include/CompassModel.h"
#include "CompassCalibrationView.h"
#include "drag_event.h"
#include "graphic_service.h"
}
void MainPresenterSample::OnStop(void)
{
- if (isCompassSensorOpened_)
- {
- CompassModel::GetInstance()->CloseCompassSensor();
- }
Presenter<MainViewSample>::OnStop();
RootView::GetInstance()->ClearOnKeyActListener();
if (keyActListener_ != nullptr)
keyActListener_ = nullptr;
}
PullUpDown_StopTimer();
+ CloseCompassSensor(); //切换Slice时要关闭指南针传感器
}
bool MainPresenterSample::OnClick(UIView &view, const ClickEvent &event)
CardId cardId = view_->GetHorCurrentCard();
SetTaskPeroid(cardId);
- if (cardId == COMPASS)
- {
- if (!isCompassSensorOpened_)
- {
- CompassModel::GetInstance()->OpenCompassSensor();
- isCompassSensorOpened_ = true;
- ScreenAlwaysOnCtr(OPEN_SCREEN_ALWAYS_ON); //滑动到指南针页面时开启屏幕常亮
- }
- }
- else if (isCompassSensorOpened_)
- {
- CompassModel::GetInstance()->CloseCompassSensor();
- isCompassSensorOpened_ = false;
- ScreenAlwaysOnCtr(CANCEL_SCREEN_ALWAYS_ON); //滑动到指南针页面时取消屏幕常亮
- }
WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "OnSwipe OnSwipe");
return;
}
DetermineToRotate();
}
}
+
+ // 滑动到指南针卡片开启指南针传感器
+ void MainPresenterSample::OpenCompassSensor(void)
+ {
+ if (!isCompassSensorOpened_)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "OpenCompassSensor");
+ isCompassSensorOpened_ = true;
+ CompassModel::GetInstance()->OpenCompassSensor();
+ ScreenAlwaysOnCtr(OPEN_SCREEN_ALWAYS_ON); //滑动到指南针页面时开启屏幕常亮
+ }
+ }
+ // 关闭指南针传感器
+ void MainPresenterSample::CloseCompassSensor(void)
+ {
+ if(isCompassSensorOpened_)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "CloseCompassSensor");
+ isCompassSensorOpened_ = false;
+ CompassModel::GetInstance()->CloseCompassSensor();
+ ScreenAlwaysOnCtr(CANCEL_SCREEN_ALWAYS_ON); //滑动到指南针页面时取消屏幕常亮
+ }
+ }
/* --------------------------------- 主界面卡片功能 -------------------------------- */
void MainPresenterSample::Notify(void)
{
HeartModel::GetInstance()->Heart_Stop();
HeartModel::GetInstance()->Heart_Control(HeartState::End,HeartCheck::CARDCHECK); //主动检测心率
}
+ // 从指南针卡片跳转到其他卡片时切换到关闭长亮屏
+ if (previousCardId == COMPASS && currentCardId != COMPASS)
+ {
+ CloseCompassSensor();
+ }
// 从睡眠卡片跳转到其他卡片时切换到睡眠卡片主界面
if (previousCardId == SLEEP && currentCardId != SLEEP)
break;
case COMPASS:
+ OpenCompassSensor();
SetCompassRotate();
break;