1 /*
2 * Copyright (c) 2023-2024 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 #include "i18n_hilog.h"
17 #include "i18n_service_ability_load_manager.h"
18 #include "ii18n_service_ability.h"
19 #include "iremote_object.h"
20 #include "system_ability_definition.h"
21 #include "i18n_service_ability_client.h"
22
23 namespace OHOS {
24 namespace Global {
25 namespace I18n {
GetProxy(I18nErrorCode & err)26 sptr<II18nServiceAbility> I18nServiceAbilityClient::GetProxy(I18nErrorCode &err)
27 {
28 sptr<IRemoteObject> proxy = I18nServiceAbilityLoadManager::GetInstance()->GetI18nServiceAbility(I18N_SA_ID);
29 if (proxy == nullptr) {
30 HILOG_ERROR_I18N("I18nServiceAbilityClient::GetProxy load sa failed, try again.");
31 proxy = I18nServiceAbilityLoadManager::GetInstance()->GetI18nServiceAbility(I18N_SA_ID);
32 }
33 if (proxy == nullptr) {
34 HILOG_ERROR_I18N("I18nServiceAbilityClient::GetProxy load sa failed.");
35 err = I18nErrorCode::LOAD_SA_FAILED;
36 return nullptr;
37 }
38 return iface_cast<II18nServiceAbility>(proxy);
39 }
40
SetSystemLanguage(const std::string & language)41 I18nErrorCode I18nServiceAbilityClient::SetSystemLanguage(const std::string &language)
42 {
43 I18nErrorCode err = I18nErrorCode::SUCCESS;
44 sptr<II18nServiceAbility> i18nServiceAbilityObj = GetProxy(err);
45 if (i18nServiceAbilityObj == nullptr) {
46 HILOG_ERROR_I18N("I18nServiceAbilityClient::SetSystemLanguage: Get proxy failed.");
47 return err;
48 }
49 int32_t code = 0;
50 ErrCode errCode = i18nServiceAbilityObj->SetSystemLanguage(language, code);
51 if (errCode != ERR_OK) {
52 HILOG_ERROR_I18N("I18nServiceAbilityClient::SetSystemLanguage: Set language failed, errCode is %{public}d.",
53 static_cast<int32_t>(errCode));
54 return I18nErrorCode::FAILED;
55 }
56 return static_cast<I18nErrorCode>(code);
57 }
58
SetSystemRegion(const std::string & region)59 I18nErrorCode I18nServiceAbilityClient::SetSystemRegion(const std::string ®ion)
60 {
61 I18nErrorCode err = I18nErrorCode::SUCCESS;
62 sptr<II18nServiceAbility> i18nServiceAbilityObj = GetProxy(err);
63 if (i18nServiceAbilityObj == nullptr) {
64 HILOG_ERROR_I18N("I18nServiceAbilityClient::SetSystemRegion: Get proxy failed.");
65 return err;
66 }
67 int32_t code = 0;
68 ErrCode errCode = i18nServiceAbilityObj->SetSystemRegion(region, code);
69 if (errCode != ERR_OK) {
70 HILOG_ERROR_I18N("I18nServiceAbilityClient::SetSystemRegion: Set region failed, errCode is %{public}d.",
71 static_cast<int32_t>(errCode));
72 return I18nErrorCode::FAILED;
73 }
74 return static_cast<I18nErrorCode>(code);
75 }
76
SetSystemLocale(const std::string & locale)77 I18nErrorCode I18nServiceAbilityClient::SetSystemLocale(const std::string &locale)
78 {
79 I18nErrorCode err = I18nErrorCode::SUCCESS;
80 sptr<II18nServiceAbility> i18nServiceAbilityObj = GetProxy(err);
81 if (i18nServiceAbilityObj == nullptr) {
82 HILOG_ERROR_I18N("I18nServiceAbilityClient::SetSystemLocale: Get proxy failed.");
83 return err;
84 }
85 int32_t code = 0;
86 ErrCode errCode = i18nServiceAbilityObj->SetSystemLocale(locale, code);
87 if (errCode != ERR_OK) {
88 HILOG_ERROR_I18N("I18nServiceAbilityClient::SetSystemLocale: Set locale failed, errCode is %{public}d.",
89 static_cast<int32_t>(errCode));
90 return I18nErrorCode::FAILED;
91 }
92 return static_cast<I18nErrorCode>(code);
93 }
94
Set24HourClock(const std::string & flag)95 I18nErrorCode I18nServiceAbilityClient::Set24HourClock(const std::string &flag)
96 {
97 I18nErrorCode err = I18nErrorCode::SUCCESS;
98 sptr<II18nServiceAbility> i18nServiceAbilityObj = GetProxy(err);
99 if (i18nServiceAbilityObj == nullptr) {
100 HILOG_ERROR_I18N("I18nServiceAbilityClient::Set24HourClock: Get proxy failed.");
101 return err;
102 }
103 int32_t code = 0;
104 ErrCode errCode = i18nServiceAbilityObj->Set24HourClock(flag, code);
105 if (errCode != ERR_OK) {
106 HILOG_ERROR_I18N("I18nServiceAbilityClient::Set24HourClock: Set 24HourClock failed, errCode is %{public}d.",
107 static_cast<int32_t>(errCode));
108 return I18nErrorCode::FAILED;
109 }
110 return static_cast<I18nErrorCode>(code);
111 }
112
SetUsingLocalDigit(bool flag)113 I18nErrorCode I18nServiceAbilityClient::SetUsingLocalDigit(bool flag)
114 {
115 I18nErrorCode err = I18nErrorCode::SUCCESS;
116 sptr<II18nServiceAbility> i18nServiceAbilityObj = GetProxy(err);
117 if (i18nServiceAbilityObj == nullptr) {
118 HILOG_ERROR_I18N("I18nServiceAbilityClient::SetUsingLocalDigit: Get proxy failed.");
119 return err;
120 }
121 int32_t code = 0;
122 ErrCode errCode = i18nServiceAbilityObj->SetUsingLocalDigit(flag, code);
123 if (errCode != ERR_OK) {
124 HILOG_ERROR_I18N("I18nServiceAbilityClient::SetUsingLocalDigit: Set local digit failed, "
125 "errCode is %{public}d.", static_cast<int32_t>(errCode));
126 return I18nErrorCode::FAILED;
127 }
128 return static_cast<I18nErrorCode>(code);
129 }
130
AddPreferredLanguage(const std::string & language,int32_t index)131 I18nErrorCode I18nServiceAbilityClient::AddPreferredLanguage(const std::string &language, int32_t index)
132 {
133 I18nErrorCode err = I18nErrorCode::SUCCESS;
134 sptr<II18nServiceAbility> i18nServiceAbilityObj = GetProxy(err);
135 if (i18nServiceAbilityObj == nullptr) {
136 HILOG_ERROR_I18N("I18nServiceAbilityClient::AddPreferredLanguage: Get proxy failed.");
137 return err;
138 }
139 int32_t code = 0;
140 ErrCode errCode = i18nServiceAbilityObj->AddPreferredLanguage(language, index, code);
141 if (errCode != ERR_OK) {
142 HILOG_ERROR_I18N("I18nServiceAbilityClient::AddPreferredLanguage: Add preferred language failed, "
143 "errCode is %{public}d.", static_cast<int32_t>(errCode));
144 return I18nErrorCode::FAILED;
145 }
146 return static_cast<I18nErrorCode>(code);
147 }
148
RemovePreferredLanguage(int32_t index)149 I18nErrorCode I18nServiceAbilityClient::RemovePreferredLanguage(int32_t index)
150 {
151 I18nErrorCode err = I18nErrorCode::SUCCESS;
152 sptr<II18nServiceAbility> i18nServiceAbilityObj = GetProxy(err);
153 if (i18nServiceAbilityObj == nullptr) {
154 HILOG_ERROR_I18N("I18nServiceAbilityClient::RemovePreferredLanguage: Get proxy failed.");
155 return err;
156 }
157 int32_t code = 0;
158 ErrCode errCode = i18nServiceAbilityObj->RemovePreferredLanguage(index, code);
159 if (errCode != ERR_OK) {
160 HILOG_ERROR_I18N("I18nServiceAbilityClient::RemovePreferredLanguage: Remove preferred language failed, "
161 "errCode is %{public}d.", static_cast<int32_t>(errCode));
162 return I18nErrorCode::FAILED;
163 }
164 return static_cast<I18nErrorCode>(code);
165 }
166
SetTemperatureType(TemperatureType type)167 I18nErrorCode I18nServiceAbilityClient::SetTemperatureType(TemperatureType type)
168 {
169 I18nErrorCode err = I18nErrorCode::SUCCESS;
170 sptr<II18nServiceAbility> i18nServiceAbilityObj = GetProxy(err);
171 if (i18nServiceAbilityObj == nullptr) {
172 HILOG_ERROR_I18N("I18nServiceAbilityClient::SetTemperatureType: Get proxy failed.");
173 return err;
174 }
175 int32_t code = 0;
176 ErrCode errCode = i18nServiceAbilityObj->SetTemperatureType(static_cast<int32_t>(type), code);
177 if (errCode != ERR_OK) {
178 HILOG_ERROR_I18N("I18nServiceAbilityClient::SetTemperatureType: Set temperature type failed, "
179 "errCode is %{public}d.", static_cast<int32_t>(errCode));
180 return I18nErrorCode::FAILED;
181 }
182 return static_cast<I18nErrorCode>(code);
183 }
184
SetFirstDayOfWeek(WeekDay type)185 I18nErrorCode I18nServiceAbilityClient::SetFirstDayOfWeek(WeekDay type)
186 {
187 I18nErrorCode err = I18nErrorCode::SUCCESS;
188 sptr<II18nServiceAbility> i18nServiceAbilityObj = GetProxy(err);
189 if (i18nServiceAbilityObj == nullptr) {
190 HILOG_ERROR_I18N("I18nServiceAbilityClient::SetFirstDayOfWeek: Get proxy failed.");
191 return err;
192 }
193 int32_t code = 0;
194 ErrCode errCode = i18nServiceAbilityObj->SetFirstDayOfWeek(static_cast<int32_t>(type), code);
195 if (errCode != ERR_OK) {
196 HILOG_ERROR_I18N("I18nServiceAbilityClient::SetFirstDayOfWeek: Set first day of week failed, "
197 "errCode is %{public}d.", static_cast<int32_t>(errCode));
198 return I18nErrorCode::FAILED;
199 }
200 return static_cast<I18nErrorCode>(code);
201 }
202
GetSystemCollations(std::unordered_map<std::string,std::string> & systemCollations)203 I18nErrorCode I18nServiceAbilityClient::GetSystemCollations(
204 std::unordered_map<std::string, std::string>& systemCollations)
205 {
206 I18nErrorCode err = I18nErrorCode::SUCCESS;
207 sptr<II18nServiceAbility> i18nServiceAbilityObj = GetProxy(err);
208 if (i18nServiceAbilityObj == nullptr) {
209 HILOG_ERROR_I18N("I18nServiceAbilityClient::GetSystemCollations: Get proxy failed.");
210 return err;
211 }
212 int32_t code = 0;
213 ErrCode errCode = i18nServiceAbilityObj->GetSystemCollations(systemCollations, code);
214 if (errCode != ERR_OK) {
215 HILOG_ERROR_I18N("I18nServiceAbilityClient::GetSystemCollations: Get system collations failed, "
216 "errCode is %{public}d.", static_cast<int32_t>(errCode));
217 return I18nErrorCode::FAILED;
218 }
219 return static_cast<I18nErrorCode>(code);
220 }
221
GetUsingCollation(std::string & usingCollation)222 I18nErrorCode I18nServiceAbilityClient::GetUsingCollation(std::string& usingCollation)
223 {
224 I18nErrorCode err = I18nErrorCode::SUCCESS;
225 sptr<II18nServiceAbility> i18nServiceAbilityObj = GetProxy(err);
226 if (i18nServiceAbilityObj == nullptr) {
227 HILOG_ERROR_I18N("I18nServiceAbilityClient::GetUsingCollation: Get proxy failed.");
228 return err;
229 }
230 int32_t code = 0;
231 ErrCode errCode = i18nServiceAbilityObj->GetUsingCollation(usingCollation, code);
232 if (errCode != ERR_OK) {
233 HILOG_ERROR_I18N("I18nServiceAbilityClient::GetUsingCollation: Get using collations failed, "
234 "errCode is %{public}d.", static_cast<int32_t>(errCode));
235 return I18nErrorCode::FAILED;
236 }
237 return static_cast<I18nErrorCode>(code);
238 }
239
SetSystemCollation(const std::string & identifier)240 I18nErrorCode I18nServiceAbilityClient::SetSystemCollation(const std::string& identifier)
241 {
242 I18nErrorCode err = I18nErrorCode::SUCCESS;
243 sptr<II18nServiceAbility> i18nServiceAbilityObj = GetProxy(err);
244 if (i18nServiceAbilityObj == nullptr) {
245 HILOG_ERROR_I18N("I18nServiceAbilityClient::SetSystemCollation: Get proxy failed.");
246 return err;
247 }
248 int32_t code = 0;
249 ErrCode errCode = i18nServiceAbilityObj->SetSystemCollation(identifier, code);
250 if (errCode != ERR_OK) {
251 HILOG_ERROR_I18N("I18nServiceAbilityClient::SetSystemCollation: Set system collations failed, "
252 "errCode is %{public}d.", static_cast<int32_t>(errCode));
253 return I18nErrorCode::FAILED;
254 }
255 return static_cast<I18nErrorCode>(code);
256 }
257
GetSystemNumberingSystems(std::unordered_map<std::string,std::string> & systemNumberingSystems)258 I18nErrorCode I18nServiceAbilityClient::GetSystemNumberingSystems(
259 std::unordered_map<std::string, std::string>& systemNumberingSystems)
260 {
261 I18nErrorCode err = I18nErrorCode::SUCCESS;
262 sptr<II18nServiceAbility> i18nServiceAbilityObj = GetProxy(err);
263 if (i18nServiceAbilityObj == nullptr) {
264 HILOG_ERROR_I18N("I18nServiceAbilityClient::GetSystemNumberingSystems: Get proxy failed.");
265 return err;
266 }
267 int32_t code = 0;
268 ErrCode errCode = i18nServiceAbilityObj->GetSystemNumberingSystems(systemNumberingSystems, code);
269 if (errCode != ERR_OK) {
270 HILOG_ERROR_I18N("I18nServiceAbilityClient::GetSystemNumberingSystems: Get system numbering systems failed, "
271 "errCode is %{public}d.", static_cast<int32_t>(errCode));
272 return I18nErrorCode::FAILED;
273 }
274 return static_cast<I18nErrorCode>(code);
275 }
276
GetUsingNumberingSystem(std::string & usingNumberingSystem)277 I18nErrorCode I18nServiceAbilityClient::GetUsingNumberingSystem(std::string& usingNumberingSystem)
278 {
279 I18nErrorCode err = I18nErrorCode::SUCCESS;
280 sptr<II18nServiceAbility> i18nServiceAbilityObj = GetProxy(err);
281 if (i18nServiceAbilityObj == nullptr) {
282 HILOG_ERROR_I18N("I18nServiceAbilityClient::GetUsingNumberingSystem: Get proxy failed.");
283 return err;
284 }
285 int32_t code = 0;
286 ErrCode errCode = i18nServiceAbilityObj->GetUsingNumberingSystem(usingNumberingSystem, code);
287 if (errCode != ERR_OK) {
288 HILOG_ERROR_I18N("I18nServiceAbilityClient::GetUsingNumberingSystem: Get using numbering system failed, "
289 "errCode is %{public}d.", static_cast<int32_t>(errCode));
290 return I18nErrorCode::FAILED;
291 }
292 return static_cast<I18nErrorCode>(code);
293 }
294
SetSystemNumberingSystem(const std::string & identifier)295 I18nErrorCode I18nServiceAbilityClient::SetSystemNumberingSystem(const std::string& identifier)
296 {
297 I18nErrorCode err = I18nErrorCode::SUCCESS;
298 sptr<II18nServiceAbility> i18nServiceAbilityObj = GetProxy(err);
299 if (i18nServiceAbilityObj == nullptr) {
300 HILOG_ERROR_I18N("I18nServiceAbilityClient::SetSystemNumberingSystem: Get proxy failed.");
301 return err;
302 }
303 int32_t code = 0;
304 ErrCode errCode = i18nServiceAbilityObj->SetSystemNumberingSystem(identifier, code);
305 if (errCode != ERR_OK) {
306 HILOG_ERROR_I18N("I18nServiceAbilityClient::SetSystemNumberingSystem: Set system numbering system failed, "
307 "errCode is %{public}d.", static_cast<int32_t>(errCode));
308 return I18nErrorCode::FAILED;
309 }
310 return static_cast<I18nErrorCode>(code);
311 }
312
GetSystemNumberPatterns(std::unordered_map<std::string,std::string> & systemNumberPatterns)313 I18nErrorCode I18nServiceAbilityClient::GetSystemNumberPatterns(
314 std::unordered_map<std::string, std::string>& systemNumberPatterns)
315 {
316 I18nErrorCode err = I18nErrorCode::SUCCESS;
317 sptr<II18nServiceAbility> i18nServiceAbilityObj = GetProxy(err);
318 if (i18nServiceAbilityObj == nullptr) {
319 HILOG_ERROR_I18N("I18nServiceAbilityClient::GetSystemNumberPatterns: Get proxy failed.");
320 return err;
321 }
322 int32_t code = 0;
323 ErrCode errCode = i18nServiceAbilityObj->GetSystemNumberPatterns(systemNumberPatterns, code);
324 if (errCode != ERR_OK) {
325 HILOG_ERROR_I18N("I18nServiceAbilityClient::GetSystemNumberPatterns: Get system number patterns failed, "
326 "errCode is %{public}d.", static_cast<int32_t>(errCode));
327 return I18nErrorCode::FAILED;
328 }
329 return static_cast<I18nErrorCode>(code);
330 }
331
GetUsingNumberPattern(std::string & usingNumberPattern)332 I18nErrorCode I18nServiceAbilityClient::GetUsingNumberPattern(std::string& usingNumberPattern)
333 {
334 I18nErrorCode err = I18nErrorCode::SUCCESS;
335 sptr<II18nServiceAbility> i18nServiceAbilityObj = GetProxy(err);
336 if (i18nServiceAbilityObj == nullptr) {
337 HILOG_ERROR_I18N("I18nServiceAbilityClient::GetUsingNumberPattern: Get proxy failed.");
338 return err;
339 }
340 int32_t code = 0;
341 ErrCode errCode = i18nServiceAbilityObj->GetUsingNumberPattern(usingNumberPattern, code);
342 if (errCode != ERR_OK) {
343 HILOG_ERROR_I18N("I18nServiceAbilityClient::GetUsingNumberPattern: Get using number pattern failed, "
344 "errCode is %{public}d.", static_cast<int32_t>(errCode));
345 return I18nErrorCode::FAILED;
346 }
347 return static_cast<I18nErrorCode>(code);
348 }
349
SetSystemNumberPattern(const std::string & pattern)350 I18nErrorCode I18nServiceAbilityClient::SetSystemNumberPattern(const std::string& pattern)
351 {
352 I18nErrorCode err = I18nErrorCode::SUCCESS;
353 sptr<II18nServiceAbility> i18nServiceAbilityObj = GetProxy(err);
354 if (i18nServiceAbilityObj == nullptr) {
355 HILOG_ERROR_I18N("I18nServiceAbilityClient::SetSystemNumberPattern: Get proxy failed.");
356 return err;
357 }
358 int32_t code = 0;
359 ErrCode errCode = i18nServiceAbilityObj->SetSystemNumberPattern(pattern, code);
360 if (errCode != ERR_OK) {
361 HILOG_ERROR_I18N("I18nServiceAbilityClient::SetSystemNumberPattern: Set system number pattern failed, "
362 "errCode is %{public}d.", static_cast<int32_t>(errCode));
363 return I18nErrorCode::FAILED;
364 }
365 return static_cast<I18nErrorCode>(code);
366 }
367
GetSystemMeasurements(std::unordered_map<std::string,std::string> & systemMeasurements)368 I18nErrorCode I18nServiceAbilityClient::GetSystemMeasurements(
369 std::unordered_map<std::string, std::string>& systemMeasurements)
370 {
371 I18nErrorCode err = I18nErrorCode::SUCCESS;
372 sptr<II18nServiceAbility> i18nServiceAbilityObj = GetProxy(err);
373 if (i18nServiceAbilityObj == nullptr) {
374 HILOG_ERROR_I18N("I18nServiceAbilityClient::GetSystemMeasurements: Get proxy failed.");
375 return err;
376 }
377 int32_t code = 0;
378 ErrCode errCode = i18nServiceAbilityObj->GetSystemMeasurements(systemMeasurements, code);
379 if (errCode != ERR_OK) {
380 HILOG_ERROR_I18N("I18nServiceAbilityClient::GetSystemMeasurements: Get system measurements failed, "
381 "errCode is %{public}d.", static_cast<int32_t>(errCode));
382 return I18nErrorCode::FAILED;
383 }
384 return static_cast<I18nErrorCode>(code);
385 }
386
GetUsingMeasurement(std::string & identifier)387 I18nErrorCode I18nServiceAbilityClient::GetUsingMeasurement(std::string& identifier)
388 {
389 I18nErrorCode err = I18nErrorCode::SUCCESS;
390 sptr<II18nServiceAbility> i18nServiceAbilityObj = GetProxy(err);
391 if (i18nServiceAbilityObj == nullptr) {
392 HILOG_ERROR_I18N("I18nServiceAbilityClient::GetUsingMeasurement: Get proxy failed.");
393 return err;
394 }
395 int32_t code = 0;
396 ErrCode errCode = i18nServiceAbilityObj->GetUsingMeasurement(identifier, code);
397 if (errCode != ERR_OK) {
398 HILOG_ERROR_I18N("I18nServiceAbilityClient::GetUsingMeasurement: Get using measurement failed, "
399 "errCode is %{public}d.", static_cast<int32_t>(errCode));
400 return I18nErrorCode::FAILED;
401 }
402 return static_cast<I18nErrorCode>(code);
403 }
404
SetSystemMeasurement(const std::string & identifier)405 I18nErrorCode I18nServiceAbilityClient::SetSystemMeasurement(const std::string& identifier)
406 {
407 I18nErrorCode err = I18nErrorCode::SUCCESS;
408 sptr<II18nServiceAbility> i18nServiceAbilityObj = GetProxy(err);
409 if (i18nServiceAbilityObj == nullptr) {
410 HILOG_ERROR_I18N("I18nServiceAbilityClient::SetSystemMeasurement: Get proxy failed.");
411 return err;
412 }
413 int32_t code = 0;
414 ErrCode errCode = i18nServiceAbilityObj->SetSystemMeasurement(identifier, code);
415 if (errCode != ERR_OK) {
416 HILOG_ERROR_I18N("I18nServiceAbilityClient::SetSystemMeasurement: Set system measurement failed, "
417 "errCode is %{public}d.", static_cast<int32_t>(errCode));
418 return I18nErrorCode::FAILED;
419 }
420 return static_cast<I18nErrorCode>(code);
421 }
422
GetSystemNumericalDatePatterns(std::unordered_map<std::string,std::string> & numericalDatePatterns)423 I18nErrorCode I18nServiceAbilityClient::GetSystemNumericalDatePatterns(
424 std::unordered_map<std::string, std::string>& numericalDatePatterns)
425 {
426 I18nErrorCode err = I18nErrorCode::SUCCESS;
427 sptr<II18nServiceAbility> i18nServiceAbilityObj = GetProxy(err);
428 if (i18nServiceAbilityObj == nullptr) {
429 HILOG_ERROR_I18N("I18nServiceAbilityClient::GetSystemNumericalDatePatterns: Get proxy failed.");
430 return err;
431 }
432 int32_t code = 0;
433 ErrCode errCode = i18nServiceAbilityObj->GetSystemNumericalDatePatterns(numericalDatePatterns, code);
434 if (errCode != ERR_OK) {
435 HILOG_ERROR_I18N("I18nServiceAbilityClient::GetSystemNumericalDatePatterns: Get system numerical date pattern "
436 "failed, errCode is %{public}d.", static_cast<int32_t>(errCode));
437 return I18nErrorCode::FAILED;
438 }
439 return static_cast<I18nErrorCode>(code);
440 }
441
GetUsingNumericalDatePattern(std::string & identifier)442 I18nErrorCode I18nServiceAbilityClient::GetUsingNumericalDatePattern(std::string& identifier)
443 {
444 I18nErrorCode err = I18nErrorCode::SUCCESS;
445 sptr<II18nServiceAbility> i18nServiceAbilityObj = GetProxy(err);
446 if (i18nServiceAbilityObj == nullptr) {
447 HILOG_ERROR_I18N("I18nServiceAbilityClient::GetUsingNumericalDatePattern: Get proxy failed.");
448 return err;
449 }
450 int32_t code = 0;
451 ErrCode errCode = i18nServiceAbilityObj->GetUsingNumericalDatePattern(identifier, code);
452 if (errCode != ERR_OK) {
453 HILOG_ERROR_I18N("I18nServiceAbilityClient::GetUsingNumericalDatePattern: Get using numerical date pattern "
454 "failed, errCode is %{public}d.", static_cast<int32_t>(errCode));
455 return I18nErrorCode::FAILED;
456 }
457 return static_cast<I18nErrorCode>(code);
458 }
459
SetSystemNumericalDatePattern(const std::string & identifier)460 I18nErrorCode I18nServiceAbilityClient::SetSystemNumericalDatePattern(const std::string& identifier)
461 {
462 I18nErrorCode err = I18nErrorCode::SUCCESS;
463 sptr<II18nServiceAbility> i18nServiceAbilityObj = GetProxy(err);
464 if (i18nServiceAbilityObj == nullptr) {
465 HILOG_ERROR_I18N("I18nServiceAbilityClient::SetSystemNumericalDatePattern: Get proxy failed.");
466 return err;
467 }
468 int32_t code = 0;
469 ErrCode errCode = i18nServiceAbilityObj->SetSystemNumericalDatePattern(identifier, code);
470 if (errCode != ERR_OK) {
471 HILOG_ERROR_I18N("I18nServiceAbilityClient::SetSystemNumericalDatePattern: Set system numerical date pattern "
472 "failed, errCode is %{public}d.", static_cast<int32_t>(errCode));
473 return I18nErrorCode::FAILED;
474 }
475 return static_cast<I18nErrorCode>(code);
476 }
477
GetLanguageFromUserId(int32_t userId)478 std::string I18nServiceAbilityClient::GetLanguageFromUserId(int32_t userId)
479 {
480 I18nErrorCode err = I18nErrorCode::SUCCESS;
481 sptr<II18nServiceAbility> i18nServiceAbilityObj = GetProxy(err);
482 if (i18nServiceAbilityObj == nullptr) {
483 HILOG_ERROR_I18N("I18nServiceAbilityClient::GetLanguageFromUserId: Get proxy failed.");
484 return "";
485 }
486 std::string language;
487 ErrCode errCode = i18nServiceAbilityObj->GetLanguageFromUserId(userId, language);
488 if (errCode != ERR_OK) {
489 HILOG_ERROR_I18N("I18nServiceAbilityClient::GetLanguageFromUserId: Get language from userID failed, "
490 "errCode is %{public}d.", static_cast<int32_t>(errCode));
491 return "";
492 }
493 return language;
494 }
495 } // namespace I18n
496 } // namespace Global
497 } // namespace OHOS