diff options
author | miguelg@chromium.org <miguelg@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-02-07 21:14:07 +0000 |
---|---|---|
committer | miguelg@chromium.org <miguelg@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-02-07 21:14:07 +0000 |
commit | 1ff42797b769734346eb363a63a2766bf52a641f (patch) | |
tree | 95a4077b34af1fda4a3e1ffd38d81b5b7cf5df9d /content/renderer/renderer_date_time_picker.cc | |
parent | a06f53ede6b24f5c8b521059bb0d1594787c75d5 (diff) | |
download | chromium_src-1ff42797b769734346eb363a63a2766bf52a641f.zip chromium_src-1ff42797b769734346eb363a63a2766bf52a641f.tar.gz chromium_src-1ff42797b769734346eb363a63a2766bf52a641f.tar.bz2 |
Move Android Date/Time parsing to the renderer (C++ and ICU) instead of the current parsing that happens in the browser (on java using java libraries)
BUG=143540
Review URL: https://chromiumcodereview.appspot.com/12191005
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@181364 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'content/renderer/renderer_date_time_picker.cc')
-rw-r--r-- | content/renderer/renderer_date_time_picker.cc | 53 |
1 files changed, 27 insertions, 26 deletions
diff --git a/content/renderer/renderer_date_time_picker.cc b/content/renderer/renderer_date_time_picker.cc index fea94fa..f17ba35 100644 --- a/content/renderer/renderer_date_time_picker.cc +++ b/content/renderer/renderer_date_time_picker.cc @@ -6,50 +6,43 @@ #include "base/string_util.h" #include "content/common/view_messages.h" +#include "content/renderer/date_time_formatter.h" #include "content/renderer/render_view_impl.h" #include "third_party/WebKit/Source/WebKit/chromium/public/WebDateTimeChooserCompletion.h" #include "third_party/WebKit/Source/WebKit/chromium/public/WebDateTimeChooserParams.h" #include "third_party/WebKit/Source/WebKit/chromium/public/WebDateTimeInputType.h" -namespace content { - using WebKit::WebString; +namespace content { + RendererDateTimePicker::RendererDateTimePicker( RenderViewImpl* sender, const WebKit::WebDateTimeChooserParams& params, WebKit::WebDateTimeChooserCompletion* completion) : RenderViewObserver(sender), chooser_params_(params), - chooser_completion_(completion) { + chooser_completion_(completion){ } RendererDateTimePicker::~RendererDateTimePicker() { } -static ui::TextInputType ExtractType( - const WebKit::WebDateTimeChooserParams& source) { - - if (source.type == WebKit::WebDateTimeInputTypeDate) - return ui::TEXT_INPUT_TYPE_DATE; - if (source.type == WebKit::WebDateTimeInputTypeDateTime) - return ui::TEXT_INPUT_TYPE_DATE_TIME; - if (source.type == WebKit::WebDateTimeInputTypeDateTimeLocal) - return ui::TEXT_INPUT_TYPE_DATE_TIME_LOCAL; - if (source.type == WebKit::WebDateTimeInputTypeMonth) - return ui::TEXT_INPUT_TYPE_MONTH; - if (source.type == WebKit::WebDateTimeInputTypeTime) - return ui::TEXT_INPUT_TYPE_TIME; - if (source.type == WebKit::WebDateTimeInputTypeWeek) - return ui::TEXT_INPUT_TYPE_WEEK; - return ui::TEXT_INPUT_TYPE_NONE; -} - bool RendererDateTimePicker::Open() { - Send(new ViewHostMsg_OpenDateTimeDialog( - routing_id(), ExtractType(chooser_params_), - chooser_params_.currentValue.utf8())); + DateTimeFormatter parser(chooser_params_); + std::string test_s = chooser_params_.currentValue.utf8(); + + ViewHostMsg_DateTimeDialogValue_Params message; + message.year = parser.GetYear(); + message.month = parser.GetMonth(); + message.day = parser.GetDay(); + message.hour = parser.GetHour(); + message.minute = parser.GetMinute(); + message.second = parser.GetSecond(); + message.dialog_type = parser.GetType(); + + Send(new ViewHostMsg_OpenDateTimeDialog(routing_id(), message)); return true; } @@ -64,9 +57,17 @@ bool RendererDateTimePicker::OnMessageReceived( return handled; } -void RendererDateTimePicker::OnReplaceDateTime(const string16& new_date) { +void RendererDateTimePicker::OnReplaceDateTime( + const ViewHostMsg_DateTimeDialogValue_Params& value) { + + DateTimeFormatter formatter( + static_cast<ui::TextInputType>(value.dialog_type), + value.year, value.month, value.day, + value.hour, value.minute, value.second); + if (chooser_completion_) - chooser_completion_->didChooseValue(new_date); + chooser_completion_->didChooseValue(WebString::fromUTF8( + formatter.GetFormattedValue().c_str())); } void RendererDateTimePicker::OnCancel() { |