DateTimeChooserAndroid.java revision c2e0dbddbe15c98d52c4786dac06cb8952a8ae6d
1a11af531ec48ad84f790b9511f003ac5c934a999Daniel Dunbar// Copyright (c) 2013 The Chromium Authors. All rights reserved.
2a11af531ec48ad84f790b9511f003ac5c934a999Daniel Dunbar// Use of this source code is governed by a BSD-style license that can be
3a11af531ec48ad84f790b9511f003ac5c934a999Daniel Dunbar// found in the LICENSE file.
4a11af531ec48ad84f790b9511f003ac5c934a999Daniel Dunbar
5a11af531ec48ad84f790b9511f003ac5c934a999Daniel Dunbarpackage org.chromium.content.browser.input;
6a11af531ec48ad84f790b9511f003ac5c934a999Daniel Dunbar
7a11af531ec48ad84f790b9511f003ac5c934a999Daniel Dunbarimport org.chromium.base.CalledByNative;
8a11af531ec48ad84f790b9511f003ac5c934a999Daniel Dunbarimport org.chromium.base.JNINamespace;
9a11af531ec48ad84f790b9511f003ac5c934a999Daniel Dunbarimport org.chromium.content.browser.ContentViewCore;
10a11af531ec48ad84f790b9511f003ac5c934a999Daniel Dunbar
11ddf6bdde44287b5b559bc403a02ff971e15e8303Chris Lattnerimport android.content.Context;
12a11af531ec48ad84f790b9511f003ac5c934a999Daniel Dunbar
13a11af531ec48ad84f790b9511f003ac5c934a999Daniel Dunbar/**
14a11af531ec48ad84f790b9511f003ac5c934a999Daniel Dunbar * Plumbing for the different date/time dialog adapters.
15dabf07c70a5e13a4560d75667fa5c7db28921a92Chris Lattner */
16a11af531ec48ad84f790b9511f003ac5c934a999Daniel Dunbar@JNINamespace("content")
17a11af531ec48ad84f790b9511f003ac5c934a999Daniel Dunbarclass DateTimeChooserAndroid {
18a11af531ec48ad84f790b9511f003ac5c934a999Daniel Dunbar
19a11af531ec48ad84f790b9511f003ac5c934a999Daniel Dunbar    private final int mNativeDateTimeChooserAndroid;
20ddf6bdde44287b5b559bc403a02ff971e15e8303Chris Lattner    private final InputDialogContainer mInputDialogContainer;
21ddf6bdde44287b5b559bc403a02ff971e15e8303Chris Lattner
22ddf6bdde44287b5b559bc403a02ff971e15e8303Chris Lattner    private DateTimeChooserAndroid(Context context,
23ddf6bdde44287b5b559bc403a02ff971e15e8303Chris Lattner            int nativeDateTimeChooserAndroid) {
24ddf6bdde44287b5b559bc403a02ff971e15e8303Chris Lattner        mNativeDateTimeChooserAndroid = nativeDateTimeChooserAndroid;
25ddf6bdde44287b5b559bc403a02ff971e15e8303Chris Lattner        mInputDialogContainer = new InputDialogContainer(context,
26ddf6bdde44287b5b559bc403a02ff971e15e8303Chris Lattner                new InputDialogContainer.InputActionDelegate() {
27ddf6bdde44287b5b559bc403a02ff971e15e8303Chris Lattner
28            @Override
29            public void replaceDateTime(
30                    int dialogType,
31                    int year, int month, int day, int hour, int minute, int second) {
32                nativeReplaceDateTime(mNativeDateTimeChooserAndroid,
33                        dialogType,
34                        year, month, day, hour, minute, second);
35            }
36
37            @Override
38            public void cancelDateTimeDialog() {
39                nativeCancelDialog(mNativeDateTimeChooserAndroid);
40            }
41        });
42    }
43
44    private void showDialog(int dialogType, int year, int month, int monthDay,
45            int hour, int minute, int second) {
46        mInputDialogContainer.showDialog(dialogType, year, month, monthDay,
47                hour, minute, second);
48    }
49
50    @CalledByNative
51    private static DateTimeChooserAndroid createDateTimeChooser(
52            ContentViewCore contentViewCore,
53            int nativeDateTimeChooserAndroid, int dialogType,
54            int year, int month, int day,
55            int hour, int minute, int second) {
56        DateTimeChooserAndroid chooser =
57                new DateTimeChooserAndroid(
58                        contentViewCore.getContext(), nativeDateTimeChooserAndroid);
59        chooser.showDialog(dialogType, year, month, day, hour, minute, second);
60        return chooser;
61    }
62
63    @CalledByNative
64    private static void initializeDateInputTypes(int textInputTypeDate, int textInputTypeDateTime,
65            int textInputTypeDateTimeLocal, int textInputTypeMonth,
66            int textInputTypeTime) {
67        InputDialogContainer.initializeInputTypes(textInputTypeDate, textInputTypeDateTime,
68                textInputTypeDateTimeLocal, textInputTypeMonth, textInputTypeTime);
69    }
70
71    private native void nativeReplaceDateTime(int nativeDateTimeChooserAndroid,
72            int dialogType,
73            int year, int month, int day, int hour, int minute, int second);
74
75    private native void nativeCancelDialog(int nativeDateTimeChooserAndroid);
76}
77