summaryrefslogtreecommitdiffstats
path: root/content/renderer/renderer_date_time_picker.cc
diff options
context:
space:
mode:
authormiguelg@chromium.org <miguelg@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-02-07 21:14:07 +0000
committermiguelg@chromium.org <miguelg@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-02-07 21:14:07 +0000
commit1ff42797b769734346eb363a63a2766bf52a641f (patch)
tree95a4077b34af1fda4a3e1ffd38d81b5b7cf5df9d /content/renderer/renderer_date_time_picker.cc
parenta06f53ede6b24f5c8b521059bb0d1594787c75d5 (diff)
downloadchromium_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.cc53
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() {