1 /* 2 * Copyright (c) 2025-2025 Huawei Device Co., Ltd. 3 * Licensed under the Apache License, Version 2.0 (the "License"); 4 * you may not use this file except in compliance with the License. 5 * You may obtain a copy of the License at 6 * 7 * http://www.apache.org/licenses/LICENSE-2.0 8 * 9 * Unless required by applicable law or agreed to in writing, software 10 * distributed under the License is distributed on an "AS IS" BASIS, 11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 * See the License for the specific language governing permissions and 13 * limitations under the License. 14 */ 15 16 #ifndef OHOS_FLOATING_BALL_MANAGER_H 17 #define OHOS_FLOATING_BALL_MANAGER_H 18 19 20 #include "window.h" 21 #include "wm_common.h" 22 #include "floating_ball_controller.h" 23 24 namespace OHOS { 25 namespace Rosen { 26 class FloatingBallManager { 27 public: 28 FloatingBallManager() = default; 29 virtual ~FloatingBallManager() = default; 30 static bool HasActiveController(); 31 static bool IsActiveController(const wptr<FloatingBallController>& fbController); 32 static void SetActiveController(const sptr<FloatingBallController>& fbController); 33 static void RemoveActiveController(const wptr<FloatingBallController>& fbController); 34 35 static void DoActionClick(); 36 static void DoActionClose(); 37 static void DoDestroy(); 38 39 static void DoFbActionEvent(const std::string& actionName); 40 41 static bool IsSupportFloatingBall(); 42 43 private: GetActiveController()44 static sptr<FloatingBallController> GetActiveController() { return activeController_; } 45 46 // controller in use 47 static sptr<FloatingBallController> activeController_; 48 }; 49 } // namespace Rosen 50 } // namespace OHOS 51 #endif // OHOS_FLOATING_BALL_MANAGER_H