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