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 #ifndef CONTENT_BROWSER_ANDROID_DATE_TIME_CHOOSER_ANDROID_H_
6 #define CONTENT_BROWSER_ANDROID_DATE_TIME_CHOOSER_ANDROID_H_
11 #include "base/android/jni_weak_ref.h"
12 #include "base/memory/scoped_ptr.h"
13 #include "ui/base/ime/text_input_type.h"
14 #include "ui/gfx/native_widget_types.h"
18 class ContentViewCore
;
20 struct DateTimeSuggestion
;
22 // Android implementation for DateTimeChooser dialogs.
23 class DateTimeChooserAndroid
{
25 DateTimeChooserAndroid();
26 ~DateTimeChooserAndroid();
28 // DateTimeChooser implementation:
29 // Shows the dialog. |dialog_value| is the date/time value converted to a
30 // number as defined in HTML. (See blink::InputType::parseToNumber())
31 void ShowDialog(gfx::NativeWindow native_window
,
33 ui::TextInputType dialog_type
,
38 const std::vector
<DateTimeSuggestion
>& suggestions
);
40 // Replaces the current value
41 void ReplaceDateTime(JNIEnv
* env
, jobject
, jdouble value
);
43 // Closes the dialog without propagating any changes.
44 void CancelDialog(JNIEnv
* env
, jobject
);
46 // Propagates the different types of accepted date/time values to the
48 static void InitializeDateInputTypes(
49 int text_input_type_date
, int text_input_type_date_time
,
50 int text_input_type_date_time_local
, int text_input_type_month
,
51 int text_input_type_time
, int text_input_type_week
);
54 RenderViewHost
* host_
;
56 base::android::ScopedJavaGlobalRef
<jobject
> j_date_time_chooser_
;
58 DISALLOW_COPY_AND_ASSIGN(DateTimeChooserAndroid
);
62 bool RegisterDateTimeChooserAndroid(JNIEnv
* env
);
64 } // namespace content
66 #endif // CONTENT_BROWSER_ANDROID_DATE_TIME_CHOOSER_ANDROID_H_