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

Side by Side Diff: content/browser/android/date_time_chooser_android.cc

Issue 11783088: Split Date/Time picker values from IME processing since date/time related form values have been com… (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 7 years, 11 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 unified diff | Download patch
OLDNEW
(Empty)
1 // Copyright (c) 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #include "content/browser/android/date_time_chooser_android.h"
6
7 #include "base/android/jni_string.h"
8 #include "content/common/view_messages.h"
9 #include "content/public/browser/android/content_view_core.h"
10 #include "content/public/browser/render_view_host_observer.h"
11 #include "jni/DateTimeChooserAndroid_jni.h"
12
13 using base::android::AttachCurrentThread;
14 using base::android::ConvertJavaStringToUTF16;
15 using base::android::ConvertUTF8ToJavaString;
16
17
18 namespace content {
19
20 // Internal communicator class, talks back to the renderer and communicate
bulach 2013/01/10 15:58:35 how about "Updates date/time via IPC to the Render
Miguel Garcia 2013/01/11 14:59:37 Done.
21 // changes on a given date/time dialog.
22 class DateTimeCommunicator : public RenderViewHostObserver {
23 public:
24 explicit DateTimeCommunicator(RenderViewHost* sender);
25 virtual ~DateTimeCommunicator() {}
26 void ReplaceDateTime(string16 text);
27 void CancelDialog();
28
29 private:
30 DISALLOW_COPY_AND_ASSIGN(DateTimeCommunicator);
31 };
32
33 DateTimeCommunicator::DateTimeCommunicator(RenderViewHost* sender)
34 : RenderViewHostObserver(sender) {
35 }
36
37 void DateTimeCommunicator::ReplaceDateTime(string16 text) {
38 Send(new ViewMsg_ReplaceDateTime(routing_id(), text));
39 }
40
41 void DateTimeCommunicator::CancelDialog() {
42 Send(new ViewMsg_CancelDateTimeDialog(routing_id()));
43 }
44
45
46 // DateTimeChooserAndroid implementation
47
bulach 2013/01/10 15:58:35 nit: remove extra \n
Miguel Garcia 2013/01/11 14:59:37 Done.
48 DateTimeChooserAndroid::DateTimeChooserAndroid() {
49 }
50
51 DateTimeChooserAndroid::~DateTimeChooserAndroid() {
52 }
53
54 // static
bulach 2013/01/10 15:58:35 since this is for DateTimeChooser rather than Date
Miguel Garcia 2013/01/11 14:59:37 Done.
55 DateTimeChooser* DateTimeChooser::Create() {
56 // Initialize platform specific type values date/time value forms.
bulach 2013/01/10 15:58:35 I suppose 56-62 could be moved to 106, after regis
Miguel Garcia 2013/01/11 14:59:37 Great idea!
57 DateTimeChooserAndroid::InitializeDateInputTypes(
58 ui::TEXT_INPUT_TYPE_DATE,
59 ui::TEXT_INPUT_TYPE_DATE_TIME,
60 ui::TEXT_INPUT_TYPE_DATE_TIME_LOCAL,
61 ui::TEXT_INPUT_TYPE_MONTH,
62 ui::TEXT_INPUT_TYPE_TIME);
63 return new DateTimeChooserAndroid();
64 }
65
66 // static
67 void DateTimeChooserAndroid::InitializeDateInputTypes(
68 int textInputTypeDate, int textInputTypeDateTime,
bulach 2013/01/10 15:58:35 nit: hacker_style
Miguel Garcia 2013/01/11 14:59:37 Done.
69 int textInputTypeDateTimeLocal, int textInputTypeMonth,
70 int textInputTypeTime) {
71 JNIEnv* env = AttachCurrentThread();
72 Java_DateTimeChooserAndroid_initializeDateInputTypes(env,
73 textInputTypeDate, textInputTypeDateTime,
74 textInputTypeDateTimeLocal, textInputTypeMonth,
75 textInputTypeTime);
76 }
77
78 void DateTimeChooserAndroid::ReplaceDateTime(
79 JNIEnv* env, jobject, jstring text) {
80 string16 text16 = ConvertJavaStringToUTF16(env, text);
81 if (communicator_)
bulach 2013/01/10 15:58:35 nit: at this point, communicator_ has got to be se
Miguel Garcia 2013/01/11 14:59:37 Done.
82 communicator_->ReplaceDateTime(text16);
83 }
84
85 void DateTimeChooserAndroid::CancelDialog(JNIEnv* env, jobject) {
86 if (communicator_)
87 communicator_->CancelDialog();
88 }
89
90 void DateTimeChooserAndroid::ShowDialog(
91 ContentViewCore* content, RenderViewHost* sender,
92 int type, const std::string& value) {
93 communicator_.reset(new DateTimeCommunicator(sender));
94 JNIEnv* env = AttachCurrentThread();
95 base::android::ScopedJavaLocalRef<jstring> java_value =
96 ConvertUTF8ToJavaString(env, value);
97 j_date_time_chooser_.Reset(Java_DateTimeChooserAndroid_createDateTimeChooser(
98 env, content->GetJavaObject().obj(),
99 reinterpret_cast<intptr_t>(this), java_value.obj(), type));
100 }
101
102 // ----------------------------------------------------------------------------
103 // Native JNI methods
104 // ----------------------------------------------------------------------------
105 bool RegisterDateTimeChooserAndroid(JNIEnv* env) {
106 return RegisterNativesImpl(env);
107 }
108
109 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698