已合并
add virtual HandleSensorChange #19203
add virtual HandleSensorChange #19203
已合并
wulong158创建于 5月28日
4 个文件变更+6-11
@@ -127,7 +127,6 @@ public:
127 FoldCreaseRegion GetLiveCreaseRegion() const;127 FoldCreaseRegion GetLiveCreaseRegion() const;
128 void GetAllCreaseRegion(std::vector<FoldCreaseRegionItem>& foldCreaseRegionItems) const;128 void GetAllCreaseRegion(std::vector<FoldCreaseRegionItem>& foldCreaseRegionItems) const;
129 virtual void SetMainScreenRegion(DMRect& mainScreenRegion) {};129 virtual void SetMainScreenRegion(DMRect& mainScreenRegion) {};
130- bool GetLockDisplayStatus() const;
131 void SetCurrentDisplayMode(FoldDisplayMode mode);130 void SetCurrentDisplayMode(FoldDisplayMode mode);
132 virtual void ChangeScreenPowerOnFold(const std::vector<std::pair<ScreenId,131 virtual void ChangeScreenPowerOnFold(const std::vector<std::pair<ScreenId,
133 ScreenPowerStatus>>& screenPowerTaskList);132 ScreenPowerStatus>>& screenPowerTaskList);
@@ -58,7 +58,7 @@ protected:
58 virtual bool IsGetFoldStatusByHalls(const SensorStatus& sensorStatus);58 virtual bool IsGetFoldStatusByHalls(const SensorStatus& sensorStatus);
59 virtual FoldStatus GetFoldStatusByHalls(const SensorStatus& sensorStatus);59 virtual FoldStatus GetFoldStatusByHalls(const SensorStatus& sensorStatus);
60 virtual ScreenAxis GetTentModeScreenAxis(const SensorStatus& sensorStatus);60 virtual ScreenAxis GetTentModeScreenAxis(const SensorStatus& sensorStatus);
61- void HandleSensorChange(FoldStatus nextStatus);61+ virtual void HandleSensorChange(FoldStatus nextStatus);
62 void UpdateFoldAlgorithmStrategy(const std::vector<ScreenAxis>& axis);62 void UpdateFoldAlgorithmStrategy(const std::vector<ScreenAxis>& axis);
63 void ReportTentStatusChange(ReportTentModeStatus tentStatus);63 void ReportTentStatusChange(ReportTentModeStatus tentStatus);
64 void SetTentMode(int tentType);64 void SetTentMode(int tentType);
@@ -67,6 +67,7 @@ protected:
67 SensorStatus currentSensorStatus_;67 SensorStatus currentSensorStatus_;
68 std::vector<FoldStatus> currentFoldStatus_;68 std::vector<FoldStatus> currentFoldStatus_;
69 int32_t tentModeType_ = 0;69 int32_t tentModeType_ = 0;
70+ FoldStatus globalFoldStatus_ = FoldStatus::UNKNOWN;
70 71 
71private:72private:
72 std::vector<std::string> getHallSwitchAppList();73 std::vector<std::string> getHallSwitchAppList();
@@ -77,7 +78,6 @@ private:
77 std::vector<int32_t> foldAlgorithmStrategy_;78 std::vector<int32_t> foldAlgorithmStrategy_;
78 class Impl;79 class Impl;
79 std::unique_ptr<Impl> pImpl_;80 std::unique_ptr<Impl> pImpl_;
80- FoldStatus globalFoldStatus_ = FoldStatus::UNKNOWN;
81 TaskSequenceProcess* taskProcess_;81 TaskSequenceProcess* taskProcess_;
82};82};
83 83 
@@ -672,6 +672,9 @@ void FoldScreenBasePolicy::ChangeScreenDisplayModeInner(FoldDisplayMode displayM
672 672 
673void FoldScreenBasePolicy::SendSensorResult(FoldStatus foldStatus)673void FoldScreenBasePolicy::SendSensorResult(FoldStatus foldStatus)
674{674{
675+ if (lockDisplayStatus_) {
676+ return;
677+ }
675 TLOGI(WmsLogTag::DMS, "SendSensorResult FoldStatus: %{public}d", foldStatus);678 TLOGI(WmsLogTag::DMS, "SendSensorResult FoldStatus: %{public}d", foldStatus);
676 FoldDisplayMode displayMode = GetModeMatchStatus();679 FoldDisplayMode displayMode = GetModeMatchStatus();
677 ChangeScreenDisplayMode(displayMode);680 ChangeScreenDisplayMode(displayMode);
@@ -989,11 +992,6 @@ FoldStatus FoldScreenBasePolicy::GetPhysicalFoldStatus()
989 return lastFoldStatus_;992 return lastFoldStatus_;
990}993}
991 994 
992-bool FoldScreenBasePolicy::GetLockDisplayStatus() const
993-{
994- return lockDisplayStatus_;
995-}
996- 
997void FoldScreenBasePolicy::SetCurrentDisplayMode(FoldDisplayMode mode)995void FoldScreenBasePolicy::SetCurrentDisplayMode(FoldDisplayMode mode)
998{996{
999 std::lock_guard<std::recursive_mutex> lock_mode(displayModeMutex_);997 std::lock_guard<std::recursive_mutex> lock_mode(displayModeMutex_);
@@ -241,9 +241,7 @@ void SensorFoldStateMgr::HandleSensorChange(FoldStatus nextStatus)
241 241 
242 FoldScreenBasePolicy::GetInstance().SetFoldStatus(globalFoldStatus_);242 FoldScreenBasePolicy::GetInstance().SetFoldStatus(globalFoldStatus_);
243 ScreenSessionManager::GetInstance().NotifyFoldStatusChanged(globalFoldStatus_);243 ScreenSessionManager::GetInstance().NotifyFoldStatusChanged(globalFoldStatus_);
244- if (!FoldScreenBasePolicy::GetInstance().GetLockDisplayStatus()) {244+ FoldScreenBasePolicy::GetInstance().SendSensorResult(globalFoldStatus_);
245- FoldScreenBasePolicy::GetInstance().SendSensorResult(globalFoldStatus_);
246- }
247 } else {245 } else {
248 TLOGD(WmsLogTag::DMS, "fold state doesn't change, foldState = %{public}d.", globalFoldStatus_);246 TLOGD(WmsLogTag::DMS, "fold state doesn't change, foldState = %{public}d.", globalFoldStatus_);
249 }247 }