Merge changes I62af2333,I9317aba8,I03d801f5 into tizen_2.2
authorJoohyun Kim <joohyune.kim@samsung.com>
Mon, 26 Aug 2013 02:33:37 +0000 (02:33 +0000)
committerGerrit Code Review <gerrit@gerrit.vlan144.tizendev.org>
Mon, 26 Aug 2013 02:33:37 +0000 (02:33 +0000)
* changes:
  Fix prevent issue
  Remove tethering password
  Fix directory size count issue on mounted directory

13 files changed:
inc/FLclTimeZone.h
src/app/FApp_AppControlManager.cpp
src/app/FApp_AppImpl.cpp
src/app/FApp_NotificationManagerImpl.cpp
src/app/FApp_RequestManagerT.cpp
src/locales/FLclNumberFormatter.cpp
src/locales/FLclNumberSymbols.cpp
src/locales/FLcl_DateTimeFormatterImpl.cpp
src/locales/FLcl_LocaleData.cpp
src/locales/FLcl_LocaleData.h
src/locales/FLcl_NumberFormatterImpl.cpp
src/locales/FLcl_NumberSymbolsImpl.cpp
src/locales/FLcl_NumberSymbolsImpl.h

index 7984e15..1a3ccff 100644 (file)
@@ -373,10 +373,11 @@ public:
         *
         * @return                      An error code
         * @param[in]           ticks                                           The time ticks value @n
-        *                                                                                              The value is GMT time.
+        *                                                                                              The value is GMT time from starting day (Jan 1, 1.).
         * @param[out]          offset                                          The offset between the local standard time and GMT, taking into consideration DST
         * @exception           E_SUCCESS                                       The method is successful.
-        * @exception           E_INVALID_ARG                                   The specified @c ticks is invalid. 
+        * @exception           E_INVALID_ARG                                   The specified @c ticks is invalid.
+        * @see                 Base::DateTime::GetTicks(), System::SystemTime::GetTicks()
         */
        result GetOffset(long long ticks, int& offset) const;
 
index a9d88e5..bc39ebd 100644 (file)
@@ -27,6 +27,7 @@
 #include <aul/aul.h>
 #include <bundle.h>
 #include <content/mime_type.h>
+#include <appinfo.h>
 
 #include <FBaseInteger.h>
 #include <FBaseObject.h>
@@ -75,22 +76,14 @@ using namespace Tizen::Base::Runtime;
 using namespace Tizen::Base::Utility;
 using namespace Tizen::Io;
 
