1 /* 2 * Copyright (C) 2022 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 AAMS_ST_ABILITY_B1 17 #define AAMS_ST_ABILITY_B1 18 19 #include <string> 20 #include "ability_loader.h" 21 #include "accessibility_element_operator.h" 22 #include "accessibility_state_event.h" 23 #include "accessible_ability.h" 24 #include "key_event.h" 25 26 namespace OHOS { 27 namespace AppExecFwk { 28 class AccessibleAbilityListenerTest; 29 30 class AamsStAbilityB1 : public Ability { 31 public: 32 // aams 33 void Interrupt(); 34 void RegisterInteractionOperation(); 35 void DeregisterInteractionOperation(); 36 void GetAbilityList(); 37 void GetSuggestedInterval(); 38 void GetAccessibilityCaptionProperties(); 39 void SendEventWithType(); 40 void SendEvent(); 41 // state callback 42 void SubscribeStateObserver(); 43 void UnsubscribeStateObserver(); 44 void UnsubscribeStateObserverEventType(); 45 46 // AA->AAMS 47 void RegisterListenerToAA(); 48 void ConnectToAAMS(); 49 void GetRootElementInfo(); 50 std::string shouldReturn; 51 protected: 52 virtual void OnStart(const Want &want) override; 53 virtual void OnStop() override; 54 virtual void OnActive() override; 55 virtual void OnInactive() override; 56 virtual void OnBackground() override; 57 virtual void OnForeground(const Want &want) override; 58 virtual void OnNewWant(const Want &want) override; 59 private: 60 void Clear(); 61 void GetWantInfo(const Want &want); 62 63 std::string targetBundle; 64 std::string targetAbility; 65 66 std::shared_ptr<AccessibleAbilityListenerTest> listener_ = nullptr; 67 }; 68 69 class AccessibilityInteractionOperationTest : public Accessibility::AccessibilityInteractionOperation { 70 public: AccessibilityInteractionOperationTest()71 AccessibilityInteractionOperationTest() {} 72 virtual ~AccessibilityInteractionOperationTest() = default; 73 void SearchElementInfoByAccessibilityId(const long elementId, 74 const int requestId, Accessibility::AccessibilityInteractionOperationCallback &callback, const int mode)override; 75 void SearchElementInfosByText(const long elementId, const std::string &text, 76 const int requestId, Accessibility::AccessibilityInteractionOperationCallback &callback)override; 77 void FindFocusedElementInfo(const long elementId, const int focusType, const int requestId, 78 Accessibility::AccessibilityInteractionOperationCallback &callback)override; 79 void FocusMoveSearch(const long elementId, const int direction, const int requestId, 80 Accessibility::AccessibilityInteractionOperationCallback &callback)override; 81 void PerformAction(const long elementId, const int action, const std::map<std::string, std::string> actionArguments, 82 const int requestId, Accessibility::AccessibilityInteractionOperationCallback &callback)override; 83 void ClearFocus()override; 84 void OutsideTouch()override; 85 }; 86 87 class AccessibilityStateObserverTest : public Accessibility::AccessibilityStateObserver { 88 public: AccessibilityStateObserverTest()89 AccessibilityStateObserverTest() {} 90 virtual ~AccessibilityStateObserverTest() = default; 91 void OnStateChanged(const Accessibility::AccessibilityStateEvent& stateEvent) override; 92 }; 93 94 class AccessibleAbilityListenerTest : public Accessibility::AccessibleAbilityListener { 95 public: AccessibleAbilityListenerTest()96 AccessibleAbilityListenerTest() {} ~AccessibleAbilityListenerTest()97 ~AccessibleAbilityListenerTest() {} 98 99 void OnAbilityConnected() override; 100 void OnAccessibilityEvent(const Accessibility::AccessibilityEventInfo& eventInfo) override; 101 void OnGesture(uint32_t gestureId) override; 102 void OnInterrupt() override; 103 bool OnKeyPressEvent(const MMI::KeyEvent& keyEvent) override; 104 105 private: 106 std::shared_ptr<AamsStAbilityB1> aamsStAbilityB1_ = std::make_shared<AamsStAbilityB1>(); 107 }; 108 } // namespace AppExecFwk 109 } // namespace OHOS 110 #endif // AAMS_ST_ABILITY_B1