• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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 OHOS_ABILITY_RUNTIME_ACCESSIBILITY_ABILITY_COMMAND_H
17 #define OHOS_ABILITY_RUNTIME_ACCESSIBILITY_ABILITY_COMMAND_H
18 
19 #include "ability_command.h"
20 #include "ability_manager_interface.h"
21 #include "accessibility_ability_info.h"
22 #include "accessibility_system_ability_client.h"
23 #include "shell_command.h"
24 
25 namespace OHOS {
26 namespace AAFwk {
27 struct AccessibilityCommandArgument {
28     int32_t bundleArgumentNum = 0;
29     int32_t abilityArgumentNum = 0;
30     int32_t capabilityNamesArgumentNum = 0;
31     int32_t unknownArgumentNum = 0;
32     int32_t setArgumentNum = 0;
33     std::vector<std::string> unknownArguments;
34     std::string command = "";
35     std::string bundleName = "";
36     std::string abilityName = "";
37     std::string capabilityNames = "";
38     std::string value = "";
39 };
40 
41 class AccessibilityAbilityShellCommand : public ShellCommand {
42 public:
43     AccessibilityAbilityShellCommand(int argc, char *argv[]);
~AccessibilityAbilityShellCommand()44     ~AccessibilityAbilityShellCommand() override
45     {}
46 
47 private:
48     ErrCode CreateCommandMap() override;
49     ErrCode init() override;
50     ErrCode CreateMessageMap() override;
51     ErrCode RunAsHelpCommand();
52     ErrCode RunAsEnableAbility();
53     ErrCode RunAsDisableAbility();
54     ErrCode RunAsGetEnabledAbilities();
55     ErrCode RunAsGetInstalledAbilities();
56 
57     ErrCode MakeEnableCommandArgumentFromCmd(AccessibilityCommandArgument &argument);
58     ErrCode MakeDisableCommandArgumentFromCmd(AccessibilityCommandArgument &argument);
59     const std::vector<std::string> GetEnabledAbilities();
60     const std::vector<Accessibility::AccessibilityAbilityInfo> GetInstalledAbilities();
61     bool CheckBundleArgument(
62         const AccessibilityCommandArgument &argument,
63         std::string &resultMessage);
64     bool CheckAbilityArgument(
65         const AccessibilityCommandArgument &argument,
66         std::string &resultMessage);
67     bool CheckCapabilitiesArgument(
68         const AccessibilityCommandArgument &argument,
69         std::vector<Accessibility::AccessibilityAbilityInfo> &installedAbilities,
70         std::string &resultMessage);
71     bool CheckParamValidity(
72         const AccessibilityCommandArgument &argument,
73         std::vector<Accessibility::AccessibilityAbilityInfo> &installedAbilities,
74         std::string &resultMessage);
75     ErrCode CheckEnableCommandArgument(const AccessibilityCommandArgument &argument, std::string &resultMessage);
76     ErrCode CheckDisableCommandArgument(const AccessibilityCommandArgument &argument, std::string &resultMessage);
77     ErrCode CheckCommandArgument(const AccessibilityCommandArgument &argument, std::string &resultMessage);
78     ErrCode CheckSetCommandArgument(const AccessibilityCommandArgument &argument, std::string &resultMessage);
79 
80     ErrCode RunAsSetScreenMagnificationState();
81     ErrCode RunAsSetShortKeyState();
82     ErrCode RunAsSetMouseKeyState();
83     ErrCode RunAsSetCaptionState();
84     ErrCode RunAsSetMouseAutoClick();
85     ErrCode RunAsSetShortKeyTarget();
86     ErrCode RunAsSetHighContrastTextState();
87     ErrCode RunAsSetInvertColorState();
88     ErrCode RunAsSetDaltonizationColorFilter();
89     ErrCode RunAsSetContentTimeout();
90     ErrCode RunAsSetAnimationOffState();
91     ErrCode RunAsSetBrightnessDiscount();
92     ErrCode RunAsSetAudioMonoState();
93     ErrCode RunAsSetAudioBalance();
94     ErrCode MakeSetShortKeyTargetCommandArgumentFromCmd(AccessibilityCommandArgument &argument);
95     ErrCode MakeSetCommandArgumentFromCmd(AccessibilityCommandArgument &argument);
96     ErrCode MakeCommandArgumentFromCmd(AccessibilityCommandArgument &argument);
97 
98     std::shared_ptr<Accessibility::AccessibilitySystemAbilityClient> abilityClientPtr_ = nullptr;
99 };
100 }  // namespace AAFwk
101 }  // namespace OHOS
102 
103 #endif  // OHOS_ABILITY_RUNTIME_ACCESSIBILITY_ABILITY_COMMAND_H
104