-namespace Tizen { namespace App
-{
-
-const wchar_t TIZEN_OPERATION_PICK[] = L"http://tizen.org/appcontrol/operation/pick";
-const wchar_t SELECTOR_NOTI_KEY[] = L"__APP_SVC_CALLER_NOTI__";
-const int _MAX_PACKAGE_ID_LENGTH = 10;
-
-_InProcessInfo::~_InProcessInfo(void)
+namespace
 {
-       delete pLib;
+const char SELECTOR_NOTI_KEY[] = "__APP_SVC_CALLER_NOTI__";
 }
 
-_LaunchInfo::~_LaunchInfo(void)
+namespace Tizen { namespace App
 {
-       delete pArg;
-}
+const wchar_t TIZEN_OPERATION_PICK[] = L"http://tizen.org/appcontrol/operation/pick";
 
 
 _AppControlManager::_AppControlManager(void)
@@ -279,7 +272,7 @@ _AppControlManager::OnAppControlEventReceivedN(int reqId, int res, const IMap* p
        SysTryReturnVoidResult(NID_APP, pInfo != null, E_OBJ_NOT_FOUND, "[E_OBJ_NOT_FOUND] request Id %d not found with args 0x%x", reqId,
                                        pArgs);
 
-       if (pInfo->pListener)
+       if (pInfo->pListener && (!__listenerList.Contains(pInfo->pListener)))
        {
                String aId = pInfo->providerId;
                String oId = pInfo->operationId;
@@ -319,7 +312,7 @@ _AppControlManager::OnAppControlEventReceivedN(int reqId, int res, const IMap* p
                else
                {
                        IAppControlResponseListener* pListener = dynamic_cast<IAppControlResponseListener*>(pInfo->pListener);
-                       if (pListener && (!__listenerList.Contains(pInfo->pListener)))
+                       if (pListener)
                        {
                                _AppControlResponseEvent* pResponseEvent = null;
                                int responseEventRequestId = RESPONSE_EVENT_REQID_MAGIC + reqId;
@@ -841,7 +834,7 @@ _AppControlManager::LaunchAppImplicit(_AppArg* pArg, int req)
        if (req >= 0)
        {
                pArg->UpdateRequestId(req);
-               _AppMessageImpl::AddData(kb, SELECTOR_NOTI_KEY, _AppInfo::GetApplicationId());
+               appsvc_add_data(kb, SELECTOR_NOTI_KEY, appinfo_get_appid());
        }
 
        if (_AppImpl::GetInstance() != null)
index 3f4386c..bfa3875 100644 (file)
@@ -195,9 +195,7 @@ _AppImpl::Execute(_IAppImpl* pIAppImpl)
        }
 
        // clear outstanding ongoing notification
-       const AppId& appId = _AppInfo::GetApplicationId();
-       std::unique_ptr<char[]> pAppId(_StringConverter::CopyToCharArrayN(appId));
-       notification_delete_all_by_type(pAppId.get(), NOTIFICATION_TYPE_ONGOING);
+       notification_delete_all_by_type(appinfo_get_appid(), NOTIFICATION_TYPE_ONGOING);
 
        return r;
 }
@@ -688,7 +686,7 @@ _AppImpl::OnAppControlRequestReceived(const _AppArg& arg, RequestId reqId)
                return;
        }
 
-       const String& appId = _AppInfo::GetApplicationId();
+       const char* pAppId = appinfo_get_appid();
 
        const char* p = appsvc_get_operation(arg.GetBundle());
        String operationId = (p) ? String(p) : TIZEN_OPERATION_MAIN;
@@ -697,7 +695,7 @@ _AppImpl::OnAppControlRequestReceived(const _AppArg& arg, RequestId reqId)
                operationId = TIZEN_OPERATION_MAIN;
        }
 
-       SysLog(NID_APP, "AppControl (%ls, %ls).", appId.GetPointer(), operationId.GetPointer());
+       SysLog(NID_APP, "AppControl (%s, %ls).", pAppId, operationId.GetPointer());
 
        String uri;
        String mime;
@@ -728,7 +726,7 @@ _AppImpl::OnAppControlRequestReceived(const _AppArg& arg, RequestId reqId)
 
        pAppControlProviderEventListener->OnAppControlRequestReceived(reqId, operationId, pUri, pMime, pMap.get());
 
-       SysLog(NID_APP, "AppControl (%ls, %ls) invocation finished.", appId.GetPointer(), operationId.GetPointer());
+       SysLog(NID_APP, "AppControl (%s, %ls) invocation finished.", pAppId, operationId.GetPointer());
 }
 
 
index c88337a..7b8233c 100644 (file)
@@ -27,6 +27,7 @@
 #include <notification/notification.h>
 #include <appfw/app.h>
 #include <appfw/app_ui_notification.h>
+#include <appinfo.h>
 
 #include <FBaseSysLog.h>
 #include <FAppNotificationManager.h>
@@ -138,11 +139,7 @@ _NotificationManagerImpl::GetBadgeNumber(void) const
 {
        unsigned int count = 0;
 
-       const AppId appId = _AppInfo::GetApplicationId();
-
-       std::unique_ptr<char[]> pAppId(_StringConverter::CopyToCharArrayN(appId));
-
-       badge_error_e badgeError = badge_get_count(pAppId.get(), &count);
+       badge_error_e badgeError = badge_get_count(appinfo_get_appid(), &count);
 
        if (badgeError == BADGE_ERROR_NONE)
        {
@@ -233,9 +230,7 @@ _NotificationManagerImpl::NotifyImpl(const String& messageText, int badgeNumber,
 
        if (badgeNumber >= 0)
        {
-               const AppId appId = _AppInfo::GetApplicationId();
-               std::unique_ptr<char[]> pAppId(_StringConverter::CopyToCharArrayN(appId));
-               badge_error_e badgeError = badge_set_count(pAppId.get(), badgeNumber);
+               badge_error_e badgeError = badge_set_count(appinfo_get_appid(), badgeNumber);
                SysTryLog(NID_APP, badgeError == BADGE_ERROR_NONE, "badge_set_count failed(%d).", badgeError);
        }
 
index 8826226..8d1ea46 100644 (file)
 
 #include <limits.h>
 
+#include <FBaseRt_LibraryImpl.h>
+
 #include "FApp_RequestManagerT.h"
 #include "FApp_LaunchInfo.h"
 #include "FApp_AppArg.h"
 
+using namespace Tizen::Base::Runtime;
+
 
 namespace Tizen { namespace App
 {
@@ -35,6 +39,16 @@ _ResultInfo::~_ResultInfo(void)
        delete pArg;
 }
 
+_InProcessInfo::~_InProcessInfo(void)
+{
+       delete pLib;
+}
+
+_LaunchInfo::~_LaunchInfo(void)
+{
+       delete pArg;
+}
+
 
 template<typename T>
 _RequestManagerT<T>::_RequestManagerT(void)
index 5f198ec..41090ef 100644 (file)
@@ -186,7 +186,7 @@ result
 NumberFormatter::ApplyPattern(const Tizen::Base::String& pattern, bool localized)
 {
        SysTryReturnResult(NID_LCL, pattern.GetLength() > 0, E_INVALID_ARG, "Invalid argument is used. Length of the pattern is 0");
-       return __pNumberFormatterImpl->ApplyPattern(pattern, localized);        // Try to set pattern to ICU number formatter
+       return __pNumberFormatterImpl->ApplyPattern(pattern, localized);
 }
 
 
index 9c09925..02fd499 100644 (file)
@@ -34,10 +34,6 @@ using namespace Tizen::Base;
 namespace Tizen { namespace Locales
 {
 
-
-/////////////////////////////////////////////////////////////////////////////////////////////////////
-// Public Method
-
 NumberSymbols::NumberSymbols(void)
        : __pNumberSymbolsImpl(null)
 {
@@ -52,7 +48,6 @@ NumberSymbols::~NumberSymbols(void)
 result
 NumberSymbols::Construct(const Locale& locale)
 {
-       // Object is not allowed to construct twice
        SysAssertf(__pNumberSymbolsImpl == null,
                "Already constructed! Calling Construct() twice or more on a same instance is not allowed for this class");
 
@@ -62,7 +57,6 @@ NumberSymbols::Construct(const Locale& locale)
        {
                r = E_UNSUPPORTED_OPERATION;
        }
-       // validating locale
        SysTryReturnResult(NID_LCL, _LocaleImpl::IsSupported(locale), r, "Given locale is not supported");
 
        __pNumberSymbolsImpl = new (std::nothrow) _NumberSymbolsImpl;
index e3da25c..87ae03e 100644 (file)
@@ -165,9 +165,7 @@ _DateTimeFormatterImpl::Format(const Calendar& calendar, String& strBuf) const
        SysTryReturnResult(NID_LCL, pIcuCal, E_SYSTEM, "It is failed to get icu calendar.");
 
        IcuFieldPosition icuFp;
-       IcuUnicodeString icuStr;
-
-       _LocaleData::GetIcuString(strBuf,icuStr);
+       IcuUnicodeString icuStr = _LocaleData::GetIcuString(strBuf);
        icuStr = __pIcuDateFormatter->format(*pIcuCal, icuStr, icuFp);
        strBuf = _LocaleData::GetOspString(icuStr);
        delete pIcuCal;
@@ -179,8 +177,7 @@ result
 _DateTimeFormatterImpl::ApplyPattern(const String& pattern)
 {
        SysAssertf(__pIcuDateFormatter != null, "Not yet constructed! Construct() should be called before use.");
-       U_ICU_NAMESPACE::UnicodeString icuStr;
-       _LocaleData::GetIcuString(pattern, icuStr);
+       U_ICU_NAMESPACE::UnicodeString icuStr = _LocaleData::GetIcuString(pattern);
        __pIcuDateFormatter->applyPattern(icuStr);
        return E_SUCCESS;
 }
index 03643b8..2017e89 100644 (file)
 
 // Includes
 #include <locale.h>
-#include <memory>
-#include <stdlib.h>
 #include <unistd.h>
-#include <limits.h>
-#include <runtime_info.h>
 #include <unique_ptr.h>
 #include <FBaseSysLog.h>
-#include <FSysSettingInfo.h>
-#include <FLclNumberSymbols.h>
-#include <FApp_AppInfo.h>
+#include <FBaseUtilStringUtil.h>
 #include "FBase_StringConverter.h"
-#include "FLcl_CalendarImpl.h"
-#include "FLcl_IcuCalendarImpl.h"
 #include "FLcl_LocaleData.h"
-#include "FLcl_LocaleImpl.h"
 
 
 // Other defines
@@ -49,10 +40,6 @@ using namespace Tizen::Base::Utility;
 namespace Tizen { namespace Locales
 {
 
-/////////////////////////////////////////////////////////////////////////////////////////////////////
-// Public Method
-
-// this function is to convert ICU FieldPosition from OSP _FieldPosition
 IcuFieldPosition
 _LocaleData::GetIcuFieldPosition(_FieldPosition pos)
 {
@@ -62,6 +49,7 @@ _LocaleData::GetIcuFieldPosition(_FieldPosition pos)
        return icuPos;
 }
 
+
 U_ICU_NAMESPACE::UnicodeString
 _LocaleData::GetIcuString(const String& ospStr)
 {
@@ -82,7 +70,7 @@ _LocaleData::GetIcuString(const String& ospStr)
        return icuStr;
 }
 
-// This function convert ICU string to OSP string
+
 String
 _LocaleData::GetOspString(const IcuUnicodeString& icuStr)
 {
@@ -103,26 +91,7 @@ _LocaleData::GetOspString(const IcuUnicodeString& icuStr)
        return String("");
 }
 
-// This convert OSP string to ICU strings
-void
-_LocaleData::GetIcuString(const String& ospStr, IcuUnicodeString& icuStr)
-{
-       if (!ospStr.IsEmpty())                                                     // if ospStr is not empty
-       {
-               ByteBuffer* pBuff = null;
-               pBuff = StringUtil::StringToUtf8N(ospStr);                             // Convert unicode value to UTF8
-               if (pBuff)
-               {
-                       icuStr = IcuUnicodeString((const char*) pBuff->GetPointer());        // Create ICU string using UTF8 array
-                       icuStr.setCharAt(0, icuStr.charAt(0));                              // This is to handle ICU copy on write design
-                       delete pBuff;                                                       // delete temporary buffer
-               }
-       }
-
-//     return icuStr;
-}
 
-// This function return OSP array list of OSP string from ICU string list
 ArrayList*
 _LocaleData::ConvertIcuStringArrayToOspArrayN(const IcuUnicodeString* pIcuStrList, int count)
 {
@@ -172,7 +141,7 @@ _LocaleData::ConvertOspArrayToIcuStringArrayN(const Tizen::Base::Collection::ILi
                pObj = static_cast< String* >(pEnum->GetCurrent());
                if (pObj)
                {
-                       GetIcuString(*pObj, pIcuStrArray[i]);
+                       pIcuStrArray[i] = GetIcuString(*pObj);
                        i++;
                }
        }
@@ -212,515 +181,6 @@ _LocaleData::GetIcuLocale(const Locale& ospLocale)
 }
 
 
-const IcuLocale&
-_LocaleData::GetIcuLocale(void)
-{
-       return __icuLocale;
-}
-
-bool
-_LocaleData::IsLocaleSupported(void)
-{
-       return !__icuLocale.isBogus();
-}
-
-result
-_LocaleData::SetLocale(const Locale& ospLocale)
-{
-       if (_LocaleImpl::IsSupported(ospLocale))
-    {
-        __icuLocale = GetIcuLocale(ospLocale);
-        return E_SUCCESS;
-    }
-
-       __icuLocale.setToBogus();
-       return (Tizen::App::_AppInfo::GetApiVersion() == _API_VERSION_2_0 && Tizen::App::_AppInfo::IsOspCompat()) ? E_UNSUPPORTED_OPERATION : E_INVALID_ARG;
-}
-
-result
-_LocaleData::GetNumberSymbols(const Locale& locale, String symbols[])
-{
-       UErrorCode status = U_ZERO_ERROR;
-       ;
-       SetLocale(locale);
-
-       SysTryReturnResult(NID_LCL, IsLocaleSupported(), E_SYSTEM, "A System error has been occurred. Locale is not supported");
-
-       IcuDecimalFormatSymbols sym(__icuLocale, status);
-       SysTryReturnResult(NID_LCL, U_SUCCESS(status),  E_SYSTEM, "A System error has been occurred. Unable to get ICU Decimal Format Symbols");
-
-       symbols[NUMBER_SYMBOL_DECIMAL_SEPARATOR] = _LocaleData::GetOspString(sym.getSymbol(IcuDecimalFormatSymbols::kDecimalSeparatorSymbol));
-       symbols[NUMBER_SYMBOL_GROUPING_SEPARATOR] = _LocaleData::GetOspString(sym.getSymbol(IcuDecimalFormatSymbols::kGroupingSeparatorSymbol));
-       symbols[NUMBER_SYMBOL_PATTERN_SEPARATOR] = _LocaleData::GetOspString(sym.getSymbol(IcuDecimalFormatSymbols::kPatternSeparatorSymbol));
-       symbols[NUMBER_SYMBOL_PERCENT] = _LocaleData::GetOspString(sym.getSymbol(IcuDecimalFormatSymbols::kPercentSymbol));
-       symbols[NUMBER_SYMBOL_ZERO_DIGIT] = _LocaleData::GetOspString(sym.getSymbol(IcuDecimalFormatSymbols::kZeroDigitSymbol));
-       symbols[NUMBER_SYMBOL_DIGIT] = _LocaleData::GetOspString(sym.getSymbol(IcuDecimalFormatSymbols::kDigitSymbol));
-       symbols[NUMBER_SYMBOL_CURRENCY] = _LocaleData::GetOspString(sym.getSymbol(IcuDecimalFormatSymbols::kCurrencySymbol));
-       symbols[NUMBER_SYMBOL_INTL_CURRENCY] = _LocaleData::GetOspString(sym.getSymbol(IcuDecimalFormatSymbols::kIntlCurrencySymbol));
-       symbols[NUMBER_SYMBOL_MONETARY_SEPARATOR] = _LocaleData::GetOspString(sym.getSymbol(IcuDecimalFormatSymbols::kMonetarySeparatorSymbol));
-       symbols[NUMBER_SYMBOL_PER_MILL] = _LocaleData::GetOspString(sym.getSymbol(IcuDecimalFormatSymbols::kPerMillSymbol));
-       symbols[NUMBER_SYMBOL_EXPONENTIAL] = _LocaleData::GetOspString(sym.getSymbol(IcuDecimalFormatSymbols::kExponentialSymbol));
-       symbols[NUMBER_SYMBOL_PLUS_SIGN] = _LocaleData::GetOspString(sym.getSymbol(IcuDecimalFormatSymbols::kPlusSignSymbol));
-       symbols[NUMBER_SYMBOL_MINUS_SIGN] = _LocaleData::GetOspString(sym.getSymbol(IcuDecimalFormatSymbols::kMinusSignSymbol));
-
-       return E_SUCCESS;
-}
-
-result
-_LocaleData::SetNumberFormatter(const Locale& locale, NumberFormatterStyle style)
-{
-       if (__pIcuNumberFormatter)
-       {
-               delete __pIcuNumberFormatter;
-               __pIcuNumberFormatter = null;
-       }
-
-       IcuNumberFormat* pNumFmt = null;
-       UErrorCode ec = U_ZERO_ERROR;
-       result r = SetLocale(locale);
-
-       if (!IsFailed(r))
-       {
-               switch (style)
-               {
-               case NUM_FORMATTER_STYLE_NUMBER:
-               {
-                       pNumFmt = IcuNumberFormat::createInstance(__icuLocale, ec);
-                       break;
-               }
-
-               case NUM_FORMATTER_STYLE_CURRENCY:
-               {
-                       pNumFmt = IcuNumberFormat::createCurrencyInstance(__icuLocale, ec);
-                       break;
-               }
-
-               case NUM_FORMATTER_STYLE_PERCENT:
-               {
-                       pNumFmt = IcuNumberFormat::createPercentInstance(__icuLocale, ec);
-                       break;
-               }
-
-               default:
-               {
-                       r = E_UNSUPPORTED_OPERATION;
-                       break;
-               }
-               }
-
-               if (IsFailed(r))
-               {
-                       return r;
-               }
-
-               if (U_SUCCESS(ec))
-               {
-                       if (pNumFmt && (pNumFmt->getDynamicClassID() == IcuDecimalFormat::getStaticClassID()))
-                       {
-                               __pIcuNumberFormatter = dynamic_cast< IcuDecimalFormat* >(pNumFmt);
-                               if (__pIcuNumberFormatter)
-                               {
-                                       return E_SUCCESS;
-                               }
-                       }
-               }
-       }
-
-       return E_UNSUPPORTED_OPERATION;
-}
-
-result
-_LocaleData::FormatNumber(long number, _FieldPosition& pos, Tizen::Base::String& str)
-{
-       str = "";
-
-       if (__pIcuNumberFormatter)
-       {
-               IcuUnicodeString icuStr;
-               IcuFieldPosition icuPos = GetIcuFieldPosition(pos);
-               icuStr = __pIcuNumberFormatter->format(static_cast< int32_t >(number), icuStr, icuPos);
-
-               str = _LocaleData::GetOspString(icuStr);
-               return E_SUCCESS;
-       }
-
-       return E_SYSTEM;
-}
-
-result
-_LocaleData::FormatNumber(double number, _FieldPosition& pos, Tizen::Base::String& str)
-{
-       str = "";
-
-       if (__pIcuNumberFormatter)
-       {
-               IcuUnicodeString icuStr;
-               IcuFieldPosition icuPos = GetIcuFieldPosition(pos);
-               icuStr = __pIcuNumberFormatter->format(number, icuStr, icuPos);
-
-               str = _LocaleData::GetOspString(icuStr);
-               return E_SUCCESS;
-       }
-
-       return E_SYSTEM;
-}
-
-result
-_LocaleData::ApplyNumberPattern(const Tizen::Base::String& pattern, bool localized)
-{
-       if (__pIcuNumberFormatter)
-       {
-               IcuUnicodeString icuPattern;
-               icuPattern = __pIcuNumberFormatter->toPattern(icuPattern);
-
-               UErrorCode ec = U_ZERO_ERROR;
-               IcuUParseError parseError = {0,};
-               IcuUnicodeString icuNewPatter;
-               GetIcuString(pattern, icuNewPatter);
-
-               if (localized)
-               {
-                       __pIcuNumberFormatter->applyLocalizedPattern(icuNewPatter, parseError, ec);
-               }
-               else
-               {
-                       __pIcuNumberFormatter->applyPattern(icuNewPatter, parseError, ec);
-               }
-
-               if (U_SUCCESS(ec))
-               {
-                       return E_SUCCESS;
-               }
-               else
-               {
-                       SysLog(NID_LCL, "Error [%d -> %s] in setting pattern to %ls at %d:%d",
-                                  ec, u_errorName(ec), pattern.GetPointer(), parseError.line, parseError.offset);
-
-                       __pIcuNumberFormatter->applyPattern(icuPattern, ec);
-               }
-       }
-
-       return E_INVALID_ARG;
-}
-
-String
-_LocaleData::GetNumberFormatterStringAttributes(NumberFormatterAttributes attrName)
-{
-       IcuUnicodeString icuRetValue;
-
-       if (__pIcuNumberFormatter)
-       {
-               switch (attrName)
-               {
-               case NUM_FORMATTER_FIELD_CURRENCY:
-               {
-                       icuRetValue = __pIcuNumberFormatter->getCurrency();
-                       break;
-               }
-
-               case NUM_FORMATTER_FIELD_POSITIVE_PREFIX:
-               {
-                       icuRetValue = __pIcuNumberFormatter->getPositivePrefix(icuRetValue);
-                       break;
-               }
-
-               case NUM_FORMATTER_FIELD_NEGATIVE_PREFIX:
-               {
-                       icuRetValue = __pIcuNumberFormatter->getNegativePrefix(icuRetValue);
-                       break;
-               }
-
-               case NUM_FORMATTER_FIELD_POSITIVE_SUFFIX:
-               {
-                       icuRetValue = __pIcuNumberFormatter->getPositiveSuffix(icuRetValue);
-                       break;
-               }
-
-               case NUM_FORMATTER_FIELD_NEGATIVE_SUFFIX:
-               {
-                       icuRetValue = __pIcuNumberFormatter->getNegativeSuffix(icuRetValue);
-                       break;
-               }
-
-               case NUM_FORMATTER_FIELD_PATTERN:
-               {
-                       icuRetValue = __pIcuNumberFormatter->toPattern(icuRetValue);
-                       break;
-               }
-
-               case NUM_FORMATTER_FIELD_LOCALIZED_PATTERN:
-               {
-                       icuRetValue = __pIcuNumberFormatter->toLocalizedPattern(icuRetValue);
-                       break;
-               }
-
-               default:
-               {
-                       break;
-               }
-               }
-
-               return _LocaleData::GetOspString(icuRetValue);
-       }
-
-       return Tizen::Base::String("");
-}
-
-void
-_LocaleData::SetNumberFormatterAttributes(const String& newValue, NumberFormatterAttributes attrName)
-{
-       if (__pIcuNumberFormatter)
-       {
-               IcuUnicodeString icuNewValue;
-               GetIcuString(newValue, icuNewValue);
-
-               switch (attrName)
-               {
-               case NUM_FORMATTER_FIELD_CURRENCY:
-               {
-                       __pIcuNumberFormatter->setCurrency(icuNewValue.getTerminatedBuffer());
-                       break;
-               }
-
-               case NUM_FORMATTER_FIELD_POSITIVE_PREFIX:
-               {
-                       __pIcuNumberFormatter->setPositivePrefix(icuNewValue);
-                       break;
-               }
-
-               case NUM_FORMATTER_FIELD_NEGATIVE_PREFIX:
-               {
-                       __pIcuNumberFormatter->setNegativePrefix(icuNewValue);
-                       break;
-               }
-
-               case NUM_FORMATTER_FIELD_POSITIVE_SUFFIX:
-               {
-                       __pIcuNumberFormatter->setPositiveSuffix(icuNewValue);
-                       break;
-               }
-
-               case NUM_FORMATTER_FIELD_NEGATIVE_SUFFIX:
-               {
-                       __pIcuNumberFormatter->setNegativeSuffix(icuNewValue);
-                       break;
-               }
-
-               default:
-               {
-                       break;
-               }
-               }
-       }
-}
-
-int
-_LocaleData::GetNumberFormatterIntAttributes(NumberFormatterAttributes attrName)
-{
-       int res = 0;
-       if (__pIcuNumberFormatter)
-       {
-               switch (attrName)
-               {
-               case NUM_FORMATTER_FIELD_MAX_INTEGER_DIGITS:
-               {
-                       res = __pIcuNumberFormatter->getMaximumIntegerDigits();
-                       break;
-               }
-
-               case NUM_FORMATTER_FIELD_MIN_INTEGER_DIGITS:
-               {
-                       res = __pIcuNumberFormatter->getMinimumIntegerDigits();
-                       break;
-               }
-
-               case NUM_FORMATTER_FIELD_MAX_FRACTION_DIGITS:
-               {
-                       res = __pIcuNumberFormatter->getMaximumFractionDigits();
-                       break;
-               }
-
-               case NUM_FORMATTER_FIELD_MIN_FRACTION_DIGITS:
-               {
-                       res = __pIcuNumberFormatter->getMinimumFractionDigits();
-                       break;
-               }
-
-               case NUM_FORMATTER_FIELD_MIN_EXPONENT_DIGITS:
-               {
-                       res = __pIcuNumberFormatter->getMinimumExponentDigits();
-                       break;
-               }
-
-               case NUM_FORMATTER_FIELD_MULTIPLIER:
-               {
-                       res = __pIcuNumberFormatter->getMultiplier();
-                       break;
-               }
-
-               case NUM_FORMATTER_FIELD_GROUPING_SIZE:
-               {
-                       res = __pIcuNumberFormatter->getGroupingSize();
-                       break;
-               }
-
-               default:
-               {
-                       res = 0;
-                       break;
-               }
-               }
-       }
-
-       return res;
-}
-
-void
-_LocaleData::SetNumberFormatterAttributes(const int newValue, NumberFormatterAttributes attrName)
-{
-       if (__pIcuNumberFormatter)
-       {
-               switch (attrName)
-               {
-               case NUM_FORMATTER_FIELD_MAX_INTEGER_DIGITS:
-               {
-                       __pIcuNumberFormatter->setMaximumIntegerDigits(newValue);
-                       break;
-               }
-
-               case NUM_FORMATTER_FIELD_MIN_INTEGER_DIGITS:
-               {
-                       __pIcuNumberFormatter->setMinimumIntegerDigits(newValue);
-                       break;
-               }
-
-               case NUM_FORMATTER_FIELD_MAX_FRACTION_DIGITS:
-               {
-                       __pIcuNumberFormatter->setMaximumFractionDigits(newValue);
-                       break;
-               }
-
-               case NUM_FORMATTER_FIELD_MIN_FRACTION_DIGITS:
-               {
-                       __pIcuNumberFormatter->setMinimumFractionDigits(newValue);
-                       break;
-               }
-
-               case NUM_FORMATTER_FIELD_MIN_EXPONENT_DIGITS:
-               {
-                       __pIcuNumberFormatter->setMinimumExponentDigits(newValue);
-                       break;
-               }
-
-               case NUM_FORMATTER_FIELD_MULTIPLIER:
-               {
-                       __pIcuNumberFormatter->setMultiplier(newValue);
-                       break;
-               }
-
-               case NUM_FORMATTER_FIELD_GROUPING_SIZE:
-               {
-                       __pIcuNumberFormatter->setGroupingSize(newValue);
-                       break;
-               }
-
-               default:
-               {
-                       break;
-               }
-               }
-       }
-}
-
-bool
-_LocaleData::GetNumberFormatterBoolAttributes(NumberFormatterAttributes attrName)
-{
-       bool res = false;
-       if (__pIcuNumberFormatter)
-       {
-               switch (attrName)
-               {
-               case NUM_FORMATTER_FIELD_IS_GROUPING_USED:
-               {
-                       res = __pIcuNumberFormatter->isGroupingUsed();
-                       break;
-               }
-
-               case NUM_FORMATTER_FIELD_IS_DECIMAL_SEPARATOR_ALWAYS_SHOWN:
-               {
-                       res = __pIcuNumberFormatter->isDecimalSeparatorAlwaysShown();
-                       break;
-               }
-
-               case NUM_FORMATTER_FIELD_IS_POSITIVE_SIGN_ALWAYS_SHOWN:
-               {
-                       IcuUnicodeString ps("+");
-                       IcuUnicodeString pp;
-                       pp = __pIcuNumberFormatter->getPositivePrefix(pp);
-
-                       res = (pp == ps);
-                       break;
-               }
-
-               default:
-               {
-                       res = false;
-                       break;
-               }
-               }
-       }
-
-       return res;
-}
-
-void
-_LocaleData::SetNumberFormatterAttributes(const bool newValue, NumberFormatterAttributes attrName)
-{
-       if (__pIcuNumberFormatter)
-       {
-               switch (attrName)
-               {
-               case NUM_FORMATTER_FIELD_IS_GROUPING_USED:
-               {
-                       __pIcuNumberFormatter->setGroupingUsed(newValue);
-                       break;
-               }
-
-               case NUM_FORMATTER_FIELD_IS_DECIMAL_SEPARATOR_ALWAYS_SHOWN:
-               {
-                       __pIcuNumberFormatter->setDecimalSeparatorAlwaysShown(newValue);
-                       break;
-               }
-
-               case NUM_FORMATTER_FIELD_IS_POSITIVE_SIGN_ALWAYS_SHOWN:
-               {
-                       IcuUnicodeString ps("+");
-                       IcuUnicodeString pp;
-                       pp = __pIcuNumberFormatter->getPositivePrefix(pp);
-
-                       if (newValue)
-                       {
-                               __pIcuNumberFormatter->setPositivePrefix(ps);
-                       }
-                       else
-                       {
-                               if (pp == ps)
-                               {
-                                       __pIcuNumberFormatter->setPositivePrefix("");
-                               }
-                       }
-                       break;
-               }
-
-               default:
-               {
-                       break;
-               }
-               }
-       }
-}
-
-
 IcuUDate
 _LocaleData::GetIcuDate(DateTime date)
 {
@@ -743,19 +203,12 @@ _LocaleData::GetIcuDate(DateTime date)
 }
 
 _LocaleData::_LocaleData(void)
-       : __icuLocale()
-       , __pIcuNumberFormatter(null)
 {
 }
 
 
 _LocaleData::~_LocaleData(void)
 {
-       if (__pIcuNumberFormatter)                                                     // Delete __pIcuNumberFormatter and set to null
-       {
-               delete __pIcuNumberFormatter;
-               __pIcuNumberFormatter = null;
-       }
 }
 
 
index eada8f8..39012f2 100644 (file)
@@ -65,69 +65,23 @@ namespace Tizen { namespace Locales
 class _LocaleData
        : public Tizen::Base::Object
 {
-
-
-// Construct Operations
-public:
-       /**
-        * Creates an @b uninitialized instance.
-        *
-        * @remarks     After creating an instance of this class, you must explicitly call the @e Construct() method
-        *              to initialize the instance.
-        * @see         Construct
-        */
-       _LocaleData(void);
-
-
-       /**
-        * Destroys this instance.
-        */
-       virtual ~_LocaleData(void);
-
-
-// Operations
-private:
-       const IcuLocale& GetIcuLocale(void);
-
 public:
        static Tizen::Base::String GetOspString(const IcuUnicodeString& icuStr);
        static U_ICU_NAMESPACE::UnicodeString GetIcuString(const Tizen::Base::String& ospString);
-       static void GetIcuString(const Tizen::Base::String& ospStr, IcuUnicodeString& icuStr);
+
        static IcuUnicodeString* ConvertOspArrayToIcuStringArrayN(const Tizen::Base::Collection::IList* pIcuStrList, int& count);
        static Tizen::Base::Collection::ArrayList* ConvertIcuStringArrayToOspArrayN(const IcuUnicodeString* pIcuStrList, int count);
 
        static IcuUDate GetIcuDate(Tizen::Base::DateTime date);
        static IcuFieldPosition GetIcuFieldPosition(_FieldPosition pos);
        static IcuLocale GetIcuLocale(const Tizen::Locales::Locale& ospLocale);
-       // Methods to support Locale
-       bool IsLocaleSupported();
-       result SetLocale(const Locale& ospLocale);
-
-       // Methods to support NumberSymbols
-       result GetNumberSymbols(const Locale &locale, Tizen::Base::String symbols[]);
-
-       // Methods to support NumberFormatter
-       result SetNumberFormatter(const Locale& locale, NumberFormatterStyle style);
-       result FormatNumber(long number, _FieldPosition& pos, Tizen::Base::String& str);
-       result FormatNumber(double number, _FieldPosition& pos, Tizen::Base::String& str);
-       result ApplyNumberPattern(const Tizen::Base::String& pattern, bool localized);
-
-       Tizen::Base::String GetNumberFormatterStringAttributes(NumberFormatterAttributes attrName);
-       void SetNumberFormatterAttributes(const Tizen::Base::String& newValue, NumberFormatterAttributes attrName);
-
-       int GetNumberFormatterIntAttributes(NumberFormatterAttributes attrName);
-       void SetNumberFormatterAttributes(const int newValue, NumberFormatterAttributes attrName);
-
-       bool GetNumberFormatterBoolAttributes(NumberFormatterAttributes attrName);
-       void SetNumberFormatterAttributes(const bool newValue, NumberFormatterAttributes attrName);
 
 private:
+       _LocaleData(void);
+       virtual ~_LocaleData(void);
        _LocaleData(const _LocaleData& localeData);
        _LocaleData& operator =(const _LocaleData& localeData);
 
-private:
-       IcuLocale __icuLocale;
-       IcuDecimalFormat* __pIcuNumberFormatter;
 }; // LocaleData
 
 }} // Tizen::Locales
index ec564df..a8f606f 100644 (file)
@@ -82,23 +82,18 @@ _NumberFormatterImpl::CreateNumberFormatterN(const Locale& locale, NumberFormatt
 
        UErrorCode ec = U_ZERO_ERROR;
        std::unique_ptr<IcuNumberFormat> pIcuNumberFormatter(IcuNumberFormat::createInstance(icuLocale, icuStyle, ec));
-       if (pIcuNumberFormatter)
-       {
-               IcuDecimalFormat* pDecimalFmt = dynamic_cast<IcuDecimalFormat*>(pIcuNumberFormatter.get());
-               if (pDecimalFmt)
-               {
-                       pIcuNumberFormatter.release();
-                       pNumberFormatterImpl->__pIcuNumberFormatter = pDecimalFmt;
-                       pNumberFormatterImpl->__currency.Construct(locale);
-                       pNewFormatter->__pNumberFormatterImpl = pNumberFormatterImpl.release();
+       SysTryReturn(NID_LCL, pIcuNumberFormatter, null, E_OUT_OF_MEMORY, "[E_OUT_OF_MEMORY] Memory allocation failed");
 
-                       SetLastResult(E_SUCCESS);
-                       return pNewFormatter.release();
-               }
-       }
+       IcuDecimalFormat* pDecimalFmt = dynamic_cast<IcuDecimalFormat*>(pIcuNumberFormatter.get());
+       SysTryReturn(NID_LCL, pDecimalFmt, null, E_SYSTEM, "It is failed to get fomatter.");
+
+       pIcuNumberFormatter.release();
+       pNumberFormatterImpl->__pIcuNumberFormatter = pDecimalFmt;
+       pNumberFormatterImpl->__currency.Construct(locale);
+       pNewFormatter->__pNumberFormatterImpl = pNumberFormatterImpl.release();
 
-       SetLastResult(E_INVALID_ARG);
-       return null;
+       SetLastResult(E_SUCCESS);
+       return pNewFormatter.release();
 }
 
 result
index 4f3eb6c..ed1c5b4 100644 (file)
  * @file            FLclNumberSymbols.cpp
  * @brief           This is the implementation file for NumberSymbols class.
  */
-
+#include <unicode/locid.h>
 #include <FBaseSysLog.h>
 #include <FApp_AppInfo.h>
 #include "FLcl_NumberSymbolsImpl.h"
 #include "FLcl_LocaleData.h"
 
-
 using namespace Tizen::Base;
 
 namespace Tizen { namespace Locales
 {
 
-
-/////////////////////////////////////////////////////////////////////////////////////////////////////
-// Public Method
+static U_ICU_NAMESPACE::DecimalFormatSymbols::ENumberFormatSymbol NUMBER_SYMBOL_TYPE_CONVERT_TABLE[NUMBER_SYMBOL_COUNT] =
+       { U_ICU_NAMESPACE::DecimalFormatSymbols::kDecimalSeparatorSymbol
+       , U_ICU_NAMESPACE::DecimalFormatSymbols::kGroupingSeparatorSymbol
+       , U_ICU_NAMESPACE::DecimalFormatSymbols::kPatternSeparatorSymbol
+       , U_ICU_NAMESPACE::DecimalFormatSymbols::kPercentSymbol
+       , U_ICU_NAMESPACE::DecimalFormatSymbols::kZeroDigitSymbol
+       , U_ICU_NAMESPACE::DecimalFormatSymbols::kDigitSymbol
+       , U_ICU_NAMESPACE::DecimalFormatSymbols::kCurrencySymbol
+       , U_ICU_NAMESPACE::DecimalFormatSymbols::kIntlCurrencySymbol
+       , U_ICU_NAMESPACE::DecimalFormatSymbols::kMonetarySeparatorSymbol
+       , U_ICU_NAMESPACE::DecimalFormatSymbols::kPerMillSymbol
+       , U_ICU_NAMESPACE::DecimalFormatSymbols::kExponentialSymbol
+       , U_ICU_NAMESPACE::DecimalFormatSymbols::kPlusSignSymbol
+       , U_ICU_NAMESPACE::DecimalFormatSymbols::kMinusSignSymbol
+       };
 
 _NumberSymbolsImpl::_NumberSymbolsImpl(void)
        : __locale(LANGUAGE_INVALID, COUNTRY_INVALID)
+       , __pIcuDecimalFormatSymbols(null)
 {
 }
 
 
 _NumberSymbolsImpl::_NumberSymbolsImpl(const _NumberSymbolsImpl& other)
        : __locale(LANGUAGE_INVALID, COUNTRY_INVALID)
+       , __pIcuDecimalFormatSymbols(null)
 {
-       this->__locale = other.__locale;
-
-       for (int i = 0; i < NUMBER_SYMBOL_COUNT; i++)
-       {
-               this->__symbols[i] = other.__symbols[i];                               // Copying symbols
-       }
+       __locale = other.__locale;
+       __pIcuDecimalFormatSymbols = new U_ICU_NAMESPACE::DecimalFormatSymbols(*other.__pIcuDecimalFormatSymbols);
+       SysTryReturn(NID_LCL, __pIcuDecimalFormatSymbols, , E_OUT_OF_MEMORY, "It is not enough memory.");
 }
 
 
@@ -57,12 +67,13 @@ _NumberSymbolsImpl::operator =(const _NumberSymbolsImpl& rhs)
 {
        if (this != &rhs)
        {
-               for (int i = 0; i < (int) NUMBER_SYMBOL_COUNT; ++i)
+               __locale = rhs.__locale;
+               if (__pIcuDecimalFormatSymbols)
                {
-                       __symbols[(NumberSymbol) i] = rhs.__symbols[(NumberSymbol) i];        // Copying symbols
+                       delete __pIcuDecimalFormatSymbols;
+                       __pIcuDecimalFormatSymbols = null;
                }
-
-               __locale = rhs.__locale;
+               __pIcuDecimalFormatSymbols = new U_ICU_NAMESPACE::DecimalFormatSymbols(*rhs.__pIcuDecimalFormatSymbols);
        }
 
        return *this;
@@ -71,40 +82,45 @@ _NumberSymbolsImpl::operator =(const _NumberSymbolsImpl& rhs)
 
 _NumberSymbolsImpl::~_NumberSymbolsImpl(void)
 {
+       if (__pIcuDecimalFormatSymbols)
+       {
+               delete __pIcuDecimalFormatSymbols;
+       }
 }
 
 result
 _NumberSymbolsImpl::Construct(const Locale& locale)
 {
-       result r = E_SUCCESS;
-       _LocaleData localeData;
-       r = localeData.GetNumberSymbols(locale, __symbols);                            // Get number symbols from ICU
+       result r = (Tizen::App::_AppInfo::GetApiVersion() == _API_VERSION_2_0 && Tizen::App::_AppInfo::IsOspCompat()) 
+                       ? E_UNSUPPORTED_OPERATION 
+                       : E_INVALID_ARG;
 
-       if (!IsFailed(r))
-       {
-               __locale = locale;
-               return E_SUCCESS;
-       }
+       U_ICU_NAMESPACE::Locale icuLocale = _LocaleData::GetIcuLocale(locale);
+       SysTryReturnResult(NID_LCL, icuLocale.isBogus() != true, r, "It is an invalid locale.");
+
+       UErrorCode status = U_ZERO_ERROR;
+       __pIcuDecimalFormatSymbols = new U_ICU_NAMESPACE::DecimalFormatSymbols(icuLocale, status);
+       SysTryReturnResult(NID_LCL, __pIcuDecimalFormatSymbols, E_OUT_OF_MEMORY, "It is not enough memory.");
+       __locale = locale;
 
-       return (Tizen::App::_AppInfo::GetApiVersion() == _API_VERSION_2_0 && Tizen::App::_AppInfo::IsOspCompat()) ? E_UNSUPPORTED_OPERATION : E_INVALID_ARG;
+       return E_SUCCESS;
 }
 
 
 String
 _NumberSymbolsImpl::GetNumberSymbol(NumberSymbol symbol) const
 {
-       return (symbol < NUMBER_SYMBOL_COUNT) ? __symbols[symbol] : String();       // Get symbol value for symbol
+       SysTryReturn(NID_LCL, symbol < NUMBER_SYMBOL_COUNT, String(), E_INVALID_ARG, "It is an invalid argument.");
+       return  _LocaleData::GetOspString(__pIcuDecimalFormatSymbols->getSymbol(NUMBER_SYMBOL_TYPE_CONVERT_TABLE[symbol]));
 }
 
 
 result
 _NumberSymbolsImpl::SetNumberSymbol(const NumberSymbol symbol, const String& str)
 {
-       if (symbol < NUMBER_SYMBOL_COUNT)                                           // validate symbol value
-       {
-               __symbols[symbol] = str;                                                // Set symbol
-       }
-
+       SysTryReturnResult(NID_LCL, symbol < NUMBER_SYMBOL_COUNT, E_INVALID_ARG, "It is an invalid argument.");
+       U_ICU_NAMESPACE::UnicodeString icuStr = _LocaleData::GetIcuString(str);
+       __pIcuDecimalFormatSymbols->setSymbol(NUMBER_SYMBOL_TYPE_CONVERT_TABLE[symbol], icuStr);
        return E_SUCCESS;
 }
 
@@ -113,7 +129,7 @@ const Locale*
 _NumberSymbolsImpl::GetLocale(void) const
 {
        ClearLastResult();
-       return &__locale;                                                           // return locale object stored during construction
+       return &__locale;
 }
 
 
index a95a81f..02232e9 100644 (file)
@@ -25,7 +25,7 @@
 #define _FLCL_INTERNAL_NUMBER_SYMBOLS_IMPL_H_
 
 // Includes
-#include <FLclLocale.h>
+#include <unicode/dcfmtsym.h>
 #include <FLclNumberSymbols.h>
 
 
@@ -35,7 +35,6 @@ namespace Tizen { namespace Locales
 class _NumberSymbolsImpl
        : public Tizen::Base::Object
 {
-// Construct Operations
 public:
        _NumberSymbolsImpl(void);
        virtual ~_NumberSymbolsImpl(void);
@@ -43,19 +42,15 @@ public:
        _NumberSymbolsImpl(const _NumberSymbolsImpl& other);
        _NumberSymbolsImpl& operator =(const _NumberSymbolsImpl& other);
 
-
-// Operations
 public:
        result Construct(const Locale& locale);
        Tizen::Base::String GetNumberSymbol(NumberSymbol symbol) const;
        result SetNumberSymbol(NumberSymbol symbol, const Tizen::Base::String& str);
        const Locale* GetLocale(void) const;
 
-
-// Attribute
 private:
        Locale __locale;
-       Tizen::Base::String __symbols[NUMBER_SYMBOL_COUNT];
+       U_ICU_NAMESPACE::DecimalFormatSymbols* __pIcuDecimalFormatSymbols;
 
 }; // _NumberSymbolsImpl