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.
5 #include "content/browser/android/date_time_chooser_android.h"
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.h"
11 #include "jni/DateTimeChooserAndroid_jni.h"
13 using base::android::AttachCurrentThread;
14 using base::android::ConvertJavaStringToUTF16;
15 using base::android::ConvertUTF8ToJavaString;
20 // DateTimeChooserAndroid implementation
21 DateTimeChooserAndroid::DateTimeChooserAndroid()
25 DateTimeChooserAndroid::~DateTimeChooserAndroid() {
29 void DateTimeChooserAndroid::InitializeDateInputTypes(
30 int text_input_type_date, int text_input_type_date_time,
31 int text_input_type_date_time_local, int text_input_type_month,
32 int text_input_type_time, int text_input_type_week) {
33 JNIEnv* env = AttachCurrentThread();
34 Java_DateTimeChooserAndroid_initializeDateInputTypes(
36 text_input_type_date, text_input_type_date_time,
37 text_input_type_date_time_local, text_input_type_month,
38 text_input_type_time, text_input_type_week);
41 void DateTimeChooserAndroid::ReplaceDateTime(JNIEnv* env,
52 ViewHostMsg_DateTimeDialogValue_Params value;
57 value.minute = minute;
58 value.second = second;
61 value.dialog_type = dialog_type;
62 host_->Send(new ViewMsg_ReplaceDateTime(host_->GetRoutingID(), value));
65 void DateTimeChooserAndroid::CancelDialog(JNIEnv* env, jobject) {
66 host_->Send(new ViewMsg_CancelDateTimeDialog(host_->GetRoutingID()));
69 void DateTimeChooserAndroid::ShowDialog(ContentViewCore* content,
85 JNIEnv* env = AttachCurrentThread();
86 j_date_time_chooser_.Reset(Java_DateTimeChooserAndroid_createDateTimeChooser(
88 content->GetJavaObject().obj(),
89 reinterpret_cast<intptr_t>(this),
104 // ----------------------------------------------------------------------------
105 // Native JNI methods
106 // ----------------------------------------------------------------------------
107 bool RegisterDateTimeChooserAndroid(JNIEnv* env) {
108 bool registered = RegisterNativesImpl(env);
110 DateTimeChooserAndroid::InitializeDateInputTypes(
111 ui::TEXT_INPUT_TYPE_DATE,
112 ui::TEXT_INPUT_TYPE_DATE_TIME,
113 ui::TEXT_INPUT_TYPE_DATE_TIME_LOCAL,
114 ui::TEXT_INPUT_TYPE_MONTH,
115 ui::TEXT_INPUT_TYPE_TIME,
116 ui::TEXT_INPUT_TYPE_WEEK);
120 } // namespace content