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 OHOS_DIALLING_NUMBER_INFO_H 17 #define OHOS_DIALLING_NUMBER_INFO_H 18 19 #include <memory> 20 #include <string> 21 #include <vector> 22 #include "parcel.h" 23 24 namespace OHOS { 25 namespace Telephony { 26 class DiallingNumbersInfo : public Parcelable { 27 public: 28 static const int SIM_ADN = 1; 29 static const int SIM_FDN = 2; 30 int32_t elementaryFileId_ = 0; 31 int32_t index_ = 0; 32 std::u16string name_ = u""; 33 std::u16string number_ = u""; 34 std::vector<std::u16string> emails_; 35 std::u16string pin2_ = u""; ReadFromParcel(Parcel & parcel)36 bool ReadFromParcel(Parcel &parcel) 37 { 38 if (!parcel.ReadInt32(elementaryFileId_)) { 39 return false; 40 } 41 if (!parcel.ReadInt32(index_)) { 42 return false; 43 } 44 if (!parcel.ReadString16(name_)) { 45 return false; 46 } 47 if (!parcel.ReadString16(number_)) { 48 return false; 49 } 50 if (!parcel.ReadString16(pin2_)) { 51 return false; 52 } 53 if (!parcel.ReadString16Vector(&emails_)) { 54 return false; 55 } 56 return true; 57 } 58 Marshalling(Parcel & parcel)59 virtual bool Marshalling(Parcel &parcel) const 60 { 61 if (!parcel.WriteInt32(elementaryFileId_)) { 62 return false; 63 } 64 if (!parcel.WriteInt32(index_)) { 65 return false; 66 } 67 if (!parcel.WriteString16(name_)) { 68 return false; 69 } 70 if (!parcel.WriteString16(number_)) { 71 return false; 72 } 73 if (!parcel.WriteString16(pin2_)) { 74 return false; 75 } 76 if (!parcel.WriteString16Vector(emails_)) { 77 return false; 78 } 79 return true; 80 } 81 UnMarshalling(Parcel & parcel)82 static std::shared_ptr<DiallingNumbersInfo> UnMarshalling(Parcel &parcel) 83 { 84 std::shared_ptr<DiallingNumbersInfo> param = std::make_shared<DiallingNumbersInfo>(); 85 if (param == nullptr) { 86 return nullptr; 87 } 88 if (!param->ReadFromParcel(parcel)) { 89 return nullptr; 90 } 91 return param; 92 } 93 DiallingNumbersInfo()94 DiallingNumbersInfo() {} 95 DiallingNumbersInfo(int32_t efid,int32_t recordNumber)96 DiallingNumbersInfo(int32_t efid, int32_t recordNumber) 97 { 98 elementaryFileId_ = efid; 99 index_ = recordNumber; 100 } 101 DiallingNumbersInfo(std::u16string & alphaTag,std::u16string & number)102 DiallingNumbersInfo(std::u16string &alphaTag, std::u16string &number) 103 { 104 DiallingNumbersInfo(0, 0, alphaTag, number); 105 } 106 DiallingNumbersInfo(std::u16string alphaTag,std::u16string number,std::vector<std::u16string> & emails)107 DiallingNumbersInfo(std::u16string alphaTag, std::u16string number, std::vector<std::u16string> &emails) 108 { 109 DiallingNumbersInfo(0, 0, alphaTag, number, emails); 110 } 111 DiallingNumbersInfo(int32_t efid,int32_t recordNumber,std::u16string alphaTag,std::u16string number,std::vector<std::u16string> & emails)112 DiallingNumbersInfo(int32_t efid, int32_t recordNumber, std::u16string alphaTag, std::u16string number, 113 std::vector<std::u16string> &emails) 114 { 115 elementaryFileId_ = efid; 116 index_ = recordNumber; 117 name_ = alphaTag; 118 number_ = number; 119 emails_.assign(emails.begin(), emails.end()); 120 } 121 DiallingNumbersInfo(int32_t efid,int32_t recordNumber,std::u16string & alphaTag,std::u16string & number)122 DiallingNumbersInfo(int32_t efid, int32_t recordNumber, std::u16string &alphaTag, std::u16string &number) 123 { 124 elementaryFileId_ = efid; 125 index_ = recordNumber; 126 name_ = alphaTag; 127 number_ = number; 128 } 129 ~DiallingNumbersInfo()130 virtual ~DiallingNumbersInfo() {} 131 GetName()132 std::u16string GetName() 133 { 134 return name_; 135 } 136 GetFileId()137 int32_t GetFileId() 138 { 139 return elementaryFileId_; 140 } 141 GetIndex()142 int32_t GetIndex() 143 { 144 return index_; 145 } 146 GetNumber()147 std::u16string GetNumber() 148 { 149 return number_; 150 } 151 UpdateNumber(std::u16string number)152 void UpdateNumber(std::u16string number) 153 { 154 number_ = number; 155 } 156 GetEmails()157 std::vector<std::u16string> GetEmails() 158 { 159 return emails_; 160 } 161 UpdateEmails(std::vector<std::u16string> & emails)162 void UpdateEmails(std::vector<std::u16string> &emails) 163 { 164 emails_.assign(emails.begin(), emails.end()); 165 } 166 IsEmpty()167 bool IsEmpty() 168 { 169 return (name_.empty() && number_.empty() && emails_.empty()); 170 } 171 }; 172 } // namespace Telephony 173 } // namespace OHOS 174 #endif // OHOS_DIALLING_NUMBER_INFO_H