SSCStringHandle.c
上传用户:lqx1163
上传日期:2014-08-13
资源大小:9183k
文件大小:166k
源码类别:

MTK

开发平台:

C/C++

  1. /*****************************************************************************
  2. *  Copyright Statement:
  3. *  --------------------
  4. *  This software is protected by Copyright and the information contained
  5. *  herein is confidential. The software may not be copied and the information
  6. *  contained herein may not be used or disclosed except with the written
  7. *  permission of MediaTek Inc. (C) 2005
  8. *
  9. *  BY OPENING THIS FILE, BUYER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
  10. *  THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
  11. *  RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO BUYER ON
  12. *  AN "AS-IS" BASIS ONLY. MEDIATEK EXPRESSLY DISCLAIMS ANY AND ALL WARRANTIES,
  13. *  EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF
  14. *  MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NONINFRINGEMENT.
  15. *  NEITHER DOES MEDIATEK PROVIDE ANY WARRANTY WHATSOEVER WITH RESPECT TO THE
  16. *  SOFTWARE OF ANY THIRD PARTY WHICH MAY BE USED BY, INCORPORATED IN, OR
  17. *  SUPPLIED WITH THE MEDIATEK SOFTWARE, AND BUYER AGREES TO LOOK ONLY TO SUCH
  18. *  THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. MEDIATEK SHALL ALSO
  19. *  NOT BE RESPONSIBLE FOR ANY MEDIATEK SOFTWARE RELEASES MADE TO BUYER'S
  20. *  SPECIFICATION OR TO CONFORM TO A PARTICULAR STANDARD OR OPEN FORUM.
  21. *
  22. *  BUYER'S SOLE AND EXCLUSIVE REMEDY AND MEDIATEK'S ENTIRE AND CUMULATIVE
  23. *  LIABILITY WITH RESPECT TO THE MEDIATEK SOFTWARE RELEASED HEREUNDER WILL BE,
  24. *  AT MEDIATEK'S OPTION, TO REVISE OR REPLACE THE MEDIATEK SOFTWARE AT ISSUE,
  25. *  OR REFUND ANY SOFTWARE LICENSE FEES OR SERVICE CHARGE PAID BY BUYER TO
  26. *  MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE. 
  27. *
  28. *  THE TRANSACTION CONTEMPLATED HEREUNDER SHALL BE CONSTRUED IN ACCORDANCE
  29. *  WITH THE LAWS OF THE STATE OF CALIFORNIA, USA, EXCLUDING ITS CONFLICT OF
  30. *  LAWS PRINCIPLES.  ANY DISPUTES, CONTROVERSIES OR CLAIMS ARISING THEREOF AND
  31. *  RELATED THERETO SHALL BE SETTLED BY ARBITRATION IN SAN FRANCISCO, CA, UNDER
  32. *  THE RULES OF THE INTERNATIONAL CHAMBER OF COMMERCE (ICC).
  33. *
  34. *****************************************************************************/
  35. /*****************************************************************************
  36.  *
  37.  * Filename:
  38.  * ---------
  39.  * SSCStringHandle.C
  40.  *
  41.  * Project:
  42.  * --------
  43.  *   PlutoMMI
  44.  *
  45.  * Description:
  46.  * ------------
  47.  *   To handle the ssc string.
  48.  *
  49.  * Author:
  50.  * -------
  51.  * -------
  52.  *
  53.  *============================================================================
  54.  *             HISTORY
  55.  * Below this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
  56.  *------------------------------------------------------------------------------
  57.  * removed!
  58.  *
  59.  * removed!
  60.  * removed!
  61.  * removed!
  62.  *
  63.  * removed!
  64.  * removed!
  65.  * removed!
  66.  *
  67.  * removed!
  68.  * removed!
  69.  * removed!
  70.  *
  71.  * removed!
  72.  * removed!
  73.  * removed!
  74.  *
  75.  * removed!
  76.  * removed!
  77.  * removed!
  78.  *
  79.  * removed!
  80.  * removed!
  81.  * removed!
  82.  *
  83.  * removed!
  84.  * removed!
  85.  * removed!
  86.  *
  87.  * removed!
  88.  * removed!
  89.  * removed!
  90.  *
  91.  * removed!
  92.  * removed!
  93.  * removed!
  94.  *
  95.  * removed!
  96.  * removed!
  97.  * removed!
  98.  *
  99.  * removed!
  100.  * removed!
  101.  * removed!
  102.  *
  103.  * removed!
  104.  * removed!
  105.  * removed!
  106.  *
  107.  * removed!
  108.  * removed!
  109.  * removed!
  110.  *
  111.  * removed!
  112.  * removed!
  113.  * removed!
  114.  *
  115.  * removed!
  116.  * removed!
  117.  * removed!
  118.  *
  119.  * removed!
  120.  * removed!
  121.  * removed!
  122.  *
  123.  * removed!
  124.  * removed!
  125.  * removed!
  126.  *
  127.  * removed!
  128.  * removed!
  129.  * removed!
  130.  *
  131.  * removed!
  132.  * removed!
  133.  * removed!
  134.  *
  135.  * removed!
  136.  * removed!
  137.  * removed!
  138.  *
  139.  * removed!
  140.  * removed!
  141.  * removed!
  142.  *
  143.  * removed!
  144.  * removed!
  145.  * removed!
  146.  *
  147.  * removed!
  148.  * removed!
  149.  * removed!
  150.  *
  151.  * removed!
  152.  * removed!
  153.  * removed!
  154.  *
  155.  * removed!
  156.  * removed!
  157.  * removed!
  158.  *
  159.  * removed!
  160.  * removed!
  161.  * removed!
  162.  *
  163.  * removed!
  164.  * removed!
  165.  * removed!
  166.  *
  167.  * removed!
  168.  * removed!
  169.  * removed!
  170.  *
  171.  *------------------------------------------------------------------------------
  172.  * Upper this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
  173.  *============================================================================
  174.  ****************************************************************************/
  175. /* MTK Add Robin 1001 for saperate MMI feature by project */
  176. #include "MMI_features.h"
  177. /* MTK End */
  178. #include "StdC.h"
  179. #include "L4Dr1.h"
  180. #include "MiscFunctions.h"
  181. #include "DebugInitDef.h"
  182. #include "gui_themes.h"
  183. #include "GlobalConstants.h"
  184. #include "HistoryGprot.h"
  185. #include "SimDetectionGprot.h"
  186. #include "SettingProfile.h"
  187. #include "PhonebookDef.h"
  188. #include "SettingDefs.h"
  189. #include "wgui_categories.h"
  190. #include "wgui_status_icons.h"
  191. #include "FontRes.h"
  192. #include "FontDcl.h"
  193. #include "NVRAMProt.h"
  194. #include "NVRAMEnum.h"
  195. #include "NVRAMType.h"
  196. #include "CallManagementGprot.h"
  197. #include "Unicodexdcl.h"
  198. #include "ProtocolEvents.h"
  199. #include "PixtelDataTypes.h"
  200. #include "l4dr.h"
  201. #include "QueueGprot.h"
  202. #include "SSCStringHandle.h"
  203. #include "Globaldefs.h"
  204. #include "SettingGprots.h"
  205. #include "SettingsGexdcl.h"
  206. #include "SimDetectionGexdcl.h"
  207. #include "IdleAppDef.h"
  208. #include "IdleAppProt.h"
  209. #include "SettingProt.h"
  210. #include "SettingDefs.h"
  211. #include "SettingsGdcl.h"
  212. #include "CustResDef.h"
  213. #include "ATHandlerProt.h"
  214. #include "CommonScreens.h"
  215. #include "CallManagementIdDef.h"
  216. #include "ProfileGprots.h"
  217. #include "ProfilesDefs.h"
  218. #include "DevAppGprot.h"
  219. /* for pts V2.1.0.4 */
  220. /* cannot update indicators to remote bluetooth headset while HFP is connected */
  221. /* indicators shall be retrieved by remote HF AT+CIND? */
  222. /* so for pts V2.1.0.4, host will not udpate indicators while HFP is just connected */
  223. #ifdef __MMI_BT_SUPPORT__
  224. #include "BTMMIScrGprots.h"
  225. #endif
  226. #ifdef __MMI_SML_MENU__
  227. #include "PersonalizationProt.h"
  228. #endif
  229. /**********************************************/
  230. /*   Local Functions                          */
  231. /**********************************************/
  232. void SSCHandleLngAutoMode(void);
  233. void SSCHandleLngEnglish(void);
  234. void SSCHandleLngChinese(void);
  235. void SSCHandleLngSimplify(void);
  236. /* MTK Terry for Spanish French German Italian Thai Russian Portuguese Turkish Vietnamese Indonesian Malay */
  237. #if defined(__MMI_LANG_SPANISH__)
  238. void SSCHandleLngSpanish(void);
  239. #endif 
  240. /* PMT VIKASG START 20050729 */
  241. #if defined(__MMI_LANG_DANISH__)
  242. void SSCHandleLngDanish(void);
  243. #endif 
  244. //PMT VIKASG END 20050729
  245. //PMT CZ_PO_TU START 20050812
  246. #if defined(__MMI_LANG_POLISH__)
  247. void SSCHandleLngPolish(void);
  248. #endif 
  249. /* PMT CZ_PO_TU END 20050812 */
  250. #if defined(__MMI_LANG_FRENCH__)
  251. void SSCHandleLngFrench(void);
  252. #endif 
  253. #if defined(__MMI_LANG_GERMAN__)
  254. void SSCHandleLngGerman(void);
  255. #endif 
  256. #if defined(__MMI_LANG_ITALIAN__)
  257. void SSCHandleLngItalian(void);
  258. #endif 
  259. #if defined(__MMI_LANG_THAI__)
  260. void SSCHandleLngThai(void);
  261. #endif 
  262. #if defined(__MMI_LANG_RUSSIAN__)
  263. void SSCHandleLngRussian(void);
  264. #endif 
  265. /* PMT BULGARIAN START 20051201 */
  266. #if defined(__MMI_LANG_BULGARIAN__)
  267. void SSCHandleLngBulgarian(void);
  268. #endif 
  269. /* PMT BULGARIAN END 20051201 */
  270. #if defined(__MMI_LANG_PORTUGUESE__)
  271. void SSCHandleLngPortuguese(void);
  272. #endif 
  273. #if defined(__MMI_LANG_TURKISH__)
  274. void SSCHandleLngTurkish(void);
  275. #endif 
  276. #if defined(__MMI_LANG_VIETNAMESE__)
  277. void SSCHandleLngVietnamese(void);
  278. #endif 
  279. #if defined(__MMI_LANG_INDONESIAN__)
  280. void SSCHandleLngIndonesian(void);
  281. #endif 
  282. /* PMT CZ_PO_TU START 20050812 */
  283. #if defined(__MMI_LANG_CZECH__)
  284. void SSCHandleLngCzech(void);
  285. #endif 
  286. /* PMT CZ_PO_TU END 20050812 */
  287. #if defined(__MMI_LANG_MALAY__)
  288. void SSCHandleLngMalay(void);
  289. #endif 
  290. /* PMT START HU_FI 20050825 */
  291. #if defined(__MMI_LANG_FINNISH__)
  292. void SSCHandleLngFinnish(void);
  293. #endif 
  294. #if defined(__MMI_LANG_HUNGARIAN__)
  295. void SSCHandleLngHungarian(void);
  296. #endif 
  297. //PMT END HU_FI 20050825
  298. //PMT NO_AR_SL_DU START 20050909
  299. #if defined(__MMI_LANG_SLOVAK__)
  300. void SSCHandleLngSlovak(void);
  301. #endif 
  302. #if defined(__MMI_LANG_DUTCH__)
  303. void SSCHandleLngDutch(void);
  304. #endif 
  305. /* Norwegian start */
  306. #if defined(__MMI_LANG_NORWEGIAN__)
  307. void SSCHandleLngNorwegian(void);
  308. #endif 
  309. //Norwegian end
  310. //PMT NO_AR_SL_DU END 20050909
  311. //PMT START SWEDISH 20050916
  312. #if defined(__MMI_LANG_SWEDISH__)
  313. void SSCHandleLngSwedish(void);
  314. #endif 
  315. //PMT END SWEDISH 20050916
  316. //PMT START CR_ROM_SLO 20050923
  317. #if defined(__MMI_LANG_CROATIAN__)
  318. void SSCHandleLngCroatian(void);
  319. #endif 
  320. #if defined(__MMI_LANG_ROMANIAN__)
  321. void SSCHandleLngRomanian(void);
  322. #endif 
  323. #if defined(__MMI_LANG_SLOVENIAN__)
  324. void SSCHandleLngSlovenian(void);
  325. #endif 
  326. /* PMT END CR_ROM_SLO 20050923 */
  327. /* MTK end */
  328. /* PMT START GR_HE_CZ_FI_DA_HU 20051007 */
  329. #if defined(__MMI_LANG_GREEK__)
  330. void SSCHandleLngGreek(void);
  331. #endif 
  332. /* PMT START 20060714 */
  333. #if defined (__MMI_LANG_HEBREW__)
  334. /* PMT END 20060714 */
  335. void SSCHandleLngHebrew(void);
  336. /* PMT START 20060714 */
  337. #endif /* defined (__MMI_LANG_HEBREW__) */ 
  338. /* PMT END 20060714 */
  339. /* PMT END GR_HE_CZ_FI_DA_HU 20051007 */
  340. /* PMT START 20060714 */
  341. #if defined (__MMI_LANG_ARABIC__)
  342. /* PMT END 20060714 */
  343. void SSCHandleLngArabic(void);
  344. /* PMT START 20060714 */
  345. #endif /* defined (__MMI_LANG_ARABIC__) */ 
  346. /* PMT START PERSIAN */
  347. #if defined (__MMI_LANG_PERSIAN__)
  348. void SSCHandleLngPersian(void);
  349. #endif 
  350. /* PMT END PERSIAN */
  351. #if defined (__MMI_LANG_HINDI__)
  352. /* PMT END 20060714 */
  353. void SSCHandleLngHindi(void);
  354. /* PMT START 20060714 */
  355. #endif /* defined (__MMI_LANG_HINDI__) */ 
  356. /* PMT RAKESH START 20061006 */
  357. #if defined (__MMI_LANG_MARATHI__)
  358. void SSCHandleLngMarathi(void);
  359. #endif 
  360. /* PMT RAKESH END 20061006 */
  361. /* PMT END 20060714 */
  362. void SSCHandleIMEI(void);
  363. void SSCHandleSoftwareVersion(void);
  364. /* Lisen 0921 */
  365. void SSCHandleSoftwareVersionSummary(void);
  366. void SSCHandleLCDContrastSetting(void);
  367. #ifdef __MMI_HW_VERSION__
  368. void SSCHandleHardwareVersion(void);
  369. #endif 
  370. void SSCHandleEngineerMode(void);
  371. void SSCHandleSerialNumber(void);
  372. void SSCHandleFactoryMode(void);
  373. void SSCHandleFactoryModeAutoTest(void);
  374. void SendReqPIN1Status(void);
  375. void SendReqPIN2Status(void);
  376. void SSCChangePIN1(void *);
  377. void SSCChangePIN2(void *);
  378. void SSCEntryPUK1(void);
  379. void SSCEntryPUK2(void);
  380. void ShowIMEIScreen(void);
  381. void SSCAbnormalReset(void);
  382. void SSCHandleIrClose(void);
  383. void SSCHandleIrOpen(void);
  384. PS8 Serial_num(void);
  385. void SSCHandleDisable(void);    /* diamond, 2005/05/13 for SSC disable */
  386. #ifdef __MMI_A2DP_SUPPORT__
  387. #if defined(__MMI_BT_MTK_SUPPORT__)
  388. void SSCHandle_BT_A2DP_Toggle_PTS_Mode(void);
  389. #elif defined(__MMI_BT_BCHS_SUPPORT__)
  390. void SSCHandle_BT_A2DP_Toggle_INT_ACP_Mode(void);
  391. void SSCHandle_BT_A2DP_Close_Stream(void);
  392. #endif
  393. #endif /* __MMI_A2DP_SUPPORT__ */ 
  394. #ifdef __BTMTK__
  395. void SSCHandle_BT_POWER_ON(void);
  396. void SSCHandle_BT_POWER_OFF(void);
  397. #endif /* __BTMTK__ */ 
  398. extern void FillCountDownNumber(sim_chv_info_struct chv_info);
  399. extern void EntryFMVersionSummaryMenu(void);
  400. extern void EntryFMLCDContrastMenuHdlr(void);
  401. static void SSCHandleVendorApp(void);
  402. #if defined(MMI_ON_HARDWARE_P) && defined(__MMI_IMEISV_SUPPORT__)
  403. /* IMEI:135790246811220 */
  404. /* IMEISV:00 */
  405. static S8 gstrIMEI[MAX_IMEISV_DISPLAY_LEN * ENCODING_LENGTH];
  406. #else /* defined(MMI_ON_HARDWARE_P) && defined(__MMI_IMEISV_SUPPORT__) */ 
  407. static S8 gstrIMEI[(MAX_IMEI_LEN + 1) * ENCODING_LENGTH];
  408. #endif /* defined(MMI_ON_HARDWARE_P) && defined(__MMI_IMEISV_SUPPORT__) */ 
  409. /* diamond, 2005/05/13 for SSC disable
  410.    MMI_FALSE (0): ssc string unchanged
  411.    MMI_TRUE  (1): before executing ssc, check the 'ssc_disable_ctrl' flag first
  412.    0xFF: read NVRAM first */
  413. extern U8 ssc_disable_flag;
  414. typedef struct sscstringtblstruct
  415. {
  416.     const S8 *ssc_string;
  417.     /* diamond, 2005/05/13 for SSC disable
  418.        MMI_FALSE (0): ssc cannot be disabled
  419.        MMI_TRUE  (1): ssc can be disabled */
  420.     const U8 ssc_disable_ctrl;
  421.     FuncPtr func_ptr;
  422. } SSCSTRINGTBL;
  423. typedef struct simstringtblstruct
  424. {
  425.     const S8 *sim_string;
  426.     S8 sim_length;
  427.     FuncPtr func_ptr;
  428. } SIMSTRINGTBL;
  429. /* micha1129 begin */
  430. SSCSTRINGTBL ssc_table2[] = 
  431. {
  432.     /* diamond, 2005/05/13 for SSC disable */
  433.     {SSC_AUTO, MMI_FALSE, SSCHandleLngAutoMode},
  434.     {SSC_ENGLISH, MMI_FALSE, SSCHandleLngEnglish},
  435.     {SSC_TCHINESE, MMI_FALSE, SSCHandleLngChinese},
  436.     /* MTK Terry for Spanish French German Italian Thai Russian */
  437. #if defined(__MMI_LANG_SPANISH__)
  438.     {SSC_SPANISH, MMI_FALSE, SSCHandleLngSpanish},
  439. #endif 
  440.     /* PMT VIKASG START 20050729 */
  441. #if defined(__MMI_LANG_DANISH__)
  442.     {SSC_DANISH, MMI_FALSE, SSCHandleLngDanish},
  443. #endif 
  444.     //PMT VIKASG END 20050729
  445.     //PMT CZ_PO_TU START 20050812
  446. #if defined(__MMI_LANG_POLISH__)
  447.     {SSC_POLISH, MMI_FALSE, SSCHandleLngPolish},
  448. #endif 
  449.     /* PMT CZ_PO_TU END 20050812 */
  450. #if defined(__MMI_LANG_FRENCH__)
  451.     {SSC_FRENCH, MMI_FALSE, SSCHandleLngFrench},
  452. #endif 
  453. #if defined(__MMI_LANG_GERMAN__)
  454.     {SSC_GERMAN, MMI_FALSE, SSCHandleLngGerman},
  455. #endif 
  456. #if defined(__MMI_LANG_ITALIAN__)
  457.     {SSC_ITALIAN, MMI_FALSE, SSCHandleLngItalian},
  458. #endif 
  459. #if defined(__MMI_LANG_THAI__)
  460.     {SSC_THAI, MMI_FALSE, SSCHandleLngThai},
  461. #endif 
  462. #if defined(__MMI_LANG_RUSSIAN__)
  463.     {SSC_RUSSIAN, MMI_FALSE, SSCHandleLngRussian},
  464. #endif 
  465.     /* PMT BULGARIAN START 20051201 */
  466. #if defined(__MMI_LANG_BULGARIAN__)
  467.     {SSC_BULGARIAN, MMI_FALSE, SSCHandleLngBulgarian},
  468. #endif 
  469.     /* PMT BULGARIAN END 20051201 */
  470. #if defined(__MMI_LANG_PORTUGUESE__)
  471.     {SSC_PORTUGUESE, MMI_FALSE, SSCHandleLngPortuguese},
  472. #endif 
  473. #if defined(__MMI_LANG_TURKISH__)
  474.     {SSC_TURKISH, MMI_FALSE, SSCHandleLngTurkish},
  475. #endif 
  476. #if defined(__MMI_LANG_VIETNAMESE__)
  477.     {SSC_VIETNAMESE, MMI_FALSE, SSCHandleLngVietnamese},
  478. #endif 
  479. #if defined(__MMI_LANG_INDONESIAN__)
  480.     {SSC_INDONESIAN, MMI_FALSE, SSCHandleLngIndonesian},
  481. #endif 
  482.     /* PMT CZ_PO_TU START 20050812 */
  483. #if defined(__MMI_LANG_CZECH__)
  484.     {SSC_CZECH, MMI_FALSE, SSCHandleLngCzech},
  485. #endif 
  486.     /* PMT CZ_PO_TU END 20050812 */
  487. #if defined(__MMI_LANG_MALAY__)
  488.     {SSC_MALAY, MMI_FALSE, SSCHandleLngMalay},
  489. #endif 
  490.     /* PMT START HU_FI 20050825 */
  491. #if defined(__MMI_LANG_FINNISH__)
  492.     {SSC_FINNISH, MMI_FALSE, SSCHandleLngFinnish},
  493. #endif 
  494. #if defined(__MMI_LANG_HUNGARIAN__)
  495.     {SSC_HUNGARIAN, MMI_FALSE, SSCHandleLngHungarian},
  496. #endif 
  497.     //PMT END HU_FI 20050825
  498.     //PMT NO_AR_SL_DU START 20050909
  499. #if defined(__MMI_LANG_SLOVAK__)
  500.     {SSC_SLOVAK, MMI_FALSE, SSCHandleLngSlovak},
  501. #endif 
  502. #if defined(__MMI_LANG_DUTCH__)
  503.     {SSC_DUTCH, MMI_FALSE, SSCHandleLngDutch},
  504. #endif 
  505.     /* Norwegian start */
  506. #if defined(__MMI_LANG_NORWEGIAN__)
  507.     {SSC_NORWEGIAN, MMI_FALSE, SSCHandleLngNorwegian},
  508. #endif 
  509.     //Norwegian end
  510.     //PMT NO_AR_SL_DU END 20050909
  511.     //PMT START SWEDISH 20050916
  512. #if defined(__MMI_LANG_SWEDISH__)
  513.     {SSC_SWEDISH, MMI_FALSE, SSCHandleLngSwedish},
  514. #endif 
  515.     //PMT END SWEDISH 20050916
  516.     //PMT START CR_ROM_SLO 20050923
  517. #if defined(__MMI_LANG_CROATIAN__)
  518.     {SSC_CROATIAN, MMI_FALSE, SSCHandleLngCroatian},
  519. #endif 
  520. #if defined(__MMI_LANG_ROMANIAN__)
  521.     {SSC_ROMANIAN, MMI_FALSE, SSCHandleLngRomanian},
  522. #endif 
  523. #if defined(__MMI_LANG_SLOVENIAN__)
  524.     {SSC_SLOVENIAN, MMI_FALSE, SSCHandleLngSlovenian},
  525. #endif 
  526.     /* PMT END CR_ROM_SLO 20050923 */
  527.     /* MTK end */
  528.     /* PMT START GR_HE_CZ_FI_DA_HU 20051007 */
  529. #if defined(__MMI_LANG_GREEK__)
  530.     {SSC_GREEK, MMI_FALSE, SSCHandleLngGreek},
  531. #endif 
  532.     /* PMT START 20060714 */
  533. #if defined (__MMI_LANG_HEBREW__)
  534.     /* PMT END 20060714 */
  535.     {SSC_HEBREW, MMI_FALSE, SSCHandleLngHebrew},
  536.     /* PMT START 20060714 */
  537. #endif /* defined (__MMI_LANG_HEBREW__) */ 
  538.     /* PMT END 20060714 */
  539.     /* PMT END GR_HE_CZ_FI_DA_HU 20051007 */
  540.     /* PMT START 20060714 */
  541. #if defined (__MMI_LANG_ARABIC__)
  542.     /* PMT END 20060714 */
  543.     {SSC_ARABIC, MMI_FALSE, SSCHandleLngArabic},
  544.     /* PMT START 20060714 */
  545. #endif /* defined (__MMI_LANG_ARABIC__) */ 
  546.     /* PMT START PERSIAN */
  547. #if defined (__MMI_LANG_PERSIAN__)
  548.     {SSC_PERSIAN, MMI_FALSE, SSCHandleLngPersian},
  549. #endif 
  550.     /* PMT END PERSIAN */
  551. #if defined (__MMI_LANG_HINDI__)
  552.     /* PMT END 20060714 */
  553.     {SSC_HINDI, MMI_FALSE, SSCHandleLngHindi},
  554.     /* PMT START 20060714 */
  555. #endif /* defined (__MMI_LANG_HINDI__) */ 
  556.     /* PMT RAKESH START 20061006 */
  557. #if defined (__MMI_LANG_MARATHI__)
  558.     {SSC_MARATHI, MMI_FALSE, SSCHandleLngMarathi},
  559. #endif 
  560.     /* PMT RAKESH END 20061006 */
  561.     /* PMT END 20060714 */
  562.     {SSC_SCHINESE, MMI_FALSE, SSCHandleLngSimplify}
  563.     /* diamond, end */
  564. };
  565. /* micha1129 end */
  566. #ifdef __MMI_BT_PROFILE__
  567. U8 g_ssc_bt_a2dp_mode = 0;  /* 0: INT mode, 1: ACP mode, 2: ACP mode for PTS only */
  568. #endif 
  569. SSCSTRINGTBL ssc_table1[] = 
  570. {
  571.     {"*#06#", MMI_FALSE, SSCHandleIMEI},
  572.     /* {SSC_SW_VERSION,             SSCHandleSoftwareVersion}, */
  573.     {SSC_SW_VERSION, MMI_FALSE, SSCHandleSoftwareVersionSummary},
  574. #ifdef __MMI_HW_VERSION__
  575.     {SSC_HW_VERSION, MMI_FALSE, SSCHandleHardwareVersion},
  576. #endif
  577.     {SSC_ENGINEERING_MODE, MMI_TRUE, SSCHandleEngineerMode},
  578.     {SSC_FACTORY_MODE, MMI_TRUE, SSCHandleFactoryMode},
  579.     {SSC_FACTORY_MODE_AUTOTEST, MMI_TRUE, SSCHandleFactoryModeAutoTest},
  580.     {SSC_SERIAL_NUMBER, MMI_TRUE, SSCHandleSerialNumber},
  581.     {SSC_SET_LCD_CONTRAST, MMI_TRUE, SSCHandleLCDContrastSetting},
  582.     {SSC_IR_OPEN, MMI_FALSE, SSCHandleIrOpen},
  583.     {SSC_IR_CLOSE, MMI_FALSE, SSCHandleIrClose},
  584.     {SSC_DISABLE_FOR_SHIPMENT, MMI_FALSE, SSCHandleDisable},
  585. /* diamond, 2006/04/11 SML menu implementation */
  586. #ifdef __MMI_SML_MENU__
  587.     {SSC_SML_LOCK_CODE, MMI_FALSE, mmi_sml_entry_lock_category_selection},
  588.     {SSC_SML_UNLOCK_CODE, MMI_FALSE, mmi_sml_entry_unlock_category_selection},
  589.     {SSC_SML_ADD_CODE, MMI_FALSE, mmi_sml_entry_add_category_data},
  590.     {SSC_SML_REMOVE_CODE, MMI_FALSE, mmi_sml_entry_remove_category_data},
  591.     {SSC_SML_DEACTIVATE_CODE, MMI_FALSE, mmi_sml_entry_permanent_unlock_selection},
  592. #endif /* __MMI_SML_MENU__ */
  593. #ifdef __MMI_A2DP_SUPPORT__
  594. #if defined(__MMI_BT_MTK_SUPPORT__)
  595.     {SSC_BT_A2DP_TOGGLE_PTS_MODE, MMI_FALSE, SSCHandle_BT_A2DP_Toggle_PTS_Mode},
  596. #elif defined(__MMI_BT_BCHS_SUPPORT__)
  597.     {SSC_BT_A2DP_TOGGLE_INT_ACP_MODE, MMI_FALSE, SSCHandle_BT_A2DP_Toggle_INT_ACP_Mode},
  598.     {SSC_BT_A2DP_CLOSE_STREAM, MMI_FALSE, SSCHandle_BT_A2DP_Close_Stream},
  599. #endif
  600. #endif /* __MMI_A2DP_SUPPORT__ */ 
  601. #ifdef __BTMTK__
  602.     {BT_POWER_ON, MMI_FALSE, SSCHandle_BT_POWER_ON},
  603.     {BT_POWER_OFF, MMI_FALSE, SSCHandle_BT_POWER_OFF},
  604. #endif /* __BTMTK__ */ 
  605. #ifdef __MMI_BT_SUPPORT__
  606.     /* for pts V2.1.0.4 */
  607.     /* cannot update indicators to remote bluetooth headset while HFP is connected */
  608.     /* indicators shall be retrieved by remote HF AT+CIND? */
  609.     /* so for pts V2.1.0.4, host will not udpate indicators while HFP is just connected */
  610.     {BT_PTS_ON, MMI_FALSE, mmi_bt_enable_pts_test},
  611.     {BT_PTS_OFF, MMI_FALSE, mmi_bt_disable_pts_test},
  612. #endif /* __MMI_BT_SUPPORT__ */ 
  613.     {SSC_VENDORAPP, MMI_FALSE, SSCHandleVendorApp}
  614. };
  615. SIMSTRINGTBL sim_table[] = 
  616. {
  617.     {"**04*", 5, SendReqPIN1Status},
  618.     {"**042*", 6, SendReqPIN2Status},
  619.     {"**05*", 5, SSCEntryPUK1},
  620.     {"**052*", 6, SSCEntryPUK2}
  621. #ifdef __MMI_SML_MENU__
  622.     ,{SSC_SML_LOCK_CMD, 6, mmi_sml_send_lock_req_by_ssc}
  623.     ,{SSC_SML_UNLOCK_CMD, 6, mmi_sml_send_unlock_req_by_ssc}
  624.     ,{SSC_SML_QUERY_CMD, 7, mmi_sml_send_query_req_by_ssc}
  625. #endif /* __MMI_SML_MENU__ */
  626. };
  627. extern U16 gCurrLangIndex;
  628. extern sLanguageDetails *gLanguageArray;
  629. extern U8 gPLMN[];
  630. extern void RefreshNwProviderName(U8 *UpdatePlmn);
  631. /* extern void SendSetLanguage(U8 code); */
  632. #ifdef __MMI_ENGINEER_MODE__    /* MTK Add Robin 1001 for saperate MMI feature by project */
  633. extern void EntryEngineerModeMenu(void);
  634. #endif 
  635. #ifdef __MMI_FACTORY_MODE__     /* MTK Add Robin 1001 for saperate MMI feature by project */
  636. /* Lisen 0630 */
  637. extern void EntryFMMenu(void);
  638. extern void EntryFMMenuAutoTest(void);
  639. extern void EntryFMVersionSummaryMenu(void);
  640. extern void EntryFMLCDContrastMenuHdlr(void);
  641. #endif /* __MMI_FACTORY_MODE__ */ 
  642. /*****************************************************************************
  643.  * FUNCTION
  644.  *  SSCAbnormalReset
  645.  * DESCRIPTION
  646.  *  Abnormal reset testing
  647.  * PARAMETERS
  648.  *  void
  649.  * RETURNS
  650.  *  void
  651.  *****************************************************************************/
  652. void SSCAbnormalReset(void)
  653. {
  654.     /*----------------------------------------------------------------*/
  655.     /* Local Variables                                                */
  656.     /*----------------------------------------------------------------*/
  657.     /*----------------------------------------------------------------*/
  658.     /* Code Body                                                      */
  659.     /*----------------------------------------------------------------*/
  660. #ifdef MMI_ON_HARDWARE_P
  661.     ASSERT(0);
  662. #endif 
  663. }
  664. /*****************************************************************************
  665.  * FUNCTION
  666.  *  SSCHandleLngAutoMode
  667.  * DESCRIPTION
  668.  *  Set Auto language selction
  669.  * PARAMETERS
  670.  *  void
  671.  * RETURNS
  672.  *  void
  673.  *****************************************************************************/
  674. void SSCHandleLngAutoMode(void)
  675. {
  676.     /*----------------------------------------------------------------*/
  677.     /* Local Variables                                                */
  678.     /*----------------------------------------------------------------*/
  679.     S16 error;
  680.     U8 count = 0;
  681.     /*----------------------------------------------------------------*/
  682.     /* Code Body                                                      */
  683.     /*----------------------------------------------------------------*/
  684.     PRINT_INFORMATION(("This is show the SSCHandleLngAutoMode"));
  685.     DisplayIdleScreen();
  686.     for (count = 0; count < MAX_LANGUAGES; count++)
  687.     {
  688.         if (strcmp((PS8) gLanguageArray[count].aLangSSC, SSC_DEFAULT) == 0)
  689.         {
  690.             if (gCurrLangIndex != count)
  691.             {
  692.                 SetCurrentLanguage(count);
  693.                 WriteValue(NVRAM_SETTING_LANG, &count, DS_BYTE, &error);
  694.                 RefreshNwProviderName(gPLMN);
  695.          /************************************************/
  696.                 /* Robin 0602, Remove set AT command profile functions */
  697.                 /* AT command will query MMI when needed                   */
  698.                 /* Send to PS for AT+CLAE                                            */
  699.          /************************************************/
  700.                 SendLangChange2AT(count);
  701.             #ifdef __MMI_SUBLCD__
  702.                 switch (g_idle_context.IsSubLcdOnIdleScreen)
  703.                 {
  704.                     case SUBLCD_ON_IDLE_NORMAL:
  705.                         ShowIdleAppSubLcd();
  706.                         break;
  707.                     case SUBLCD_ON_IDLE_INSERT_SIM:
  708.                         ShowSubLCDSimError();
  709.                         break;
  710.                     case SUBLCD_ON_IDLE_SIM_BLOCKED:
  711.                         ShowSubLCDBlockedSIM();
  712.                         break;
  713.                     case SUBLCD_NOT_ON_IDLE:    /* Lisen 0617: could switch to other screen, like receiving an SMS */
  714.                         break;
  715.                     default:
  716.                         ASSERT(0);
  717.                 }
  718.             #endif /* __MMI_SUBLCD__ */ 
  719.             }
  720.             DisplayPopup(
  721.                 (U8*) GetString(SSC_SCR_LANGUAGE_DEFAULT_STR_ID),
  722.                 IMG_GLOBAL_ACTIVATED,
  723.                 1,
  724.                 SSC_POP_UP_TIME,
  725.                 (U8) SUCCESS_TONE);
  726.             return;
  727.         }
  728.     }
  729.     DisplayPopup((U8*) GetString(SSC_STR_ERR_SET_DEFAULT), IMG_GLOBAL_WARNING, 0, SSC_POP_UP_TIME, (U8) ERROR_TONE);
  730. }
  731. /*****************************************************************************
  732.  * FUNCTION
  733.  *  SSCHandleLngEnglish
  734.  * DESCRIPTION
  735.  *  Set English language
  736.  * PARAMETERS
  737.  *  void
  738.  * RETURNS
  739.  *  void
  740.  *****************************************************************************/
  741. void SSCHandleLngEnglish(void)
  742. {
  743.     /*----------------------------------------------------------------*/
  744.     /* Local Variables                                                */
  745.     /*----------------------------------------------------------------*/
  746.     S16 error;
  747.     U8 count = 0;
  748.     /*----------------------------------------------------------------*/
  749.     /* Code Body                                                      */
  750.     /*----------------------------------------------------------------*/
  751.     PRINT_INFORMATION(("This is set English language"));
  752.     DisplayIdleScreen();
  753.     for (count = 0; count < MAX_LANGUAGES; count++)
  754.     {
  755.         if (strcmp((PS8) gLanguageArray[count].aLangSSC, SSC_ENGLISH) == 0)
  756.         {
  757.             if (gCurrLangIndex != count)
  758.             {
  759.                 SetCurrentLanguage(count);
  760.                 WriteValue(NVRAM_SETTING_LANG, &count, DS_BYTE, &error);
  761.                 RefreshNwProviderName(gPLMN);
  762.          /************************************************/
  763.                 /* Robin 0602, Remove set AT command profile functions */
  764.                 /* AT command will query MMI when needed                   */
  765.                 /* Send to PS for AT+CLAE                                            */
  766.          /************************************************/
  767.                 SendLangChange2AT(count);
  768.             #ifdef __MMI_SUBLCD__
  769.                 switch (g_idle_context.IsSubLcdOnIdleScreen)
  770.                 {
  771.                     case SUBLCD_ON_IDLE_NORMAL:
  772.                         ShowIdleAppSubLcd();
  773.                         break;
  774.                     case SUBLCD_ON_IDLE_INSERT_SIM:
  775.                         ShowSubLCDSimError();
  776.                         break;
  777.                     case SUBLCD_ON_IDLE_SIM_BLOCKED:
  778.                         ShowSubLCDBlockedSIM();
  779.                         break;
  780.                     case SUBLCD_NOT_ON_IDLE:    /* Lisen 0617: could switch to other screen, like receiving an SMS */
  781.                         break;
  782.                     default:
  783.                         ASSERT(0);
  784.                 }
  785.             #endif /* __MMI_SUBLCD__ */ 
  786.             }
  787.             DisplayPopup(
  788.                 (U8*) GetString(SSC_SCR_LANGUAGE_ENGLISH_STR_ID),
  789.                 IMG_GLOBAL_ACTIVATED,
  790.                 1,
  791.                 SSC_POP_UP_TIME,
  792.                 (U8) SUCCESS_TONE);
  793.             return;
  794.         }
  795.     }
  796.     DisplayPopup((U8*) GetString(SSC_STR_ERR_SET_ENGLISH), IMG_GLOBAL_WARNING, 0, SSC_POP_UP_TIME, (U8) ERROR_TONE);
  797. }
  798. /*****************************************************************************
  799.  * FUNCTION
  800.  *  SSCHandleLngChinese
  801.  * DESCRIPTION
  802.  *  Set Traditional Chinese language
  803.  * PARAMETERS
  804.  *  void
  805.  * RETURNS
  806.  *  void
  807.  *****************************************************************************/
  808. void SSCHandleLngChinese(void)
  809. {
  810.     /*----------------------------------------------------------------*/
  811.     /* Local Variables                                                */
  812.     /*----------------------------------------------------------------*/
  813.     S16 error;
  814.     U8 count = 0;
  815.     /*----------------------------------------------------------------*/
  816.     /* Code Body                                                      */
  817.     /*----------------------------------------------------------------*/
  818.     PRINT_INFORMATION(("This is set Traditional Chinese language"));
  819.     DisplayIdleScreen();
  820.     for (count = 0; count < MAX_LANGUAGES; count++)
  821.     {
  822.         if (strcmp((PS8) gLanguageArray[count].aLangSSC, SSC_TCHINESE) == 0)
  823.         {
  824.             if (gCurrLangIndex != count)
  825.             {
  826.                 SetCurrentLanguage(count);
  827.                 WriteValue(NVRAM_SETTING_LANG, &count, DS_BYTE, &error);
  828.                 RefreshNwProviderName(gPLMN);
  829.          /************************************************/
  830.                 /* Robin 0602, Remove set AT command profile functions */
  831.                 /* AT command will query MMI when needed                   */
  832.                 /* Send to PS for AT+CLAE                                            */
  833.          /************************************************/
  834.                 SendLangChange2AT(count);
  835.             #ifdef __MMI_SUBLCD__
  836.                 switch (g_idle_context.IsSubLcdOnIdleScreen)
  837.                 {
  838.                     case SUBLCD_ON_IDLE_NORMAL:
  839.                         ShowIdleAppSubLcd();
  840.                         break;
  841.                     case SUBLCD_ON_IDLE_INSERT_SIM:
  842.                         ShowSubLCDSimError();
  843.                         break;
  844.                     case SUBLCD_ON_IDLE_SIM_BLOCKED:
  845.                         ShowSubLCDBlockedSIM();
  846.                         break;
  847.                     case SUBLCD_NOT_ON_IDLE:    /* Lisen 0617: could switch to other screen, like receiving an SMS */
  848.                         break;
  849.                     default:
  850.                         ASSERT(0);
  851.                 }
  852.             #endif /* __MMI_SUBLCD__ */ 
  853.             }
  854.             DisplayPopup(
  855.                 (U8*) GetString(SSC_SCR_LANGUAGE_TCHINESE_STR_ID),
  856.                 IMG_GLOBAL_ACTIVATED,
  857.                 1,
  858.                 SSC_POP_UP_TIME,
  859.                 (U8) SUCCESS_TONE);
  860.             return;
  861.         }
  862.     }
  863.     DisplayPopup((U8*) GetString(SSC_STR_ERR_SET_TCHINESE), IMG_GLOBAL_WARNING, 0, SSC_POP_UP_TIME, (U8) ERROR_TONE);
  864. }
  865. /*****************************************************************************
  866.  * FUNCTION
  867.  *  SSCHandleLngSimplify
  868.  * DESCRIPTION
  869.  *  Set Simplify Chinese language
  870.  * PARAMETERS
  871.  *  void
  872.  * RETURNS
  873.  *  void
  874.  *****************************************************************************/
  875. void SSCHandleLngSimplify(void)
  876. {
  877.     /*----------------------------------------------------------------*/
  878.     /* Local Variables                                                */
  879.     /*----------------------------------------------------------------*/
  880.     S16 error;
  881.     U8 count = 0;
  882.     /*----------------------------------------------------------------*/
  883.     /* Code Body                                                      */
  884.     /*----------------------------------------------------------------*/
  885.     PRINT_INFORMATION(("This is set Simplify Chinese language"));
  886.     DisplayIdleScreen();
  887.     for (count = 0; count < MAX_LANGUAGES; count++)
  888.     {
  889.         if (strcmp((PS8) gLanguageArray[count].aLangSSC, SSC_SCHINESE) == 0)
  890.         {
  891.             if (gCurrLangIndex != count)
  892.             {
  893.                 SetCurrentLanguage(count);
  894.                 WriteValue(NVRAM_SETTING_LANG, &count, DS_BYTE, &error);
  895.                 RefreshNwProviderName(gPLMN);
  896.          /************************************************/
  897.                 /* Robin 0602, Remove set AT command profile functions */
  898.                 /* AT command will query MMI when needed                   */
  899.                 /* Send to PS for AT+CLAE                                            */
  900.          /************************************************/
  901.                 SendLangChange2AT(count);
  902.             #ifdef __MMI_SUBLCD__
  903.                 switch (g_idle_context.IsSubLcdOnIdleScreen)
  904.                 {
  905.                     case SUBLCD_ON_IDLE_NORMAL:
  906.                         ShowIdleAppSubLcd();
  907.                         break;
  908.                     case SUBLCD_ON_IDLE_INSERT_SIM:
  909.                         ShowSubLCDSimError();
  910.                         break;
  911.                     case SUBLCD_ON_IDLE_SIM_BLOCKED:
  912.                         ShowSubLCDBlockedSIM();
  913.                         break;
  914.                     case SUBLCD_NOT_ON_IDLE:    /* Lisen 0617: could switch to other screen, like receiving an SMS */
  915.                         break;
  916.                     default:
  917.                         ASSERT(0);
  918.                 }
  919.             #endif /* __MMI_SUBLCD__ */ 
  920.             }
  921.             DisplayPopup(
  922.                 (U8*) GetString(SSC_SCR_LANGUAGE_SCHINESE_STR_ID),
  923.                 IMG_GLOBAL_ACTIVATED,
  924.                 1,
  925.                 SSC_POP_UP_TIME,
  926.                 (U8) SUCCESS_TONE);
  927.             return;
  928.         }
  929.     }
  930.     DisplayPopup((U8*) GetString(SSC_STR_ERR_SET_SCHINESE), IMG_GLOBAL_WARNING, 0, SSC_POP_UP_TIME, (U8) ERROR_TONE);
  931. }
  932. /* MTK Terry for Spanish French German Italian Thai Russian Portuguese Turkish Vietnamese Indonesian Malay */
  933. #if defined(__MMI_LANG_SPANISH__)
  934. /*****************************************************************************
  935.  * FUNCTION
  936.  *  SSCHandleLngSpanish
  937.  * DESCRIPTION
  938.  *  Set Spanish language
  939.  * PARAMETERS
  940.  *  void
  941.  * RETURNS
  942.  *  void
  943.  *****************************************************************************/
  944. void SSCHandleLngSpanish(void)
  945. {
  946.     /*----------------------------------------------------------------*/
  947.     /* Local Variables                                                */
  948.     /*----------------------------------------------------------------*/
  949.     S16 error;
  950.     U8 count = 0;
  951.     /*----------------------------------------------------------------*/
  952.     /* Code Body                                                      */
  953.     /*----------------------------------------------------------------*/
  954.     PRINT_INFORMATION(("This is set Spanish language"));
  955.     DisplayIdleScreen();
  956.     for (count = 0; count < MAX_LANGUAGES; count++)
  957.     {
  958.         if (strcmp((PS8) gLanguageArray[count].aLangSSC, SSC_SPANISH) == 0)
  959.         {
  960.             if (gCurrLangIndex != count)
  961.             {
  962.                 SetCurrentLanguage(count);
  963.                 WriteValue(NVRAM_SETTING_LANG, &count, DS_BYTE, &error);
  964.                 RefreshNwProviderName(gPLMN);
  965.          /************************************************/
  966.                 /* Robin 0602, Remove set AT command profile functions */
  967.                 /* AT command will query MMI when needed                   */
  968.                 /* Send to PS for AT+CLAE                                            */
  969.          /************************************************/
  970.                 SendLangChange2AT(count);
  971.             #ifdef __MMI_SUBLCD__
  972.                 switch (g_idle_context.IsSubLcdOnIdleScreen)
  973.                 {
  974.                     case SUBLCD_ON_IDLE_NORMAL:
  975.                         ShowIdleAppSubLcd();
  976.                         break;
  977.                     case SUBLCD_ON_IDLE_INSERT_SIM:
  978.                         ShowSubLCDSimError();
  979.                         break;
  980.                     case SUBLCD_ON_IDLE_SIM_BLOCKED:
  981.                         ShowSubLCDBlockedSIM();
  982.                         break;
  983.                     case SUBLCD_NOT_ON_IDLE:    /* Lisen 0617: could switch to other screen, like receiving an SMS */
  984.                         break;
  985.                     default:
  986.                         ASSERT(0);
  987.                 }
  988.             #endif /* __MMI_SUBLCD__ */ 
  989.             }
  990.             DisplayPopup(
  991.                 (U8*) GetString(SSC_SCR_LANGUAGE_SPANISH_STR_ID),
  992.                 IMG_GLOBAL_ACTIVATED,
  993.                 1,
  994.                 SSC_POP_UP_TIME,
  995.                 (U8) SUCCESS_TONE);
  996.             return;
  997.         }
  998.     }
  999.     DisplayPopup((U8*) GetString(SSC_STR_ERR_SET_SPANISH), IMG_GLOBAL_WARNING, 0, SSC_POP_UP_TIME, (U8) ERROR_TONE);
  1000. }
  1001. #endif /* defined(__MMI_LANG_SPANISH__) */ 
  1002. /* PMT VIKASG START 20050729 */
  1003. #if defined(__MMI_LANG_DANISH__)
  1004. /*****************************************************************************
  1005.  * FUNCTION
  1006.  *  SSCHandleLngDanish
  1007.  * DESCRIPTION
  1008.  *  Set Danish language
  1009.  * PARAMETERS
  1010.  *  void
  1011.  * RETURNS
  1012.  *  void
  1013.  *****************************************************************************/
  1014. void SSCHandleLngDanish(void)
  1015. {
  1016.     /*----------------------------------------------------------------*/
  1017.     /* Local Variables                                                */
  1018.     /*----------------------------------------------------------------*/
  1019.     S16 error;
  1020.     U8 count = 0;
  1021.     /*----------------------------------------------------------------*/
  1022.     /* Code Body                                                      */
  1023.     /*----------------------------------------------------------------*/
  1024.     PRINT_INFORMATION(("This is set Danish language"));
  1025.     DisplayIdleScreen();
  1026.     for (count = 0; count < MAX_LANGUAGES; count++)
  1027.     {
  1028.         if (strcmp((PS8) gLanguageArray[count].aLangSSC, SSC_DANISH) == 0)
  1029.         {
  1030.             if (gCurrLangIndex != count)
  1031.             {
  1032.                 SetCurrentLanguage(count);
  1033.                 WriteValue(NVRAM_SETTING_LANG, &count, DS_BYTE, &error);
  1034.                 RefreshNwProviderName(gPLMN);
  1035.          /************************************************/
  1036.                 /* Robin 0602, Remove set AT command profile functions */
  1037.                 /* AT command will query MMI when needed                   */
  1038.                 /* Send to PS for AT+CLAE                                            */
  1039.          /************************************************/
  1040.                 SendLangChange2AT(count);
  1041.             #ifdef __MMI_SUBLCD__
  1042.                 switch (g_idle_context.IsSubLcdOnIdleScreen)
  1043.                 {
  1044.                     case SUBLCD_ON_IDLE_NORMAL:
  1045.                         ShowIdleAppSubLcd();
  1046.                         break;
  1047.                     case SUBLCD_ON_IDLE_INSERT_SIM:
  1048.                         ShowSubLCDSimError();
  1049.                         break;
  1050.                     case SUBLCD_ON_IDLE_SIM_BLOCKED:
  1051.                         ShowSubLCDBlockedSIM();
  1052.                         break;
  1053.                     case SUBLCD_NOT_ON_IDLE:    /* Lisen 0617: could switch to other screen, like receiving an SMS */
  1054.                         break;
  1055.                     default:
  1056.                         ASSERT(0);
  1057.                 }
  1058.             #endif /* __MMI_SUBLCD__ */ 
  1059.             }
  1060.             DisplayPopup(
  1061.                 (U8*) GetString(SSC_SCR_LANGUAGE_DANISH_STR_ID),
  1062.                 IMG_GLOBAL_ACTIVATED,
  1063.                 1,
  1064.                 SSC_POP_UP_TIME,
  1065.                 (U8) SUCCESS_TONE);
  1066.             return;
  1067.         }
  1068.     }
  1069.     DisplayPopup((U8*) GetString(SSC_STR_ERR_SET_DANISH), IMG_GLOBAL_WARNING, 0, SSC_POP_UP_TIME, (U8) ERROR_TONE);
  1070. }
  1071. #endif /* defined(__MMI_LANG_DANISH__) */ 
  1072. //PMT VIKASG END 20050729
  1073. //PMT CZ_PO_TU START 20050812
  1074. #if defined(__MMI_LANG_POLISH__)
  1075. /*****************************************************************************
  1076.  * FUNCTION
  1077.  *  SSCHandleLngPolish
  1078.  * DESCRIPTION
  1079.  *  Set Polish language
  1080.  * PARAMETERS
  1081.  *  void
  1082.  * RETURNS
  1083.  *  void
  1084.  *****************************************************************************/
  1085. void SSCHandleLngPolish(void)
  1086. {
  1087.     /*----------------------------------------------------------------*/
  1088.     /* Local Variables                                                */
  1089.     /*----------------------------------------------------------------*/
  1090.     S16 error;
  1091.     U8 count = 0;
  1092.     /*----------------------------------------------------------------*/
  1093.     /* Code Body                                                      */
  1094.     /*----------------------------------------------------------------*/
  1095.     PRINT_INFORMATION(("This is set Polish language"));
  1096.     DisplayIdleScreen();
  1097.     for (count = 0; count < MAX_LANGUAGES; count++)
  1098.     {
  1099.         if (strcmp((PS8) gLanguageArray[count].aLangSSC, SSC_POLISH) == 0)
  1100.         {
  1101.             if (gCurrLangIndex != count)
  1102.             {
  1103.                 SetCurrentLanguage(count);
  1104.                 WriteValue(NVRAM_SETTING_LANG, &count, DS_BYTE, &error);
  1105.                 RefreshNwProviderName(gPLMN);
  1106.          /************************************************/
  1107.                 /* Robin 0602, Remove set AT command profile functions */
  1108.                 /* AT command will query MMI when needed                   */
  1109.                 /* Send to PS for AT+CLAE                                            */
  1110.          /************************************************/
  1111.                 SendLangChange2AT(count);
  1112.             #ifdef __MMI_SUBLCD__
  1113.                 switch (g_idle_context.IsSubLcdOnIdleScreen)
  1114.                 {
  1115.                     case SUBLCD_ON_IDLE_NORMAL:
  1116.                         ShowIdleAppSubLcd();
  1117.                         break;
  1118.                     case SUBLCD_ON_IDLE_INSERT_SIM:
  1119.                         ShowSubLCDSimError();
  1120.                         break;
  1121.                     case SUBLCD_ON_IDLE_SIM_BLOCKED:
  1122.                         ShowSubLCDBlockedSIM();
  1123.                         break;
  1124.                     case SUBLCD_NOT_ON_IDLE:    /* Lisen 0617: could switch to other screen, like receiving an SMS */
  1125.                         break;
  1126.                     default:
  1127.                         ASSERT(0);
  1128.                 }
  1129.             #endif /* __MMI_SUBLCD__ */ 
  1130.             }
  1131.             DisplayPopup(
  1132.                 (U8*) GetString(SSC_SCR_LANGUAGE_POLISH_STR_ID),
  1133.                 IMG_GLOBAL_ACTIVATED,
  1134.                 1,
  1135.                 SSC_POP_UP_TIME,
  1136.                 (U8) SUCCESS_TONE);
  1137.             return;
  1138.         }
  1139.     }
  1140.     DisplayPopup((U8*) GetString(SSC_STR_ERR_SET_POLISH), IMG_GLOBAL_WARNING, 0, SSC_POP_UP_TIME, (U8) ERROR_TONE);
  1141. }
  1142. #endif /* defined(__MMI_LANG_POLISH__) */ 
  1143. /* PMT CZ_PO_TU END 20050812 */
  1144. #if defined(__MMI_LANG_FRENCH__)
  1145. /*****************************************************************************
  1146.  * FUNCTION
  1147.  *  SSCHandleLngFrench
  1148.  * DESCRIPTION
  1149.  *  Set French language
  1150.  * PARAMETERS
  1151.  *  void
  1152.  * RETURNS
  1153.  *  void
  1154.  *****************************************************************************/
  1155. void SSCHandleLngFrench(void)
  1156. {
  1157.     /*----------------------------------------------------------------*/
  1158.     /* Local Variables                                                */
  1159.     /*----------------------------------------------------------------*/
  1160.     S16 error;
  1161.     U8 count = 0;
  1162.     /*----------------------------------------------------------------*/
  1163.     /* Code Body                                                      */
  1164.     /*----------------------------------------------------------------*/
  1165.     PRINT_INFORMATION(("This is set French language"));
  1166.     DisplayIdleScreen();
  1167.     for (count = 0; count < MAX_LANGUAGES; count++)
  1168.     {
  1169.         if (strcmp((PS8) gLanguageArray[count].aLangSSC, SSC_FRENCH) == 0)
  1170.         {
  1171.             if (gCurrLangIndex != count)
  1172.             {
  1173.                 SetCurrentLanguage(count);
  1174.                 WriteValue(NVRAM_SETTING_LANG, &count, DS_BYTE, &error);
  1175.                 RefreshNwProviderName(gPLMN);
  1176.          /************************************************/
  1177.                 /* Robin 0602, Remove set AT command profile functions */
  1178.                 /* AT command will query MMI when needed                   */
  1179.                 /* Send to PS for AT+CLAE                                            */
  1180.          /************************************************/
  1181.                 SendLangChange2AT(count);
  1182.             #ifdef __MMI_SUBLCD__
  1183.                 switch (g_idle_context.IsSubLcdOnIdleScreen)
  1184.                 {
  1185.                     case SUBLCD_ON_IDLE_NORMAL:
  1186.                         ShowIdleAppSubLcd();
  1187.                         break;
  1188.                     case SUBLCD_ON_IDLE_INSERT_SIM:
  1189.                         ShowSubLCDSimError();
  1190.                         break;
  1191.                     case SUBLCD_ON_IDLE_SIM_BLOCKED:
  1192.                         ShowSubLCDBlockedSIM();
  1193.                         break;
  1194.                     case SUBLCD_NOT_ON_IDLE:    /* Lisen 0617: could switch to other screen, like receiving an SMS */
  1195.                         break;
  1196.                     default:
  1197.                         ASSERT(0);
  1198.                 }
  1199.             #endif /* __MMI_SUBLCD__ */ 
  1200.             }
  1201.             DisplayPopup(
  1202.                 (U8*) GetString(SSC_SCR_LANGUAGE_FRENCH_STR_ID),
  1203.                 IMG_GLOBAL_ACTIVATED,
  1204.                 1,
  1205.                 SSC_POP_UP_TIME,
  1206.                 (U8) SUCCESS_TONE);
  1207.             return;
  1208.         }
  1209.     }
  1210.     DisplayPopup((U8*) GetString(SSC_STR_ERR_SET_FRENCH), IMG_GLOBAL_WARNING, 0, SSC_POP_UP_TIME, (U8) ERROR_TONE);
  1211. }
  1212. #endif /* defined(__MMI_LANG_FRENCH__) */ 
  1213. #if defined(__MMI_LANG_GERMAN__)
  1214. /*****************************************************************************
  1215.  * FUNCTION
  1216.  *  SSCHandleLngGerman
  1217.  * DESCRIPTION
  1218.  *  Set German language
  1219.  * PARAMETERS
  1220.  *  void
  1221.  * RETURNS
  1222.  *  void
  1223.  *****************************************************************************/
  1224. void SSCHandleLngGerman(void)
  1225. {
  1226.     /*----------------------------------------------------------------*/
  1227.     /* Local Variables                                                */
  1228.     /*----------------------------------------------------------------*/
  1229.     S16 error;
  1230.     U8 count = 0;
  1231.     /*----------------------------------------------------------------*/
  1232.     /* Code Body                                                      */
  1233.     /*----------------------------------------------------------------*/
  1234.     PRINT_INFORMATION(("This is set German language"));
  1235.     DisplayIdleScreen();
  1236.     for (count = 0; count < MAX_LANGUAGES; count++)
  1237.     {
  1238.         if (strcmp((PS8) gLanguageArray[count].aLangSSC, SSC_GERMAN) == 0)
  1239.         {
  1240.             if (gCurrLangIndex != count)
  1241.             {
  1242.                 SetCurrentLanguage(count);
  1243.                 WriteValue(NVRAM_SETTING_LANG, &count, DS_BYTE, &error);
  1244.                 RefreshNwProviderName(gPLMN);
  1245.          /************************************************/
  1246.                 /* Robin 0602, Remove set AT command profile functions */
  1247.                 /* AT command will query MMI when needed                   */
  1248.                 /* Send to PS for AT+CLAE                                            */
  1249.          /************************************************/
  1250.                 SendLangChange2AT(count);
  1251.             #ifdef __MMI_SUBLCD__
  1252.                 switch (g_idle_context.IsSubLcdOnIdleScreen)
  1253.                 {
  1254.                     case SUBLCD_ON_IDLE_NORMAL:
  1255.                         ShowIdleAppSubLcd();
  1256.                         break;
  1257.                     case SUBLCD_ON_IDLE_INSERT_SIM:
  1258.                         ShowSubLCDSimError();
  1259.                         break;
  1260.                     case SUBLCD_ON_IDLE_SIM_BLOCKED:
  1261.                         ShowSubLCDBlockedSIM();
  1262.                         break;
  1263.                     case SUBLCD_NOT_ON_IDLE:    /* Lisen 0617: could switch to other screen, like receiving an SMS */
  1264.                         break;
  1265.                     default:
  1266.                         ASSERT(0);
  1267.                 }
  1268.             #endif /* __MMI_SUBLCD__ */ 
  1269.             }
  1270.             DisplayPopup(
  1271.                 (U8*) GetString(SSC_SCR_LANGUAGE_GERMAN_STR_ID),
  1272.                 IMG_GLOBAL_ACTIVATED,
  1273.                 1,
  1274.                 SSC_POP_UP_TIME,
  1275.                 (U8) SUCCESS_TONE);
  1276.             return;
  1277.         }
  1278.     }
  1279.     DisplayPopup((U8*) GetString(SSC_STR_ERR_SET_GERMAN), IMG_GLOBAL_WARNING, 0, SSC_POP_UP_TIME, (U8) ERROR_TONE);
  1280. }
  1281. #endif /* defined(__MMI_LANG_GERMAN__) */ 
  1282. #if defined(__MMI_LANG_ITALIAN__)
  1283. /*****************************************************************************
  1284.  * FUNCTION
  1285.  *  SSCHandleLngItalian
  1286.  * DESCRIPTION
  1287.  *  Set Italian language
  1288.  * PARAMETERS
  1289.  *  void
  1290.  * RETURNS
  1291.  *  void
  1292.  *****************************************************************************/
  1293. void SSCHandleLngItalian(void)
  1294. {
  1295.     /*----------------------------------------------------------------*/
  1296.     /* Local Variables                                                */
  1297.     /*----------------------------------------------------------------*/
  1298.     S16 error;
  1299.     U8 count = 0;
  1300.     /*----------------------------------------------------------------*/
  1301.     /* Code Body                                                      */
  1302.     /*----------------------------------------------------------------*/
  1303.     PRINT_INFORMATION(("This is set Italian language"));
  1304.     DisplayIdleScreen();
  1305.     for (count = 0; count < MAX_LANGUAGES; count++)
  1306.     {
  1307.         if (strcmp((PS8) gLanguageArray[count].aLangSSC, SSC_ITALIAN) == 0)
  1308.         {
  1309.             if (gCurrLangIndex != count)
  1310.             {
  1311.                 SetCurrentLanguage(count);
  1312.                 WriteValue(NVRAM_SETTING_LANG, &count, DS_BYTE, &error);
  1313.                 RefreshNwProviderName(gPLMN);
  1314.          /************************************************/
  1315.                 /* Robin 0602, Remove set AT command profile functions */
  1316.                 /* AT command will query MMI when needed                   */
  1317.                 /* Send to PS for AT+CLAE                                            */
  1318.          /************************************************/
  1319.                 SendLangChange2AT(count);
  1320.             #ifdef __MMI_SUBLCD__
  1321.                 switch (g_idle_context.IsSubLcdOnIdleScreen)
  1322.                 {
  1323.                     case SUBLCD_ON_IDLE_NORMAL:
  1324.                         ShowIdleAppSubLcd();
  1325.                         break;
  1326.                     case SUBLCD_ON_IDLE_INSERT_SIM:
  1327.                         ShowSubLCDSimError();
  1328.                         break;
  1329.                     case SUBLCD_ON_IDLE_SIM_BLOCKED:
  1330.                         ShowSubLCDBlockedSIM();
  1331.                         break;
  1332.                     case SUBLCD_NOT_ON_IDLE:    /* Lisen 0617: could switch to other screen, like receiving an SMS */
  1333.                         break;
  1334.                     default:
  1335.                         ASSERT(0);
  1336.                 }
  1337.             #endif /* __MMI_SUBLCD__ */ 
  1338.             }
  1339.             DisplayPopup(
  1340.                 (U8*) GetString(SSC_SCR_LANGUAGE_ITALIAN_STR_ID),
  1341.                 IMG_GLOBAL_ACTIVATED,
  1342.                 1,
  1343.                 SSC_POP_UP_TIME,
  1344.                 (U8) SUCCESS_TONE);
  1345.             return;
  1346.         }
  1347.     }
  1348.     DisplayPopup((U8*) GetString(SSC_STR_ERR_SET_ITALIAN), IMG_GLOBAL_WARNING, 0, SSC_POP_UP_TIME, (U8) ERROR_TONE);
  1349. }
  1350. #endif /* defined(__MMI_LANG_ITALIAN__) */ 
  1351. #if defined(__MMI_LANG_THAI__)
  1352. /*****************************************************************************
  1353.  * FUNCTION
  1354.  *  SSCHandleLngThai
  1355.  * DESCRIPTION
  1356.  *  Set Thai language
  1357.  * PARAMETERS
  1358.  *  void
  1359.  * RETURNS
  1360.  *  void
  1361.  *****************************************************************************/
  1362. void SSCHandleLngThai(void)
  1363. {
  1364.     /*----------------------------------------------------------------*/
  1365.     /* Local Variables                                                */
  1366.     /*----------------------------------------------------------------*/
  1367.     S16 error;
  1368.     U8 count = 0;
  1369.     /*----------------------------------------------------------------*/
  1370.     /* Code Body                                                      */
  1371.     /*----------------------------------------------------------------*/
  1372.     PRINT_INFORMATION(("This is set Thai language"));
  1373.     DisplayIdleScreen();
  1374.     for (count = 0; count < MAX_LANGUAGES; count++)
  1375.     {
  1376.         if (strcmp((PS8) gLanguageArray[count].aLangSSC, SSC_THAI) == 0)
  1377.         {
  1378.             if (gCurrLangIndex != count)
  1379.             {
  1380.                 SetCurrentLanguage(count);
  1381.                 WriteValue(NVRAM_SETTING_LANG, &count, DS_BYTE, &error);
  1382.                 RefreshNwProviderName(gPLMN);
  1383.          /************************************************/
  1384.                 /* Robin 0602, Remove set AT command profile functions */
  1385.                 /* AT command will query MMI when needed                   */
  1386.                 /* Send to PS for AT+CLAE                                            */
  1387.          /************************************************/
  1388.                 SendLangChange2AT(count);
  1389.             #ifdef __MMI_SUBLCD__
  1390.                 switch (g_idle_context.IsSubLcdOnIdleScreen)
  1391.                 {
  1392.                     case SUBLCD_ON_IDLE_NORMAL:
  1393.                         ShowIdleAppSubLcd();
  1394.                         break;
  1395.                     case SUBLCD_ON_IDLE_INSERT_SIM:
  1396.                         ShowSubLCDSimError();
  1397.                         break;
  1398.                     case SUBLCD_ON_IDLE_SIM_BLOCKED:
  1399.                         ShowSubLCDBlockedSIM();
  1400.                         break;
  1401.                     case SUBLCD_NOT_ON_IDLE:    /* Lisen 0617: could switch to other screen, like receiving an SMS */
  1402.                         break;
  1403.                     default:
  1404.                         ASSERT(0);
  1405.                 }
  1406.             #endif /* __MMI_SUBLCD__ */ 
  1407.             }
  1408.             DisplayPopup(
  1409.                 (U8*) GetString(SSC_SCR_LANGUAGE_THAI_STR_ID),
  1410.                 IMG_GLOBAL_ACTIVATED,
  1411.                 1,
  1412.                 SSC_POP_UP_TIME,
  1413.                 (U8) SUCCESS_TONE);
  1414.             return;
  1415.         }
  1416.     }
  1417.     DisplayPopup((U8*) GetString(SSC_STR_ERR_SET_THAI), IMG_GLOBAL_WARNING, 0, SSC_POP_UP_TIME, (U8) ERROR_TONE);
  1418. }
  1419. #endif /* defined(__MMI_LANG_THAI__) */ 
  1420. #if defined(__MMI_LANG_RUSSIAN__)
  1421. /*****************************************************************************
  1422.  * FUNCTION
  1423.  *  SSCHandleLngRussian
  1424.  * DESCRIPTION
  1425.  *  Set Russian language
  1426.  * PARAMETERS
  1427.  *  void
  1428.  * RETURNS
  1429.  *  void
  1430.  *****************************************************************************/
  1431. void SSCHandleLngRussian(void)
  1432. {
  1433.     /*----------------------------------------------------------------*/
  1434.     /* Local Variables                                                */
  1435.     /*----------------------------------------------------------------*/
  1436.     S16 error;
  1437.     U8 count = 0;
  1438.     /*----------------------------------------------------------------*/
  1439.     /* Code Body                                                      */
  1440.     /*----------------------------------------------------------------*/
  1441.     PRINT_INFORMATION(("This is set Russian language"));
  1442.     DisplayIdleScreen();
  1443.     for (count = 0; count < MAX_LANGUAGES; count++)
  1444.     {
  1445.         if (strcmp((PS8) gLanguageArray[count].aLangSSC, SSC_RUSSIAN) == 0)
  1446.         {
  1447.             if (gCurrLangIndex != count)
  1448.             {
  1449.                 SetCurrentLanguage(count);
  1450.                 WriteValue(NVRAM_SETTING_LANG, &count, DS_BYTE, &error);
  1451.                 RefreshNwProviderName(gPLMN);
  1452.          /************************************************/
  1453.                 /* Robin 0602, Remove set AT command profile functions */
  1454.                 /* AT command will query MMI when needed                   */
  1455.                 /* Send to PS for AT+CLAE                                            */
  1456.          /************************************************/
  1457.                 SendLangChange2AT(count);
  1458.             #ifdef __MMI_SUBLCD__
  1459.                 switch (g_idle_context.IsSubLcdOnIdleScreen)
  1460.                 {
  1461.                     case SUBLCD_ON_IDLE_NORMAL:
  1462.                         ShowIdleAppSubLcd();
  1463.                         break;
  1464.                     case SUBLCD_ON_IDLE_INSERT_SIM:
  1465.                         ShowSubLCDSimError();
  1466.                         break;
  1467.                     case SUBLCD_ON_IDLE_SIM_BLOCKED:
  1468.                         ShowSubLCDBlockedSIM();
  1469.                         break;
  1470.                     case SUBLCD_NOT_ON_IDLE:    /* Lisen 0617: could switch to other screen, like receiving an SMS */
  1471.                         break;
  1472.                     default:
  1473.                         ASSERT(0);
  1474.                 }
  1475.             #endif /* __MMI_SUBLCD__ */ 
  1476.             }
  1477.             DisplayPopup(
  1478.                 (U8*) GetString(SSC_SCR_LANGUAGE_RUSSIAN_STR_ID),
  1479.                 IMG_GLOBAL_ACTIVATED,
  1480.                 1,
  1481.                 SSC_POP_UP_TIME,
  1482.                 (U8) SUCCESS_TONE);
  1483.             return;
  1484.         }
  1485.     }
  1486.     DisplayPopup((U8*) GetString(SSC_STR_ERR_SET_RUSSIAN), IMG_GLOBAL_WARNING, 0, SSC_POP_UP_TIME, (U8) ERROR_TONE);
  1487. }
  1488. #endif /* defined(__MMI_LANG_RUSSIAN__) */ 
  1489. /* PMT BULGARIAN START 20051201 */
  1490. #if defined(__MMI_LANG_BULGARIAN__)
  1491. /*****************************************************************************
  1492.  * FUNCTION
  1493.  *  SSCHandleLngBulgarian
  1494.  * DESCRIPTION
  1495.  *  Set Bulgarian language
  1496.  * PARAMETERS
  1497.  *  void
  1498.  * RETURNS
  1499.  *  void
  1500.  *****************************************************************************/
  1501. void SSCHandleLngBulgarian(void)
  1502. {
  1503.     /*----------------------------------------------------------------*/
  1504.     /* Local Variables                                                */
  1505.     /*----------------------------------------------------------------*/
  1506.     S16 error;
  1507.     U8 count = 0;
  1508.     /*----------------------------------------------------------------*/
  1509.     /* Code Body                                                      */
  1510.     /*----------------------------------------------------------------*/
  1511.     PRINT_INFORMATION(("This is set Bulgarian language"));
  1512.     DisplayIdleScreen();
  1513.     for (count = 0; count < MAX_LANGUAGES; count++)
  1514.     {
  1515.         if (strcmp((PS8) gLanguageArray[count].aLangSSC, SSC_BULGARIAN) == 0)
  1516.         {
  1517.             if (gCurrLangIndex != count)
  1518.             {
  1519.                 SetCurrentLanguage(count);
  1520.                 WriteValue(NVRAM_SETTING_LANG, &count, DS_BYTE, &error);
  1521.                 RefreshNwProviderName(gPLMN);
  1522.          /************************************************/
  1523.                 /* Robin 0602, Remove set AT command profile functions */
  1524.                 /* AT command will query MMI when needed                   */
  1525.                 /* Send to PS for AT+CLAE                                            */
  1526.          /************************************************/
  1527.                 SendLangChange2AT(count);
  1528.             #ifdef __MMI_SUBLCD__
  1529.                 switch (g_idle_context.IsSubLcdOnIdleScreen)
  1530.                 {
  1531.                     case SUBLCD_ON_IDLE_NORMAL:
  1532.                         ShowIdleAppSubLcd();
  1533.                         break;
  1534.                     case SUBLCD_ON_IDLE_INSERT_SIM:
  1535.                         ShowSubLCDSimError();
  1536.                         break;
  1537.                     case SUBLCD_ON_IDLE_SIM_BLOCKED:
  1538.                         ShowSubLCDBlockedSIM();
  1539.                         break;
  1540.                     case SUBLCD_NOT_ON_IDLE:    /* Lisen 0617: could switch to other screen, like receiving an SMS */
  1541.                         break;
  1542.                     default:
  1543.                         ASSERT(0);
  1544.                 }
  1545.             #endif /* __MMI_SUBLCD__ */ 
  1546.             }
  1547.             DisplayPopup(
  1548.                 (U8*) GetString(SSC_SCR_LANGUAGE_BULGARIAN_STR_ID),
  1549.                 IMG_GLOBAL_ACTIVATED,
  1550.                 1,
  1551.                 SSC_POP_UP_TIME,
  1552.                 (U8) SUCCESS_TONE);
  1553.             return;
  1554.         }
  1555.     }
  1556.     DisplayPopup((U8*) GetString(SSC_STR_ERR_SET_BULGARIAN), IMG_GLOBAL_WARNING, 0, SSC_POP_UP_TIME, (U8) ERROR_TONE);
  1557. }
  1558. #endif /* defined(__MMI_LANG_BULGARIAN__) */ 
  1559. /* PMT BULGARIAN END 20051201 */
  1560. #if defined(__MMI_LANG_PORTUGUESE__)
  1561. /*****************************************************************************
  1562.  * FUNCTION
  1563.  *  SSCHandleLngPortuguese
  1564.  * DESCRIPTION
  1565.  *  Set Portuguese language
  1566.  * PARAMETERS
  1567.  *  void
  1568.  * RETURNS
  1569.  *  void
  1570.  *****************************************************************************/
  1571. void SSCHandleLngPortuguese(void)
  1572. {
  1573.     /*----------------------------------------------------------------*/
  1574.     /* Local Variables                                                */
  1575.     /*----------------------------------------------------------------*/
  1576.     S16 error;
  1577.     U8 count = 0;
  1578.     /*----------------------------------------------------------------*/
  1579.     /* Code Body                                                      */
  1580.     /*----------------------------------------------------------------*/
  1581.     PRINT_INFORMATION(("This is set Portuguese language"));
  1582.     DisplayIdleScreen();
  1583.     for (count = 0; count < MAX_LANGUAGES; count++)
  1584.     {
  1585.         if (strcmp((PS8) gLanguageArray[count].aLangSSC, SSC_PORTUGUESE) == 0)
  1586.         {
  1587.             if (gCurrLangIndex != count)
  1588.             {
  1589.                 SetCurrentLanguage(count);
  1590.                 WriteValue(NVRAM_SETTING_LANG, &count, DS_BYTE, &error);
  1591.                 RefreshNwProviderName(gPLMN);
  1592.          /************************************************/
  1593.                 /* Robin 0602, Remove set AT command profile functions */
  1594.                 /* AT command will query MMI when needed                   */
  1595.                 /* Send to PS for AT+CLAE                                            */
  1596.          /************************************************/
  1597.                 SendLangChange2AT(count);
  1598.             #ifdef __MMI_SUBLCD__
  1599.                 switch (g_idle_context.IsSubLcdOnIdleScreen)
  1600.                 {
  1601.                     case SUBLCD_ON_IDLE_NORMAL:
  1602.                         ShowIdleAppSubLcd();
  1603.                         break;
  1604.                     case SUBLCD_ON_IDLE_INSERT_SIM:
  1605.                         ShowSubLCDSimError();
  1606.                         break;
  1607.                     case SUBLCD_ON_IDLE_SIM_BLOCKED:
  1608.                         ShowSubLCDBlockedSIM();
  1609.                         break;
  1610.                     case SUBLCD_NOT_ON_IDLE:    /* Lisen 0617: could switch to other screen, like receiving an SMS */
  1611.                         break;
  1612.                     default:
  1613.                         ASSERT(0);
  1614.                 }
  1615.             #endif /* __MMI_SUBLCD__ */ 
  1616.             }
  1617.             DisplayPopup(
  1618.                 (U8*) GetString(SSC_SCR_LANGUAGE_PORTUGUESE_STR_ID),
  1619.                 IMG_GLOBAL_ACTIVATED,
  1620.                 1,
  1621.                 SSC_POP_UP_TIME,
  1622.                 (U8) SUCCESS_TONE);
  1623.             return;
  1624.         }
  1625.     }
  1626.     DisplayPopup((U8*) GetString(SSC_STR_ERR_SET_PORTUGUESE), IMG_GLOBAL_WARNING, 0, SSC_POP_UP_TIME, (U8) ERROR_TONE);
  1627. }
  1628. #endif /* defined(__MMI_LANG_PORTUGUESE__) */ 
  1629. #if defined(__MMI_LANG_TURKISH__)
  1630. /*****************************************************************************
  1631.  * FUNCTION
  1632.  *  SSCHandleLngTurkish
  1633.  * DESCRIPTION
  1634.  *  Set Turkish language
  1635.  * PARAMETERS
  1636.  *  void
  1637.  * RETURNS
  1638.  *  void
  1639.  *****************************************************************************/
  1640. void SSCHandleLngTurkish(void)
  1641. {
  1642.     /*----------------------------------------------------------------*/
  1643.     /* Local Variables                                                */
  1644.     /*----------------------------------------------------------------*/
  1645.     S16 error;
  1646.     U8 count = 0;
  1647.     /*----------------------------------------------------------------*/
  1648.     /* Code Body                                                      */
  1649.     /*----------------------------------------------------------------*/
  1650.     PRINT_INFORMATION(("This is set Turkish language"));
  1651.     DisplayIdleScreen();
  1652.     for (count = 0; count < MAX_LANGUAGES; count++)
  1653.     {
  1654.         if (strcmp((PS8) gLanguageArray[count].aLangSSC, SSC_TURKISH) == 0)
  1655.         {
  1656.             if (gCurrLangIndex != count)
  1657.             {
  1658.                 SetCurrentLanguage(count);
  1659.                 WriteValue(NVRAM_SETTING_LANG, &count, DS_BYTE, &error);
  1660.                 RefreshNwProviderName(gPLMN);
  1661.          /************************************************/
  1662.                 /* Robin 0602, Remove set AT command profile functions */
  1663.                 /* AT command will query MMI when needed                   */
  1664.                 /* Send to PS for AT+CLAE                                            */
  1665.          /************************************************/
  1666.                 SendLangChange2AT(count);
  1667.             #ifdef __MMI_SUBLCD__
  1668.                 switch (g_idle_context.IsSubLcdOnIdleScreen)
  1669.                 {
  1670.                     case SUBLCD_ON_IDLE_NORMAL:
  1671.                         ShowIdleAppSubLcd();
  1672.                         break;
  1673.                     case SUBLCD_ON_IDLE_INSERT_SIM:
  1674.                         ShowSubLCDSimError();
  1675.                         break;
  1676.                     case SUBLCD_ON_IDLE_SIM_BLOCKED:
  1677.                         ShowSubLCDBlockedSIM();
  1678.                         break;
  1679.                     case SUBLCD_NOT_ON_IDLE:    /* Lisen 0617: could switch to other screen, like receiving an SMS */
  1680.                         break;
  1681.                     default:
  1682.                         ASSERT(0);
  1683.                 }
  1684.             #endif /* __MMI_SUBLCD__ */ 
  1685.             }
  1686.             DisplayPopup(
  1687.                 (U8*) GetString(SSC_SCR_LANGUAGE_TURKISH_STR_ID),
  1688.                 IMG_GLOBAL_ACTIVATED,
  1689.                 1,
  1690.                 SSC_POP_UP_TIME,
  1691.                 (U8) SUCCESS_TONE);
  1692.             return;
  1693.         }
  1694.     }
  1695.     DisplayPopup((U8*) GetString(SSC_STR_ERR_SET_TURKISH), IMG_GLOBAL_WARNING, 0, SSC_POP_UP_TIME, (U8) ERROR_TONE);
  1696. }
  1697. #endif /* defined(__MMI_LANG_TURKISH__) */ 
  1698. #if defined(__MMI_LANG_VIETNAMESE__)
  1699. /*****************************************************************************
  1700.  * FUNCTION
  1701.  *  SSCHandleLngVietnamese
  1702.  * DESCRIPTION
  1703.  *  Set Vietnamese language
  1704.  * PARAMETERS
  1705.  *  void
  1706.  * RETURNS
  1707.  *  void
  1708.  *****************************************************************************/
  1709. void SSCHandleLngVietnamese(void)
  1710. {
  1711.     /*----------------------------------------------------------------*/
  1712.     /* Local Variables                                                */
  1713.     /*----------------------------------------------------------------*/
  1714.     S16 error;
  1715.     U8 count = 0;
  1716.     /*----------------------------------------------------------------*/
  1717.     /* Code Body                                                      */
  1718.     /*----------------------------------------------------------------*/
  1719.     PRINT_INFORMATION(("This is set Vietnamese language"));
  1720.     DisplayIdleScreen();
  1721.     for (count = 0; count < MAX_LANGUAGES; count++)
  1722.     {
  1723.         if (strcmp((PS8) gLanguageArray[count].aLangSSC, SSC_VIETNAMESE) == 0)
  1724.         {
  1725.             if (gCurrLangIndex != count)
  1726.             {
  1727.                 SetCurrentLanguage(count);
  1728.                 WriteValue(NVRAM_SETTING_LANG, &count, DS_BYTE, &error);
  1729.                 RefreshNwProviderName(gPLMN);
  1730.          /************************************************/
  1731.                 /* Robin 0602, Remove set AT command profile functions */
  1732.                 /* AT command will query MMI when needed                   */
  1733.                 /* Send to PS for AT+CLAE                                            */
  1734.          /************************************************/
  1735.                 SendLangChange2AT(count);
  1736.             #ifdef __MMI_SUBLCD__
  1737.                 switch (g_idle_context.IsSubLcdOnIdleScreen)
  1738.                 {
  1739.                     case SUBLCD_ON_IDLE_NORMAL:
  1740.                         ShowIdleAppSubLcd();
  1741.                         break;
  1742.                     case SUBLCD_ON_IDLE_INSERT_SIM:
  1743.                         ShowSubLCDSimError();
  1744.                         break;
  1745.                     case SUBLCD_ON_IDLE_SIM_BLOCKED:
  1746.                         ShowSubLCDBlockedSIM();
  1747.                         break;
  1748.                     case SUBLCD_NOT_ON_IDLE:    /* Lisen 0617: could switch to other screen, like receiving an SMS */
  1749.                         break;
  1750.                     default:
  1751.                         ASSERT(0);
  1752.                 }
  1753.             #endif /* __MMI_SUBLCD__ */ 
  1754.             }
  1755.             DisplayPopup(
  1756.                 (U8*) GetString(SSC_SCR_LANGUAGE_VIETNAMESE_STR_ID),
  1757.                 IMG_GLOBAL_ACTIVATED,
  1758.                 1,
  1759.                 SSC_POP_UP_TIME,
  1760.                 (U8) SUCCESS_TONE);
  1761.             return;
  1762.         }
  1763.     }
  1764.     DisplayPopup((U8*) GetString(SSC_STR_ERR_SET_VIETNAMESE), IMG_GLOBAL_WARNING, 0, SSC_POP_UP_TIME, (U8) ERROR_TONE);
  1765. }
  1766. #endif /* defined(__MMI_LANG_VIETNAMESE__) */ 
  1767. #if defined(__MMI_LANG_INDONESIAN__)
  1768. /*****************************************************************************
  1769.  * FUNCTION
  1770.  *  SSCHandleLngIndonesian
  1771.  * DESCRIPTION
  1772.  *  Set Indonesian language
  1773.  * PARAMETERS
  1774.  *  void
  1775.  * RETURNS
  1776.  *  void
  1777.  *****************************************************************************/
  1778. void SSCHandleLngIndonesian(void)
  1779. {
  1780.     /*----------------------------------------------------------------*/
  1781.     /* Local Variables                                                */
  1782.     /*----------------------------------------------------------------*/
  1783.     S16 error;
  1784.     U8 count = 0;
  1785.     /*----------------------------------------------------------------*/
  1786.     /* Code Body                                                      */
  1787.     /*----------------------------------------------------------------*/
  1788.     PRINT_INFORMATION(("This is set Indonesian language"));
  1789.     DisplayIdleScreen();
  1790.     for (count = 0; count < MAX_LANGUAGES; count++)
  1791.     {
  1792.         if (strcmp((PS8) gLanguageArray[count].aLangSSC, SSC_INDONESIAN) == 0)
  1793.         {
  1794.             if (gCurrLangIndex != count)
  1795.             {
  1796.                 SetCurrentLanguage(count);
  1797.                 WriteValue(NVRAM_SETTING_LANG, &count, DS_BYTE, &error);
  1798.                 RefreshNwProviderName(gPLMN);
  1799.          /************************************************/
  1800.                 /* Robin 0602, Remove set AT command profile functions */
  1801.                 /* AT command will query MMI when needed                   */
  1802.                 /* Send to PS for AT+CLAE                                            */
  1803.          /************************************************/
  1804.                 SendLangChange2AT(count);
  1805.             #ifdef __MMI_SUBLCD__
  1806.                 switch (g_idle_context.IsSubLcdOnIdleScreen)
  1807.                 {
  1808.                     case SUBLCD_ON_IDLE_NORMAL:
  1809.                         ShowIdleAppSubLcd();
  1810.                         break;
  1811.                     case SUBLCD_ON_IDLE_INSERT_SIM:
  1812.                         ShowSubLCDSimError();
  1813.                         break;
  1814.                     case SUBLCD_ON_IDLE_SIM_BLOCKED:
  1815.                         ShowSubLCDBlockedSIM();
  1816.                         break;
  1817.                     case SUBLCD_NOT_ON_IDLE:    /* Lisen 0617: could switch to other screen, like receiving an SMS */
  1818.                         break;
  1819.                     default:
  1820.                         ASSERT(0);
  1821.                 }
  1822.             #endif /* __MMI_SUBLCD__ */ 
  1823.             }
  1824.             DisplayPopup(
  1825.                 (U8*) GetString(SSC_SCR_LANGUAGE_INDONESIAN_STR_ID),
  1826.                 IMG_GLOBAL_ACTIVATED,
  1827.                 1,
  1828.                 SSC_POP_UP_TIME,
  1829.                 (U8) SUCCESS_TONE);
  1830.             return;
  1831.         }
  1832.     }
  1833.     DisplayPopup((U8*) GetString(SSC_STR_ERR_SET_INDONESIAN), IMG_GLOBAL_WARNING, 0, SSC_POP_UP_TIME, (U8) ERROR_TONE);
  1834. }
  1835. #endif /* defined(__MMI_LANG_INDONESIAN__) */ 
  1836. /* PMT CZ_PO_TU START 20050812 */
  1837. #if defined(__MMI_LANG_CZECH__)
  1838. /*****************************************************************************
  1839.  * FUNCTION
  1840.  *  SSCHandleLngCzech
  1841.  * DESCRIPTION
  1842.  *  Set Czech language
  1843.  * PARAMETERS
  1844.  *  void
  1845.  * RETURNS
  1846.  *  void
  1847.  *****************************************************************************/
  1848. void SSCHandleLngCzech(void)
  1849. {
  1850.     /*----------------------------------------------------------------*/
  1851.     /* Local Variables                                                */
  1852.     /*----------------------------------------------------------------*/
  1853.     S16 error;
  1854.     U8 count = 0;
  1855.     /*----------------------------------------------------------------*/
  1856.     /* Code Body                                                      */
  1857.     /*----------------------------------------------------------------*/
  1858.     PRINT_INFORMATION(("This is set Czech language"));
  1859.     DisplayIdleScreen();
  1860.     for (count = 0; count < MAX_LANGUAGES; count++)
  1861.     {
  1862.         if (strcmp((PS8) gLanguageArray[count].aLangSSC, SSC_CZECH) == 0)
  1863.         {
  1864.             if (gCurrLangIndex != count)
  1865.             {
  1866.                 SetCurrentLanguage(count);
  1867.                 WriteValue(NVRAM_SETTING_LANG, &count, DS_BYTE, &error);
  1868.                 RefreshNwProviderName(gPLMN);
  1869.          /************************************************/
  1870.                 /* Robin 0602, Remove set AT command profile functions */
  1871.                 /* AT command will query MMI when needed                   */
  1872.                 /* Send to PS for AT+CLAE                                            */
  1873.          /************************************************/
  1874.                 SendLangChange2AT(count);
  1875.             #ifdef __MMI_SUBLCD__
  1876.                 switch (g_idle_context.IsSubLcdOnIdleScreen)
  1877.                 {
  1878.                     case SUBLCD_ON_IDLE_NORMAL:
  1879.                         ShowIdleAppSubLcd();
  1880.                         break;
  1881.                     case SUBLCD_ON_IDLE_INSERT_SIM:
  1882.                         ShowSubLCDSimError();
  1883.                         break;
  1884.                     case SUBLCD_ON_IDLE_SIM_BLOCKED:
  1885.                         ShowSubLCDBlockedSIM();
  1886.                         break;
  1887.                     case SUBLCD_NOT_ON_IDLE:    /* Lisen 0617: could switch to other screen, like receiving an SMS */
  1888.                         break;
  1889.                     default:
  1890.                         ASSERT(0);
  1891.                 }
  1892.             #endif /* __MMI_SUBLCD__ */ 
  1893.             }
  1894.             DisplayPopup(
  1895.                 (U8*) GetString(SSC_SCR_LANGUAGE_CZECH_STR_ID),
  1896.                 IMG_GLOBAL_ACTIVATED,
  1897.                 1,
  1898.                 SSC_POP_UP_TIME,
  1899.                 (U8) SUCCESS_TONE);
  1900.             return;
  1901.         }
  1902.     }
  1903.     DisplayPopup((U8*) GetString(SSC_STR_ERR_SET_CZECH), IMG_GLOBAL_WARNING, 0, SSC_POP_UP_TIME, (U8) ERROR_TONE);
  1904. }
  1905. #endif /* defined(__MMI_LANG_CZECH__) */ 
  1906. /* PMT CZ_PO_TU END 20050812 */
  1907. #if defined(__MMI_LANG_MALAY__)
  1908. /*****************************************************************************
  1909.  * FUNCTION
  1910.  *  SSCHandleLngMalay
  1911.  * DESCRIPTION
  1912.  *  Set Malay language
  1913.  * PARAMETERS
  1914.  *  void
  1915.  * RETURNS
  1916.  *  void
  1917.  *****************************************************************************/
  1918. void SSCHandleLngMalay(void)
  1919. {
  1920.     /*----------------------------------------------------------------*/
  1921.     /* Local Variables                                                */
  1922.     /*----------------------------------------------------------------*/
  1923.     S16 error;
  1924.     U8 count = 0;
  1925.     /*----------------------------------------------------------------*/
  1926.     /* Code Body                                                      */
  1927.     /*----------------------------------------------------------------*/
  1928.     PRINT_INFORMATION(("This is set Malay language"));
  1929.     DisplayIdleScreen();
  1930.     for (count = 0; count < MAX_LANGUAGES; count++)
  1931.     {
  1932.         if (strcmp((PS8) gLanguageArray[count].aLangSSC, SSC_MALAY) == 0)
  1933.         {
  1934.             if (gCurrLangIndex != count)
  1935.             {
  1936.                 SetCurrentLanguage(count);
  1937.                 WriteValue(NVRAM_SETTING_LANG, &count, DS_BYTE, &error);
  1938.                 RefreshNwProviderName(gPLMN);
  1939.          /************************************************/
  1940.                 /* Robin 0602, Remove set AT command profile functions */
  1941.                 /* AT command will query MMI when needed                   */
  1942.                 /* Send to PS for AT+CLAE                                            */
  1943.          /************************************************/
  1944.                 SendLangChange2AT(count);
  1945.             #ifdef __MMI_SUBLCD__
  1946.                 switch (g_idle_context.IsSubLcdOnIdleScreen)
  1947.                 {
  1948.                     case SUBLCD_ON_IDLE_NORMAL:
  1949.                         ShowIdleAppSubLcd();
  1950.                         break;
  1951.                     case SUBLCD_ON_IDLE_INSERT_SIM:
  1952.                         ShowSubLCDSimError();
  1953.                         break;
  1954.                     case SUBLCD_ON_IDLE_SIM_BLOCKED:
  1955.                         ShowSubLCDBlockedSIM();
  1956.                         break;
  1957.                     case SUBLCD_NOT_ON_IDLE:    /* Lisen 0617: could switch to other screen, like receiving an SMS */
  1958.                         break;
  1959.                     default:
  1960.                         ASSERT(0);
  1961.                 }
  1962.             #endif /* __MMI_SUBLCD__ */ 
  1963.             }
  1964.             DisplayPopup(
  1965.                 (U8*) GetString(SSC_SCR_LANGUAGE_MALAY_STR_ID),
  1966.                 IMG_GLOBAL_ACTIVATED,
  1967.                 1,
  1968.                 SSC_POP_UP_TIME,
  1969.                 (U8) SUCCESS_TONE);
  1970.             return;
  1971.         }
  1972.     }
  1973.     DisplayPopup((U8*) GetString(SSC_STR_ERR_SET_MALAY), IMG_GLOBAL_WARNING, 0, SSC_POP_UP_TIME, (U8) ERROR_TONE);
  1974. }
  1975. #endif /* defined(__MMI_LANG_MALAY__) */ 
  1976. /* PMT START HU_FI 20050825 */
  1977. #if defined(__MMI_LANG_FINNISH__)
  1978. /*****************************************************************************
  1979.  * FUNCTION
  1980.  *  SSCHandleLngFinnish
  1981.  * DESCRIPTION
  1982.  *  Set Finnish language
  1983.  * PARAMETERS
  1984.  *  void
  1985.  * RETURNS
  1986.  *  void
  1987.  *****************************************************************************/
  1988. void SSCHandleLngFinnish(void)
  1989. {
  1990.     /*----------------------------------------------------------------*/
  1991.     /* Local Variables                                                */
  1992.     /*----------------------------------------------------------------*/
  1993.     S16 error;
  1994.     U8 count = 0;
  1995.     /*----------------------------------------------------------------*/
  1996.     /* Code Body                                                      */
  1997.     /*----------------------------------------------------------------*/
  1998.     PRINT_INFORMATION(("This is to set Finnish language"));
  1999.     DisplayIdleScreen();
  2000.     for (count = 0; count < MAX_LANGUAGES; count++)
  2001.     {
  2002.         if (strcmp((PS8) gLanguageArray[count].aLangSSC, SSC_FINNISH) == 0)
  2003.         {
  2004.             if (gCurrLangIndex != count)
  2005.             {
  2006.                 SetCurrentLanguage(count);
  2007.                 WriteValue(NVRAM_SETTING_LANG, &count, DS_BYTE, &error);
  2008.                 RefreshNwProviderName(gPLMN);
  2009.                 SendLangChange2AT(count);
  2010.             #ifdef __MMI_SUBLCD__
  2011.                 switch (g_idle_context.IsSubLcdOnIdleScreen)
  2012.                 {
  2013.                     case SUBLCD_ON_IDLE_NORMAL:
  2014.                         ShowIdleAppSubLcd();
  2015.                         break;
  2016.                     case SUBLCD_ON_IDLE_INSERT_SIM:
  2017.                         ShowSubLCDSimError();
  2018.                         break;
  2019.                     case SUBLCD_ON_IDLE_SIM_BLOCKED:
  2020.                         ShowSubLCDBlockedSIM();
  2021.                         break;
  2022.                     case SUBLCD_NOT_ON_IDLE:
  2023.                         break;
  2024.                     default:
  2025.                         ASSERT(0);
  2026.                 }
  2027.             #endif /* __MMI_SUBLCD__ */ 
  2028.             }
  2029.             DisplayPopup(
  2030.                 (U8*) GetString(SSC_SCR_LANGUAGE_FINNISH_STR_ID),
  2031.                 IMG_GLOBAL_ACTIVATED,
  2032.                 1,
  2033.                 SSC_POP_UP_TIME,
  2034.                 (U8) SUCCESS_TONE);
  2035.             return;
  2036.         }
  2037.     }
  2038.     DisplayPopup((U8*) GetString(SSC_STR_ERR_SET_FINNISH), IMG_GLOBAL_WARNING, 0, SSC_POP_UP_TIME, (U8) ERROR_TONE);
  2039. }
  2040. #endif /* defined(__MMI_LANG_FINNISH__) */ 
  2041. #if defined(__MMI_LANG_HUNGARIAN__)
  2042. /*****************************************************************************
  2043.  * FUNCTION
  2044.  *  SSCHandleLngHungarian
  2045.  * DESCRIPTION
  2046.  *  Set Hungarian language
  2047.  * PARAMETERS
  2048.  *  void
  2049.  * RETURNS
  2050.  *  void
  2051.  *****************************************************************************/
  2052. void SSCHandleLngHungarian(void)
  2053. {
  2054.     /*----------------------------------------------------------------*/
  2055.     /* Local Variables                                                */
  2056.     /*----------------------------------------------------------------*/
  2057.     S16 error;
  2058.     U8 count = 0;
  2059.     /*----------------------------------------------------------------*/
  2060.     /* Code Body                                                      */
  2061.     /*----------------------------------------------------------------*/
  2062.     PRINT_INFORMATION(("This is set Hungarian language"));
  2063.     DisplayIdleScreen();
  2064.     for (count = 0; count < MAX_LANGUAGES; count++)
  2065.     {
  2066.         if (strcmp((PS8) gLanguageArray[count].aLangSSC, SSC_HUNGARIAN) == 0)
  2067.         {
  2068.             if (gCurrLangIndex != count)
  2069.             {
  2070.                 SetCurrentLanguage(count);
  2071.                 WriteValue(NVRAM_SETTING_LANG, &count, DS_BYTE, &error);
  2072.                 RefreshNwProviderName(gPLMN);
  2073.          /************************************************/
  2074.                 /* Robin 0602, Remove set AT command profile functions */
  2075.                 /* AT command will query MMI when needed                   */
  2076.                 /* Send to PS for AT+CLAE                                            */
  2077.          /************************************************/
  2078.                 SendLangChange2AT(count);
  2079.             #ifdef __MMI_SUBLCD__
  2080.                 switch (g_idle_context.IsSubLcdOnIdleScreen)
  2081.                 {
  2082.                     case SUBLCD_ON_IDLE_NORMAL:
  2083.                         ShowIdleAppSubLcd();
  2084.                         break;
  2085.                     case SUBLCD_ON_IDLE_INSERT_SIM:
  2086.                         ShowSubLCDSimError();
  2087.                         break;
  2088.                     case SUBLCD_ON_IDLE_SIM_BLOCKED:
  2089.                         ShowSubLCDBlockedSIM();
  2090.                         break;
  2091.                     case SUBLCD_NOT_ON_IDLE:    /* Lisen 0617: could switch to other screen, like receiving an SMS */
  2092.                         break;
  2093.                     default:
  2094.                         ASSERT(0);
  2095.                 }
  2096.             #endif /* __MMI_SUBLCD__ */ 
  2097.             }
  2098.             DisplayPopup(
  2099.                 (U8*) GetString(SSC_SCR_LANGUAGE_HUNGARIAN_STR_ID),
  2100.                 IMG_GLOBAL_ACTIVATED,
  2101.                 1,
  2102.                 SSC_POP_UP_TIME,
  2103.                 (U8) SUCCESS_TONE);
  2104.             return;
  2105.         }
  2106.     }
  2107.     DisplayPopup((U8*) GetString(SSC_STR_ERR_SET_HUNGARIAN), IMG_GLOBAL_WARNING, 0, SSC_POP_UP_TIME, (U8) ERROR_TONE);
  2108. }
  2109. #endif /* defined(__MMI_LANG_HUNGARIAN__) */ 
  2110. //PMT END HU_FI 20050825
  2111. //PMT NO_AR_SL_DU START 20050909
  2112. #if defined(__MMI_LANG_SLOVAK__)
  2113. /*****************************************************************************
  2114.  * FUNCTION
  2115.  *  SSCHandleLngSlovak
  2116.  * DESCRIPTION
  2117.  *  Set SLOVAK language
  2118.  * PARAMETERS
  2119.  *  void
  2120.  * RETURNS
  2121.  *  void
  2122.  *****************************************************************************/
  2123. void SSCHandleLngSlovak(void)
  2124. {
  2125.     /*----------------------------------------------------------------*/
  2126.     /* Local Variables                                                */
  2127.     /*----------------------------------------------------------------*/
  2128.     S16 error;
  2129.     U8 count = 0;
  2130.     /*----------------------------------------------------------------*/
  2131.     /* Code Body                                                      */
  2132.     /*----------------------------------------------------------------*/
  2133.     PRINT_INFORMATION(("This is to set SLOVAK language"));
  2134.     DisplayIdleScreen();
  2135.     for (count = 0; count < MAX_LANGUAGES; count++)
  2136.     {
  2137.         if (strcmp((PS8) gLanguageArray[count].aLangSSC, SSC_SLOVAK) == 0)
  2138.         {
  2139.             if (gCurrLangIndex != count)
  2140.             {
  2141.                 SetCurrentLanguage(count);
  2142.                 WriteValue(NVRAM_SETTING_LANG, &count, DS_BYTE, &error);
  2143.                 RefreshNwProviderName(gPLMN);
  2144.                 SendLangChange2AT(count);
  2145.             #ifdef __MMI_SUBLCD__
  2146.                 switch (g_idle_context.IsSubLcdOnIdleScreen)
  2147.                 {
  2148.                     case SUBLCD_ON_IDLE_NORMAL:
  2149.                         ShowIdleAppSubLcd();
  2150.                         break;
  2151.                     case SUBLCD_ON_IDLE_INSERT_SIM:
  2152.                         ShowSubLCDSimError();
  2153.                         break;
  2154.                     case SUBLCD_ON_IDLE_SIM_BLOCKED:
  2155.                         ShowSubLCDBlockedSIM();
  2156.                         break;
  2157.                     case SUBLCD_NOT_ON_IDLE:
  2158.                         break;
  2159.                     default:
  2160.                         ASSERT(0);