Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(470)

Unified Diff: content/renderer/renderer_date_time_picker.cc

Issue 12191005: Move Android Date/Time parsing to the renderer (C++ and ICU) instead of the current parsing that ha… (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebased view_messages.h and fixed the link issue on the linux bot Created 7 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: content/renderer/renderer_date_time_picker.cc
diff --git a/content/renderer/renderer_date_time_picker.cc b/content/renderer/renderer_date_time_picker.cc
index fea94fa3f86b501211b0420ec073e8445a7245fd..f17ba3588be5d0001e42c594fbfdbd7875815389 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() {
« content/renderer/date_time_formatter.h ('K') | « content/renderer/renderer_date_time_picker.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698