Clear the last result when GetSimState() is successful.
[platform/framework/native/telephony.git] / src / FTel_TelephonyUtility.cpp
1 //
2 // Open Service Platform
3 // Copyright (c) 2012-2013 Samsung Electronics Co., Ltd.
4 //
5 // Licensed under the Apache License, Version 2.0 (the License);
6 // you may not use this file except in compliance with the License.
7 // You may obtain a copy of the License at
8 //
9 //     http://www.apache.org/licenses/LICENSE-2.0
10 //
11 // Unless required by applicable law or agreed to in writing, software
12 // distributed under the License is distributed on an "AS IS" BASIS,
13 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 // See the License for the specific language governing permissions and
15 // limitations under the License.
16 //
17
18 /**
19  * @file    FTel_TelephonyUtility.cpp
20  * @brief   This is the implementation file for the _TelephonyUtility Class.
21  *
22  * This file contains implementation of the _TelephonyUtility Class.
23  */
24
25
26 #include <FBaseSysLog.h>
27 #include <FBaseString.h>
28 #include <FBaseInteger.h>
29 #include "FTel_TelephonyUtility.h"
30
31
32
33 using namespace Tizen::Base;
34
35 namespace Tizen { namespace Telephony
36 {
37
38
39 _NetworkType
40 _TelephonyUtility::ConvertNetworkType(TelNetworkSystemType_t networkSystemType)
41 {
42     _NetworkType networktype = _NETWORK_TYPE_UNDEFINED;
43     switch(networkSystemType)
44     {
45     case TAPI_NETWORK_SYSTEM_NO_SRV:
46         networktype = _NETWORK_TYPE_UNDEFINED;
47         break;
48     case TAPI_NETWORK_SYSTEM_GSM:
49         networktype = _NETWORK_TYPE_GSM;
50         break;
51     case TAPI_NETWORK_SYSTEM_GPRS:
52         networktype = _NETWORK_TYPE_GPRS;
53         break;
54     case TAPI_NETWORK_SYSTEM_EGPRS:
55         networktype = _NETWORK_TYPE_EGPRS;
56         break;
57     case TAPI_NETWORK_SYSTEM_PCS1900:
58         networktype = _NETWORK_TYPE_PCS1900;
59         break;
60     case TAPI_NETWORK_SYSTEM_UMTS:
61         networktype = _NETWORK_TYPE_UMTS;
62         break;
63     case TAPI_NETWORK_SYSTEM_GSM_AND_UMTS:
64         networktype = _NETWORK_TYPE_GSM_AND_UMTS;
65         break;
66     case TAPI_NETWORK_SYSTEM_HSDPA:
67         networktype = _NETWORK_TYPE_HSDPA;
68         break;
69     case TAPI_NETWORK_SYSTEM_IS95A:
70         networktype = _NETWORK_TYPE_IS95A;
71         break;
72     case TAPI_NETWORK_SYSTEM_IS95B:
73         networktype = _NETWORK_TYPE_IS95B;
74         break;
75     case TAPI_NETWORK_SYSTEM_CDMA_1X:
76         networktype = _NETWORK_TYPE_CDMA_1X;
77         break;
78     case TAPI_NETWORK_SYSTEM_EVDO_REV_0:
79         networktype = _NETWORK_TYPE_EVDO_REV_0;
80         break;
81     case TAPI_NETWORK_SYSTEM_1X_EVDO_REV_0_HYBRID:
82         networktype = _NETWORK_TYPE_CDMA_1X_AND_EVDO_REV_0;
83         break;
84     case TAPI_NETWORK_SYSTEM_EVDO_REV_A:
85         networktype = _NETWORK_TYPE_EVDO_REV_A;
86         break;
87     case TAPI_NETWORK_SYSTEM_1X_EVDO_REV_A_HYBRID:
88         networktype = _NETWORK_TYPE_CDMA_1X_AND_EVDO_REV_A;
89         break;
90     case TAPI_NETWORK_SYSTEM_EVDV:
91         networktype = _NETWORK_TYPE_EVDV;
92         break;
93     default:
94             SysLog(NID_TEL, "The network system type is %d", networkSystemType);
95                 break;
96     }
97
98     return networktype;
99 }
100
101 TelNetworkSystemType_t
102 _TelephonyUtility::ConvertNetworkType(_NetworkType networkType)
103 {
104     TelNetworkSystemType_t networkSystemType = TAPI_NETWORK_SYSTEM_NO_SRV;
105     switch(networkType)
106     {
107     case _NETWORK_TYPE_UNDEFINED:
108         networkSystemType = TAPI_NETWORK_SYSTEM_NO_SRV;
109         break;
110     case _NETWORK_TYPE_GSM:
111         networkSystemType = TAPI_NETWORK_SYSTEM_GSM;
112         break;
113     case _NETWORK_TYPE_GPRS:
114         networkSystemType = TAPI_NETWORK_SYSTEM_GPRS;
115         break;
116     case _NETWORK_TYPE_EGPRS:
117         networkSystemType = TAPI_NETWORK_SYSTEM_EGPRS;
118         break;
119     case _NETWORK_TYPE_PCS1900:
120         networkSystemType = TAPI_NETWORK_SYSTEM_PCS1900;
121         break;
122     case _NETWORK_TYPE_UMTS:
123         networkSystemType = TAPI_NETWORK_SYSTEM_UMTS;
124         break;
125     case _NETWORK_TYPE_GSM_AND_UMTS:
126         networkSystemType = TAPI_NETWORK_SYSTEM_GSM_AND_UMTS;
127         break;
128     case _NETWORK_TYPE_HSDPA:
129         networkSystemType = TAPI_NETWORK_SYSTEM_HSDPA;
130         break;
131     case _NETWORK_TYPE_IS95A:
132         networkSystemType = TAPI_NETWORK_SYSTEM_IS95A;
133         break;
134     case _NETWORK_TYPE_IS95B:
135         networkSystemType = TAPI_NETWORK_SYSTEM_IS95B;
136         break;
137     case _NETWORK_TYPE_CDMA_1X:
138         networkSystemType = TAPI_NETWORK_SYSTEM_CDMA_1X;
139         break;
140     case _NETWORK_TYPE_EVDO_REV_0:
141         networkSystemType = TAPI_NETWORK_SYSTEM_EVDO_REV_0;
142         break;
143     case _NETWORK_TYPE_CDMA_1X_AND_EVDO_REV_0:
144         networkSystemType = TAPI_NETWORK_SYSTEM_1X_EVDO_REV_0_HYBRID;
145         break;
146     case _NETWORK_TYPE_EVDO_REV_A:
147         networkSystemType = TAPI_NETWORK_SYSTEM_EVDO_REV_A;
148         break;
149     case _NETWORK_TYPE_CDMA_1X_AND_EVDO_REV_A:
150         networkSystemType = TAPI_NETWORK_SYSTEM_1X_EVDO_REV_A_HYBRID;
151         break;
152     case _NETWORK_TYPE_EVDV:
153         networkSystemType = TAPI_NETWORK_SYSTEM_EVDV;
154         break;
155     default:
156             SysLog(NID_TEL, "The network type is %d", networkType);
157                 break;
158     }
159
160     return networkSystemType;
161 }
162
163 result
164 _TelephonyUtility::ConvertErrorType(int error)
165 {
166     result r = E_SUCCESS;
167
168     if (error == 0)
169     {
170         r = E_SUCCESS;
171     }
172     else if (error == -1)
173     {
174         r = E_NOT_RESPONDING;
175     }
176     else
177     {
178         r = E_SYSTEM;
179     }
180
181     return r;
182 }
183
184 void
185 _TelephonyUtility::GetMccMncFromPlmn(const String& plmn, int& mcc, int& mnc)
186 {
187     int currentIndex = 0;
188     const int MCC_LENGTH = 3;
189     String temp;
190
191     plmn.SubString(currentIndex, MCC_LENGTH, temp);
192     currentIndex +=  MCC_LENGTH;
193     Integer::Parse(temp, static_cast<int&>(mcc));
194     SysLog(NID_TEL, "The temp value is %ls", temp.GetPointer());
195     SysLog(NID_TEL, "The mcc value is %d", mcc);
196
197     temp.Clear();
198
199     plmn.SubString(currentIndex, plmn.GetLength()-MCC_LENGTH, temp);
200     Integer::Parse(temp, static_cast<int&>(mnc));
201     SysLog(NID_TEL, "The temp value is %ls", temp.GetPointer());
202     SysLog(NID_TEL, "The mnc value is %d", mnc);
203 }
204
205 } } // Tizen::Telephony