1 /* 2 * Copyright (C) 2021 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 SERVICES_INCLUDE_INPUT_ATTRIBUTE_H 17 #define SERVICES_INCLUDE_INPUT_ATTRIBUTE_H 18 19 #include <cstdint> 20 21 #include "message_parcel.h" 22 23 namespace OHOS { 24 namespace MiscServices { 25 struct InputAttribute { 26 static const int32_t PATTERN_TEXT = 0x00000001; 27 static const int32_t PATTERN_PASSWORD = 0x00000007; 28 static const int32_t PATTERN_PASSWORD_NUMBER = 0x00000008; 29 static const int32_t PATTERN_PASSWORD_SCREEN_LOCK = 0x00000009; 30 int32_t inputPattern = 0; 31 int32_t enterKeyType = 0; 32 int32_t inputOption = 0; 33 MarshallingInputAttribute34 static bool Marshalling(const InputAttribute &in, MessageParcel &data) 35 { 36 return data.WriteInt32(in.inputPattern) && data.WriteInt32(in.enterKeyType) && data.WriteInt32(in.inputOption); 37 } 38 UnmarshallingInputAttribute39 static bool Unmarshalling(InputAttribute &out, MessageParcel &data) 40 { 41 return data.ReadInt32(out.inputPattern) && data.ReadInt32(out.enterKeyType) && data.ReadInt32(out.inputOption); 42 } 43 GetSecurityFlagInputAttribute44 bool GetSecurityFlag() 45 { 46 return inputPattern == PATTERN_PASSWORD || inputPattern == PATTERN_PASSWORD_SCREEN_LOCK 47 || PATTERN_PASSWORD_NUMBER == inputPattern; 48 } 49 50 bool operator==(const InputAttribute &info) const 51 { 52 return inputPattern == info.inputPattern && enterKeyType == info.enterKeyType 53 && inputOption == info.inputOption; 54 } 55 }; 56 } // namespace MiscServices 57 } // namespace OHOS 58 59 #endif // SERVICES_INCLUDE_INPUT_ATTRIBUTE_H 60