// Copyright (c) 2013 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. package org.chromium.content.browser.input; import org.chromium.base.CalledByNative; import org.chromium.base.JNINamespace; import org.chromium.content.browser.ContentViewCore; import android.content.Context; /** * Plumbing for the different date/time dialog adapters. */ @JNINamespace("content") class DateTimeChooserAndroid { private final int mNativeDateTimeChooserAndroid; private final InputDialogContainer mInputDialogContainer; private DateTimeChooserAndroid(Context context, int nativeDateTimeChooserAndroid) { mNativeDateTimeChooserAndroid = nativeDateTimeChooserAndroid; mInputDialogContainer = new InputDialogContainer(context, new InputDialogContainer.InputActionDelegate() { @Override public void replaceDateTime( int dialogType, int year, int month, int day, int hour, int minute, int second) { nativeReplaceDateTime(mNativeDateTimeChooserAndroid, dialogType, year, month, day, hour, minute, second); } @Override public void cancelDateTimeDialog() { nativeCancelDialog(mNativeDateTimeChooserAndroid); } }); } private void showDialog(int dialogType, int year, int month, int monthDay, int hour, int minute, int second) { mInputDialogContainer.showDialog(dialogType, year, month, monthDay, hour, minute, second); } @CalledByNative private static DateTimeChooserAndroid createDateTimeChooser( ContentViewCore contentViewCore, int nativeDateTimeChooserAndroid, int dialogType, int year, int month, int day, int hour, int minute, int second) { DateTimeChooserAndroid chooser = new DateTimeChooserAndroid( contentViewCore.getContext(), nativeDateTimeChooserAndroid); chooser.showDialog(dialogType, year, month, day, hour, minute, second); return chooser; } @CalledByNative private static void initializeDateInputTypes(int textInputTypeDate, int textInputTypeDateTime, int textInputTypeDateTimeLocal, int textInputTypeMonth, int textInputTypeTime) { InputDialogContainer.initializeInputTypes(textInputTypeDate, textInputTypeDateTime, textInputTypeDateTimeLocal, textInputTypeMonth, textInputTypeTime); } private native void nativeReplaceDateTime(int nativeDateTimeChooserAndroid, int dialogType, int year, int month, int day, int hour, int minute, int second); private native void nativeCancelDialog(int nativeDateTimeChooserAndroid); }