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