199552fe9Sopenharmony_ci/* 299552fe9Sopenharmony_ci * Copyright (c) 2023 Huawei Device Co., Ltd. 399552fe9Sopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License"); 499552fe9Sopenharmony_ci * you may not use this file except in compliance with the License. 599552fe9Sopenharmony_ci * You may obtain a copy of the License at 699552fe9Sopenharmony_ci * 799552fe9Sopenharmony_ci * http://www.apache.org/licenses/LICENSE-2.0 899552fe9Sopenharmony_ci * 999552fe9Sopenharmony_ci * Unless required by applicable law or agreed to in writing, software 1099552fe9Sopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS, 1199552fe9Sopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 1299552fe9Sopenharmony_ci * See the License for the specific language governing permissions and 1399552fe9Sopenharmony_ci * limitations under the License. 1499552fe9Sopenharmony_ci */ 1599552fe9Sopenharmony_ci#ifndef FOUNDATION_RESOURCESCHEDULE_STANDBY_SERVICE_SERVICES_CORE_INCLUDE_SLEEP_STATE_H 1699552fe9Sopenharmony_ci#define FOUNDATION_RESOURCESCHEDULE_STANDBY_SERVICE_SERVICES_CORE_INCLUDE_SLEEP_STATE_H 1799552fe9Sopenharmony_ci 1899552fe9Sopenharmony_ci#include "base_state.h" 1999552fe9Sopenharmony_ci 2099552fe9Sopenharmony_cinamespace OHOS { 2199552fe9Sopenharmony_cinamespace DevStandbyMgr { 2299552fe9Sopenharmony_ciclass IStateManagerAdapter; 2399552fe9Sopenharmony_ciclass SleepState : public BaseState, public StateWithMaint, public std::enable_shared_from_this<SleepState> { 2499552fe9Sopenharmony_cipublic: 2599552fe9Sopenharmony_ci SleepState(uint32_t curState, uint32_t curPhase, const std::shared_ptr<IStateManagerAdapter>& 2699552fe9Sopenharmony_ci stateManager, std::shared_ptr<AppExecFwk::EventHandler>& handler); 2799552fe9Sopenharmony_ci ErrCode Init(const std::shared_ptr<BaseState>& statePtr) override; 2899552fe9Sopenharmony_ci ErrCode UnInit() override; 2999552fe9Sopenharmony_ci ErrCode BeginState() override; 3099552fe9Sopenharmony_ci ErrCode EndState() override; 3199552fe9Sopenharmony_ci bool CheckTransitionValid(uint32_t nextState) override; 3299552fe9Sopenharmony_ci void EndEvalCurrentState(bool evalResult) override; 3399552fe9Sopenharmony_ci void ShellDump(const std::vector<std::string>& argsInStr, std::string& result) override; 3499552fe9Sopenharmony_ciprotected: 3599552fe9Sopenharmony_ci bool IsInFinalPhase() override; 3699552fe9Sopenharmony_ci virtual void CheckScrenOffHalfHour(); 3799552fe9Sopenharmony_ciprivate: 3899552fe9Sopenharmony_ci void StartPeriodlyMotionDetection(); 3999552fe9Sopenharmony_ci void TryToEnterNextPhase(const std::shared_ptr<IStateManagerAdapter>& stateManagerPtr, 4099552fe9Sopenharmony_ci int32_t retryTimeOut); 4199552fe9Sopenharmony_ci void SetPhaseTransitOrRepeatedTask(); 4299552fe9Sopenharmony_ciprivate: 4399552fe9Sopenharmony_ci bool isRepeatedDetection_ {false}; 4499552fe9Sopenharmony_ci uint64_t repeatedDetectionTimerId_ {0}; 4599552fe9Sopenharmony_ci}; 4699552fe9Sopenharmony_ci} // namespace DevStandbyMgr 4799552fe9Sopenharmony_ci} // namespace OHOS 4899552fe9Sopenharmony_ci#endif // FOUNDATION_RESOURCESCHEDULE_STANDBY_SERVICE_SERVICES_CORE_INCLUDE_SLEEP_STATE_H