From: Karol Pawlowski Date: Wed, 14 Jan 2015 15:13:22 +0000 (+0100) Subject: [Time] Replaced hardcoded getDateFormat method X-Git-Tag: submit/tizen_tv/20150603.064601~1^2~627 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=ea22e014780a31da035a7db4aa327f3b3dafe5f0;p=platform%2Fcore%2Fapi%2Fwebapi-plugins.git [Time] Replaced hardcoded getDateFormat method [Verification] TCT results should be self same Change-Id: If80cae67cccd00c709e807377f703963db48ffd4 Signed-off-by: Karol Pawlowski --- diff --git a/src/time/time_api.js b/src/time/time_api.js index e4a25237..0a7ce139 100644 --- a/src/time/time_api.js +++ b/src/time/time_api.js @@ -38,10 +38,23 @@ exports.getAvailableTimezones = function() { return _availableTimezonesCache; }; -exports.getDateFormat = function(shortformat) { - if (shortformat) - return 'm/d/y'; - return 'D, M d y'; +exports.getDateFormat = function() { + var args = AV.validateArgs(arguments, [{ + name : 'shortformat', + type : AV.Types.BOOLEAN, + optional : true, + nullable : true + }]); + + if (!args.has.shortformat) { + args.shortformat = false; + } + + var result = native_.callSync('Time_getDateFormat', {shortformat: args.shortformat}); + if (native_.isFailure(result)) { + throw native_.getErrorObject(result); + } + return native_.getResultObject(result); }; exports.getTimeFormat = function() { diff --git a/src/time/time_instance.cc b/src/time/time_instance.cc index 0f069d01..fec50cfa 100644 --- a/src/time/time_instance.cc +++ b/src/time/time_instance.cc @@ -59,6 +59,7 @@ TimeInstance::TimeInstance() { REGISTER_SYNC("Time_getDSTTransition", Time_getDSTTransition); REGISTER_SYNC("Time_getLocalTimeZone", Time_getLocalTimeZone); REGISTER_SYNC("Time_getTimeFormat", Time_getTimeFormat); + REGISTER_SYNC("Time_getDateFormat", Time_getDateFormat); REGISTER_SYNC("Time_getTimeZoneOffset", Time_getTimeZoneOffset); REGISTER_SYNC("Time_getTimeZoneAbbreviation", Time_getTimeZoneAbbreviation); REGISTER_SYNC("Time_isDST", Time_isDST); @@ -334,6 +335,40 @@ void TimeInstance::Time_getTimeFormat(const JsonValue& /*args*/, ReportSuccess(JsonValue(result), out); } +void TimeInstance::Time_getDateFormat(const JsonValue& args, JsonObject& out) { + bool shortformat = args.get("shortformat").evaluate_as_boolean(); + + UnicodeString time_format = getDateTimeFormat( + (shortformat ? DateTimeFormatType::DATE_SHORT_FORMAT : + DateTimeFormatType::DATE_FORMAT), + true); + + time_format = time_format.findAndReplace("E", "D"); + + if (time_format.indexOf("MMM") > 0) { + if (time_format.indexOf("MMMM") > 0) { + time_format = time_format.findAndReplace("MMMM", "M"); + } else { + time_format = time_format.findAndReplace("MMM", "M"); + } + } else { + time_format = time_format.findAndReplace("M", "m"); + } + + int i = 0; + while (i < time_format.length() - 1) { + if (time_format[i] == time_format[i + 1]) { + time_format.remove(i, 1); + } else { + ++i; + } + } + + std::string result = ""; + time_format.toUTF8String(result); + ReportSuccess(JsonValue(result), out); +} + UnicodeString TimeInstance::getDateTimeFormat(DateTimeFormatType type, bool bLocale) { UErrorCode ec = U_ZERO_ERROR; diff --git a/src/time/time_instance.h b/src/time/time_instance.h index ade64f57..a1efbe57 100644 --- a/src/time/time_instance.h +++ b/src/time/time_instance.h @@ -38,6 +38,7 @@ class TimeInstance : public common::ParsedInstance { void Time_getDSTTransition(const JsonValue& args, JsonObject& out); void Time_getLocalTimeZone(const JsonValue& args, JsonObject& out); void Time_getTimeFormat(const JsonValue& args, JsonObject& out); + void Time_getDateFormat(const JsonValue& args, JsonObject& out); void Time_getTimeZoneOffset(const JsonValue& args, JsonObject& out); void Time_getTimeZoneAbbreviation(const JsonValue& args, JsonObject& out); void Time_isDST(const JsonValue& args, JsonObject& out);