Add the fallback methods for langlist.xml and tzlist.ini.
authorHokwon Song <hokwon.song@samsung.com>
Wed, 5 Jun 2013 11:23:08 +0000 (20:23 +0900)
committerHokwon Song <hokwon.song@samsung.com>
Wed, 5 Jun 2013 11:23:08 +0000 (20:23 +0900)
Change-Id: Id496b41eae6c0602098a072a9b3be942e7b0bb3e
Signed-off-by: Hokwon Song <hokwon.song@samsung.com>
src/locales/FLcl_LocaleManagerImpl.cpp
src/locales/inc/FLcl_LocaleManagerImpl.h

index f958fdf..5d1706d 100644 (file)
@@ -66,11 +66,10 @@ struct FreeCharPtr
 
 namespace Tizen { namespace Locales
 {
-static const char* LANGUAGE_LIST_FILE_PATH ="/opt/data/setting/langlist.xml";
-static const char* TIMEZONE_LIST_FILE_PATH = "/opt/data/setting/tzlist.ini";
+static const char* LANGUAGE_LIST_FILE_PATH ="/opt/usr/share/setting/langlist.xml";
+static const char* TIMEZONE_LIST_FILE_PATH = "/opt/usr/data/clock/tzlist.ini";
 static const char* CLOCALE_LIST_FILE_PATH = "/opt/usr/etc/clocale.list";
 
-#define _FALLBACK_ // It should be removed after checking SLP changes.
 
 Locale
 _LocaleManagerImpl::GetSystemLocale(void)
@@ -197,9 +196,8 @@ _LocaleManagerImpl::GetSelectedLanguage(void)
 }
 
 // FALLBACk should be removed after checking the SLP change.
-#ifdef _FALLBACK_
 IList*
-_LocaleManagerImpl::GetAvailableLanguagesN(void)
+_LocaleManagerImpl::GetAvailableLanguagesFallbackN(void)
 {
        std::unique_ptr<IList> pLocaleList (GetAvailableLocalesN());
        std::unique_ptr<HashMap> pLanguageMap(new (std::nothrow) HashMap(SingleObjectDeleter));
@@ -238,7 +236,6 @@ _LocaleManagerImpl::GetAvailableLanguagesN(void)
        SetLastResult(E_SUCCESS);
        return pAvailableLanguageList.release(); 
 }
-#else
 IList*
 _LocaleManagerImpl::GetAvailableLanguagesN(void)
 {
@@ -247,7 +244,12 @@ _LocaleManagerImpl::GetAvailableLanguagesN(void)
 
        xmlNodePtr cur = null;
        std::unique_ptr< xmlDoc, FreeXmlDoc > pDoc(xmlParseFile(LANGUAGE_LIST_FILE_PATH));
-       SysTryReturn(NID_LCL, pDoc != null, null, E_FILE_NOT_FOUND, "[E_FILE_NOT_FOUND] It is failed to get the langlist from the resource.");
+       if (pDoc == null)
+       {
+               SysLog(NID_LCL, "[E_FILE_NOT_FOUND] It is failed to get the langlist from the resource.");
+               return GetAvailableLanguagesFallbackN();
+       }
+//     SysTryReturn(NID_LCL, pDoc != null, null, E_FILE_NOT_FOUND, "[E_FILE_NOT_FOUND] It is failed to get the langlist from the resource.");
 
        cur = xmlDocGetRootElement(pDoc.get());
        SysTryReturn(NID_LCL, cur != null, null, E_EMPTY_BODY, "[E_EMPTY_BODY] It is empty document.");
@@ -279,7 +281,6 @@ _LocaleManagerImpl::GetAvailableLanguagesN(void)
        SetLastResult(E_SUCCESS);
        return pAvailableLanguageList.release();
 }
-#endif
 
 IList*
 _LocaleManagerImpl::GetAvailableLanguageLocalesN(void)
@@ -367,7 +368,6 @@ _LocaleManagerImpl::GetAvailableTimeZonesN(U_ICU_NAMESPACE::StringEnumeration* p
        return pTimeZoneMap.release();
 }
 
-#ifdef _FALLBACK_
 static const int TIMEZONE_MAX = 224;
 static const char* TimeZoneList[TIMEZONE_MAX] =
 {
@@ -599,7 +599,7 @@ static const char* TimeZoneList[TIMEZONE_MAX] =
 
 
 IMap*
-_LocaleManagerImpl::GetAvailableTimeZonesN(void)
+_LocaleManagerImpl::GetAvailableTimeZonesFallbackN(void)
 {
        std::unique_ptr<HashMap> pTimeZoneMap(new (std::nothrow) HashMap(SingleObjectDeleter));
        SysTryReturn(NID_LCL, pTimeZoneMap, null, E_OUT_OF_MEMORY,
@@ -632,7 +632,8 @@ _LocaleManagerImpl::GetAvailableTimeZonesN(void)
        SetLastResult(E_SUCCESS);
        return pTimeZoneMap.release();
 }
-#else
+
+
 IMap*
 _LocaleManagerImpl::GetAvailableTimeZonesN(void)
 {
@@ -644,7 +645,12 @@ _LocaleManagerImpl::GetAvailableTimeZonesN(void)
        SysTryReturn(NID_LCL, pTimeZoneMap, null, E_OUT_OF_MEMORY,
                        "[%s] Memory allocation failed", GetErrorMessage(E_OUT_OF_MEMORY));
        r = file.Construct(tzFilePath, "r");
-       SysTryReturn(NID_LCL, r == E_SUCCESS, null,E_FILE_NOT_FOUND, "[E_FILE_NOT_FOUND] It is failed to get the tzlist from the ini file.");
+       if (IsFailed(r))
+       {
+               SysLog(NID_LCL,"[E_FILE_NOT_FOUND] It is failed to get the tzlist from the ini file.");
+               return GetAvailableTimeZonesFallbackN();
+       }
+//     SysTryReturn(NID_LCL, r == E_SUCCESS, null,E_FILE_NOT_FOUND, "[E_FILE_NOT_FOUND] It is failed to get the tzlist from the ini file.");
 
        pTimeZoneMap->Construct();
 
@@ -677,7 +683,7 @@ _LocaleManagerImpl::GetAvailableTimeZonesN(void)
        SetLastResult(E_SUCCESS);
        return pTimeZoneMap.release();
 }
-#endif
+
 
 IMap*
 _LocaleManagerImpl::GetAvailableTimeZonesN(int rawOffset)
index a5a06a3..86d61df 100644 (file)
@@ -46,10 +46,12 @@ public:
 
        static Tizen::Base::String GetSelectedLanguage(void);
        static Tizen::Base::Collection::IList* GetAvailableLanguagesN(void);
+       static Tizen::Base::Collection::IList* GetAvailableLanguagesFallbackN(void);
        // Get available language locales
        static Tizen::Base::Collection::IList* GetAvailableLanguageLocalesN(void);
 
        static Tizen::Base::Collection::IMap* GetAvailableTimeZonesN(void);
+       static Tizen::Base::Collection::IMap* GetAvailableTimeZonesFallbackN(void);
        static Tizen::Base::Collection::IMap* GetAvailableTimeZonesN(int rawOffset);
        static Tizen::Base::Collection::IMap* GetAvailableTimeZonesN(U_ICU_NAMESPACE::StringEnumeration* pIcuTZStrList);